Magento 2 Google Shopping Merchant API Sync Uitgelegd
Deze handleiding legt uit hoe de Google Shopping API-extensie je Magento-producten synchroniseert met Google Merchant Center in real-time.
XML Feed vs. API Sync
XML Feed (Google Shopping - Feed module)
- Magento genereert een XML-bestand met alle productgegevens
- De feed wordt geleverd aan Google via scheduled fetch (URL) of SFTP-upload
- Batch-gebaseerd: De volledige catalogus wordt elke keer verzonden
Ideaal voor: Webshops met stabiele prijzen en voorraad die updaten op een voorspelbaar schema (dagelijks, per uur). Eenvoudige setup, betrouwbaar, en werkt prima voor de meeste merchants.
API Sync (Deze add-on module)
- Productwijzigingen in Magento triggeren automatisch een sync
- Updates worden direct naar Google gestuurd via de Merchant API
- Event-driven: Alleen gewijzigde producten worden gesynchroniseerd
Ideaal voor: Webshops met frequente prijswijzigingen, dynamische voorraad, of real-time stock vanuit ERP/PIM-systemen. Houdt Google in sync zonder te wachten op de volgende geplande feed.
Beide Samen Gebruiken
Deze module is een add-on voor de Feed-module, geen vervanging. Veel webshops profiteren van het gebruik van beide:
- XML Feed: Zorgt dat Google altijd een complete, up-to-date baseline heeft van alle producten
- API Sync: Pusht kritieke wijzigingen (prijs, voorraad) direct naar Google
Deze combinatie geeft je de betrouwbaarheid van geplande feeds plus de snelheid van real-time updates.
Het Sync Proces
Overzicht
- Product opgeslagen in Magento - Je update een product in admin of via import
- Gemarkeerd voor sync - De indexer markeert het product als "needs update"
- Toegevoegd aan queue - Een cron-job pakt gemarkeerde producten op en voegt ze toe aan de queue
- Gesynchroniseerd naar Google - De queue consumer stuurt de data naar Google Merchant API
- Zichtbaar in Google Shopping - Wijzigingen verschijnen binnen enkele minuten in Google
Stap 1: Wijzigingsdetectie
Wanneer je een product opslaat in Magento (of voorraad update via import), markeert de extensie het automatisch voor synchronisatie. Dit gebeurt via Magento's indexer-systeem - dezelfde technologie die je categoriepagina's en zoekresultaten bijwerkt.
Wat triggert een sync:
- Product opslaan (admin of API)
- Voorraadwijziging
- Prijsupdate
- Elke attribuutwijziging die de feed beïnvloedt
Wat triggert geen sync:
- Producten niet in je feed (uitgefilterd op categorie, attribuut, etc.)
- Uitgeschakelde producten
- Niet-op-voorraad producten (indien geconfigureerd om uit te sluiten)
Stap 2: Queue Verwerking
De extensie synchroniseert niet direct wanneer je een product opslaat. In plaats daarvan gebruikt het Magento's message queue systeem:
- Cron-job draait elke paar minuten - Pakt gemarkeerde producten op
- Producten toegevoegd aan queue - Gegroepeerd in batches voor efficiëntie
- Queue consumer verwerkt - Stuurt data naar Google
Waarom een queue?
- Voorkomt timeout-problemen tijdens bulk imports
- Handelt rate limits netjes af
- Maakt retries bij fouten mogelijk
- Vertraagt je admin panel niet
Stap 3: Data Vergelijking
Voordat data naar Google wordt gestuurd, vergelijkt de extensie je huidige productdata met wat eerder is gesynchroniseerd:
- Haalt verse productdata op uit Magento
- Berekent een "vingerafdruk" (hash) van de data
- Vergelijkt met de opgeslagen vingerafdruk
- Synchroniseert alleen als er daadwerkelijk iets is gewijzigd
Waarom dit belangrijk is:
- Bespaart API-quota - geen onnodige calls naar Google
- Snellere verwerking - slaat ongewijzigde producten over
- Accurate tracking - je weet precies wat gesynchroniseerd is
Stap 4: Google API Call
Wanneer een product gesynchroniseerd moet worden:
- Transformeert Magento-data naar Google's formaat
- Stuurt een update-verzoek naar de Merchant API
- Registreert het antwoord (succes of fout)
- Update de productstatus in het grid
Sync Types
Volledige Product Sync
Update alle productattributen: titel, beschrijving, prijs, afbeeldingen, verzending, etc.
Gebruikt wanneer:
- Product wordt voor het eerst toegevoegd
- Elke niet-voorraad attribuutwijziging
- Handmatige sync vanuit admin grid
Alleen-Voorraad Sync
Update alleen prijs en beschikbaarheid - sneller en met hogere API-limieten.
Gebruikt wanneer:
- Alleen prijs wijzigt
- Alleen voorraad wijzigt
- Geplande voorraad-refresh
Product Statussen
In het admin grid (Marketing > Google Shopping API > Products) toont elk product een status:
| Status | Betekenis |
|---|---|
| Pending | Nieuw product, nooit gesynchroniseerd |
| Queued | In queue, wacht op verwerking |
| Synced | Succesvol gesynchroniseerd naar Google |
| Error | Sync mislukt - bekijk foutmelding |
| Pending Delete | Wordt verwijderd uit Google |
Timing
Wanneer verschijnen wijzigingen in Google?
Onder normale omstandigheden:
- Indexer markeert product: Direct (bij opslaan)
- Cron pakt op: Binnen 5 minuten
- Queue verwerkt: Binnen 1-2 minuten
- Google reflecteert wijziging: Binnen 5-30 minuten
Totaal: Meestal binnen 15 minuten
Wat kan vertragen?
- Grote queue-achterstand (bulk imports)
- Google API rate limits
- Cron draait niet
- Queue consumers draaien niet
Relatie met Feed Module
Deze module werkt naast de Google Shopping Feed-module, niet als vervanging:
| Feature | Feed Module | API Module |
|---|---|---|
| Databron | Gebruikt Feed module's productdata | Gebruikt Feed module's productdata |
| Attribuut mapping | Geconfigureerd in Feed module | Overgenomen van Feed module |
| Productfilters | Geconfigureerd in Feed module | Overgenomen van Feed module |
| Leveringsmethode | XML-bestand voor Google | Directe API-calls |
| Update snelheid | Afhankelijk van fetch-schema | Near real-time |
Belangrijk: Beide modules gebruiken dezelfde productdata-configuratie. Als een product is uitgesloten van je feed (via filters), wordt het ook niet gesynchroniseerd via de API.
Voor een gedetailleerde handleiding over het samen gebruiken van beide modules, inclusief hoe Offer IDs werken en data source configuratie, zie Feed en API Samen Gebruiken.
Configuratie Impact
Wat geconfigureerd is in Feed module (overgenomen)
- Attribuut mapping (welke Magento-attributen mappen naar Google-velden)
- Productfilters (welke producten in/uitsluiten)
- Categorie mapping
- Statische waarden (merk, conditie, etc.)
Wat geconfigureerd is in API module
- Google Cloud credentials (Service Account)
- Merchant ID en Data Source
- Sync intervallen en batch sizes
- Fout-retry instellingen
Foutafhandeling
Automatische Retries
Wanneer een sync faalt:
- Logt de fout met details
- Houdt het product in "Error" status
- Probeert opnieuw na een configureerbaar interval (standaard: 4 uur)
Veelvoorkomende Fouten
| Fout | Oorzaak | Oplossing |
|---|---|---|
Invalid price |
Prijsformaat probleem | Controleer prijs attribuut mapping |
Missing required field |
Verplicht Google-veld leeg | Controleer attribuut mapping voor titel, beschrijving, etc. |
Image not accessible |
Google kan afbeelding niet ophalen | Zorg dat afbeeldingen publiek toegankelijk zijn |
Product not found |
Product bestaat niet in data source | Verifieer data source configuratie |
Handmatige Interventie
Vanuit het admin grid kun je:
- Foutdetails bekijken - Klik op de status om de volledige fout te zien
- Enkel product opnieuw proberen - Gebruik de "Sync" actie
- Meerdere producten opnieuw proberen - Selecteer producten en gebruik mass action
Monitoring
Admin Grid
Marketing > Google Shopping API > Products
Toont alle producten met hun sync status, laatste sync tijd, en eventuele fouten.
CLI Commando's
# Controleer algemene sync status
bin/magento googleshopping:api:status --store=1
# Handmatig specifieke producten synchroniseren
bin/magento googleshopping:api:sync --store=1 --product-ids=1,2,3
# Test verbinding
bin/magento googleshopping:api:test-connection --store=1
Logs
Debug logging (indien ingeschakeld) schrijft naar:
var/log/googleshopping_api.log
Best Practices
Initiële Setup
- Configureer eerst de Feed module (attribuut mapping, filters)
- Stel API module credentials in
- Test de verbinding
- Gebruik "Initialize Products" om de sync-tabel te vullen
- Monitor de eerste batch op fouten
Dagelijkse Operaties
- Houd cron betrouwbaar draaiend
- Monitor het Products grid op fouten
- Controleer Google Merchant Center op afkeuringen
- Bekijk logs periodiek
Grote Catalogi
Voor webshops met 10.000+ producten:
- Verhoog batch size (tot 1000)
- Zorg dat queue consumers draaien
- Overweeg dedicated cron voor queue verwerking
- Initiële sync kan enkele uren duren
Probleemoplossing
Producten synchroniseren niet
- Controleer of cron draait:
bin/magento cron:run - Controleer of product in feed zit: Bekijk Feed module preview
- Controleer productstatus in grid: Zoek naar fouten
- Controleer queue:
bin/magento queue:consumers:list
Wijzigingen verschijnen niet in Google
- Verifieer dat product "Synced" status toont
- Controleer laatste sync tijd in grid
- Wacht 15-30 minuten tot Google verwerkt
- Controleer Merchant Center op productafkeuringen
Hoge foutpercentage
- Bekijk foutmeldingen in grid
- Controleer attribuut mapping in Feed module
- Verifieer dat alle verplichte velden gemapt zijn
- Test eerst met een enkel product
Verder Lezen
- Service Account Instellen - Configureer Google Cloud credentials
- Google Merchant Center Help - Officiële Google documentatie
- Merchant API Reference - Technische API details