kimono11 Опубликовано: июля 31, 2019 Жалоба Поделиться Опубликовано: июля 31, 2019 Добрый вечер. Второй день ищу решение по форумам, но безрезультатно. Стандартно опции плюсуют или вычитают от основной цены товара, по каждой единице. Мне нужно чтобы опция прибавлялась не к каждой единице, а к суммарному количеству. Пример: Делаем сахар с стиках с логотипом заказчика. Минимальный тираж 100кг. Есть дополнительные затраты на печатные формы(клише), которые плюсуются к тиражу (100, 200, 300 кг) Расчет тиража происходит по формуле: 100кг*36,50+1клише*400,00=4050,00 200кг*35,00+1клише*400,00=7400,00 Как, каким модулем вывести клише опциями и прибавлять к тиражу? Скрытый текст Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Get-Web Опубликовано: июля 31, 2019 Жалоба Поделиться Опубликовано: июля 31, 2019 То есть у вас товар это килограммы? Я для таких целей использовал опции с количеством вот пример Суть в том что у вас есть один товар, это сахар и у вас есть опция килограммы, которые вы можете увеличивать. При этом другие опции просто приплюсуются к одной единице товара Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
kimono11 Опубликовано: августа 1, 2019 Автор Жалоба Поделиться Опубликовано: августа 1, 2019 9 часов назад, Get-Web сказал: То есть у вас товар это килограммы? Я для таких целей использовал опции с количеством вот пример Суть в том что у вас есть один товар, это сахар и у вас есть опция килограммы, которые вы можете увеличивать. При этом другие опции просто приплюсуются к одной единице товара Товар это сахар (телефон, кроссовки), и есть его количество (в килограммах или в штуках неважно) Спасибо за наводку, смотрел этот модуль, но не хотелось бы таким способом как в Вашем примере. Тем более что цена зависит от количества (кг) Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: августа 1, 2019 Жалоба Поделиться Опубликовано: августа 1, 2019 6 часов назад, kimono11 сказал: Спасибо за наводку, смотрел этот модуль, но не хотелось бы таким способом как в Вашем примере. Тем более что цена зависит от количества (кг) К этому модулю есть дополнение, чтобы можно было устанавливать арефметические действия */% Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
kimono11 Опубликовано: августа 6, 2019 Автор Жалоба Поделиться Опубликовано: августа 6, 2019 В 01.08.2019 at 18:51, BuslikDrev сказал: К этому модулю есть дополнение, чтобы можно было устанавливать арифметические действия */% Да, я устанавливал это дополнение, у меня есть эти опции: =, *, +%, -% Но они считаются также как + и - к одной единице товара, а не к сумме товаров. Сейчас пытаюсь на примере этого дополнения дописать нужную функцию, но я самоучка и для меня сложновато. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: августа 6, 2019 Жалоба Поделиться Опубликовано: августа 6, 2019 2 часа назад, kimono11 сказал: к одной единице товара, а не к сумме товаров Что к сумме нужно добавить? Почему скидка от количества не устраивает? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Get-Web Опубликовано: августа 6, 2019 Жалоба Поделиться Опубликовано: августа 6, 2019 3 часа назад, kimono11 сказал: к одной единице товара, а не к сумме товаров. Если очень хочется и формирование цены в магазине это допускает, то в /system/library/cart/cart.php Есть строка: 'total' => ($price + $option_price) * $cart['quantity'], Если удалить * $cart['quantity'] то количество не будет учитываться в итоговой стоимости Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
kimono11 Опубликовано: августа 7, 2019 Автор Жалоба Поделиться Опубликовано: августа 7, 2019 14 часа назад, BuslikDrev сказал: Что к сумме нужно добавить? Почему скидка от количества не устраивает? Видимо в первом посте недостаточно ясно выразился с примерами. Попробую пояснить по другому. Стандартный функционал выглядит так: 'price' => ($price + $option_price), 'total' => ($price + $option_price) * $cart['quantity'], Мне нужно добавить дополнительный вид опции так, чтобы итоговое значение получалось следующим: 'total' => ($price * $cart['quantity']) + $option_price, Надеюсь пример на гаджетах станет более понятным. Товар - Наушники. В опциях к этим наушникам я хочу вывести дополнительные аксессуары на выбор - футляр, переходник USB Type-C, и т.д. Покупатель может выбрать Наушники 10 шт. + 1 футляр + 1 переходник. Тогда общая сумма заказа должна выглядеть так: 10 наушников * 5$ + 1 футляр 1,5$ + переходник 1,5$ Итого 10*5+1,5+1,5=53$ (сейчас система по-умолчанию считает так: (5+1,5+1,5)*10=80 ) Мои предположения и наброски как это сделать на основе options_price_OC2.ocmod.xml По примеру добавленных функций =,/, *, +%, -%, нужно добавить новую: в admin/view/template/catalog/product_form.tpl html += ' <option value="f">()+</option>'; и <?php if ($product_option_value['price_prefix'] == 'f') { ?> <option value="f" selected="selected">()+</option> <?php } else { ?> <option value="f">()+</option> <?php } ?> и в system/library/cart/cart.php $new_total = $total; } else if ($operation == 'f') { $new_total = ($new_price * $cart['quantity']) + $new_option_price; $new_option_price = $new_option_price + $value; или $new_option_price += $value; Пока не знаю как правильно добавить сюда: Скрытый текст <file path="catalog/controller/product/product.php"> <operation> <search><![CDATA[$price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false)]]></search> <add position="replace"><![CDATA[ if ($option_value['price_prefix']=="u") { $price = '+' . (float)$option_value['price'].'%'; } elseif ($option_value['price_prefix']=="d") { $price = '-' . (float)$option_value['price'].'%'; } elseif ($option_value['price_prefix']=="*") { $price = '*' . (float)$option_value['price']; } elseif ($option_value['price_prefix']=="/") { $price = '/' . (float)$option_value['price']; } else{ $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } // $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false)]]></add> </operation> </file> Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: августа 7, 2019 Жалоба Поделиться Опубликовано: августа 7, 2019 1 час назад, kimono11 сказал: Надеюсь пример на гаджетах станет более понятным. Товар - Наушники. В опциях к этим наушникам я хочу вывести дополнительные аксессуары на выбор - футляр, переходник USB Type-C, и т.д. Покупатель может выбрать Наушники 10 шт. + 1 футляр + 1 переходник. Значит вам нужен модуль товар в опциях (товар выделяется, при нажатии кнопки купить добавляется в корзину в итоге в корзине 2 товара и нужная вам сумма), либо сделать копию рекомендуемых, либо сами рекомендуемые туда установить (только сумма будет считаться отдельно, но в корзине общая норм). Скрытый текст https://opencartforum.com/files/file/4540-komplektuyuschie-dlya-tovara/ Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.