2010-11-13 2 views
10

Мне весело, выясняя разницу между «состоянием» заказа и его «статусом» в Magento.Состояние заказа Magento по сравнению с статусом

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

Я добавил «В ожидании Отгрузка» статус, а 'OK, чтобы корабельный статус в мой модуль конфигурации следующим образом:

<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 и как лучше всего настроить эту ситуацию, я был бы признателен.

ответ

1

Мое понимание заключается в том, что для данного состояния (которое определяется потоком нормального порядка и на самом деле не изменяемо), у вас есть свободное владение, чтобы изменить статус заказа (который является меткой). В зависимости от того, что вы хотите выполнить, не могли бы вы клонировать <okay_to_ship /> в другое состояние, в котором вы хотите? Они не кажутся эксклюзивными.

Спасибо, Джо

+1

Да, я действительно пытался что - я ставлю «ok_to_ship» под как «обработка» и 'payment_review', и это позволило мне выбрать и обновить его, когда заказ находился в состоянии/статусе «мошенничества». Проблема в том, что переход от «мошенничества» к «ok_to_ship» все еще сгруппировал его в состоянии «payment_review», снова сделав проверку canShip() ошибкой. Есть ли способ привязать статус к состоянию? и по-прежнему сделать это вариант, а другой - для других состояний? –

+0

Исправление на этой последней строке: «... * порядок установлен в другие состояния?» –

+2

В принципе, что более важно, чем статус, вы хотите изменить состояние заказа из Review Review => Обработка. Я не слишком много разбираюсь в этом, но ищите переход состояния между этими двумя, а затем продолжайте «нормально отправлять» при обработке. Что касается процесса, используйте 2 шага для перехода от Fraud -> Processing -> Okay to Ship и сохраните некоторую сложность. –

3

Просто, чтобы указать, что с Magento разрешено редактирование статусы из интерфейса администратора (версия 1.5) Я считаю, XML Статусы конфигурация становятся устаревшими. Теперь единственная соответствующая конфигурация находится внутри таблиц состояния sales_order_status и sales_order_status.

Если вы хотите добавить новые только редактировать таблицы корыто PHPMyAdmin (вы также можете сделать это programmaticaly корыто установки скрипта http://www.techytalk.info/programmatically-add-new-order-state-and-status-in-magento/)