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:
-
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.
-
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:
- Een Google Cloud-project - Een container voor je Google Cloud-resources
- De Merchant API ingeschakeld - Toestemming om Google's product-sync API te gebruiken
- Een serviceaccount - Een identiteit voor je Magento-applicatie
- Een JSON-sleutelbestand - De inloggegevens die je extensie gebruikt om te authenticeren
- 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.
- Ga naar Google Cloud Console
- Je ziet een Welkomstscherm met de link "Een project maken of selecteren"
- Klik op Een project selecteren (linksboven) of op de link "Een project maken of selecteren"
- In het dialoogvenster dat opent:
- Selecteer een bestaand project uit de lijst, of
- Klik op Nieuw project rechtsboven in het dialoogvenster
- 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
- Er verschijnt een melding rechtsboven - klik op Project selecteren om naar je nieuwe project te wisselen
- 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.
- Gebruik de zoekbalk bovenaan Google Cloud Console
- Typ "Merchant API"
- Klik op Merchant API onder "Marketplace" in de resultaten
- 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.
- Klik vanaf de API-detailpagina op Inloggegevens maken (rechtsboven)
- Op het scherm "Type inloggegevens":
- Welke API gebruikt u? → Merchant API (voorgeselecteerd)
- Welke gegevens gaat u gebruiken? → Selecteer Applicatiegegevens
- Klik op Volgende
- 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) |
- Klik op Maken en doorgaan
- Machtigingen (optioneel): Sla deze stap over - klik op Doorgaan
- 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.
- Ga naar API's en services → Inloggegevens in de linker zijbalk
- Scroll naar beneden naar de sectie Serviceaccounts
- Klik op het e-mailadres van je serviceaccount (bijv.
magento-google-shopping@jouw-project.iam.gserviceaccount.com) - Klik op het tabblad Sleutels bovenaan
- Klik op Sleutel toevoegen → Nieuwe sleutel maken
- Selecteer JSON als sleuteltype
- 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.
- Ga naar Google Merchant Center
- Klik op Instellingen (tandwiel-icoon) → Toegang en services
- Klik op Persoon toevoegen
- 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
- Formaat:
- Stel toegangsniveau in op Beheerder
- 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.
- Ga naar Google Merchant Center
- Navigeer naar Producten → Feeds (of Gegevensbronnen)
- Klik op Gegevensbron toevoegen
- Selecteer API als invoermethode
- 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")
- 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.
- Open het JSON-sleutelbestand in een teksteditor
- Kopieer de volledige inhoud (inclusief de accolades)
- Ga in Magento Admin naar Winkels → Configuratie → Magmodules → Google Shopping API
- 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 |
- Klik op Configuratie opslaan
- 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:
- Extensie leest JSON-sleutel - Haalt de privésleutel en het serviceaccount-e-mailadres op
- Maakt een JWT-token - Een ondertekend token dat toegang vraagt tot de Merchant API
- Wisselt JWT in voor toegangstoken - Google verifieert de handtekening en retourneert een toegangstoken
- Gebruikt toegangstoken voor API-aanroepen - Het token is ongeveer 1 uur geldig
- 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 serviceaccountprivate_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.
- Commit de JSON-sleutel nooit naar versiebeheer - Voeg het toe aan
.gitignore - Beperk toegang tot de sleutel - Deel alleen met teamleden die het nodig hebben
- Roteer sleutels periodiek - Verwijder oude sleutels en maak elke paar maanden nieuwe aan
- Gebruik aparte sleutels per omgeving - Gebruik geen productiesleutels in ontwikkeling
- Monitor gebruik - Controleer Google Cloud Console op ongebruikelijke activiteit
Sleutels Beheren
Een Sleutel Verwijderen
Als een sleutel gecompromitteerd is of niet meer nodig is:
- Ga naar IAM en beheer → Serviceaccounts
- Klik op het serviceaccount
- Ga naar het tabblad Sleutels
- Klik op het prullenbak-icoon naast de sleutel
- 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):
- Maak één serviceaccount aan
- Voeg het e-mailadres van het serviceaccount toe aan elk Merchant Center
- Gebruik dezelfde JSON-sleutel in Magento
- Configureer verschillende Merchant ID's per storeview
Het serviceaccount kan toegang krijgen tot elk Merchant Center waaraan het is toegevoegd.
Verder Lezen
- Google Cloud IAM Documentatie - Overzicht serviceaccounts
- Serviceaccountsleutels Maken - Officiële Google-documentatie
- Merchant API Authenticatie - API-authenticatiegids
- Merchant API Overzicht - Volledige API-documentatie
Meer Hulp Nodig?
Documentatie:
- Alle Helpartikelen - Volledig documentatieoverzicht
Support:
- Contact Support - Krijg hulp van ons team