WooCommerce es una plataforma flexible y autoadministrada, lo que significa que, a diferencia de Shopify, está alojada en los servidores de cada usuario. Esto le da mayor control, pero también puede generar desafíos al integrarlo con herramientas externas como Yuju o cualquier otro módulo que utilice la API pública de WooCommerce.


En este artículo, te explicamos cómo Yuju se conecta a WooCommerce a través de su API y qué factores debes tener en cuenta para evitar bloqueos en tu servidor que puedan afectar la sincronización. ¡Sigue leyendo y optimiza tu integración!


---

Índice


---

¿Cómo se conecta Yuju a WooCommerce a través de la API?

Lo primero que debes saber es que nuestra conexión usa la librería oficial, no existe una configuración exclusiva para Yuju, sin embargo, te dejamos acá otros datos importantes. 

  1. Protocolos: Yuju se conecta con WooCommerce utilizando HTTPS (protocolo seguro). Esto implica que:

    • La comunicación entre Yuju y el servidor WooCommerce está cifrada mediante SSL/TLS.
    • Un certificado SSL válido es obligatorio en el servidor WooCommerce para que la API funcione correctamente.
  2. Puertos HTTP: Los puertos principales para garantizar la conectividad son:

    • Puerto 443: Es el puerto predeterminado para HTTPS. Asegúrate de que este puerto esté abierto en el servidor y en cualquier firewall o red intermedia.
    • Nota importante: Si el puerto 443 está bloqueado o no está correctamente configurado, Yuju no podrá conectarse a tu servidor de WooCommerce.
  3. Conectividad entre Yuju y WooCommerce: Funcionamiento de la conexión:

  • Autenticación:

    • Yuju utiliza credenciales API generadas desde WooCommerce: Consumer Key y Consumer Secret. En el punto 2. de la siguiente documentación puedes ver cómo extraer esta información. 
    • Estas credenciales se configuran en el Python Wrapper para WooCommerce API para autenticar las solicitudes.
  • Endpoints REST API:

    • Yuju accede a los datos del servidor WooCommerce mediante la REST API. Algunos de los endpoints más utilizados son:
      • Productos: /wp-json/wc/v3/products
      • Órdenes: /wp-json/wc/v3/orders
    • Todos los endpoints requieren HTTPS para que la conexión sea segura.
  • Llamadas API:

    • Las solicitudes son enviadas mediante métodos HTTP, como:
      • GET: Obtener datos de productos, órdenes, clientes, etc.
      • POST: Crear nuevos registros (ej., productos, órdenes).
      • PUT: Actualizar registros existentes.
      • DELETE: Eliminar datos (si es necesario).
    • El Python Wrapper gestiona estas solicitudes y autenticación de forma automática.
  • Respuesta del servidor:

    • El servidor WooCommerce devuelve respuestas en formato JSON, los cuales Yuju utiliza para procesar y sincronizar la información.

¿Por qué no se puede conectar la cuenta de WooCommerce a Yuju?

Si la conexión no es exitosa y se evidencia un mensaje de error como el siguiente: 

El canal no ha sido agregado: Ha ocurrido un error con Woocommerce: <!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*.....
Estatus de respuesta: 403. Accion: Validar llaves. 

Es probable que el tipo de error obedezca a alguna configuración de lado del propietario de la cuenta de WooCommerce, puede tratarse de un firewall/waf/antimalware…

Error en la conexión con Yuju: Casos de referencia

El 5% de los clientes han presentado un problema al momento de conectarse. A continuación, presentamos un caso específico que puede servirte como referencia para resolverlo.


Caso 1: Bloqueo por sistema de seguridad (Incapsula)

Contexto: El cliente utiliza Incapsula, un sistema que bloquea el scraping y otras solicitudes no autorizadas.


Proceso y detección del problema:

  • Yuju realizó validaciones internas y detectó un bloqueo que impedía la conexión.
    • Ninguna petición que no sea detectada del navegador funciona
      • Con la librería oficial: No funciona
      • Con CURL: No funciona
      • Con Postman: No funciona
    • La única que funcionó fue vía navegador
  • El cliente solicitó la IP de Yuju para agregarla a su whitelist. Sin embargo, al estar alojados en Amazon Web Services (AWS), Yuju no cuenta con IPs fijas, solo dinámicas.
  • Se proporcionó la IP de nuestro desarrollador como prueba, lo que permitió una conexión exitosa. No obstante, al probar desde otro dispositivo, el bloqueo persistía.
  • El cliente intentó autorizar la zona desde donde Yuju realiza las peticiones, pero debido a su amplitud, no era viable. Se sugirió permitir tráfico desde EE.UU. y México, aunque esto no garantizaba la conexión. Tras habilitar estas zonas, WooCommerce seguía sin conectarse a Yuju.


¿Cómo lo resolvió el cliente?:


Se indicó al cliente que una vez pudiera ejecutar el siguiente CURL, Yuju también podría conectarse:


curl https://mitienda.mx/wp-json/wc/v3/products -u ck_XXXXXXX:cs_XXXXXXXX


Para ello el cliente se creó una instancia en AWS (us-west-2) para probar la conexión mediante CURL.

  • Detalles técnicos del servidor:
  • Plataforma: Linux/UNIX
  • Arquitectura: x86_64
  • Nombre de AMI: ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-20250115

La IP del servidor creado marca que proviene de Oregon, EE.UU.

IP: XX.XXX.XX.XX

La prueba de CURL se ejecutó correctamente, devolviendo los resultados esperados.


Este caso demuestra que ciertos bloqueos en el servidor pueden afectar la conexión entre WooCommerce y Yuju. Si enfrentas un problema similar, revisa la configuración de tu firewall y las restricciones de acceso en tu hosting.


Caso 2: Restricción de recursos en la API de WooCommerce en un endpoint específico

Contexto: El cliente logró establecer la conexión entre Yuju y WooCommerce sin inconvenientes. Sin embargo, cuando Yuju consulta los productos en WooCommerce, no se recibía ninguna información.


Proceso y detección del problema: Cuando un seller vende en WooCommerce y lo conecta con Yuju, se debe ejecutar un mapeo de productos para sincronizar el catálogo de ambos sistemas. En este caso, al intentar realizar el mapeo, WooCommerce no devolvía datos.


A pesar de esto, tras varias pruebas entre Yuju y el equipo del cliente, se identificó que las ventas sí llegaban correctamente a Yuju y que otros procesos dentro de la integración funcionaban con normalidad. Esto sugería que el problema estaba limitado a un endpoint específico de la API de WooCommerce, que impedía la consulta de productos.


¿Cómo lo resolvió el cliente?

 

Para resolver el problema, el cliente tomó las siguientes medidas:

  1. Revisión y ajuste de recursos: Se contactó a su proveedor de hosting para aumentar los límites de recursos (memoria, tiempo de ejecución, etc.) en el servidor, permitiendo que el endpoint de la API de WooCommerce pudiera procesar las consultas sin restricciones.

  2. Verificación de configuraciones de seguridad: Se revisaron y ajustaron los plugins de seguridad y configuraciones del firewall que pudieran estar limitando las peticiones al endpoint en cuestión.

  3. Optimización de la consulta: Se trabajó en conjunto con el equipo de Yuju para optimizar la forma en que se realiza la consulta de productos, con el fin de replicar el error y dar una solución.

Estas acciones permitieron que la API de WooCommerce devolviera correctamente la información necesaria para el mapeo de productos, solucionando el problema de sincronización con Yuju.

Conclusiones

  • Esto puede ser resuelto por tu propio equipo técnico, no es necesario que el equipo de Yuju ejecute pruebas. Si el software no es gestionado por tu equipo in-house debes ponerte en contacto con quien da soporte a tus servidores.
  • Con plataformas como Shopify y Jumpseller, donde el cliente no administra el servidor, la conexión no presenta inconvenientes. 
  • Aproximadamente el 5% de nuestros clientes gestiona su propio servidor y necesita realizar ciertas configuraciones para garantizar una integración fluida. Aquellos que revisaron esta documentación pudieron resolver exitosamente sus problemas de conexión. 


Para cualquier duda y/o aclaración, ponte en contacto con tu KAM asignado o escribiendo a soporte@yuju.io.