Automatisation Google Sheets vers Shopware 6 avec n8n : import de fabricants
- Ce workflow n8n a pour objectif d'automatiser l'importation de plusieurs fabricants depuis Google Sheets vers Shopware 6, facilitant ainsi la gestion des données produits pour les entreprises de e-commerce. Dans un contexte où la mise à jour manuelle des informations peut être fastidieuse et source d'erreurs, cette automatisation permet de gagner un temps précieux et de réduire les risques d'inexactitudes. En utilisant ce workflow, les utilisateurs peuvent facilement transférer des données de fabricants, y compris leurs logos, directement dans leur plateforme Shopware 6.
- Le processus débute par un déclencheur manuel, permettant à l'utilisateur d'exécuter le workflow à tout moment. Ensuite, les paramètres sont configurés via le noeud 'Settings'. Le noeud 'Get Manufacturer from Google Sheet' récupère les informations des fabricants depuis une feuille Google, tandis que 'Loop Over Manufacturers' permet de traiter chaque fabricant individuellement. Si un logo est présent, le noeud 'Upload Manufacturer Logo' s'assure que celui-ci est téléchargé avant d'importer les données du fabricant via le noeud 'Import Manufacturer'. Ce workflow utilise des requêtes HTTP pour communiquer avec l'API de Shopware, garantissant ainsi une intégration fluide.
- Les bénéfices business de cette automatisation n8n sont multiples : réduction des erreurs humaines, gain de temps considérable dans la gestion des produits, et une mise à jour instantanée des informations sur la plateforme e-commerce. En adoptant ce workflow, les entreprises peuvent se concentrer sur leur croissance tout en assurant une gestion efficace de leurs données.
Workflow n8n Google Sheets, Shopware, e-commerce : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Google Sheets, Shopware, e-commerce : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": "xLjE4IkQXARXOCZy",
"meta": {
"instanceId": "24bd2f3b51439b955590389bfa4dd9889fbd30343962de0b7daedce624cf4a71"
},
"name": "Import multiple Manufacturers from Google Sheets to Shopware 6",
"tags": [
{
"id": "Bpo3iitXqy2zfvPW",
"name": "tutorial",
"createdAt": "2024-01-06T22:57:17.318Z",
"updatedAt": "2024-01-06T22:57:17.318Z"
},
{
"id": "NfcTamKf2RPwzXbo",
"name": "automate-everything",
"createdAt": "2024-02-14T20:01:44.966Z",
"updatedAt": "2024-02-14T20:01:44.966Z"
},
{
"id": "2Vgn1rq99D9L11Gq",
"name": "submitted",
"createdAt": "2024-02-15T16:09:47.798Z",
"updatedAt": "2024-02-15T16:09:47.798Z"
}
],
"nodes": [
{
"id": "460ed5fb-cc70-41ed-b6e2-07bc2266603f",
"name": "When clicking \"Execute Workflow\"",
"type": "n8n-nodes-base.manualTrigger",
"position": [
340,
360
],
"parameters": {},
"typeVersion": 1
},
{
"id": "291e6fc4-31b4-4c7c-91e8-261581664759",
"name": "Settings",
"type": "n8n-nodes-base.set",
"position": [
620,
360
],
"parameters": {
"fields": {
"values": [
{
"name": "shopware_url",
"stringValue": "https://your-shopware-url.com"
},
{
"name": "default_language_code",
"stringValue": "de_DE"
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "38f62300-bbc9-4c2e-a1ba-1d1a49e9cecc",
"name": "Create Import Request Body",
"type": "n8n-nodes-base.code",
"position": [
1260,
360
],
"parameters": {
"jsCode": "// importing crypto package to create md5 hashes for the media ids\nconst crypto = require('crypto');\nconst md5 = data => crypto.createHash('md5').update(data).digest(\"hex\")\n\nfunction addTranslation(translations, code, name, description) {\n return translations = {\n ...translations,\n [code]: {\n ...name && {\n name: name\n },\n ...description && {\n description: description\n }\n }\n }\n}\n\nfor (const item of $input.all()) {\n const { name, website, description, logo_url } = item.json\n\n // If you add another language to the Google Sheet, extract values here\n const { translation_language_code_1, translation_language_code_2, translation_language_code_3, translation_name_1, translation_name_2, translation_name_3, translation_description_1, translation_description_2, translation_description_3 } = item.json\n \n let translations = {}\n\n if(translation_language_code_1 && (translation_name_1 || translation_description_1)){\n translations = addTranslation(translations, translation_language_code_1, translation_name_1, translation_description_1)\n }\n\n if(translation_language_code_2 && (translation_name_2 || translation_description_2)){\n translations = addTranslation(translations, translation_language_code_2, translation_name_2, translation_description_2)\n }\n\n if(translation_language_code_3 && (translation_name_3 || translation_description_3)){\n translations = addTranslation(translations, translation_language_code_3, translation_name_3, translation_description_3)\n }\n\n //If you add another language to the Google Sheet, call addTranslation with the values of the new language as already done above with three languages\n \n item.json.manufacturer = {\n entity: \"product_manufacturer\",\n action: \"upsert\",\n payload: [\n {\n name: name,\n link: website,\n description: description,\n ...Object.keys(translations).length && {\n translations: translations\n },\n ...logo_url && { \n media:{\n id: md5(\"media-\"+item.json.name)\n }\n }\n }\n ]\n }\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "2e6d1b94-ffb0-46bf-8197-32865764e753",
"name": "Upload Manufacturer Logo",
"type": "n8n-nodes-base.httpRequest",
"position": [
2300,
360
],
"parameters": {
"url": "={{ $('Settings').item.json.shopware_url }}/api/_action/media/{{ $('Loop Over Manufacturers').item.json.manufacturer.payload[0].media.id }}/upload",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $('Get Manufacturer from Google Sheet').item.json.logo_url }}"
}
]
},
"genericAuthType": "oAuth2Api",
"queryParameters": {
"parameters": [
{
"name": "extension",
"value": "={{ $('Get Manufacturer from Google Sheet').item.json.logo_url.split(\".\").pop() }}"
},
{
"name": "fileName",
"value": "={{ $('Get Manufacturer from Google Sheet').item.json.name }}"
}
]
}
},
"credentials": {
"oAuth2Api": {
"id": "hrFvifgKqhhV11RK",
"name": "SW6 Demo"
}
},
"typeVersion": 4.1
},
{
"id": "6c219e67-1547-475a-aa4f-0018d10ccf5f",
"name": "Import Manufacturer",
"type": "n8n-nodes-base.httpRequest",
"position": [
1800,
380
],
"parameters": {
"url": "={{ $('Settings').item.json.shopware_url }}/api/_action/sync",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "import-manufacturer",
"value": "={{ $json.manufacturer }}"
}
]
},
"genericAuthType": "oAuth2Api",
"queryParameters": {
"parameters": [
{
"name": "_response",
"value": "details"
}
]
}
},
"credentials": {
"oAuth2Api": {
"id": "hrFvifgKqhhV11RK",
"name": "SW6 Demo"
}
},
"typeVersion": 4.1
},
{
"id": "f4dc392f-8679-4624-a045-ff560f282f5f",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
540,
240
],
"parameters": {
"width": 271,
"height": 330,
"content": "## Settings\n**Todo**: Configure your Shopware URL"
},
"typeVersion": 1
},
{
"id": "15b857a8-ef6a-4212-ac73-7ab16ffcb6e5",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
900,
120
],
"parameters": {
"width": 272,
"height": 450,
"content": "## Google Sheet\n**Todo:** Create a Google Sheet with the columns:\n- name (**unique**)\n- website\n- description\n- logo_url"
},
"typeVersion": 1
},
{
"id": "52f5804c-65a9-4772-99e5-fdde53ff3f3d",
"name": "Loop Over Manufacturers",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1520,
360
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "f37d7f57-b86b-4296-9114-0a1b97178bc9",
"name": "Get Manufacturer from Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
980,
360
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Qmsjs8usT90fPNnCIaI605W77zoKkOB3t3i8UsdpA5Q/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Qmsjs8usT90fPNnCIaI605W77zoKkOB3t3i8UsdpA5Q",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Qmsjs8usT90fPNnCIaI605W77zoKkOB3t3i8UsdpA5Q/edit?usp=drivesdk",
"cachedResultName": "SW6 Manufacturer"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "dmSqFI4zNuhZqIvL",
"name": "Google Sheets account"
}
},
"typeVersion": 4.2
},
{
"id": "dfe522c5-f481-4bc1-ba95-85f8f471b20a",
"name": "If has Logo",
"type": "n8n-nodes-base.if",
"position": [
2040,
380
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1cd0654f-b088-420a-be28-4468dc901890",
"operator": {
"type": "array",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.data['import-manufacturer'].result[0].entities.media }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "b006dce3-16c6-4ebb-b752-67e5972841f5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1740,
60
],
"parameters": {
"height": 499.67801857585135,
"content": "## Shopware Manufacturer Import\n**Todo**: Connect your Shopware Account by creating a [Shopware Integration](https://docs.shopware.com/en/shopware-6-en/settings/system/integrationen) and using a Generic OAuth2 API Authentication with Grant Type \"Client Credentials\" to authenticate the request. The Access Token URL is https://*your-shopware-domain.com*/api/oauth/token."
},
"typeVersion": 1
},
{
"id": "681e7c0a-6e6f-4896-8e86-6eacfc4fd2ab",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2240,
160
],
"parameters": {
"height": 399.1455108359133,
"content": "## Shopware Manufacturer Logo Upload\n**Todo**: Connect your Shopware Account as you did two nodes before."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "1d0510a7-b383-481a-801b-f0f77f144858",
"connections": {
"Settings": {
"main": [
[
{
"node": "Get Manufacturer from Google Sheet",
"type": "main",
"index": 0
}
]
]
},
"If has Logo": {
"main": [
[
{
"node": "Upload Manufacturer Logo",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Manufacturers",
"type": "main",
"index": 0
}
]
]
},
"Import Manufacturer": {
"main": [
[
{
"node": "If has Logo",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Manufacturers": {
"main": [
[],
[
{
"node": "Import Manufacturer",
"type": "main",
"index": 0
}
]
]
},
"Upload Manufacturer Logo": {
"main": [
[
{
"node": "Loop Over Manufacturers",
"type": "main",
"index": 0
}
]
]
},
"Create Import Request Body": {
"main": [
[
{
"node": "Loop Over Manufacturers",
"type": "main",
"index": 0
}
]
]
},
"When clicking \"Execute Workflow\"": {
"main": [
[
{
"node": "Settings",
"type": "main",
"index": 0
}
]
]
},
"Get Manufacturer from Google Sheet": {
"main": [
[
{
"node": "Create Import Request Body",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Google Sheets, Shopware, e-commerce : pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises de e-commerce utilisant Shopware 6, ainsi qu'aux équipes marketing et techniques cherchant à automatiser la gestion de leurs données produits. Un niveau technique intermédiaire est recommandé pour la mise en place et la personnalisation du workflow.
Workflow n8n Google Sheets, Shopware, e-commerce : problème résolu
Ce workflow résout le problème de la gestion manuelle des données de fabricants, qui peut être long et sujet à des erreurs. En automatisant l'importation depuis Google Sheets vers Shopware 6, les utilisateurs éliminent les frustrations liées à la mise à jour des informations, réduisent les risques d'inexactitudes et obtiennent des résultats concrets en termes de productivité et d'efficacité opérationnelle.
Workflow n8n Google Sheets, Shopware, e-commerce : étapes du workflow
Étape 1 : Le workflow commence par un déclencheur manuel qui permet à l'utilisateur de l'exécuter à la demande.
- Étape 1 : Les paramètres sont configurés dans le noeud 'Settings'.
- Étape 2 : Le noeud 'Get Manufacturer from Google Sheet' récupère les données des fabricants.
- Étape 3 : 'Loop Over Manufacturers' traite chaque fabricant un par un.
- Étape 4 : Le noeud 'If has Logo' vérifie la présence d'un logo.
- Étape 5 : Si un logo est présent, le noeud 'Upload Manufacturer Logo' le télécharge.
- Étape 6 : Enfin, le noeud 'Import Manufacturer' envoie les données du fabricant à Shopware 6 via une requête HTTP.
Workflow n8n Google Sheets, Shopware, e-commerce : guide de personnalisation
Pour personnaliser ce workflow, commencez par ajuster les paramètres dans le noeud 'Settings' pour correspondre à vos besoins spécifiques. Modifiez l'ID du document et le nom de la feuille dans le noeud 'Get Manufacturer from Google Sheet' pour pointer vers votre propre Google Sheet. Si vous souhaitez changer le format des données importées, adaptez le code dans le noeud 'Create Import Request Body'. Assurez-vous également que les URL et les paramètres d'authentification dans les noeuds 'Upload Manufacturer Logo' et 'Import Manufacturer' sont correctement configurés pour votre instance Shopware 6. Enfin, pour sécuriser le flux, envisagez d'ajouter des vérifications supplémentaires ou des notifications en cas d'erreur.