Wat het is en wanneer hij draait
De geplande actie Voorraad uit Shopify ophalen (Shopify → Odoo) draait om de zes uur en staat actief zodra je de module installeert. Hij bestaat in alle gepubliceerde branches: 17.0, 18.0, 19.0 en 20.0. In Odoo 17.0 staat daarnaast het aantal herhalingen op -1, oftewel hij herhaalt zich eindeloos.

Met Odoo in het Nederlands heet de actie Voorraad uit Shopify ophalen (Shopify → Odoo). Het volgende schema toont hoe hij in andere talen heet.

De verbinding met de winkel loopt via FlexigoTech Cloud, dat de inloggegevens versleuteld bewaart, de synchronisatie bewaakt en per e-mail waarschuwt als er iets misgaat. De module vereist het FlexigoTech Cloud-abonnement (plan Connector: € 49 per maand of € 490 per jaar, excl. btw).

Een voorbeeld van begin tot eind
Voorbeeld Fictief geval: het bedrijf en de cijfers zijn verzonnen om de werkwijze uit te leggen.
Casa Moreno is een verzonnen bedrijf dat huishoudartikelen verkoopt in een Shopify-winkel en de voorraad in Odoo beheert. Op een ochtend ziet Laura, die het systeem beheert, dat de hoeveelheid van een product in Odoo niet is veranderd, terwijl die in Shopify wel is gewijzigd. In plaats van blindelings iets te starten, loopt ze de actie door in de volgorde waarin de gepubliceerde code voor Odoo 20.0 hem uitvoert. Dat is de code die hieronder wordt beschreven.
Eerste filter: wie hem uitvoert
In Odoo 20.0 controleert de actie eerst of degene die hem uitvoert systeembeheerder is. Zo niet, dan stopt hij met Only an administrator can run this scheduled action. en kijkt hij niet eens naar een winkel. Laura is beheerder, dus ze gaat door naar het volgende punt.
Tweede filter: welke winkels meedoen
In Odoo 20.0 loopt de actie niet alle winkels af, alleen die die tegelijk aan drie voorwaarden voldoen:
- De winkel is actief.
- De voorraadsynchronisatie staat aan.
- Er zijn inloggegevens: een opgeslagen toegangstoken of het opgeslagen API-geheim van de app.
Bij de derde voorwaarde volstaat een van de twee, omdat een winkel met klantgegevens nog geen opgeslagen token kan hebben totdat de eerste aanroep er een aanmaakt. De winkels open je via het menu Shopify › Configuratie › Winkels (Shopify › Configuration › Stores). Zie je een deel van dat pad niet, dan ontbreekt er een recht: Configuratie (Configuration) vraagt Operator en Shopify vraagt Lezer (Viewer).
Laura controleert dat de winkel van Casa Moreno aan alle drie de voorwaarden voldoet. Als er een niet klopt, valt de winkel buiten de run.
Derde stap: een winkel die faalt houdt de rest niet tegen
In Odoo 20.0 roept de actie voor elke gekozen winkel de import aan binnen een blok dat elke fout opvangt. Geeft een winkel een fout, dan wordt die met de naam van de winkel in het serverlogboek vastgelegd en gaat de actie door met de volgende.
Wat de import met elke winkel doet
In Odoo 20.0 doet de import voor elke winkel dit, in deze volgorde:
- Staat de voorraadsynchronisatie van de winkel niet aan, dan slaat hij hem over.
- Hij zoekt de met Shopify gekoppelde producten die actief zijn, een Shopify-voorraaditem hebben en bij het bedrijf van de winkel horen: een product van een ander bedrijf telt niet mee, ook al bestond de koppeling al eerder. Is er geen enkel product, dan gaat hij door naar de volgende winkel.
- Hij bepaalt de Odoo-locatie. Eerst zoekt hij de Shopify-hoofdlocatie van die winkel waaraan een Odoo-locatie is toegewezen. Is die er niet, dan gebruikt hij de voorraadlocatie van het magazijn van de winkel of, als de winkel geen magazijn heeft, die van het eerste magazijn van zijn bedrijf. Vindt hij geen enkele locatie, dan laat hij die winkel liggen en gaat hij door met de volgende.
- Hij vraagt Shopify om de beschikbare hoeveelheid van de voorraaditems, voor de Shopify-locatie van de winkel (de standaardlocatie, als die is opgeslagen) en in series van 100 items. Elke ontvangen hoeveelheid wordt omgezet naar een geheel getal.
De knop om de voorraad handmatig op te halen heeft een eigen stappenplan. En als je je afvraagt wat de Shopify-hoofdlocatie is, heeft de melding die haar noemt een eigen artikel.
Wat je nakijkt als de actie niets doet
Na afloop heeft Laura een lijst met punten waar een run volgens de code van Odoo 20.0 kan afbreken:
- Wie hem start. Alleen een beheerder kan hem uitvoeren; anders verschijnt
Only an administrator can run this scheduled action.. - De winkel. Hij moet actief zijn, met voorraadsynchronisatie aan en met een opgeslagen token of API-geheim.
- De producten. Ze moeten gekoppeld en actief zijn, een Shopify-voorraaditem hebben en bij het bedrijf van de winkel horen.
- De locatie. Er is een Shopify-hoofdlocatie met een toegewezen Odoo-locatie nodig, of een magazijn als alternatief.
- De frequentie. De actie draait om de zes uur, dus een recente wijziging in Shopify is misschien nog niet in Odoo aangekomen.
Met die lijst kan Laura punt voor punt uitsluiten in plaats van te gokken. Om bij het eenvoudigste te beginnen, kan ze Shopify › Configuratie › Winkels openen en de winkel controleren voordat ze iets anders aanpast.
Hoe FlexigoTech helpt
FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. Wil je de configuratie van je winkels laten nakijken of de voorraadstroom afstemmen op jouw werkwijze, bekijk dan de module op de pagina of in de Odoo Apps-vermelding.
De module is gepubliceerd in Odoo Apps voor 17.0, 18.0, 19.0 en 20.0.
Lees verder
Gecontroleerd in de broncode van de connector (versie 17.0 en 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: flexigobe_shopify_seller_connector 20.0 (d7e627b4): data/ir_cron_data.xml
- Broncode van de module: flexigobe_shopify_seller_connector 17.0 (437257e3): data/ir_cron_data.xml
- 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): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
