Improved Import, Export & Mass Actions app for Shopware 6 user manual

- E-Commerce, Our extensions, Shopware

Improved Import, Export & Mass Actions is the Shopware 6 app that is installed on your store, and allows you to import and export products and other entities in and out of your store fast and with the required values.

NOTE: The manual if for the MVP version of the application.

Performance

  • Maximum number of imported rows: 300000
  • Maximum number of exported rows: 300000
  • 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 from your Shopware 6 backend via Shopware Account for both on-prem and cloud installations.

  1. Log into your store’s backend and proceed to Extensions > Store
  2. Log into your Shopware Account
  3. Search for Improved Import, Export & Mass Actions
  4. Click Improved Import, Export & Mass Actions application
  5. Click ‘Add extension’ button
  6. Tick in the checkboxes and click ‘Subscribe to extension’ button.

This is it, you have just installed the application, which you can find under Extensions menu.

Installation troubleshooting

When installing the application to your Shopware 6 store make sure that:

  1. Your store is accessible by the external URL. Local installation of Shopware 6 is not supported by the app.
  2. That your store URL matches the APP_URL inside the .env file, including HTTP/HTTPS

Otherwise the app won’t work!

Find the extension

The app can be found in the ‘Settings’ section of your Shopware 6 administration panel. Navigate to Settings > Improved Import, Export and Mass Actions.

When at the main page of the app, you will see the Import procedure selected by default.

You can switch between Import and Export procedures by minimizing the system bar.

How to import data

Below, we explain how to import data to Shopware 6 using the Improved Import, Export and Mass Actions app.

NOTE:

  1. System properties available for Shopware products by default, cannot be excluded from import mapping in the current version.
  2. ‘Active’ product property should be imported with the empty value, if you want to disable the product.

Also, check our Shopware 6 Master Table to see different examples of update tables.

Step 1: Select file

In the first step, you are suggested to:

import xml to shopware

  1. Name your profile; 
  2. Select an entity you want to import (e.g., products or customers);
  3. 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).
  4. Configure email notifications;
    1. Enable the notification toggle.
    2. Choose your notification type: succeed, failed, or succeed and failed jobs.
    3. Specify an email address to send notifications to.
    4. Select the encryption.
    5. Specify the host for your email address.
    6. Type the port.
    7. Specify a sender’s username (an email address).
    8. Provide the corresponding password.
    9. You can attach job logs to the notification emails. However, they may be huge in size.
  5. 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 ‘Auto detect delimiter’ checkbox and let the extension do the job.
  6. Choose an import source (e.g., file, FTP, URL, Google Drive). If you provide a file via FTP, follow these steps:
    1. Specify your host;
    2. Enable/disable SSL;
    3. Specify your port;
    4. Provide a user email to get access to the remote file source;
    5. Specify the corresponding password;
    6. Type the remote path to your update file;
    7. 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.
      Shopware 6 Google Sheets Import
      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.
      Shopware Product import from URL
    8. Configure advanced settings that include:
      1. URL rewrite behavior; 
      2. media replacement behavior;
      3. stock increment strategy.

URL rewrite behavior

  • Display warnings – if this option is selected, the app informs you when there are URL duplicates in the imported file. Imported products, if they have the same URLs as the products available on your website, get new URLs based on the product name;
  • Increment duplicate – if this option is selected, the app imports products with duplicated URLs but updates their URLs as follows: “existing_url-n+1” where “n” is a duplicate’s number (“0” for the first duplicate so that its URL after the import is “existing_url-1”);
  • Force overwrite – this option forces the existing URLs to be assigned to the imported products if duplicated URLs are detected in the import file. So, the imported products get the existing URLs while the existing products have no URLs.

Replace media:

If this option is enabled, it deletes the existing product media, replacing it with images from the imported file.

Stock increment strategy

  • If disabled -> Qty of the product is updated to the one specified in the import file. If the store qty = 100 and the update qty is set to 50 in the import table, then after import the store qty = 50.
  • If enabled -> product qty is increased by the amount specified in the import file. If the actual product qty is 100 and the import table is set to 50, then after import the store qty = 150. 

If this feature is enabled, the Reload product before update toggle appears:

  • If disabled -> then qty is updated immediately without reloading the product data (following the selected stock increment strategy).
  • If enabled -> then the product data is reloaded first and then the qty is imported (following the selected stock increment strategy).

XML File Format

Note that for XML import to Shopware 6 your file structure should be organized as follows:

Where column names (attributes or properties) are stored between <item> and </item>.

import xml with the following structure

MIME Type

When you input a URL for importing, it’s essential to consider the file type associated with that address, as the application has limitations in handling all file formats. For instance, trying to use an image URL for CSV import from a URL will result in an error.

To prevent such issues, the application examines the file’s MIME type and refrains from downloading it if the MIME type is incompatible.

MIME type, an abbreviation for Multipurpose Internet Mail Extension, is a standard indicating the file format. It serves as a fundamental characteristic of a digital resource, affecting its accessibility and usability over time.

Here’s a 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 exceed

Step 2: Configure mapping

In the Configure Mapping section you are suggested to specify which columns from the imported file match properties of the products from your Shopware 6 store. If the table you’re importing doesn’t quite match the default criteria, fear not – you can easily swap out unsupported column names with the correct ones.

Shopware 6 Import app product properties mapping

Shopware requires the product properties to have a particular name, so the store would understand them. That’s why we want to let you import the files with property names different from the Shopware naming. Hence the mapping section:

  • The first row with the property names – is the properties from the file you are importing.
  • The second row, where you can choose the property – is the properties from your Shopware store.

Match these properties to import any file format.

Also, if your updates involve product variants, the mapping screen is a place where you’ve got some decisions to make. You can opt to use either the parent product’s SKU or ID for their assignment. Plus, you have the choice of either adding the new variants to your existing ones or completely replacing the old variants. It’s all about flexibility, tailored to your unique needs and how you prefer to manage your products. 

Shopware 6 Google Sheets Import

Mapping templates

To save your time, we introduced the mapping templates, which you quickly save and load the mappings you use often.

The mapping section comes with the ‘Default’ template which is loaded automatically to match the names of the properties from Shopware store with the names of the properties from your imported file.

If you want, you can re-map the properties manually, and save the template of your own. Just click ‘Save’ button and choose the name of the template, to quickly ‘Load’ it in the following imports.

What are product properties and how to work with them

Each of your Shopware 6 products has multiple fields, such as ‘Name’, ‘Product number’, ‘Manufacturer’ etc. These fields are product properties or attributes, whatever you call them. Each of these properties has a related database entity where the property’s values are stored. And each property inside the database has a dedicated internal name which doesn’t allow spaces.

When importing products you are directly addressing the database, so you need to address product properties as they are listed in the database.

Like this, the Manufacturer will be listed inside the database as ‘manufacturer_id’, and Product Number will have a name ‘product_number’. You can check the exported file to see how different properties are named.

This is important because when importing a file you will need to name the columns with product properties as they are named inside the Shopware, to let the extension understand that you are importing proper values for a particular property.

That’s where the Mapping section of the Improved Import, Export & Mass Actions comes into play.

For example:

Your supplier – Microsoft – sends you a CSV file with the products they supply to you. However, instead of ‘product_number’ and ‘name’ properties of the product they use ‘microsoft_product_number’ and ‘microsoft_name’.

If you were to import such a file, your Shopware won’t understand that ‘microsoft_product_number’ column contains the value for ‘product_number’ property of your product. That’s where you can use the Mapping section.

All you need to do is to match the column names you are importing with the relevant product properties. And then you are good to go. You can read more in our Shopware Mapping Guide.

Step 3: Preview results

Before starting the import procedure, the app suggests you preview how the products will actually look before you import them.

This has been done so that you could confirm that the product attributes and properties have the proper values and you can start the import process.

The ‘Preview result’ section allows you to check the first 100 rows from the imported file. When you have previewed the results, it is high time to start the import procedure.

Final step: Import

When you click ‘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 you will see the number of the imported products, excluding the child products of the configurable ones, and the average import time.

Once the process is finished you can check the products you have imported to the Shopware 6 store.

How to Import Delivery Time to Shopware 6

You can import delivery time fields to Shopware 6. There are 3 options:

  1. You can import delivery time by IDs using the delivery_time_id column. If all the delivery times are already created in Shopware then you can use IDs in your import file.
  2. If all the delivery time is already created in your store, but you don’t want to get all the IDs, then you can import delivery times by names using delivery_time_name column. In this case, our app will find an existing ID by name and attach it to the product.
  3. To create a new delivery time during import, use 4 columns to describe the new delivery time: delivery_time_name, delivery_time_min, delivery_time_max, and delivery_time_unit.

You can find an example in this table:

 

How to Import Advanced Pricing to Shopware 6

You can freely 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. 

shopware 6 advanced pricing: csv

The value in this column should look as follows:

ruleId:046ca0774ef543d8b606c2e2cfd0d43d,currencyId:b7d2554b0ce847cd82f3ac9bd1c0dfca,priceNet:0.8,priceGross:0.8,quantityStart:6,quantityEnd:|ruleId:046ca0774ef543d8b606c2e2cfd0d43d,currencyId:b7d2554b0ce847cd82f3ac9bd1c0dfca,priceNet:0.9,priceGross:0.9,quantityStart:3,quantityEnd:5|ruleId:046ca0774ef543d8b606c2e2cfd0d43d,currencyId:b7d2554b0ce847cd82f3ac9bd1c0dfca,priceNet:1,priceGross:1,quantityStart:1,quantityEnd:2

It’s a complex value that consists of attributes and values that describe multiple rules or price tiers. Tiers should be separated with a pipe (“|”) and attributes within them – with a comma (“,”). 

The example value transforms into 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.

shopware 6 advanced pricing: tiers

Below, you can see each Shopware 6 advanced pricing import attribute described.

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.

shopware 6 advanced pricing: import

How to export data

The export is even more simple.  You select the entity, output file type, and export destination, configure mapping, add filters, and hit the ‘Export’ button.

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: 

export out-of-stock products from Shopware 6

  1. Type your profile’s name
  2. 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.
    export latest orders shopware 6Read the corresponding guide here: How to export latest orders from Shopware 6.  
  3. Configure a schedule of updates;
  4. Configure email notifications;
  5. Select your file format. The app lets you export CSVXML, and XLSX files or Google Sheets spreadsheets;
  6. Next, choose your output source: FTP, Google DriveGoogle Sheets, or file download;
  7. Specify separators;
  8. 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 an export mapping screen. If you are going to provide your output to a third party, replace the default Shopware column titles with the names your partner requires. Just specifying new values in front of the default ones and the Improved Import, Export & Mass Actions application will make all the necessary changes.

export latest orders shopware 6

Note that you can export only the selected columns. Uncheck those that are not necessary in your output.

Also, it is possible to export custom fields separately in different columns (each custom field gets its own column). This feature works for products and orders.

Previously, all custom fields were exported in a single column. Now, you can find each custom field as a separate field on the mapping screen.

If you already have a saved export profile for orders and then create custom fields for orders, add values to the order, and save the order, then when the existing export profile is launched, these new custom fields are not exported. You need to create a new profile so that these new/created custom fields are added there, and then everything is exported successfully.

The latest version of our application also lets you change the order of columns and add default values:

Shopware 6 export column order and default values

  • 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 are applicable 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 lets you apply default values to the data you export.

A default value is assigned if the attribute to which the default value is set has no value.

For example, suppose we set a default value of “ 99” to the weight attribute. In that case, this value is assigned automatically to products that do not have any value specified for the weight attribute after the export.

shopware 6 default values export

Products with a value for the weight attribute specified in the admin preserve the value from the admin – the default value is ignored.

shopware 6 default values export

Step 3: Add filters

If you don’t want to export all records, you can create filters on the Filter screen: 

  1. Press the “+” button;
  2. Select a product property. For instance, you can choose orderDate to filter out orders by their creation date.
  3. Select an operator. For instance, Range lets you export records for a specific interval;
  4. Specify a value. If you export orders, and orderDate and Range are selected, you can export orders from today, yesterday, last week, month, etc.

export latest orders shopware 6

Note that it is possible to create multiple filters by clicking the Add filter button. 

Final step: Export

Click the Save & Close button to save your Shopware 6 export profile for further use. When you click the Export button, the app transfers the data from Shopware 6. 

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.

Product properties export and import

Default export and import

By default Shopware 6 exports products without the custom properties that you create for them. In other words, if you have added custom ‘Size’ or ‘Color’ properties to the product, these properties will not be exported along with the products.

You can export custom product properties as a dedicated export entity. However, in this file, you will not have any reference to the products they are assigned to. Making importing products back with the relevant values assigned impossible.

Improved export and import

With Improved Import, Export & Mass Actions app you are exporting custom properties along with the products in a convenient format, featuring both the database ID of the custom property and the name displayed in the store’s backend for quick reference.

The exported file can look like the screenshot below:

The columns in green color are the columns with the custom product properties which have the following format:

color#0bde8db993684f8b92a713913aa3d9c3

Where:

color – is the name of the property as it is displayed in the Shopware 6 backend

#0bde8db993684f8b92a713913aa3d9c3 – is the ID of the property as it is written in the database

How can you import products with properties

When importing products along with the properties you can import properties in THREE different formats – i.e. column names.

  1. property_name#property_id – the default column name format as you get it in the export file
  2. property_name – the second possible option is to import property is by naming the column with it as it is named in the Shopware 6 administrator panel
  3. #property_id – the third possible option is to use ID of the property solely, starting with the # symbol

When importing products with custom properties at the mapping step of the import procedure, you need to assign all custom properties from your file to:

  1. Find the custom property, for example ‘color’
  2. In the dropdown with the store properties select ‘propertiesSources’

Assign ‘propertiesSources’ to ALL of the custom properties you are importing. This way Shopware will understand what to do with them. Don’t mind the order or the format you will be using.

Why use both the name of the property and the id

Why use both the name of the property and the id and what is the difference in possible import formats?

In the Shopware 6 backend you can create as many custom properties for the product with the SAME name as you want. That’s why, if you have several product properties with the SAME name you need to identify them from one another.

That’s where you may need to use the property ID which looks like #0bde8db993684f8b92a713913aa3d9c3. The ID of the property is always unique and cannot be shared with any other property.

Shopware Configurable Product Import & Export

Below, we explain how to use import and export of configurable products to change their frontend display in Shopware 6.

Shopware Configurable Product Import

You can use import to control the display of configurable products with variants in product listening. Let’s see how this feature works in Shopware 6.5 and 6.4:

Shopware 6.5 Configurable Product Import

Depending on the values specified in your CSV table, the import of configurable products results in different front end display:

Case №1

If the Display Single Product as Main Product column has value “1” – true – and Display Single Product as Variant and Display as Expand Product are empty as shown below:

The Shopware configurable product import results in the selected Main product with an empty dropdown (a variant is not selected).

Case №2

If the Display Single Product as Main Product column has value “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 results in the selected Main product with an empty dropdown (a variant is not selected).

Case №3

If the Display Single Product as Main Product column has value “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 results in the selected Variant option in the Display single product section and the selected variant is a product with the ID specified in the CSV.

Case №4

If the Display Single Product as Main Product column has the value “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

The Shopware configurable product import results in the selected Variant option in the Display single product section and the selected variant is a product with the ID specified in the CSV.

At the same time, you also activate property values. They should be specified in the Display as Expand Product column; several values should be separated with “|”.

Shopware 6.4 Configurable Product Import

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 has value “1” – true – and Display Single Product as Variant and Display as Expand Product are empty as shown below:

The Main product is checked and the variant in the dropdown doesn’t change.

Case №2

If the Display Single Product as Main Product column has value “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 has been updated or remained the same (if the ID in the import file is of the variant that was selected).

Case №3

If the Display Single Product as Main Product column has value “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 has been updated or remained the same (if the ID in the import file is of the variant that was selected).

Shopware Configurable Product Export

When you export configurable products from Shopware, the output from 6.5 differs from a table created in 6.4. 

Shopware 6.5 Configurable Product Export

In Shopware 6.5, you export the following three columns:

  • display_single_product_as_main_product – this column corresponds to the ‘Display single product Main product’ check box. It contains “1” if the check box is on. It is empty if there is no check mark.
  • display_single_product_as_variant – this column is responsible for the ‘Display single product Variant’ checkbox and the Variant selected in the dropdown. The exported CSV contains a variant ID in the export file.
  • display_as_expand_product – this column corresponds to the ‘Expand property values in product listings’ check box. Its value consists of the name and ID of selected properties.

Shopware 6.4 Configurable Product Export

In Shopware 6.4, you export the same three columns:

  • display_single_product_as_main_ product and display_single_product_as_variant  are responsible for the Single main variant check mark and the Variant dropdown.
  • display_as_expand_product is exported empty. Even if you manually select the values as Expand, they still should not be exported in this version. It is also not possible to import the content of this column. However, it does not affect imports. If you have selected Expand property values in product listings, the values are not overwritten when importing and exporting the file.

Shopware Custom Field Import

Let’s see how to import custom field translations to Shopware 6

Shopware 6.5

Import of a new product:

  1. If we import a custom attribute of type ‘cf_’ → Values are imported successfully for all languages. (Not only for the main language, but for all of them).
  2. There are no translations columns for custom attributes of the select type, so translations cannot be imported.
  3. There are no translations columns for custom price attributes, so translations cannot be imported.
  4. For custom attributes such as checkbox and active switch → The same value is imported in different languages while different values are specified in the import file.

Product update:

  1. If we update the select attribute on the ‘cf_’ column, the attribute is updated only in the main language, it is not updated in the others.
  2. If we update the price attribute on the ‘cf_’ column, the attribute is updated only in the main language, it is not updated in the others.
  3. For custom attributes such as checkbox and active switch → if we set different values in different languages, then when importing, the values in different languages are different, as it were. They are not reset or updated to the same value as in the main language.

For custom attributes of the text_field, data_time, number_field, media_field, color_picker, and text_editor type, you can import translations and unique values for the custom field when importing a new product and during an update.

Shopware 6.4

Import of a new product:

  1. If we import a custom attribute of the ‘cf_’ type → Values are imported only for the main language.
  2. There are no translations columns for custom attributes of the select type, so translations cannot be imported.
  3. For custom attributes such as checkbox and active switch → Different values are imported in different languages when different values are specified in the import file.

 

Product update:

  1. If we update the select attribute on the ‘cf_’ column, the attribute is updated only in the main language, it is not updated in others.
  2. For custom attributes such as checkbox and active switch → if we set different values in different languages, then when importing, the values in different languages are different, as it were. They are not reset or updated to the same value as in the main language.

For custom attributes of the text_field, data_time, number_field, media_field, color_picker, and text_editor type, you can import translations and unique values for the custom field when importing a new product and during an update.

FAQ & Troubleshooting

1. I get error message “cURL error 6: Could not resolve host”

  1. Make sure your store is accessible by the external URL. Local installation of Shopware 6 is not supported by the app.
  2. 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
  3. Uninstall and install the app back. Switching the app on and off will not address the issue
  4. Clear browser cache, or use the incognito window.

2. I get error message “Write access to entity “acl_role” are not allowed in scope “user”

  1. 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
  2. Uninstall and install the app back. Switching the app on and off will not address the issue
  3. Clear browser cache, or use the incognito window.