Plant Cerebro
← temas
tema

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)

  1. Portal Cliente (support-claims-customer.ts): El cliente ya puede reportar un reclamo (createMyClaimAction) eligiendo ítems del pedido, lote y subiendo fotos.
  2. Agendamiento de Retiro en Hoja de Ruta (schedule-claim-pickup.ts + ReverseLogisticsPanel): Cuando soporte/ejecutivo aprueba el retiro (scheduleClaimPickupAction), inserta automáticamente una parada tipo PICKUP ("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).
  3. 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/returns con botones Ausente, Rechazo, Daño) y módulo de salvataje de cajas secas ante rotura de frío (cold-chain-return.ts).
  4. Mercado Libre (mercadolibre/claims.ts + wms/meli-indemnity.ts): Ingesta por webhook los reclamos/devoluciones de ML (MeliClaim con type: "RETURN" y alerta de SLA dueDate) y contabiliza el cobro de indemnizaciones (AST-RECLAMOS-PENDIENTES-MELI).
  1. Prender LOGISTICS_FAILED_DELIVERY_ENABLED (hoy en modo SHADOW por defecto en failed-delivery.ts L89-96): en modo SHADOW calcula el plan pero no abre custodyStatus ni frena el cierre de la hoja de ruta.
  2. Extender la Custodia de Bultos a las paradas PICKUP de devolución (schedule-claim-pickup.ts): que el chofer no pueda levantar devoluciones sin parada PICKUP autorizada, que en su app confirme qué bultos/unidades subió y que esa parada PICKUP también abra custodyStatus: "IN_VEHICLE" exigiendo escaneo obligatorio en la Nave 70 antes de cerrar la ruta.
  3. Veredicto visual en Andén (DESARMAR Y RE-ESTIBAR vs GUARDAR PARA REENVÍO vs CUARENTENA RMA): que al pistolear en /loading/returns un pedido que vuelve, el sistema cruce si la orden ya fue reemplazada/cancelada (como rj7101 o rJ276) 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.
  4. Auto-crear CustomerReturn esperado desde MeliClaim (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.
  1. Quitar default RESELLABLE en TriageQuarantineDialog (L75-76) y RmaInspectionDialog (L58) + Cuarentena automática de Lote Hermano en PICKING: hoy el modal de triaje abre preseleccionado en disposition: "RESELLABLE" (trampa exacta del caso Jumbalay de Maximiliano González); debe abrir vacío exigiendo rol Calidad + foto/nota sensorial para RESELLABLE, y cuando un lote se dictamina con falla bromatológica/origen (DAMAGED / SUPPLIER_WARRANTY / recallRequired), congelar preventivamente las unidades hermanas del mismo lotId en posiciones INTERNAL de PICKING disparando tarea de inspección a Mauro/Gaspi.
  2. RMA de Proveedor Directo desde Depósito/Recepción sin orderId de Cliente + Aviso Automático + SLA 7/15 días: hoy CustomerReturn y triageQuarantinedRma exigen un orderId de venta y /warehouse/mermas manda directo a pérdida propia (LOSS). Falta permitir crear el ticket INTERNAL → QUARANTINE → SUPPLIER_WARRANTY directo desde Depósito/Recepción (donde nace el grueso de los $ 19,55M de Para Compras), disparar mail + WhatsApp automático al proveedor al pasar a SUPPLIER_WARRANTY, y aplicar bloqueo automático en la próxima Orden de Pago a los 7 días y habilitación de SCRAP físico a los 15 días.
  3. Separar Planter (Consignación) de Reventa en bookSupplierWarrantyCredit (customer-return.ts L2020): hoy triageQuarantinedRma contabiliza DEBE AST-ANTICIPOS-A-PROVEEDORES para cualquier SUPPLIER_WARRANTY con costo > 0. Si la marca es Planter (consignación 100%), no corresponde generar crédito monetario a descontar de OP ($ 0 deuda porque sólo se paga lo vendido), sino publicarlo automáticamente en Stock para retirar de Ezeiza · Cuarto Devolución y Vencidos del Portal Planter (/supplier) con ventana de 15 días.

<!-- ESTADO-VIVO:FIN -->

Automatización Bloqueo de Lotes y Devoluciones en Plant Hub (2026-10-30)

  1. Bloqueo inmediato en depósito de todos los productos hermanos de ese lote hasta auditar qué ocurrió.
  2. Reclamo automático al proveedor abriendo conversación/correo con la evidencia.
  3. 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.

Ú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)

  1. Planilla Excel (Productos no Aptos para la Venta, fila ID 5257):

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:

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):

  1. 🔴 SIN INICIAR (Estado en blanco): 487 líneas (71,7%) · 10.912 unidades · $ 14.655.645 s/IVA.
  2. 🟡 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).
  3. 🟡 Esperando NC: 19 líneas · 259 unidades · $ 940.641 s/IVA.
  4. 🟢 NC Recibida (sin cerrar ni cruzar con depósito): 53 líneas · 223 unidades · $ 1.828.505 s/IVA.
  5. 🔵 Esperando Reposición: 7 líneas · 8 unidades · $ 37.243 s/IVA.
  6. ⚫ Proveedor no lo Reconoce: 2 líneas · 4 unidades · $ 65.922 s/IVA.

Top Proveedores con capital inmovilizado sin reclamar / recuperar en Para Compras:


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)

  1. 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).
  2. Hallazgo en Depósito / Recepción: El operador escanea el SKU/lote desde /warehouse (Productos No Aptos).

Paso 2 · Bloqueo de Ubicación y Cuarentena Automática de Lote en MongoDB

Paso 3 · Reclamo Automático al Proveedor (Mail + WhatsApp + Portal Planter)

  1. Plant Hub genera el Acta de Devolución a Proveedor (RMA Proveedor) con foto, SKU, EAN, lote, vencimiento, cantidad y valor de reposición actualizado.
  2. 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 Retirar del Portal Planter.
  3. El proveedor tiene 48 hs hábiles para seleccionar mediante botón directo:

Paso 4 · Candado Financiero en Cuentas a Pagar (Hard Payment Hold) y Descarte Programado

Novedades Recientes

*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


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")

  1. Dar de alta hoy mismo los SKUs de "Apto Pero No Creado" ($ 1,13M) y pasarlos a Picking.
  2. 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 a Cumana ($ 3,66M) y Meraki ($ 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)

Decisión 3 · Cerrar y limpiar hoy los $ 1,83M s/IVA (53 filas) con NC Recibida

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)

Decisión 5 · Barrido Físico de 48 hs en Cuarto Devolución (2.571 u. en MongoDB vs. 24.545 u. en Excel)

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

  1. Punto ciego detectado: Antes, el botón Autorizar descuento (stockBetaGuardar en worker/build_sellers.py) sólo escribía en KV sellers:beta:promos y mostraba "activado en los 3 canales", pero ni liquidar() (pdParaML) lo leía, ni se cruzaban las publicaciones de Mercado Libre (1x y packs NN-CODIGO), ni se avisaba a Marti Ramundo y Gaspi Howlin.
  2. Conexión real desplegada hoy en sellers.plantinterno.com (build_sellers.py + ck-stock-beta.js):

B. Cómo funciona hoy el circuito real en plant.com.ar y Mercado Libre (Marti + Gaspi)

  1. En plant.com.ar (B2C) y business.plant.com.ar (B2B):
  1. En Mercado Libre (MLA...):

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:

  1. Falta providerDiscountBps en Prisma y Liquidaciones: Promotion (marketing.prisma), OrderItem (order.prisma) y SellerSettlement no tienen el campo providerDiscountBps / SupplierDiscountAuthorization. Si se crea una promo en Plant Hub, Plant absorbe el 100% del descuento y no se descuenta de la liquidación Planter.
  2. Los guardrails de margen bloquean los descuentos financiados por la marca: assertPromotionGrossMargin y calculateListingProfitability validan el precio con descuento contra purchasePrice bruto en vez de effectiveCost = purchasePrice * (1 - providerDiscountBps/10000). Si una marca autoriza -35%, Plant Hub cree que Plant vende a pérdida (InsufficientListingMarginError) y rechaza la promo.
  3. listing-promotions.ts es 100% Read-Only: Sólo hace GET /seller-promotions/items/{itemId}. No tiene mutación (POST /seller-promotions/items/{itemId}) para adherir o activar PRICE_DISCOUNT / DEAL en Mercado Libre con precio tachado ni propagarlo automáticamente desde el SKU madre a sus packs NN-CODIGO (unitsPerListing).
  4. Fórmula impositiva y de envío Full incompleta en listing-profitability.ts: Compara basePrice con IVA contra purchasePrice sin IVA (inflando el margen ~17 puntos, admitido en un TODO en la línea 26 del archivo), omite Percepciones (~3-5%) y tiene freeShippingCostCents = 0 en 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

  1. Nueva Pestaña de Autogestión «Campañas y Promos» en Portal Planter (sellers.plantinterno.com -> #stock-campanas):
  1. Puente Real hacia Firestore / MongoDB (scripts/sync_planter_discounts_mongo.py):
  1. Seguimiento Programado con Mauro Stoessel (30/10 08:30 hs) y Presentación a Nacho, Nico, Marti y Gaspi:

Temas/procedimiento-devoluciones-proveedores-plant-hub