About this workflow
Import Multiple Manufacturers from Google Sheets to Shopware 6 – Workflow Analysis
This n8n workflow template automates the process of importing multiple product manufacturers from a Google Sheet into a Shopware 6 e-commerce platform. It enables businesses to efficiently manage and synchronize manufacturer data—including names, websites, descriptions, translations, and logo images—directly from a structured spreadsheet, reducing manual entry and minimizing errors.
What the Workflow Does
The workflow retrieves manufacturer data from a Google Sheet, formats it into a valid import structure compatible with Shopware 6’s sync API, imports each manufacturer into Shopware, and conditionally uploads their logo if provided. It supports multi-language content for international stores and ensures media (logos) are correctly associated via unique identifiers using MD5 hashing. The entire process is triggered manually and executed in batches for scalability and reliability.
Key Features and Capabilities
- Multi-Language Support: Handles up to three additional language translations per manufacturer by dynamically mapping translation fields.
- Media Handling: Automatically uploads manufacturer logos to Shopware and links them using consistent media IDs based on the manufacturer name.
- Upsert Logic: Uses Shopware's
upsertfunctionality to either create new manufacturers or update existing ones without duplication. - Batch Processing: Processes manufacturers in batches using the Split In Batches node, which helps avoid timeouts and API rate limits.
- Conditional Execution: Only attempts logo upload when a media entity is successfully created during the import step.
- Secure Authentication: Leverages OAuth2 with Client Credentials grant type for secure access to both Google Sheets and Shopware APIs.
- Reusable Structure: Easily extensible for more languages or additional fields by modifying the Code node logic.
Main Nodes and Their Purposes
| Node | Purpose |
|---|---|
| When clicking "Execute Workflow" | A manual trigger that starts the workflow execution upon user input. |
| Settings | Stores configuration variables such as the Shopware URL and default language code (de_DE) for use across other nodes. |
| Get Manufacturer from Google Sheet | Reads all rows from a specified Google Sheet containing manufacturer data (name, website, description, logo URL, etc.). |
| Create Import Request Body | Uses JavaScript code to transform raw sheet data into a structured JSON payload compatible with Shopware 6's /api/_action/sync endpoint. It includes:<br>– Core manufacturer details<br>– Translations for multiple languages<br>– Media ID generation using MD5 hashing of the manufacturer name |
| Loop Over Manufacturers | Splits the list of manufacturers into individual items for sequential processing using batch splitting. Ensures one-by-one handling for reliable API interactions. |
| Import Manufacturer | Sends the prepared manufacturer data to Shopware 6 via an HTTP POST request to the sync API. Performs upsert operations so duplicates are avoided. |
| If has Logo | Conditional check that evaluates whether the response from Shopware includes a media entity (indicating a logo should be uploaded). |
| Upload Manufacturer Logo | Executes only if a logo URL exists; sends the image from the external URL directly to Shopware’s media upload endpoint, setting correct file extension and name. |
| Sticky Notes | Provide inline documentation and setup instructions for users (e.g., configuring credentials, preparing the Google Sheet). |
Use Cases and Benefits
Use Cases:
- Onboarding new brands into a B2B or B2C online store.
- Syncing updated manufacturer information (including localized content) across multilingual shops.
- Automating digital asset management by linking brand logos during creation.
- Migrating legacy product data from spreadsheets into modern e-commerce systems.
Benefits:
- Time Savings: Eliminates hours of manual data entry in Shopware backend.
- Accuracy: Reduces human error through automated parsing and validation.
- Scalability: Supports bulk operations and can handle hundreds of entries via batching.
- Localization Ready: Built-in support for translating names and descriptions improves global market readiness.
- Extensibility: Can be adapted to import products, categories, or suppliers using similar patterns.
Step-by-Step Workflow Logic
-
Workflow Initiation
The user manually triggers the workflow by clicking "Execute Workflow". -
Configuration Setup
The Settings node sets essential environment variables:shopware_url: Base URL of the Shopware instancedefault_language_code: Default locale (e.g.,de_DE)
-
Fetch Data from Google Sheets
The Get Manufacturer from Google Sheet node pulls all rows from a predefined spreadsheet. Each row represents a manufacturer with columns like:name(required, unique)websitedescriptionlogo_url- Optional translation fields:
translation_language_code_1,translation_name_1, etc.
-
Transform Data Using Code
The Create Import Request Body node processes each item:- Extracts core fields and optional translations.
- Builds a nested
translationsobject keyed by language codes. - Generates a deterministic media ID using
md5("media-" + name)to ensure consistency across runs. - Constructs a final
manufacturerobject structured for Shopware’s sync API.
-
Batch Processing Loop
The Loop Over Manufacturers node splits the array of transformed items into single-item batches, enabling sequential processing. -
Import to Shopware
For each batch:- The Import Manufacturer node sends a POST request to
https://your-shopware-url.com/api/_action/sync. - Includes the
import-manufacturerparameter with the full payload. - Uses OAuth2 authentication configured under “SW6 Demo” credentials.
- The Import Manufacturer node sends a POST request to
-
Conditional Logo Upload Check
After import, the If has Logo node checks if the API response contains a media entity:- Path checked:
$json.data['import-manufacturer'].result[0].entities.media - If present, proceeds to upload; otherwise skips.
- Path checked:
-
Logo Upload to Shopware
The Upload Manufacturer Logo node:- Calls the media upload endpoint with the media ID returned from the import.
- Passes the external
logo_urlas a parameter to let Shopware fetch and store the image. - Sets dynamic query parameters:
extension: Derived from the logo URL (e.g.,.png,.jpg)fileName: Based on the manufacturer name
-
Completion
Once all items are processed and (if applicable) media uploaded, the workflow ends.
Final Notes
This workflow exemplifies how n8n bridges SaaS platforms like Google Sheets and Shopware 6 to automate complex business processes. With clear documentation via sticky notes and modular design, it serves as both a practical tool and a learning resource for developers and non-developers alike. By following the included TODOs—such as connecting accounts, creating the proper spreadsheet format, and configuring OAuth2 integrations—users can quickly deploy this automation in production environments.
How to use: download the JSON, then in n8n choose “Import from File”.