Conector Odoo — Guía completa
Instalar, configurar y explotar la sincronización en tiempo real PrestaShop ⇄ Odoo (productos, stock, pedidos, clientes) para PrestaShop 8 y 9.
El Conector Odoo sincroniza tus productos, stock, pedidos y clientes entre PrestaShop y Odoo en tiempo real y en ambos sentidos. Esta guía cubre la instalación, la conexión a Odoo, la elección del sentido de sincronización, la sincronización inicial, el cron, el webhook entrante y la resolución de problemas.
Requisitos
- PrestaShop 8.0 a 9.x.
- PHP 7.4 a 8.3 con la extensión cURL activada.
- Una instancia de Odoo 14 a 18 (en línea o autoalojada) accesible por HTTPS desde tu servidor PrestaShop.
- Un usuario de Odoo con una clave API y permisos sobre los modelos Ventas, Inventario y Contactos.
El módulo se comunica con Odoo mediante JSON-RPC. La extensión PHP xmlrpc, retirada en PHP 8, no es necesaria.
Instalación
- En el back office, abre Módulos > Gestor de módulos, luego Subir un módulo y suelta el archivo
dfodooconnect.zip. - Una vez instalado, abre la página de configuración mediante el botón Configurar o la pestaña Odoo Connector en el menú de administración.
Generar una clave API en Odoo
- Inicia sesión en Odoo con la cuenta de servicio dedicada a la sincronización.
- Abre Preferencias > Seguridad de la cuenta > Claves API y genera una nueva clave.
- Copia la clave: sustituye a la contraseña en la configuración del módulo.
Crea un usuario de Odoo dedicado (por ejemplo «PrestaShop Sync») en lugar de usar una cuenta de administrador personal. Así mantienes un registro de auditoría claro en el lado de Odoo.
Conexión a Odoo
En la página de configuración, rellena los cuatro campos del bloque Conexión Odoo:
- URL de Odoo: la dirección completa de tu instancia, por ejemplo
https://mi-odoo.com. - Base de datos: el nombre exacto de la base de datos de Odoo.
- Usuario: el identificador (login) de la cuenta de servicio.
- Clave API: la clave generada en el paso anterior.
Haz clic en Probar la conexión. Si tiene éxito, el módulo muestra la versión de Odoo detectada y el identificador de usuario (uid). Guarda y luego marca Activar la sincronización.
Mientras la casilla Activar la sincronización no esté marcada, no se envía ningún dato a Odoo, aunque la conexión sea válida.
Elegir las entidades y el sentido de sincronización
Se gestionan cuatro entidades. Para cada una, activas o desactivas la sincronización; para los productos y el stock, eliges además el sentido.
- Clientes: PrestaShop a Odoo (contactos
res.partner). - Productos: PrestaShop a Odoo, Odoo a PrestaShop, o bidireccional.
- Stock: PrestaShop a Odoo, Odoo a PrestaShop, o bidireccional.
- Pedidos: PrestaShop a Odoo (pedidos de venta
sale.order).
Dos opciones completan el comportamiento de los pedidos: Confirmar automáticamente el pedido en Odoo (convierte el presupuesto en pedido de venta confirmado) y Generar la factura de Odoo.
Sincronización inicial
Antes de activar el flujo en tiempo real en una tienda existente, llena Odoo con tus datos actuales desde el bloque Sincronización inicial:
- Exportar todos los clientes: pone cada cliente en la cola de exportación.
- Exportar todos los productos: necesario antes del stock y los pedidos, ya que las líneas de pedido y los ajustes de stock se basan en la correspondencia de producto.
- Exportar todos los pedidos: a ejecutar después de los clientes y los productos.
Respeta el orden clientes → productos → pedidos. El módulo gestiona automáticamente las dependencias que falten (pone en cola un producto no asociado antes de reintentar el pedido), pero el orden reduce el número de reintentos.
Configuración del cron
El cron vacía la cola (reintenta los envíos fallidos) e importa el stock desde Odoo cuando ese sentido está activado. Programa la URL que se muestra en el bloque Endpoints, cada 1 a 5 minutos:
curl "https://tu-tienda.com/module/dfodooconnect/cron?token=TU_TOKEN"
El token se genera automáticamente en la instalación y se muestra en la configuración.
Webhook entrante (Odoo a PrestaShop)
Para que los cambios realizados en Odoo vuelvan en tiempo real, crea una Acción automatizada en Odoo (acción de servidor de tipo webhook) que envíe una petición POST JSON a la URL de webhook del módulo.
Actualización de stock:
{ "token": "TU_TOKEN", "entity": "stock", "odoo_id": 42, "qty": 17 }
Cambio de estado de pedido:
{ "token": "TU_TOKEN", "entity": "order_state", "odoo_id": 99, "state": "cancel" }
Los estados reconocidos son cancel, sale y done, asignados respectivamente a Cancelado, En preparación y Entregado en el lado de PrestaShop.
El token del webhook debe coincidir con el que se muestra en la configuración. Una petición sin un token válido se rechaza con un código 403.
Panel de control y registro
El panel muestra de forma permanente cuatro indicadores de la cola (En espera, Sincronizados, En error, Abandonados), el número de correspondencias por entidad y un registro de actividad con marca de tiempo. Hay dos acciones de mantenimiento disponibles: Procesar la cola ahora e Importar el stock desde Odoo.
La cola resiliente
Cada cambio en PrestaShop se envía primero a una cola y luego se manda a Odoo de inmediato en modo «mejor esfuerzo». Si Odoo no está disponible, el trabajo permanece en la cola y el cron lo vuelve a ejecutar automáticamente. Tras el número de intentos configurado (5 por defecto), un trabajo con fallo definitivo pasa a cuarentena (Abandonado) para no bloquear el resto de la cola.
Este mecanismo es lo que garantiza que una indisponibilidad de Odoo nunca bloquee el proceso de compra de tus clientes.
Campos sincronizados
Clientes
Nombre, email, empresa, referencia, dirección por defecto (calle, ciudad, código postal, teléfono), número de IVA y país. La deduplicación se realiza por email.
Productos
Nombre, referencia interna, precio de venta, precio de coste, peso, código de barras, descripción corta y estado activo. La deduplicación se realiza por referencia.
Stock
Las cantidades disponibles se aplican mediante un ajuste de inventario en la ubicación de Odoo configurada (o la primera ubicación interna si no se indica ninguna).
Pedidos
Empresa, referencia del cliente, líneas de pedido (producto, cantidad, precio unitario sin impuestos) y gastos de envío. El cliente se sincroniza sobre la marcha si aún no lo estaba.
Modo de prueba (dry-run)
Activa el Modo de prueba para validar la asignación sin escribir nada en Odoo: cada operación se registra en el log con la mención DRY-RUN, pero no se crea ni se modifica ningún dato. Ideal para una validación antes de la puesta en producción.
Resolución de problemas
- La prueba de conexión falla: comprueba la URL (con https), el nombre exacto de la base de datos, el login y la clave API. Asegúrate de que el servidor PrestaShop pueda alcanzar la instancia de Odoo en salida.
- Un pedido sigue en espera: probablemente un producto del pedido aún no está asociado. El módulo pone el producto en cola; vuelve a ejecutar «Procesar la cola ahora» tras unos segundos.
- El stock no vuelve a PrestaShop: comprueba que el sentido del stock incluya Odoo a PrestaShop y que el cron se ejecute.
- Duplicados en el lado de Odoo: asegúrate de que las referencias de productos y los emails de clientes estén rellenados; son las claves de correspondencia.
Desinstalación
La desinstalación elimina las tablas de correspondencia, de cola y de registro del módulo. Tus datos en Odoo no se ven afectados. Para una simple actualización, basta con reemplazar los archivos: el esquema y las correspondencias se conservan.