Voor een van mijn klanten heb ik recent een handige integratie gebouwd tussen een Drupal Commerce webshop en Google Merchant Center. Hierdoor kunnen producten automatisch worden ingelezen door Google en zichtbaar worden in de zoekresultaten en Google Shopping. In deze blog vertel ik hoe ik dat heb aangepakt.
Producten aanbieden via een CSV-bestand
Google Merchant Center werkt met gestructureerde data. De meest gebruikte en eenvoudigste manier is een CSV-bestand dat elke dag door Google wordt ingelezen. In Drupal heb ik gebruikgemaakt van de volgende modules om dit te bereiken:
- views_data_export: om de data als CSV te kunnen exporteren via Views.
- csv_serialization: om het CSV-bestand juist te formatteren.
- media_thumbnail_url_formatter: om afbeeldingslinks correct en als absolute URL te tonen.
Daarnaast zijn de modules REST en Serialization uit Drupal core nodig om een REST endpoint te kunnen opzetten.
Een Drupal view maken met de juiste velden
Ik heb een nieuwe View aangemaakt die alleen gepubliceerde producten toont. Deze View exporteert een CSV-bestand met daarin alle informatie die Google nodig heeft. De volgende velden zijn opgenomen:
- id: dit is het artikelnummer (SKU).
- title, description, link: standaardvelden in Views.
- image_link: hier toon ik de eerste afbeelding van het veld
field_product_images
, geformatteerd als absolute URL via de media_thumbnail_url_formatter. - additional_image_link: opnieuw hetzelfde veld, maar nu worden alle andere afbeeldingen getoond, gescheiden door een komma. De eerste afbeelding sla ik hierbij over.
- availability: dit veld heb ik herschreven zodat het "in_stock" toont als er voorraad is, en "out_of_stock" als dat niet zo is. Dit baseer ik op het veld
field_stock
. - price: de adviesprijs, geformatteerd als "xx.xx EUR". Als deze niet is ingevuld, gebruik ik de standaardprijs.
- sale_price: deze wordt alleen gevuld als er zowel een standaardprijs als een adviesprijs is.
Export instellen en koppelen met Google
De View is ingesteld op een pad dat een CSV-bestand teruggeeft. Voor extra veiligheid heb ik een authenticatielaag toegevoegd.
De CSV gebruikt het sluisteken (|) als scheidingsteken tussen kolommen. Deze seperator heb ik ook ingesteld in Google Merchant Center, zodat deze de gegevens correct kan inlezen.
In Google Merchant Center heb ik de URL van de CSV ingevoerd bij de gegevensbron. Vervolgens heb ik ingesteld dat de gegevens elke nacht om 00:00 uur worden opgehaald en verwerkt. Zo blijven de producten op Google altijd actueel.
Tot slot
Deze oplossing zorgt ervoor dat de klant geen omkijken meer heeft naar het uploaden van productfeeds. Nieuwe of aangepaste producten worden automatisch opgepikt door Google. Werk je ook met Drupal Commerce en wil je jouw producten zichtbaar maken in Google Shopping? Dan is deze aanpak zeker het proberen waard.