Я с удовольствием выясняю разницу между «состоянием» заказа и его «статусом» в Magento.
У нас есть настраиваемый поток, настроенный для отправки заказов сторонним исполнителям, и у нас также есть некоторая настраиваемая логика для проверки потенциально мошеннических заказов и пометки их для ручного одобрения для отправки пользователем с правами администратора для выхода на выполнение.
Я добавил статус «Ожидает отправки» и статус «OK to Ship» в конфигурацию моего модуля, например:
<global>
...
<sales>
<order>
<statuses>
<pending_shipment translate="label"><label>Pending Shipment</label></pending_shipment>
<ok_to_ship translate="label"><label>OK To Ship</label></ok_to_ship>
</statuses>
<states>
<processing translate="label">
<statuses>
<pending_shipment />
</statuses>
</processing>
<payment_review translate="label">
<statuses>
<ok_to_ship />
</statuses>
</payment_review>
</states>
</order>
</sales>
...
</global>
... и я использую встроенный статус «Подозреваемое мошенничество» для всего этого. Проблема в том, что статус "Подозреваемый мошенничество" сгруппирован под состоянием "Проверка платежа", и если заказ помечен как "Подозреваемое мошенничество" или "Проверка платежа", администратор не позволяет вам выбирать какие-либо другие статусы, кроме те 2. В идеале опция «OK To Ship» должна быть доступна, но сгруппирована в «состоянии» «Обработка». Здесь у меня есть «OK To Ship» в состоянии «payment_review», и это сделало эту опцию доступной, но затем, когда я извлекаю заказ и проверяю canShip () - он терпит неудачу, потому что это статус состояния «Payment Review».
Итак, если кто-нибудь может помочь мне понять, как состояния / статусы предназначены для работы в Magento и как лучше всего настроить эту ситуацию, я был бы признателен.