Qué es y cuándo corre
La tarea programada Importar stock de Shopify (Shopify → Odoo) corre cada seis horas y viene activa al instalar el módulo. Existe en todas las ramas publicadas: 17.0, 18.0, 19.0 y 20.0. En Odoo 17.0 lleva además el número de repeticiones en -1, es decir, se repite sin fin.

Con Odoo en castellano la tarea se llama Importar stock de Shopify (Shopify → Odoo). El esquema siguiente muestra cómo se llama en otros idiomas.

La conexión con la tienda pasa por FlexigoTech Cloud, que guarda cifradas las credenciales, vigila la sincronización y avisa por correo si falla. El módulo necesita la suscripción a FlexigoTech Cloud (plan Conector: 49 €/mes o 490 €/año sin IVA).

Un caso para recorrerla de principio a fin
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Casa Moreno es una empresa inventada que vende menaje en una tienda Shopify y lleva el inventario en Odoo. Una mañana, Laura, que administra el sistema, ve que la cantidad de un producto en Odoo no se ha movido aunque en Shopify sí cambió. En lugar de lanzar nada a ciegas, repasa la tarea en el orden en que la ejecuta el código publicado para Odoo 20.0, que es el que se describe a partir de aquí.
Primer filtro: quién la ejecuta
En Odoo 20.0, lo primero que hace la tarea es comprobar que quien la ejecuta es administrador del sistema. Si no lo es, se detiene con Only an administrator can run this scheduled action. y no llega a mirar ninguna tienda. Laura es administradora, así que pasa al siguiente punto.
Segundo filtro: qué tiendas entran en la pasada
En Odoo 20.0, la tarea no recorre todas las tiendas, solo las que cumplen a la vez tres condiciones:
- La tienda está activa.
- Tiene activada la sincronización de stock.
- Tiene credenciales: un token de acceso guardado o el secreto de la API de la app guardado.
Basta una de las dos cosas en la tercera condición porque una tienda con credenciales de cliente puede no tener token guardado hasta que su primera llamada lo genera. Las tiendas se abren desde el menú Shopify › Configuración › Tiendas (Shopify › Configuration › Stores). Si no ves un tramo de esa ruta, te falta un permiso: Configuración (Configuration) pide Operador (Operator) y Shopify pide Visor (Viewer).
Laura comprueba que la tienda de Casa Moreno cumple las tres condiciones. Si una falla, la tienda se queda fuera de la pasada.
Tercer paso: una tienda que falla no frena a las demás
En Odoo 20.0, para cada tienda elegida, la tarea llama a la importación dentro de un bloque que atrapa cualquier error. Si una tienda da error, el fallo se anota en el registro del servidor con el nombre de la tienda y la tarea sigue con la siguiente.
Qué hace la importación con cada tienda
En Odoo 20.0, para cada tienda, la importación hace esto en este orden:
- Si la tienda no tiene activada la sincronización de stock, la salta.
- Busca los productos enlazados con Shopify que estén activos, tengan artículo de inventario de Shopify y pertenezcan a la empresa de la tienda: un producto de otra empresa no entra, aunque el enlace viniera de antes. Si no hay ninguno, pasa a la siguiente tienda.
- Decide la ubicación de Odoo. Primero busca la ubicación principal de Shopify de esa tienda que tenga una ubicación de Odoo asignada. Si no la hay, usa la ubicación de stock del almacén de la tienda o, si la tienda no tiene almacén, la del primer almacén de su empresa. Si no encuentra ninguna ubicación, deja esa tienda y sigue con la siguiente.
- Pide a Shopify la cantidad disponible de los artículos de inventario, para la ubicación de Shopify de la tienda (la predeterminada, si la tiene guardada) y en tandas de 100 artículos. Cada cantidad recibida se convierte en número entero.
El botón para obtener el stock a mano tiene su propio paso a paso. Y si te preguntas por la ubicación principal de Shopify, el mensaje que la menciona tiene su propio artículo.
Qué mirar si la tarea no hace nada
Al terminar el repaso, Laura tiene una lista de puntos donde, según el código de Odoo 20.0, se puede cortar una pasada:
- Quién la lanza. Solo un administrador puede ejecutarla; si no, sale
Only an administrator can run this scheduled action.. - La tienda. Debe estar activa, con la sincronización de stock activada y con token o secreto de la API guardado.
- Los productos. Tienen que estar enlazados, activos, con artículo de inventario de Shopify y de la empresa de la tienda.
- La ubicación. Hace falta una ubicación principal de Shopify con ubicación de Odoo asignada, o un almacén que sirva de alternativa.
- La frecuencia. La tarea corre cada seis horas, así que un cambio reciente en Shopify puede no haber llegado todavía a Odoo.
Con esa lista, Laura puede ir descartando punto por punto en lugar de adivinar. Para empezar por lo más barato, puede abrir Shopify › Configuración › Tiendas y revisar la tienda antes de tocar nada más.
Cómo ayuda FlexigoTech
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Si quieres revisar la configuración de tus tiendas o ajustar el flujo de stock a tu operativa, puedes ver el módulo en su página o en la ficha de Odoo Apps.
El módulo está publicado en Odoo Apps para 17.0, 18.0, 19.0 y 20.0.
Sigue leyendo
Comprobado en el código del conector (versión 17.0 y 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): data/ir_cron_data.xml
- Código del módulo: flexigobe_shopify_seller_connector 17.0 (437257e3): data/ir_cron_data.xml
- Código del módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_instance.py
- Código del módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
