Автор Тема: переменная из product.tpl в cart  (Прочитано 831 раз)

10 Июнь 2019, 09:58:23
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
добрый день.
Что бы сразу не отсылали поиском поискал, нашел, прочитал, ничего не понял. В связи с этим прощу помощи, желательно по подробнее.
1. в product.tpl добавил поле
<input type="hidden" name="id_new_price" id="id_new_price" value="" />
Сюда скриптом вставляются данные после расчета новой цены в зависимости от размеров товара- все хорошо работает.
После эта переменная должна заменить обычную цену товара в корзине.
Как это сделать?
Если можно то по подробнее
10 Июнь 2019, 11:19:53
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
В скрипте и меняйте цену
$(element).find('ид или класс поля цены')."новая цена"
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
10 Июнь 2019, 11:24:17
Ответ #2
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
мне нужно что бы и дальше везде эта цена проставлялась, на всем этапе оформления заказа
10 Июнь 2019, 11:28:06
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Она и будет везде. Вы замените цену на странице товара, его добавят в корзину и новая цена сохранится в базе. После этого на всех этапах будет показана цена, которая сохранилась в базе.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
10 Июнь 2019, 11:40:10
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 16676
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
добрый день.
Что бы сразу не отсылали поиском поискал, нашел, прочитал, ничего не понял. В связи с этим прощу помощи, желательно по подробнее.
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
10 Июнь 2019, 12:00:24
Ответ #5
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Она и будет везде. Вы замените цену на странице товара, его добавят в корзину и новая цена сохранится в базе. После этого на всех этапах будет показана цена, которая сохранилась в базе.
Может быть мы друг друг не понимаем
1. http://prntscr.com/nzuoc7 - это цена по умолчанию.
2. Изменяем ширину - цена изменилась
http://prntscr.com/nzuouc
3. при нажатии на кнопку добавить в корзину - цена остается без изменения
http://prntscr.com/nzuptw

10 Июнь 2019, 12:01:05
Ответ #6
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Чтобы новую цену учитывало, нужно это переменную добавить в табл. товаров, в класс и контроллер.
https://prestashop-forum.ru/index.php/topic,2835.0.html
Так надо не в таблицу ее записывать, она же каждые раз меняется
10 Июнь 2019, 12:03:23
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 16676
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Такое на основнии комбинаций делается. Создаете группы атрибутов, значения и т.д.
10 Июнь 2019, 12:04:36
Ответ #8
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Такое на основнии комбинаций делается. Создаете группы атрибутов, значения и т.д.
а по подробнее можно?
10 Июнь 2019, 12:12:41
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
В prestashop нет такой возможности. Модуль для расчета динамической цены есть а в движке не предусмотрено.
Не получится в шаблоне сделать такое. Нужно будет переопределять класс и контроллер корзины.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
10 Июнь 2019, 12:23:51
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 16676
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Такое на основнии комбинаций делается. Создаете группы атрибутов, значения и т.д.
а по подробнее можно?
По дефолту клиент может только выбирать уже созданные значения 1,2... а не вводить их сам.
Если такое устроит, тогда создаете группу Ширина, в ней значения 1,2..., вторую Длинна, в ней значения 1,2... и у товара создаете комбинации на основе этих значений.
10 Июнь 2019, 12:26:25
Ответ #11
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
По дефолту клиент может только выбирать уже созданные значения 1,2... а не вводить их сам.
Если такое устроит, тогда создаете группу Ширина, в ней значения 1,2..., вторую Длинна, в ней значения 1,2... и у товара создаете комбинации на основе этих значений.

Нее, это не вариант в данном случае, спасибо
10 Июнь 2019, 13:00:39
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 1810
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Под prestashop 1.6 модуль был, правда стоил дорого 300$. Для prestashop 1.7 не видел такого.
10 Июнь 2019, 13:28:31
Ответ #13
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Под 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
10 Июнь 2019, 14:07:10
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Толку что вы добавяете переменную в javascrit нет. В контроллере ее нет, в классе ее нет, в базе ее нет.
В вашем примере jsonData это ответ сервера, вам он не так важен, главное получить эту переменную в контроллере, пересчитать стоимость товара, сохранить стоимость в базу.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!