Cuándo aparece y qué necesita
El botón Pull Stock está en la ficha de Shopify Instances, que se abre desde el menú Sales › Shopify › Control Center › Instances (con Odoo en castellano, el primer tramo se llama Ventas). Existe en las ramas 17, 18, 19 y 20 del módulo y se ve siempre, sin ninguna condición.

Pull Stock y lo que lo puede parar.Para que haga algo, la instancia necesita la casilla Traer el stock de Shopify activa: así Shopify pasa a ser el dueño del stock. Según su ayuda, no puede estar activa a la vez que el envío de stock (Sync Stock Enabled) ni con otra tienda que traiga stock a la misma ubicación de Odoo. La ayuda añade que lo que Shopify cuenta como dañado, en control de calidad o como stock de seguridad entra en su existencia: en Odoo es stock como el resto.

Paso a paso
- Empieza por el camino automático. En la ficha de
Shopify Instances, pestañaOperations, grupoConfiguración de sincronización(Sync Settings), activaTraer el stock de Shopify. Viene desactivada por defecto. - Activa también la tarea programada
Shopify Pull Stock (Shopify → Odoo): corre cada seis horas y viene desactivada al instalar. La ayuda de la casilla lo avisa: activarla no lanza la traída. - Pulsa
Pull Stocksolo cuando quieras traer el stock ahora, sin esperar a la tarea. Es el camino manual y recorre lo que sigue. - Antes de crear nada, el botón comprueba que la casilla está activa. Si no lo está, se detiene y no cambia nada.
- Después comprueba que quien pulsa tiene permisos de Inventario, porque la traída hace ajustes de inventario. Si no los tiene, se detiene con el mensaje de permisos de la tabla.
- Crea una entrada en el registro de sincronización, de tipo traída de stock, en curso.
- Busca los vínculos de producto activos de esa instancia que tienen elemento de inventario de Shopify y descarta los de un producto de otra compañía vinculado antes de una corrección. Si no queda ninguno, cierra el registro como terminado, con una nota, y no cambia nada.
- Decide la ubicación de Odoo: la enlazada con la ubicación principal de Shopify o, si no hay, la ubicación de stock del almacén de la tienda (de su compañía). Si no encuentra ninguna, marca el registro como fallido y deja el motivo en él.
- Revisa que ninguna otra tienda activa con la casilla activada traiga stock a esa misma ubicación, a una dentro de ella o a una que la contenga. Si ocurre, marca el registro como fallido y para sin tocar el stock.
- Usa la ubicación de Shopify guardada en
Default Location Gid(pestañaWebhooksde la ficha). Si está vacía, pide a Shopify su primera ubicación y la guarda ahí. - Pregunta a Shopify, en bloques de cien artículos, cuánto hay en esa ubicación (lo que está dentro, incluido lo ya comprometido).
- Salta los productos con seguimiento por lotes o números de serie, los que no se almacenan y los kits, y los anota. Los productos para los que Shopify no devolvió cantidad se dejan sin tocar.
- Si en la ubicación de Odoo (con sus hijas) hay un recuento pendiente de ese producto, no lo pisa: lo deja sin ajustar y lo anota.
- Calcula la diferencia: existencias de Shopify, menos lo que Odoo entregó desde esa ubicación (con sus hijas) para pedidos abiertos de la tienda y Shopify aún no ha cumplido, menos lo que Odoo tiene disponible en la ubicación. No cuenta lo que cumplió el conector ni los pedidos que Shopify cumplió por otra vía.
- Si la diferencia es positiva, crea y aplica un ajuste de inventario que sube el stock de la ubicación. Si es negativa, lo baja quitando de las existencias de la ubicación (hijas y paquetes incluidos, nunca lo que pertenece a un propietario), en orden de salida. Si Odoo no tiene stock ajustable suficiente para bajar, no ajusta ese producto y lo cuenta como error.
- Cada producto va aparte: si uno falla, se cuenta como error y sigue con el siguiente. Cuando ajusta uno, apunta la fecha de sincronización en su vínculo.
- Cierra el registro con una nota: cuántas cantidades trajo y qué productos saltó, dejó con recuento pendiente o no pudo bajar. Queda correcto si no hubo errores, parcial si hubo errores y algo se actualizó, y fallido si hubo errores y nada se actualizó.
Algunos mensajes que puede dar el botón
| Mensaje | Cuándo sale | Qué hacer |
|---|---|---|
Traer el stock de Shopify hace ajustes de inventario: necesita permisos de Inventario. (Pulling stock from Shopify makes inventory adjustments: it needs Inventory rights.) | Al pulsar el botón sin permisos de Inventario. | Que lo pulse un usuario con permisos de Inventario. |
La sincronización de stock de Shopify falló para …: … (Shopify stock pull failed for …: …) | Si algo falla durante la traída, ya con el registro creado. Primero va el dominio de la tienda (Shop Domain) y después el motivo. | Lee el motivo tras los dos puntos: el registro queda como fallido con ese texto. |
Si FlexigoTech Cloud ha pausado el servicio, el código borra la entrada del registro y no la deja como fallida; en ese caso el mensaje de fallo de la última fila no se genera.

Qué comprobar después
Abre el registro de esa ejecución: su estado y su nota dicen cuántas cantidades se trajeron y qué productos se saltaron, se dejaron por un recuento pendiente o no se pudieron bajar. Los ajustes quedan en el historial de inventario y se valoran como cualquier otro. Si un producto sale en la nota por un recuento pendiente, la propia nota indica aplicarlo o borrarlo en Odoo.
Coste y ayuda
El módulo cuesta 9 € por versión de Odoo, para 17, 18, 19 y 20, sin IVA y de pago único. Necesita además la suscripción a FlexigoTech Cloud: el plan Conector es de 49 €/mes o 490 €/año sin IVA.
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida.
Sigue leyendo
Comprobado en el código del conector (versión 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigobe_shopify_connector 20.0 (c7078cd8): views/shopify_instance_views.xml
- Código del módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/shopify_instance.py
- Código del módulo: flexigobe_shopify_connector 20.0 (c7078cd8): models/fgt_cloud.py
- apps.odoo.com/apps/modules/17.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/18.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/19.0/flexigobe_shopify_connector
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
