Estados del pedido
Los pedidos y sus ítems están modelados como entidades que representan el flujo de trabajo de una orden de venta. Cada ítem de un pedido tiene un estado asociado que define su posición actual en el flujo de procesamiento. Estos estados están representados por constantes numéricas y están organizados en máquinas de estados que definen las posibles transiciones entre ellos.
Entidad Pedido (PurchaseOrder)
Un pedido es una entidad que agrupa uno o más ítems. Representa una orden de compra realizada por un cliente y contiene información general como el cliente, el total del pedido, y el estado general del pedido.
Entidad Ítem de Pedido (PurchaseOrderItem)
Un ítem de pedido es una entidad que representa un producto dentro de un pedido. Cada ítem tiene su propio estado, lo que permite que diferentes ítems dentro del mismo pedido puedan estar en diferentes etapas del flujo de trabajo.
Relación entre Pedido e Ítems
- Un pedido puede contener múltiples ítems.
- Cada ítem pertenece a un único pedido.
- Los estados de los ítems determinan el estado general del pedido.
Estados de los Pedidos
Los estados de los pedidos están definidos como constantes en la clase PurchaseOrder. A continuación, se describen los principales estados y sus significados:
- PENDING_PAYMENT: Esperando confirmacion de pago.
- PROCESSING: Planeando entrega de los items.
- DELIVERED: Todos los items han sido entregados y/o cancelados.
- COMPLETE: Una vez que han transcurrido 7 diás en el estado 'DELIVERED' entonces se convierte el pedido a este ultimo estado de completado.
- CANCELED: El pedido ha sido cancelado.
Estados de los Ítems
Los estados de los ítems están definidos como constantes en la clase PurchaseOrderItem. A continuación, se describen los principales estados y sus significados:
Estados Iniciales
Una vez el pedido ha sido creado comienza su ciclo y quedara en alguno de los siguientes estados.
- *_CREATE (1001): El ítem ha sido creado pero aún no ha iniciado su procesamiento.
- *_PENDING_PAYMENT (1000): El ítem está pendiente de pago.
- *_PROCESSING_PAYMENT (2000): El ítem está en proceso de pago.
- *_RESERVED_GAIA_STOCK (1100): El ítem ha sido reservado en el inventario de CEDIS. Cuando aun no se ha pagado el pedido.
- *_RESERVED_SUPPLIER_STOCK (1200): [deprecated] El ítem ha sido reservado en el inventario del proveedor. Cuando aun no se ha pagado el pedido.
- *_RESERVED_SHOWROOM_STOCK (1300): El ítem ha sido reservado en el inventario de una tienda. Cuando aun no se ha pagado el pedido.
- *_PENDING_PURCHASE_ORDER (3000): Esta esperando a que se le asigne stock.
- *_MERGED (3100): Se unió este item con otro ya que son iguales en pedido y sku.
Estados de Procesamiento
Cuando el pedido ya esta pagado regularmente tomara un estado el cual confirma que cuenta con stock y posteriormente habilita opción para agendar fecha de entrega.
- *_GAIA_STOCK (2100): El ítem tomó inventario de CEDIS.
- *_SUPPLIER_STOCK (2200): [deprecated] El ítem está en el inventario del proveedor.
- *_SUPPLIER_STOCK_UNASSIGNED (2210): El ítem solicitó inventario del proveedor.
- *_CHECKING_CLIENT_AVAILABILITY (2500): Se esta agendando fecha de entrega.
- *_FBA_IN_PROGRESS (11200): Procesando por flujo Madkting FBA (Deprecated).
Estados de Envío
Una vez que el equipo de operaciones inicia la preparacion y planeacion de los envios es que se usan los siguientes estados.
- *_PICKING_WAVE (2700): El ítem se esta preparando para el envio.
- *_PICKED (2720): El ítem ha sido preparado para su envio.
- *_PICKED_3P (2725): El ítem ha sido preparado para su envio. (Flujo 3P).
- *_SHIPPED (2800): El ítem ha sido enviado.
- *_FAILED_ATTEMPT (9300): Ocurrió un problema al enviar.
- *_PAQ_INCIDENCE_DELIVERY (9330): Ocurrió un problema al enviar.
- *_FAILED_ATTEMPT_AWAITING_RETURN (9350): Ocurrió un problema al enviar, se regresara al almacén.
- *_FAILED_ATTEMPT_RESCHEDULE (9450): Ocurrió un problema al enviar, se reagenda para reintentar envio.
- *_FAILED_ATTEMPT_RECEIVED (9500): Ocurrió un problema al enviar, ya regresó al almacén.
Estados de Devolución
Los estados en devolución refiere al proceso donde el cliente a recibido su articulo pero ha solicitado devolverlo ya que no le ha gustado, encontro algun defecto, etc.
- *_CLIENT_RETURN_PICKUP_PENDING (8000): El ítem está pendiente de ser recogido para devolución.
- *_CLIENT_RETURN_PICKUP_PENDING_3P (8005): El ítem está pendiente de ser recogido para devolución (Flujo 3P).
- *_CLIENT_RETURN_PICKUP_SCHEDULED (8100): Devolución agendada para ser recogida.
- *_CLIENT_RETURN_PENDING_WH_RECEIVAL (8200): Devolución en camino al almacén.
- *_CLIENT_RETURN_RECEIVED_PARTIAL (8250): Devolución recibida parcialmente.
- *_CLIENT_RETURN_CREATED_REFUND_PENDING (8300): Devolución pendiente de compensación.
- *_CLIENT_RETURN_CREATED_REFUNDED (8400): Compensación por devolución concluida.
- *_CLIENT_RETURN_CANCELED (8600): Se anula el proceso de devolución.
- *_CLIENT_RETURN_CREATED (8500): El ítem ha sido devuelto.
Estados Finales
Se les llama estado final ya que no se tiene programado algúna otra acción o movimiento, por ejemplo un item que fue entregado al cliente se considera que ha terminado su flujo y no hay nada más por hacer.
- *_CLIENT_CANCELLATION (7000): El ítem ha sido cancelado por el cliente.
- *_CLIENT_CANCELLATION_3P (7005): El ítem ha sido cancelado por el cliente (Flujo 3P).
- *_CANCEL_NO_PAYMENT (7400): El pedido fue cancelado por falta de pago.
- *_CANCEL_SUSPECTED_FRAUD (7500): Pedido cancelado por sospecha de fraude.
- *_NO_PAYMENT (7300): El ítem ha sido cancelado por falta de pago.
- *_DELIVERED (9100): El ítem ha sido entregado.
- *_DELIVERED_3P (9105): El ítem ha sido entregado (Flujo 3P).
- *_SHOWROOM_DELIVERED (9400): El ítem ha sido entregado en tienda.
- *_REFUNDED (9200): El ítem ha sido reembolsado.