Добавление нового поля в ps_cart_product

Автор piter, 02 октября 2015, 16:00:17

« назад - далее »

piter

Всем доброго дня!
Прошу подсказать решение такого вопроса..
Добавил в  ps_cart_product  поле  textrez
Текстовое поле.
Обозначил в cart.php
public  $textrez;
public static $definition = array(..........
............
' textrez ' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 200),

Запись производиться в cart.php  тут
$result_add = Db::getInstance()->insert('cart_product', array(.......
' textrez ' =>

Вот теперь вопрос следующий.
В карточке товара, product.tpl,  добавлено поле ввода
<input  type="text"  id=" textcart "  name="textcart"  class="text" >
Как теперь присвоить значению в  cart.php   
$result_add = Db::getInstance()->insert('cart_product', array(.......
' textrez ' => (значение),

Значение из
<input  type="text"  id=" textcart "  name="textcart"  class="text" >
При нажатии кнопки в карзину.
То есть
' textrez ' => $textcart
Так не идет.....
Спасибо!!

coder

Поле должно быть внутри формы добавления товара
<form id="buy_block"

В контроллере CartController.php нужно получить значение из этого поля
$this->textrez = Tools::getValue('textrez');

piter

Спасибо!!
В CartController.php  есть добавление забал просто написать
public function init()
   {........
$this-> textrez = Tools::getValue(' textrez ');
А вот насчет  <form id="buy_block"
Я что-то не понял.. ввод и так в форме product.tpl
<input  type="text"  id=" textcart "  name="textcart"  class="text" >

coder

ЦитироватьА вот насчет  <form id="buy_block"
Я что-то не понял.. ввод и так в форме product.tpl
<input  type="text"  id=" textcart "  name="textcart"  class="text" >

product.tpl - это шаблон, а форма называется form id="buy_block", все что внутири тегов form будет передано в контроллер.

piter

Спасибо за ответы!!
Всего вам доброго!!
Пробую..

piter

#5
Нет все равно не получилось..
Все везде вроде прописано.
В теме в  product.tpl  в form id="buy_block" ввод поле стоит
<input  type="text"  name="textcart"  class="text" >
В CartController прописано
В cart.php  прописано
Что мне здесь в cart.php   в блоке
   $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,
' textrez ' => 'My text',

В место 'My text' ставить.
Когда жестко стоит 'My text'  тогда все, заполняет поле..
Так как мне здесь объявить  переменную из  product.tpl   textcart
<input  type="text"  name="textcart"  class="text" >
Спасибо!!

Mr.Sen

Нужно передать эту переменную в
function updateQty (.... $textrez)
{

piter

#7
Переменная и так прописана в Cart.php
public function updateQty($textrez, $quantity, $id_product, $id_product_attribute = null, $id_customization = false,
$operator = 'up', $id_address_delivery = 0, Shop $shop = null, $auto_add_cart_rule = true)

Толко она пустая
$textrez


piter

#8
Осталось то совсем ничего..
В cart.php   сосчитать переменную textrez  набранную в карточке товара в теме product.tpl
<input  type="text"  name="textcart" id="id_textcart"   class="text" >
Что может быть еще не так..

DarinSr

Добавление товара в корзину функция ajaxCart.add( в файле /themes/default-bootstrap/js/modules/blockcart/ajax-cart.js, вот сюда добавляйте свою переменную $textrez
/*/for product page 'add' button... */
$(document).on('click', '#add_to_cart button', function(e){
e.preventDefault();
ajaxCart.add( $('#product_page_product_id').val(), $('#idCombination').val(), true, null, $('#quantity_wanted').val(), null);
});

в строке 277
add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist, instructions, instructions_id)
строка 315
data: 'controller=cart&add=1&ajax=true&qty=' + ((quantity && quantity != null) ? quantity : '1') + '&id_product=' + idProduct + '&token=' + static_token + ( (parseInt(idCombination) && idCombination != null) ? '&ipa=' + parseInt(idCombination): ''),

PrestaMan

У вас названия переменной в шаблоне и в контроллере не разные. Используйте одно название "textrez".
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

piter

#11
Нет везде одинаковое
<input type="text" name="textrez" id="textrez" class="text"  value="" >
Везде textrez вовсех контроллерах..
Пробовал и разные по первости но вернулся к одинаковым везде..

piter

Нет.. ничего не получилось..
Придется отказаться от данной идеи..
Ни как не получилось выдернуть из product.tpl переменную в cart.php что-бы там ее записать.
Если кто возмется оплачу.
Нипишите как связаться, нет так и туда нет.

DarinSr

В файле /classes/Cart.php как добавляли свою переменную?

Виталий

Цитата: piter от 03 октября 2015, 15:21:20
Нет.. ничего не получилось..
Придется отказаться от данной идеи..
Ни как не получилось выдернуть из product.tpl переменную в cart.php что-бы там ее записать.
Если кто возмется оплачу.
Нипишите как связаться, нет так и туда нет.
Потому что нужно вносить измения в переопределнные класс и контроллер
/override/controllers/front/CartController.php
/override/classes/Cart.php
Cоздание интернет сайтов Webstudio UwK