Events
Este documento detalla las colas y eventos utilizados en el worker de demanda de productos.
Visión General
Section titled “Visión General”El worker de demanda de productos utiliza AWS Simple Queue Service (SQS) para recibir eventos de cambio de pedidos. Estos eventos son procesados para realizar seguimiento de la demanda de productos tanto para escenarios de picking como de faltantes.
Cola de Eventos de Cambio de Pedidos
Section titled “Cola de Eventos de Cambio de Pedidos”Nombre: Cola de Demanda de Productos (configurada mediante variables de entorno)
Propósito: Recibir eventos de cambio de pedidos desde el sistema de fulfillment de pedidos.
Productores:
- Servicio de Fulfillment de Pedidos
Formato del Mensaje:
export interface EventOrderChange { event: string // Debe ser "ORDER_CHANGE" reason: string // Uno de: "PICKING_REQUIREMENT_FULFILL_SKU", "PICKING_REQUIREMENT_MISSING_SKU", "BIZERBA_FULFILL_WEIGHT" orderId: string // Formato: "order-id-cc" donde cc es el código de país warehouse: string // Código SAP del almacén country: string // Código de país de dos letras ean: string // EAN del producto (código de barras) timestamp: string // Cuando ocurrió el evento pickStartDate: string // Cuando comenzó el picking isFromOldLayout?: boolean // Flag opcional fulfilledQuantity: number // Cantidad cumplida requestedQuantity: number // Cantidad solicitada quantity: number // Derivada de fulfilledQuantity y requestedQuantity}Procesamiento:
- El worker consulta la cola a intervalos regulares (configurados mediante cron)
- Recibe hasta 10 mensajes a la vez
- Cada mensaje es validado y verificado para determinar si es procesable
- Los mensajes válidos son transformados en registros de demanda de productos
- Los registros de demanda son enviados a la API de Demanda de Productos
- Los mensajes procesados son eliminados de la cola
Manejo de Errores:
- Formato de evento inválido: El mensaje se registra como advertencia y se elimina de la cola
- Tipo de evento no procesable: El mensaje se registra como advertencia y se elimina de la cola
- Otros errores: El mensaje se registra como error y no se elimina de la cola (permitiendo reintento)
Tipos de Eventos
Section titled “Tipos de Eventos”El worker procesa dos tipos de eventos de demanda de productos:
Eventos de Picking
Section titled “Eventos de Picking”Descripción: Eventos que indican que un producto fue exitosamente recolectado para un pedido.
Activados por:
PICKING_REQUIREMENT_FULFILL_SKU: Cuando un producto es recolectado por SKUBIZERBA_FULFILL_WEIGHT: Cuando un producto de peso es cumplido
Eventos de Faltantes
Section titled “Eventos de Faltantes”Descripción: Eventos que indican que un producto estaba faltante y no pudo ser cumplido para un pedido.
Activados por:
PICKING_REQUIREMENT_MISSING_SKU: Cuando un producto es marcado como faltante durante el picking