Если в админ-панели изменить состав (и сумму) заказа, к которому, при его создании, была применена скидка, то эта скидка не пересчитывается по новой сумме заказа. Она остается без изменения. Скидка оформлена для зоны Корзина.
На витрине (страница checkout) скидка пересчитывается, если удалить товар…
В config.local.php параметр установлен:
‘do_not_apply_promotions_on_order_update’ => false
При do_not_apply_promotions_on_order_update = true (было по умолчанию), все то же самое. То есть изменение этого параметра ничего не дает.
Воспроизведение типично. Заказ оформляется на витрине. Затем изменяется в админ-панели.
Сейчас сделал то же самое на демо дистрибутиве - версия 4.13.3.
То же самое - скидка не пересчитывается!
Параметр и там установлен ‘do_not_apply_promotions_on_order_update’ => false
Если мне память не изменяет, то подобные вопросы уже возникали пару раз, и техподдержка эти темы не комментировала. По моим ощущениям, это всё таки не баг, а попросту отсутствие функционала пересчёта, хотя, может быть и ошибаюсь. В любом случае напишите в техподдержку, а когда получите ответ по существу, то отпишите в этой теме, поделитесь инфой с сообществом, чтоб мы все тоже знали, что это на самом деле – баг или дырка от бублика.
Я читал эти топики, прежде чем написать этот. Про do_not_apply_promotions_on_order_update я оттуда и взял.
Ответили они в хелпдеск.
Нет у них такой функции - перерасчет скидок, при изменении заказа.
О так уот.
Так что расслабиться и попробовать получить удовольствие )
Чекбокс со скидки в заказе снимали перед сохранением? Только что попробовал сам. Чистая установка.
Создаём заказ с белой футблкой. Сохраняем. скидок нет.
Добавляем акцию на футболку. Пересохраняем заказ. Скидок нет.
Меняем твик в конфиг-файле. Пересохранияем заказ. Скидка появилась.
Я ведь пробовал там убирать этот чекбокс, но до того как do_not_apply_promotions_on_order_update изменил.
А после изменения не попробовал.
Но это странная логика - есть строка “Скидка на заказ” с чекбоксом. Что первое приходит в голову? Этот чекбокс управляет включением или отключением скидки на заказ.
Чекбокс включен - скидка применяется. Чекбокс выключен - скидка НЕ применяется.
По факту же получается что этот чекбокс на применение скидки к заказу вообще не имеет отношения. Что он включен, что выключен - скидка все равно применяется.
Но оказывается, что этот чекбокс связан с почти недокументированной опцией еще и в скрытых настройках системы.
Жесть.
Как догадаться, что “Скидка на заказ” это перерасчет скидки, ЕСЛИ выключена скрытая опция do_not_apply_promotions_on_order_update?
Не совсем так. Твик в конфиг файле указывает пересчитывать ли промо-акции при редактировании. Это самостоятельная опция.
Чекбокс скидки указывает что заказу задана вполне конкретная скидка. Сохраняя заказ с чекбоксом менеджер как бы указывает что скидка должна быть именно такая и не зависимо от настроки в файле менять скидку не нужно.
Наверное, решением было бы разделить скидки. Одна автоматическая, которая пересчитывается или не пересчитывается по настройке. Вторая ручная, которую выставляет менеджер лично и которая никаким образом не меняется програмно. Тогда таких непоняток с чекбоксами бы не было