Надо менять заложенную изначально логику в статусы заказов. Давно надо, то, что было хорошо 10 лет назад - сейчас изжило себя, и отстает от современности лет этак на тысячу. Что у нас есть? У нас есть заказы, и статусы его пути от витрины до географического местоположения. Есть отгрузки - собран/не собран.
Не буду говорить о возможных и необходимых реализациях. Приведу только несколько примеров.
- Заказ оплачен на сайте. Получает статус Обработан (кажется так). Потом он ставится в работу, потом на доставку, потом выполнен… И хрен уже поймет, кто оплачен а кто нет в итоге. С кого надо курьерской компании брать наложку, а с кого нет. Решение - статус оплаты должен быть самостоятельной отдельной сущностью.У себя я привязал метку к способам оплаты, и если это предоплата - вывожу в списке заказов - “предоплачен” (это пока, потом - в заказах завел два поля - тип оплаты, оплаченная сумма).
- Частичный отказ при получении. И как вы предлагаете мне это сделать? заказ покупатель принял, но из трех товаров от одного отказался. Удалить из заказа? Но тогда товар сразу появится в магазине, а вернется он ко мне издалека только через месяц. Да и забудут работники через месяц отследить приход возврата. Вернуть весь заказ? Да вы что? Правильно - разделить заказ на два отправления, одно вручить покупателю, а второе - что оно возвращается. А, да, отгрузкам конечно можно добавить новые статусы, но… вот только они ни на что не влияют. Ну и терминология: отгрузка - это процесс передачи отправлений, а отправления - это то, что мы передаем курьеру для доставки.
- Не существует никаких зависимостей между статусами заказов. Невозможно разбить один артикул на несколько отправлений. Нетривиален процесс разбиения на “отгрузки”. Про отслеживание - вообще молчу. Статусы отгрузок - это просто “слова” для обозначения.
- Давно когда-то попытался воспользоваться отгрузками (которые те самые 10 лет кажется пребывают в “стабильности”) - и был абсолютно уверен, что когда я ставлю все отправления по заказу в статус Отгружен - то и заказ переходит в статус Доставляется. Каково же было мое удивление…
Вообще не сочтите зазорным, посмотрите, как это реализовано у других. Когда заказ приходит в статус Новый - это заказ. Все хорошо - он в работе. Далее заказ переходит в отправление - в одно, если это один товар, или в несколько, если в одну коробку положить не получится. И начиная с этого момента - отгрузка становится основной сущностью, дочерней от заказа, а заказ отходит на второй план.
В общем, тяжко это всё сознавать. Потому что конечно со статусами завязано всё. И менять придется много чего и где. Но это нормальная цена за “быть в ногу со временем”.