Saltar al contenido principal

WordPress · Sincronización de productos

El plugin sincroniza tu catálogo WooCommerce con Neuroon mediante el endpoint:

POST/api/integrations/v1/products/sync

La sync es idempotente por externalId (típicamente el ID del producto en WP). Reenviar el mismo producto actualiza, no duplica.

Modos de sincronización

ModoCuándo usarloComportamiento
FULLPrimera carga o re-bootstrapMarca como ausentes los productos que no estén en el batch acumulado.
INCREMENTALDía a día (autosync, deltas)Solo crea / actualiza los productos enviados; el resto queda intacto.

El plugin usa INCREMENTAL por defecto. Solo dispara FULL cuando lanzas Reset & Resync All desde la pestaña Products.

Tamaño de batch

CapaLímite
Plugin (cliente)100 productos por petición
Backend (servidor)hasta 500 productos por petición

El plugin envía en lotes de 100 a propósito: limita el footprint de memoria PHP, evita timeouts típicos de PHP-FPM (max_execution_time) y absorbe mejor los rate limits.

Auto-sync vía hooks WooCommerce

El plugin escucha los eventos relevantes de WooCommerce — edición, creación, cambio de stock y borrado de producto — y marca el producto correspondiente como PENDING internamente para re-sincronizarlo.

Comportamiento:

  • Producto editado → si estaba SYNCED, vuelve a PENDING.
  • Producto creado → queda PENDING (selección manual o autosync, según ajustes).
  • Cambio de stock (woocommerce_product_set_stock) → re-sync.
  • Producto eliminado (before_delete_post) → se elimina del seguimiento interno; un job posterior emitirá DELETE /api/integrations/v1/products/by-external/{externalId}.

Para integraciones custom: este auto-sync + DELETE lo gestiona el plugin solo. Si construyes tu propia integración (Next.js, Nuxt, .NET, etc.) tienes que replicar tres cosas que el plugin hace silenciosamente: (1) detectar productos eliminados y emitir DELETE; (2) re-encolar productos editados; (3) reconciliar periódicamente local vs remoto para no acumular productos huérfanos. Patrón completo en plugins/custom/server-to-server.

Estado de sincronización

El plugin mantiene internamente el estado de sincronización de cada producto:

StatusSignificado
PENDINGEn cola, aún no enviado.
PROCESSINGEnviado, esperando respuesta.
SYNCEDAceptado por el backend (200/201).
FAILEDBackend devolvió error; revisa el detalle mostrado en la pestaña Products.
NOT_SYNCEDProducto excluido por reglas locales (ej. borrador).

Respuesta del endpoint

Cada llamada /products/sync devuelve un JSON con el agregado de ese batch:

{
"totalReceived": 100,
"newProducts": 50,
"updatedProducts": 47,
"skipped": 0,
"failed": 3,
"errors": [
{ "externalId": "123", "error": "Invalid price" }
],
"productsCount": 150,
"remainingProducts": 850
}

productsCount y remainingProducts reflejan tu cuota global tras el batch. El plugin muestra esos valores en la pestaña Products y bloquea nuevos batches si remainingProducts == 0.

Latencia (eventual consistency)

Tras el 200 OK, los productos pasan por el pipeline interno . La indexación tarda 2 a 5 segundos. Hasta que termina, una búsqueda inmediata puede no devolverlos.

Rate limits

EndpointLímite
products/sync100/min
shops/me60/min
verification-data20/min

El plugin captura 429 y respeta el Retry-After. Si tu tienda tiene > 6.000 productos y necesitas un bootstrap rápido, contacta a soporte para ampliar la ventana.

Cuotas

El plan asociado a tu API Key define maxProducts. La pestaña Products lee productsCount / maxProducts desde GET /api/integrations/v1/shop (con una cache local de 5 minutos para no repetir la llamada en cada carga de la pestaña).

Sync manual desde la UI

  1. wp-admin → Settings → Neuroon Search → Products tab.
  2. Selecciona productos en la tabla.
  3. Pulsa Sync selected. La UI inicia la sincronización y sondea el progreso hasta que termina.
  4. Los productos se envían en batches de 100, de forma secuencial, para no saturar el servidor.

Resync forzada

Products tab → Reset & Resync All marca todos los productos como PENDING y dispara una sync FULL. Útil si:

  • Sospechas que la tabla local está desincronizada respecto a Neuroon.
  • Has cambiado masivamente atributos / categorías.
  • Acabas de migrar de plan y necesitas re-validar la cuota.

Próximos pasos