On és el botó i quan cal prémer-lo
On és el botó Push Stock i quan apareix?
És a la fitxa de la botiga, a la pantalla Shopify Instances. S'hi arriba des del menú Shopify › Configuration › Stores; per veure'l calen els permisos que demana cada tram: Viewer per a Shopify i Operator per a Configuration. El botó no té cap condició de visibilitat: es veu a la fitxa a les versions 17, 18, 19 i 20 d'Odoo. El funcionament que segueix és el del codi del mòdul a Odoo 20.0. Amb Odoo en castellà el botó es diu Push Stock; en alemany, Bestand übertragen; en francès, Envoyer le stock; en italià, Invia stock; en portuguès, Push Stock.


Haig de prémer-lo o Odoo envia l'estoc tot sol?
El camí normal és automàtic: la tasca planificada Shopify Push Stock arriba a aquest mateix enviament cada 20 minuts i està activa des de la instal·lació. El botó és l'excepció: serveix per llançar l'enviament en el moment, sense esperar la tasca. Quan acaba, el camp Last Stock Push porta la data; es veu a la fitxa i a la llista de botigues, és de només lectura i l'escriu el codi, no tu. El botó Reset Sync el buida.
I l'estoc en sentit contrari, de Shopify a Odoo?
És una altra tasca: Shopify Pull Stock (Shopify → Odoo), cada 6 hores i activa en instal·lar. El seu mètode només actua si està marcada la casella Sync Stock Enabled, que és a la fitxa de Shopify Instances, pestanya Operations, grup Sync Settings, i per defecte està desmarcada. El mètode del botó Push Stock, tal com està escrit, no mira aquesta casella.

Què comprova i què envia
Quins productes envia?
Per cada botiga, el mòdul busca els productes enllaçats amb ella que estan actius i tenen un article d'inventari de Shopify assignat. Després descarta els d'una companyia diferent de la de la botiga (Company), encara que l'enllaç vingués d'abans. Si no en queda cap, no envia res a Shopify: només posa la data a Last Stock Push i passa a la botiga següent.
Quina quantitat envia: la que hi ha o la disponible?
La lliure: les existències menys el que ja està reservat, calculada amb la companyia de la botiga, arrodonida a nombre enter i a zero si no hi ha valor. El motiu, segons el codi mateix: una comanda de Shopify confirmada a Odoo reserva la unitat, però les existències només baixen quan es valida el lliurament. Si s'enviessin les existències, entre la venda en línia i l'enviament Shopify tornaria a veure aquesta unitat com a disponible, i amb l'última unitat un segon client podria comprar-la. Més sobre comandes i albarans a el que afegeix el mòdul a les vendes i a el que afegeix als albarans.
Si envio una altra vegada les mateixes quantitats, les ignora Shopify com a duplicat?
No. Cada execució de l'enviament genera una clau pròpia i la varia a cada bloc, just perquè unes quantitats idèntiques enviades més tard no es prenguin per un duplicat. L'enviament va en blocs de cent productes com a màxim. A cada bloc es fixa la quantitat disponible a Shopify tal com la calcula Odoo, amb el motiu de correcció i sense comparar-la amb el que Shopify tingui en aquell moment.
Què canvia i quins errors pot donar
Quina ubicació de Shopify fa servir i què canvia a Odoo?
Primer busca la ubicació: fa servir la que la botiga ja té desada i, si no n'hi ha cap, pregunta a Shopify, pren la primera que retorna i desa el seu identificador i el seu nom. A Odoo el que canvia són dates: després d'enviar cada bloc, anota la data de sincronització d'estoc a cada producte d'aquell bloc, i al final escriu Last Stock Push a la botiga. Si un error atura l'acció, el missatge surt i aquesta última data no es desa.
Quins missatges d'ubicació o de connexió poden sortir en prémer el botó?
Aquests. No Shopify locations were found for …: la botiga no tenia ubicació desada i Shopify no en va retornar cap; en lloc dels punts hi va el domini de la botiga. Shopify did not return a valid location id.: Shopify va retornar una ubicació sense identificador. Aquests dos d'ubicació només es poden donar quan falta la ubicació desada. A més hi ha Shopify is not connected for …. Open the Connection tab and follow the setup steps.: la botiga continua sense token d'accés; en lloc dels punts hi va el nom de la botiga. Obre la seva fitxa, pestanya Connection, i segueix els passos de configuració.
I els missatges de la crida a Shopify?
També surten en prémer el botó. Shopify GraphQL call failed (…): … surt quan Shopify respon amb un codi d'error de 400 o superior; el missatge porta aquest codi i el principi de la resposta. Abans de rendir-se, el mòdul tracta el 401 i el 429: davant d'un 401 intenta renovar l'accés i repeteix, si hi ha token de renovació o credencials de client; davant d'un 429 espera i repeteix, amb fins a tres intents en una crida normal. També poden sortir Shopify GraphQL returned errors: … i Shopify GraphQL call exhausted retries.. En tots conserva el text complet del missatge: és el que necessita qui revisi la connexió.
Si ho muntes amb ajuda
FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions a mida. El mòdul és de pagament únic per versió d'Odoo (preu a la seva fitxa d'Odoo Apps i a la pàgina del mòdul) i necessita la subscripció a FlexigoTech Cloud: pla Connector, 49 €/mes o 490 €/any sense IVA, fins a 3 comptes de la plataforma. Amb aquesta connexió es desen xifrades les credencials, es vigila la sincronització i s'avisa per correu si falla.
Si algun d'aquests missatges no es resol, escriu-nos amb el text complet i la versió d'Odoo que fas servir.
Continua llegint
Comprovat al codi del connector (versió 20.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (2950bdc0): views/shopify_instance_views.xml
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_instance.py
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
