переменная из product.tpl в cart

Автор dantist433, 10 июня 2019, 09:58:23

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

dantist433

добрый день.
Что бы сразу не отсылали поиском поискал, нашел, прочитал, ничего не понял. В связи с этим прощу помощи, желательно по подробнее.
1. в product.tpl добавил поле

<input type="hidden" name="id_new_price" id="id_new_price" value="" />

Сюда скриптом вставляются данные после расчета новой цены в зависимости от размеров товара- все хорошо работает.
После эта переменная должна заменить обычную цену товара в корзине.
Как это сделать?
Если можно то по подробнее

PrestaMan

В скрипте и меняйте цену
$(element).find('ид или класс поля цены')."новая цена"
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

dantist433

мне нужно что бы и дальше везде эта цена проставлялась, на всем этапе оформления заказа

PrestaMan

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

Adik

Цитата: dantist433 от 10 июня 2019, 09:58:23
добрый день.
Что бы сразу не отсылали поиском поискал, нашел, прочитал, ничего не понял. В связи с этим прощу помощи, желательно по подробнее.
1. в product.tpl добавил поле

<input type="hidden" name="id_new_price" id="id_new_price" value="" />

Сюда скриптом вставляются данные после расчета новой цены в зависимости от размеров товара- все хорошо работает.
После эта переменная должна заменить обычную цену товара в корзине.
Как это сделать?
Если можно то по подробнее
Чтобы новую цену учитывало, нужно это переменную добавить в табл. товаров, в класс и контроллер.
https://prestashop-forum.ru/index.php/topic,2835.0.html

dantist433

Цитата: PrestaMan от 10 июня 2019, 11:28:06
Она и будет везде. Вы замените цену на странице товара, его добавят в корзину и новая цена сохранится в базе. После этого на всех этапах будет показана цена, которая сохранилась в базе.
Может быть мы друг друг не понимаем
1. http://prntscr.com/nzuoc7 - это цена по умолчанию.
2. Изменяем ширину - цена изменилась
http://prntscr.com/nzuouc
3. при нажатии на кнопку добавить в корзину - цена остается без изменения
http://prntscr.com/nzuptw


dantist433

Цитата: Adik от 10 июня 2019, 11:40:10
Чтобы новую цену учитывало, нужно это переменную добавить в табл. товаров, в класс и контроллер.
https://prestashop-forum.ru/index.php/topic,2835.0.html
Так надо не в таблицу ее записывать, она же каждые раз меняется

Adik

Такое на основнии комбинаций делается. Создаете группы атрибутов, значения и т.д.

dantist433

Цитата: Adik от 10 июня 2019, 12:03:23
Такое на основнии комбинаций делается. Создаете группы атрибутов, значения и т.д.
а по подробнее можно?

PrestaMan

В prestashop нет такой возможности. Модуль для расчета динамической цены есть а в движке не предусмотрено.
Не получится в шаблоне сделать такое. Нужно будет переопределять класс и контроллер корзины.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Adik

Цитата: dantist433 от 10 июня 2019, 12:04:36
Цитата: Adik от 10 июня 2019, 12:03:23
Такое на основнии комбинаций делается. Создаете группы атрибутов, значения и т.д.
а по подробнее можно?
По дефолту клиент может только выбирать уже созданные значения 1,2... а не вводить их сам.
Если такое устроит, тогда создаете группу Ширина, в ней значения 1,2..., вторую Длинна, в ней значения 1,2... и у товара создаете комбинации на основе этих значений.

dantist433

Цитата: Adik от 10 июня 2019, 12:23:51
По дефолту клиент может только выбирать уже созданные значения 1,2... а не вводить их сам.
Если такое устроит, тогда создаете группу Ширина, в ней значения 1,2..., вторую Длинна, в ней значения 1,2... и у товара создаете комбинации на основе этих значений.

Нее, это не вариант в данном случае, спасибо

Mr.Sen

Под prestashop 1.6 модуль был, правда стоил дорого 300$. Для prestashop 1.7 не видел такого.

dantist433

Цитата: Mr.Sen от 10 июня 2019, 13:00:39
Под prestashop 1.6 модуль был, правда стоил дорого 300$. Для prestashop 1.7 не видел такого.
ну это слишком дорого.
Буду пробовать разбираться сам, с вашей помощью.
объясните мне как работает корзина.
Т.е. я нажимаю на добавить в корзину - запускается ajax-cart.js в нем

$(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,$('#id_new_price').val() );
});

Добавил свою переменную - все норм работает.
Далее в этом же файле запускается
add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist, id_price_new)
Тоже добавил сюда, затем

$.ajax({
type: 'POST',
headers: { "cache-control": "no-cache" },
url: baseUri + '?rand=' + new Date().getTime(),
async: true,
cache: false,
dataType : "json",
data: 'controller=cart&add=1&ajax=true&qty=' + ((quantity && quantity != null) ? quantity : '1') + '&id_product=' + idProduct + '&id_price_new='+ id_price_new +' &token=' + static_token + ( (parseInt(idCombination) && idCombination != null) ? '&ipa=' + parseInt(idCombination): ''),
success: function(jsonData,textStatus,jqXHR)

откуда конкретно появляются вот эти параметры jsonData, например.
Если можно то указать в CartController.php

PrestaMan

Толку что вы добавяете переменную в javascrit нет. В контроллере ее нет, в классе ее нет, в базе ее нет.
В вашем примере jsonData это ответ сервера, вам он не так важен, главное получить эту переменную в контроллере, пересчитать стоимость товара, сохранить стоимость в базу.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!