[Помогите] Где находится файл для редактированния опций

Тема в разделе "OpenCart", создана пользователем KEH, 11 июл 2014.

  1. KEH

    KEH

    Регистрация:
    2 июл 2013
    Сообщения:
    204
    Симпатии:
    28
    Доброе время суток гуру ОС. Вопрос следующего характера. По умолчанию для товаров можно добавлять опции. Допустим для определенного размера цена будет меняться на +Х или -У. Мне необходимо реализовать таким образом, чтоб эти значения (+ и -) не влияли на стоимость. Допусти цена товара 100, а опция стоит 120, так вот чтоб в корзину сумма попадала не 100+120, а просто 120.
    Возможно это реализовать?! Думаю в файле контроллера опций поиграться, только не знаю с каким именно нужно.
     
  2. Hqservers_Ivan

    Hqservers_Ivan

    Регистрация:
    10 июл 2014
    Сообщения:
    14
    Симпатии:
    4
    Если я вас правильно понял вам нужно что то типа пересчета цен? При изменении значения опции пересчитывается цена на клиенте с помощью javascript, затем AJAX запрос к серверу чтобы отформатировать значение цены. ?
     
  3. KEH

    KEH

    Регистрация:
    2 июл 2013
    Сообщения:
    204
    Симпатии:
    28
    Ну на опенкарте опции и так реализованы с пересчетом. Тоесть добавляем опцию со значение +20 и именно на эту сумму пересчитывается цена. Но мне нужно чтоб цена не пересчитывалась, а была такой, какой мы задаем в опции и считала ее как основную цену.
     
  4. Hqservers_Ivan

    Hqservers_Ivan

    Регистрация:
    10 июл 2014
    Сообщения:
    14
    Симпатии:
    4
  5. KEH

    KEH

    Регистрация:
    2 июл 2013
    Сообщения:
    204
    Симпатии:
    28
    ??
    --- Добавлено, 11 июл 2014 ---
    Смысл том, что должен быть какой то файл (или скрипт) в котором реализуется функция вычитания или добавления. Мне она и нужна чтоб подредактировать.
     
  6. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Присоединяюсь к вопросу "какой файл отвечает за вывод опций"? У меня немного другое желание- цены в опциях выводятся типа (+300 р), а мне нужно чтоб без плюса это было написано. Поэтому, собственно, в каком файле это нужно править?
     
  7. Doll

    Doll

    Регистрация:
    30 июн 2014
    Сообщения:
    39
    Симпатии:
    1
    Мне тоже это нужно. Чтобы клиент мог выбрать вес товара, а в выборе было написано не: 2кг + 100 руб, 3 кг +200 руб., а 1 кг - 100 руб, 2 кг - 200 руб. и т.д.
     
  8. asusdemo

    asusdemo Веб-архитектор ocDesign.ru

    Регистрация:
    11 фев 2013
    Сообщения:
    135
    Симпатии:
    26
    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'], 5050),
                                    
    '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 ?>
    Для того, чтобы убрать вывод префикса, достаточно убрать в шаблоне, в контроллере можно и оставить, это так, для ознакомления пример в контроллере показал..

    Вес выводится по такому же принципу...
     
    avtostopshik нравится это.
  9. Doll

    Doll

    Регистрация:
    30 июн 2014
    Сообщения:
    39
    Симпатии:
    1
    asusdemo, вы просто плюсик убираете, если я правильно поняла. А мне надо, чтобы считало по-другому. Например, в карточке товара у меня написано - 100 руб. за кг. Если в опциях будет написано: 2кг - 100 руб (при этом если клиент выберет эту опцию, он получит 2 кг за 200 руб), то клиент запутается. Офигеет и уйдет. А если в опциях будет написано 2 кг - 200 руб., то алгоритм же все равно прибавит 100+200 и клиент в итоге получит 2 кг за 300 руб. В общем, если не менять способ подсчета цены, то просто убрать плюсик ничего не меняет и только запутает клиента.
     
  10. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Но у меня в четырёх местах такое условие- во всех четёрых и менять? Спрашиваю, потому-что может три других отвечают немного за что-то другое, стоит ли у них префиксы убирать, не знаю.
     
  11. asusdemo

    asusdemo Веб-архитектор ocDesign.ru

    Регистрация:
    11 фев 2013
    Сообщения:
    135
    Симпатии:
    26
    Если вы говорите о выводе в шаблоне, то можете везде..
    --- Добавлено, 14 июл 2014 ---
    Вообще принцип работы опции таков Есть основная цена и есть цена опции, которая + или - к общей цене товара
    Для того, чтобы, чтобы Ваш клиент не пугался, делают на Jquery автоматическую смену цены при выборе опции, при выборе опции складывается или вычитается основная цена товара и клиент сразу увидит ту сумму, которую уйдет в корзину..
    Второй вариант, это основную цену товара оставлять как 0 рублей, а опцию вписать полноценную цену данного кг, грамма и т.д.
     
    Последнее редактирование: 14 июл 2014
    avtostopshik нравится это.
  12. Doll

    Doll

    Регистрация:
    30 июн 2014
    Сообщения:
    39
    Симпатии:
    1
    asusdemo, мне, получается, нужно, чтобы и плюсик был убран и чтобы цена товара заменялась на цену опции. То есть, клиент выбирает 2 кг - 200 руб., И чтобы цена на товар менялась и выводилась как 0+200 (значение указанное в опциях). Только вот как оно сделать :smile:
    Вот тут есть бесплатный модуль для обновления цены при выборе опций:
    https://opencartforum.com/files/file/743-обновление-цены-при-выборе-опции-без-ajax-vqmod/
     
    Последнее редактирование: 14 июл 2014
  13. asusdemo

    asusdemo Веб-архитектор ocDesign.ru

    Регистрация:
    11 фев 2013
    Сообщения:
    135
    Симпатии:
    26
    Так в опции сделайте сумму
    PHP:
    <?php echo $option_value['price'] + $price?>)