Wanneer de melding verschijnt en wat ze betekent
De melding verschijnt wanneer je op de knop Shopify-tracking bijwerken klikt bij een levering. Die knop roept Shopify aan om de tracking bij te werken van de fulfillment waarvan het ID in de levering is opgeslagen. Als de aanroep naar Shopify een fout teruggeeft, leest de module de tekst ervan. Wanneer die tekst ACCESS_DENIED bevat (precies zo, in hoofdletters) en bovendien het woord «fulfillment» (in hoofdletters of kleine letters), vervangt de module de fout door deze melding en stopt de actie:
Shopify weigerde toegang tot trackingupdate. Voeg de scope write_merchant_managed_fulfillment_orders toe en autoriseer de app opnieuw. (Shopify denied tracking update access. Add scope write_merchant_managed_fulfillment_orders and re-authorize the app.)
Dat betekent dat Shopify de toegang om de tracking bij te werken heeft geweigerd. De melding vraagt twee dingen: de scope write_merchant_managed_fulfillment_orders toevoegen en de app opnieuw autoriseren. De tekst staat in de gepubliceerde code van alle versies (17.0, 18.0, 19.0 en 20.0). Het detail van de methode hieronder komt uit de code van Odoo 20.0.


Stap voor stap oplossen
- Open de levering van de Shopify-order. De knop
Shopify-tracking bijwerkenis verborgen als de levering niet bij een Shopify-order hoort (het veldIs Shopify-order(Is Shopify Order) is in geen enkele weergave zichtbaar), als de status nietVoltooid(Afgehandeldin Odoo 17.0) is of als het veldShopify-fulfilment(Shopify Fulfillment) leeg is. Die voorwaarde is hetzelfde in Odoo 17.0, 18.0, 19.0 en 20.0. Zie je de knop niet, dan geldt een van de drie. - Klik op
Shopify-tracking bijwerken. Voldoet de fout die Shopify teruggeeft aan de voorwaarde hierboven, dan zie je de melding en stopt de actie. - Voeg de scope
write_merchant_managed_fulfillment_orderstoe aan de Shopify-app, zoals de eerste helft van de melding vraagt. - Autoriseer de app opnieuw, zoals de tweede helft van de melding vraagt.
- Ga terug naar dezelfde levering en klik opnieuw op de knop. Controleer of de melding nog eens verschijnt.
- Verschijnt er nu een andere melding, dan is het niet deze: lees haar helemaal en behandel haar apart (hieronder staat waarom).
Wat de knop doet voordat de melding kan verschijnen
Het helpt om het traject te kennen, zodat je weet op welk punt de melding ontstaat. Volgens de code neemt de module het fulfillment-ID dat in de levering is opgeslagen. Heeft de levering dat ID niet, dan stopt de actie zonder Shopify aan te roepen. Daarna bouwt de module de trackinggegevens op met wat de levering heeft, en als er geen enkel trackingnummer is, stopt de actie ook voordat Shopify wordt aangeroepen. Die gegevens worden zo samengesteld:
- Is er één trackingnummer, dan wordt dat nummer verstuurd. Zijn er meer, dan worden ze allemaal verstuurd.
- Is er een vervoerder, dan wordt de naam ervan verstuurd. De module neemt de vervoerder van de verkooporder of, zo niet, die van de levering zelf.
- De tracking-URL wordt alleen verstuurd wanneer er precies één nummer is.
Het verzoek geeft ook aan of Shopify de klant moet informeren, volgens een instelling van de Shopify-instantie. Met dat alles wordt Shopify aangeroepen.
De melding hangt niet af van de inhoud van de levering: de voorwaarde in de code kijkt alleen naar de tekst van de fout die Shopify bij die aanroep teruggeeft. Een levering met een correct trackingnummer en een goed ingestelde vervoerder kan deze melding toch geven als de fout van Shopify aan beide voorwaarden voldoet.
Waar de winkels in Odoo staan
De winkelkaarten open je via het menu Shopify › Configuratie › Winkels (Shopify › Configuration › Stores). Rechten tellen mee: het onderdeel Configuratie (Configuration) vraagt het recht Operator en het onderdeel Shopify vraagt Lezer (Viewer). Ontbreekt er een van de twee, dan zie je dat deel van het menu niet.
Als de melding blijft verschijnen of er een andere melding komt
De melding wordt alleen gegenereerd wanneer de fout van Shopify tegelijk aan beide voorwaarden voldoet: ACCESS_DENIED en «fulfillment». Voldoet de fout van de aanroep daar niet aan, dan verandert de module hem niet en zie je hem zoals hij is, met zijn eigen tekst. Zie je dus na het toevoegen van de scope en het opnieuw autoriseren een fout met andere woorden, dan gaat het niet meer om deze melding.
Zie je precies deze melding nog steeds, loop dan stap drie en vier na: de melding vraagt zowel om de scope als om een nieuwe autorisatie van de app.
Met Odoo in het Nederlands zie je de melding zoals in het citaat hierboven; het schema toont ook hoe ze in het Duits, Frans, Italiaans en Portugees luidt:

Ben je andere meldingen van de module aan het nalopen, dan vind je ook de analyse van «No hay datos de Shopify disponibles para crear el pedido de venta», met de voorwaarde in de code en wat je kunt doen.
Hoe FlexigoTech je helpt
FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. Werk je met de connector en wil je dat iemand met je meekijkt naar de koppeling met je Shopify-winkel, schrijf ons dan via de modulepagina.
Lees verder
Gecontroleerd in de broncode van de connector (versie 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_instance.py
- Broncode van de module: flexigobe_shopify_seller_connector 20.0 (d7e627b4): views/stock_picking_views.xml
- Broncode van de module: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
