Guía · Distribución y mayoreo · Odoo 16 a 19

Cómo corregir diferencias de inventario en Odoo antes de migrar una distribuidora de mayoreo

Guía actualizada el 13 de octubre de 2026. La versión original (julio de 2026) contaba el caso; esta versión conserva el caso y agrega el procedimiento completo: corte, conteo, causas, valoración y criterios de salida, con las rutas de menú de Odoo 19.

Respuesta breve. Antes de migrar una distribuidora de mayoreo, las diferencias de inventario en Odoo se corrigen en este orden: fija una fecha y hora de corte y procesa los movimientos pendientes; cuenta físicamente contra la columna A la mano de Inventario ‣ Operaciones ‣ Inventario físico; investiga la causa de cada diferencia y corrige primero el movimiento mal registrado (recepción omitida, entrega sin validar, traslado a medias, unidad de medida mal convertida); aplica el ajuste autorizado solo para las diferencias reales; concilia la valoración (costo estándar, promedio o PEPS) con contabilidad junto con tu contador; y no autorices la migración hasta cumplir una lista de criterios de salida. Un ajuste masivo no es el primer paso: es el último.
Diagrama 1. Meta-estructura de la guía: requisitos y alcance, ocho pasos del corte a los criterios de salida, qué puede salir mal, caso real, postura, fuentes y preguntas frecuentes.
Ver diagrama Mermaid
mindmap
  root(("Corregir diferencias de inventario en Odoo antes de migrar"))
    Requisitos y alcance
      Community y Enterprise
      Odoo 16 a 19
      sin escrituras de IA
    Ocho pasos
      corte
      unidades de medida
      conteo ciego
      causas antes que ajustes
      ajuste autorizado
      valoración y contabilidad
      saldos iniciales y prueba
      criterios de salida
    Qué puede salir mal
    Caso real anonimizado
    Qué opinamos y fuentes
    Preguntas frecuentes
Diagrama 1. Meta-estructura de la guía. Se lee en orden: primero el alcance, luego el procedimiento, después lo que falla, y al final el caso que lo demuestra.

Migrar un ERP grande no es copiar un sistema de una versión a otra. Es trasladar también todo lo que ese sistema tenía mal. Cuando la base está sucia, la migración no la limpia: la hereda, la vuelve más cara de corregir y le pone encima la etiqueta tranquilizadora de «sistema nuevo». Esta guía describe cómo un distribuidor mayorista de iluminación y mobiliario de proyecto en México se preparó para actualizar de Odoo 16 a Odoo 19, por qué el primer entregable no fue la migración sino la estabilización de su inventario, y el procedimiento que hoy aplicamos antes de cualquier migración de una comercializadora.

Requisitos y alcance

PuntoQué cubre esta guíaQué no cubre
EdicionesCommunity y Enterprise. La app Inventario y el inventario físico existen en ambas.Las funciones exclusivas de Enterprise (por ejemplo, calidad o códigos de barras avanzados) no son necesarias para este procedimiento.
VersionesOdoo 16 a 19. Las rutas de menú citadas son de la documentación de Odoo 19 en español; en 16 y 17 la página se llama «Ajustes de inventario» y los nombres pueden variar.Versiones anteriores a 16 (fuera del alcance del servicio de Transgenia).
DespliegueOdoo Online, Odoo.sh y servidor propio. El procedimiento es de interfaz y de criterio, no de código.Scripts de migración de datos y actualización de módulos personalizados: son el proyecto siguiente.
Qué incluyeExistencias por producto, ubicación, lote o serie; unidades de medida; valoración y conciliación con contabilidad; preparación de saldos iniciales; criterios de salida.Tratamiento fiscal de mermas y faltantes: lo define tu contador. Esta guía señala dónde consultarlo, no sustituye su criterio.
Quién lo haceResponsable de almacén, responsable contable y una persona que autoriza los ajustes. Transgenia acompaña con el método y las consultas de solo lectura.No requiere que la IA escriba nada en Odoo. Los ajustes los aplica una persona.

Paso a paso: del corte a los criterios de salida

1. Fija el corte y cierra lo pendiente

Define fecha y hora de corte y comunícala a compras, ventas y almacén. Antes de contar, valida o cancela las transferencias que estén listas o parciales: recepciones de proveedor sin validar, entregas facturadas pero no confirmadas en almacén y traslados internos a medias. La documentación de Odoo 19 lo advierte con claridad: «Entre el conteo físico y la aplicación del ajuste de inventario, pueden ocurrir movimientos de productos.» Si no puedes detener la operación durante el conteo, registra aparte todo lo que entre o salga entre el conteo y la aplicación.

2. Audita unidades de medida y empaques antes de contar

En mayoreo, una parte de las diferencias no son faltantes: son piezas contadas como cajas, cajas contadas como tarimas o conversiones mal configuradas. Revisa que la unidad de compra, la unidad de venta y el factor de conversión de cada producto coincidan con la realidad física. Un producto que se vende por pieza entera no debería mostrar decimales en existencia.

3. Cuenta a ciegas contra la columna A la mano

En Odoo 19, ve a Inventario ‣ Operaciones ‣ Inventario físico. La página muestra, por producto y ubicación, las columnas A la mano, Contado y Diferencia. Captura el conteo real en Contado. Procura que quien cuenta no vea la cantidad teórica: un conteo que «confirma» el sistema no sirve de diagnóstico. En catálogos grandes, filtra por ubicación y pide un segundo conteo para los productos de alto valor o alta rotación. El conteo queda registrado sin aplicarse: «En esta etapa, el conteo (ajuste de inventario) queda registrado, pero todavía no se aplica.»

4. Investiga cada diferencia y corrige la causa, no el síntoma

Esta es la parte que casi nadie hace y la que separa un saneamiento de un maquillaje. Antes de aplicar nada, clasifica cada diferencia relevante por su causa:

Causa encontradaCorrección en OdooPor qué no basta un ajuste
Recepción de proveedor omitidaVerificar factura y remisión; validar la recepción correcta.Un ajuste positivo oculta una compra sin registrar y descuadra cuentas por pagar.
Entrega facturada pero no validadaRevisar la salida real y validar o cancelar el movimiento.Un ajuste negativo esconde una venta sin salida de almacén.
Traslado interno incompletoConciliar origen, destino y estado del traslado.El producto existe; está en otra ubicación.
Producto en otra ubicaciónRegistrar una reubicación interna.No es una pérdida.
Unidad o empaque mal configuradoCorregir la unidad de medida y la conversión antes de tocar cantidades.El ajuste repetiría el error en cada compra futura.
Lote o caducidad incorrectosConciliar por lote y ubicación.Un ajuste por producto rompe la trazabilidad.
Dos productos con el mismo nombreAnclar cualquier carga masiva al identificador externo de la variante, nunca al nombre.Odoo no sabe a cuál aplicar el cambio o lo aplica al equivocado (ver el caso).
Merma, daño o robo realAplicar el ajuste con motivo, evidencia y autorización.Es la única diferencia que sí se resuelve con un ajuste.

5. Aplica el ajuste autorizado

Cuando solo quedan diferencias reales, aplícalas desde la misma página. Odoo pide confirmación antes de hacerlo («Como precaución adicional, Odoo solicita una confirmación antes de aplicar el ajuste de inventario») y crea un movimiento de existencias por la diferencia («Al aplicar un ajuste de inventario, el sistema también crea un registro de movimiento de existencias»). Registra el motivo, la referencia del conteo y quién autorizó. Guarda el historial de movimientos antes y después.

6. Concilia la valoración con contabilidad, con tu contador

Una cantidad correcta no garantiza un costo correcto. Odoo valora el inventario con tres métodos, configurados en los ajustes de Contabilidad y, opcionalmente, por categoría de producto:

Compara el reporte de valoración del inventario con las cuentas de inventario del mayor a la fecha de corte; revisa existencias negativas, costos de compra incorrectos y movimientos con valoración pendiente. Dos advertencias que importan en una migración 16 a 19: las estrategias de remoción «solo afectan qué producto se toma primero, no el método de valoración», y desde Odoo 19 «el método perpetuo impacta la cuenta de valoración de existencias a nivel de la factura», mientras que antes de 19 se asentaba en cada movimiento. Es decir, la conciliación contable no se hereda igual al cambiar de versión. En México, el tratamiento contable y fiscal de mermas, faltantes y sobrantes lo define el responsable contable; la documentación de Odoo también recomienda consultarlo antes de tocar la valoración.

7. Prepara los saldos iniciales y haz una migración de prueba

Con el inventario conciliado: congela y documenta el corte; depura el catálogo (duplicados, códigos de barras, conversiones); exporta existencias y costos por producto, ubicación, lote y serie; importa una muestra representativa en la base de prueba de la versión nueva y compara unidades y valores; prueba compras, ventas, devoluciones y traslados. Conserva respaldos, reportes de conciliación, aprobaciones y un procedimiento de reversión.

8. Criterios de salida: no migres hasta cumplirlos

Diagrama 2. Los ocho pasos del procedimiento, del corte de operaciones a los criterios de salida, con regreso al paso de causas cuando no se cumplen.
Ver diagrama Mermaid
flowchart TB
    P1["1. Fijar el corte y cerrar lo pendiente"] --> P2["2. Auditar unidades de medida y empaques"]
    P2 --> P3["3. Contar a ciegas contra A la mano"]
    P3 --> P4["4. Investigar cada diferencia y corregir la causa"]
    P4 --> P5["5. Aplicar solo los ajustes autorizados"]
    P5 --> P6["6. Conciliar la valoración con contabilidad"]
    P6 --> P7["7. Saldos iniciales y migración de prueba"]
    P7 --> P8{"8. ¿Se cumplen los criterios de salida?"}
    P8 -- "No" --> P4
    P8 -- "Sí" --> M["Autorizar la migración"]
Diagrama 2. El procedimiento completo. El ajuste (paso 5) llega después de investigar causas (paso 4), nunca antes; y sin criterios de salida no hay migración.
Diagrama 3. Árbol de decisión: si la diferencia no es real se corrige el movimiento según su causa; solo una merma, daño o robo real se resuelve con un ajuste.
Ver diagrama Mermaid
flowchart TB
    A{"¿La diferencia es real?"}
    A -- "No: movimiento mal registrado" --> B{"¿Qué causa?"}
    B -- "Recepción omitida" --> C1["Validar la recepción correcta"]
    B -- "Entrega sin validar" --> C2["Validar o cancelar la salida"]
    B -- "Traslado a medias" --> C3["Conciliar origen y destino"]
    B -- "Unidad mal convertida" --> C4["Corregir unidad y conversión"]
    B -- "Producto homónimo" --> C5["Anclar al identificador externo"]
    A -- "Sí: merma, daño o robo" --> D["Ajuste con motivo, evidencia y autorización"]
Diagrama 3. Causa o síntoma. Un ajuste solo es correcto cuando la diferencia es real; en los demás casos tapa un movimiento mal registrado.

Qué puede salir mal

El caso real: cuando el costeo miente

Lo que sigue son las cifras reales del diagnóstico de un distribuidor mayorista, anonimizadas, tal como se publicaron en julio de 2026. Ninguna fue estimada ni redondeada.

Tablero con cuatro indicadores del diagnóstico: 230 GB de base de datos, 61 campos personalizados a actualizar, 3 métodos de costeo validados, -36.6 por ciento de deflación detectada en la valuación de un escenario PEPS.
Cuatro cifras del diagnóstico, leídas de la documentación de estabilización del proyecto. Sin redondeo.

El punto de partida era un ERP con historia: una base de datos de 230 GB, engordada por años de transacciones sin cortes de periodo; 61 campos personalizados que tendrían que actualizarse uno por uno para no romperse en la versión nueva; y alrededor de 29,000 líneas de Python y 12,000 de XML de personalizaciones acumuladas. El consejo más común cuando una versión se acerca a su fin de soporte es directo: actualiza. Pero «solo actualiza» asume que lo que se traslada está sano.

Antes de tocar la versión, pusimos a prueba los números. Un distribuidor de mayoreo vive de un margen delgado; si el sistema calcula mal el costo de lo que vende, la empresa decide precios sobre una realidad que no existe. Se documentaron tres escenarios, uno por método de costeo, con productos reales del catálogo. En el escenario PEPS, sobre un producto real de tratamiento acústico, los números contaban una historia que la operación no había notado:

Gráfico que contrasta el margen que la operación suponía contra el margen real registrado de 0 por ciento, junto a la deflación de -36.6 por ciento en la valuación y las 990 unidades sin origen documentado.
En un producto bajo PEPS: margen registrado de 0 %, deflación de -36.6 % y 990 unidades sin origen. El sistema mostraba estabilidad; la prueba mostró lo contrario.

La cura no fue reimplementar: fue estabilizar. Una pieza central fue el ajuste masivo hecho de la forma correcta. En un catálogo de mayoreo con miles de referencias, dos productos pueden llamarse igual y ser distintos. Si se intenta ajustar por nombre, Odoo no sabe a cuál aplicar el cambio o lo aplica al equivocado.

Diagrama: dos productos con el mismo nombre comercial pero distinta marca colisionan en un ajuste por nombre; el identificador externo único de Odoo desambigua y dirige el ajuste al registro correcto.
El identificador externo de Odoo elimina la ambigüedad: cada ajuste llega al registro exacto, no al del nombre parecido.

La solución fue anclar cada ajuste al identificador externo único de cada variante, no a su nombre. Con esa ancla, la carga masiva deja de adivinar: cada cantidad contada aterriza en la variante correcta, con su fecha y su ubicación. El stock físico y el del sistema vuelven a coincidir, que es la condición mínima para que cualquier costeo posterior signifique algo. Solo entonces tuvo sentido hablar de Odoo 19.

Diagrama 4. Flujo del caso real: ERP heredado, prueba de credibilidad del costeo, hallazgo del margen de 0 por ciento, estabilización por identificador externo, inventario conciliado y migración a Odoo 19.
Ver diagrama Mermaid
flowchart TB
    A["ERP heredado: 230 GB, 61 campos"] --> B{"¿Los números son creíbles?"}
    B -- "Validar costeo con productos reales" --> C["Hallazgo PEPS: margen 0 %, deflación -36.6 %"]
    C --> D["Estabilizar: ajuste por identificador externo"]
    D --> E["Inventario conciliado: físico = sistema"]
    E --> F["Migrar a Odoo 19 sobre base confiable"]
Diagrama 4. El caso real. La migración es el último paso, no el primero: primero se demuestra que los números mienten y se corrige la base.

Qué opinamos en Transgenia

Fuentes

Cada hecho técnico de esta guía se apoya en una fuente pública. Las cifras del caso son de Transgenia y se indican como tales.

Preguntas frecuentes

¿Qué es un ajuste de inventario en Odoo y cuándo conviene usarlo?

Es el registro que iguala la cantidad del sistema con la cantidad contada. Al aplicarlo, Odoo crea un movimiento de existencias por la diferencia. Conviene usarlo solo para diferencias reales (merma, daño, robo) después de corregir recepciones, entregas y traslados mal registrados; usarlo antes oculta la causa.

¿Dónde está el inventario físico en Odoo 19?

En Inventario ‣ Operaciones ‣ Inventario físico. La página muestra por producto y ubicación las columnas A la mano, Contado y Diferencia. En Odoo 16 y 17 la página se llama Ajustes de inventario y los nombres de columna pueden variar.

¿Hay que detener la operación para contar?

Lo ideal es fijar una fecha y hora de corte y validar o cancelar lo pendiente antes de contar. Si no puedes detener la operación, registra aparte cada entrada, salida y traslado ocurrido entre el conteo y la aplicación: la documentación de Odoo advierte que esos movimientos pueden ocurrir y generar diferencias nuevas.

¿Por qué el inventario no cuadra si acabo de contar?

Las causas más frecuentes en mayoreo son unidades de medida o empaques mal convertidos, recepciones sin validar, entregas facturadas sin salida de almacén, traslados a medias y productos homónimos cargados por nombre. Cada una se corrige distinto; un ajuste global las tapa todas y no arregla ninguna.

¿Qué diferencia hay entre costo estándar, costo promedio y PEPS en Odoo?

Costo estándar es un costo unitario fijo actualizado a mano; costo promedio (AVCO) es el promedio ponderado de todas las unidades; PEPS (FIFO) es primeras entradas, primeras salidas. Se configuran en los ajustes de Contabilidad y, opcionalmente, por categoría de producto. La elección correcta depende de cada familia de producto, y cambiarla a mitad del saneamiento genera descuadres nuevos.

¿Cómo concilio la valoración del inventario con contabilidad antes de migrar?

Compara el reporte de valoración con las cuentas de inventario del mayor a la fecha de corte; revisa existencias negativas, costos de compra incorrectos y movimientos con valoración pendiente; documenta y aprueba los asientos necesarios con tu contador. Desde Odoo 19 el método perpetuo impacta la cuenta de valoración a nivel de la factura, no en cada movimiento como antes.

¿Puedo hacer el ajuste masivo con una importación?

Sí, siempre que cada línea esté anclada al identificador externo de la variante y no a su nombre. En catálogos grandes hay productos con el mismo nombre comercial y distinta marca; una carga por nombre aplica el ajuste al registro equivocado. En el caso real de esta guía ese anclaje fue la pieza central del saneamiento.

¿Qué criterios debe cumplir el inventario antes de cargar saldos iniciales en el nuevo Odoo?

Cantidades conciliadas o excepción documentada en el 100 % de los SKU activos; sin diferencias inexplicadas en productos de alto valor; existencias negativas resueltas; lotes y caducidades verificados; valoración conciliada o diferencias aprobadas; mercancía en tránsito y de terceros identificada; y una migración de prueba con los mismos totales de unidades y valores.

¿Es distinto corregir inventario en Odoo Community que en Enterprise?

No para este procedimiento. La app Inventario, el inventario físico, los ajustes y la valoración existen en ambas ediciones. Las diferencias de edición aparecen en otras integraciones, no en el saneamiento previo a migrar.

¿Hay que estabilizar el inventario en Odoo 16 antes de migrar a Odoo 19?

Sí. La versión nueva no corrige un costeo mal cimentado; lo hereda con mejor apariencia. Además, la lógica de la valoración perpetua cambió en Odoo 19, así que conviene llegar a la migración con cantidades y valores conciliados en la versión origen.

¿Qué papel tiene la IA en este procedimiento?

Consultas de solo lectura: leer existencias, movimientos pendientes y valoración para preparar el diagnóstico y las listas de verificación. Las correcciones y los ajustes los aplica una persona con autorización. Nuestro servidor MCP para Odoo tiene un modo de solo lectura que rechaza cualquier escritura.

¿Cuánto tarda estabilizar el inventario de una distribuidora antes de migrar?

Depende del tamaño del catálogo, del número de almacenes, de si hay lotes o series y del estado de la contabilidad. No publicamos plazos ni cifras que no provengan de un proyecto documentado; el caso de esta guía se ejecutó entre enero y junio de 2026 dentro de un proyecto mayor de migración.

Siguiente paso

Si tu distribuidora o comercializadora corre Odoo y está pensando en migrar de versión, revisa primero la página de Odoo para comercializadoras, donde están reunidas las guías de inventario, pedidos por WhatsApp y cotizaciones con IA, y luego solicita una evaluación: traemos el método de estabilización y el criterio de cuándo conviene, o no, migrar todavía.

Sobre el autor y Transgenia

Efraín Carreón Ortiz es Director General de Centrum Transgenia, una boutique tecnológica mexicana. Está acreditado con la insignia oficial Claude Code (Claude Partner Badge) emitida por Anthropic, verificable en Credly.

Transgenia es OpenAI Select Partner dentro del OpenAI Partner Network y partner registrado en el Claude Partner Network de Anthropic. Equipo: Víctor Estrada Bello, Chief PMO; Danild Johan Zambrana López, Chief Technology Officer; Jaime Lozano Castañeda, Chief Marketing Officer; Efraín Carreón Ortiz, Director General (Chief Executive Officer).

Hablemos: contacto@transgenia.org, WhatsApp +52 55 8034 0405, agenda de 15 minutos o la página de contacto.

Sigue leyendo

Nota sobre veracidad y privacidad

Las cifras del caso (230 GB de base de datos, 61 campos personalizados, cerca de 29,000 líneas de Python y 12,000 de XML, y en un escenario de costeo PEPS: margen de 0 %, deflación de -36.6 %, rotación de 11.4 % y 990 unidades sin origen documentado) provienen de la documentación de estabilización de un proyecto real de mayoreo ejecutado entre enero y junio de 2026. Ninguna cifra fue estimada ni redondeada. El cliente se presenta de forma anónima: no se nombra a la empresa, sus marcas, sus proveedores ni a las personas involucradas. Ningún dato personal fue leído ni citado; solo agregados operativos. Las citas de la documentación de Odoo corresponden a la versión 19.0 consultada el 12 de octubre de 2026.

← Volver al Blog
Transgenia, Verified IT agency on Vai.me