Salta al contingut principal
Shopify

Què fa el botó «Return Stock» de Shopify Connector for Odoo, pas a pas

El botó Return Stock crea a Odoo una transferència de devolució ja validada per a un abonament de Shopify amb productes a reposar, i marca la devolució d'estoc com a feta. Només es veu quan aquesta devolució és pendent, en revisió o fallida. El seguim amb un cas inventat: què comprova, què canvia i amb quins missatges pot parar.

FlexigoTech · Responsable: Víctor Gómez · Actualitzat el 5 de novembre de 2026

L'essencial

Mòdul
Shopify
Versions
Odoo 17, 18, 19 i 20
Comprovat
al codi del connector, versió 20.0 · a les fonts enllaçades al final
Lectura
6 min

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.

Esquema fet amb codi: el menú d'abonaments, el botó Return Stock i els missatges que el poden aturar
Esquema fet amb codi a partir del codi del mòdul (no és una pantalla d'Odoo): el menú, el botó (Odoo 17, 18, 19 i 20) i, a un costat, els missatges que el poden aturar, amb els textos del codi.

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

Esquema fet amb codi amb el text Return Stock traduït a diversos idiomes
Esquema fet amb codi a partir de les traduccions del mòdul (no és una pantalla d'Odoo): en castellà Devolver al stock, en alemany Bestand zurückbuchen, en francès Retourner au stock, en italià Restituisci a magazzino i en portuguès Devolver ao stock.
Your Odoo doesn't talk to Amazon, Temu or Shopify?
Vídeo: Your Odoo doesn't talk to Amazon, Temu or Shopify? (vídeo en anglès)

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:

  1. 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.
  2. 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.
  3. Si cap línia queda resolta, s'atura amb el primer missatge de la secció d'errors i no crea res.
  4. Si l'abonament té Sale Order amb lliuraments de sortida ja validats, parteix d'aquests; si no, fa una devolució manual.
  5. Crea la transferència, la confirma, la reserva, dona com a feta la quantitat demanada i la valida directament.
  6. 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

MissatgeQuan surtQuè 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

Què fa el botó «Pull Stock» del connector de Shopify per a OdooQuè fa el botó Pull Stock del connector de Shopify per a Odoo: quan apareix, què comprova, què canvia al teu estoc i quin error pot donar.Avís «is now the primary location» del connector de Shopify per a OdooQuè vol dir l'avís «is now the primary location for …» del connector de Shopify per a Odoo, quan surt i com canviar la ubicació principal.Error en crear la comanda: falten dades de ShopifyQuè vol dir l'avís de Shopify Connector for Odoo en prémer «Create Sale Order» sense dades de la comanda, quan surt i com resoldre'l.
Comprovat al codi del connector (versió 20.0) i a les fonts enllaçades

Fonts