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

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 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.

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.

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.