Google Shopping - Merchant API

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)

  1. Magento genereert een XML-bestand met alle productgegevens
  2. De feed wordt geleverd aan Google via scheduled fetch (URL) of SFTP-upload
  3. 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)

  1. Productwijzigingen in Magento triggeren automatisch een sync
  2. Updates worden direct naar Google gestuurd via de Merchant API
  3. 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

  1. Product opgeslagen in Magento - Je update een product in admin of via import
  2. Gemarkeerd voor sync - De indexer markeert het product als "needs update"
  3. Toegevoegd aan queue - Een cron-job pakt gemarkeerde producten op en voegt ze toe aan de queue
  4. Gesynchroniseerd naar Google - De queue consumer stuurt de data naar Google Merchant API
  5. 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:

  1. Cron-job draait elke paar minuten - Pakt gemarkeerde producten op
  2. Producten toegevoegd aan queue - Gegroepeerd in batches voor efficiëntie
  3. 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:

  1. Haalt verse productdata op uit Magento
  2. Berekent een "vingerafdruk" (hash) van de data
  3. Vergelijkt met de opgeslagen vingerafdruk
  4. 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:

  1. Transformeert Magento-data naar Google's formaat
  2. Stuurt een update-verzoek naar de Merchant API
  3. Registreert het antwoord (succes of fout)
  4. 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:

  1. Logt de fout met details
  2. Houdt het product in "Error" status
  3. 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

  1. Configureer eerst de Feed module (attribuut mapping, filters)
  2. Stel API module credentials in
  3. Test de verbinding
  4. Gebruik "Initialize Products" om de sync-tabel te vullen
  5. 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

  1. Controleer of cron draait: bin/magento cron:run
  2. Controleer of product in feed zit: Bekijk Feed module preview
  3. Controleer productstatus in grid: Zoek naar fouten
  4. Controleer queue: bin/magento queue:consumers:list

Wijzigingen verschijnen niet in Google

  1. Verifieer dat product "Synced" status toont
  2. Controleer laatste sync tijd in grid
  3. Wacht 15-30 minuten tot Google verwerkt
  4. Controleer Merchant Center op productafkeuringen

Hoge foutpercentage

  1. Bekijk foutmeldingen in grid
  2. Controleer attribuut mapping in Feed module
  3. Verifieer dat alle verplichte velden gemapt zijn
  4. Test eerst met een enkel product

Verder Lezen

Artikel bijgewerkt:
star star star star star
star star star star star
Alexandru-Manuel Carabus
Magmodules sets the bar for Magento module quality and support—we check their catalog first for client feature requests, and they’re our first choice for licenses.
Google 11 Nov 2025
star star star star star
star star star star star
Matt Austin
Possibly the fastest support response times of any Magento Extension vendor. Great extensions too!
Google 09 Sep 2025
star star star star star
star star star star star
Jan Privé
Dankzij de heldere uitleg en snelle reactie van Magmodules kon mijn vraag, en dus mijn Magento-probleem, binnen enkele uren worden beantwoord. Doeltreffend, zonder moeilijke termen, gewoon zo als het zou moeten zijn.... Bedankt!
Google 05 Sep 2025
star star star star star
star star star star star
Denis Metzler
To evaluate a provider, it is not enough to consider only the product offered, but also its after-sales service, such as support and troubleshooting. Magmodules has been extremely satisfactory at all levels on multiple occasions and sets the bar at the top when comparing the competition.
Google 02 Sep 2025
star star star star star
star star star star star
Bleijenberg winkelinrichting en materialen
Goed bereikbaar, reageren snel en denken oplossingsgericht. Een aanrader.
Google 30 Jul 2025
star star star star star
star star star star star
Patrick Verduijn
Magmodules biedt plugins aan die van hoge kwaliteit zijn tegen een goede prijs, waar dit bedrijf in uitblinkt is de bereidheid om de zeldzame feedback & problemen met de plugins te willen onderzoeken, mee te willen denken in het debuggen van problemen en goede oplossingen toe te passen. In mijn decennium ervaring met Magento & 3th parties is Magmodules absoluut een uniqum binnen de markt.
Google 25 Jul 2025
star star star star star
star star star star star
Erik de Groot
Magemodules heeft hele sterke Magento extensies en een proactieve support. Al jaren heel erg tevreden over jullie service en producten!
Google 18 Jul 2025
star star star star star
star star star star star
René Zeuner
We are using the Mollie Magento extension from Magmodules. It works excellently without flaws. Very fast, competent and friendly support. Thanks!
Google 30 Jun 2025
star star star star star
star star star star star
R. U.
Erg goed team, reageren snel en duidelijk en hebben met toegang tot onze database erg goed geholpen (eigenlijk een gratis customization).
Google 18 Jun 2025
star star star star star
star star star star star
Hugo de Groot
Uitstekende support! Wij gebruiken o.a. de Rich Snippets Suite extensie voor onze Magento 2 webshop (Hyvä) en hadden een specifieke vraag over structured data op PLP-pagina’s. Binnen no-time kregen we een inhoudelijk en duidelijk antwoord. Zeer prettig contact en goed onderbouwde uitleg. Absoluut een betrouwbare partner voor Magento-extensies!
Google 13 Jun 2025