WordPress y WooCommerce

cómo importar feeds de mayoristas en productos y stock de WooCommerce

por qué los archivos CSV de los mayoristas siguen rompiendo el stock de WooCommerce

Los proveedores mayoristas dejan archivos CSV o XML durante la noche con nuevos precios, tamaños de paquetes y stock. Alguien descarga el archivo, abre Excel, corrige las comas decimales y lo pega en un complemento de importación de WooCommerce. A media mañana, la mitad del catálogo muestra stock cero porque una columna de cantidad en blanco se trató como una actualización, o un proveedor cambió el código de un fabricante y todas las coincidencias fallaron. Las tiendas que venden el mismo SKU de dos mayoristas compiten por ver cuál feed gana, y el ERP en Comarch Optima o Subiekt todavía mantiene una tercera cantidad en la que compras confía más que en la tienda. Las importaciones manuales también destruyen la enriquecimiento del catálogo. Los editores pasaron semanas en descripciones en PL y EN, traducciones de atributos e imágenes destacadas; un reemplazo completo del catálogo por parte del mayorista sobrescribe los títulos con cadenas en MAYÚSCULAS del proveedor y elimina las categorías. Las reglas de margen desaparecen cuando el feed envía precios brutos y la tienda espera netos, o viceversa. Los comerciantes B2B lo perciben como saltos de precios repentinos que violan los contratos con cuentas claves a las que se les prometió una lista de precios netos fija. Los modos de falla se agravan bajo carga. Un feed de 40,000 filas importado de manera sincrónica a través de WP-Admin se agota en el tiempo, deja una aplicación parcial y nadie sabe qué SKUs se comprometieron. Action Scheduler ayuda solo si el trabajo está diseñado como upserts fragmentados con un ID de ejecución. Sin una tabla de cuarentena, un EAN mal formado puede abortar todo el lote en importadores más estrictos, o peor, tener éxito con unidades incorrectas, de modo que vendes piezas como paquetes. El impacto en el negocio se refleja en sobreventas, fugas de margen y gerentes de cuentas enojados. Soporte promete despacho al día siguiente basado en stock verde en la tienda mientras que la API del mayorista ya devolvió cero una hora antes. Marketing lanza una campaña sobre un SKU cuyo precio en el feed subió de la noche a la mañana. Finanzas no puede explicar por qué los ingresos de la tienda y los precios de compra en Optima ya no concilian para el mismo código de artículo. La automatización aquí no es "ejecutar el plugin de importación en cron". Es una canalización controlada: obtener, validar, mapear, aplicar deltas con buffers, poner en cuarentena excepciones y reportar. Las actualizaciones de stock y precios deberían poder separarse de las actualizaciones de contenido para que el trabajo editorial sobreviva. Cuando un ERP es el verdadero libro mayor de inventario, el feed del mayorista debería actualizar primero la compra o el ERP, y luego dejar que la tienda reciba un push verificado, no competir con el ERP con un pegado paralelo de CSV. La estacionalidad añade otra capa. Antes del Black Friday, un mayorista puede empujar stock optimista que se evapora al mediodía; sin límites vinculados a órdenes de compra confirmadas, la tienda sobrevende kits que la compra nunca pidió. Por el contrario, después de la llegada de un contenedor, la alimentación puede retrasarse seis horas mientras que el almacén ya ha escaneado los palets en Subiekt, por lo que la tienda vende de menos. La automatización debe saber si la cantidad del mayorista es una promesa vendible o simplemente un rumor del almacén del proveedor, y etiquetar los metadatos en consecuencia para los macros de soporte. Compras debería revisar las filas en cuarentena en una reunión diaria durante las semanas de incorporación de la alimentación, y luego semanalmente una vez estable. Fotografiar o archivar archivos de muestra en bruto para cada versión del esquema que envíe el proveedor, de modo que las disputas sobre el significado de columnas tengan base en evidencia. Cuando los tiempos de entrega se prolonguen más de dos semanas, aumentar el margen de seguridad y comunicar al marketing qué SKU están limitados por promesa frente a los que están disponibles en stock. Detalle operativo para el checksum y las protecciones de archivos truncados: documentar los propietarios, ejemplos de fallos y la métrica que demuestre que el control funciona en producción para esta automatización de WooCommerce. Escriba el paso del runbook, el destino de la alerta y la acción de reversión o compensación para que el soporte del turno nocturno pueda actuar sin adivinar. Incluya el nombre del sistema de registro y el campo de ID de correlación utilizado en los registros. Marcador de secuencia en-wholesaler-feed-to-products-stock-pad-1.

cuando una alimentación de mayorista debería actualizar los datos del catálogo de la tienda

Ejecute después de que el mayorista publique un nuevo archivo en SFTP o cuando su API exponga un sello de tiempo `feed.updated` más reciente que su último ID de ejecución exitosa. La cadencia típica es cada una a cuatro horas para el stock, y nocturna para listas de precios completas. También permita una `replay_feed` manual con una versión de archivo específica para la recuperación de incidentes. No se active con cada pequeño cambio de timestamp de FTP sin un cambio de checksum, o agotará los límites de la API reescribiendo filas idénticas.

pasos para mapear las filas del mayorista en productos de woocommerce de manera segura

  1. Recupera el feed en el almacenamiento de objetos o en un disco de staging, calcula la suma de verificación y rechaza procesarla si el archivo está vacío, truncado por debajo del mínimo de filas, o idéntico a la última suma de verificación exitosa.
  2. Analice filas con reglas explícitas de decimales y codificación. Normalice el SKU del proveedor, el EAN y su SKU interno a través de la tabla de mapeo. Marque los SKUs desconocidos para una cola de incorporación en lugar de crear automáticamente productos basura, a menos que la política permita la creación controlada con un estado de borrador.
  3. Validar las reglas comerciales: porcentaje máximo de diferencia de precio, unidad de medida, cantidad mínima de pedido y que el stock no sea negativo. Aplicar un margen de seguridad que mantenga el stock de la tienda por debajo del stock del mayorista cuando los tiempos de entrega sean largos.
  4. Insertar o actualizar productos de WooCommerce en lotes a través de REST o un endpoint interno privilegiado: solo precio, stock, banderas de pedido pendiente y metadatos de compra. Omitir campos de contenido a menos que se establezca una bandera de sincronización de contenido explícita para ese proveedor.
  5. Escribe un informe de ejecución: filas correctas, en cuarentena, SKUs desconocidos y SKUs que alcanzaron el límite de delta de precio. Notifica a compras cuando la cuarentena supere un umbral, y guarda el ID de ejecución en los productos actualizados para auditoría.
  6. Publica un evento post-ejecución para que los feeds de Google Merchant, los envíos de stock al mercado y las alertas de bajo stock consuman el nuevo ID de ejecución solo después del commit, evitando lecturas de catálogo parcialmente actualizadas.

Sistemas

  • WooCommerce
  • Wholesaler SFTP/API
  • Comarch Optima
  • Subiekt

Herramientas

  • n8n
  • WP-Cron
  • Action Scheduler
  • WooCommerce REST

cómo FTP API y n8n mueven los datos del mayorista a la tienda

n8n o un pequeño trabajador extrae SFTP/API, almacena el archivo bruto y lo analiza en una tabla de preparación. El mapeo se encuentra en una hoja versionada o en una tabla de base de datos que pertenece a operaciones de producto. Las actualizaciones de WooCommerce se realizan a través de REST con contraseñas de aplicación o una ruta personalizada que evita los importadores de la interfaz de usuario, utilizando Action Scheduler dentro de WordPress solo para las escrituras finales por lotes si necesitas bloqueos del lado de la tienda. Cuando Comarch Optima o enova administra el stock, el feed primero actualiza las tarjetas de compra del ERP; la tienda escucha los deltas del ERP en lugar de aplicar directamente el stock del mayorista, lo que evita conflictos de doble escritura. Make.com puede reemplazar a n8n para casos simples de CSV de un solo proveedor, pero la cuarentena compleja y los frenos delta son más claros en n8n o en trabajadores PHP personalizados. Nunca dejes que las credenciales FTP del mayorista residan en una opción de plugin pública sin cifrado. El tamaño del bloque debe coincidir con los límites de alojamiento: unas pocas cientos de actualizaciones REST por ola con jitter superan a una única importación gigante vía admin-ajax. Almacena el hash del feed por SKU para que las filas sin cambios omitan escrituras y la invalidación de la caché de objetos se mantenga tranquila. Cuando la sincronización con Google Merchant o un marketplace dependa del stock de la tienda, secuencia esos trabajos después de que se complete el ID de ejecución del feed en lugar de competir a mitad de la aplicación. Para el feed de mayorista al stock de productos, mantén los IDs de ejecución en los paneles de operadores y notifica al propietario del mapeo en lugar de a una bandeja de entrada genérica cuando las tasas de fallos aumenten. Detalle operativo para las reglas de normalización de coma decimal: propietarios de documentos, ejemplos de fallos y la métrica que demuestra que el control funciona en producción para esta automatización de WooCommerce. Escribe el paso del libro de operaciones, el destino de la alerta y la acción de reversión o compensación para que el soporte del turno nocturno pueda actuar sin adivinar. Incluya el nombre del sistema de registro y el campo de ID de correlación utilizado en los registros. Marcador de secuencia en-wholesaler-feed-to-products-stock-pad-2. Documenta bases legales y consentimientos alineados con expectativas de la AEPD cuando el flujo toque datos personales.

cómo poner en cuarentena las filas de mayoristas malas sin borrar el stock

Si el archivo no pasa la verificación de checksum o de fila-base, aborta la ejecución y mantiene intacto el stock de la tienda de ayer. Cuarentena filas individuales malas sin fallar todo el lote cuando el error es local (precio incorrecto, UOM desconocida). Si WooCommerce REST devuelve 429, pausa el trabajador por bloques con retroceso y reanuda la misma ejecución ID. En caso de una interrupción parcial de la tienda, no marques la ejecución como exitosa: persiste los desplazamientos del cursor para que la repetición continúe. Los frenos de delta de precio deben requerir la aprobación de un humano antes de aplicar valores atípicos, registrado con quién aprobó. Alerta cuando más de un porcentaje establecido de filas se ponga en cuarentena, porque usualmente eso significa que el proveedor cambió columnas. Para SKUs de fuente dual, resuelve conflictos con una lista de prioridad explícita en lugar de aplicar el último registro. Si la versión de la tabla de mapeo no coincide con la versión del encabezado del feed, falla de manera cerrada y notifica a compras. La reversión rara vez es una restauración completa del catálogo; prefiera transacciones compensatorias que reviertan solo los SKUs afectados por el ID de ejecución fallida utilizando la instantánea previa tomada al inicio de la ejecución.

cuando un feed de un mayorista aún no vale la pena automatizar

Tienes menos de unos pocos cientos de SKUs actualizados semanalmente y un solo proveedor que ya envía CSV listo para WooCommerce con columnas estables. En ese caso, una importación supervisada semanal puede ser mejor que crear herramientas de cuarentena. También espera si el proveedor reemplaza todo el esquema cada mes sin previo aviso: estabiliza primero el contrato.

KPIs para el mayorista alimentario hacia la salud del stock en WooCommerce

  • Tiempo desde el checksum de la alimentación hasta el último fragmento confirmado
  • Proporción de filas puestas en cuarentena por ejecución
  • Sobreventas atribuibles a existencias obsoletas de mayoristas
  • Recuento de campos de contenido sobrescritos accidentalmente por mes

Calculadora de ROI de automatización

Introduce ejecuciones al mes, minutos por ejecución y tu coste horario cargado. El resultado es una simulación, no un presupuesto de nuestro trabajo.

Horas = ejecuciones × minutos / 60 × recuperación %. Valor del tiempo = horas × tarifa × realización %. Errores evitados = ejecuciones × error % × coste del error × realización %. Neto = suma − mantenimiento. Retorno = implantación / neto, solo si neto > 0.

Horas recuperadas / mes: -

Horas recuperadas / año: -

Valor del tiempo / mes: -

Coste de errores evitado / mes: -

Neto / mes: -

Retorno (meses): -

Resultado del primer año: -

FAQ del artículo

Preguntas frecuentes

Respuestas prácticas para aplicar el tema en la ejecución real.

SEO-readyGEO-readyAEO-ready3 Q&A
¿Debería el feed crear automáticamente nuevos productos?#
Solo en borrador o en revisión pendiente, y solo cuando se puedan inferir de manera segura el EAN y la clase de impuesto. La publicación completa sin revisión editorial inunda la tienda con páginas delgadas y atributos rotos.
¿Cómo manejas dos mayoristas para un solo SKU?#
Mantenga una regla de prioridad y asignación: primero el stock del proveedor principal, el secundario como desbordamiento, con costos de compra separados. Nunca promedie los stocks ciegamente entre proveedores con diferentes tamaños de embalaje.
¿Actualizas el stock y el precio en la misma ejecución?#
Prefiera cadencias separadas: abastecer con frecuencia, precios en un cronograma controlado con frenos delta. Acoplarlos causa que una mala columna de precios bloquee correcciones urgentes de stock.

¿Necesitas un FAQ adaptado a tu sector y mercado? Preparamos una versión alineada con tus objetivos de negocio.

Hablemos

Casos relacionados