Saltar a contenido

Requerimiento: Productos Compuestos (Combos / Kits) en Pedidos

Módulo: Pedidos / Facturación — OMS Integración: SAP Business One — Service Layer (OData) Estado: Investigación y pruebas completadas (2026-07-13). Pendiente diseño e implementación en el OMS.


1. Objetivo

Poder vender un producto compuesto (ej. "PC Gamer Express Super") formado por N componentes que son ítems de SAP (memoria RAM, procesador, placa madre, fuente), agregándolo a un pedido de venta del OMS y facturándolo después, todo vía Service Layer.

Ejemplo de referencia:

PC Gamer Express Super
├── sku x — Memoria RAM X      (x2)
├── sku y — Procesador Y
├── sku z — Placa madre Z
└── sku w — Fuente ATX W

Los componentes idealmente ya existen en SAP. (Caso futuro, fuera de alcance por ahora: si un componente no existe, crearlo y usarlo en el compuesto.)

2. Decisiones tomadas (definen el modelo SAP)

Pregunta Decisión Consecuencia
¿Stock del compuesto o de los componentes? Stock de componentes — el compuesto no tiene stock propio; se arma al despachar Sales BOM o Assembly BOM (no Production BOM)
¿Qué ve el cliente en pedido/factura? Compuesto + componentes detallados Sales BOM (iSalesTree)
¿Cómo se define el precio? Precio propio del combo (no suma de componentes) Precio en la línea padre — requiere config de empresa (ver hallazgos §4)
¿Catálogo predefinido o armado por pedido? Predefinido, NO editable en el pedido (decisión 2026-07-16: el precio del combo se calcula en otro sistema; editar componentes lo rompería) BOM en ProductTrees; receta fija por pedido
¿Y si el combo/componente no existe en SAP al vender? Se crea bajo demanda (drop-shipping: se publica primero, se crea en SAP al vender, con confirmación del vendedor) Endpoints verify/sync — ver 04-diseno-oms.md
¿Cuál es la fuente de la verdad de la receta? El índice de Algolia (publicado por el integrador). SAP se actualiza desde Algolia; si SAP está desactualizado, se sincroniza al vender — nunca al revés Verify compara Algolia vs SAP; sync corrige SAP
¿Se pueden editar pedidos que contienen combos? No, desde el OMS no (cancelar y recrear si hace falta cambiar algo) El backend rechaza el PATCH de esos pedidos

3. Tipos de BOM en SAP B1 (contexto)

Tipo (TreeType) Stock En el documento de venta Uso típico
Sales BOM (iSalesTree) ← elegido Componentes Padre + componentes como líneas Combos/kits armados al despachar
Assembly BOM (iAssemblyTree) Componentes Solo el padre Kit sin detalle visible
Production BOM (iProductionTree) El compuesto (pre-ensamblado con órdenes de producción) Solo el padre, ítem normal PC pre-armadas en stock
Template BOM (iTemplateTree) — Líneas independientes editables Configuración sugerida

La empresa ya usa Sales BOMs en producción: combos como "Notebook + Impresora" (TreeCode 01075) y "PC ESCRITORIO RYZEN 7" (09379, 12 componentes). El OMS no inaugura el concepto en SAP; solo le falta soportarlo.

4. Alcance del soporte en el OMS (a diseñar)

  1. Verificación y alta bajo demanda de combos/componentes en SAP desde la UI (endpoints verify/sync con confirmación del vendedor).
  2. Detectar en el pedido ítems con TreeType = iSalesTree (dato disponible en Items).
  3. Enviar solo la línea del padre en el POST Orders (con TaxCode y PriceAfterVAT); SAP explota los componentes automáticamente.
  4. Mostrar en la UI la estructura padre → componentes que devuelve SAP (TreeType por línea: iSalesTree / iIngredient / iNotATree), componentes solo lectura.
  5. Facturación: referenciar todas las líneas del pedido (padre + componentes).

Documentos relacionados: