El camí que no necessita el botó
Abans de prémer res, convé saber que el mòdul pot demanar la cancel·lació a Shopify per ell mateix. A la fitxa de Shopify Instances, pestanya Operations, grup Sync Settings, hi ha la casella Auto-push cancellations to Shopify. La seva ajuda diu: «When a Shopify-linked sale order is cancelled in Odoo, cancel it in Shopify too.» La casella ve desactivada per defecte.
Amb la casella activada, en cancel·lar una comanda de venda a Odoo el mòdul li ho demana a Shopify si la comanda està vinculada a una instància, té referència de comanda de Shopify i ha quedat cancel·lada. Si aquesta petició falla, l'error s'anota al registre i la cancel·lació a Odoo no es desfà.
El botó Cancel in Shopify és la via manual: es prem des de la fitxa de la comanda de Shopify. Quan el botó cancel·la la comanda de venda d'Odoo, ho fa marcant que aquesta cancel·lació no s'enviï de nou a Shopify pel camí automàtic.

Quan apareix el botó
És a la fitxa de Fulfilment Funnel, que s'obre des de Shopify › Operations › Orders. Per veure aquest menú cal el permís Viewer.
La condició de la vista només mira el camp State: el botó s'amaga quan val Cancelled i es veu amb qualsevol altre valor. El valor per defecte és Open, així que en una comanda que acaba d'arribar el veuràs. Els altres valors són Partially Fulfilled, Fulfilled i Refunded. El botó és a Odoo 17, 18, 19 i 20, amb la mateixa condició.
Veure'l no és el mateix que poder-lo fer servir: la condició de la vista només parla de l'estat, i l'accés es comprova en prémer-lo (més avall).

Amb Odoo en català, el botó es diu Cancel in Shopify.
Un cas: Tienda Aurora cancel·la una comanda
Exemple Cas il·lustratiu: l'empresa i les seves dades són inventades per explicar el flux.
Tienda Aurora (empresa inventada per a aquest exemple) ven per Shopify i gestiona les comandes a Odoo. Un client demana anul·lar una compra que encara no ha sortit. La Marta, d'atenció al client, té accés d'operador de Shopify.
- La Marta obre
Shopify › Operations › Ordersi entra a la fitxa de la comanda. L'StateésOpeni el botó es veu. - Prem
Cancel in Shopify. Shopify no retorna cap error amb text. - L'
Statepassa aCancelled, el botó desapareix i la comanda de venda vinculada es cancel·la a Odoo.
L'endemà li arriba un altre cas i Shopify retorna un error amb el seu motiu. La Marta veu Shopify order cancel failed: …, amb el text que retorna Shopify darrere dels dos punts. L'State continua com estava i la comanda de venda no es toca. El que li toca és llegir el motiu.
Un company que només té el permís Viewer obre la mateixa fitxa, veu el botó i, en prémer-lo, rep l'avís d'accés que apareix a la taula de sota.
Què comprova i què fa, per ordre
Aquest és l'ordre del codi d'Odoo 20. Tan bon punt una comprovació falla, el botó s'atura i no desa res del que anava a canviar.
- Comprova que tens accés d'operador o de gestor de Shopify.
- Comprova que la comanda no estigui ja cancel·lada (el botó ja s'amaga en aquest estat).
- Comprova que el camp
Shopify Ordertingui valor. - Demana la cancel·lació a Shopify. Si cal avisar el client, reemborsar o reposar estoc, ho decideix la configuració de la instància de la comanda: el botó no pregunta res. Si Shopify retorna errors amb text, el botó s'atura aquí.
- Si el pas anterior no s'ha aturat, escriu
CancelledaState. - Si la comanda té una
Sale Ordervinculada i aquesta comanda no està cancel·lada, intenta cancel·lar-la a Odoo. Si aquesta cancel·lació falla, l'error queda al registre, el botó no mostra cap missatge per això i la comanda de Shopify es queda enCancelled.

Els camps Shopify Order, Sale Order i State es veuen a la fitxa i els omple el mòdul, no l'usuari. Shopify Order és de només lectura.
Missatges que pot donar en prémer-lo
Aquests són alguns dels missatges que pot donar el botó:
| Missatge | Quan surt | Què fer |
|---|---|---|
You need Shopify Operator (or Manager) access for this action. | En prémer el botó sense accés d'operador ni de gestor de Shopify. | Demana aquest accés o que el premi una altra persona que el tingui. |
No Shopify order ID found. | En prémer el botó amb Shopify Order buit. | Revisa aquest camp a la fitxa: no s'escriu a mà, l'omple el mòdul. |
Shopify order cancel failed: … | En prémer el botó, quan Shopify retorna errors amb text; el text de Shopify va en lloc dels punts suspensius. | Llegeix el motiu que dona Shopify. En aquest cas el botó s'atura i l'estat no canvia. |
Què treure del cas
- Amb la casella automàtica desactivada, cancel·lar la comanda de venda a Odoo no avisa Shopify per aquest camí; el botó sí que ho fa.
- L'
StateCancelleds'escriu després de demanar la cancel·lació a Shopify, tret que Shopify retorni errors amb text: llavors surtShopify order cancel failed: …i no canvia res. - Un error en cancel·lar la comanda de venda d'Odoo no es veu en pantalla: si dubtes, comprova la comanda de venda vinculada després de prémer.
Com ajuda FlexigoTech
El mòdul està publicat a Odoo Apps per a Odoo 17, 18, 19 i 20; tens la fitxa d'Odoo Apps i la pàgina del mòdul. A més del pagament únic del mòdul, necessita la subscripció a FlexigoTech Cloud: la connexió amb Shopify passa per aquest servei, que desa xifrades les credencials i avisa per correu si falla la sincronització (pla Connector: 49 €/mes o 490 €/any sense IVA). FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions a mida, per si necessites ajustar el flux de cancel·lacions a la teva botiga.
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_order_views.xml
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_order.py
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/sale_order.py
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (2950bdc0): models/shopify_instance.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
