Un cas per recórrer el botó pas a pas
Exemple Cas il·lustratiu: l'empresa i les seves dades són inventades per explicar el flux.
Librería Faro és una botiga inventada que ven a Shopify i porta les comandes a Odoo amb aquest mòdul. Un client demana que li retornin l'import d'una comanda sencera i l'Ana, d'administració, obre aquesta comanda de venda a Odoo. El que ve a continuació és el que el mòdul fa en cada punt, segons el seu codi d'Odoo 20.
Primer: apareix el botó?
El botó Refund in Shopify és a la vista de la comanda de venda i s'oculta quan el camp Shopify Order Ref és buit. Amb els valors per defecte aquest camp és buit, així que en una comanda sense enllaç amb Shopify no veuràs el botó. Aquest camp i Shopify Instance són a la fitxa de la comanda, al grup Shopify; són de només lectura i s'oculten mentre la referència sigui buida. La mateixa condició de vista val per a Odoo 17, 18, 19 i 20.

Segon: la confirmació
Al prémer el botó, Odoo pregunta Create a full refund of this order in Shopify?. Si acceptes, Odoo executa l'acció del botó.
Tercer: el que comprova, en aquest ordre
- Permisos. El primer que fa l'acció és comprovar que el teu usuari té accés de Shopify Operator o Manager. Si no el té, s'atura amb
You need Shopify Operator (or Manager) access to push changes to Shopify.El comentari del codi n'explica el motiu: un usuari amb accés normal a Vendes, sense cap rol de Shopify, podria altrament llançar una crida real a Shopify amb les credencials de la botiga. Per això la comprovació viu a l'acció mateixa i no depèn que el botó es vegi. - Enllaç amb Shopify. Per a cada comanda, l'acció exigeix que tingui emplenades la referència de Shopify i la instància. Si en falta alguna, s'atura amb
Sale order … is not linked to a Shopify order., amb el nom de la comanda en lloc dels punts suspensius. Com que el botó només es veu amb la referència emplenada, si el prems des de la fitxa i surt aquest avís, mira al grupShopifysiShopify Instanceté valor.
Quan un avís atura l'acció, el procés acaba aquí i no arriba a demanar el reemborsament d'aquesta comanda.
Quart: què demana a Shopify
Si la comanda passa aquestes comprovacions, la seva instància de Shopify rep l'ordre de crear el reemborsament. Segons el codi:
- Línies. Es reemborsen totes les línies importades: les que no són de secció ni de nota, no són d'enviament i porten identificador de línia de Shopify. La quantitat és la de la línia, arrodonida a nombre enter.
- Enviament. Les línies d'enviament queden fora i la petició no demana reemborsar les despeses d'enviament.
- Nota. Tret que se n'indiqui una altra, la nota que viatja a Shopify és
Refunded from Odoo. - Avís al client i saldo de botiga. Es prenen de les opcions de la instància: avisar el client del reemborsament i reemborsar com a saldo de botiga en lloc del mitjà de pagament original.
- Divisa. El mòdul pregunta a Shopify pel reemborsament suggerit i, si Shopify retorna una divisa, la inclou a la petició.
- Reintents. La petició porta una clau que descriu exactament aquest reemborsament (comanda, línies, quantitats, enviament i mètode). Si es repeteix, per una resposta perduda o un segon clic impacient, porta la mateixa clau i Shopify reemborsa una sola vegada, segons el comentari del codi.
Si l'Ana no té el rol
Si l'Ana veu l'avís de permisos, el reemborsament no s'ha demanat. Necessita que qui administra Odoo li doni accés de Shopify Operator (o Manager), tal com diu el missatge mateix, i tornar a prémer el botó.

Què aprendre del cas
- El botó no és per a qualsevol comanda: depèn de
Shopify Order Ref, i aquesta referència no s'emplena a mà perquè el camp és de només lectura. - Els teus permisos i l'enllaç de la comanda (referència i instància) es comproven abans de parlar amb Shopify, i si falla algun l'acció s'atura.
- El reemborsament que demana és complet respecte a les línies importades, sense les línies d'enviament ni despeses d'enviament.
- L'avís al client i el reemborsament com a saldo de botiga no es trien en prémer: surten de les opcions de la instància.
- Un reintent idèntic no duplica el reemborsament a Shopify, per la clau que porta la petició.
Abans de provar-ho al teu Odoo
El botó és a les branques d'Odoo 17, 18, 19 i 20, que són les versions publicades del mòdul a Odoo Apps; el codi que he descrit és el d'Odoo 20. Amb Odoo en català el botó es diu Refund in Shopify, perquè el mòdul no el tradueix; en altres idiomes el rètol canvia, com mostra l'esquema.

El mòdul és de pagament únic per versió d'Odoo i necessita la subscripció a FlexigoTech Cloud, pla Connector: 49 €/mes o 490 €/any, sense IVA. La connexió passa per FlexigoTech Cloud, que guarda xifrades les credencials, vigila la sincronització i avisa per correu si falla. Tot és a la fitxa d'Odoo Apps i a la pàgina del mòdul.
Si el teu dubte va per un altre costat de les comandes, mira el missatge sobre dades de Shopify per crear la comanda de venda. I si estàs implantant Odoo amb Shopify i vols revisar permisos, instàncies o un flux de devolucions a mida, FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions a mida.
Preguntes ràpides
Per què no veig el botó en una comanda?
Perquè el botó s'oculta quan Shopify Order Ref és buit, i amb els valors per defecte ho és.
Demana confirmació?
Sí: Create a full refund of this order in Shopify?.
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 (d7e627b4): views/sale_order_views.xml
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/sale_order.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
