Skip to content

Events

Este documento detalla las colas y eventos utilizados en el worker de demanda de productos.

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.

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:

  1. El worker consulta la cola a intervalos regulares (configurados mediante cron)
  2. Recibe hasta 10 mensajes a la vez
  3. Cada mensaje es validado y verificado para determinar si es procesable
  4. Los mensajes válidos son transformados en registros de demanda de productos
  5. Los registros de demanda son enviados a la API de Demanda de Productos
  6. 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)

El worker procesa dos tipos de eventos de demanda de productos:

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 SKU
  • BIZERBA_FULFILL_WEIGHT: Cuando un producto de peso es cumplido

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