Eran las 8 de la mañana de un lunes y mi café aún no terminaba de hacerse cuando sonó el teléfono. Un cliente soltó una captura de pantalla en nuestro chat grupal: 47 pedidos sentados en la cola de excepciones del OMS, todos marcados como «producto no coincidente». El Black Friday había quedado tres semanas atrás, la temporada de devoluciones estaba en pleno apogeo, y si esos 47 pedidos se quedaban ahí mucho más tiempo, el servicio al cliente iba a ahogarse.

Entré en remoto, eché un vistazo y tuve que reírme. Nada estaba roto. La semana anterior habían abierto una nueva tienda en TikTok Shop, y operaciones había publicado una veintena de superventas usando las convenciones de SKU de TikTok, que no coincidían con nada en el OMS. Los pedidos entraban sin problema — el OMS simplemente no reconocía ninguno de esos SKU, así que hizo lo único que podía: los alineó en la cola de excepciones, esperando a que un humano los reclamara.

Este es el problema más común, y el más subestimado, de la venta multicanal: el mapeo de productos de canal. Un producto, cinco nombres. En Amazon es AMZ-BLK-HOODIE-L, en Walmart es WM_98213, en la tienda de Shopify es HOODIE-BLK-L-2024, en TikTok Shop es TTS@hoodie-black-l. Cinco nombres, una sola sudadera física. En el momento en que un pedido se extrae de un canal hacia el OMS, el sistema tiene que saber que esos cinco nombres apuntan a lo mismo. De lo contrario, en el mejor de los casos obtienes una pila de excepciones — y en el peor, envíos equivocados y deducciones de inventario erróneas.

Veinte años en este negocio me han enseñado una cosa con certeza: la tabla de mapeo no es una hoja de cálculo. Es la base bajo todo el flujo de pedidos del OMS. Si la base está mal, todo lo que viene después — la ejecución en WMS, la conciliación financiera — se inclina con ella.

Cómo se ve realmente una tabla de mapeo

Lo esencial primero: la granularidad correcta del mapeo no es «canal». Es «canal × tienda».

Muchas empresas construyen su primera tabla de mapeo a nivel de canal — SKU de Amazon a productos del OMS, SKU de Walmart a productos del OMS. Luego abren una segunda tienda en Amazon, digamos una tienda principal de marca más una outlet de liquidación, ambas vendiendo el mismo producto con SKU de canal distintos, y la tabla se desmorona. Así que desde el primer día, la clave de mapeo debe tener tres partes: canal más tienda más SKU del lado del canal.

Una tabla de mapeo funcional necesita solo un puñado de columnas: código de canal, ID de tienda, el SKU crudo del lado del canal, una instantánea del título del lado del canal, el ID de producto del OMS correspondiente, un estado y una fecha de vigencia. La gente siempre me pregunta por qué insisto en la instantánea del título. Porque cuando alguien clasifica la cola de excepciones, un vistazo al título le dice de qué se trata probablemente el pedido — diez veces más rápido que adivinar a partir de una cadena de SKU. Y tampoco te saltes la columna de estado. Cuando un producto se deslista en un canal, marca el mapeo como deshabilitado; no lo borres. Si lo borras, tus pedidos históricos pierden todo registro de cómo fueron traducidos. La conciliación se convierte en una pesadilla.

Tres lecciones más del campo.

Primero, siempre compara por el SKU del lado del canal, nunca por el título. Los títulos son lo que la gente de operaciones reescribe todo el día — «Hot Sale» hoy, nuevas palabras clave mañana. Comparar por títulos significa reconstruir tus mapeos a diario. Los SKU son comparativamente estables. Son el ancla más confiable en un pedido de canal.

Segundo, normaliza mayúsculas y espacios antes de comparar. Un SKU llega de Shopify con un espacio al final, el lado de Amazon está todo en mayúsculas y el OMS lo guarda en minúsculas — tres cadenas distintas para el sistema, un producto para el ojo humano. Pon todo en minúsculas y recorta los espacios antes de la traducción, y una línea de código elimina aproximadamente un tercio de tus excepciones «falsas».

Tercero, mantén el UPC como clave de respaldo. Los SKU son nombres que cada canal inventa; el UPC es el número de identidad del producto, y es el mismo en todas partes. Regístralo en el maestro de productos cuando des de alta un artículo nuevo. Cuando un SKU no coincida, haz una pasada contra el UPC. Rescata una cantidad sorprendente de pedidos.

A dónde van los pedidos sin coincidencia

Los pedidos que fallan la traducción pertenecen a una cola de excepciones. No se borran, y definitivamente no se crean a la fuerza.

La cola tiene que resolver tres problemas: evitar que las excepciones bloqueen los pedidos buenos, permitir que la gente los resuelva rápido y recuperar automáticamente los pedidos una vez corregidos. Mi configuración estándar: cuando el trabajo de extracción de pedidos topa con un SKU sin mapear, no crea un pedido en el OMS. Escribe un registro de excepción — canal, tienda, SKU del canal, título, cantidad, hora del pedido — marcado como «no reclamado». Los pedidos buenos siguen fluyendo sin un segundo de retraso.

Un humano barre la cola dos veces al día — 10 a.m. y 4 p.m., cuatro veces en temporada alta. Solo hay tres jugadas. Reclamarlo: confirmar a qué producto del OMS corresponde este SKU de canal, agregar el mapeo y el pedido se vuelve a traducir solo. Fusionarlo: el mismo comprador pidió por varios canales, así que fusiona los paquetes según la política de la empresa. O eliminarlo: los pedidos de prueba y los fraudes se cierran.

Esta es la dolorosa lección detrás de esa rutina. Thanksgiving 2023, un cliente 3PL en Ontario, California puso en vivo más de doscientos SKU nuevos para el Black Friday sin construir primero los mapeos. El trabajo de extracción encoló obedientemente cada excepción — y nadie miró, porque todos asumieron que «el sistema se encarga». Tres días después la cola contenía más de novecientos pedidos, y el servicio al cliente ya había recibido tres rondas de llamadas furiosas. Desde entonces mi regla para cada cliente: la cola de excepciones debe tener un responsable, se revisa al menos cuatro veces al día en temporada alta, y más de 50 pedidos encolados dispara una alerta por SMS. Una cola que nadie vigila es lo mismo que no tener cola.

Un caso especial merece su propio párrafo: los paquetes (bundles). Un SKU de canal mapeado a dos productos del OMS — el clásico SKU de paquete «compra una sudadera, llévate calcetines gratis» — es una relación uno-a-muchos. La traducción tiene que dividirlo en dos líneas de pedido, cada una deduciendo su propio inventario. Muchos productos OMS solo soportan mapeos uno-a-uno, así que pregunta por el soporte uno-a-muchos durante la selección. Si te enteras después del go-live, estarás parcheando un sistema en producción.

Incorporar un canal nuevo en tres pasos

Cada canal nuevo empieza sus mapeos desde cero. Mi manual estándar es de tres pasos, y hasta ahora no me ha fallado.

Paso uno: exporta la lista completa de SKU y concilia antes de vender nada. Una vez construida la tienda y publicados los productos, el primer trabajo no es vender — es exportar la lista viva de SKU del backend del canal y compararla línea por línea contra el maestro de productos del OMS para construir la primera tabla de mapeo. Por cada falla, decide en el acto: ¿falta el producto en el OMS (créalo), o operaciones nombró mal el SKU del canal (corrígelo)? El orden siempre es «mapeos primero, ventas después». Inviertelo y obtienes esas 47 excepciones del lunes por la mañana.

Paso dos: conecta la extracción de pedidos, y envía traducción y manejo de excepciones juntos. Cuando la integración API esté lista, no vayas a volumen completo. Reproduce los últimos siete días de pedidos reales a través del flujo de traducción y revisa la cobertura del mapeo. Mi vara es el 98% — por debajo, la primera tabla de mapeo tiene huecos, así que ve a llenarlos. Una vez que la reproducción pase, activa la extracción en vivo, y asegúrate de que las reglas de alerta de la cola estén configuradas antes de que lleguen los problemas reales, no después.

Paso tres: concilia durante una semana. El canal no está incorporado hasta que la cobertura se sostenga. Cada día, cruza tres números entre sí: el conteo de pedidos del lado del canal, el conteo de pedidos exitosos en el OMS y las nuevas excepciones en la cola. A diario la primera semana, día por medio la segunda, y luego pásalo a las revisiones rutinarias cuando esté limpio. La tabla de mapeo de un canal nuevo ganará unas cuantas filas casi a diario durante las primeras dos semanas — eso es normal. Los SKU de cola larga siempre se escapan, y una vez que el proceso corre sin fricción, agregar un mapeo toma dos minutos.

Operador de comercio electrónico gestionando pedidos multicanal en una oficina de almacén

Recorre esos tres pasos y un canal nuevo está genuinamente en vivo en el OMS. Cuando operaciones quiera agregar un sexto o séptimo canal, corre el mismo manual y queda listo en un día.

Apéndice: la tabla de mapeo, lista para copiar

  • mapping_id: clave primaria, generada por el sistema
  • channel_code: p. ej. amazon, walmart, shopify, tiktok-shop
  • store_id: distingue múltiples tiendas en un canal
  • channel_sku: SKU crudo del lado del canal; índice único en (channel_code, store_id, channel_sku)
  • channel_title: instantánea del título para clasificación humana
  • oms_product_id: la clave de producto del OMS correspondiente
  • qty_factor: multiplicador de cantidad para dividir paquetes uno-a-muchos (predeterminado 1)
  • upc: clave de respaldo cuando falla el SKU
  • status: activo o deshabilitado — deslistado significa deshabilitado, nunca borrado
  • effective_from: cuándo entra en vigor el mapeo
  • updated_by, updated_at: quién lo tocó, cuándo
  • note: contexto, p. ej. "first batch, TikTok new store, BF 2026"

Una tabla, una docena de columnas. Manténla limpia y los pedidos multicanal no pueden torcerse.

Traducido del inglés. En caso de discrepancia, prevalece la versión en inglés.