Произвольная цена в корзине

Автор icedfox, 27 мая 2016, 02:21:35

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

icedfox

Добрый день.
Как бы реализовать чтобы при добавлении товара в корзину цена бралась из переменной <input hidden... или javascript со страницы product page
Дело в том что реально такого товара нет, каждый раз его цена пересчитывается по сложным формулам из значений дропдаунов. Отображение цены #our_price_display работает, но вот при добавлении товара в корзину - берется оригинальная цена из базы  :-[
Знаю что это возможно, пример - http://module-presta.com/custom-price.html
Этот платный модуль не устраивает потому что нужна не произвольная, а посчитаная цена.
Долго искал, но безрезультатно  :-[ выручайте
Спасибо заранее!

PrestaMan

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

icedfox

Спасибо за ваш ответ.
Цитата: PrestaMan от 27 мая 2016, 09:04:29
заменить переменную цены на созданное поле.
Может подскажете что за переменная ?

PrestaMan

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

Adik

У вас больше похоже на спец. цену. Не пробывали создавать правила ценообразования в админке? Там можно разные условия подставлять.

icedfox

#5
Нет, это не подходит. Слишком сложные условия. Цена уже считается правильно javascript'ом на странице продукта. Мне бы просто забрать эту перемнную в крозину по примеру того платного модуля. Переопределение Tools значит что нужно будет цену считать еще раз :(
Внимательно читал http://prestashop-forum.ru/index.php?topic=5188.15 и http://prestashop-forum.ru/index.php/topic,5151.0.html
но где-то видимо туплю  :-\
Если бы кто-то ткнул примером, был бы очень признателен!

Миколас

Если цена уже есть, то делай как в этой теме - http://prestashop-forum.ru/index.php/topic,5151.0.html
В теме в  product.tpl  в form id="buy_block" поле
<input  type="hidden" id="mypice" name="mypice"  value="" >
В своем javascript добавить подстановку цены в mypice и все.

icedfox

Проблема в том что речь идет именно о цене, а не о дополнительном столбце в таблице. Пробовал определять цену в оверрайде Product.php:


$testprice=Tools::getValue('belvg_custom_price');

$price = $testprice;
        //$price += $nbTimesBoughtThisProduct * 10;
    }
//--
        self::$_prices[$cache_id] = $price;
        return self::$_prices[$cache_id];
    }
}

тогда в pop-up цена добавлается правлильно, но только один раз. При попытке изменить цену и добавить еще раз - пересчитывается уже по новой цене. А при открытии корзины - все по нулям, цен нет :(

Adik

Цитироватьbelvg_custom_price
У вас модуль спец цен от belvg? Тогда в нем нужно добавить переопределение цены.