Quan apareix el botó
El botó Return Stock és a la pantalla Shopify Refunds, que s'obre des de Shopify › Operations › Refunds & Returns. Per veure els trams Shopify i Operations del menú cal el permís Viewer.
La condició és la mateixa a Odoo 17, 18, 19 i 20: el botó s'amaga tret que el camp Stock Return sigui pendent, en revisió o fallit. Amb els valors per defecte d'aquest camp no es veu. No depèn del camp State de l'abonament, que és un altre i pren els valors Draft, Credit Note Created, Ignored i Failed.

El botó es diu Return Stock perquè el mòdul no el tradueix al català; sí que porta traduccions a altres idiomes.


Un cas de principi a fi
Exemple Cas il·lustratiu: l'empresa i les seves dades són inventades per explicar el flux.
Velas del Sur és una botiga inventada que ven per Shopify i porta el magatzem a Odoo amb el connector. Un client retorna unes espelmes i el seu abonament, amb productes a reposar, ja és a Odoo. La persona de magatzem l'obre i prem Return Stock. Això és el que fa el botó, en aquest ordre:
- Si la devolució d'estoc era fallida però la seva transferència de devolució ja estava validada, la dona per bona: la marca com a feta i esborra l'error. Si ja era feta, obre aquesta transferència i no fa res més.
- Llegeix les línies de reposició de l'abonament i salta les de quantitat zero o negativa. Per a cadascuna busca el producte d'Odoo per l'ID de variant de Shopify i, si no el troba, per l'SKU, dins de l'empresa de la instància. Les línies que no resol s'ometen i la devolució continua amb les altres.
- Si cap línia queda resolta, s'atura amb el primer missatge de la secció d'errors i no crea res.
- Si l'abonament té
Sale Orderamb lliuraments de sortida ja validats, parteix d'aquests; si no, fa una devolució manual. - Crea la transferència, la confirma, la reserva, dona com a feta la quantitat demanada i la valida directament.
- Anota el resultat i obre la transferència creada.
Quan la comanda ja ha sortit del magatzem
El camp Sale Order és a la fitxa, grup Amounts. Si hi ha lliuraments validats, el botó calcula què queda per retornar de cada producte: el que Shopify ha reposat per a aquesta comanda en tots els seus abonaments, menys el que ja ha tornat en devolucions no cancel·lades (també una feta des d'Odoo), i mai més del que s'ha lliurat. Reparteix aquesta quantitat entre els lliuraments, del més antic al més recent, i crea una devolució validada per a cadascun; segons indica el codi, si una falla es desfan totes.
La transferència va de la ubicació de destinació del lliurament a la seva ubicació d'origen, hereta el contacte i queda enllaçada al lliurament, que la compta com a retornada. Si la devolució feta des d'Odoo va ser parcial, el botó descompta el que ja s'ha retornat i crea la transferència per la resta. Si no queda res per retornar perquè Odoo ja ho ha retornat tot, el botó marca la devolució d'estoc com a feta, deixa al lliurament la nota Shopify refund …: nothing left to return from this delivery, Odoo already returned it. i obre aquest lliurament.
Quan no hi ha lliurament del qual partir
Si l'abonament no té comanda de venda, o cap lliurament de sortida validat, el botó crea una entrada manual des de la ubicació de clients fins a la ubicació d'estoc del magatzem de la instància de Shopify. Si la instància no té magatzem, en busca un de la seva empresa. Fa servir un tipus d'operació d'entrada d'aquest magatzem, i els moviments porten la descripció Return: … amb el nom del producte.
Què canvia en acabar
La devolució d'estoc es marca com a feta i el camp Return Transfer (grup Amounts, ocult mentre és buit) apunta a la primera transferència creada. Totes porten com a origen Shopify Refund … amb el nom de l'abonament. En cada transferència es publica al seu xat la nota Stock returned from Shopify refund …. Transfer: …; si la devolució ve d'un lliurament, el lliurament rep Shopify refund …: returned in …. Després el botó obre la primera transferència.
Els missatges amb què pot parar
| Missatge | Quan surt | Què fer |
|---|---|---|
No restockable products found for this refund. Make sure products are linked by SKU or Shopify variant ID. | En prémer Return Stock, quan cap línia de reposició es resol a un producte d'Odoo. | Vincular els productes per SKU o per ID de variant de Shopify, com demana el missatge mateix, i tornar a prémer. |
Failed to create stock return: … | En prémer Return Stock, quan alguna cosa falla en crear o validar la devolució. Després dels dos punts hi va el motiu. | Llegir el motiu, corregir-ne la causa i tornar a prémer: el botó es veu també amb la devolució fallida. |
El segon missatge embolcalla els errors de la creació. El codi contempla, per exemple, que la transferència no arribi a validar-se perquè la validació obri un assistent (de lliuraments parcials, per exemple) en lloc d'acabar. En aquest cas la devolució compta com a fallida. En fallar, el codi marca la devolució d'estoc com a fallida abans de llançar el missatge.
Què aprendre del cas
- Abans de prémer, comprova que els productes de l'abonament estan enllaçats per ID de variant de Shopify o per SKU: és l'única cosa que el botó fa servir per trobar-los.
- Mira la transferència que s'obre en acabar: allà hi ha la nota amb el nom de l'abonament i de la transferència.
- Amb diversos abonaments sobre la mateixa comanda, el que ja s'ha retornat es descompta; la quantitat no supera el que s'ha lliurat.
- Una devolució feta abans des d'Odoo compta: es descompta del que queda per retornar i, si ja ho ha retornat tot, el botó no crea una segona transferència i ho deixa anotat al lliurament.
Cost i ajuda de FlexigoTech
El mòdul (fitxa a Odoo Apps, pàgina a flexigotech.com) està publicat per a Odoo 17, 18, 19 i 20. És de pagament únic per versió 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.
FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions a mida. Si treballes amb l'estoc de Shopify a Odoo, mira també què fa el botó «Pull Stock».
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/shopify_refund_views.xml
- Codi del mòdul: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_refund.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
