Volver a la arquitectura

Modelo de datos · documento oficial

Las tablas del negocio

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.

entradas salidas cobro Catálogo producto · variante Precios por tipo de cliente Compras importación Inventario movimientos Ventas pedidos Facturación comprobantes · pagos

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í.

Catálogo

qué vendemos
productoEl concepto comercial. No tiene código SKU ni stock propio; es la "idea" del producto.
CampoEjemploDescripción
id
PK
1Número interno que el sistema asigna solo. Sirve para no confundir productos con el mismo nombre.
nombreAudífonos inalámbricosEl nombre del producto tal como lo conoce el cliente.
descripcionBluetooth 5.0, 20 h bateríaTexto que explica el producto en el catálogo.
marcaSonelyLa marca, si la tiene.
categoria_id
FK
4A qué categoría pertenece. Apunta a categoria.
activoSi se muestra o no en la tienda.
varianteEl código SKU real. Es lo que se compra, se vende y se cuenta en el almacén.
CampoEjemploDescripción
id
PK
12Número interno de esta versión exacta del producto.
producto_id
FK
1De qué producto es esta versión. Apunta a producto.
skuAUD-NEG-001Código único de esta versión. Es lo que se rotula y se cuenta físicamente.
codigo_barras7751234567890El código de barras para escanear, si lo trae.
atributosColor: negroLo que diferencia esta versión de otras del mismo producto (color, talla, medida).
activoSi esta versión sigue a la venta.
categoriaCómo se agrupan los productos en el catálogo.
CampoEjemploDescripción
id
PK
4Número interno de la categoría.
nombreAudioNombre visible de la categoría.
slugaudioEl nombre en formato de dirección web (sin tildes ni espacios).
padre_id
FK
2Si es una subcategoría, de cuál depende. Apunta a categoria.
imagen_productoLas fotos. El archivo en sí vive en el almacenamiento de archivos.
CampoEjemploDescripción
id
PK
30Número interno de la imagen.
variante_id
FK
12De qué versión del producto es la foto. Apunta a variante.
url/fotos/aud-neg.jpgDónde está guardada la foto.
orden1En qué posición aparece. La número 1 es la foto principal.

Inventario

cuánto tenemos
almacenLas zonas físicas donde se almacena la mercadería.
CampoEjemploDescripción
id
PK
1Número interno de la zona.
nombreCasa — SalaNombre de la zona o estante.
tipoZonaSi es una zona, un estante, una caja, etc.
direccionAv. Primavera 123, LimaDónde queda físicamente.
movimiento_inventarioEl cuaderno de entradas y salidas. El stock disponible se calcula sumando esta tabla, nunca se escribe a mano.
CampoEjemploDescripción
id
PK
500Número interno del movimiento.
variante_id
FK
12Qué versión del producto se movió. Apunta a variante.
almacen_id
FK
1En qué zona ocurrió. Apunta a almacen.
tipoEntradaSi suma (entrada/compra), resta (salida/venta) o corrige (ajuste/merma).
cantidad50Cuántas unidades entran o salen.
referenciaCompra #8De dónde viene el movimiento (una compra, una venta, un conteo).
fecha15/06/2026Cuándo ocurrió.

Compras / Importación

Parte de importación
proveedorEl fabricante o mayorista que provee desde China. Equivale a la antigua tabla «Distribuidores».
CampoEjemploDescripción
id
PK
3Número interno del proveedor.
nombreShenzhen Sonely Co.Nombre de la fábrica o proveedor.
paisChinaDe dónde importamos.
contactoWeChat · ventas@…Cómo se les contacta.
monedaUSDEn qué moneda nos cobran.
condicionesMOQ 100 udsCantidad mínima de compra y otras condiciones acordadas.
orden_compraUn pedido que le hacemos a un proveedor.
CampoEjemploDescripción
id
PK
8Número interno del pedido de compra.
proveedor_id
FK
3A quién le compramos. Apunta a proveedor.
fecha01/05/2026Cuándo se hizo el pedido.
estadoEn tránsitoEn qué punto va (pedido, producción, en tránsito, recibido).
monedaUSDEn qué moneda se pactó.
tipo_cambio3.75Cuántos soles vale 1 dólar ese día. Se guarda para calcular el costo real en soles.
linea_orden_compraEl detalle del pedido: qué se compró y a qué precio en origen.
CampoEjemploDescripción
id
PK
20Número interno de la línea.
orden_compra_id
FK
8De qué pedido es. Apunta a orden_compra.
variante_id
FK
12Qué versión del producto. Apunta a variante.
cantidad200Cuántas unidades se pidieron.
precio_unitarioUSD 4.50Lo que cuesta cada unidad puesta en fábrica, antes de flete y aduanas.
embarqueEl viaje físico de la mercadería hasta Perú.
CampoEjemploDescripción
id
PK
5Número interno del embarque.
orden_compra_id
FK
8Qué pedido viaja. Apunta a orden_compra.
incotermFOBHasta qué punto del viaje paga el proveedor el transporte.
contenedorMSC · ABC123Naviera y número de contenedor.
fecha_salida01/05/2026Cuándo zarpó de origen.
fecha_llegada10/06/2026Cuándo llegó a puerto. Se guarda aparte para medir cuánto tardó el viaje.
documento_aduaneroLos papeles legales de la importación.
CampoEjemploDescripción
id
PK
9Número interno del documento.
embarque_id
FK
5De qué embarque es. Apunta a embarque.
tipoDUAQué documento es (DUA, factura comercial, packing list…).
numero118-2026-001234El número oficial del documento.
archivodua.pdfEl archivo escaneado.
costo_importacionFlete, aduana y seguro. Se reparten entre las unidades para saber cuánto costó de verdad cada producto.
CampoEjemploDescripción
id
PK
14Número interno del costo.
embarque_id
FK
5A qué embarque pertenece. Apunta a embarque.
tipoFleteSi es flete, aduana o seguro.
montoUSD 800Cuánto se pagó por ese concepto.
monedaUSDEn qué moneda se pagó.
muestraLas muestras para revisar calidad antes de importar en grande.
CampoEjemploDescripción
id
PK
2Número interno de la muestra.
proveedor_id
FK
3Quién la envió. Apunta a proveedor.
descripcionAudífonos v2Qué muestra es.
link_origen1688.com/…El enlace del producto en 1688/Alibaba de donde salió la muestra.
costoUSD 12Lo que costó la muestra más su envío.
estadoAprobadaSi pasó la revisión de calidad o no.
fecha10/04/2026Cuándo se recibió.

Ventas

pedidos y clientes
clienteQuién nos compra. El documento decide si recibe boleta o factura.
CampoEjemploDescripción
id
PK
40Número interno del cliente.
nombreLibrería San MarcosNombre de la persona o la empresa.
tipoEmpresaParticular o empresa.
doc_tipoRUCTipo de documento: DNI para personas, RUC para empresas.
doc_numero20512345678El número del documento. Es obligatorio para emitir el comprobante.
direccion_fiscalJr. Lampa 200, LimaEl domicilio que figura en el RUC. SUNAT lo exige en la factura.
email / telefonoventas@… · 999…Cómo se le contacta.
cotizacionLa propuesta de precio a un mayorista antes de que confirme la compra.Fase posterior
CampoEjemploDescripción
id
PK
7Número interno de la cotización.
cliente_id
FK
40A quién se le cotiza. Apunta a cliente.
fecha / validezVence en 15 díasCuándo se hizo y hasta cuándo es válido el precio.
estadoEnviadaSi está enviada, aceptada o rechazada.
pedidoUna venta confirmada. Al confirmarse, descuenta el stock como salida.
CampoEjemploDescripción
id
PK
88Número interno del pedido.
cliente_id
FK
40Quién compra. Apunta a cliente.
cotizacion_id
FK
7De qué cotización salió, si vino de una. Apunta a cotizacion.
direccion_envio_id
FK
15A qué dirección se entrega. Apunta a direccion_envio.
canalWhatsAppPor dónde llegó la venta (WhatsApp, Instagram, tienda, presencial).
fecha16/06/2026Cuándo se hizo el pedido.
estadoPagadoEn qué punto va (pendiente, pagado, enviado, entregado).
totalS/ 450El monto total de la venta.
notasEntregar después de las 3pmInstrucciones especiales del cliente.
linea_pedidoEl detalle de la venta: qué se llevó y a qué precio.
CampoEjemploDescripción
id
PK
120Número interno de la línea.
pedido_id
FK
88De qué pedido es. Apunta a pedido.
variante_id
FK
12Qué versión del producto se vendió. Apunta a variante.
cantidad3Cuántas unidades.
precio_unitarioS/ 60El precio al que se vendió en ese momento. Se guarda aunque el precio cambie después.
direccion_envioDónde se entrega el pedido.
CampoEjemploDescripción
id
PK
15Número interno de la dirección.
cliente_id
FK
40De quién es. Apunta a cliente.
direccion / distritoAv. Larco 500, MirafloresLa dirección de entrega.
referenciaFrente al parqueUna pista para ubicarla más fácil.
envio_clienteEl despacho del pedido y su seguimiento.
CampoEjemploDescripción
id
PK
22Número interno del envío.
pedido_id
FK
88Qué pedido se envía. Apunta a pedido.
courierOlva CourierCon qué empresa se envía.
trackingOLV-99812El código para rastrear el paquete.
costo_envioS/ 15Lo que cuesta el despacho.
estadoEntregadoEn qué punto va el envío.
fecha_estimada18/06/2026Cuándo se prometió entregar.
fecha_entrega18/06/2026Cuándo se entregó de verdad.

Precios

no es un solo número
lista_preciosUn mismo producto puede tener un precio para mayoristas y otro para el público.Fase posterior
CampoEjemploDescripción
id
PK
1Número interno de la lista.
nombreMayoristaNombre de la lista de precios.
tipo_clienteEmpresaA qué tipo de cliente se aplica.
precio_varianteEl precio de cada versión del producto dentro de cada lista.Fase posterior
CampoEjemploDescripción
id
PK
33Número interno.
variante_id
FK
12Qué versión del producto. Apunta a variante.
lista_precios_id
FK
1A qué lista pertenece. Apunta a lista_precios.
precioS/ 45El precio de venta.
monedaPENEn qué moneda (soles).

Facturación y pagos

documentos legales
comprobanteLa boleta o factura legal. Se guarda de forma permanente en la base principal, nunca en la memoria rápida.
CampoEjemploDescripción
id
PK
60Número interno del comprobante.
pedido_id
FK
88De qué venta es. Apunta a pedido.
tipoBoletaFactura para empresas, boleta para personas.
serie / correlativoB001-000123El número oficial que exige SUNAT.
fecha_emision16/06/2026La fecha legal del comprobante. Puede diferir de la del pedido.
igvS/ 68.64El impuesto (18%) que va desglosado en el documento.
totalS/ 450El monto total con IGV incluido. Se congela tal como salió en el XML.
estado_sunatAceptadoSi SUNAT lo aceptó, lo rechazó o está pendiente.
xml / cdrarchivo legalLos archivos oficiales que devuelve SUNAT.
pagoCómo y cuánto pagó el cliente.
CampoEjemploDescripción
id
PK
70Número interno del pago.
pedido_id
FK
88Qué pedido se pagó. Apunta a pedido.
metodoYapeCómo pagó (Yape, Plin, tarjeta, PagoEfectivo…).
montoS/ 450Cuánto pagó.
estadoConfirmadoSi el pago se confirmó o no.
voucher_url/vouchers/yape-70.jpgLa captura del Yape/Plin que envía el cliente como prueba.
referencia / fechaOp. 00012 · 16/06El código de operación y cuándo se pagó.
nota_creditoCuando hay una devolución o anulación, SUNAT exige emitir una nota de crédito que referencia al comprobante original.
CampoEjemploDescripción
id
PK
12Número interno de la nota de crédito.
comprobante_id
FK
60Qué boleta o factura corrige. Apunta a comprobante.
motivoDevoluciónPor qué se emite (devolución, anulación, descuento, error).
serie / correlativoBC01-000045El número oficial de la nota que exige SUNAT.
montoS/ 150Cuánto se devuelve o descuenta.
estado_sunatAceptadoSi SUNAT la aceptó, la rechazó o está pendiente.

Equipo

quién opera
usuarioEl equipo interno, cada usuario con su rol. Sustituye a la antigua tabla «Personal / trabajadores».
CampoEjemploDescripción
id
PK
1Número interno del usuario.
nombreFranitza LeónNombre de la persona.
emailfranitza@…Con qué correo entra al sistema.
rolAbastecimientoQué puede hacer en el sistema (abastecimiento, ventas, marketing, sistemas, admin).
activoSi su acceso está habilitado.
PK Llave primaria — el número que identifica cada fila FK Llave foránea — apunta a otra tabla Fase posterior Difiérelo hasta que el volumen lo justifique

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.