2010-11-13 8 views
10

Me lo estoy pasando muy bien averiguando la diferencia entre el "estado" de una orden y su "estado" en Magento.estado de orden de Magento frente a estado

Tenemos un flujo personalizado configurado para enviar pedidos al cumplimiento de terceros y también tenemos una lógica personalizada para verificar pedidos potencialmente fraudulentos e indicar que se aprueben manualmente para ser enviados por un usuario administrador para su cumplimiento .

He añadido un estado 'Pendiente de Envío', y un 'OK a la nave' estado en mi módulo de configuración de este modo:

<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> 

... Y uso el construido en el estado de 'sospecha de fraude' por todo esto El problema es que el estado de "Fraude Sospechado" se agrupa bajo el estado "Revisión de Pago", y si una orden está marcada como "Fraude Sospechado" o "Revisión de Pago", el administrador no le permite elegir ningún otro estado además de esos 2. Idealmente, la opción 'Aceptar para enviar' estaría disponible, pero agrupada bajo el 'estado' de 'Procesamiento'. Aquí, tengo 'OK para enviar' en el estado 'payment_review' y la opción está disponible, pero luego cuando abro un pedido y reviso canShip() - falla porque es un estado de estado 'Payment Review'.

Así que si alguien puede ayudarme a entender cómo se pretende que los estados/estados funcionen en Magento y la mejor forma de configurar esta situación, lo agradecería.

Respuesta

1

Tengo entendido que para un estado determinado (que están determinados por el flujo normal de órdenes, y no son realmente mutables), usted tiene libertad para cambiar el estado del pedido (que es una etiqueta). Dependiendo de lo que quiera lograr, ¿podría intentar clonar <okay_to_ship /> en el otro estado en el que lo desea? No parecen ser exclusivos.

Gracias, Joe

+1

Sí, me trato que - Pongo 'ok_to_ship' tanto bajo 'transformación' y estados 'payment_review' que me permitieron seleccionarlo y actualizarlo cuando el pedido estaba en estado/estado de 'fraude'. El problema es que al pasar de 'fraude' a 'ok_to_ship' todavía se lo agrupaba bajo el estado 'payment_review', volviendo a hacer fallar la comprobación de canShip(). ¿Hay alguna forma de vincular un estado a un estado? y todavía lo hacen una opción mientras que el otro está configurado para otros estados? –

+0

Corrección en la última línea: "... * la orden se establece en otros estados?" –

+2

Básicamente, más importante que el estado, desea cambiar el estado de la orden desde Payment Review => Processing. No me he equivocado tanto, pero busco una transición de estado entre esos dos, y luego me mantengo "bien para enviar" en el proceso. En cuanto al proceso, use 2 pasos para pasar de Fraude -> Procesamiento -> De acuerdo a Enviar y ahorre algo de complejidad. –

3

Sólo para señalar que desde Magento permitió estados de edición de la interfaz de administración (1.5 Versión creo), XML estados de configuración ha convertido en desuso. Ahora, la única configuración relevante es dentro de las tablas de estado sales_order_status y sales_order_status.

Si desea agregar otros nuevos sólo editar el phpmyadmin tablas artesa (también puede hacerlo a través script de instalación programmaticaly http://www.techytalk.info/programmatically-add-new-order-state-and-status-in-magento/)

Cuestiones relacionadas