Improved Import, Export & Mass Actions is a powerful Shopware 6 app that you can install on your store to streamline the process of importing and exporting products and other entities. It allows you to efficiently transfer data in and out of your e-commerce website, ensuring that all necessary values are accurately handled. Whether you’re managing large inventories or complex data sets, this app simplifies the process, saving you time and reducing the risk of errors. Below, we explain how to use the tool for both import and export processes, working with different entities and types of data.
NOTE: The manual is for the MVP version of the application.
Number of import jobs that can be launched simultaneously: 3
Number of export jobs that can be launched simultaneously: 3
File Limit for URL & Manual Uploads: 200Mb
Installation
The application can only be installed through your Shopware 6 backend via your Shopware Account, whether you’re using an on-premise or cloud installation.
Log into your store’s backend and proceed to Extensions > Store.
Log into your Shopware Account.
Search for Improved Import, Export & Mass Actions.
Click on the Improved Import, Export & Mass Actions application
Click the “Add extension” button
Tick in the checkboxes and click the “Subscribe to extension” button.
That’s it! You’ve successfully installed the application, and you can now find it under the “Extensions” menu.
Installation Troubleshooting
When installing the application on your Shopware 6 store, ensure the following:
Your store is accessible via an external URL, as the app does not support local installations of Shopware 6.
Your store’s URL matches the APP_URL in the “.env” file, including the correct HTTP or HTTPS protocol.
If these conditions aren’t met, the app won’t function properly.
Find the extension
You can find the app in the “Extensions” section of your Shopware 6 administration panel. Simply navigate to Extensions > Improved Import, Export & Mass Actions.
When you land on the main page of the app, the Import screen is selected by default. To switch between Import and Export procedures, select the corresponding option on the system bar.
How to import data
In the following section, we’ll guide you through the process of importing data into Shopware 6 using the Improved Import, Export & Mass Actions app.
NOTE:
In the current version, system properties available for Shopware products by default cannot be excluded from the import mapping.
To disable a product during import, the ‘Active’ product property should be left empty.
Your very first step with Improved Import, Export & Mass Actions consists of the following activities:
Name your profile;
Select an entity you want to import (e.g., products or customers);
Create a schedule of updates. Turn on the toggle(1), choose your time zone(2) (you can type in the city instead of scrolling), specify your starting frequency(3) (every hour, day, week, or month), and configure additional parameters(4) (such as the exact time if you choose daily update or day and time if you decide to update once per week).
Choose your notification type: succeed, failed, or succeed and failed jobs.
Specify an email address to send notifications to.
Select the encryption.
Specify the host for your email address.
Type the port.
Specify a sender’s username (an email address).
Provide the corresponding password.
You can attach job logs to the notification emails. However, they may be huge in size.
Select the file you want to import. The app currently supports CSV, XML, and XLSX file formats.
Additionally, you can specify the delimiters used in the CSV file manually, or click the “Auto detect delimiter” checkbox and let the extension do the job.
Choose an import source (e.g., file, FTP, URL, Google Drive). If you provide a file via FTP, follow these steps:
Specify your host;
Enable/disable SSL;
Specify your port;
Provide a user email to get access to the remote file source;
Specify the corresponding password;
Type the remote path to your update file;
Test the connection to make sure you’ve provided the correct credentials.
For Google Drive, let Improved Import, Export & Mass Actions use all permissions and specify a full file name with its extension, e.g., “pe5.1.xlsx”, stored in the “shopware-import-export” folder. Read more about the Shopware 6 Google Drive integration here: How to Import Files from Google Drive to Shopware 6.
You can also import data from Google Sheets. It is necessary to select the corresponding file type and source and specify a link to your Google Sheets table. You can find more information here: How to Import Data to Shopware 6 from Google Sheets.
Good old URL imports are possible too. Just select “URL” as your import source. Next, specify a public URL where your update is stored, for example, https://example.com/download-me. You can find more information here: Shopware 6 Import From URL.
Display Warnings: When selected, the app alerts you if there are duplicate URLs in the imported file. If an imported product shares a URL with an existing product on your website, the app generates a new URL based on the product name.
Increment Duplicate: With this option, the app imports products with duplicate URLs but modifies their URLs to follow the format “existing_url-n+1,” where “n” represents the duplicate number (starting at “0” for the first duplicate, resulting in “existing_url-1” after import).
Force Overwrite: This option assigns the existing URLs to the imported products if duplicates are found in the import file. As a result, the imported products retain the existing URLs, while the original products are left without URLs.
If Disabled: The product quantity is updated to match the quantity specified in the import file. For example, if your store’s current quantity is 100 and the import file specifies 50, the store quantity will be updated to 50 after the import.
If Enabled: The product quantity is increased by the amount specified in the import file. For instance, if the current quantity is 100 and the import file specifies 50, the store quantity will be updated to 150 after the import.
When this feature is enabled, a Reload Product Before Update toggle appears:
If Disabled: The quantity is updated immediately, following the selected stock increment strategy, without reloading the product data.
If Enabled: The product data is reloaded first, and then the quantity is updated according to the selected stock increment strategy
Note that for XML import to Shopware 6 your file structure should be organized as follows:
<list>
<item>
…
</item>
<item>
…
</item>
</list>
Where column names (attributes or properties) are stored between <item> and </item>.
Additionally, the latest release of our app includes an XPath input feature for specifying data paths in XML files. This allows you to select relevant data structures, such as products or customers, with greater precision.
MIME Type
When entering a URL for importing, it’s crucial to ensure that the file type matches the format required by the application. The app cannot handle all file formats, so using an incompatible URL – like an image URL for a CSV import – will result in an error.
To prevent this, the application checks the file’s MIME type and will not download the file if the MIME type is unsupported.
MIME type, short for Multipurpose Internet Mail Extension, is a standard that indicates the file format. It’s a key characteristic of any digital resource, influencing its accessibility and usability.
Here’s the current list of MIME types supported by the application:
If you import an unsupported file, the app displays the following error:
Failed! Bad url. mime/type mismatch or max size exceeds
Step 2: Configure mapping
In the Configure Mapping section, you’re prompted to match the columns from your imported file with the corresponding properties of products in your Shopware 6 store. If your import table doesn’t align perfectly with the default criteria, don’t worry – you can easily replace unsupported column names with the correct ones.
Shopware requires product properties to have specific names so the system can recognize them correctly. To accommodate this, we’ve made it possible for you to import files with property names that differ from Shopware’s naming conventions. This is where the mapping section comes into play:
The first row displays the property names from the file you are importing.
The second row allows you to select the corresponding properties from your Shopware store.
By matching these properties, you can import files with any naming format.
If your updates involve product variants, the mapping screen offers additional options. Here, you can choose to assign variants using either the parent product’s SKU or ID. You can also decide whether to add new variants to the existing ones or completely replace the old variants. This flexibility allows you to manage your products according to your specific needs and preferences.
Mapping templates
To save you time, we’ve introduced mapping templates that allow you to quickly save and load the mappings you use frequently.
The mapping section includes a ‘Default’ template, which automatically matches the property names from your Shopware store with those in your imported file.
If you prefer, you can manually re-map the properties and save your template. Simply click the ‘Save’ button, choose a name for your template, and you can easily ‘Load’ it for future imports.
What are product properties and how to work with them
Each Shopware 6 product has multiple fields, such as ‘Name,’ ‘Product Number,’ and ‘Manufacturer.’ These fields are known as product properties or attributes. Each property is associated with a database entity where its values are stored, and each has a dedicated internal name that doesn’t allow spaces.
When importing products, you’re directly interacting with the database, so it’s crucial to use the exact names of these properties as they appear in the database. For example, the Manufacturer is stored as ‘manufacturer_id,’ and the Product Number is stored as ‘product_number.’ You can refer to an exported file to see how these properties are named.
This is important because, during the import process, the column names in your file must match the internal names of the product properties in Shopware. This ensures that the extension correctly maps the imported values to the appropriate properties.
This is where the Mapping section of the Improved Import, Export & Mass Actions app comes into play.
For instance, if your supplier, Microsoft, sends you a CSV file with products labeled as ‘microsoft_product_number’ and ‘microsoft_name’ instead of the standard ‘product_number’ and ‘name,’ you can use the Mapping section to align these custom names with Shopware’s internal property names
If you were to import a file like this, Shopware wouldn’t recognize that the ‘microsoft_product_number’ column corresponds to the ‘product_number’ property of your product. This is where the Mapping section becomes essential.
Simply match the column names from your imported file with the relevant product properties in Shopware. Once you’ve made these connections, you’re all set to proceed with the import. You can read more in our Shopware Mapping Guide.
Step 3: Preview results
Before starting the import procedure, the app allows you to preview how the products will appear once imported.
This feature is designed to help you confirm that the product attributes and properties have the correct values, ensuring everything is in order before you proceed with the import.
The “Preview Result” section lets you review the first 100 rows from the imported file. Once you’ve checked the results and everything looks good, you can proceed with the import procedure.
Final step: Import
When you click the “Import” button at the bottom of the Preview result step of the import, the extension starts importing the file you have uploaded.
During the import process, you’ll see the number of imported products, excluding child products of configurable items, as well as the average import time.
Once the process is complete, you can review the products you’ve imported into your Shopware 6 store.
Different Data Formats for Shopware 6 Import
The Improved Import, Export & Mass Actions app allows you to transfer various types of product data to Shopware 6, including standard fields, custom fields, translations, and properties. Each data type follows a specific format, as described below.
System Properties
Each Shopware 6 product is defined by multiple fields, such as “Name”, “Product Number”, and “Manufacturer.” These fields, also known as product properties or attributes, are stored in the database with specific internal names that do not allow spaces.
When importing products, you are directly interacting with the database, so it’s crucial to use the exact names of these properties as they appear in the database. For example, “Manufacturer” is stored as “manufacturer_id“, and Product Number is “product_number“. You can refer to an exported file to see how different properties are named.
This is essential because when importing, the column headers in your file must match the internal names of product properties in Shopware to ensure that the data is correctly mapped to the corresponding fields.
Custom Properties
By default, Shopware 6 exports products without including any custom properties you’ve added, such as “Size” or “Color”. This means custom properties won’t be part of the exported product data. While you can export custom product properties as a separate entity, this export won’t include references to the products they’re assigned to, making it difficult to re-import products with their associated custom properties.
The Improved Import, Export & Mass Actions app solves this issue by allowing you to export custom properties along with your products in a format that includes both the database ID of the custom property and the name displayed in the store’s backend for easy reference.
In the exported file, custom properties are formatted like this: color#0bde8db993684f8b92a713913aa3d9c3, where:
color is the name of the property as displayed in the Shopware 6 backend.
#0bde8db993684f8b92a713913aa3d9c3 is the property’s unique ID in the database.
When importing products with custom properties, you can use three different formats for column names:
property_name#property_id – the default format as it appears in the export file.
property_name – using only the name of the property as it appears in the Shopware 6 admin panel.
#property_id – using only the property’s ID, preceded by the # symbol.
During the import process, you need to map all custom properties in your file by selecting the corresponding “propertiesSources” option in the dropdown for each property. This step ensures that Shopware correctly recognizes and processes the custom properties, regardless of the order or format used.
Using both the property name and ID is important because Shopware 6 allows you to create multiple custom properties with the same name. The property ID, which is always unique, helps distinguish between similarly named properties.
If you want to add translations to your custom properties, use this column title format:
[language code].[property_name#property_id]
Where:
language code is the locale of the language you provide translation for, e.g., en_GB, en_US, de_DE, de_CH, etc.
property_name is the name of the property as displayed in the Shopware 6 backend.
property_id is the property’s unique ID in the database.
For instance, you can translate the Material custom property with the ID #a67cdd9627cb488bb4cd91f3e8d66e32 to German by adding the following column to your CSV file: de-DE.Material#a67cdd9627cb488bb4cd91f3e8d66e32.
Custom Fields
For Firebear imports, all custom field names must begin with “cf_“. Following this prefix, include the technical name of the custom field.
For instance, to import data associated with the custom_test_text_field custom field, you need to add the cf_custom_test_text_field column to your CSV.
Translations
When importing translations to Shopware, the CSV file should include specific column headers that indicate the language and type of translation. Use this general format to name your columns:
language code is the locale of the language you provide translation for, e.g., en_GB, en_US, de_DE, de_CH, etc.
original column title is the name of a column associated with the translations you import, e.g., name or keywords.
For example, to import English keywords, you would use the column header “translations.en_GB.keywords“, while for German product names, the column header should be “translations.de_DE.name“.
Each column should be followed by the corresponding translated content, ensuring that the language code (e.g., en_GB for British English and de_DE for German) matches the translations you’re importing. This format ensures that our app correctly associates each translation with the appropriate language and content type.
You can also import translations for your custom fields. Add a column with this format:
language code is the locale of the language you provide translation for, e.g., en_GB, en_US, de_DE, de_CH, etc.
custom_field_technical_name is the technical name of a custom field.
For instance, you can import German translations for your custom test text editor custom field with the help of the translations.de_DE.cf_custom_test_text_editor column.
Importing a New Product in Shopware 6.5:
When importing a custom attribute of the ‘cf_’ type, values are successfully imported for all languages, not just the main language.
There are no translation columns for custom attributes of the select type, so translations for these cannot be imported.
Similarly, there are no translation columns for custom price attributes, preventing the import of translations for these as well.
For custom attributes like checkboxes and active switches, the same value is imported across all languages, even if different values are specified in the import file.
Updating a Product in Shopware 6.5:
If you update the select attribute in the ‘cf_’ column, it is only updated in the main language; other languages are not affected.
Updating the price attribute in the ‘cf_’ column also only affects the main language.
For checkboxes and active switches, if you specify different values for different languages, the import will maintain those distinct values without resetting or updating them to match the main language.
For custom attributes such as text fields, date/time, number fields, media fields, color pickers, and text editors, you can successfully import translations and unique values for the custom field both when importing a new product and during updates.
Importing a New Product in Shopware 6.4:
When importing a custom attribute of the ‘cf_’ type, values are imported only for the main language; other languages are not included.
There are no translation columns for custom attributes of the select type, so translations cannot be imported.
For custom attributes like checkboxes and active switches, different values are imported for different languages if specified in the import file.
Updating a Product in Shopware 6.4:
If you update the select attribute in the ‘cf_’ column, it is only updated in the main language, with no changes in other languages.
For checkboxes and active switches, if different values are specified for different languages, the import process will maintain these values across languages, rather than resetting them to the main language’s value.
For custom attributes such as text fields, date/time, number fields, media fields, color pickers, and text editors, you can import translations and unique values for the custom field both when importing a new product and during updates.
In both versions, Shopware allows for flexible import and update processes, but with different capabilities regarding language support and translation of custom attributes.
Delivery Time
You can import delivery time fields into Shopware 6 using three different methods:
By ID: If all delivery times are already created in Shopware, you can import them using the “delivery_time_id” column in your import file.
By Name: If the delivery times are already set up in your store, but you don’t want to look up all the IDs, you can import them using the “delivery_time_name” column. The app will automatically find the existing ID based on the name and attach it to the product.
Creating New Delivery Times: To create a new delivery time during import, use four columns: “delivery_time_name“, “delivery_time_min“, “delivery_time_max“, and “delivery_time_unit” to fully describe the new delivery time.
It is possible to import advanced pricing to Shopware 6 as a part of your product update. The corresponding information can be added to a product CSV in the “advanced_prices“column.
This complex value consists of attributes and values that describe multiple rules or price tiers. Tiers are separated by a pipe (“|”), and the attributes within each tier are separated by a comma (“,”).
The value above represents the following three price tiers:
The price is 1 Euro if a customer orders 1-2 items.
The price is 0.9 Euro if a customer orders 3-5 items.
The price is 0.8 Euro if a customer orders 6 or more items
Below, you’ll find a description of each advanced pricing import attribute for Shopware 6.
Column Name
Description
Value
ruleId
The alphanumerical rule ID used in Shopware.
046ca0774ef543d8b606c2e2cfd0d43d
currencyId
The alphanumerical currency ID used in Shopware.
b7d2554b0ce847cd82f3ac9bd1c0dfca
priceNet
A product net price used in this rule.
0.8
priceGross
A product gross price used in this rule.
0.8
quantityStart
The minimum amount of items that should be purchased to apply the rule.
6
quantityEnd
The maximum amount of items that should be purchased to apply the rule.
8
Leave blank to set the upper limit to infinity.
Note that you can replace the existing advanced prices with the ones specified in your CSV by activating the Replace Advanced Prices feature.
SEO URLs
Every successful website needs to address SEO URLs, and Shopware provides built-in SEO URL functionality to streamline your optimization efforts. The platform supports SEO URLs for both products and categories. While Shopware doesn’t natively support importing SEO URLs, our Improved Import, Export & Mass Actions app fills that gap.
Since you can add multiple custom SEO URLs for different store languages, your CSV file with product updates can include several columns for SEO URLs. Each Shopware 6 SEO URL attribute must start with “seo_url_#”, followed by the sales channel ID and the language ID, as shown in this example:
Be sure to use “#” to separate the sales channel ID from the language ID.
The attribute value can include any characters and spaces, allowing you to enter SEO-friendly URLs for your Shopware update, such as “seo-friendly-product-page”.
Below is an example of Shopware 6 SEO URL attributes and values ready for import, as outlined in our Google Sheets Master Table:
EAN Product Import (Alternative to SKU)
We’ve introduced the ability to import products using the EAN (European Article Number) as an alternative to SKU (product_number). This feature allows you to update existing products, but please note that new products cannot be created using the EAN.
Additionally, the product_number can also be updated during import using EAN. If you do not wish to update the product_number, ensure it is not mapped or included in your import file.
All product attributes available for import can be updated using the EAN, with the exception of tags and SEO URLs – these can only be updated using the product_number. It means that you need both the ean and product_number columns to update ALL product attributes.
To update products in Shopware 6 with the help of EAN, add the ean column to your CSV file:
Create a new import profile and configure its basic settings. Next, choose EAN instead of SKU in the Lookup Attribute section on the mapping screen:
Configure other parameters and import the update.
Data Transformation
The new feature introduces a script editor window available at the first step of the import process. This editor allows customers to write and apply scripts to modify rows of imported files directly. In other words, it is possible to edit attribute values with the help of a custom script.
Key Functionalities
Script Input: Users can access the editor and write scripts to modify data using the variable $row, which represents the row being processed.
Function Whitelisting: For security purposes, only a limited set of PHP functions is allowed in the editor. These functions enable common string, array, and mathematical operations, ensuring users can perform common modifications without compromising system security.
With the new feature, you can apply the following modifications to the imported data right in your Shopware 6 administration:
Manufacturer Name: Remove extra $ symbols from any values.
Options: Strip out spaces and replace ; with |.
Stock: Increase all values by 10.
Price Modification: If price_grossand list_price_grossare 0, set them as net * 1.19.
Keywords: Replace , with |.
Meta Title: Concatenate meta_titleand namecolumns.
General Format for the $row Script
In the context of the feature allowing users to write scripts for row modification, the general format of the script involves processing each row of data through the variable $row, which is an associative array. Each key in the $row array represents a column or field from the imported data, and the corresponding value holds the actual data for that field.
Here’s how the general format can be structured:
1. Accessing Row Data:
Each column in the row is accessed using its key in the $row array. $manufacturerName = $row[‘manufacturer_name’]; // Access the ‘manufacturer_name’ field
2. Modifying Row Data:
You can modify the data by updating the corresponding key in the $row array. // Remove any extra $ symbol from the manufacturer name
The script can only use PHP functions from the predefined whitelist, which covers common operations like string manipulation, math, array handling, and date functions.
Example using string manipulation: // Convert a string to lowercase
$row[‘options’] = strtolower($row[‘options’]);
4. Conditionally Modifying Data:
You can add logic to check conditions and modify values accordingly. // Increase stock by 10 if it’s greater than 0
if (isset($row[‘stock’]) && $row[‘stock’] > 0) {
$row[‘stock’] += 10;
}
5. Performing Calculations:
Calculations can be performed on numerical data in the row.
// If price_gross is 0, set it as net * 1.19
if (isset($row[‘price_gross’]) && $row[‘price_gross’] == 0) {
$row[‘price_gross’] = $row[‘net’] * 1.19;
}
6. Returning the Modified Row:
After performing all modifications, the script doesn’t need to explicitly return anything as the $row is passed by reference, meaning changes to the $row will automatically reflect in the system.
Example of a Full Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Remove any extra $ symbols from manufacturer_name
$row is an associative array where each key represents a field/column of the row.
You can access and modify the row data using $row[‘column_name’] where column name is an actual column name from the imported file.
Only a whitelist of PHP functions is allowed, ensuring the script stays secure.
The modifications made to $row are automatically reflected in the import process.
By following this general format, you can write flexible and secure scripts for row modifications within the constraints of the whitelisted functions.
Product Import Field Reference
In this section, you’ll find a comprehensive reference table that details the key fields involved in importing product data into Shopware 6. Each row in the table provides essential information, including the field name as it appears in the Shopware interface, the corresponding system field name, a brief description of the field’s purpose, and an example value to guide your data formatting. This table is designed to help you accurately map and configure your product import files, ensuring a smooth and error-free import process.
Field Name
System Field Name
Description
Value Example
General information
Name
name
Title of the product.
Can contain any characters and spaces.
Bluetooth Speaker
Manufacturer
manufacturer_id
ID of the Manufacturer found in your store database.
Should be composed of exactly 32 symbols with numerals 0-9 and letters a-f.
If no Manufacturer ID is specified, it will be associated or created using the ‘manufacturer_name’ attribute value
018ee103cded7015994e5f9aac551847
Manufacturer
manufacturer_name
Manufacturer of the product.
Can contain any characters and spaces.
EchoWave
Product UUID
id
Unique ID of the product inside the Shopware 6 database.
Cannot be found inside the administrator area.
Used to identify the product along with the product_number, however not required.
Should be composed of exactly 32 symbols with numerals 0-9 and letters a-f.
018e3856658271228f10807956b7e3f9
Parent product UUID
parent_id
ID of the parent product.
This property is only used for product variations to identify the parent product it belongs to.
Should be composed of exactly 32 symbols with numerals 0-9 and letters a-f
018e38561e2d72ea81f49d3fc8a2b141
Product number
product_number
Unique product code – SKU.
This property is required for creating a product
Can contain any characters and spaces
FB10001
Parent product number
parent_sku
Product number of the parent product.
This property is only used for product variations to identify the parent product it belongs to.
Must be a numeric value using a period (.) for decimals; commas are not allowed for decimals.
12
Height
height
Height of the product.
Must be a numeric value using a period (.) for decimals; commas are not allowed for decimals.
13
Length
length
Length of the product.
Must be a numeric value using a period (.) for decimals; commas are not allowed for decimals.
14
Weight
weight
Weight of the product.
Must be a numeric value using a period (.) for decimals; commas are not allowed for decimals.
2
Sales unit
purchaseUnit
Number of individual items that a company sells.
Required to calculate the product’s unit price. The value depends on the selected scale unit.
Must be a numeric value.
500
Basic unit
basicUnit
Reference specification.
Required to calculate the product’s unit price. The base value depends on the selected scale unit.
Must be a numeric value.
1
Packaging unit
packUnit
Indicates how the product is delivered, e.g. in a carton or bottle. This information appears in the quantity selection field of the product.
bottle
Packaging unit plural
packUnitPlural
If the plural form of the packaging unit differs from the singular, you can enter it here. For example, if the singular unit is “bottle,” you would enter “bottles” as the plural. This information will be displayed in the quantity selection field when the quantity exceeds 1.
bottles
Scale unit
unit_name
Unit of measurement used to define the relationship between a product’s selling unit and its base unit.
centimeter
Scale Unit Shorthand
unit_shortCode
Shorthand of the scale unit.
cm
GTIN/EAN
ean
Unique identifier used for products globally.
Can contain any characters and spaces.
6291047583921
Release date
releaseDate
When a product can be purchased in the shop.
If the time you have set is not yet reached, a corresponding message will be displayed on the product detail page to inform the customer when the product can be purchased.
2023-10-20T12:00:00.000+00:00
Delivery time Name
delivery_time_name
Label assigned to a specific delivery time option.
Can contain any characters and spaces.
1-3 Tage
Delivery time Minimum
delivery_time_min
Delivery time minimum period.
Numeric value without decimals.
1
Delivery time Maximum
delivery_time_max
Delivery time maximum period.
Numeric value without decimals.
3
Delivery time Unit
delivery_time_unit
Unit of measurement for the delivery time, such as days, weeks, or months.
day
Delivery time UUID
delivery_time_id
Unique identifier assigned to a specific delivery time configuration within the system. This UUID distinguishes each delivery time option, ensuring that it can be accurately referenced and managed in the database, especially during imports, exports, or when configuring delivery times for products.
Should be composed of exactly 32 symbols with numerals 0-9 and letters a-f.
018e1d6d1397727d81a53aac935b7fbe
Manufacturer product number
manufacturerNumber
Unique identifier or SKU assigned to a product by its manufacturer. This number helps distinguish the product within the manufacturer’s catalog and is often used for inventory management, ordering, and referencing the product in various systems.
Can contain any characters and spaces
SWB-2024-X1
Tags
tags
Labels or keywords that you can assign to products, categories, customers, and other entities to organize and categorize them. Tags help in filtering, searching, and managing items within the system, making it easier to group related items or apply specific actions across multiple entities.
When importing translations to Shopware, the CSV file should include specific column headers that indicate the language and type of translation. Use this column title format:
To add translations to your custom properties, use this column title format:
[language code].[property_name#property_id]
Use this value format:
[property_value#property_value_id]
Damen#0e6ecc99f5e84d48b8550bb37690c1a2
de-DE.Geschlecht#68b8e43ccb1c454aa0647bbc4a0c6e0d
Variants storefront presentation
display_single_product_as_main_product
This column corresponds to the “Display Single Product as Main Product” checkbox. 1 – enabled;0 – disabled.Also, it depends on other parameters.
0
display_single_product_as_variant
This column represents the “Display Single Product as Variant” checkbox and the selected variant in the dropdown. The value consists of the variant ID.
018e1d6d1397727d81a53aac935b7fbe
display_as_expand_product
This column corresponds to the “Expand Property Values in Product Listings” checkbox. The value consists of the name and ID of the selected properties. Multiple values separated with a pipe symbol (|).
Colour#269c7e40a54a462e884edb004c5f7bc8
Customer Import Field Reference
This section includes a detailed reference table outlining the fields required to import customer data into Shopware 6. The table lists each field name as it appears in the Shopware interface, along with the corresponding system field name, a description of its function, and an example value to help you correctly format your data. This resource is designed to assist you in accurately mapping and configuring your customer import files, ensuring that your customer data is imported smoothly and efficiently.
Field Name
System Field Name
Description
Value Example
Line Item Type
linetype
Defines whether the row is for a customer or a customer address.
customer, addresses
Customer Number
customerNumber
Unique customer code.
Can contain any characters and spaces.
SWDEMO10000
Email Address
email
Customer’s email.
Make sure to properly paste the email address with the domain
test@mail.com
First Name
firstName
Customer’s first name
Any characters are allowed.
Veronica
Last Name
lastName
Customer’s last name
Any characters are allowed.
Costello
Customer Group
group
Customer’s customer group.
Standard customer group
Default Payment Method
defaultPaymentMethod
Customer’s default payment method.
Cash on delivery
Active Status
active
Defines if the customer is enabled:
1 – customer is enabled;
0 or EMPTY – customer is disabled.
1
Language
language
Customer’s language.
English
Affiliate Code
affiliateCode
Used to track and identify customers who were referred to your store through an affiliate program. When customers enter your store via an affiliate link, this code is recorded and associated with the customer. The affiliateCode helps in tracking which affiliates are responsible for bringing in specific customers, enabling you to attribute sales or sign-ups to the correct affiliate partner.
3465
Campaign Code
campaignCode
Refers to a code associated with a marketing or promotional campaign. This code can be used to track which campaign or promotion led to the customer’s registration or purchase. When importing customer data, the campaignCode allows you to assign a specific campaign to a customer, helping you analyze the effectiveness of your marketing efforts by linking customers to particular campaigns.
8973
Sales Channel
salesChannel
Name of the Sales Channel the customer belongs to.
Can contain any characters and spaces
Storefront
Date of Birth
birthday
Customer’s day of birth.
1996-09-09T00:00:00.000+00:00
Default Billing Address
defaultBillingAddressId
Unique ID of the default Billing Address inside the Shopware 6 database.
Cannot be found inside the administrator area.
Should be composed of exactly 32 symbols with numerals 0-9 and letters a-f.
Required attribute for UPDATE.
069d109b9b484f9d992ec5f478f9c2a1
Default Shipping Address
defaultShippingAddressId
Unique ID of the default Shipping Address inside the Shopware 6 database.
Cannot be found inside the administrator area.
Should be composed of exactly 32 symbols with numerals 0-9 and letters a-f.
Required attribute for UPDATE.
069d109b9b484f9d992ec5f478f9c2a1
Address ID
addresses.id
Unique ID of the Address inside the Shopware 6 database.
Cannot be found inside the administrator area.
Should be composed of exactly 32 symbols with numerals 0-9 and letters a-f.
Required attribute for UPDATE.
069d109b9b484f9d992ec5f478f9c2a1
Address First Name
addresses.firstName
Customer’s first name specified in the address.
Veronica
Address Last Name
addresses.lastName
Customer’s last name specified in the address.
Costello
Zip/Postal Code
addresses.zipcode
Postal code associated with a customer’s address.
12345
Country
addresses.country
Country associated with a customer’s address.
Germany
City
addresses.city
City associated with a customer’s address.
Berlin
Company
addresses.company
Company associated with a customer’s address.
Firebear
Street
addresses.street
Street associated with a customer’s address.
street1
Department
addresses.department
Department associated with a customer’s address.
Marketing
Title
addresses.title
Manager
Phone Number
addresses.phoneNumber
Phone number associated with a customer’s address.
495819739180
Address Created At
addresses.createdAt
Date and time when the address was initially added to the customer’s profile.
2023-05-05T09:21:45.707+00:00
Address Updated At
addresses.updatedAt
Date and time when the address was updated in the customer’s profile.
2023-08-03T12:21:10.953+00:00
How to export data
Exporting data is straightforward and efficient. To begin, you’ll select the entity you want to export, choose the output file type, and specify the export destination. From there, you can configure the mapping to ensure the data is structured correctly and apply any necessary filters. Once everything is set, simply hit the ‘Export’ button to complete the process. This streamlined approach makes managing your Shopware 6 data hassle-free.
Step 1: Configure your export profile
Go to Extensions -> Improved Import, Export & Mass Actions -> Product Export and click the “New Profile” button. The “Configure export“ screen displays:
Type your profile’s name;
Select an entity you want to export – Products, Customers, or Orders;
In the case of Orders, you can export the latest modified or the latest created orders by selecting the corresponding option.
Follow this link for more information: How to export latest orders from Shopware 6.
Enable/disable the export of inherited options. If a variant has a value, it will be exported; otherwise, the parent value will be used.
Choose a batch size for your file export: a lower value is required for a low-end server.
Step 2: Configure mapping
Click “Continue” to proceed to the export mapping screen. If you plan to share your output with a third party, you can replace the default Shopware column titles with the names your partner requires. Simply enter the new values in place of the defaults, and the Improved Import, Export & Mass Actions app will automatically apply the necessary changes.
Keep in mind that you can export only the columns you need by unchecking those that aren’t necessary for your output.
It is also possible to export custom fields separately, with each custom field getting its own column. This feature applies to both products and orders. Previously, all custom fields were exported in a single column, but now you can find each custom field listed as a separate field on the mapping screen. If you have a saved export profile for orders and later create new custom fields, add values, and save the order, these new custom fields won’t be included in the export using the existing profile. To include the newly created custom fields, you’ll need to create a new profile, ensuring that everything is exported successfully.
Additionally, the latest version of our application allows you to rearrange the order of columns and add default values as needed:
Column Sorting: Now, during export, you can easily sort columns, arranging them in the desired order within the export file. This feature provides you with greater control over the layout of your data.
Default Values: You can also include default values when exporting. This means that if a specific attribute has no value, the export file will automatically include the designated default value in its place. This simplifies data management and ensures consistency in your exports.
Column sorting is achieved through a simple drag-and-drop interface, and these enhancements apply to all entities, including products, orders, and customers. It’s all about making your data management in Shopware more efficient and user-friendly. For more information, follow our Guide to Shopware Mapping.
Default Values
The latest version of our app allows you to apply default values to the data you export. A default value is automatically assigned if an attribute in your export file has no value specified. For example, if you set a default value of “99” for the weight attribute, this value will be applied to any products that do not have a weight specified after the export.
.
Products with a specified value for the weight attribute in the admin will retain that value – the default value will be ignored in such cases.
Step 3: Add filters
If you don’t want to export all records, you can create filters on the “Filter” screen:
Press the “+” button.
Select a product property to filter by. For example, you can choose orderDate to filter orders by their creation date.
Choose an operator. For instance, Range allows you to export records within a specific time interval.
Specify a value. If you’re exporting orders and have selected orderDate and Range, you can filter to export orders from today, yesterday, last week, last month, etc.
You can create multiple filters by clicking the “Add Filter” button. This allows you to refine your export even further by applying additional criteria.
Final step: Export
Click the “Save & Close” button to save your Shopware 6 export profile for future use. The app will automatically execute the profile according to the scheduled time. If you click the “Export” button, the app will transfer the data from Shopware 6 immediately.
If you selected File as your export destination, you can download it by clicking the Download button at the bottom of the export process recap.
How to Import & Export Product Properties in Shopware
By default, Shopware 6 does not export custom properties that you’ve added to your products, such as ‘Size’ or ‘Color.’ This means that when you export products, any custom attributes you’ve created won’t be included in the export file.
To address this, you can export custom product properties as a separate entity. However, this approach comes with a limitation: the exported file won’t include references to the products these properties are associated with. As a result, re-importing the products with their corresponding custom properties becomes impossible, since the connection between the products and their custom attributes is lost in the process. This makes it challenging to maintain the integrity of your product data when re-importing into Shopware 6.
With the Improved Import, Export & Mass Actions app, you can export custom properties along with your products in a convenient format. This format includes both the database ID of the custom property and the name as displayed in the store’s backend, making it easy to reference and manage.
The exported file might look like the screenshot below:
The columns highlighted in green represent custom product properties and follow this format:
color#0bde8db993684f8b92a713913aa3d9c3
Where:
color is the name of the property as it appears in the Shopware 6 backend.
#0bde8db993684f8b92a713913aa3d9c3 is the ID of the property as stored in the database.
When importing products along with these properties, you can import them using three different formats for the column names:
property_name#property_id: This is the default format you receive in the export file.
property_name: You can also import the property by naming the column as it is labeled in the Shopware 6 admin panel.
#property_id: Alternatively, you can use just the property ID, starting with the “#” symbol.
During the mapping step of the import procedure, you’ll need to assign all custom properties from your file as follows:
Locate the custom property, such as “color.”
In the dropdown menu under store properties, select “propertiesSources“.
Assign “propertiesSources” to all the custom properties you are importing. This ensures that Shopware correctly interprets and applies them, regardless of the order or format you use.
We also recommend using both the property name and ID as your import format.
In the Shopware 6 backend, you can create multiple custom properties with the same name. Therefore, if you have several properties with identical names, you’ll need a way to distinguish them. This is where the property ID comes in, such as “#0bde8db993684f8b92a713913aa3d9c3”. The property ID is always unique and ensures that each property is correctly identified and applied without confusion.
How to Import & Export Configurable Products in Shopware
Here’s a guide on how to use the import and export features for configurable products to adjust their frontend display in Shopware 6.
Import
You can use the import feature to control how configurable products with variants are displayed in product listings. Let’s explore how this feature works in Shopware versions 6.5 and 6.4.
Shopware 6.5
The import of configurable products can lead to different frontend displays depending on the values specified in your CSV table. Let’s explore 4 different cases:
Case №1
If the Display Single Product as Main Product column is set to “1” (true) and Display Single Product as Variant and Display as Expand Product are empty as shown below:
The Shopware configurable product import will display the selected Main product with an empty dropdown, meaning no variant is pre-selected.
Case №2
If the Display Single Product as Main Product column is set to “1”, the Display Single Product as Variant column contains an ID of one of the configurable product variants, and Display as Expand Product is empty:
The Shopware configurable product import will display the selected Main product with an empty dropdown, meaning no variant is pre-selected.
Case №3
If the Display Single Product as Main Productcolumn is set to “0” (false) or is empty, the Display Single Product as Variant column contains an ID of one of the configurable product variants, and Display as Expand Product is empty:
The Shopware configurable product import will display the selected Variant in the Display Single Product section, with the variant being the product with the ID specified in the CSV.
Case №4
If the Display Single Product as Main Product column is set to “0” (false) or is empty, the Display Single Product as Variant column is empty, and the Display as Expand Product column contains the Available Property Name (Colour|Size)+ID combination (several values should be separated with “|”:
The Shopware configurable product import results in the selectedMain product option in the Display single product section and the selected properties specified in the Expand property values in product listings section.
Shopware 6.4
The Display Single Product as Variant functionality is not available in Shopware 6.4. Therefore, you cannot use import to control the Display as Expand Product feature. In the cases below, the corresponding column is empty.
Case №1
If the Display Single Product as Main Product column is set to “1” and Display Single Product as Variant and Display as Expand Product are empty as shown below:
The Main product is selected, and the variant in the dropdown remains unchanged.
Case №2
If the Display Single Product as Main Product column is set to “1”, the Display Single Product as Variant column contains an ID of one of the configurable product variants, and Display as Expand Product is empty:
The checkmark is active on the Main product, and the variant in the dropdown is selected based on the ID provided in the import file.
Case №3
If the Display Single Product as Main Product column is set to “0” or is empty, the Display Single Product as Variant column contains an ID of one of the configurable product variants, and Display as Expand Product is empty:
The checkmark is active on the Main product, and the variant in the dropdown is selected based on the ID provided in the import file.
Export
When you export configurable products from Shopware, the output format differs between versions 6.5 and 6.4.
Shopware 6.5
In Shopware 6.5, the export includes the following three columns:
display_single_product_as_main_product: This column corresponds to the “Display Single Product as Main Product” checkbox. It contains “1” if the checkbox is selected and is empty if it is not.
display_single_product_as_variant: This column represents the “Display Single Product as Variant” checkbox and the selected variant in the dropdown. The exported CSV will contain the variant ID.
display_as_expand_product: This column corresponds to the “Expand Property Values in Product Listings” checkbox. The value consists of the name and ID of the selected properties.
Shopware 6.4
In Shopware 6.4, the export includes the same three columns:
display_single_product_as_main_product and display_single_product_as_variant: These columns correspond to the “Single Main Variant” checkbox and the Variant dropdown, respectively.
display_as_expand_product: This column is exported empty. Even if you manually select values to expand, they will not be included in the export file in this version. Additionally, importing content into this column is not possible. However, this does not affect imports – if you have selected “Expand Property Values in Product Listings,” these settings will not be overwritten during the import/export process.
FAQ & Troubleshooting
1. I get an error message “cURL error 6: Could not resolve host”
Make sure your store is accessible by the external URL. Local installation of Shopware 6 is not supported by the app.
Possible solution:
Change the APP_URL in the .env file from “local_store_url” to “external_store_url”. Make sure you have specified actual HTTP or HTTPS
Uninstall and install the app again. Switching the app on and off will not address the issue
Clear browser cache, or use the incognito window.
2. I get an error message “Write access to entity “acl_role” are not allowed in scope “user”
Make sure to change the APP_URL in the .env file from “local_store_url” to “external_store_url”. Make sure you have specified actual HTTP or HTTPS
Uninstall and install the app again. Switching the app on and off will not address the issue