Waar hij staat en wanneer hij start
Waar staat de knop Producten synchroniseren?
Open Shopify › Configuratie › Winkels (Shopify › Configuration › Stores) en ga naar het formulier van de winkel, in het scherm Shopify-instanties (Shopify Instances): daar staat de knop. Om bij het menu te komen heb je rechten nodig: het onderdeel Configuratie (Configuration) vraagt Operator en het onderdeel Shopify vraagt Lezer (Viewer); ontbreekt er een, dan zie je dat onderdeel niet. De knop heeft geen zichtbaarheidsvoorwaarde en bestaat in Odoo 17, 18, 19 en 20.

Producten synchroniseren, voor Odoo 17, 18, 19 en 20.Moet je hem met de hand indrukken?
Er is ook een automatische weg: de geplande taak Shopify-producten synchroniseren (Shopify Sync Products) komt elk uur bij dezelfde actie uit, maar staat bij de installatie uitgeschakeld; zolang dat zo blijft, draait hij niet vanzelf. Daarnaast roept de taak Shopify-webhooks verwerken (Shopify Process Webhooks), die elke minuut draait en bij de installatie actief staat, een andere methode van de module aan: een methode die bij Shopify specifieke producten op hun identificatie opvraagt, één voor één, en de catalogus niet pagina voor pagina doorloopt. Op Producten synchroniseren drukken is de manier om de ronde per pagina te starten wanneer je dat wilt, zonder op de taak te wachten.
Hoe heet de knop met Odoo in een andere taal?
Met Odoo in het Nederlands heet hij Producten synchroniseren. Het volgende schema toont ook de vertaling in het Spaans, Duits, Frans, Italiaans en Portugees.


Wat hij controleert en wat er verandert
In Odoo 20 doet de module dit bij het indrukken van de knop:
Wat doet hij meteen na de start?
Hij opent een regel in het synchronisatielogboek, van het type producten en in uitvoering, en bereidt een query naar Shopify voor. Per product vraagt de query titel, vendor, producttype, status, handle, beschrijving, tags, bijwerkdatum, uitgelichte afbeelding, opties en varianten (SKU, titel, prijs, vergelijkingsprijs, barcode, voorraadhoeveelheid, gekozen opties, voorraadartikel en afbeelding). De producten komen gesorteerd op bijwerkdatum binnen. Voordat hij elk product opslaat, zorgt de module ervoor dat het al zijn varianten heeft.
Haalt hij elke keer de hele catalogus op?
Dat hangt af van het veld Laatste productsynchronisatie (Last Product Sync), dat je op het winkelformulier en in de lijst Shopify-instanties ziet, alleen-lezen: de code vult het in, niet jij. Is het leeg, dan gaat de query zonder datumfilter. Heeft het een waarde, dan vraagt de module alleen de producten op die sinds die datum zijn bijgewerkt (die datum inbegrepen). Als de ronde helemaal is afgerond, wordt het veld de huidige tijd.
Wat gebeurt er als er meer producten zijn dan pagina's?
Twee instellingen bepalen de omvang van de ronde, op het winkelformulier, tabblad Bewerkingen (Operations), groep Synchronisatie-instellingen (Sync Settings). Paginagrootte (Page Size) is standaard 50; de help waarschuwt dat Shopify de query boven 100 afwijst en dat een grote pagina in een query met veel informatie de kostenlimiet kan overschrijden, en de knop vraagt nooit meer dan 100 per pagina. Max. pagina's (Max Pages) is standaard 20. De ronde stopt wanneer Shopify geen pagina's meer heeft of wanneer dat maximum is bereikt.
Wordt de ronde afgebroken terwijl er nog pagina's openstaan, dan laat de module op het winkelformulier een bericht achter dat de ronde bij de paginalimiet is gestopt en vanaf welke datum de volgende verdergaat. Het veld Laatste productsynchronisatie wordt dan de bijwerkdatum van het laatst gelezen product, mits die datum later is dan de opgeslagen datum (of er geen was opgeslagen); is dat niet zo, dan wordt het de huidige tijd.
Verstoort een product dat mislukt de synchronisatie?
Nee. Elk product wordt afzonderlijk opgeslagen: mislukt er één, dan slaat de module het over, laat een waarschuwing achter in het serverlogboek en gaat door met het volgende. Aan het einde noteert de regel in het synchronisatielogboek alleen de opgeslagen producten als bijgewerkt; de overgeslagen tellen niet als fouten, dus een geslaagde regel sluit niet uit dat er een is overgeslagen. Daarvoor dient de waarschuwing in het serverlogboek.
Wanneer hij met een fout stopt
Wat gebeurt er als de aanroep naar Shopify mislukt?
Elke aanroep krijgt maximaal drie pogingen. Antwoordt Shopify met een 401 (het token is niet meer geldig) en kan de winkel het vernieuwen, dan vernieuwt de module het en probeert hij nog één keer. Antwoordt Shopify met een 429 (ritmelimiet), dan wacht hij volgens de header Retry-After en probeert hij opnieuw, met een maximale wachttijd van dertig seconden. Elk antwoord met code 400 of hoger dat zo niet wordt opgelost, stopt de aanroep met een fout. Komt de fout uit de productenlus, dan blijft de logregel als mislukt staan met de tekst van de fout (ingekort tot maximaal 2000 tekens), wordt de fout opnieuw opgeworpen zodat de actie stopt en wordt Laatste productsynchronisatie niet bijgewerkt.
En als FlexigoTech Cloud de verbinding pauzeert?
Loopt de verbinding van de winkel via FlexigoTech Cloud, dan gaan de aanroepen via de relay en maakt Odoo geen rechtstreekse verbinding met de winkel. Pauzeert de dienst, dan stopt de hele ronde, wordt er geen enkel product overgeslagen en wordt de logregel verwijderd in plaats van als mislukt achter te blijven.
Wat je nodig hebt om hem te gebruiken
De module is een eenmalige aankoop per Odoo-versie en is gepubliceerd voor 17, 18, 19 en 20; de prijs van elke versie staat op de productpagina en op de modulepagina. Daarnaast heb je het abonnement op FlexigoTech Cloud nodig, plan Connector: € 49 per maand of € 490 per jaar excl. btw, tot 3 accounts van het platform (plan Pro: € 98 per maand of € 980 per jaar, tot 10). De verbinding slaat de inloggegevens versleuteld op, bewaakt de synchronisatie en waarschuwt per e-mail als er iets misgaat. Zonder abonnement, of met een opgeschorte dienst, stopt wat het abonnement levert; de gegevens blijven in je Odoo. Koop je in de Odoo App Store, dan koop je elke Odoo-versie daar. Heb je hulp nodig bij het implementeren van Odoo of het afstemmen van de integratie op je catalogus, dan implementeert FlexigoTech Odoo 17, 18, 19 en 20 en ontwikkelt het connectoren en integraties op maat.
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 (03641761): views/shopify_instance_views.xml
- Broncode van de module: flexigobe_shopify_seller_connector 20.0 (03641761): models/shopify_instance.py
- Broncode van de module: flexigobe_shopify_seller_connector 20.0 (03641761): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
