Доброе время суток гуру ОС. Вопрос следующего характера. По умолчанию для товаров можно добавлять опции. Допустим для определенного размера цена будет меняться на +Х или -У. Мне необходимо реализовать таким образом, чтоб эти значения (+ и -) не влияли на стоимость. Допусти цена товара 100, а опция стоит 120, так вот чтоб в корзину сумма попадала не 100+120, а просто 120. Возможно это реализовать?! Думаю в файле контроллера опций поиграться, только не знаю с каким именно нужно.
Если я вас правильно понял вам нужно что то типа пересчета цен? При изменении значения опции пересчитывается цена на клиенте с помощью javascript, затем AJAX запрос к серверу чтобы отформатировать значение цены. ?
Ну на опенкарте опции и так реализованы с пересчетом. Тоесть добавляем опцию со значение +20 и именно на эту сумму пересчитывается цена. Но мне нужно чтоб цена не пересчитывалась, а была такой, какой мы задаем в опции и считала ее как основную цену.
?? --- Добавлено, 11 июл 2014 --- Смысл том, что должен быть какой то файл (или скрипт) в котором реализуется функция вычитания или добавления. Мне она и нужна чтоб подредактировать.
Присоединяюсь к вопросу "какой файл отвечает за вывод опций"? У меня немного другое желание- цены в опциях выводятся типа (+300 р), а мне нужно чтоб без плюса это было написано. Поэтому, собственно, в каком файле это нужно править?
Мне тоже это нужно. Чтобы клиент мог выбрать вес товара, а в выборе было написано не: 2кг + 100 руб, 3 кг +200 руб., а 1 кг - 100 руб, 2 кг - 200 руб. и т.д.
catalog/controller/product/product.php Находим массив: PHP: $option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); Видим в массиве: PHP: 'price_prefix' => $option_value['price_prefix'] это и есть вывод + или - Далее, открываем catalog/view/theme/default/templateroduct/product.tpl Находим вот такое условие: PHP: <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> Убираем вывод префикса... PHP: <?php if ($option_value['price']) { ?> (<?php echo $option_value['price']; ?>) <?php } ?> Для того, чтобы убрать вывод префикса, достаточно убрать в шаблоне, в контроллере можно и оставить, это так, для ознакомления пример в контроллере показал.. Вес выводится по такому же принципу...
asusdemo, вы просто плюсик убираете, если я правильно поняла. А мне надо, чтобы считало по-другому. Например, в карточке товара у меня написано - 100 руб. за кг. Если в опциях будет написано: 2кг - 100 руб (при этом если клиент выберет эту опцию, он получит 2 кг за 200 руб), то клиент запутается. Офигеет и уйдет. А если в опциях будет написано 2 кг - 200 руб., то алгоритм же все равно прибавит 100+200 и клиент в итоге получит 2 кг за 300 руб. В общем, если не менять способ подсчета цены, то просто убрать плюсик ничего не меняет и только запутает клиента.
Но у меня в четырёх местах такое условие- во всех четёрых и менять? Спрашиваю, потому-что может три других отвечают немного за что-то другое, стоит ли у них префиксы убирать, не знаю.
Если вы говорите о выводе в шаблоне, то можете везде.. --- Добавлено, 14 июл 2014 --- Вообще принцип работы опции таков Есть основная цена и есть цена опции, которая + или - к общей цене товара Для того, чтобы, чтобы Ваш клиент не пугался, делают на Jquery автоматическую смену цены при выборе опции, при выборе опции складывается или вычитается основная цена товара и клиент сразу увидит ту сумму, которую уйдет в корзину.. Второй вариант, это основную цену товара оставлять как 0 рублей, а опцию вписать полноценную цену данного кг, грамма и т.д.
asusdemo, мне, получается, нужно, чтобы и плюсик был убран и чтобы цена товара заменялась на цену опции. То есть, клиент выбирает 2 кг - 200 руб., И чтобы цена на товар менялась и выводилась как 0+200 (значение указанное в опциях). Только вот как оно сделать Вот тут есть бесплатный модуль для обновления цены при выборе опций: https://opencartforum.com/files/file/743-обновление-цены-при-выборе-опции-без-ajax-vqmod/