Modelo de datos · documento oficial
Modelo vigente y canónico. Cualquier otra página que muestre tablas se subordina a esta.
Cómo se traduce la operación —importar, almacenar, vender y facturar— a tablas. El producto es el concepto comercial; la variante (con su código SKU) es lo que de verdad se compra, se vende y se cuenta en el almacén. El stock no se escribe a mano: se calcula sumando los movimientos.
El catálogo alimenta todo (línea punteada). La compra suma stock, la venta lo resta y genera el cobro. El equipo es transversal y se omite aquí.
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 1 | Número interno que el sistema asigna solo. Sirve para no confundir productos con el mismo nombre. |
| nombre | Audífonos inalámbricos | El nombre del producto tal como lo conoce el cliente. |
| descripcion | Bluetooth 5.0, 20 h batería | Texto que explica el producto en el catálogo. |
| marca | Sonely | La marca, si la tiene. |
| categoria_id FK | 4 | A qué categoría pertenece. Apunta a categoria. |
| activo | Sí | Si se muestra o no en la tienda. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 12 | Número interno de esta versión exacta del producto. |
| producto_id FK | 1 | De qué producto es esta versión. Apunta a producto. |
| sku | AUD-NEG-001 | Código único de esta versión. Es lo que se rotula y se cuenta físicamente. |
| codigo_barras | 7751234567890 | El código de barras para escanear, si lo trae. |
| atributos | Color: negro | Lo que diferencia esta versión de otras del mismo producto (color, talla, medida). |
| activo | Sí | Si esta versión sigue a la venta. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 4 | Número interno de la categoría. |
| nombre | Audio | Nombre visible de la categoría. |
| slug | audio | El nombre en formato de dirección web (sin tildes ni espacios). |
| padre_id FK | 2 | Si es una subcategoría, de cuál depende. Apunta a categoria. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 30 | Número interno de la imagen. |
| variante_id FK | 12 | De qué versión del producto es la foto. Apunta a variante. |
| url | /fotos/aud-neg.jpg | Dónde está guardada la foto. |
| orden | 1 | En qué posición aparece. La número 1 es la foto principal. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 1 | Número interno de la zona. |
| nombre | Casa — Sala | Nombre de la zona o estante. |
| tipo | Zona | Si es una zona, un estante, una caja, etc. |
| direccion | Av. Primavera 123, Lima | Dónde queda físicamente. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 500 | Número interno del movimiento. |
| variante_id FK | 12 | Qué versión del producto se movió. Apunta a variante. |
| almacen_id FK | 1 | En qué zona ocurrió. Apunta a almacen. |
| tipo | Entrada | Si suma (entrada/compra), resta (salida/venta) o corrige (ajuste/merma). |
| cantidad | 50 | Cuántas unidades entran o salen. |
| referencia | Compra #8 | De dónde viene el movimiento (una compra, una venta, un conteo). |
| fecha | 15/06/2026 | Cuándo ocurrió. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 3 | Número interno del proveedor. |
| nombre | Shenzhen Sonely Co. | Nombre de la fábrica o proveedor. |
| pais | China | De dónde importamos. |
| contacto | WeChat · ventas@… | Cómo se les contacta. |
| moneda | USD | En qué moneda nos cobran. |
| condiciones | MOQ 100 uds | Cantidad mínima de compra y otras condiciones acordadas. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 8 | Número interno del pedido de compra. |
| proveedor_id FK | 3 | A quién le compramos. Apunta a proveedor. |
| fecha | 01/05/2026 | Cuándo se hizo el pedido. |
| estado | En tránsito | En qué punto va (pedido, producción, en tránsito, recibido). |
| moneda | USD | En qué moneda se pactó. |
| tipo_cambio | 3.75 | Cuántos soles vale 1 dólar ese día. Se guarda para calcular el costo real en soles. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 20 | Número interno de la línea. |
| orden_compra_id FK | 8 | De qué pedido es. Apunta a orden_compra. |
| variante_id FK | 12 | Qué versión del producto. Apunta a variante. |
| cantidad | 200 | Cuántas unidades se pidieron. |
| precio_unitario | USD 4.50 | Lo que cuesta cada unidad puesta en fábrica, antes de flete y aduanas. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 5 | Número interno del embarque. |
| orden_compra_id FK | 8 | Qué pedido viaja. Apunta a orden_compra. |
| incoterm | FOB | Hasta qué punto del viaje paga el proveedor el transporte. |
| contenedor | MSC · ABC123 | Naviera y número de contenedor. |
| fecha_salida | 01/05/2026 | Cuándo zarpó de origen. |
| fecha_llegada | 10/06/2026 | Cuándo llegó a puerto. Se guarda aparte para medir cuánto tardó el viaje. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 9 | Número interno del documento. |
| embarque_id FK | 5 | De qué embarque es. Apunta a embarque. |
| tipo | DUA | Qué documento es (DUA, factura comercial, packing list…). |
| numero | 118-2026-001234 | El número oficial del documento. |
| archivo | dua.pdf | El archivo escaneado. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 14 | Número interno del costo. |
| embarque_id FK | 5 | A qué embarque pertenece. Apunta a embarque. |
| tipo | Flete | Si es flete, aduana o seguro. |
| monto | USD 800 | Cuánto se pagó por ese concepto. |
| moneda | USD | En qué moneda se pagó. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 2 | Número interno de la muestra. |
| proveedor_id FK | 3 | Quién la envió. Apunta a proveedor. |
| descripcion | Audífonos v2 | Qué muestra es. |
| link_origen | 1688.com/… | El enlace del producto en 1688/Alibaba de donde salió la muestra. |
| costo | USD 12 | Lo que costó la muestra más su envío. |
| estado | Aprobada | Si pasó la revisión de calidad o no. |
| fecha | 10/04/2026 | Cuándo se recibió. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 40 | Número interno del cliente. |
| nombre | Librería San Marcos | Nombre de la persona o la empresa. |
| tipo | Empresa | Particular o empresa. |
| doc_tipo | RUC | Tipo de documento: DNI para personas, RUC para empresas. |
| doc_numero | 20512345678 | El número del documento. Es obligatorio para emitir el comprobante. |
| direccion_fiscal | Jr. Lampa 200, Lima | El domicilio que figura en el RUC. SUNAT lo exige en la factura. |
| email / telefono | ventas@… · 999… | Cómo se le contacta. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 7 | Número interno de la cotización. |
| cliente_id FK | 40 | A quién se le cotiza. Apunta a cliente. |
| fecha / validez | Vence en 15 días | Cuándo se hizo y hasta cuándo es válido el precio. |
| estado | Enviada | Si está enviada, aceptada o rechazada. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 88 | Número interno del pedido. |
| cliente_id FK | 40 | Quién compra. Apunta a cliente. |
| cotizacion_id FK | 7 | De qué cotización salió, si vino de una. Apunta a cotizacion. |
| direccion_envio_id FK | 15 | A qué dirección se entrega. Apunta a direccion_envio. |
| canal | Por dónde llegó la venta (WhatsApp, Instagram, tienda, presencial). | |
| fecha | 16/06/2026 | Cuándo se hizo el pedido. |
| estado | Pagado | En qué punto va (pendiente, pagado, enviado, entregado). |
| total | S/ 450 | El monto total de la venta. |
| notas | Entregar después de las 3pm | Instrucciones especiales del cliente. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 120 | Número interno de la línea. |
| pedido_id FK | 88 | De qué pedido es. Apunta a pedido. |
| variante_id FK | 12 | Qué versión del producto se vendió. Apunta a variante. |
| cantidad | 3 | Cuántas unidades. |
| precio_unitario | S/ 60 | El precio al que se vendió en ese momento. Se guarda aunque el precio cambie después. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 15 | Número interno de la dirección. |
| cliente_id FK | 40 | De quién es. Apunta a cliente. |
| direccion / distrito | Av. Larco 500, Miraflores | La dirección de entrega. |
| referencia | Frente al parque | Una pista para ubicarla más fácil. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 22 | Número interno del envío. |
| pedido_id FK | 88 | Qué pedido se envía. Apunta a pedido. |
| courier | Olva Courier | Con qué empresa se envía. |
| tracking | OLV-99812 | El código para rastrear el paquete. |
| costo_envio | S/ 15 | Lo que cuesta el despacho. |
| estado | Entregado | En qué punto va el envío. |
| fecha_estimada | 18/06/2026 | Cuándo se prometió entregar. |
| fecha_entrega | 18/06/2026 | Cuándo se entregó de verdad. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 1 | Número interno de la lista. |
| nombre | Mayorista | Nombre de la lista de precios. |
| tipo_cliente | Empresa | A qué tipo de cliente se aplica. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 33 | Número interno. |
| variante_id FK | 12 | Qué versión del producto. Apunta a variante. |
| lista_precios_id FK | 1 | A qué lista pertenece. Apunta a lista_precios. |
| precio | S/ 45 | El precio de venta. |
| moneda | PEN | En qué moneda (soles). |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 60 | Número interno del comprobante. |
| pedido_id FK | 88 | De qué venta es. Apunta a pedido. |
| tipo | Boleta | Factura para empresas, boleta para personas. |
| serie / correlativo | B001-000123 | El número oficial que exige SUNAT. |
| fecha_emision | 16/06/2026 | La fecha legal del comprobante. Puede diferir de la del pedido. |
| igv | S/ 68.64 | El impuesto (18%) que va desglosado en el documento. |
| total | S/ 450 | El monto total con IGV incluido. Se congela tal como salió en el XML. |
| estado_sunat | Aceptado | Si SUNAT lo aceptó, lo rechazó o está pendiente. |
| xml / cdr | archivo legal | Los archivos oficiales que devuelve SUNAT. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 70 | Número interno del pago. |
| pedido_id FK | 88 | Qué pedido se pagó. Apunta a pedido. |
| metodo | Yape | Cómo pagó (Yape, Plin, tarjeta, PagoEfectivo…). |
| monto | S/ 450 | Cuánto pagó. |
| estado | Confirmado | Si el pago se confirmó o no. |
| voucher_url | /vouchers/yape-70.jpg | La captura del Yape/Plin que envía el cliente como prueba. |
| referencia / fecha | Op. 00012 · 16/06 | El código de operación y cuándo se pagó. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 12 | Número interno de la nota de crédito. |
| comprobante_id FK | 60 | Qué boleta o factura corrige. Apunta a comprobante. |
| motivo | Devolución | Por qué se emite (devolución, anulación, descuento, error). |
| serie / correlativo | BC01-000045 | El número oficial de la nota que exige SUNAT. |
| monto | S/ 150 | Cuánto se devuelve o descuenta. |
| estado_sunat | Aceptado | Si SUNAT la aceptó, la rechazó o está pendiente. |
| Campo | Ejemplo | Descripción |
|---|---|---|
| id PK | 1 | Número interno del usuario. |
| nombre | Franitza León | Nombre de la persona. |
| franitza@… | Con qué correo entra al sistema. | |
| rol | Abastecimiento | Qué puede hacer en el sistema (abastecimiento, ventas, marketing, sistemas, admin). |
| activo | Sí | Si su acceso está habilitado. |
Para el piloto (30–50 SKU) basta con catálogo, inventario, compras, cliente, pedido, comprobante y pago. Cotización y listas de precios pueden esperar. Tres ideas sostienen todo el modelo: el código SKU vive en la variante, el stock se calcula sumando los movimientos, y los comprobantes se guardan permanentemente en la base principal.