Как работать с остатками при отмене заказа?

Тема, которая является продолжением этой темы: Менять статусы открытых заказов по крону

Используется синхронизация остатков товаров из 1С в режиме “только изменения”, т.к. в каталоге 200 тыс. товаров и в режиме “все товары независимо от изменений” обмен проходит несколько суток.

Вкратце суть проблемы:

  1. Есть товар, которого в данный момент на складе по 1С 10 шт.
  2. Покупатель размещает заказ на выставление счёта на оплату для юр.лиц на 7 шт. товара. В cs-cart списывается со склада 7 шт. этого товара, теперь в свободном остатки на витрине показывается 3 шт. Статус заказа в cs-cart “Отправлен счёт”.
  3. В 1С этот заказ пока не попадает, т.к. настроена синхронизация заказов только в статусе “Оплачен”. Т.е. в 1С по-прежнему 10 шт. на складе, никаких изменений не произошло.
  4. После этого, пока покупатель решается, оплачивать ему в итоге заказ или нет, у нас произошло пополнение склада, этого товара приехало ещё 10 шт. на склад, итого по 1С и в реальности у нас 20 шт. этого товара. Произошла синхронизация изменений, в cs-cart подгрузилось новое количество остатков товара, теперь на витрине 20 шт., как и в 1С.
  5. Проходит время, покупатель так и не решился оплачивать заказ. Меняем статус заказа на “Аннулирован”, и кол-во из этого заказа возвращается по логике cs-cart на склад и прибавляется к тому количеству, которое есть в данный момент, т.е. становится 20+7=27 шт.

И всё. Как результат, в реальности у нас 20 шт. товара, а в cs-cart значится 27 шт.
Как победить эту проблему?

Допустим, не менять статусы отменённых заказов, пусть так и висят открытые. Во-первых, с точки зрения аналитики это неправильно. Но тут тогда другая ситуация может возникнуть, начиная с п.4:
4. На склад нет никаких новых пополнений, как было 10 шт., так и лежит по 1С и в реальности.
5. Клиент так и не оплатил заказ, но мы статус не поменяли, и на витрине так и значится теперь 3 шт.

И тут опять несоответствие: в реальности 10 шт., а на витрине 3 шт.

Единственное, это регулярно заливать из 1С все остатки всех товаров, чтобы переписывать эту ересь в cs-cart, но у меня используется многоскладовость и обмен 200 тыс. товаров может идти несколько дней, уже тестил.

Кто как решает эту проблему вообще?

Мне кажется, было бы оптимальным добавить просто в настройку статуса здесь вариант “Не менять”, для того, чтобы расчёт остатков не вёлся в cs-cart, а вёлся в какой-то внешней учётной системе (в 1С, например). Было бы логично. Почему обязательно надо либо уменьшать, либо увеличивать, а третьего не дано? Это что, какая-то жёсткая необходимость ядра?

А у Вас в 1С товар что, не резервируется? Только два варианта: или свободен, или списан?

То, что у вас возникли такие проблемы - говорит, что неправильно выстроена бизнес-модель. Вы насколько помню беспокоитесь, что большое число неоплаченных заказов может заполонить базу 1С. Расскажу как у нас. Заказ Открыт - падает в 1С. Упал в 1С - становится В работе. Если заказ до отгрузки отменяется - на сайте становится Аннулирован, и также отправляется в 1С, где на Аннулированый заказ ставится пометка на удаление.

2 лайка

В каком случае? Для всех созданных заказов? Нет, не резервируется, потому что из 10 выставленных счетов только 1 может пойти в оплату, и что теперь, под остальные 9 счетов тоже держать резерв? Во-первых, с какой стати, а во-вторых, мы работаем в 90% случаев с перепродажей товаров от поставщиков, а не с собственного склада, а у поставщиков тоже нет понятия резерва. Хочешь зарезервировать - просто оплачивай товар сейчас, вот тебе и резерв.

Конкретнее можно, что не так с бизнес-моделью, которую я описал?

в статусе “в работе” у вас товар резервируется?

У нас товар резервируется сразу как падает в 1С (1С каждые 15 минут запрашивает у сайта новые заказы)

отсюда и все беды. У вас свой учет в 1с, свой учет в базе сайта, а потом вы голову чешете - почему не сходится?

Я лишь ответил на ваш вопрос.

1 лайк

В итоге в очередной раз выручили разработчики из @ecomlabs , которые для меня добавили вариант “Не менять” и я выставил его в нужных статусах заказов. Теперь конфликтов с 1С быть не должно.

1 лайк

@ecomlabs Вообще молодцы ребята,вообще всем бы советовал к ним обращаться.

2 лайка

это не логично что варианта “не менять” нет изначально