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)¶
- Verificación y alta bajo demanda de combos/componentes en SAP desde la UI (endpoints verify/sync con confirmación del vendedor).
- Detectar en el pedido ítems con
TreeType = iSalesTree(dato disponible enItems). - Enviar solo la línea del padre en el
POST Orders(conTaxCodeyPriceAfterVAT); SAP explota los componentes automáticamente. - Mostrar en la UI la estructura padre → componentes que devuelve SAP
(
TreeTypepor línea:iSalesTree/iIngredient/iNotATree), componentes solo lectura. - Facturación: referenciar todas las líneas del pedido (padre + componentes).
Documentos relacionados:
- 02-hallazgos-service-layer.md — hallazgos verificados parte 1 (BOM, pedido, precio, IVA, factura)
- 03-hallazgos-alta-bajo-demanda.md — hallazgos verificados parte 2 (PATCH ProductTrees, alta de ítems, stock 0 / drop-ship)
- 04-diseno-oms.md — diseño de la implementación en el OMS
- 08-requerimiento-frontend-catalogo.md — requerimiento funcional del combo en el catálogo (lista de productos y modal de detalle), alcance agregado el 2026-07-16
- 09-hallazgos-edicion-pedidos.md — verificación del PATCH de pedidos con combos (edición, seriales de componentes), 2026-07-17
- 10-endpoint-enriquecimiento-lineas.md — contrato para
unificar existencia/stock/seriales/precio en
serials-with-price/batch(arregla el bug de resolución SKU→ItemCode), 2026-07-20 - 11-fix-alta-simples-sin-almacen.md — fix backend: el alta
dropship de ítems simples falla por no pasar
warehouseCodesal crear, 2026-07-20