Procedimiento Integral de Devoluciones, Cuarentena y Reclamos a Proveedores (Plant Hub)
<!-- ESTADO-VIVO:INICIO -->
⚡ ÚLTIMO ESTADO VIVO (Actualizado: 2026-10-30 06:54 · Orden Cronológico Inverso: Más Nuevo Arriba)
- 2026-10-30 06:53 hs (Confirmación de Juanchi Busso en
5491154829979@s.whatsapp.net— En Implementación Completa enPlant Hubrumbo a Staging): - Respuesta textual de Juanchi (
06:53 hs): *"Excelente Gaby, tremendos esos dos puntos. Ya los estamos analizando y metiendo completos en Plant Hub: tanto los 4 candados de Reclamos, Cuarentena de lote hermano, RMA directo a proveedor y Cierre de Vuelta de Ruta en Nave 70, como los 4 puntos de descuentos absorbidos por marcas Planter, fórmula exacta de rentabilidad ML y la Central de Campañas Autogestionables en el portal de proveedores para jubilar el Excel de Marti y Gaspi. Toda mejora suma, apenas quede desplegado en Staging te aviso para probarlo."* - Estado y próximo paso: Vigía
plant-escucharre-armado sobre5491154829979@s.whatsapp.netesperando el aviso de deploy en Staging (admin-staging.plant.com.ar) para auditar y probar E2E los 4 candados de Reclamos/RMA/Vuelta de Ruta y los 4 puntos de descuentos Planter + ML. - 2026-10-29 21:58 hs (Mensaje enviado a Juanchi Busso
3EB03FF4B572C5E6FFDAABcon los 4 Candados + Auditoría de Logística Inversa, Choferes, Vuelta de Ruta y Mercado Libre enPlant Hub): - Envío a Juanchi Busso (
5491154829979@s.whatsapp.net): Se le envió la especificación unificada con los 4 candados (1. Quitar defaultRESELLABLE+ cuarentena preventiva de lote hermano en Picking; 2. RMA a proveedor directo desde Depósito/Recepción sinorderIdde cliente + aviso automático + retención en OP a los 7 días; 3. SepararReventadePlanterconsignación entriageQuarantinedRma; y 4. Logística Inversa en Calle, Choferes, Cierre obligatorio de Vuelta de Ruta en Nave 70 y Devoluciones de Mercado Libre). Vigíaplant-escucharre-armado. - Evidencia real en el grupo
Logística | Control de Pedidos(wacli.db): 28/10 14:47 (Maxi Plant): *"Llegaron de devolución 60 u de cada sabor con el Packaging viejo como las que vuelven con David, ya se le dió de alta y está en picking"* (reingreso directo a picking por chat).27/10 08:17,23/10 11:15,22/10 09:19,20/10 08:29: Avisos manuales por WhatsApp (*"Cuando Santiago lleve el pedido rj7101 se desarma. Ya se rearmó y salió con Mati"*, *"Cuando Roberto traiga el pedido original, se desarma: rJ276"*, *"Cuando vuelva este pedido se desarma: rM2209"*).19/10 10:53 (Maxi Plant): *"En frío están esas dos cajas, ¿devolución de dónde? ¿Estaban aptas? ¿O por qué volvieron?"*.- Auditoría de Código en
Plant Hub(schedule-claim-pickup.ts,failed-delivery.ts,apps/warehouse/app/loading/returns,support-claims-customer.ts,mercadolibre/claims.ts,cold-chain-return.ts): - Lo que YA está construido:
- Portal Cliente (
support-claims-customer.ts): El cliente ya puede reportar un reclamo (createMyClaimAction) eligiendo ítems del pedido, lote y subiendo fotos. - Agendamiento de Retiro en Hoja de Ruta (
schedule-claim-pickup.ts+ReverseLogisticsPanel): Cuando soporte/ejecutivo aprueba el retiro (scheduleClaimPickupAction), inserta automáticamente una parada tipoPICKUP("RETIRO de devolución #orden - Cliente") en la Hoja de Ruta de flota propia (OWN_FLEET) o emite etiqueta térmica de reversa Andreani (COURIER). - Motor Anti-Custodia Fantasma y Pantalla de Andén (
failed-delivery.ts+close-roadmap.ts+/loading/returns): Bloquea el cierre de la Hoja de Ruta (PENDING_RETURN_CUSTODY) mientras haya bultos de entregas fallidas sin escanear en el andén, cuenta con pantalla de pistola (/loading/returnscon botonesAusente,Rechazo,Daño) y módulo de salvataje de cajas secas ante rotura de frío (cold-chain-return.ts). - Mercado Libre (
mercadolibre/claims.ts+wms/meli-indemnity.ts): Ingesta por webhook los reclamos/devoluciones de ML (MeliClaimcontype: "RETURN"y alerta de SLAdueDate) y contabiliza el cobro de indemnizaciones (AST-RECLAMOS-PENDIENTES-MELI).
- Los 4 eslabones que estaban apagados o sueltos en Logística Inversa (y que ya quedaron pedidos a Juanchi en el punto 4):
- Prender
LOGISTICS_FAILED_DELIVERY_ENABLED(hoy en modoSHADOWpor defecto enfailed-delivery.ts L89-96): en modoSHADOWcalcula el plan pero no abrecustodyStatusni frena el cierre de la hoja de ruta. - Extender la Custodia de Bultos a las paradas
PICKUPde devolución (schedule-claim-pickup.ts): que el chofer no pueda levantar devoluciones sin paradaPICKUPautorizada, que en su app confirme qué bultos/unidades subió y que esa paradaPICKUPtambién abracustodyStatus: "IN_VEHICLE"exigiendo escaneo obligatorio en la Nave 70 antes de cerrar la ruta. - Veredicto visual en Andén (
DESARMAR Y RE-ESTIBARvsGUARDAR PARA REENVÍOvsCUARENTENA RMA): que al pistolear en/loading/returnsun pedido que vuelve, el sistema cruce si la orden ya fue reemplazada/cancelada (comorj7101orJ276) y muestre en pantalla gigante"DESARMAR CAJA Y RE-ESTIBAR"(o"RMA AUTORIZADO -> PASAR A CUARENTENA Y AVISAR AL EJECUTIVO"), eliminando las preguntas en el grupo de WhatsApp y las cajas huérfanas en cámara de frío. - Auto-crear
CustomerReturnesperado desdeMeliClaim(type: "RETURN"): para que todo paquete devuelto de Mercado Libre aparezca en la cola de recepción de la Nave 70 con reloj de 48 hs para auditarlo y disparar el reclamo de indemnización en ML si llegó dañado o cambiado.
- 2026-10-29 18:44 hs (Respuesta de Juanchi Busso sobre Módulo de Reclamos en
Plant Hub+ Auditoría Forense de Código): - Mensaje de Juanchi (
18:31 hsen5491154829979@s.whatsapp.net): Confirmó que el módulo de Reclamos de Trello ya se relevó entero (2.717 tarjetas históricas,11 columnas,8 procedimientos maestroscon25 checklists) y ya está integrado enPlant Hub(https://admin-staging.plant.com.ar/sales/claims) conectando las 6 puntas:Cliente(ticket con fotos lote/vto + avisos),Chofer/Flete(descuento en liquidación transporte),Picking/Depósito(cruce de armador + hora para cámaras),Proveedor(cuarentena + reclamo de NC descontándola en Tesorería),Calidad Ezeiza(dictamen técnico/sensorial firmado) yAdministración(aprobación 4 ojos + NC AFIP/Contabilium con Medio IVA + alertas SLA). - Auditoría de código en
/Users/gabrielbusso/Proyectos/plant-hub(apps/admin/app/(admin)/sales/claims,apps/admin/app/(admin)/warehouse/rma,packages/business-logic/src/orders/customer-return.ts,support-claims.ts): - Lo que YA está construido y es excelente: (1) Flujo RMA de 2 tramos (
processCustomerReturningresa siempre enQUARANTINEconIN/RET/{orderNumber}y reversa CMV); (2) Guardia de vida útil y trazabilidad de lote (assertReturnLotTraceability+assertResellableEligibilitybloqueanRESELLABLEsi el lote no salió en ese pedido o no cumpleisLotEligiblede vida útil remanente); (3) Aprobación de 4 ojos (PERMISSION.CLAIMS_APPROVE) y guardia fiscal de 3 niveles (ninguno | revisar | emitida) para Notas de Crédito AFIP; (4)SUPPLIER_WARRANTYentriageQuarantinedRmagenera pickingOUT/RTV/{orderNumber}(QUARANTINE → SUPPLIER) y asiento contable automático enAST-ANTICIPOS-A-PROVEEDORESimputado alentityIddel proveedor resolviendo la OC original del lote. - Nota de acceso en Staging: En
apps/admin/app/(admin)/layout.tsx(L59-66),admin-staging.plant.com.arredirige a/proceduresa cualquier usuario que no tenga el rolSUPERADMIN. - Los 3 candados quirúrgicos para pasarle a Juanchi y blindar el 100% del
Cuarto Devolución($ 49,5M):
- Quitar default
RESELLABLEenTriageQuarantineDialog(L75-76) yRmaInspectionDialog(L58) + Cuarentena automática de Lote Hermano enPICKING: hoy el modal de triaje abre preseleccionado endisposition: "RESELLABLE"(trampa exacta del casoJumbalayde Maximiliano González); debe abrir vacío exigiendo rolCalidad+ foto/nota sensorial paraRESELLABLE, y cuando un lote se dictamina con falla bromatológica/origen (DAMAGED/SUPPLIER_WARRANTY/recallRequired), congelar preventivamente las unidades hermanas del mismolotIden posicionesINTERNALdePICKINGdisparando tarea de inspección a Mauro/Gaspi. - RMA de Proveedor Directo desde Depósito/Recepción sin
orderIdde Cliente + Aviso Automático + SLA 7/15 días: hoyCustomerReturnytriageQuarantinedRmaexigen unorderIdde venta y/warehouse/mermasmanda directo a pérdida propia (LOSS). Falta permitir crear el ticketINTERNAL → QUARANTINE → SUPPLIER_WARRANTYdirecto desde Depósito/Recepción (donde nace el grueso de los$ 19,55MdePara Compras), disparar mail + WhatsApp automático al proveedor al pasar aSUPPLIER_WARRANTY, y aplicar bloqueo automático en la próxima Orden de Pago a los 7 días y habilitación deSCRAPfísico a los 15 días. - Separar
Planter(Consignación) deReventaenbookSupplierWarrantyCredit(customer-return.ts L2020): hoytriageQuarantinedRmacontabilizaDEBE AST-ANTICIPOS-A-PROVEEDORESpara cualquierSUPPLIER_WARRANTYcon costo> 0. Si la marca esPlanter(consignación 100%), no corresponde generar crédito monetario a descontar de OP ($ 0deuda porque sólo se paga lo vendido), sino publicarlo automáticamente enStock para retirar de Ezeiza · Cuarto Devolución y Vencidosdel Portal Planter (/supplier) con ventana de 15 días.
- 2026-10-29 17:31 hs (Despliegue en vivo en
sellers.plantinterno.com+ Respuesta de Mauro Stoessel sobreCuarto Devolución): - En
sellers.plantinterno.com: Quedaron desplegadas y verificadas con Playwright1xtodas las mejoras pedidas por Mauro Stoessel y Gabriel Busso: diseño por fila de lote agrupada por producto (bocetomauro_7.jpg), columna derecha alineada a la derecha ([input manual oculto salvo selección Manual %] -> [select descuento] -> [botón Autorizar descuento]), encabezados y títulos multi-línea sin truncar (white-space: normal), tarjetas KPI clickeables como filtros interactivos, buscador en vivo por nombre/EAN/SKU, código de barrasEANen cada fila, separación deCuarto Devolucióny vencidos en el apartadoStock para retirar de Ezeiza · Cuarto Devolución y Vencidos, y conexión del descuento promocional aMongoDB products.providerDiscountomnicanal (Plant B2C + Plant Business B2B + Mercado Libre) manteniendo 100% intacto el margen operativo de Plant ([17:12] Mauro Stoessel: "Está bárbaro!"). - Barrido físico de
Cuarto Devolución(2.571 uen MongoDB vs24.500 uen Excel ·$ 14,3Mde No Pedido / Apto No Creado con vto largo y$ 6,4MenPara Comprasde marcas Planter): Mauro Stoessel confirmó a las17:11 hsen5491141759260@s.whatsapp.net:"Mañana lo veo con Gaspi"para validar qué sigue físico en el cuartito, reingresar lo sano a la venta, limpiar lo ya acreditado ($ 1,8M) y ejecutar el recupero automático sobre los$ 5,5Mreales de reventa.
<!-- ESTADO-VIVO:FIN -->
Automatización Bloqueo de Lotes y Devoluciones en Plant Hub (2026-10-30)
- Referencia: reunion-presencial-cyber-navidad-vivet-2026-10-30 (
30/10/2026 · 00:25:02 – 00:28:15). - Caso disparador (
Aceitunas Yumbel / Om Veggie): El papá de Gabriel devolvió 5 envases de aceitunas con burbujas/mal estado -> pasó de juanchi-busso|Juanchi a mauro-stoessel|Mauro Stoessel y a Maxi -> Maxi las reingresó a góndola «sin motivo» y estaban por despacharse abiertas/feas a *Om Veggie*. - Regla de Automatización en plant-hub (
Anillo de Control de Lote): - Cuando un cliente reclama por WhatsApp una falla de lote (varias unidades afectadas), el sistema dispara automáticamente:
- Bloqueo inmediato en depósito de todos los productos hermanos de ese lote hasta auditar qué ocurrió.
- Reclamo automático al proveedor abriendo conversación/correo con la evidencia.
- Alerta automática a Pagos y Compras (gaspi|Gaspi) para retener pagos al proveedor y evitar millones de pesos perdidos en el cuartito de devoluciones.
- Además en plant-hub:
- Integración nativa del calendario de turnos de recepción de mauro-stoessel|Mauro Stoessel + accesos OpenKey (
01:14:00). - Migración de la mensajería de Compras adentro de plant-hub (reemplazando Respond) con usuarios propios para gaspi|Gaspi y caro-italiano|Caro Italiano (
00:53:33).
Última actualización: 29/10/2026
Responsables: Operaciones Ezeiza (Gaspar / Mauro Stoessel), Atención al Cliente / B2B (Darío Riso Araujo / Belu), Compras (Micaela / Rocío), Finanzas y Pagos (Nico Dell'Armi / Caro Italiano), Tecnología (Plant Hub).
1. Diagnóstico Forense Actual (29/10/2026)
A. Caso Testigo: Devolución de Freddy Busso (ACTNCZ · Aceitunas Negras con Carozo 360g Jumbalay)
- Planilla Excel (
Productos no Aptos para la Venta, filaID 5257):
- Cargado el
29/10/2026 07:52:52(y editado a las15:54:46):6 unidadesdeACTNCZ(JUMBALAY,ACEITUNAS NEGRAS - CON CAROZO - 360 G, Vto01/02/2028, Costo unitario$ 5.229,06s/IVA · Total$ 31.374,38s/IVA). - Falla 1 (Mala tipificación en origen): Se cargó con Motivo =
"Sin Motivo"(cuando era mercadería fermentada/en mal estado), sin número de lote, sin foto/video adjunto, y en la pestañaPara Comprasquedó con estado en blanco (SIN INICIAR). - Falla 2 (Desconexión con Atención al Cliente / Facturación): No se registró en la planilla
Gestión de reclamos - 2025/26, por lo que el ejecutivo comercial (Darío Riso Araujo) no tenía visibilidad para emitir la Nota de Crédito al cliente. - Falla 3 (CRÍTICA — Reingreso físico y sistémico a posición activa de Picking en MongoDB):
- En
DB inventoryAdjustmentsy MongoDB (inventorynumbers, lote_id: K3JoAh0V3HF3ipmz71b3), el operador Maximiliano González (deposito) ingresó a las07:54:12las+6unidades enPEDIDOS DESARMADOS O DEVOLUCIONES(reason: "DEVOLUCIÓN CLIENTE"). - 23 segundos después (
07:54:35), en lugar de transferirlas aCUARTODEVOLUCION, ejecutó unbintransferenviando los 6 frascos devueltos directamente a la posiciónA24C(Picking activo de venta). A las16:08 hs, Mauro Stoessel confirmó en auditoría interna que Maximiliano procesó la devolución un par de días después de recibida sin ticket previo adjunto, no detectó la falla a simple vista y la ingresó como"Sin Motivo"(como si fuese arrepentimiento de compra), devolviéndola a la venta. - Como consecuencia, a las
13:36del mismo día, 3 de esos 6 frascos quedaron comprometidos (commited: 3) para el pedidosJ2691(2026-10-29-2691·OH MY VEGGUIELa Plata,_id: A0HEIgSIl3e3EJyMt3Jz, estadoassemblyState: "no"— interceptado antes de armarse). - Además, en la posición
A24Cpermanecían 25 frascos adicionales del mismo vencimiento (01/02/2028, loteexvlFO2wdrDIbN171fGY) sin auditar ni poner en cuarentena, junto con 25 unidades deAceitunas Negras Condimentadas Jumbalay(Vto 01/02/2028) y 19 unidades deAceitunas Verdes con Carozo Jumbalay(Vto 01/02/2028).
B. Radiografía Global de la Planilla Productos no Aptos para la Venta vs. MongoDB
Sobre 5.241 registros históricos en Productos no aptos para la venta:
Cuarto Devolución: 2.247 filas · 25.933 unidades · $ 49.486.292 costo s/IVA. De ellas, 593 filas (7.886 unidades · $ 11.889.118 s/IVA) no tienen ninguna resolución cargada (RESOLUCIÓN DEPÓSITOvacío). En paralelo, en MongoDB la ubicaciónCUARTODEVOLUCIONsólo registra 581 lotes · 2.571 unidades, evidenciando un descalce total entre el Excel y el stock real en sistema.Desechado: 2.111 filas · 10.443 unidades · $ 26.399.864 costo s/IVA.Vuelve a Stock: 844 filas · 21.452 unidades · $ 24.154.588 costo s/IVA.Cámaras (Congelados + Refrigerado): 35 filas · 350 unidades · $ 1.045.800 costo s/IVA.
C. Radiografía de Reclamos Abiertos en Pestaña Para Compras
Existen 679 líneas abiertas marcadas con RECLAMAR AL PROVEEDOR = TRUE pendientes de cierre por un total de 12.112 unidades · $ 19.553.415 costo s/IVA (~$ 23,66M con IVA):
- 🔴
SIN INICIAR(Estado en blanco): 487 líneas (71,7%) · 10.912 unidades · $ 14.655.645 s/IVA. - 🟡
Reclamo Iniciado(Frenado sin respuesta): 110 líneas · 706 unidades · $ 2.025.459 s/IVA (incluyendo reclamos de sept/oct 2025 que nunca se descontaron). - 🟡
Esperando NC: 19 líneas · 259 unidades · $ 940.641 s/IVA. - 🟢
NC Recibida(sin cerrar ni cruzar con depósito): 53 líneas · 223 unidades · $ 1.828.505 s/IVA. - 🔵
Esperando Reposición: 7 líneas · 8 unidades · $ 37.243 s/IVA. - ⚫
Proveedor no lo Reconoce: 2 líneas · 4 unidades · $ 65.922 s/IVA.
Top Proveedores con capital inmovilizado sin reclamar / recuperar en Para Compras:
- BARRA BRAVA: 7 líneas · 3.135 u. · $ 2.862.547 s/IVA (100% sin iniciar).
- CRUDDA: 3 líneas · 1.922 u. · $ 1.969.221 s/IVA (100% sin iniciar).
- FELICES LAS VACAS: 25 líneas · 118 u. · $ 1.727.498 s/IVA.
- SRI SRI: 20 líneas · 352 u. · $ 1.600.621 s/IVA (100% sin iniciar).
- ONNEG: 2 líneas · 360 u. · $ 1.411.128 s/IVA (100% sin iniciar).
- RECETAS DE ENTONCES: 35 líneas · 403 u. · $ 1.104.349 s/IVA.
- DICOMERE: 68 líneas · 659 u. · $ 1.031.280 s/IVA.
- INTEGRA: 19 líneas · 947 u. · $ 922.642 s/IVA.
2. Nuevo Procedimiento Automatizado Punta a Punta en Plant Hub
Para eliminar las planillas aisladas y garantizar que ningún producto fallado vuelva a Picking, ningún cliente quede sin su Nota de Crédito y ningún proveedor cobre una factura teniendo mercadería defectuosa pendiente de reconocer, se unifica todo el flujo sobre la arquitectura ya existente en Plant Hub (support-claims.ts, customer-return.ts, /procedures, /warehouse, /purchases, /finance):
Paso 1 · Ingreso Único y Tipificación Obligatoria (RMA Ticket)
- Puntos de entrada:
- Reclamo de Cliente (B2B / E-commerce / Chofer en hoja de ruta): El ejecutivo comercial o soporte registra el reclamo en
/support/claims(o desde la orden del cliente). - Hallazgo en Depósito / Recepción: El operador escanea el SKU/lote desde
/warehouse(Productos No Aptos).
- Campos obligatorios por candado de sistema:
- Motivo tipificado real (se elimina la opción
"Sin Motivo"):Fermentado / Mal Estado,Envase Roto / Pinchado,Mal Sellado / Inflado,Vencido / Corto Vencimiento,Error de Picking / No Pedido. - Evidencia multimedia obligatoria: Mínimo 1 foto/video donde se vea estado del producto + lote/vencimiento impreso.
- Impacto inmediato en Cliente: Si el origen es
Devolución Cliente, el sistema dispara en el acto la tarea de Emisión de Nota de Crédito / Descuento en Próxima Factura asignada al Ejecutivo Comercial / Facturación, sin esperar a que el físico llegue al depósito.
Paso 2 · Bloqueo de Ubicación y Cuarentena Automática de Lote en MongoDB
- Prohibición de transferencia a Picking: Todo ingreso por
DEVOLUCIÓN CLIENTEimpacta exclusivamente en el bin virtual/físicoCUARTODEVOLUCION(QUARANTINE). El sistema bloquea por código cualquierbintransferdesdePEDIDOS DESARMADOS O DEVOLUCIONESoCUARTODEVOLUCIONhacia posiciones dePICKING(A24C, etc.) salvo firma digital de Control de Calidad (únicamente habilitada cuando el motivo fue"Error de Picking / No Pedido"y el envase está intacto). - Gatillo Automático de Auditoría de Lote Hermano:
- Cuando un RMA se tipifica con defecto bromatológico o de origen (
Fermentado,Hongos,Inflado,Mal Sellado),Plant Hubconsulta automáticamente eninventorynumberstodos los lotes activos del mismoproductId+expirationDate(y opcionalmente de la misma marca) ubicados enPICKINGoDEPOSITO. - El sistema congela preventivamente la disponibilidad (
quarantineHold: true) de esas unidades enPICKINGy crea una Tarea Prioritaria Obligatoria para el Encargado de Depósito (Mauro / Gaspi): *"Inspeccionar físicamente N unidades del SKU X (Vto Y) en posición Z y confirmar en sistema cuántas están aptas y cuántas pasan a Cuarto Devolución"*.
Paso 3 · Reclamo Automático al Proveedor (Mail + WhatsApp + Portal Planter)
- Apenas el ítem entra en
CUARTODEVOLUCIONcon causa imputable a origen (SUPPLIER_WARRANTY), sin intervención manual de Compras:
Plant Hubgenera el Acta de Devolución a Proveedor (RMA Proveedor) con foto, SKU, EAN, lote, vencimiento, cantidad y valor de reposición actualizado.- Envía notificación automática por Mail y WhatsApp al contacto comercial/calidad del proveedor e impacta el caso en la pestaña
Devoluciones / Stock para Retirardel Portal Planter. - El proveedor tiene 48 hs hábiles para seleccionar mediante botón directo:
- Opción A: Emitir Nota de Crédito (subiendo el PDF directamente al link del reclamo).
- Opción B: Confirmar Reposición sin cargo en la próxima entrega + retiro de la mercadería observada en Ezeiza.
Paso 4 · Candado Financiero en Cuentas a Pagar (Hard Payment Hold) y Descarte Programado
- Retención Automática en Pagos:
- Al crearse el RMA Proveedor,
Plant Hubimpacta automáticamente un Saldo a Descontar por Garantía (AST-ANTICIPOS-A-PROVEEDORES) en la cuenta corriente del proveedor en/finance. - Cuando Finanzas (Nico Dell'Armi / Caro Italiano / Rocío) abre una Orden de Pago para ese proveedor, el sistema muestra una Alerta Roja Bloqueante con el monto exacto de los RMAs abiertos y descuenta automáticamente ese importe del pago a menos que ya esté cargada la Nota de Crédito vinculada o confirmada la recepción física del canje.
- Vencimiento de Guarda Física en
Cuarto Devolución(SLA 15 días): - El depósito de Ezeiza no puede acumular
$ 49,5Mde mercadería vencida o rota esperando meses a que el proveedor la retire. - Si pasados 15 días corridos desde la notificación automática el proveedor no retiró la mercadería de
Cuarto Devolución(o si el producto está fermentado/con riesgo sanitario inmediato),Plant Hubhabilita el Descarte con Acta Fotográfica (SCRAP), dando de baja el stock físico enCUARTODEVOLUCIONpero manteniendo intacto el débito financiero contra el proveedor.
Novedades Recientes
- 2026-10-29 16:15 — Interacción con mauro-stoessel-vivet, gaspi, portal-planter-avisos-plant-com-ar: *[Parte 2/2]*
*4. Nuevo Procedimiento Automatizado con Candado Duro en Plant Hub*
Ya dejamos documentado en plant-cerebro (Temas/procedimiento-devoluciones-proveedores-plant-hub.md) el flujo punta a punta sobre los módulos de Plant Hub:
• *1) Ticket RMA Único antes de pisar depósito*: toda devolución nace en el reclamo con *motivo real tipificado* (se elimina "Sin Motivo"), *foto/video y lote obligatorios*, disparando en el acto la tarea de Nota de Crédito al cliente para el vendedor.
• *2) Bloqueo de bintransfer a Picking + Cuarentena de Lote Hermano*: prohibido por código pasar una devolución de cliente a posiciones de PICKING (A24C). Si el motivo es bromatológico (Fermentado, Hongos, Inflado), el sistema congela preventivamente todas las unidades de ese mismo lote/vencimiento en PICKING y le exige a Mauro/Gaspi la auditoría física obligatoria.
• *3) Reclamo Automático al Proveedor (Mail + WhatsApp + Portal Planter)*: apenas entra a Cuarto Devolución, Plant Hub envía automáticamente el reclamo con foto y lote al proveedor y lo publica en su *Portal Planter* con 48 hs para subir Nota de Crédito o confirmar canje.
• *4) Candado Financiero en Pagos (Hard Payment Hold) + Descarte a los 15 días*: todo RMA abierto genera un saldo a descontar en /finance que *bloquea con alerta roja cualquier Orden de Pago al proveedor* hasta descontar la Nota de Crédito, habilitando a los 15 días el descarte físico en Ezeiza con acta fotográfica sin perder un peso del descuento. · 🔗 auditoria-vivet-vencimientos-plant-hub, monitores-planter, acuerdos-comerciales, flujo-multicanal-super-cerebro, camaras-frio-ezeiza-reemplazo-compresor, estado-vivo-marcas-proveedores, motor-compras-2-0-plan-maestro-noviembre, deposito-ezeiza, activacion-patrimonio-camaras-tixo-vivet, auto-calculo-compras-reposicion-stock, plant-hub · 2026-10-29
- Salida (asistente): *[Parte 2/2]* *4. Nuevo Procedimiento Automatizado con Candado Duro en
Plant Hub* Ya dejamos documentado enplant-cerebro(Temas/procedimiento-devoluciones-proveedores-plant-hub.md) el flujo punta a punta sobre los módulos dePlant Hub: • *1) Ticket RMA Único antes de pisar depósito*: toda devolución nace en el reclamo con *motivo real tipificado* (se elimina"Sin Motivo"), *foto/video y lote obligatorios*, disparando en el acto la tarea de Nota de Crédito al cliente para el vendedor. • *2) Bloqueo debintransfera Picking + Cuarentena de Lote Hermano*: prohibido por código pasar una devolución de cliente a posiciones dePICKING(A24C). Si el motivo es bromatológico (Fermentado,Hongos,Inflado), el sistema congela preventivamente todas las unidades de ese mismo lote/vencimiento enPICKINGy le exige a Mauro/Gaspi la auditoría física obligatoria. • *3) Reclamo Automático al Proveedor (Mail + WhatsApp + Portal Planter)*: apenas entra aCuarto Devolución,Plant Hubenvía automáticamente el reclamo con foto y lote al proveedor y lo publica en su *Portal Planter* con 48 hs para subir Nota de Crédito o confirmar canje. • *4) Candado Financiero en Pagos (Hard Payment Hold) + Descarte a los 15 días*: todo RMA abierto genera un saldo a descontar en/financeque *bloquea con alerta roja cualquier Orden de Pago al proveedor* hasta descontar la Nota de Crédito, habilitando a los 15 días el descarte físico en Ezeiza con acta fotográfica sin perder un peso del descuento. · 🔗 auditoria-vivet-vencimientos-plant-hub, monitores-planter, acuerdos-comerciales, flujo-multicanal-super-cerebro, camaras-frio-ezeiza-reemplazo-compresor, estado-vivo-marcas-proveedores, motor-compras-2-0-plan-maestro-noviembre, deposito-ezeiza, activacion-patrimonio-camaras-tixo-vivet, auto-calculo-compras-reposicion-stock, plant-hub · 2026-10-29 16:15
3. Plan Puente de CEO (Ejecución Inmediata antes de la migración a Plant Hub)
Al abrir línea por línea los $ 49,49M s/IVA (2.168 filas · 24.545 u.) de Cuarto Devolución y los $ 19,55M s/IVA (679 filas · 12.112 u.) de Para Compras, el cuello de botella ocurre porque la planilla mezcla 5 bolsas de naturaleza totalmente distinta. Separadas con bisturí de CEO, las decisiones de resolución inmediata son:
Decisión 1 · Liberar a la venta en 24 hs los $ 14,33M s/IVA (8.646 u.) de mercadería 100% SANA ("No Pedido" + "Apto Pero No Creado")
- Diagnóstico: Casi un tercio del
Cuarto Devoluciónno está roto ni vencido: $ 13,20M s/IVA(29 filas · 8.222 u.) son"No Pedido"con vencimiento largo (2027–2029) entregados de más por el proveedor:CumanaCardamomo 500g (120 u.· $ 3,66M, Vto25/09/2027, cargado conReclamar = FALSE).MerakiCepillos de Bambú (1.980 u.· $ 3,39M, 4 modelos, cargado conReclamar = FALSE).CruddaBar Arándano (1.920 u.· $ 1,97M, Vto19/08/2027,SIN INICIAR).Sri SriArroz Basmati + Pasta Sudanta (200 u.· $ 903k, Vto2026/2029,SIN INICIAR).IntegraBarras y Bocaditos (896 u.· $ 818k, Vto12/2026y02/2027,SIN INICIAR).Barra Brava(924 u.· $ 672k, Vto03/2027, marca Planter).Chocolate Colonial(1.200 u.· $ 316k, Vto12/2026) +DicomereSoja Texturizada (180 u.· $ 165k).$ 1,13M s/IVA(39 filas · 424 u.) son"Apto Pero No Creado"(Recetas de Entonces $ 298k,Sri Sri Agua de Sándalo $ 233k, etc.): mercadería sana frenada sólo porque falta dar de alta el SKU en catálogo.- Acción ejecutiva (Mauro + Gaspi):
- Dar de alta hoy mismo los SKUs de
"Apto Pero No Creado"($ 1,13M) y pasarlos a Picking. - En
"No Pedido"($ 13,20M): las marcas Planter (Barra Brava) o bultos que vinieron sin facturar entran directo a Picking a venderse; los facturados de marcas de alta rotación (Crudda,Integra,Sri Sri,Dicomere,Colonial) se pasan a la venta descontándolos de la próxima OC de esta semana; y aCumana ($ 3,66M)yMeraki ($ 3,39M)se les exige retiro + NC en 7 días o pase a consignación Planter.
Decisión 2 · Sacar de Compras los $ 6,42M s/IVA (83 filas · 4.096 u.) que son Marcas Planter (Consignación)
- Diagnóstico: El 33% de la pestaña
Para Compras($ 6,42M) son marcas Planter:Barra Brava($ 2,86M, incl.1.440 u.devueltas de ML con vto mal impreso),Onneg($ 1,41M),Saccha($ 615k),Orgánica Real($ 329k),Grano Pampa($ 223k),All Beauty($ 219k) yMolé($ 119k). - Acción ejecutiva: En Planter la mercadería es en consignación; Compras no tiene que pedirles Nota de Crédito. Se impactan directo en el nuevo apartado "Stock para Retirar" de
sellers.plantinterno.com/#stock(sin pagarse, o descontándose automático en *"Ajustes del período anterior"* si fue devuelto post-cierre) con plazo de 15 días para retiro.
Decisión 3 · Cerrar y limpiar hoy los $ 1,83M s/IVA (53 filas) con NC Recibida
- Diagnóstico: Hay $ 1,83M en
Para Compras(Felices las Vacas $ 1,64M,Dicomere $ 147k, etc.) que ya tienen estadoNC Recibidapero siguen abiertos en la planilla y ocupando lugar enCuarto Devolución. - Acción ejecutiva: Cruzar con Finanzas (Nico Dell'Armi) que esas NCs ya se hayan descontado de pagos, cerrar las 53 filas y descartar/liberar el físico en Ezeiza.
Decisión 4 · Mail Automático desde la Planilla + Retención en Pagos para los $ 5,45M s/IVA reales de Calidad/Origen en Reventa (más $ 1,97M de Kyros)
- Diagnóstico: Limpiando Planter (
$ 6,42M), NCs ya recibidas ($ 1,83M) yNo Pedido / Apto No Creado($ 5,85M), el reclamo real por mercadería defectuosa de Reventa es de$ 5,45M s/IVA(más$ 1,97MdeKyrosHummus Inflado enCuarto Devolución), concentrado en 15 proveedores activos a los que les pagamos todas las semanas: Kyros($ 1,97M),Recetas de Entonces($ 802k),Weleda($ 655k),VGreen($ 460k),Dicomere($ 411k),Golden Monkey($ 384k),Maní King($ 314k),Silk($ 255k),Sri Sri($ 255k),Naccato($ 209k),Pont($ 151k),Integra($ 105k),Folivora($ 104k),Crudencio($ 101k) yJumbalay($ 31k).- Acción ejecutiva: Cumpliendo la regla decidida el
22/09(*"Los reclamos de merma van directo al proveedor, sin pasar por Compras"*), se dispara mail automático agrupado por marca desde la planilla y se pasa esa lista a Nico Dell'Armi / Finanzas para retener ese monto de la próxima Orden de Pago de cada uno de esos 15 proveedores.
Decisión 5 · Barrido Físico de 48 hs en Cuarto Devolución (2.571 u. en MongoDB vs. 24.545 u. en Excel)
- Diagnóstico: De los
$ 19,14M s/IVArestantes enCuarto DevoluciónconReclamar = FALSE, hay $ 3,81M dePróximo a Vencer(que deben salir hoy a liquidación-35% / -40%si les quedan> 15 días) y $ 9,60M deVencidoviejo (Cocoon $ 1,95Mvencido en mayo 2026,Vivet $ 1,22Mde 2025,Beyond Meat $ 289k,NotCo $ 235k) + $ 5,73M de roturas. Mientras el Excel acumula24.545 u.históricas nunca dadas de baja, MongoDBCUARTODEVOLUCIONregistra sólo2.571 u.. - Acción ejecutiva: Mauro y Gama escanean en 48 hs las
2.571 u.físicas reales del cuartito: lo apto/próximo a vencer sale a liquidación, lo vencido irreclamable se descarta con acta y el Excel queda conciliado1 a 1con MongoDB listo para migrar limpio aPlant Hub.
- Entrada (wacli · 𝗘𝗟𝗘𝗩𝗔𝗥 𝗖𝗢𝗡𝗖𝗜𝗘𝗡𝗖𝗜𝗔 · Niké): *[Parte 2/2]* *4. Nuevo Procedimiento Automatizado con Candado Duro en
Plant Hub* Ya dejamos documentado enplant-cerebro(Temas/procedimiento-devoluciones-proveedores-plant-hub.md) el flujo punta a punta sobre los módulos dePlant Hub: • *1) Ticket RMA Único antes de pisar depósito*: toda devolución nace en el reclamo con *motivo real tipificado* (se elimina"Sin Motivo"), *foto/video y lote obligatorios*, disparando en el acto la tarea de Nota de Crédito al cliente para el vendedor. • *2) Bloqueo debintransfera Picking + Cuarentena de Lote Hermano*: prohibido por código pasar u · 2026-10-29 16:15
5. Auditoría Forense del Circuito providerDiscount Omnicanal (sellers.plantinterno.com, plant.com.ar, "Precios para ML" y Plant Hub) — 29-oct-2026
Auditado con Escuadrón Multi-Rol (claude --model opus --effort high + codex gpt-6.1-sol + QA Playwright E2E):
A. Qué pasaba antes y qué quedó conectado hoy en sellers.plantinterno.com
- Punto ciego detectado: Antes, el botón
Autorizar descuento(stockBetaGuardarenworker/build_sellers.py) sólo escribía en KVsellers:beta:promosy mostraba"activado en los 3 canales", pero niliquidar()(pdParaML) lo leía, ni se cruzaban las publicaciones de Mercado Libre (1xy packsNN-CODIGO), ni se avisaba a Marti Ramundo y Gaspi Howlin. - Conexión real desplegada hoy en
sellers.plantinterno.com(build_sellers.py+ck-stock-beta.js):
- Máquina de estados honesta (
autorizado→aplicado→vencido): La autorización de la marca no descuenta la liquidación en frío antes de que baje el precio al público. Una vez activado el descuento en los canales (estado: "aplicado",aplicadoDesde),liquidar()(pdParaML) lo aplica sobre las entregas de Mercado Libre dentro de[aplicadoDesde, hasta]con tope enunidadesLote(sin duplicar B2C/B2B que ya traenitems.<pid>.providerDiscount.ddesde Mongo). - Cruce automático de publicaciones Mercado Libre (
1xy packsNN-CODIGO):publicacionesMLDe()cruzasellerCodecontraml:mapaystockmap, listando en el modal cadaMLA(1xy packs06-,12-, etc.), el costo del pack (e[2], que en la hoja ya viene multiplicado porNN) y el texto exacto listo para pegar en la Columna E ("CAMPAÑA ACTIVA":"{desc}% - ${costoConDto}") de la hoja"Precios para ML", con botón de copiado en 1 clic. - Capa KV persistente
ml:mapa:camp: Sobrevive al cron de las 08:00 AM (refrescarMapaML) superponiendo el costo promocional sobreml:mapamientras la Col E de la Google Sheet no lo haya pisado aún.
B. Cómo funciona hoy el circuito real en plant.com.ar y Mercado Libre (Marti + Gaspi)
- En
plant.com.ar(B2C) ybusiness.plant.com.ar(B2B):
- Gaspi (
gaspar@vivet.com.ar) crea el documento en MongoDBcampaignscondata.area: "compras"→ esto estampaitems.<pid>.providerDiscount = { id, d }en las órdenes entregadas para descontarlo de la liquidación Planter. - Marti (
martina.ramundo@plant.com.ar) actualizadata.maxDiscounts: { g, d }ydata.priceWithDiscount: { g, d }enproductspara que baje el precio en vidriera.
- En Mercado Libre (
MLA...):
- Operan sobre la Google Sheet "Datos Mercado Libre" → pestaña "Precios para ML" (
1aIvRt5TX6VS1n4r3Ux5fbKQFgkmHgnHXm4CXa5JE96o, gid950019274,3.295MLAs). - En la Columna E (
CAMPAÑA ACTIVA) escriben"{desc}% - ${costo_con_dto}"tanto en la fila1xcomo en cada fila de packNN-CODIGO(donde la Col D ya tieneNN × costo_madre), lo que recalculaPRECIO ML CON DTO(Col R) manteniendo intacto el margen de Plant.
C. Los 4 Huecos en Plant Hub (/Users/gabrielbusso/Proyectos/plant-hub) para jubilar el Excel de Marti y Gaspi
Juanchi armó packages/business-logic/src/mercadolibre/ (listing-prices.ts, listing-profitability.ts, listing-promotions.ts, omnichannel-price.ts), pero hoy no reemplaza la hoja "Precios para ML" por 4 huecos concretos:
- Falta
providerDiscountBpsen Prisma y Liquidaciones:Promotion(marketing.prisma),OrderItem(order.prisma) ySellerSettlementno tienen el campoproviderDiscountBps/SupplierDiscountAuthorization. Si se crea una promo enPlant Hub, Plant absorbe el 100% del descuento y no se descuenta de la liquidación Planter. - Los guardrails de margen bloquean los descuentos financiados por la marca:
assertPromotionGrossMarginycalculateListingProfitabilityvalidan el precio con descuento contrapurchasePricebruto en vez deeffectiveCost = purchasePrice * (1 - providerDiscountBps/10000). Si una marca autoriza-35%,Plant Hubcree que Plant vende a pérdida (InsufficientListingMarginError) y rechaza la promo. listing-promotions.tses 100% Read-Only: Sólo haceGET /seller-promotions/items/{itemId}. No tiene mutación (POST /seller-promotions/items/{itemId}) para adherir o activarPRICE_DISCOUNT/DEALen Mercado Libre con precio tachado ni propagarlo automáticamente desde el SKU madre a sus packsNN-CODIGO(unitsPerListing).- Fórmula impositiva y de envío Full incompleta en
listing-profitability.ts: ComparabasePricecon IVA contrapurchasePricesin IVA (inflando el margen ~17 puntos, admitido en unTODOen la línea 26 del archivo), omite Percepciones (~3-5%) y tienefreeShippingCostCents = 0en vez de la tabla de escalas de envío Full por peso/precio que hoy resuelve la planilla de Marti.
Actualización 2026-10-29 — Autogestión de Campañas Omnicanal + Mercado Libre Seller Center y Puente Real a MongoDB / Firestore
- Nueva Pestaña de Autogestión «Campañas y Promos» en Portal Planter (
sellers.plantinterno.com->#stock-campanas):
- Calendario en Vivo de Mercado Libre Seller Center + Omnicanal Plant: sincroniza desde
GET https://api.mercadolibre.com/seller-promotions/users/314922091?app_version=v2hacia KVsellers:ml:promoslas 17 campañas activas y próximas (incluyendo *MKP T1 CYBER MONDAY NOV*P-MLA18145042, *Ofertas compartidas CM*P-MLA18161080, *CATALOGO NOVIEMBRE 26*C-MLA1804675, *Oferta Relámpago ML*LGH-MLA1000, *Oferta del Día ML*DOD-MLA1000, *Campaña Stock No Saludable*P-MLA17027004y los 3 eventos omnicanal de Plant). Cada tarjeta tiene el botón «Sumar mis productos» que pre-carga vigencia, canal y porcentaje sugerido. - Configurador de Promoción Propia por Fechas y Catálogo (Sin depender de vencimientos): permite a cualquier marca elegir libremente
Fecha inicio,Fecha fin,Canales(Omnicanal,Sólo Plant + BusinessoSólo Mercado Libre 1x y Packs), porcentaje deproviderDiscount(-10%,-15%,-20%,-25%,-30%o% manual) y marcar qué SKUs de su catálogo participan, viendo en vivo el Neto Planter habitual vs Neto Planter en campaña y el valor exacto de Col E (% - $costoPackConDto) para cada publicación1xy PackNN-CODIGO. - Mis Campañas y Descuentos Confirmados: lista todas las campañas por fecha y promociones por lote FEFO con su estado de impacto en MongoDB y en
ml:mapa:camp.
- Puente Real hacia Firestore / MongoDB (
scripts/sync_planter_discounts_mongo.py):
- Audita y sincroniza
sellers:beta:promoscontra Firestorevivet-web(que replica en tiempo real por Cloud Functions a MongoDBprod-dby Algolia): - Colección
campaigns: upserta{ objectID, name, area: "compras", brand, discount, allItems, items: pids, start_timestamp, end_timestamp, planterPromoId, canales }. - Colección
products(cuando hoy está dentro de[desde, hasta]y aplica en Plant/Business): guardaplanterBaseline, aplicaproviderDiscount,sinceDate,untilDate,discounts.{g,d},maxDiscounts.{g,d}y recalculapriceWithDiscount.{g,d}. - Reversión automática y Backup Pre-Write: al vencer (
hasta < hoy) restauraplanterBaseline, y en modo--applyguarda siempre primero una copia de respaldo enscripts/backups_discounts_plant/backup_discounts_<ts>.json.
- Seguimiento Programado con Mauro Stoessel (
30/10 08:30 hs) y Presentación a Nacho, Nico, Marti y Gaspi:
- Mensaje programado (
plant-programar-> viernes 30/10 08:30 hs +plant-escucharactivo en+5491141759260): envía a Mauro Stoessel en 3 burbujas el aviso del nuevo tab «Campañas y Promos» ensellers.plantinterno.com(sincronizado con las 17 campañas reales de Mercado Libre Seller Center + promociones propias por fecha/catálogo), la conexión directa a MongoDB (campaigns+products) y Columna E de"Precios para ML", junto con las 4 fórmulas deArmar Pedido Cálculos(Cálculos!U7,Cálculos!R7,Cálculos!AE7yPreparar OC!O7) enviadas el 29/10 a las 17:19 hs. - Próximo paso (orden de Gabriel
3A76D900B8D538ACD3B0/3A51CC3B1DA26E3D8344): apenas Mauro termine de revisar todo mañana temprano, compartir el sistema completo con Nacho, Nico, Marti y Gaspi.
Temas/procedimiento-devoluciones-proveedores-plant-hub