Estado del pedido
Magento 2 tiene su propio flujo de estados del pedido, de uso interno. Estos estados son llamados en inglés "states". No es recomendable alterar este sistema definido por defecto por Magento. Si queremos customizar estado del pedido, es recomendable usar "status" o lables de los status. Así no alteraríamos los states de Magento. Mirar el diagrama de su página oficial https://docs.magento.com/user-guide/sales/assets/order-workflow.png
Un state puede tener muchos status. En el backoffice de Magento, cuando creamos un status,
tenemos que asinar este status a un state.
Los states del pedido pueden ser los siguientes:
- Pendiente: Pedido no pagado y no enviado
- Processing: factura generada o producto enviado
- Completado: factura generada y enviada
- new: cliente creó el pedido pero no lo pagó
- pending: factura y el envío no han sido creados
- on hold: manualmente assignar a este estado
- canceled: no pagado, manualmente o paymente gateway decide poner este estado
- closed: credit memo hecho y la devolución total o parcial hecha
Si el state de un pedido está en canceled, on hold o closed, entonces no se puede crear credit memo.
Los status del pedido se guardan en la tabla sales_order_status. El primary key es el campo status. Lo cual quiere decir que sólo tenemos que tener un status en toda la tabla. Efectivamente, si intentamos crear un nuevo status, nos tira el error siguiente en el backoffice de Magento.
We found another order status with the same order status code.Tenemos otra tabla que registra la asociación del state con el status. Esta tabla se llama sales_order_status_state. Relaciona esta tabla y la tabla order_state. Tiene una llave compuesta: status y state. Lo cual quiere decir que podemos asociar un status con múltiples states y un state con múltiples status. Todos contra todos. Efectivamente, desde el backoffice podemos asignar un status a múltiples states. Hablando de los labels para los status, el funcionamiento es lo mismo.Tenemos una tabla llamada sales_order_status_label. En esta tabla la llave compuesta es el status y el store. Lo cual quiere decir que un status puede tener varios labels según el store. Efectivamente, en el backoffice podemos asignar un label por store.
Los statuses aparecerán según el state o states predeterminados por Magento en el seleccionable de estados del pedido.
Referencias:nota: Diferencia entre authorization vs "authorization and capture"
A Capture, also known as Credit Card Capture or Authorization Capture is the second step in the paying processing cycle, it is the actual beginning of the money transfer from the customer’s account to the merchant’s account. Prior to that, the funds are simply reserved from the customer’s account by means of an authorization, which is the payment validation. In order to proceed with the payment process after an authorization has taken place, the bank first needs to get a capture order. A capture order is the instruction from the merchant to the financial institution to deduct the funds from the debtor’s account. Although capturing funds before shipping is allowed, merchants are preferred to capture funds once the goods are ready to go or are already on its way since this practice entails a lower risk for both the customer and the merchant.nota: Void
Devolver el dinero pagado por el cliente que aun no está liquidado (settled).