Voor de eerste run
Staat uitgeschakeld na installatie
De taak Shopify-orders synchroniseren draait elke 5 minuten, maar wordt uitgeschakeld geïnstalleerd: zolang niemand hem activeert, zijn er geen runs. Hij bestaat in de versies 17, 18, 19 en 20. In Odoo 17.0 is hij ingesteld om zich eindeloos te herhalen.

De naam van de taak hangt af van de taal van je Odoo: met Odoo in het Nederlands is het Shopify-orders synchroniseren; in het Duits Shopify-Bestellungen synchronisieren; in het Frans Synchroniser les commandes Shopify; in het Italiaans Sincronizza ordini Shopify; in het Portugees Sincronizar encomendas Shopify.

Alleen een beheerder voert hem uit
Het eerste wat de methode controleert, is of degene die hem uitvoert systeembeheerder is. Zo niet, dan stopt hij met Only an administrator can run this scheduled action. en kijkt hij naar geen enkele winkel.
Niet alle winkels komen aan bod
De taak behandelt alleen winkels die actief zijn, waarvoor ordersynchronisatie is ingeschakeld en die een toegangstoken of het API-geheim van de app bewaren. De code legt de laatste eis uit: een winkel met klantgegevens heeft misschien geen opgeslagen token totdat de eerste aanroep er een aanmaakt, dus het volstaat dat hij inloggegevens heeft. Dat filter bepaalt wie meedoet.
De winkelkaarten open je via Shopify › Configuratie › Winkels. Elk deel van het menu vraagt een recht: Configuratie vraagt Operator en Shopify vraagt Lezer. Heb je een van beide niet, dan zie je dat deel niet.

Wat er bij elke run gebeurt
Een rustige winkel doorloopt niet zijn hele historie
De eerste zoekopdracht combineert de importvoorwaarden van de winkel met een datumfilter. Vindt hij niets, dan herhaalt de code de zoekopdracht zonder datumfilter alleen als de winkel nog nooit orders heeft geïmporteerd. Had hij er al wel eens een geïmporteerd, dan eindigt de run daar: de code beschouwt dat resultaat als de normale toestand van een winkel zonder activiteit, en zonder filter zoeken zou bij elke run de historie vanaf de oudste order doorlopen.
Nul orders is geen fout, maar laat wel een bericht achter
Brengt de run geen enkele order binnen (ook niet na de zoekopdracht zonder filter, als de winkel nog nooit iets had geïmporteerd), dan behandelt de code dat niet als een storing en laat hij een bericht achter op de winkelkaart: De Shopify-ordersynchronisatie gaf 0 orders terug voor …. Controleer of deze app is verbonden met de verwachte shop en voeg de scope read_all_orders toe als u orders van ouder dan 60 dagen nodig hebt. In plaats van de puntjes staat het domein van de winkel. In dat geval verandert de datum van de laatste synchronisatie niet.
Zie je al dagen geen orders, lees dan dat bericht: het vraagt je te controleren of de app met de juiste winkel is verbonden en, als je orders van meer dan 60 dagen nodig hebt, de scope read_all_orders toe te voegen.
Bij afbreken door de paginalimiet gaat de datum niet terug
Brengt de run orders binnen, dan bewaart hij de datum van de laatste synchronisatie, zet hij de teller van opeenvolgende fouten op nul en wist hij de laatste fout. Is hij gestopt door de paginalimiet, dan bewaart hij de datum van de laatst geïmporteerde order in plaats van het huidige tijdstip, op voorwaarde dat die later is dan de laatst bewaarde synchronisatie (of dat er geen was); zo niet, dan bewaart hij het huidige tijdstip. Zo gaat de datum niet achteruit: de code voorkomt daarmee dat een afgebroken run die aan het begin van de historie begon, die opnieuw moet doorlopen terwijl de orders van vandaag wachten.
In dat geval laat de taak bovendien een bericht achter op de winkelkaart dat er nog orders openstaan en vanaf welke datum de volgende run verdergaat.
De ene winkel na de andere, en bij een echte fout blijft er een spoor
De taak loopt de winkels een voor een langs en roept de synchronisatie van elke winkel aan binnen een blok dat fouten opvangt. Gebeurt er een onverwachte fout, dan telt de winkel er een bij zijn teller van opeenvolgende fouten op en bewaart hij de laatste fout. De fout stijgt door naar de taak, die hem met de naam van de winkel in het serverlogboek noteert en doorgaat met de volgende: de storing van een winkel houdt de andere niet tegen.
Er zijn twee uitzonderingen. Heeft FlexigoTech Cloud de synchronisatie gepauzeerd, dan verwerpt de code het logboek van die run zodat het niet als mislukt blijft staan. En een eigen melding van de module, van het soort dat Odoo in een foutdialoog toont, telt niet mee in de teller van opeenvolgende fouten.
Als hij niets lijkt te doen
- Controleer of de taak actief is: hij wordt uitgeschakeld geïnstalleerd.
- Controleer of degene die hem uitvoert systeembeheerder is.
- Onthoud wat de taak van elke winkel vraagt: actief zijn, ordersynchronisatie ingeschakeld hebben en een toegangstoken of het geheim van de app bewaren. De kaarten open je via
Shopify › Configuratie › Winkels. - Lees de berichten op de winkelkaart: dat over nul orders zegt je wat je moet controleren.
- Onthoud dat zonder abonnement of met opgeschorte dienst stopt wat het abonnement levert; de gegevens blijven in je Odoo.
Abonnement en hulp
De module is een eenmalige aankoop per versie en heeft het abonnement op FlexigoTech Cloud nodig: plan Connector, € 49 per maand of € 490 per jaar excl. btw, tot 3 accounts van het platform. De verbinding loopt via FlexigoTech Cloud, dat de inloggegevens versleuteld bewaart, de synchronisatie bewaakt en per e-mail waarschuwt als die faalt. De module is gepubliceerd voor Odoo 17, 18, 19 en 20; bekijk de prijs per versie op de Odoo Apps-pagina of op de pagina van de module.
Voor de voorraad is er een ander artikel: wat de voorraadknop van de module doet. Wil je Odoo met Shopify implementeren of een maatwerkconnector, dan implementeert FlexigoTech Odoo 17, 18, 19 en 20 en ontwikkelt het connectors en integraties op maat.
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/precios.html
- flexigotech.com/en/services.html
