Автор Тема: Добавление нового поля в карзину  (Прочитано 164 раз)

27 Сентября 2015, 15:52:16
  • Старожил
  • ****
  • Сообщений: 346
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.
Новое поле razdel
Добавил новое поле в  ps_ cart_product 
Добавил новое поле в  класс Cart.php
Добавил новое поле ввода в шаблон product.tpl.
Вывел в shopping-cart-product-line.tpl
Вот только вопрос как вводное поле из product.tpl записать в поле базы ps_ cart_product   при записи в корзину
Что нужно поставить в CartController.php для записи.
Добавленное поле текстовое имя razdel.
Спасибо!
27 Сентября 2015, 16:07:40
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33028
  • Репутация: +26761/-0
    • Просмотр профиля
1. Нужно добавить поле в таблицу в бд.
2. Добавить новую переменную в класс
3. Добавить переменную в шаблон.
При вызове класса переменная будет сохранена в базе данных.
27 Сентября 2015, 16:08:41
Ответ #2
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33028
  • Репутация: +26761/-0
    • Просмотр профиля
Все также как и в этой теме
http://prestashop-forum.ru/index.php/topic,2835.0.html
Только названия класса и таблицы другие.
27 Сентября 2015, 16:36:36
Ответ #3
  • Старожил
  • ****
  • Сообщений: 346
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо большое за ответ! Пробую проверяю..
27 Сентября 2015, 17:21:18
Ответ #4
  • Старожил
  • ****
  • Сообщений: 346
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да все это конечно хорошо для поля в продукт, все правельно..
Но здесь задача другая. Все проще.Если количество заказа товара >0 то вместе сданными записывается и поле.
Поле вводное в карточке товара product.tpl
Поле текстовое.
В Chart.php прописан также как и в вашем примере по ссылке
public $razdel;
public static $definition = array(
'table' => 'cart',
'primary' => 'id_cart',
'fields' => array(
......
…….
' razdel ' => array('type' => self::TYPE_STRING, 'size' => 200),
),
);
Проверка в CartController.php  этого поля не нужна.
В Chart.php есть запись
/* Add product to the cart */
$result_add = Db::getInstance()->insert('cart_product', array(
'id_product' => (int)$id_product,
'id_product_attribute' => (int)$id_product_attribute,
'id_cart' => (int)$this->id,
'id_address_delivery' => (int)$id_address_delivery,
'id_shop' => $shop->id,
'quantity' => (int)$quantity,
'razdel ' => ………….,
'date_add' => date('Y-m-d H:i:s')
));
Вот здесь нужно записать значение в поле razdel из карточки товара product.tpl  где имя поля vrazdel
27 Сентября 2015, 17:50:45
Ответ #5
  • Старожил
  • ****
  • Сообщений: 346
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Может кто то подскажет как зделать?
Спасибо!
27 Сентября 2015, 17:54:24
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86326
  • Репутация: +25417/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Что вы хотите сделать? Сохранить значение из поля "razdel" на странице товара в таблицу ps_cart при нажатии на кнопку в корзину?
27 Сентября 2015, 18:06:09
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33028
  • Репутация: +26761/-0
    • Просмотр профиля
Проверка как раз и нужна. У карточки товара контроллер и класс Product, а не Cart. Поэтому в CartController.php в
public function init()
{
.....
    $this->razdel = Tools::getValue('razdel');
27 Сентября 2015, 18:26:19
Ответ #8
  • Старожил
  • ****
  • Сообщений: 346
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да вы правы.. Хочу сохранить значение введенное в поле карточки товара  product.tpl при записи в корзину в поле razdel в ps_cart_product
27 Сентября 2015, 18:27:33
Ответ #9
  • Старожил
  • ****
  • Сообщений: 346
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля