Manual del conector Odoo PrestaShop
Documentación
- Manual del conector Odoo PrestaShop
- Configuración del conector Odoo PrestaShop
- Tareas y errores del conector Odoo PrestaShop
En esta página
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 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
- 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, ybk_prestashop_payment_stripe, con el proveedor Stripe de Odoo. El de Odoo 17, 18 y 19 trae ademásbk_prestashop_website_sale, que se instala solo con eCommerce (abajo). - Reinicia Odoo. En Aplicaciones, con el modo desarrollador, Actualizar lista de aplicaciones.
- Instala PrestaShop Connector. Aparece el menú Ventas › PrestaShop.
- 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
- 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.
- 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.
- 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.
- 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).
- 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
- 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.
- Si antes facturabas a mano, Importar pedidos anteriores: cada pedido ya facturado adopta su factura en vez de hacer otra (pedidos).
- Haz un pedido real (o espera al primero) y síguelo hasta que su factura está en la cuenta del cliente en la tienda.
- 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).