Conector Odoo PrestaShop

Manual del conector Odoo PrestaShop

Para quien instala y usa el conector Odoo ↔ PrestaShop de BK Modules: qué hacer, en qué orden y qué decidir. Cada opción con todo su detalle está en configuración y cada código de error en jobs y errores; aquí se enlazan, no se repiten. En inglés: Odoo PrestaShop connector manual. Los nombres de botones y campos son los de Odoo y PrestaShop en español.

Qué necesitas

  • Odoo Community 17, 18, 19 o 20 en servidor propio u Odoo.sh (Odoo Online no admite módulos de terceros), con Ventas. Inventario es opcional: con él, Odoo lleva el stock y los envíos (requisitos).
  • PrestaShop de 1.7.6 a 9.x con PHP 7.1 a 8.4, multitienda incluida, accesible por HTTPS desde el servidor de Odoo (una tienda de pruebas, test., staging., .local, localhost…, puede ir por http). Odoo no necesita ser accesible desde fuera.
  • Una licencia de bkmodules.com, sin claves: en tu área de licencias vinculas la dirección de cada tienda que conectas (cada tienda de producción lleva una plaza de pruebas). Es de una versión de Odoo y no vale para otra; tu base de Odoo y sus copias de prueba se anotan solas y no ocupan plaza.
  • Ser administrador en Odoo y en el back office de la tienda.

1. Instalar las dos piezas

Primero, en el área de licencias de bkmodules.com, vincula la dirección de tu tienda a la licencia (la que abre la tienda, con su carpeta si la tiene: mitienda.com o mitienda.com/es): es lo que abre la descarga. Se descargan las dos piezas de la misma licencia: Addon de Odoo y Módulo de PrestaShop (bkodooconnector-x.y.z.zip). Del addon, el de tu versión de Odoo: el nombre del zip empieza por ella (odoo-prestashop-17.0.1.3.0.zip para Odoo 17, odoo-prestashop-20.0.1.3.0.zip para Odoo 20). El área enseña solo el de la versión de tu licencia, la que elegiste al comprarla, desde el primer momento. Si aún no hay ninguna versión publicada, el área lo dice: la licencia ya la incluye y aparece ahí en cuanto sale. Van juntas: cada versión del addon dice qué versión del módulo necesita, y la página Comprobar del asistente avisa si el de la tienda se ha quedado atrás.

En Odoo

  1. Descomprime el zip en una carpeta de módulos de tu Odoo (una ruta de addons_path); en Odoo.sh, súbelo a la rama de tu repositorio. Trae tres módulos: bk_prestashop, el conector, y dos puentes que se instalan solos cuando hacen falta: bk_prestashop_stock, con Inventario, y bk_prestashop_payment_stripe, con el proveedor Stripe de Odoo. El de Odoo 17, 18 y 19 trae además bk_prestashop_website_sale, que se instala solo con eCommerce (abajo).
  2. Reinicia Odoo. En Aplicaciones, con el modo desarrollador, Actualizar lista de aplicaciones.
  3. Instala PrestaShop Connector. Aparece el menú Ventas › PrestaShop.
  4. Permisos (Ajustes › Usuarios, sección PrestaShop): Usuario ve los pedidos de la tienda, el catálogo y la cola, y puede reintentar o cancelar un trabajo; Administrador configura las conexiones, vincula clientes, importa y lleva la licencia. Todo administrador de Ajustes es administrador del conector.

Según tu versión de Odoo

Las cuatro versiones hacen lo mismo; cambia lo que Odoo hace distinto en cada una (todo, en la matriz de series). Lo que se nota al usarlo:

  • NIF: en Odoo 20 su formato lo comprueba el núcleo; en 17, 18 y 19, el módulo base_vat, que se instala con el conector.
  • Precio por unidad en la tienda: en Odoo 20 sale de la unidad de referencia del producto; en 17, 18 y 19 esa unidad es de eCommerce, así que la tienda solo enseña precio por unidad con eCommerce (website_sale) instalado.
  • Etiquetas que viajan a la tienda: en Odoo 20 y 19, las visibles para los clientes; en 18, todas o, con eCommerce, las visibles en él; en 17, como en 18 y en el orden en que se crearon.
  • Pedidos con impuestos incluidos (para sumar lo que cobró la tienda): en Odoo 20 lo lleva el modo de impuestos de Odoo; en 17, 18 y 19, el campo Precios de PrestaShop de la ficha del pedido y de la factura.
  • Cliente sin empresa que trae NIF: es una persona en todas. En Odoo 20, que haría empresa a todo contacto con NIF, lo marca la casilla Persona (PrestaShop) de la pestaña PrestaShop del contacto: desmárcala si en realidad es una empresa.
  • Precio unitario con más decimales que «Precio de producto» (un precio convertido a otra moneda, de varias unidades): en Odoo 17 la línea del pedido y de la factura lo lleva en la columna opcional Precio unitario exacto; en las demás, en el propio precio unitario.
  • Rectificativa de una factura hecha en Odoo: en Odoo 17 va sin impuestos incluidos; en las demás, como diga la empresa.
  • Seguidores: en Odoo 17 y 18, confirmar el pedido y validar la factura hacen seguidor al cliente (lo hace Odoo, sin avisarle de nada).
  • Productos con variantes: en Odoo 17, 18 y 19 el producto de la tienda va sin referencia y cada combinación con la de su variante. Odoo 17 no tiene productos combo.

En PrestaShop

  1. Módulos › Gestor de módulos › Subir un módulo, con el zip del módulo. En una multitienda, con el contexto de todas las tiendas.
  2. Configurar. La pestaña Conexión enseña los tres datos que se pegan en Odoo: URL de la tienda, Clave de conexión (guárdala como una contraseña) y URL del back office.
  3. Si sale el aviso de que PrestaShop sigue haciendo sus facturas, Apagar las facturas de PrestaShop: la factura legal es la de Odoo, y un pedido no puede tener dos números.
  4. Si la tienda filtra peticiones (tienda privada, cortafuegos, antibots, contraseña del servidor), deja pasar la dirección del módulo; con los módulos de BK no hace falta nada (compatibilidad).
  5. Conservar los eventos y Registro detallado no hace falta tocarlos: el registro detallado es para soporte.

La licencia

No hay que escribir nada. El módulo de cada tienda pregunta a bkmodules.com por su dirección y le da a Odoo la respuesta firmada; Odoo conecta las tiendas vinculadas, hasta las compradas. Ventas › PrestaShop › Licencia enseña, de solo lectura, el estado de cada tienda (válida, sin vincular, no válida o sin comprobar, con el motivo), la versión de Odoo de la licencia, el plan, si hay una versión nueva para tu Odoo, qué se envía a bkmodules.com y el enlace a tu área de licencias. Si vinculas una tienda después, pulsa Comprobar ahora (o espera a la comprobación diaria) y conéctala. Una licencia que deja de valer nunca para los pedidos ni nada de las tiendas ya conectadas (licencia).

2. Dar de alta una conexión: el asistente

Ventas › PrestaShop › Conexiones › Nueva conexión. Cada paso guarda lo suyo; Seguir más tarde cierra y la conexión sigue donde quedó con Seguir con el alta (asistente).

Paso Qué haces
Conectar Un nombre y los tres datos de la página del módulo. Conectar prueba la conexión; si no conecta, dice por qué (el código, en conexión)
Comprobar Revisa las versiones, las tiendas encontradas y el aviso inmediato. Si el módulo de la tienda es antiguo, dice qué funciones no podrás usar hasta actualizarlo. Lista los módulos de BK que tiene la tienda y lo que hace cada uno por el conector
Almacenes Con Inventario: si el stock de la tienda lo lleva Odoo o PrestaShop, y el almacén de cada tienda
Tiendas y diarios Qué tiendas importan pedidos y con qué serie de facturas; el diario de cada método de pago
Impuestos El impuesto de Odoo de cada impuesto de la tienda; los del mismo tipo vienen sugeridos
Flujo de los pedidos En qué estados entran los pedidos, desde qué fecha y qué hace Odoo en cada estado; parte de una plantilla
Terminar Lista lo que queda vacío. Terminar abre la conexión; Terminar e importar desde la tienda abre la importación inicial

Nada de lo que queda vacío para el alta: un pedido que lo necesite espera con su error, que dice qué falta.

Consejo: haz el alta primero en una copia de pruebas de tu Odoo (una base neutralizada): no ocupa la plaza de producción y no escribe en la tienda real hasta que la conectas tú.

3. La configuración, bloque a bloque

El formulario de la conexión tiene el resto. Cada opción empieza con un valor que no escribe nada en la tienda hasta que lo decides. Junto a algunas opciones, una línea gris nombra el módulo de BK que la mejora (con su ficha en bkmodules.com o, si la tienda ya lo tiene, cómo ayuda); es solo información (módulos de BK). Qué decidir en cada bloque:

Bloque Qué decides Para empezar
1. Conexión Nada más que los tres datos. Probar conexión vuelve a leer la tienda (tiendas, estados, impuestos, métodos de pago) sin cambiar lo elegido Pulsarlo tras cambiar algo en la tienda
2. Tiendas Por tienda: si está conectada, si importa pedidos, su serie de facturas, sus listas de precios por moneda y si recibe productos Importar pedidos sí; publicar productos no, hasta revisar el bloque 5
3. Mapeos Estados, métodos de pago, transportistas, impuestos, grupos de reglas de impuestos, grupos de clientes, categorías e idioma de reserva Impuestos y métodos de pago, siempre; transportistas, si cobras portes
4. Productos nuevos Qué productos de Odoo cuentan, si se enlazan o se crean en la tienda y qué pasa con uno que deja de contar Enlazar catálogo existente primero: enlaza por referencia sin escribir en la tienda
5. Quién manda en cada dato Por cada dato (nombre, precio, impuesto, imágenes, categorías…): Odoo, Odoo al crear o PrestaShop Lo que ya cuidas en la tienda, en PrestaShop; Simular en un producto enseña qué recibiría la tienda
6. Pedidos Qué pedidos entran y el flujo por estado: confirmar, facturar, publicar, registrar cobro, enviar desde la tienda, subir, cancelar La plantilla Pago por adelantado (cobras al comprar) o Facturar al enviar
Envíos Con Inventario: qué sabe la tienda al validar un albarán (número y estado, solo el número o nada), Validar albarán, facturar al validarlo Número y estado
7. Clientes Con qué claves se reconoce a un cliente (NIF, email, teléfono, nombre), qué se pone al día y el cliente de reserva NIF y email
Portal de clientes Si los clientes ven en su cuenta de la tienda los presupuestos y facturas de Odoo, y cómo se vinculan con tus contactos Apagado; al encenderlo, vincular a mano
8. Reglas de validación Cuándo exigir NIF, cómo comprobarlo (formato o VIES) y la dirección completa Las de por defecto
9. Cobros Por método de pago: si se registra el cobro, en qué diario y con qué comisión Con Stripe, la comisión de la pasarela: el cobro entra neto
10. Stock Con Inventario: si Odoo envía el stock, qué cantidad, de qué almacenes y cuándo PrestaShop hasta tener el stock de Odoo al día
11. Avisos Quién recibe el aviso de un trabajo parado: actividad, correo o las dos Tú, con actividad

Vincular clientes de la tienda con tus contactos

Odoo reconoce solo a los clientes de los pedidos. Para el portal, o para un cliente que Odoo ya tenía con otro nombre, el administrador vincula a mano con Vincular un cliente de la tienda, en la pestaña PrestaShop del contacto, en Enlaces o en la sección del portal: busca por email, nombre, empresa, NIF o id, enseña con qué coincide cada cliente, sus pedidos y con qué contactos va ya, y Vincular lo une. Un mismo cliente puede ir con varios contactos (la persona como autónomo y su sociedad). Posibles vínculos recoge las coincidencias por email o NIF para confirmarlas o descartarlas (portal).

Si partes de PrestaShop: la importación inicial

Importar desde la tienda, en la conexión, trae una vez los productos (con sus combinaciones) y los clientes (con sus direcciones). Primero Preparar el plan: cada fila dice si se creará, se enlazará con lo que Odoo ya tiene, ya está enlazada o no se importa y por qué; desmarca lo que no quieras e Importar. Repetirla no duplica nada. Antes, deja en PrestaShop los datos que la tienda debe conservar (bloque 5) y el stock en PrestaShop (bloque 10) (importación inicial).

4. Puesta en marcha

  1. Comprobar en la lista de pedidos (Ventas › PrestaShop › Pedidos) pasa las reglas a pedidos de la tienda sin crear nada: arregla lo que salga antes de abrir el grifo.
  2. Si antes facturabas a mano, Importar pedidos anteriores: cada pedido ya facturado adopta su factura en vez de hacer otra (pedidos).
  3. Haz un pedido real (o espera al primero) y síguelo hasta que su factura está en la cuenta del cliente en la tienda.
  4. Si Odoo manda en el catálogo: Simular en unos productos, después Enviar a PrestaShop, y Comprobar consistencia en la conexión para ver las diferencias que queden.

5. El día a día

Todo vive en Ventas › PrestaShop:

Menú Para qué
Pedidos Cada pedido de la tienda que Odoo conoce, con su flujo: qué pasos están hechos, cuál falló y por qué. Reintentar sigue desde el paso que falló
Catálogo Qué le pasará a cada producto en cada tienda (su plan), Enviar a PrestaShop y Aplicar en PrestaShop para lo que desactiva o borra en la tienda, que nunca sale solo
Enlaces Lo enlazado con cada tienda: productos, combinaciones, clientes y direcciones, con Ver en PrestaShop
Posibles vínculos Clientes de la tienda que coinciden con un contacto, para vincular o descartar
Tareas La cola: lo que Odoo hace con la tienda, con su resultado o su error
Conexiones La configuración de cada instalación de PrestaShop y su situación (conectada o sin conexión desde…)
Licencia El estado de cada tienda, la versión de Odoo, el plan y el enlace al área de licencias

Odoo no manda ningún correo al cliente: los manda la tienda, en su idioma (factura, envío, estado).

Productos de suscripción: si la tienda tiene BK Subscriptions with Stripe, marca Producto de suscripción en la pestaña PrestaShop del producto y dale su plan (cada cuánto se renueva, hasta la baja o un número de periodos, prueba, permanencia, pausa, envío de cada entrega y, por moneda, precio de renovación y cuota de alta); la tienda lo vende por suscripción, y cada renovación llega como un pedido de venta marcado, con el filtro Renovaciones. En PrestaShop › Suscripciones ves cada suscripción con su estado de hoy (activa, pago pendiente, en pausa, termina, terminada), que se pone al día solo cuando el cliente se da de baja, la pausa o se le cobra. Una tienda sin ese módulo no publica esos productos (productos de suscripción).

Devoluciones: devuelve el dinero de un pedido donde te sea más cómodo, y Odoo lo deja igual en los tres casos. En Odoo, Devolver en la tienda en el pedido de PrestaShop o en su factura: escribe cuánto (por defecto, todo lo que queda) y por qué, marca si se da de baja también la suscripción del pedido y confirma; la tienda devuelve el dinero al cliente con el medio con que pagó y le manda el vale de abono, y en unos segundos llega la rectificativa, ya pagada. Sale con los módulos de pago que devuelven desde Odoo (hoy, BK Subscriptions with Stripe). En la tienda, con el botón de su módulo de pago, o en el panel de Stripe: la rectificativa llega igual, pagada con la devolución. Si cobras con Stripe y la comisión de la pasarela, la devolución entra en el diario de Stripe por lo que salió de verdad; la comisión del cobro no se recupera (devoluciones).

6. Qué hacer con un error

Un trabajo parado avisa a los usuarios del bloque 11 y se ve en la cola y en el pedido afectado. Cada error dice su código, un mensaje con el dato concreto (qué pedido, qué cliente, qué valor), dónde se arregla (PrestaShop, Odoo o la configuración) con un enlace directo, y el detalle técnico plegado para soporte (cómo se ve un error).

Situación Qué significa Qué haces
Bloqueado Los datos no permiten hacerlo Arréglalo donde dice y Reintentar (un cambio en el propio producto lo vuelve a poner en cola solo)
Fallido Un error técnico que siguió tras los reintentos Lee el detalle; si es de la tienda, revísala y Reintentar
Sin conexión (la conexión lo dice arriba) La tienda no responde o rechaza a Odoo Arregla la causa: la cola se reanuda sola
En camino (actividad) Espera a un servicio de fuera (VIES, la pasarela de pago) Nada: se reintenta solo cada 5 minutos

Por familias (cada código, con cuándo sale, en jobs y errores):

Códigos Qué haces
CONN_UNREACHABLE, CONN_BLOCKED La tienda no es accesible o algo para la petición antes del módulo (el mensaje dice qué: redirección, 401, 403, 404, 413, mantenimiento). Arréglalo en el servidor o en la tienda
CONN_SIGNATURE La clave de la conexión no es la de la tienda: cópiala otra vez de la página del módulo
CONN_CLOCK La hora de los servidores difiere más de 5 minutos: sincronízala
CONN_INSECURE La URL de la tienda va por http://: activa el SSL en la tienda y pon la URL con https:// (solo una tienda de pruebas puede ir por http)
CONN_REPLAY La tienda ya recibió esa petición: algo entre Odoo y la tienda (un proxy, un cortafuegos) repite las peticiones. Se reintenta sola; si sigue, revisa ese elemento
CONN_CONTRACT El módulo de la tienda es antiguo: actualízalo y Probar conexión
PS_ERROR Error interno de la tienda; se reintenta solo. Si sigue, el detalle va a soporte
ORDER_VAT_MISSING, ORDER_VAT_INVALID, ORDER_VAT_VIES Corrige el NIF en la dirección de la tienda, o Aceptar el NIF y facturar si es correcto tal como viene
ORDER_ADDRESS_INCOMPLETE, ORDER_MISSING_IN_PS, REFUND_EXCEEDS_INVOICE Se arregla en la tienda: la dirección, el pedido o el vale de abono
REFUND_EXCEEDS_PAYMENT, REFUND_REFUSED Al devolver desde Odoo no se devolvió nada: escribe un importe menor (el mensaje dice cuánto queda) o mira en el panel de Stripe por qué la rechaza
ORDER_TAX_UNMAPPED, ORDER_CARRIER_UNMAPPED, ORDER_PAYMENT_UNMAPPED, ORDER_STATE_MISSING_IN_PS, ORDER_PRICELIST_MISSING, ORDER_CUSTOMER_MISSING, ORDER_CONFIG_MISSING, TRACKING_STATE_UNMAPPED Falta una pareja o un dato en la configuración: el mensaje dice cuál; complétalo y Reintentar
ORDER_PRODUCT_UNLINKED, ORDER_PRODUCT_AMBIGUOUS Enlaza el producto en Odoo (o corrige la referencia en la tienda), o elige qué hacer con los productos sin enlazar (bloque 6)
ORDER_TOTAL_MISMATCH El pedido no suma lo cobrado: el mensaje da la diferencia línea a línea y, si lo arregla, el redondeo de impuestos de Odoo que cuadraría
ORDER_INVOICE_POLICY, ORDER_STEP_FAILED, ORDER_CURRENCY_INACTIVE, REFUND_WITHOUT_INVOICE, DOCUMENT_PDF_MISSING, DOCUMENT_PDF_INVALID Se arregla en Odoo: el producto, el periodo, la moneda o la factura que dice el mensaje
ORDER_CHANGED_AFTER_INVOICE, ORDER_ADOPT_MISMATCH Decide tú: una rectificativa a mano si cambió el importe, o corrige la factura que se iba a adoptar; después Reintentar
PAYMENT_DETAILS_UNAVAILABLE El módulo de pago de la tienda no puede leer el cobro: revisa su clave en el back office (el enlace lleva ahí)
GATEWAY_UNAVAILABLE, VIES_UNAVAILABLE Nada: se reintenta solo
PRODUCT_TAX_UNMAPPED, PRODUCT_REF_DUPLICATE, PRODUCT_ORIGIN_INVALID, PRODUCT_DYNAMIC_ATTRIBUTES, PRODUCT_UNIT_UNKNOWN, PRODUCT_SUBSCRIPTION_UNSUPPORTED, PRODUCT_PS_REJECTED El producto no se puede enviar tal como está: el mensaje dice el dato y el valor. Arreglado en el producto, vuelve a la cola solo; en un mapeo o en la tienda, Reintentar
PRODUCT_MISSING_IN_PS El producto enlazado ya no está en la tienda: vuelve a enlazarlo o quita el enlace
PRODUCT_APPLY_REQUIRED El producto desactiva o borra algo en la tienda: revísalo y Aplicar en PrestaShop
CUSTOMER_MISSING_IN_PS El cliente vinculado ya no existe en la tienda: quita ese vínculo en la pestaña PrestaShop del contacto
TRACKING_NUMBER_INVALID, TRACKING_CARRIER_MISSING Corrige o quita la referencia de seguimiento del albarán; vuelve a la cola solo
IMPORT_PLAN_CHANGED, IMPORT_PRODUCT_MISSING, IMPORT_ATTRIBUTES_UNEVEN, IMPORT_ODOO_REJECTED Se quedan en su fila de la importación; arregla lo que diga y prepara una importación nueva

Un código con el prefijo de otro módulo es de una extensión a medida: lo documenta ella.

7. Copias, cambio de servidor y otra versión

  • Una copia de tu Odoo neutralizada deja sus conexiones inactivas y sin clave: nunca escribe en la tienda real. Para probar contra otra tienda, crea una conexión nueva en la copia (entornos).
  • Cambiar de servidor de Odoo: no hay nada que liberar; la base nueva se anota sola en tu licencia en cuanto se conecta a tus tiendas, y la de antes puedes quitarla de la lista en tu área de licencias. Cambiar una tienda de dirección: vincula la nueva en tu área (quita la de antes si no te quedan plazas; las de producción, hasta tres veces al año) y Comprobar ahora.
  • Actualizar: descarga las dos piezas nuevas del área de licencias (el addon, de tu versión de Odoo), sustituye la carpeta del addon y actualiza el módulo en Odoo, y en PrestaShop sube el zip nuevo encima; después, Probar conexión. La licencia y la página del módulo avisan cuando hay una versión nueva de tu versión de Odoo.
  • Pasar a otra versión de Odoo: la licencia es de una versión y el addon de otra es otro código; escribe a soporte antes de migrar. En la base migrada la licencia de la versión anterior no vale: las tiendas conectadas siguen funcionando, pero no se conecta ninguna más hasta tener la clave de la versión nueva.

8. Soporte

Por el formulario de contacto de bkmodules.com (en la pestaña Ayuda de la página del módulo, Contactar con soporte). Ayuda a resolverlo antes: el código del error y su detalle técnico (plegado en el error), las versiones que enseña Probar conexión y, si lo pide soporte, el registro detallado del módulo de la tienda. Lo que solo tiene tu tienda se hace a medida (estándar y a medida).

Cuéntanos qué necesita tu negocio

Un módulo, una app, un servidor que da guerra o algo urgente. Te respondemos en menos de 24 horas, con un presupuesto cerrado con precio y fecha.