Saltar al contenido
Todos los posts
4 de julio de 2025·2 min de lectura·Diogo Hudson

Las devoluciones son first-class

Una nota de devolución no es un signo menos sobre la entrega. Es su propio documento, con su propio flujo, y al ledger le importa la diferencia.

Las devoluciones son first-class

Muchas herramientas tratan las devoluciones como ediciones en la entrega original. Quitas una línea, ajustas el total, sigues. El dashboard queda simple y el historial queda imposible de reconstruir.

El enfoque de editar la entrega tiene un atractivo superficial. ¿Por qué crear un documento nuevo si la entrega original ya tiene los ítems? Solo pon la cantidad en cero en los ítems devueltos, ajusta los totales, y finge que nunca pasó. El problema es que sí pasó. El conductor fue al sitio del cliente. El producto fue descargado. Días o semanas después, parte regresó. Colapsar esos eventos en un solo registro editado destruye la línea de tiempo operacional e imposibilita responder preguntas básicas de negocio sobre tasa de devolución, comportamiento del cliente y calidad del producto.

Una nota de devolución es su propio documento Quotery modela ReturnNote como par de DeliveryNote. Tiene su propio ciclo borrador → posteada, su propia numeración (RN-YYYY-NNNN), sus propios items. Postearla incrementa on_hand y escribe una fila RETURN en el ledger. El estado de la cotización padre no cambia — según D8, una devolución no revierte la cotización.

Este diseño tiene dos consecuencias. Primero, la entrega original es inmutable — una vez posteada, sus números son fijos. Siempre puedes ver exactamente qué se despachó en qué fecha. Segundo, la devolución es independientemente auditable. Tiene su propia fecha de creación, su propia fecha de posteo, sus propios ítems y cantidades. La brecha de tiempo entre entrega y devolución se captura naturalmente, no se colapsa.

¿Por qué no revertir la entrega? Porque el cliente no canceló la venta. Recibió, decidió que no quería una parte, y la devolvió. Comercial y legalmente son eventos diferentes. Unirlos confunde la auditoría e impide responder '¿cuánto de lo que envié a este cliente regresó el trimestre pasado?'

La distinción importa para las métricas. La tasa de devolución por cliente es un indicador adelantado de satisfacción y ajuste. La tasa de devolución por producto señala problemas de calidad o descripción. La tasa de devolución por vendedor puede indicar sobreventa o mala comunicación. Si las devoluciones se pliegan como ediciones de entrega, ninguna de estas métricas es computable — has destruido los datos que necesitas para mejorar el negocio.

Tres documentos de fulfillment, un flujo DeliveryNote, ReturnNote y StockReceipt comparten el mismo state machine borrador → posteada. Las rutas difieren solo en la dirección de inventario que empujan. DeliveryNote empuja inventario hacia afuera (reduce on_hand). ReturnNote empuja inventario hacia adentro (aumenta on_hand). StockReceipt empuja inventario hacia adentro desde un proveedor (aumenta on_hand, sin entrega padre). Mismo patrón, signo diferente. La consistencia reduce bugs y hace el sistema predecible.

Cómo funcionan en la práctica las entregas y devoluciones.

Todos los posts
Textos cortos sobre cotizar, inventario, IA y cómo los distribuidores pequeños despachan mucho volumen sin tanto rodeo.