La tarea y la pantalla que alimenta
La tarea programada Actualizar analítica de productos de Shopify existe en todas las ramas publicadas del módulo: 17.0, 18.0, 19.0 y 20.0. Corre una vez al día y viene activa al instalar. En Odoo 17.0, además, está configurada para repetirse sin fin. Así funciona la tarea en Odoo 20.0.
Su resultado se abre desde el menú Shopify › Catálogo › Plan de reposición (Shopify › Catalog › Restock Plan). Para ver ese menú necesitas el permiso Visor (Viewer) en el tramo Shopify y en el tramo Catálogo (Catalog): si te falta uno de los dos, no ves ese tramo.


Cronología de una pasada
- Al instalar el módulo La tarea queda activa. En Odoo 17.0 está configurada para repetirse sin fin.
- Una vez al día Odoo lanza
Actualizar analítica de productos de Shopify, que ejecuta el recálculo de la analítica de productos. - Primer control Comprueba que quien la ejecuta es administrador. Si no lo es, se detiene con
Only an administrator can run this scheduled action.y no se calcula nada. - Búsqueda de instancias Busca las instancias de Shopify activas. Por defecto, con un tope de cien instancias.
- Instancia por instancia Las recorre una a una. Cada una se procesa dentro de un bloque que atrapa los errores: si una falla, la tarea descarta los cambios pendientes y sigue con la siguiente.
- Lectura de ventas Para cada instancia suma, por producto, las unidades vendidas en los últimos siete, treinta y noventa días, y los ingresos de los últimos treinta. Solo cuenta líneas con producto de pedidos de esa instancia que están en uno de los dos estados que el código da por vendidos.
- Productos sin ventas Añade los productos con una vinculación activa a esa instancia, aunque no hayan vendido nada, para que también tengan fila.
- Cálculo por producto Obtiene velocidades, cobertura, fecha de rotura prevista y cantidad recomendada (detalle más abajo).
- Guardado Si ya existe una fila para esa instancia y ese producto, la actualiza; si no, la crea. En cada fila anota el momento de la actualización.
- Final Cuando ha recorrido todas las instancias, la tarea termina.
Qué calcula para cada producto
- Unidades y velocidad. De cada ventana (siete, treinta y noventa días) guarda las unidades vendidas y la velocidad diaria, que son esas unidades divididas entre los días de la ventana. Los ingresos solo se guardan de la ventana de treinta días.
- Velocidad de planificación. Es la de treinta días.
- Stock. Toma la cantidad disponible del producto en la compañía de la instancia.
- Cobertura en días. Es el stock dividido entre la velocidad de planificación. Si esa velocidad es cero, vale 9999 cuando hay stock y cero cuando no lo hay.
- Fecha de rotura prevista. Solo se calcula si hay velocidad de planificación y stock: es hoy más los días enteros de cobertura.
- Cantidad recomendada. Si hay velocidad de planificación, multiplica esa velocidad por la suma del plazo de entrega por defecto de la instancia (cero si está vacío) y los días de cobertura objetivo (treinta si está vacío, y como mínimo uno), resta el stock, redondea y no baja de cero. Sin velocidad, queda en cero.
- Clase de movimiento y estado de reposición. También los rellena la tarea: la clase a partir de la velocidad de treinta y de noventa días, y el estado a partir del stock, la velocidad, la cobertura, el plazo y el objetivo.

Qué mirar si no hace nada
El código explica varios casos en los que el Plan de reposición parece quieto o lleno de ceros:
- La tarea está activa. Viene activa al instalar; comprueba que sigue así.
- Quien la ejecuta es administrador. Si no, se detiene con
Only an administrator can run this scheduled action.antes de tocar nada. - La instancia está activa. La tarea solo recorre instancias activas, y con la llamada de la tarea el tope es de cien.
- Hay ventas o vinculación. Un producto entra si tiene líneas de pedidos de esa instancia en los últimos noventa días, en los estados que el código da por vendidos, o si tiene una vinculación activa con la instancia. Fuera de eso, la tarea no le crea fila; si ya tenía una de una pasada anterior, no se actualiza y conserva los valores y la fecha de su última actualización.
- Los ceros pueden ser correctos. Un producto vinculado sin ventas recientes y sin stock sale con velocidades, ingresos y cobertura a cero. Si tiene stock pero no ha vendido en treinta días, su cobertura sale en 9999 y no hay fecha de rotura.
- Una instancia puede estar fallando. Si un error salta dentro de una instancia, la tarea descarta lo pendiente y pasa a la siguiente, así que las demás se siguen procesando.
- Permisos para verlo. Sin
VisorenShopifyy enCatálogono ves el menú, aunque la tarea haya corrido.
Cómo te ayuda FlexigoTech
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida, por si necesitas ajustar cómo se alimenta tu reposición. El módulo está publicado en Odoo Apps para 17.0, 18.0, 19.0 y 20.0 (ficha, página del módulo). Es de pago único por versión y necesita la suscripción a FlexigoTech Cloud, plan Conector: 49 €/mes o 490 €/año sin IVA. La conexión pasa por FlexigoTech Cloud, que guarda cifradas las credenciales, vigila la sincronización y avisa por correo si falla.
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_product_analytics.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
