Смотрел код, который типа поправили в модуле vote в версии 21.0.100, нашёл такой же код в модуле disk, который не поправляли. Т.ч., возможно, что не конец истории
20.04.2018 16:37:50
[QUOTE]Евгений Жуков написал:
[QUOTE] Антон Козлов написал: p.s. скидка модуля catalog, кстати, если это имеет значение.[/QUOTE] Да, имеет. Причем решающее. Вешайте обработчик на событие OnGetOptimalPrice либо на OnGetOptimalPriceResult. В первом можно реализовать полностью свою логику, во втором - повлиять на результат и список примененных скидок торгового каталога.[/QUOTE] Спасибо. |
|
|
20.04.2018 12:45:14
[QUOTE]Евгений Жуков написал:
Антон, вы не понимаете, что такое купон и как он работает. Купон - всего-навсего еще одно условие применения скидки. С ним ничего делать не надо. Нужно добавлять условия в саму скидку. Об этом я вам уже говорил.[/QUOTE] Наверное, не понимаю. У меня есть задача - мне нужно отменить скидку, которая применилась при использовании купона. Скидка применяется ко многим клиентам одновременно(т.е. играться с её условиями на лету - не вариант), я же хочу отменить её у конкретного клиента, который не имеет на неё права - потому что уже ранее использовал её купон - как это сделать? p.s. скидка модуля catalog, кстати, если это имеет значение. |
|
|
20.04.2018 10:04:05
[QUOTE]Евгений Жуков написал:
На основании событий менеджера купонов - нет.[/QUOTE] Да на основании чего угодно. Вот применил я купон, хожу по страницам сайта, ушёл, через неделю вернулся на сайт, купон за это время изменил скидку, например, или исчез вообще. Как его отменить у покупателя в корзине? |
|
|
19.04.2018 18:03:02
[QUOTE]Валерий Дьяченко написал:
Решил задачу отмены примененного купона следующим образом. [/QUOTE] Здравствуйте, Валерий. Да, такое решение вполне подходит, если все условия проверки купона постоянны. У нас ситуация такая - есть купоны одноразовые на клиента - можно применить только на первый заказ, все последующие не должны применяться. Ваше решение тут не подойдёт потому что неавторизованным пользователь может ввести ранее использовавшийся им купон, а потом авторизоваться и в этом случае мне нужно деактивировать введённый им купон. [QUOTE]Евгений Жуков написал:[/QUOTE] Евгений, я просил Вас в сообщении [URL=https://dev.1c-bitrix.ru/support/forum/messages/forum6/topic56853/message522531/#message522531]https://dev.1c-bitrix.ru/support/forum/messages/forum6/topic56853/message522531/#message522531[/URL] помочь с решением. Можно ли провести обратную операцию - деактивировать купон, а затем пересчитать корзину без него? |
|
|
01.02.2018 12:33:41
[QUOTE]Евгений Жуков написал:
Для того, чтобы отменить успешный купон, надо откатить результат его применения (изменения цен). Данное событие не даст реализовать подобный сценарий, т.к. вызывается в процессе расчета. Оно создавалось именно для отслеживания успешного применения. Решать задачу учета количества использований можно лишь через кастомные условия правил корзины. Подобный функционал запланирован, но конкретных сроков назвать не можем.[/QUOTE] Егвений, а почему нельзя решить подобный функционал через событие EVENT_ON_BEFORE_COUPON_APPLY и Вы так категорично против него настроены? Кому надо - допилили бы функционал, ведь решило бы проблему. Как мне поступить в моём случае? - подскажите решение, поделитесь опытом. |
|
|
01.02.2018 09:15:59
[QUOTE]Евгений Жуков написал:
[QUOTE] Алексей написал: Можно воспользоваться событием Bitrix\Sale\DiscountCouponsManager::EVENT_ON_COUPON_APPLY .[/QUOTE] [QUOTE] Антон Козлов написал: Надо попробовать, хорошая идея[/QUOTE] Событие вызывается ПОСЛЕ успешного применения.[/QUOTE] Алексей об этом и говорит. Имеется в виду отменить только что успешно применённый купон, если он запрещён для данного пользователя. |
|
|
31.01.2018 19:56:30
[QUOTE]Алексей написал:
[QUOTE] Антон Козлов написал: Стоит задача сделать многоразовый купон (для множества клиентов), но на один заказ на клиента.[/QUOTE] Можно воспользоваться событием Bitrix\Sale\DiscountCouponsManager::EVENT_ON_COUPON_APPLY . Проверяем - если данный купон нам не подходит - удаляем данный купон из списка активированных купонов пользователя. Если все норм - оставляем.[/QUOTE] Надо попробовать, хорошая идея. Спасибо! |
|
|
31.01.2018 17:03:47
[QUOTE]Алексей написал:
Так если у вас в произвольном месте это происходит, то почему бы не разрулить непосредственно в методе , которым обрабатываете ввод купона?[/QUOTE] Потому что это происходит в sale.basket.basket, который кастомизировать тоже не очень хочется. По ходу единственное решение на JS проверять ввод поля. |
|
|
31.01.2018 12:46:16
[QUOTE]Алексей написал:
[QUOTE] Антон Козлов написал: Тогда какие есть варианты решения поставленной задачи? [/QUOTE] Предлагаю вариант через OnSaleComponentOrderShowAjaxAnswer. Костыльно, да. Но куда деваться. Зато, без модификации компонента и без потери обновлений. Смотрим на введеный посетителем код купона, анализируем, делаем, что надо и возвращаем соответствующий код. Чуть выше кидал ссылку на аналогичное решение.[/QUOTE] Это не подходит, т.к. купон вводится в корзине, до заказа. Ну, и хочется вообще предусмотреть ввод купона до корзины или заказа - маркетинг такой маркетинг... |
|
|