Пересчет скидки на корзину при редактировании заказа


#1

Воспроизводится на демо
Как воспроизвести.
Промо-акция на корзину: при каких либо условиях (купон или группа покупателя) - бонус: скидка на заказ - на процент от исходной цены

Покупатель оформляет заказ

то есть посчитались скидка 10% на корзину плюс бонус 500 р за самовывоз

теперь менеджер редактирует заказ и по просьбе покупателя удаляет одну позицию

как видим - сумма заказа изменилась, а скидка не пересчиталась, и кнопки пересчитать тоже не появилось, так что теперь в итоге скидка на заказ получилась не 10%, а почти все 25

Сейчас получается, что менеджеру надо при редактировании заказа вручную проходить по заказу, с калькулятором в руках пересчитывать полагающуюся скидку на корзину, и вписывать это значение в поле Скидка на заказ, хотя такое действие должно бы пересчитываться автоматически…

PS: счёты не предлагать :slight_smile: (шутка!)


#2

Применение промо-акций при редактировании заказа отключили намеренно в 4.5.1. По задумке администратор должен вручную изменить/применить скидку при редактировании заказа.

Вы можете отключить твик do_not_apply_promotions_on_order_update в config.local.php


#3

Если это правда, рекламные акции, примененные к заказу, не будут изменены при редактировании заказа. Новые акции не будут применяться к заказу. (с) гугл транслейт :slight_smile:

Понял, спасибо. Дилема возникла из-за того, как я понимаю, что одна настройка решает две противоположные проблемы. Абсолютно согласен, что новые акции к старым заказам не надо применять, это логично и обосновано (была скидка 10%, а сейчас применима другая акция, добавили или удалили позицию, а скидка стала 5%)
А вот автопересчет по уже примененным к корзине промо - это вроде как совсем другая песня.
Может, перенести тогда в Как улучшить?


#4

По сути это одна и та же функциональность, т.е. чтобы сделать то что вы предлагаете придется как-то разделить применение новых акций и обновление уже примененных.

Мне кажется правильнее приучить пользователя (администратора) проверять заказ при редактировании.


#5

а зачем разделять? в данном конкретном случае - нам никоим образом не нужны все остальные промо, существующие на данный момент, в таблице orders есть поле promotions с примерно следующим содержимым
a:1:{i:21;a:1:{s:7:“bonuses”;a:1:{i:0;a:4:{s:5:“bonus”;s:14:“order_discount”;s:14:“discount_bonus”;s:13:“by_percentage”;s:14:“discount_value”;s:2:“10”;s:12:“promotion_id”;s:2:“21”;}}}}
на основании которого и делать пересчет скидки при редактировании заказа


#6

Перенес топик в раздел “Как улучшить CS-Cart”. Если будет большой спрос, то эта функциональность может быть добавлена в будущем


#7

+1 к большому спросу
подбешивает использование калькулятора там, где должен быть перерасчет автоматом.
Изменение корзины заказа обычно происходит параллельно с разговором по телефону с клиентом. И вот менеджер удалил/добавил позицию и давай искать калькулятор, вбивать циферки, делить/умножать, параллельно пыхтя в трубку телефона. Вообще нужно исключать человеческий фактор в таких делах, т.к. ошибка менеджера может стоить либо денег компании, либо доверием клиента.


#8

Вы тут не правы , у администратора может быть 100500 дел и заказов + человеческий фактор никто не отменял


#9

Поддержу @anatolij , у нас например, я чисто с технической стороны придумываю, как реализовать ту или иную придумку шефа, фишку или акцию, так чтобы они еще и со всем остальным увязывалось. Менеджеры имеют дело чисто с цифрами. Благо 1с пересчитывает это дело на лету, и разница была замечена вовремя. Человеческий фактор - это то, что маячащая перед глазами вкладка Промо акции, ее существование, вообще оказалось откровением для менеджера. Ну хотябы потому что при редактировании заказа этой вкладки нет. Пересчитывать самому можно еще когда мало акций и покупателей, а когда их много…


#10

А нельзя ли просто сделать чекбокс в меню настройки - “автоматически пересчитывать скидку при редактировании заказа”. И каждый сам будет решать исходя из ситуации.
Отсутствие пересчета выглядит прямо скажем “архаично”, крадет много времени и служит источником ошибок.