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

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

http://joxi.ru/ZrJZ5eNTwbRZ9r.png

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

http://joxi.ru/823R3LbC9aMODm.png

то есть посчитались скидка 10% на корзину плюс бонус 500 р за самовывоз
http://joxi.ru/Vrw6wY3c7jbzEA.png

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

http://joxi.ru/J2bKG49t0gBOPA.png

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

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

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

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

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

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

Понял, спасибо. Дилема возникла из-за того, как я понимаю, что одна настройка решает две противоположные проблемы. Абсолютно согласен, что новые акции к старым заказам не надо применять, это логично и обосновано (была скидка 10%, а сейчас применима другая акция, добавили или удалили позицию, а скидка стала 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”;}}}}
на основании которого и делать пересчет скидки при редактировании заказа

1 лайк

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

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

4 лайка

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

1 лайк

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

1 лайк

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

1 лайк

И да, может быть в обычном магазине одного менеджера и приучивать не понадобится, он считает в уме.
А как быть с продавцами в Multi-Vendor? Сказать по правде, они путают поля “Цена” и “Рекомендованная цена”, когда создают карточки товаров, а уж проверять и пересчитывать заказы с помощью калькулятора для них вообще космос. :rofl:

+1. Конечно, надо что-то придумать для неандертальцев.

1 лайк

Привет!
Столкнулся с проблемой.
У нас мелкооптовая продажа.
Мы подключили скидки при разовой покупки от 20 единиц, 30 единиц , 40 единиц и так далее. Скидка считается в %
Дополнительно подключили модуль Программа лояльности где покупатели выкупившие на 500 тыс получают 2 % скидки, на покупку от 1 млн 4% и при покупке от 2 млн 7%
Скидки все суммируются. Скидка от количества + Скидка программы лояльности

Проблема в том, что если покупатель делает заказ и если его потом нужно редактировать и уменьшать количество (менеджер уменьшает количество в админке) то скидка на покупку от количества не пересчитывается.

Например покупатель оформил заказ на 24 единицы и у него включилась скидка 2% т.к он купил товаров на 20 ед и более.
Потом мы редактируем заказ и уменьшаем количество на 19 и скидка не должна по идее уже считаться, но она не редактируется автоматически.
Неужели нужно сидеть с калькулятором менеджеру и пересчитывая редактировать цену?

Вот заказ на стороне клиента


Вот заказ на стороне администратора:

Теперь редактируем заказ и ставим 19 единиц.

Программа лояльности пересчитывает скидку а скидка от количества не меняется!
В нашем случае она не должна была вообще быть после редактирования.
Что это за проблема и как ее решить?

Скидки хотелось бы все оставить чтобы они суммировались.

Я так понимаю спрос не большой и все купили калькуляторы своим менеджерам )
Как все таки решить эту проблему?

Попробуйте в config.local.php
‘do_not_apply_promotions_on_order_update’ => true,

true поменять на false

Тогда при редактировании заказа в админке будут применяться все промо-акции. Но при таком сценарии есть свои подводные камни, иногда нужно на оборот, чтобы промо-акции при редактировании заказа не применялись и цена не менялась (например редактируя заказы когда клиент успел купить товары по скидке но на текущий день акция уже закончилась, а покупатель просит увеличить количество или добавить еще один товар и при редактировании такого заказа он лишается скидок на уже заказанные ранее товары).

1 лайк

Для меня не понятно почему программа лояльности при редактировании заказа автоматически пересчитывает и редактирует стоимость а скидки от количества никак не реагирует на изменения.

Так покупатель может оформить заказ на 61 позицию например и получит скидку в 6%. потом перед отправкой сообщит, что ему нужно сейчас только 15 ед. У нас до 20 единиц нет скидок.
Мы редактируем количество а скидка зверская остается)))
Если такая элементарная задача не решается стандартно то может есть какой модуль нормальный который сможет это решать без ошибок?
Каждый раз с калькулятором сидеть и проверять не дело.

Если такие клиенты единичные, то как вариант, можно вручную создать новый заказ с нужным количеством товаров.

Все клиенты такие. Кто-то меньше заказывает а кто-то больше. Очень редко у кого заказ без скидки.
Ручной режим не подходит. Нужно чтобы автоматически рассчитывало.

Вам ответили же, нужно в файле config.local.php поменять ‘do_not_apply_promotions_on_order_update’ => false / true и скидки от количества будут пересчитываться. В самом заказе не забудьте убирать галочку (скрин ниже) и потом нажать “пересчитать”.

Ситуация такая, что чтобы он не делал его задача не решится, не даром SanyaSaj об этом пишет. Это то же самое, что у человека только одна варежка, она на правой руке, по этому левая рука мёрзнет, и чтобы её не отморозить переодевает варюшку, но тогда мёрзнет правая рука.

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

2 лайка

Да, именно это мне и нужно )).
Вроде логично все и даже мыслей не было, что такая проблема может возникнуть