SOURCE-002 - SGC Maestro de productos¶
Fecha: 2026-06-07
Estado: FUENTE REAL DOCUMENTADA CON AUTORIDAD COMPLETA VIGENTE
Scope: tenant
tenant_id: alpuntodeventa
Owner: Gabi / Carlos Canu
Fuente de verdad:
docs/tenants/alpuntodeventa/business-observer/sources/SOURCE-002-SGC-PRODUCTOS.md
Autoridad preservada:
docs/tenants/alpuntodeventa/business-observer/source-authority/SOURCE-002-PRODUCTOS-PRODUCTS-AUTHORITY.sql
1. Objetivo¶
Documentar que SOURCE-002 pasa a ser la autoridad vigente y completa para el
maestro de productos de APV, preservando textual la query aportada y luego
confirmada por Gabi como autoridad vigente, sin tocar runtime, sin
conectarse a fuentes reales y sin reinterpretar la logica.
2. Definicion oficial¶
- source_id:
SOURCE-002 - nombre funcional oficial:
Maestro de productos - fuente base documentada:
[ecommerce].[dbo].[PRODUCTS] - tipo de fuente:
MSSQL / SGC - estado:
autoridad completa vigente
Regla oficial:
SOURCE-002es la fuente unica vigente para producto, marca, estado, stock actual, stock en bultos, proveedor, costos, precios,IVA, margenes, descuentos, logistica de bultos y pallets, y fechas operativas de compra/venta/cambio de costotenant_id + SKUes la clave canonica del dominio producto para todo dato que sale deSOURCE-002- todo dato de
SOURCE-002debe interpretarse como atributo, medicion, relacion vigente o relacion historica delSKU - la query preservada en
SOURCE-002-PRODUCTOS-PRODUCTS-AUTHORITY.sqlqueda confirmada porGabicomo autoridad vigente de ahora en adelante
2.1 Regla canonica de relacion por SKU¶
Confirmacion documental vigente:
- todos los datos publicados por la query de productos se relacionan por medio
del
SKU - el dominio producto de
SOURCE-002se identifica portenant_id + SKU - articulo, marca, proveedor, stock, stock en bultos, costos, descuentos de
compra, precios, listas,
IVA, margenes, descuento permitido, precio oferta, categoria, subcategoria, unidad de medida, palletizado, fechas operativas e historicos utiles deben leerse como datos delSKU - el analisis por proveedor o marca debe derivarse desde los
SKUasociados y no desde datos sueltos sin vinculo con producto
Reglas especificas para relaciones comerciales:
Cod Proveedordebe conservarse como identificador de negocio del proveedor asociado alSKUProveedordebe conservarse como nombre o razon social legible asociado alSKU- no debe usarse solo el texto de
Proveedorcomo clave analitica Marcadebe conservarse como atributo comercial asociado alSKU- si en el futuro aparece un codigo de marca, debera preservarse junto con
Marca
3. Autoridad vigente preservada¶
La autoridad vigente queda preservada textual en:
source-authority/SOURCE-002-PRODUCTOS-PRODUCTS-AUTHORITY.sql
La query autoridad:
- usa
WITH ProductosBase - lee desde
[ecommerce].[dbo].[PRODUCTS] - filtra
Estado = 'ACTIVO' - mantiene
SKU NOT IN ('0124', '3857', '3998', '3793')como primera lista conocida de exclusiones operativas - esa lista no debe leerse como exclusion rigida sin explicacion de negocio
- la razon de negocio confirmada por
Gabies que algunos articulos delSGCse usan para operaciones internas o no tradicionales de compra/venta, por lo que no deben importarse como productos comerciales normales - cualquier futuro script de sincronizacion debera tratar esa lista como una regla operativa configurable
- ordena por
Marca ASC
No corresponde:
- simplificarla
- reinterpretar calculos
- cambiar aliases
- reemplazarla por una version resumida
- usar
SOURCE-002CoSOURCE-002Dcomo fuente base de stock actual
4. Cobertura funcional oficial¶
Esta autoridad cubre explicitamente:
- producto
- marca
- estado / vigencia
- stock actual
- stock en bultos
- costo lista proveedor
- descuentos de compra
- costo
- markup
- precio lista neto
IVA- precio lista final
- descuento permitido
- precio con descuento permitido
- precio oferta
- devolucion
- estrategia / clasificador
- precios y margenes
L1..L9 - fechas de ultima compra / venta / cambio de costo
- dias sin comprar / vender / actualizar costo
- venta minima / venta agrupada
- unidad de medida
- peso y volumen
- palletizado
- proveedor
- categoria y subcategoria
Lectura canonica obligatoria:
- cada uno de esos dominios debe quedar vinculado al mismo
tenant_id + SKU - no deben separarse como hechos huerfanos sin referencia de producto
5. Campos observables en la autoridad¶
Campos principales publicados por la query:
SKUArticuloMarcaEstadoStockStock en BultosCostoListaProveedorDcto Compra 1Dcto Compra 2Dcto Compra 3CostoMarkupPrecioListaNetoAlicuotaIVAIVAPListaFinalPrecioListaFinalDescuento PermitidoPrecioCDescPermitidoFinalPrecioOfertaFinalAcepta DevolucionEstrategicoMargenL1aMargenL9PrecioL1aPrecioL9IVAPrecioL1aIVAPrecioL9PrecioNetoL1aPrecioNetoL9Fecha de Ultima CompraUltVentaUltCambioCostoDiasSinComprarDiasSinVenderDiasSinActCostoCantVtaMinCantVentaAgrupadaUnidadMedidaPesoxUnidadVolumenxUnidadBasePalletAlturaPalletPLU Articulo[PLU Bulto]Unidades_x_BultoCantUnidxPalletCantBultosxPalletPesoxPalletkgVolumenxPalletm3Cod ProveedorProveedorCategorySubCategoria
6. Separacion documental recomendada por capas¶
La query autoridad de SOURCE-002 trae mas informacion de la que conviene
consultar con alta frecuencia.
Por eso, a nivel documental, se recomienda separar sus datos en estas capas funcionales futuras:
- identidad de producto:
SKU,Articulo,Category,SubCategoria,PLU Articulo,[PLU Bulto] - marca:
Marca - proveedor:
Cod Proveedor,Proveedor - estado / vigencia / gobernanza del producto:
Estado - politica comercial:
Acepta Devolucion,Descuento Permitido,PrecioCDescPermitidoFinal,CantVtaMin,CantVentaAgrupada - promociones:
PrecioOfertaFinal - estrategia comercial:
Estrategico - actividad comercial:
Fecha de Ultima Compra,UltVenta,DiasSinComprar,DiasSinVender,DiasSinActCosto - stock operativo:
Stock,Stock en Bultos,Unidades_x_Bulto - costos:
CostoListaProveedor,Costo,UltCambioCosto - precios / listas:
PrecioListaNeto,PrecioListaFinal,PrecioL1aPrecioL9,PrecioNetoL1aPrecioNetoL9 - impuestos:
AlicuotaIVA,IVAPListaFinal,IVAPrecioL1aIVAPrecioL9 - margenes:
Markup,MargenL1aMargenL9 - descuentos de compra:
Dcto Compra 1,Dcto Compra 2,Dcto Compra 3 - volumetria / logistica:
UnidadMedida,PesoxUnidad,VolumenxUnidad,BasePallet,AlturaPallet,Unidades_x_Bulto,CantUnidxPallet,CantBultosxPallet,PesoxPalletkg,VolumenxPalletm3
Regla documental recomendada:
SOURCE-002sigue siendo la autoridad madretenant_id + SKUsigue siendo la clave canonica para unir las capas futuras derivadas desde esta autoridad- todos los dominios anteriores cuelgan del mismo
tenant_id + SKU - politica comercial, promociones, estrategia comercial, actividad comercial y volumetria / logistica no deben quedar confundidos con costo, precio base o stock
- eso no obliga a consultar toda la query completa en cada ciclo futuro
- la frecuencia futura debe variar segun el dominio del dato
Mapa conceptual relacionado:
SOURCE-002-FUTURE-LAYER-MAPPING.md: define la separacion futura recomendada entre producto maestro, stock liviano, snapshot diario y capas economicas historizablesSOURCE-002-ECONOMIC-LAYER.md: cierra la decision documental de modelar listas de precios como filas normalizadas porSKU+lista_codigo, en lugar de columnas fijasL1..L9como estructura destino principal, deja documentado queCostoListaProveedores precio de lista proveedor, queDcto Compra 1..3son descuentos encadenados y queCostoes el costo unitario neto final a pagar, y ya deja documentado el ejemplo real deL7compartido porGabiparaSKU 0135ySKU 0128
6.1 Capa especifica de volumetria / logistica¶
Todos los campos de volumetria / logistica cuelgan de tenant_id + SKU.
Campos incluidos:
Unidades_x_BultoStock en BultosBasePalletAlturaPalletCantBultosxPalletCantUnidxPalletPesoxUnidadVolumenxUnidadPesoxPalletkgVolumenxPalletm3UnidadMedidaCantVtaMinCantVentaAgrupada
Para que sirve:
- capacidad de deposito y cubicaje
- planificacion de pallets y bultos
- compras con empaque minimo o venta agrupada
- distribucion y carga
- lectura de rentabilidad logistica
Cuando conviene historizar cambios volumetricos:
- cuando cambia
UnidadMedida,Unidades_x_Bulto, peso, volumen o palletizado - cuando cambia una regla que altera capacidad, abastecimiento o distribucion
- cuando negocio necesita explicar un cambio de rentabilidad logistica
6.2 Capa especifica de politica comercial¶
Todos los campos de politica comercial cuelgan de tenant_id + SKU.
Campos incluidos:
Descuento PermitidoPrecioCDescPermitidoFinalAcepta DevolucionCantVtaMinCantVentaAgrupada
Lectura correcta:
Descuento Permitidono es descuento de compraPrecioCDescPermitidoFinalno es precio base ni costo; es un precio comercial calculado a partir de la politica vigenteAcepta Devolucionexpresa una condicion comercial delSKUCantVtaMinyCantVentaAgrupadason reglas comerciales del producto, aunque tambien impacten operacion
6.3 Promociones, estrategia y actividad comercial¶
Todos estos campos cuelgan de tenant_id + SKU y deben leerse como dominios
funcionales propios.
- promociones:
PrecioOfertaFinal - estrategia comercial:
Estrategico - actividad comercial / historicos utiles:
Fecha de Ultima Compra,UltVenta,DiasSinComprar,DiasSinVender,DiasSinActCosto
Lectura correcta:
PrecioOfertaFinalpertenece a promociones y no debe mezclarse conPrecioListaFinalEstrategicoexpresa foco comercial y no debe leerse como estado tecnico- fechas y dias sin movimiento sirven para recencia y actividad comercial, no para reemplazar stock, costo o precio
7. Rutina futura segura y liviana¶
Sin implementar nada todavia, la rutina documental recomendada es:
- alta frecuencia:
consultar solo stock intradiario liviano via
SOURCE-002D - una vez por dia:
conservar snapshot diario via
SOURCE-002C - por cambio o en corte de cierre: preservar costos, precios, impuestos, margenes y descuentos en una capa historica separada del maestro
Justificacion:
- stock necesita frecuencia
- identidad y logistica cambian mucho menos
- costos y precios pueden cambiar durante el dia y pierden trazabilidad si se pisan siempre dentro del maestro
8. Relacion con otras fuentes¶
SOURCE-002: autoridad base vigente del maestro de productosSOURCE-002B: fuente complementaria futura o separada para imagenes porSKUSOURCE-002C: capa futura para snapshot historico diario de stockSOURCE-002D: capa futura para stock intradiario livianoSOURCE-002-FUTURE-LAYER-MAPPING: mapeo conceptual futuro deSOURCE-002hacia capas separadas dePostgresSOURCE-002-ECONOMIC-LAYER: decision especifica para la capa economica futura y para la modelizacion de listas de precios
Reglas de frontera:
SOURCE-002Cno reemplazaSOURCE-002SOURCE-002Dno reemplazaSOURCE-002SOURCE-002CySOURCE-002Dno deben leerse como fuente base de stock actualSOURCE-002CySOURCE-002Dquedan reservadas para historia diaria y/o seguimiento intradiario futuro
Regla documental adicional para territorio comercial:
SOURCE-002no define por si sola el territorio comercial del vendedorSOURCE-002aportaSKU, marca, proveedor y categoria para cruzar contra la cartera real de clientes del vendedor- ese cruce debe apoyarse en
SOURCE-001para clientes y ownership comercial, y enSOURCE-003para ventas reales
9. Utilidad para el Business Observer¶
SOURCE-002 da base directa para:
UC002UC004UC005UC006UC007UC008UC009
Porque ya cubre en la misma autoridad:
- identidad de producto por
SKU - marca y estado
- disponibilidad actual y bultos
- proveedor
- costos y descuentos de compra
- markup y precios finales
- margenes y precios
L1..L9 - fechas operativas y dias sin movimiento
- logistica de empaque y palletizado
10. Pendientes que siguen abiertos¶
Queda cerrada la confirmacion humana principal:
Gabiconfirma que esta query es la autoridad vigente deSOURCE-002Gabiconfirma queSKU NOT IN ('0124', '3857', '3998', '3793')representa la primera lista conocida de exclusiones operativasGabiconfirma que esosSKUpueden corresponder a operaciones internas o no tradicionales y no deben tratarse como productos comerciales normales
Siguen pendientes solamente decisiones futuras de implementacion:
- definir como un futuro script de sincronizacion externalizara la lista de exclusiones operativas de forma configurable
- confirmar si
SOURCE-002CySOURCE-002Dse activaran mas adelante como snapshots historicos o stock intradiario
No queda pendiente dentro de SOURCE-002:
- proveedor
- costo
- precio propio
IVA- palletizado
- fechas de ultima compra / venta / cambio de costo
11. Confirmaciones de alcance¶
- no se ejecuto sync
- no se ejecuto conexion real
- no se tocaron
VPS,DockerniOpenClaw - no se creo
API - no se creo servicio
- no se abrio runtime
- no se inventaron columnas
- solo se preservo y documento la autoridad vigente
12. Cobertura integral del SELECT¶
Verificacion documental cerrada contra la autoridad preservada:
- total de campos devueltos por el
SELECT:81 - campos directos, aliases, calculados y derivados relevados:
81 - campos de listas
L1..L9relevados:36 - campos logisticos y de palletizado relevados:
12 - campos de fechas operativas e historicos utiles relevados:
6 - campos sin capa futura asignada:
0 - campos fuera de la relacion canonica
tenant_id + SKU:0
La matriz integral campo por campo queda consolidada en:
docs/tenants/alpuntodeventa/business-observer/SOURCE-002-FUTURE-LAYER-MAPPING.md
Cobertura funcional explicitamente verificada:
- producto, marca, proveedor, categoria y subcategoria
- estado / vigencia
- stock y stock en bultos
- costos, descuentos de compra, listas de precios,
IVA, margenes, descuentos comerciales y precio oferta - inventario, logistica y palletizado
- fechas operativas e historicos utiles
- auditoria de extraccion como capa futura por corrida, aunque no salga como
columna del
SELECT
Cobertura documental SOURCE-002: 100% de campos del SELECT clasificados.