Мне весело провести время, выясняя разницу между состоянием "состояние" и "статусом" в Magento.
У нас есть пользовательский поток, настроенный для отправки заказов на стороннее выполнение, и у нас также есть специальная логика для проверки потенциально мошеннических заказов и флага, которые они одобряют вручную для отправки пользователем администратора, чтобы выйти на выполнение.
Я добавил статус "Ожидание отправки" и статус "ОК для отправки" в конфигурацию моего модуля:
<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. Идеально вариант "ОК для отправки" был бы доступен, но сгруппирован под "состоянием" "Обработка". Здесь у меня есть "ОК, чтобы отправить" в состоянии "payment_review", и он сделал эту опцию доступной, но затем, когда я вытаскиваю заказ и проверяю canShip() - он терпит неудачу, потому что это состояние состояния "Проверка платежей".
Итак, если кто-нибудь может помочь мне понять, как состояния/статусы предназначены для работы в Magento и как лучше всего настроить эту ситуацию, я был бы признателен.