208 похожих чатов

Копаюсь в api правил корзины и что-то пока не могу

сообразить - можно ли к конкретному товару применить правило просто чтоб посмотреть цену со скидкой, но не менять её по факту в корзине?
Задача примерно следующая - например у меня при покупке чехла вместе с телефоном, на телефон даётся скидка 10%.
Мне нужно в карточке товара сделать кнопку, типа "Посмотреть цену при покупке чехла". При нажатии на эту кнопку появляется сообщение наподобие "Если добавите к заказу чехол то ваш телефон будет стоить 9000 вместо 10000."

Просто рассчитать цену в скрипте не подходит, так как там на самом деле очень сложное правило корзины из 12 разных условий и 6 возможных размеров скидки.

7 ответов

23 просмотра

Примерный план действий при клике на кнопку: 1. Создаете виртуальную корзину 2. Добавляете в нее телефон и чехол 3. Вызываете расчет цен корзины

Alexey-Nazarov Автор вопроса
Ruslan
Примерный план действий при клике на кнопку: 1. Со...

Спасибо. Думал про что-то такое, но надеялся есть попроще варианты. Типа getPriceWithDiscount($productId, $discountId) Придётся самому писать😁

Alexey-Nazarov Автор вопроса

Если кому интересно, то не стал делать манипуляции с виртуальными заказами/корзинами. Правила и размеры скидок получил через CSaleDiscount::GetByID(), обработав его до простого читаемого массива. Все данные записал в js объект и отдал обработчику в script.js. Там, после проверки всех условий, выбирается размер скидки и покупателю показывается возможная цена со скидкой.

Alexey Nazarov
Если кому интересно, то не стал делать манипуляции...

Считайте, что пошли по канату без страховки.

Alexey-Nazarov Автор вопроса
Eugene Zhukov
Считайте, что пошли по канату без страховки.

Ну, для моей задачи этого хватило. Условий много, но они однотипные, я их все собрал в простой объект и отдал в js. Сейчас, если в правило корзины добавить или убрать какие-то условия, то всё аналогично подтягивается. К тому же это просто информационная фича, а не настоящая скидка. На скрине собираются параметры по свойству товара. Потом в шаблоне детальной страницы товара проверяется принадлежность товара к нужному разделу, в скрытый инпут записывается значение свойства от которого зависит размер скидки. Если товар из нужного раздела, то появляется кнопка "Посмотреть цену при самовывозе". При нажатии срабатывает js, который считывает значение свойства из скрытого инпута, перебирает объект со скидками, находит подходящую, применяет её к текущей цене и показывает пересчитанную цену пользователю. Но если подскажете какой способ для этой задачи наиболее правильный, то буду очень благодарен.

Alexey Nazarov
Ну, для моей задачи этого хватило. Условий много, ...

Вам его выше сказали - создать объект заказа и получить из него обьект скидок. Самый надежный и универсальный.

Alexey-Nazarov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта