Automatisez l'importation de fabricants de Google Sheets vers Shopware 6

Ce workflow vous permet d'automatiser l'importation des données de fabricants depuis Google Sheets directement dans Shopware 6, optimisant ainsi vos processus d'intégration de données. Il simplifie la gestion des informations des fabricants en permettant une synchronisation fluide et sans erreur entre les deux plateformes. Grâce à ce workflow, vous économisez du temps précieux et réduisez les erreurs humaines, tout en assurant que votre base de données de fabricants est toujours à jour et précise.

65,587 vues
18,995 copies
Intégration

Documentation Complète

📋 Automatisez l'importation de fabricants de Google Sheets vers Shopware 6

💡 Description

Ce workflow vous permet d'automatiser l'importation des données de fabricants depuis Google Sheets directement dans Shopware 6, optimisant ainsi vos processus d'intégration de données. Il simplifie la gestion des informations des fabricants en permettant une synchronisation fluide et sans erreur entre les deux plateformes. Grâce à ce workflow, vous économisez du temps précieux et réduisez les erreurs humaines, tout en assurant que votre base de données de fabricants est toujours à jour et précise.

📈 Impact & ROI: Ce workflow réduit significativement le temps passé sur l'importation manuelle des données et minimise les erreurs, augmentant ainsi l'efficacité opérationnelle et améliorant la précision des informations des fabricants dans votre système Shopware.

🚀 Fonctionnalités Clés

  • ✅ Importation automatisée des données des fabricants
  • ✅ Synchronisation fluide avec Shopware 6
  • ✅ Réduction des erreurs humaines
  • ✅ Mise à jour en temps réel

📊 Architecture Technique

12
Nodes
8
Connexions
3
Services

🔌 Services Intégrés

Google SheetsShopwareHTTP Request

🔧 Composition du Workflow

NodeTypeDescription
When clicking "Execute Workflow"manualTriggerTraitement des données
SettingssetTraitement des données
Create Import Request BodycodeTraitement des données
Upload Manufacturer LogohttpRequestRequête HTTP vers une API externe
Import ManufacturerhttpRequestRequête HTTP vers une API externe
Sticky NotestickyNoteTraitement des données
Sticky Note1stickyNoteTraitement des données
Loop Over ManufacturerssplitInBatchesDivision des données en plusieurs branches
Get Manufacturer from Google SheetgoogleSheetsTraitement des données
If has LogoifCondition logique pour router le flux
Sticky Note2stickyNoteTraitement des données
Sticky Note3stickyNoteTraitement des données

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

Google SheetsShopwareintégrationautomatisation

Structure JSON

Voir le code JSON complet
{
    "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
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Optimisation de la gestion des Pull Requests avec Pipedrive

Ce workflow permet d'automatiser le suivi des Pull Requests GitHub en les intégrant directement dans Pipedrive. Lorsqu'...

Synchronisation Automatisée des Événements Discord et Google Calendar

Ce workflow puissant automatise la synchronisation des événements programmés sur Discord avec Google Calendar, garant...

Automatisez les commandes Squarespace vers Google Sheets

Ce workflow automatise le processus de récupération des commandes de Squarespace et leur enregistrement dans Google Sh...