Google Shopping - Merchant API

Google Cloud Serviceaccount Instellen voor Marchant API

Deze handleiding legt uit hoe je een Google Cloud serviceaccount aanmaakt en de JSON-sleutel genereert die nodig is voor de Google Shopping API extensie om te authenticeren met Google Merchant Center.

Wat is Google Merchant Center?

Google Merchant Center is het platform van Google voor het beheren van je productgegevens. Wanneer je wilt dat je producten verschijnen in Google Shopping, Google Search of andere Google-diensten, upload je je productinformatie naar Merchant Center.

Traditioneel uploaden verkopers productgegevens via XML-feeds (geplande fetch of SFTP-upload). De Google Shopping API-extensie werkt anders: het synchroniseert je producten direct via de Google Merchant API, waardoor real-time updates mogelijk zijn wanneer je productgegevens in Magento veranderen.

Waarom Heb Je een Serviceaccount Nodig?

Er zijn twee manieren om te authenticeren met Google APIs:

  1. OAuth 2.0 (Gebruikersauthenticatie) - Vereist dat een gebruiker inlogt en toestemming geeft. Tokens verlopen en moeten handmatig worden vernieuwd. Niet geschikt voor geautomatiseerde server-naar-server communicatie.

  2. Serviceaccount (Applicatie-authenticatie) - Een speciaal Google-account dat je applicatie vertegenwoordigt, geen persoon. Het authenticeert automatisch met een privésleutel, wat het perfect maakt voor achtergrondprocessen zoals cron-jobs en queue-workers.

De Google Shopping API-extensie voert synchronisatie uit op de achtergrond zonder gebruikersinteractie. Een serviceaccount stelt de extensie in staat om 24/7 te authenticeren met Google, waarbij tokens automatisch worden vernieuwd wanneer nodig.

Kortom: Serviceaccounts maken het mogelijk dat je Magento-webshop autonoom communiceert met Google Merchant Center, zonder dat iemand hoeft in te loggen.

Wat Ga Je Aanmaken

Aan het einde van deze handleiding heb je:

  1. Een Google Cloud-project - Een container voor je Google Cloud-resources
  2. De Merchant API ingeschakeld - Toestemming om Google's product-sync API te gebruiken
  3. Een serviceaccount - Een identiteit voor je Magento-applicatie
  4. Een JSON-sleutelbestand - De inloggegevens die je extensie gebruikt om te authenticeren
  5. Merchant Center-toegang - Het serviceaccount gekoppeld aan je producten

Vereisten

Voordat je begint, zorg dat je het volgende hebt:

  • Een Google-account met toegang tot Google Cloud Console
  • Een Google Merchant Center-account met producten
  • Admin-toegang tot het Merchant Center
  • Admin-toegang tot je Magento-installatie

Stap 1: Maak een Google Cloud Project Aan

Google Cloud-projecten organiseren je resources en API's. Als je al een project hebt dat je wilt gebruiken, kun je doorgaan naar Stap 2.

  1. Ga naar Google Cloud Console
  2. Je ziet een Welkomstscherm met de link "Een project maken of selecteren"
  3. Klik op Een project selecteren (linksboven) of op de link "Een project maken of selecteren"
  4. In het dialoogvenster dat opent:
    • Selecteer een bestaand project uit de lijst, of
    • Klik op Nieuw project rechtsboven in het dialoogvenster
  5. Bij het aanmaken van een nieuw project:
    • Voer een projectnaam in (bijv. "Magento Google Shopping")
    • De Project-ID wordt automatisch gegenereerd (je kunt op Bewerken klikken om deze aan te passen)
    • Bovenliggende resource: Laat staan op "Geen organisatie" - dit is prima voor de meeste setups
    • Klik op Maken
  6. Er verschijnt een melding rechtsboven - klik op Project selecteren om naar je nieuwe project te wisselen
  7. Noteer je Project-ID - deze heb je later nodig

Stap 2: Schakel de Merchant API In

Google Cloud-projecten hebben standaard geen toegang tot API's. Je moet elke API die je wilt gebruiken expliciet inschakelen.

De Merchant API is Google's huidige API voor het beheren van producten in Merchant Center. Het heeft de oudere "Content API for Shopping" vervangen die wordt uitgefaseerd.

  1. Gebruik de zoekbalk bovenaan Google Cloud Console
  2. Typ "Merchant API"
  3. Klik op Merchant API onder "Marketplace" in de resultaten
  4. Klik op Inschakelen

Na het inschakelen zie je de API-detailpagina met Status: Ingeschakeld.

Let op: Gebruik niet "Content API for Shopping" - dat is de verouderde API. De juiste is Merchant API (servicenaam: merchantapi.googleapis.com).

Stap 3: Maak een Serviceaccount Aan

Een serviceaccount is als een robot-gebruiker - het heeft een e-mailadres en inloggegevens, maar wordt bestuurd door je applicatie in plaats van een persoon.

  1. Klik vanaf de API-detailpagina op Inloggegevens maken (rechtsboven)
  2. Op het scherm "Type inloggegevens":
    • Welke API gebruikt u? → Merchant API (voorgeselecteerd)
    • Welke gegevens gaat u gebruiken? → Selecteer Applicatiegegevens
  3. Klik op Volgende
  4. Vul de serviceaccountgegevens in:
Veld Waarde
Naam serviceaccount magento-google-shopping (of je eigen voorkeur)
Serviceaccount-ID Automatisch gegenereerd op basis van naam
Beschrijving Magento Google Shopping sync (optioneel)
  1. Klik op Maken en doorgaan
  2. Machtigingen (optioneel): Sla deze stap over - klik op Doorgaan
  3. Principals met toegang (optioneel): Sla deze stap over - klik op Gereed

Het serviceaccount is nu aangemaakt. Het e-mailadres ziet er zo uit: magento-google-shopping@jouw-project-id.iam.gserviceaccount.com

Stap 4: Genereer de JSON-Sleutel

Het JSON-sleutelbestand bevat de privésleutel van je serviceaccount. De extensie gebruikt dit om zijn identiteit te bewijzen aan Google.

  1. Ga naar API's en servicesInloggegevens in de linker zijbalk
  2. Scroll naar beneden naar de sectie Serviceaccounts
  3. Klik op het e-mailadres van je serviceaccount (bijv. magento-google-shopping@jouw-project.iam.gserviceaccount.com)
  4. Klik op het tabblad Sleutels bovenaan
  5. Klik op Sleutel toevoegenNieuwe sleutel maken
  6. Selecteer JSON als sleuteltype
  7. Klik op Maken

Het JSON-sleutelbestand wordt automatisch gedownload naar je computer (controleer je Downloads-map).

Na het aanmaken zie je de sleutel in de lijst met Status: Actief.

Belangrijk:

  • Bewaar dit bestand veilig - het geeft volledige toegang tot je serviceaccount
  • Je kunt de sleutel slechts één keer downloaden - als je hem kwijtraakt, moet je een nieuwe aanmaken
  • Als de sleutel gecompromitteerd is, verwijder hem dan onmiddellijk en maak een nieuwe aan

Stap 5: Koppel Serviceaccount aan Merchant Center

Het serviceaccount bestaat in Google Cloud, maar heeft niet automatisch toegang tot je Merchant Center. Je moet expliciet toestemming verlenen.

Zie het als het toevoegen van een nieuwe medewerker aan je team - ze moeten toegang krijgen tot de systemen waarmee ze gaan werken.

  1. Ga naar Google Merchant Center
  2. Klik op Instellingen (tandwiel-icoon) → Toegang en services
  3. Klik op Persoon toevoegen
  4. Voer het e-mailadres van het serviceaccount in:
    • Formaat: naam-serviceaccount@jouw-project-id.iam.gserviceaccount.com
    • Voorbeeld: magento-google-shopping@vast-cogency-486308-k7.iam.gserviceaccount.com
  5. Stel toegangsniveau in op Beheerder
  6. Klik op Persoon toevoegen

Na toevoegen wordt het serviceaccount weergegeven als Geverifieerd in de gebruikerslijst.

Waarom Beheerder-toegang? De extensie moet producten kunnen aanmaken, bijwerken en verwijderen. Standaard-toegang staat alleen het bekijken van producten toe, wat niet voldoende is voor synchronisatie.

Stap 6: Maak een API-Gegevensbron Aan

Voordat de extensie producten kan synchroniseren, moet je een gegevensbron aanmaken in Merchant Center die de API-gegevens ontvangt.

  1. Ga naar Google Merchant Center
  2. Navigeer naar ProductenFeeds (of Gegevensbronnen)
  3. Klik op Gegevensbron toevoegen
  4. Selecteer API als invoermethode
  5. Configureer de gegevensbron:
    • Doelland: Selecteer je doelmarkt (bijv. Nederland, België)
    • Taal: Selecteer de contenttaal (bijv. Nederlands)
    • Naam: Geef het een herkenbare naam (bijv. "Magento API Sync")
  6. Klik op Maken

Na het aanmaken, noteer het pad van de gegevensbron. Je hebt dit nodig voor de Magento-configuratie:

  • Formaat: accounts/{merchant_id}/dataSources/{datasource_id}
  • Voorbeeld: accounts/5544859096/dataSources/1234567890

Stap 7: Configureer de Magento Extensie

Nu heb je alles wat nodig is om de extensie te configureren.

  1. Open het JSON-sleutelbestand in een teksteditor
  2. Kopieer de volledige inhoud (inclusief de accolades)
  3. Ga in Magento Admin naar WinkelsConfiguratieMagmodulesGoogle Shopping API
  4. Configureer de instellingen:
Veld Waarde
Module inschakelen Ja
Merchant ID Je Merchant Center ID (bijv. 5544859096)
API Data Source Het pad van de gegevensbron uit Stap 6
Feed Label (Doelland) Landcode (bijv. NL, BE, DE)
Content Language Taalcode (bijv. nl, en, de)
Service Account JSON Plak de volledige JSON-sleutelinhoud
  1. Klik op Configuratie opslaan
  2. Klik op Test Connection om te verifiëren dat alles werkt

Bij succes zie je een groene bevestigingsmelding. Bij een fout, bekijk de sectie Probleemoplossing hieronder.

Hoe Authenticatie Werkt

Het begrijpen van de authenticatiestroom helpt bij het oplossen van problemen:

  1. Extensie leest JSON-sleutel - Haalt de privésleutel en het serviceaccount-e-mailadres op
  2. Maakt een JWT-token - Een ondertekend token dat toegang vraagt tot de Merchant API
  3. Wisselt JWT in voor toegangstoken - Google verifieert de handtekening en retourneert een toegangstoken
  4. Gebruikt toegangstoken voor API-aanroepen - Het token is ongeveer 1 uur geldig
  5. Automatisch vernieuwen - De extensie maakt automatisch nieuwe tokens aan wanneer nodig

Dit gebeurt allemaal op de achtergrond - je hoeft niets te doen na de initiële setup.

Inhoud van het JSON-Sleutelbestand

Ter referentie, dit is wat het gedownloade JSON-bestand bevat:

{
  "type": "service_account",
  "project_id": "jouw-project-id",
  "private_key_id": "abc123...",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
  "client_email": "jouw-serviceaccount@jouw-project-id.iam.gserviceaccount.com",
  "client_id": "123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/..."
}

De extensie gebruikt voornamelijk:

  • client_email - De identiteit van het serviceaccount
  • private_key - Wordt gebruikt om authenticatieverzoeken te ondertekenen

Probleemoplossing

"Data Source is not configured"

  • Maak een API-gegevensbron aan in Merchant Center (zie Stap 6)
  • Voer het volledige pad van de gegevensbron in de extensieconfiguratie in
  • Formaat: accounts/{merchant_id}/dataSources/{datasource_id}

"Permission denied" of 403-fouten

  • Controleer of het e-mailadres van het serviceaccount is toegevoegd aan Merchant Center
  • Zorg dat het toegangsniveau Beheerder is
  • Wacht een paar minuten na toevoegen - machtigingen kunnen tijd nodig hebben om door te werken

"API not enabled" fouten

  • Ga naar Google Cloud Console → API's en services → Bibliotheek
  • Zoek naar "Merchant API" en zorg dat deze is ingeschakeld
  • Controleer of je in het juiste project zit

"Invalid credentials" of authenticatiefouten

  • Controleer of je de volledige JSON hebt geplakt (inclusief accolades)
  • Controleer op extra witruimte of regelafbrekingen
  • Download de sleutel opnieuw en probeer het nogmaals

"Merchant ID not found"

  • Verifieer je Merchant ID in Merchant Center (Instellingen → Bedrijfsinformatie)
  • Zorg dat het serviceaccount toegang heeft tot het juiste Merchant Center

Test Connection mislukt

Voer het CLI-testcommando uit voor meer details:

bin/magento googleshopping:api:test-connection --store=1

Beveiligingsrichtlijnen

Het JSON-sleutelbestand is gevoelig - behandel het als een wachtwoord.

  1. Commit de JSON-sleutel nooit naar versiebeheer - Voeg het toe aan .gitignore
  2. Beperk toegang tot de sleutel - Deel alleen met teamleden die het nodig hebben
  3. Roteer sleutels periodiek - Verwijder oude sleutels en maak elke paar maanden nieuwe aan
  4. Gebruik aparte sleutels per omgeving - Gebruik geen productiesleutels in ontwikkeling
  5. Monitor gebruik - Controleer Google Cloud Console op ongebruikelijke activiteit

Sleutels Beheren

Een Sleutel Verwijderen

Als een sleutel gecompromitteerd is of niet meer nodig is:

  1. Ga naar IAM en beheerServiceaccounts
  2. Klik op het serviceaccount
  3. Ga naar het tabblad Sleutels
  4. Klik op het prullenbak-icoon naast de sleutel
  5. Bevestig de verwijdering

De sleutel is onmiddellijk ongeldig - elke applicatie die hem gebruikt zal stoppen met werken.

Extra Sleutels Aanmaken

Je kunt meerdere sleutels hebben voor hetzelfde serviceaccount. Dit is handig voor:

  • Sleutels roteren zonder downtime
  • Verschillende sleutels voor verschillende omgevingen
  • Tijdelijke toegang voor debugging

Meerdere Merchant Centers

Als je meerdere Merchant Centers beheert (bijv. voor verschillende landen of merken):

  1. Maak één serviceaccount aan
  2. Voeg het e-mailadres van het serviceaccount toe aan elk Merchant Center
  3. Gebruik dezelfde JSON-sleutel in Magento
  4. Configureer verschillende Merchant ID's per storeview

Het serviceaccount kan toegang krijgen tot elk Merchant Center waaraan het is toegevoegd.

Verder Lezen

Meer Hulp Nodig?

Documentatie:

Support:

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