It's easy to manage your content in Shopware 6. You can use imports and exports to review your existing content or transfer it to interfaces or evaluation tools. In this documentation we generally describe the options you have for imports and exports.
You can find the menu item in your administration under Settings > Shop > Import/Export.
Some programs like Excel do not support UTF-8 compliant encoding and encode the umlauts in a separate format. If you use umlauts, make sure that the CSV is UTF-8 compliant.
Make sure that the character sets are in the format UTF-8 and are separated with semicolons. If quotation marks appear, they will also be interpreted as string separators. The UTF-8 format and the separators semicolon and quotation marks are the basic requirements for a successful import into Shopware. In most spreadsheet programs, such as Libre Office set this in advance.
The required field options are:
Character set | UTF-8 |
Field separator | Semicolon |
String separator | Quotation marks |
In the tab Import you have the ability to import data into your Shopware 6 environment using CSV files.
Note that you can generally only add information with the import, but not remove it. For example, if a product has a sales channel assignment, this cannot be removed by an import.
Decimal places in the price are always separated by a point. Example: 5.00 instead of 5,00. If you set a comma, the price will not be imported correctly. So make sure that every price with the database entry "price" is separated by a dot.
Upload CSV file (1):
Select the native CSV file from your PC which should be used for the import. The CSV file should contain the data to be imported into your Shopware 6 environment.
Some spreadsheet programs may affect the separators or leading zeros of CSV files. Therefore you should be careful to use a tool that creates native CSV files. A free tool that creates native CSVs is Open Office Calc.
Select profile (2):
Select the profile that is used to import the CSV file. The profile determines which data from the CSV file is stored in which database tables.
Start import (3):
With this button you start the import of the CSV file using the selected profile. Now all records are validated and all error-free records are imported. All erroneous records are combined in a new CSV file, which can be downloaded afterwards.
Start dry run (4):
With this button you can test the import once completely before you actually start it. This way you can test before the import if the complete import file can be imported or if there will be problems during the import. In this way, you can prevent the file from being only partially imported before the import, so that the import may have to be re-completed later.
Import activity (5):
In the Import activity you can see a history of your past imports. All imports of the last 30 days are displayed here.
Using the context menu at the end of each line, you can download the imported source CSV file again and open the profile used. For imports with erroneous records, you can also download a CSV file that contains only the erroneous data.
Abort process (6):
Using the context menu on the right side of each import entry in the import activities, you can also cancel an import process during the import. Note that it may happen that some data has already been imported.
In the Export tab you can export existing data from your Shopware 6 environment and convert it into a CSV file.
Export (1):
In the Export section you select which data should be exported based on the profile. A list of which profile outputs which data can be found in the Profiles section.
Select profile (2):
Select the profile that is used to export your data to the CSV file. The profile determines which data from the database is written into the CSV file.
Start export (3):
With this button you start the export of the data using the selected profile.
Export activity (4):
In the export activity you can see a history of your past exports. All exports of the last 30 days are displayed here.
You can open the used profile and download the CSV file again using the context menu at the end of each line.
Using AI Copilot, you can easily export certain data with the help of AI.
The AI Copilot is an extension that is part of the Shopware Rise plan. It is also necasarry to enable the Commercial extension.
Enable AI Copilot (1):
In this section you can activate the AI-powered export assistant. If you click there, the Export assistant module will open.
In the module you will find suggestions that can be processed by the Export assistant.
In this version of the assistant only customer, product, order, category, newsletter, promotion code, promotion discount, properties, cross-selling and product price data are supported.
In the tab Profiles you manage the profiles which are used for import and export. The profile that is selected for import and export specifies which database entries are accessed during import/export.
Profile overview (1):
In the profile overview you will find all created profiles. It also indicates whether it is a standard or a user created profile.
Menu (2):
Use this context menu to open or delete the profile. In addition, the profile can be duplicated and modified using this context menu.
Create new profile (3):
Use the button to create a completely new profile.
Search (4):
If the profile overview loses its clarity due to too many created profiles, you can find each created profile by using the search function.
If you create your own profile, make sure that you have selected the default system language (top right using the language selector). This also applies to profiles that are to be valid for another language. Otherwise an import/export is not possible. The default system language is the language you chose at the very beginning of your Shopware installation.
In addition to the standard profiles, which are provided by Shopware, you also have the option to create your own profiles. You can create a new profile under Settings > Shop > Import/Export in the tab Profiles. There are two ways to create a new import/export profile. Using the context menu next to each profile you can duplicate the corresponding profile. This way you can duplicate and modify an existing profile or one of the standard profiles.
With the button add new profile you can also create a completely new profile and start from scratch. A new window will open in which you can enter the following information:
Profile name (1):
The profile name is used in the profile list and in the profile selection in import and export.
Usage (2):
Here you can choose whether the profile should be used for importing data, for exporting or for both ways. With profiles that are intended for import, export is not possible.
Object type (3):
The object type specifies which database tables and columns the profile can access. For instance, the object type Product can be used to access all product-relevant entries from the database, while the type Customer can be used to access all customer-relevant entries.
Separator character (4):
The separator character is used to separate the fields in the CSV file. This is the semicolon is default.
Enclosure character (5):
The enclosure character appears at the beginning and end of a text. Within these characters, separator characters are ignored.
Import settings (6):
Here you can define how the import should handle the values of the import file. With the button Create new records you define if the import is able to create new records in the store. For this purpose, the ID in the import file can be left empty. With Update existing data the import is enabled to overwrite existing information in the store.
In this window you have the possibility to create your profile based on an already existing CSV file. For example, you can use the export from another store. The profile then receives the fields from the CSV file, which you can then assign to the database entries.
If you want to create the profile from scratch, you can also skip this step.
Add new mapping (1):
With this button you can add a line to the database mapping. In the still empty line you select a database entry to be accessed and enter the name of the column from the CSV file.
Database mapping (2):
In the database mapping you assign a column from the CSV file to the desired entries from the database. The CSV name that you assign here must be the name of the corresponding column in the CSV file that is used with this profile.
Required (3):
Specify here whether the respective field should be a required field. It must then be filled in the import file so that the import works without errors.
Default Value (4):
Here you can enter a default value in case the field was not filled in the import file. In this case the default value will be imported.
Position (5):
Here you define at which position of the CSV file the respective field is expected.
Delete (6):
You can remove each entry by using the context menu behind it.
When creating a new profile, the mandatory fields are automatically created and added.
Up to now, the import always required a UUID in order to assign the data to the correct entities. For example, a long, cryptic UUID had to be specified in each line of the CSV import file.
With a second unique identifier (identifier), you can now determine for yourself which identifier the data are mapped to with the entities.
For example, you can specify that the productNumber must now be specified instead of the UUID when importing products. The UUID is thus replaced by another identifier, the product number.
To use the feature, go to Settings > Import/Export and go to the Profiles tab. When you open the profile, you will find the Advanced Settings tab.
In this example we edit the product profile and define a new mapping.
On the left side you will find all entities (1) of the profile to which you can assign a new identifier.
The current identifiers (2) are displayed next to this. The mapping takes place on the basis of this assignment.
To assign a new identifier, you can open the dropdown (3) and display and select all available identifiers.
Note that not every mapping with a new identifier necessarily makes sense. For example, if you have products with the same name in your system and you also use the name (translation.DEFAULT.name) as the new identifier, the system can only identify and import the first data record.
In the following you will find all database entries of the individual object types.
Only a complete profile can be saved. This contains at least the following mandatory fields: id, taxId, productNumber, stock, name.
Special id: When creating a new entry, the ID is generated by the system. Therefore, the column should remain empty when creating a new one.
Database entry | Description | Database table |
active | Indication whether the product is active | product |
autoIncrement | Unique decimal number | product |
available | Indication if the product is available | product |
availableStock | Available stock | product |
childCount | Number of variants | product |
configuratorGroupConfig | Own sorting of the properties | product |
cover.id | UUID of the preview image of the article | product_media |
cover.versionId | UUID which indicates the version of the preview image of the article. | product_media |
cover.media.Id | UUID of the preview image of the article. A dot can be set behind media to access further fields within media. | media |
cover.position | Position of the preview image in the media overview of the article. | product_media |
cover.customFields | Preview image additional field | custom_field |
cover.createdAt | Preview image uploaded | product_media |
cover.updatedAt | Preview image updated | product_media |
customSearchKeywords | Search keywords | product_translation |
deliveryTime.id | UUID of delivery time | delivery_time |
deliveryTime.name | Name of the delivery time | delivery_time_translation |
deliveryTime.customFields | Delivery time additional fields | delivery_time_translation |
deliveryTime.min | Minimum delivery time | delivery_time |
deliveryTime.max | Maximum delivery time | delivery_time |
deliveryTime.unit | Delivery time Unit | delivery_time |
deliveryTime.translations | Translations of the deliveryTime fields. A dot can be placed behind translations to access further fields. | delivery_time_translation |
deliveryTime.createdAt | Delivery time created | delivery_time |
deliveryTime.updated | Delivery time updated | delivery_time |
ean | EAN number | product |
height | Product height | product |
Id | UUID which is assigned by the system. This column should be left empty when creating new articles. | product |
isCloseout | Sale | product |
length | Length | product |
manufacturer.id | UUID of the manufacturer | product_manufacturer |
manufacturer.versionId | UUID which indicates the version of the manufacturer. | product_manufacturer |
manufacturer.link | Manufacturer's website | product_manufacturer |
manufacturer.name | Manufacturer's name | product_manufacturer_translation |
manufacturer.description | Manufacturer's description | product_manufacturer_translation |
manufacturer.customFields | Manufacturer Additional fields | product_manufacturer_translation |
manufacturer.media.Id | UUID of the manufacturer picture. A dot can be placed behind media to access further fields within media. | media |
manufacturer.translations | Translations of the manufacturer fields. A dot can be placed behind translations to access further fields. | product_manufacturer_translation |
manufacturer.createdAt | Manufacturer created | product_manufacturer |
manufacturer.updatedAt | Manufacturer updated | product_manufacturer |
manufacturerNumber | Manufacturer's product number | product |
markAsTopseller | Promote product | product |
maxPurchase | Maximum purchase | product |
media | URL of all product images except the cover image. | is generated |
minPurchase | Minimal purchase | product |
optionIds | Variant options | product_option |
options | Variant options | property_group_option |
parent | Fields of the main product for variant articles. You can set a period after parent and thus access all fields that are also available in the Object Type Product. | product |
price.DEFAULT.net | Standard net price. DEFAULT can be replaced by the respective currency. e.g. EUR | product |
price.DEFAULT.gross | Standard gross price. DEFAULT can be replaced by the respective currency. e.g. EUR | product |
price.DEFAULT.currencyId | UUID of the currency. DEFAULT can be replaced by the respective currency. e.g. EUR | currency |
price.DEFAULT.linked | Indicates whether the net and gross price are linked. DEFAULT can be replaced by the respective currency. e.g. EUR | product |
price.DEFAULT.listPrice | Extended prices. DEFAULT can be replaced by the respective currency. e.g. EUR | product |
productNumber | Product number | product |
properties | UUID of the properties separated by a pipe symbol (|). | property_group_option |
purchasePrice | Purchase price | product |
purchaseSteps | Scaling | product |
purchaseUnit | Sales unit | product |
ratingAvarage | Average valuation | product |
referenceUnit | Basic unit | product |
releaseDate | Release date | product |
restockTime | Restock time | product |
shippingFree | Free shipping | product |
stock | Stock | product |
tagIds | Product tags | product_tag |
tags | UUID of the tags, separated by a pipe symbol (|) | product_tag |
tax.Id | UUID of the tax rate | tax |
tax.taxRate | Percentage | tax |
tax.name | Tax name | tax.translate |
tax.customField | Additional fields | custom_field |
tax.createdAt | Tax rate created | tax |
tax.updatedAT | Tax rate updated | tax |
translations.DEFAULT | All language dependent product fields. DEFAULT can be replaced by the language and the respective field can be accessed by a subsequent dot. e.g. translations.en-GB.name | product_translation |
unit.Id | UUID of the measurement units | unit |
unit.shortCode | Unit of measurement Abbreviation | unit_translation |
unit.name | Unit of measurement name | unit_translation |
unit.customFields | Measurement unit Additional fields | unit_translation |
unit.translations | Translations of the unit of measurement fields. A dot can be placed after translations to access further fields. | unit_translation |
unit.createdAt | Unit of measurement created | unit |
unit.updatedAt | Unit of measurement updated | unit |
variantRestrictions | Excluding variants from the variant generator | product |
variantListingConfig | Storefront presentation (display of the variants in the storefront) | product |
versionId | UUID which indicates the version of the article. | product |
visibilities.all | UUID of the sales channel in which the article is completely available | product_visibility |
visibilities.link | UUID of the sales channel in which the article is hidden and only accessible through the direct link | product_visibility |
visibilities.search | UUID of the sales channel in which the article is only accessible by search. | product_visibility |
weight | Weight | product |
width | Width | product |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, defaultBillingAddressId, defaultShippingAddressId, customerNumber, firstName, lastName, email.
Special id: When creating a new entry, the ID is generated by the system. Therefore, the column should remain empty when creating a new one.
Please make sure you disable emailing (Settings > System > Mailer) before importing customers as from version 6.4.9.0 to prevent registration emails from being sent out to each individual customer after the import.
Database entry | Description | Database table |
active | Indication whether the customer is active | customer |
affiliateCode | Affiliate code | customer |
autoincrement | Unique decimal number | customer |
birthday | Birthday | customer |
campaignCode | Campaign code | customer |
company | Company | customer |
createdAt | When was the customer created | customer |
customFields | Customers additional fields | customer |
customerNumber | Customer number | customer |
defaultBillingAddress.id | UUID of the billing address | customer |
defaultBillingAddress.firstName | First name of Invoice address | customer_address |
defaultBillingAddress.lastName | Invoice address surname | customer_address |
defaultBillingAddress.zipcode | Invoice address postcode | customer_address |
defaultBillingAddress.city | Invoice address city | customer_address |
defaultBillingAddress.company | Invoice address company | customer_address |
defaultBillingAddress.street | Invoice address street | customer_address |
defaultBillingAddress.department | Invoice address department | customer_address |
defaultBillingAddress.title | Invoice address title | customer_address |
defaultBillingAddress.vatId | Invoice address Tax-IdNr. | customer_address |
defaultBillingAddress.phoneNumber | Invoice address phone number | customer_address |
defaultBillingAddress.additionalAddressLine1 | Address suffix 1 of the invoice address | customer_address |
defaultBillingAddress.additionalAddressLine2 | Address suffix 2 of the invoice address | customer_address |
defaultBillingAddress.customFields | Additional fields of the invoice address | customer_address |
defaultBillingAddress.customer | Customer fields of the invoice address. A dot can be placed after customer to access further fields. | customer, customer_address |
defaultBillingAddress.country | Country fields of the invoice address. A dot can be set after country to access further fields. | customer_address, country, country_translation |
defaultBillingAddress.countryState | State fields of the invoice address. Behind countryState a dot can be set and thus further fields can be accessed. | customer_address, country_state, country_state_translation |
defaultBillingAddress.salutation | Salutation fields of the invoice address. A dot can be placed after salutation to access further fields. | customer_address, salutation, salutation_translation |
defaultBillingAddress.createdAt | When was the invoice address created | customer_address |
defaultBillingAddress.updatedAt | When was the invoice address update | customer_address |
defaultPaymentMethod.id | UUID of the standard payment type | customer |
defaultPaymentMethod.pluginID | UUID of the plug-in of the default payment method | payment_method |
defaultPaymentMethod.handleridentifier | Storage location of the PaymentHandler | payment_method |
defaultPaymentMethod.name | Name of the default payment method | payment_method |
defaultPaymentMethod.description | Description of the default payment method | payment_method |
defaultPaymentMethod.position | Position of the default payment type | payment_method |
defaultPaymentMethod.active | Specifies whether the default payment type is active. | payment_method |
defaultPaymentMethod.customFields | Additional fields of the default payment type | payment_method_translation |
defaultPaymentMethod.formattedHandlerIdentifier | Shortened form of the HandlerIdentifier | payment_method |
defaultPaymentMethod.translations | Translations of the default payment method. A dot can be placed after translations to access additional fields. | payment_method, payment_method_translation |
defaultPaymentMethod.media | Fields of the payment method logo. A dot can be set behind media and thus access further fields within media. | payment_method, media |
defaultPaymentMethod.availabilityRule | Fields of the payment type availability rule. You can set a point behind availabilityRule and thus access further fields. | payment_method, rule |
defaultPaymentMethod.plugin | Fields of the payment method plug-in. Behind the plugin a dot can be set and thus further fields can be accessed. | payment_method, plugin |
defaultPaymentMethod.salesChannels | Sales channels in which the default payment method is stored, separated by a "pipe" symbol (|) | payment_method |
defaultPaymentMethod.createdAt | When was the default payment type created? | payment_method |
defaultPaymentMethod.updatedAt | When was the default payment method updated? | payment_method |
defaultShippingAddress.id | UUID of the delivery address | customer |
defaultShippingAddress.firstName | First name of delivery address | customer_address |
defaultShippingAddress.lastName | Surname of delivery address | customer_address |
defaultShippingAddress.zipcode | Postcode of delivery address | customer_address |
defaultShippingAddress.city | Postcode of delivery address | customer_address |
defaultShippingAddress.company | Company of delivery address | customer_address |
defaultShippingAddress.street | Street of delivery address | customer_address |
defaultShippingAddress.department | Department of the delivery address | customer_address |
defaultShippingAddress.title | Delivery address title | customer_address |
defaultShippingAddress.vatId | Tax ID number of the delivery address | customer_address |
defaultShippingAddress.phoneNumber | Phone number of the delivery address | customer_address |
defaultShippingAddress.additionalAddressLine1 | Address suffix 1 of the delivery address | customer_address |
defaultShippingAddress.additionalAddressLine2 | Address suffix 2 of the delivery address | customer_address |
defaultShippingAddress.customFields | Additional fields of the delivery address | customer_address |
defaultShippingAddress.customer | Customer fields of the delivery address. A dot can be placed after customer to access further fields. | customer, customer_address |
defaultShippingAddress.country | Country fields of the delivery address. A dot can be set behind country to access further fields. | customer_address, country, country_translation |
defaultShippingAddress.countryState | State fields of the delivery address. Behind countryState a dot can be set and thus further fields can be accessed. | customer_address, country_state, country_state_translation |
defaultShippingAddress.salutation | Salutation fields of the delivery address. A dot can be placed after salutation to access further fields. | customer_address, salutation, salutation_translation |
defaultShippingAddress.createdAt | When was the delivery address created | customer_address |
defaultShippingAddress.updatedAt | When was the delivery address updated | customer_address |
doubleOptInConfirmDate | When was the doubleOptIn mail confirmed? | customer |
doubleOptInEmailSendDate | When was the doubleOptIn mail send? | customer |
doubleOptInRegistration | Was doubleOptIn registration active during registration? | customer |
customer | ||
firstLogin | First login of the customer | customer |
firstName | First name | customer |
group.id | UUID of the customer group | customer |
group.name | Customer group name | customer_group |
group.displayGross | Tax representation of the customer group | customer_group |
group.customFields | Customer groups additional fields | customer_group_translation |
group.translations | Translations of the customer group fields. A dot can be placed behind translations to access further fields. | customer_group_translation |
group.createdAt | When was the customer group created? | customer_group |
group.updatedAt | When was the customer group updated? | customer_group |
guest | Is it a guest order? | customer |
hash | Hash value, which is used for the doubleOptIn confirmation mail, | customer |
Id | UUID of the customer. When creating a new ID, the system generates it. Therefore, the column should remain empty. | customer |
language.id | UUID of the language | customer |
language.name | Name of the language | language |
language.customFields | Language additional fields | language |
language.parent | UUID of the language from which it is inherited. | language |
language.locale | Fields of language localization. A dot can be placed after locale to access further fields. | language, locale, locale_translation |
language.translationCode | ISO code fields of the language. A dot can be placed after translationCode to access further fields. | language, locale, locale_translation |
language.salesChannels | UUID of the sales channels where the language is used. | language |
language.createdAt | When was the language created | language |
language.updatedAt | When was the language updated | language |
lastLogin | Last login of the customer | customer |
lastName | Surname | customer |
lastOrderDate | Date of the last order | customer |
lastPaymentMethods | Fields of the last payment method. A dot can be set behind lastPaymentMethods to access additional fields. | customer, payment_methods, payment_methods_translation |
legacyEncoder | Encoder to decrypt foreign system password | customer |
legacyPassword | Encrypted password from another system, e.g. after a migration | customer |
newsletter | Has the customer opted in to the newsletter? | customer |
orderCount | Number of orders | customer |
password | Encrypted hash value of the password | customer |
remoteAddress | Customer's IP address | customer |
salesChannel.id | UUID of the sales channel to which the customer is assigned | customer |
salesChannel.type. | Fields for the sales channel type. A dot can be placed after type to access further fields. | sales_channel, sales_channel_type, sales_channel_type_translation |
salesChannel.language. | Fields for the language of the sales channel. A dot can be placed after language to access further fields. | sales_channel, language, language_translation |
salesChannel.customerGroup. | Fields for the standard customer group of the sales channel. After customerGroup, you can set a period and thus access further fields. | sales_channel, customer_group, customer_group_translation |
salesChannel.currency | Fields for the default currency of the sales channel. You can set a period after currency to access other fields. | sales_channel, currency, currency_translation |
salesChannel.paymentmethod | Fields for the standard payment type of the sales channel. You can set a point after paymentmethod to access further fields. | sales_channel, payment_method, payment_method_translation |
salesChannel.shippingMethod | Fields for the standard shipping type of the sales channel. You can set a period after shippingMethod to access additional fields. | sales_channel, shipping_method, shipping_method_translation |
salesChannel.country | Fields for the default country of the sales channel. You can set a period after country to access other fields. | sales_channel, country, country_translation |
salesChannel.navigationCategory | Fields for the category that is defined as the entry point for the main navigation of the sales channel. You can set a point behind navigationCategory to access additional fields. | sales_channel, category, category_translation |
salesChannel.navigationCategoryDepth | Main navigational levels | sales_channel |
salesChannel.footerCategory | Fields for the category that is stored as the entry point for the footer navigation of the sales channel. You can set a point after footerCategory to access additional fields. | sales_channel, category, category_translation |
salesChannel.serviceCategory | Fields for the category that is defined as the entry point for the service navigation of the sales channel. You can set a point after serviceCategory to access additional fields. | sales_channel, category, category_translation |
salesChannel.mailHeaderFooter | fields for the header and footer template of the sales channel is stored. Behind mailHeaderFooter a dot can be set and thus further fields can be accessed. | sales_channel, mail_header_footer, mail_header_footer_translation, |
salesChannel.name | Name of the sales channel | sales_channel |
salesChannel.shortName | Sales channel abbreviation | sales_channel |
salesChannel.accessKey | API access | sales_channel |
salesChannel.configuration | Config entries for the sales channel | sales_channel |
salesChannel.active | Specifies whether the sales channel is active | sales_channel |
salesChannel.maintenance | Maintenance mode | sales_channel |
salesChannel.maintenanceWhiteList | Maintenance mode whitelist | sales_channel |
salesChannel.customFields | Sales channel additional fields | sales_channel_translation |
salesChannel.translations | Translations of the sales channel fields. A dot can be placed after translations to access further fields. | sales_channel_translation |
salesChannel.currencies | Sales channel currencies | sales_channel_currency |
salesChannel.languages | Sales channel languages | sales_channel_language |
salesChannel.countries | Sales channel countries | sales_channel_country |
salesChannel.paymentMethods | Sales channel payment methods | sales_channel_payment_method |
salesChannel.shippingMethods | Sales channel shipping methods | sales_channel_shippingMethod |
salesChannel.createdAt | When was the sales channel created | sales_channel |
salesChannel.updatedAt | When was the sales channel updated | sales_channel |
salesChannel.themes | Which theme is assigned to the sales channel | theme_sales_channel |
salutation.id | UUID of the salutation | |
salutation.salutationKey | Technical name of the salutation | salutation |
salutation.displayName | Name of the salutation | salutation_translation |
salutation.letterName | Address by letter | salutation_translation |
salutation.translations | Translations of the salutation fields. A dot can be placed after translations to access additional fields. | salutation, salutation_translation |
salutation.createdAt | When was the salutation created | salutation |
salutation.updatetAt | When was the salutation updated | salutation |
tags | Customer tags | customer_tag |
title | Title | customer |
updatedAt | When was the customer updated | customer |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, type, name.
Special id: When creating a new entry, the ID is generated by the system. Therefore, the column should remain empty when creating a new one.
Database entry | Description | Database table |
active | Indicates whether the category is active | category |
afterCategoryId | UUID of the category before this category | category |
afterCategoryVersionID | Version of the category before this category | category |
autoincrement | Unique decimal number | category |
childCount | Number of subcategories | category |
cmsPage.id | UUID of the deposited shopping experiences | category |
cmsPage.name | Name of the deposited shopping experiences | cms_page_translation |
cmsPage.type | Layout Type of the stored shopping experiences | cms_page |
cmsPage.customFields | Shopping experiences Additional fields | cms_page_translation |
cmsPage.locked | Shopping experiencesmay not be edited. | cms_page |
cmsPage.translations | A dot can be placed behind translations to access additional fields. | cms_page, cms_page_translation |
cmsPage.previewMedia | Fields for preview picture of the world of experience. Behind previewMedia a dot can be set and thus further fields can be accessed. | cms_page, media |
cmsPage.createdAt | When was the shopping experiences created | cms_page |
cmsPage.updatedAt | When was the shopping experiences updated | cms_page |
id | UUID of the category. When creating a new ID, the system generates it. Therefore, the column should remain empty. | category |
level | Category level | category |
media | Fields of the category display image. A dot can be placed after media to access further fields. | category, media |
parent | Fields of the parent category. A dot can be placed after parent to access further fields. | category, category_translation, media |
path | Path to category | category |
products | UUID of the products deposited in the category, separated by fine "Pipe" symbol (|) | product_category |
tags | Category tags | category_tag |
translations.DEFAULT e.g. translations.de_DE.name translations.de_DE.description translations.en_GB.keywords | All Language dependent category fields. DEFAULT can be replaced by the language and the respective field can be accessed by a subsequent period. For instance translations.en-GB.name | category, category_translation |
type | Category type | category |
versionId | UUID which indicates the version of the category. | category |
visible | Hide in the navigation | category |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, salesChannelId, orderDateTime, stateId.
Database entry | Description | Database table |
affiliateCode | Partner Code | order |
amountNet | Net amount | order |
amountTotal | Total amount | order |
autoIncrement | Unique decimal number | order |
billingAddress.additionalAddressLine1 | Address addition to the billing address | order_address |
billingAddress.additionalAddressLine2 | Address addition to the billing address | order_address |
billingAddress.city | City of the billing address | order_address |
billingAddress.company | Company | order_address |
billingAddress.country | Country | order_address |
billingAddress.country.active | Country is active | country |
billingAddress.country.checkVatIdPattern | country | |
billingAddress.country.companyTax | Company tax | country |
billingAddress.country.companyTaxFree | Company is tax free | country |
billingAddress.country.customerTax | Customer tax | country |
billingAddress.country.displayStateInRegistration | Region is displayed in the registry | country |
billingAddress.country.forceStateInRegistration | Region is required | country |
billingAddress.country.id | Billing address ID | order_address country |
billingAddress.country.iso | ISO-Code | country |
billingAddress.country.iso3 | ISO 3-Code | country |
billingAddress.country.position | Position | country |
billingAddress.country.salesChannels | Sales channel ID | sales_channel_id |
billingAddress.country.shippingAvailable | Billing address available for shipping | country |
billingAddress.country.taxFree | Tax free | country |
billingAddress.country.translated | country_state_translation | |
billingAddress.country.translations.DEFAULT. bsp. billingAddress.country.translations.de-DE.country billingAddress.country.translations.en-GB.country | ||
billingAddress.country.vatIdPattern | ||
billingAddress.country.vatIdRequired | Vat required | country |
billingAddress.countryId | bBilling address ID | order_adress |
billingAddress.countryState.active | State is active | country_state |
billingAddress.countryState.shortCode | Shortcode | country_state |
billingAddress.countryState.translated | ||
billingAddress.countryState.translations bsp. billingAddress.countryState.translations.de-DE.countryState billingAddress.countryState.translations.en-GB.countryState | ||
billingAddress.countryStateId | State ID | order_adress country_state |
billingAddress.createdAt | When the billing address was created | order_adress |
billingAddress.customFields | Custom fields | order_adress |
billingAddress.department | Department | order_adress |
billingAddress.firstName | First name | order_adress |
billingAddress.id | UUID if the address | order_adress |
billingAddress.lastName | Last name | order_adress |
billingAddress.order.affiliateCode | Partner code | order |
billingAddress.order.amountNet | Net amount | order |
billingAddress.order.amountTotal | Total amount | order |
billingAddress.order.autoIncrement | Unique decimal number | order |
billingAddress.order.billingAddressId | Billing address ID | order |
billingAddress.order.billingAddressVersionId | UUID, which indicates the version of the billing address | order |
billingAddress.order.campaignCode | Campaign code | order |
billingAddressId | UUID of the billing address | order |
billingAddressVersionId | UUID, which indicates the version of the billing address | order |
campaignCode | Campaign code | order |
createdAt | When the order was created | order |
createdBy. bsp. createdBy.admin createdBy.firstName | Created by | order |
currency.translated | curreny_translation | |
currency.factor | Currency factor | currency |
currency.id | Curreny ID | order |
currency.isSystemDefault | System default currency | |
currency.isoCode | ISO-code | currency |
currency.itemRounding | Decimal place | currency |
currency.position | Position | currency |
currency.salesChannels | Currency of Sales channel | sales_channel_currency |
currency.symbol | Symbol of the currency | currency |
currency.taxFreeFrom | Tax free from | currency |
currency.translated e.g. currency.translations.de-DE.createdAt currency.translations.en-GB.createdAt | curreny_translation | |
currencyFactor | Currency factor | order |
currencyId | Currency ID | order currency |
customFields | Custom fields | order |
customerComment | Customer comment | order |
deepLinkCode | Code for deep link | order |
deliveries.createdAt | Created at | order_delivery |
deliveries.customFields | Custom fields | order_delivery |
deliveries.id | Lieferung ID | order_delivery |
deliveries.order | ||
deliveries.orderId | UUID of order | order_delivery |
deliveries.orderVersionId | UUID, which indicates the version of the order | order_delivery |
deliveries.positions | Delivery position | order_delivery_position |
deliveries.shippingCosts | Shipping costs | order_delivery |
deliveries.shippingDateEarliest | Shipping date earliest | order_delivery |
deliveries.shippingDateLatest | Shipping date latest | order_delivery |
deliveries.shippingMethod | Shipping method | order_delivery |
deliveries.shippingMethodId | Shipping method ID | order_delivery |
deliveries.shippingOrderAddress | Shipping order address | |
deliveries.shippingOrderAddressId | Shipping order address ID | order_delivery |
deliveries.stateId | ID of state | order_delivery |
deliveries.stateMachineState. | Order status | state_machine_state |
deliveries.trackingCodes | Partner code | order_delivery |
deliveries.updatedAt | Updated at | order_delivery |
deliveries.versionId | Delivery version ID | order_delivery |
id | ID | order |
itemRounding | Decimal places | currency |
language. bsp. language.id language.locale | Diverse language information | language |
languageId | UUID of language | order |
lineItems | order_line_item | |
orderCustomer.company | Company | order_customer |
createdBy.recoveryUser.user.aclRoles |
Only a complete profile can be saved. This contains at least the following mandatory fields: id.
Database entry | Description | Database table |
avatarUser | Fields for the user to which this picture is assigned as avatar. Behind avatarUser a dot can be set and thus further fields can be accessed | media |
fileExtension | File extension | media |
fileName | File name | media |
fileSize | File size | media |
id | UUID of the media file. When creating a new ID, the system generates it. Therefore, the column should remain empty. | media |
mediaFolder.childCount | Number of subfolders | media_folder |
mediaFolder.configuration.createThumbnails | Generate thumbnails for this folder | media_folder_configuration |
mediaFolder.configuration.createdAt | When were the folder settings created. | media_folder_configuration |
mediaFolder.configuration.customFields | Additional fields for the folder settings | media_folder_configuration |
mediaFolder.configuration.id | UUID of the configuration | media_folder |
mediaFolder.configuration.keepAspectRation | Keep aspect ratio | media_folder_configuration |
mediaFolder.configuration.mediaThumbnailSizes | Thumbnail size | media_folder_configuration |
mediaFolder.configuration.thumbnailQuality | Thumbnail quality | media_folder_configuration |
mediaFolder.configuration.updatedAt | When were the folder settings updated | media_folder_configuration |
mediaFolder.createdAt | When were the folder created | media_folder |
mediaFolder.customFields | Media folder additional fields | media_folder |
mediaFolder.defaultFolder | fields to the default location. Behind defaultFolder a dot can be set and thus further fields can be accessed. | media_folder, media_default_folder |
mediaFolder.id | UUID of the folder where the media file is located | media |
mediaFolder.name | Folder name | media_folder |
mediaFolder.parent | Fields to the folder above this folder. A dot can be placed after parent to access further fields. | media_folder |
mediaFolder.updatedAt | When the folder was updated | media_folder |
mediaFolder.useParentConfiguration | Adopt settings from the superordinate folder | media_folder |
mediaTpe | Media typ | media |
metaData | Meta data of the media | media |
mimeType | Internet media type | media |
tags | Media tags | media_tags |
translations.DEFAULT' e.g. translations.de-DE.alt translations.de-DE.title | All language dependent media fields. DEFAULT can be replaced by the language and the respective field can be accessed by a subsequent period. For instance translations.en-GB.old | |
uploadedAt | When the media file was uploaded | media |
url | URL to the media file | wird generiert |
user. | Fields of the user who uploaded the media file A dot can be set after user to access further fields. | user |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, email, status, hash, salesChannelId.
Database entry | Description | Database table |
city | City of newsletter recipient | newsletter_recipient |
confirmedAt | When was the newsletter recipient confirmed | newsletter_recipient |
createdAt | When was the newsletter recipient created | newsletter_recipient |
customFields | Additional fields of the newsletter recipients | newsletter_recipient |
Email of the newsletter recipient | newsletter_recipient | |
firstName | First name of the newsletter recipient | newsletter_recipient |
hash | Hash value to confirm the newsletter recipient | newsletter_recipient |
id | UUID of the newsletter recipient | newsletter_recipient |
language | Fields for the language of the newsletter recipient. A dot can be placed behind language to access further fields. | newsletter_recipient, language, |
salesChannel | Fields of the sales channel in which the newsletter recipient is registered. Behind salesChannel a dot can be set and thus further fields can be accessed. | newsletter_recipient, sales_channel |
salutation | fields of the salutation of the newsletter recipient is registered. A dot can be placed behind salutation to access further fields. | newsletter_recipient, salutation |
status | Status of newsletter recipient | newsletter_recipient |
street | Street of the newsletter recipient | newsletter_recipient |
tags | Tags of the newsletter recipient | newsletter_recipient_tag |
title | Title of newsletter recipient | newsletter_recipient |
updatedAt | When was the newsletter recipient updated | newsletter_recipient |
zipCode | Postcode of the newsletter recipient | newsletter_recipient |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, groupId, name.
Database entry | Description | Database table |
colorHexCode | Color code of the color stored in the property. | property_group_option |
group.displayType | Display of the characteristic selection | property_group |
group.id | UUID of the property group | property_group |
group.sortingType | Sorting the property group | property_group |
group.translations.DEFAULT e.g. group.translations.de-DE.description group.translations.en-GB. | All language-dependent fields of the property group. DEFAULT can be replaced by the language and the respective field can be accessed with a subsequent period. For instance group.translations.en-GB.description | property_group_translations |
id | UUID of the property value | property_group_option |
media | Fields of the default picture of the property profile. A dot can be placed after media to access other fields. | property_group_option, media |
productOptions | UID of the variants that use this property value | product_option |
productProperties | UUID of the products to which this property value has been assigned as a property. | product_property |
translations.DEFAULT e.g. translations.de-DE.name translations.en-GB.position | All language-dependent fields of the property value. DEFAULT can be replaced by the language and the respective field can be accessed with a subsequent period. For instance, translations.en-GB.name | property_group_option_translation |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, productid, optionid.
Database entry | Description | Database table |
createdAt | When was variant configuration created | product_configurator_setting |
customFields | Variant configuration of additional fields | product_configurator_setting |
id | UUID of variant configuration | product_configurator_setting |
media | Media fields of the property pictures from the storefront view | product_configurator_setting |
option.id | UUID of the property value | property_group_option |
option.group | Fields of the property group of the property attribute. You can set a period after group and thus access other fields. | property_group_option, property_group |
option.Id | UUID of the property value | property_group_option |
option.media | Fields on the screen for the characteristic value. A dot can be placed after media to access other fields. | property_group_option, media |
option.productOptions | UUID of variants that use this option | product_option |
option.properties | UUID of the products to which this option has been assigned as a property. | product_property |
option.translations.DEFAULT e.g. translations.de-DE.name translations.en-GB.position | All language-dependent fields of the property value. DEFAULT can be replaced by the language and the respective field can be accessed with a subsequent period. For instance, translations.en-GB.name | property_group_option_translation |
position | Position in the storefront display | product_configurator_setting |
price.DEFAULT.net | Net surcharge. DEFAULT can be replaced by the respective currency. For instance EUR | product_configurator_setting |
price.DEFAULT.gross | Gross mark-up. DEFAULT can be replaced by the respective currency. For instance EUR | product_configurator_setting |
price.DEFAULT.currencyId | UUID of the currency. DEFAULT can be replaced by the respective currency. For instance EUR | product_configurator_Setting, currency |
price.DEFAULT.linked | Indicates whether the net and gross price are linked. DEFAULT can be replaced by the respective currency. For instance EUR | product_configurator_setting |
price.DEFAULT.listPrice | Extended prices. DEFAULT can be replaced by the respective currency. For instance EUR | product_configurator_setting |
product | Fields of the product to which variant configuration is assigned | product_configurator_setting |
updatedAt | When was variant configuration updated | product_configurator_setting |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, productid, optionid.
Special id: When creating a new entry, the ID is generated by the system. Therefore, the column should remain empty when creating a new one.
Database entry | Description | Database table |
active | active | product_cross_selling |
assignedProducts | Product ID of the assigned product | product_cross_selling_assigned_products |
id | ID of the product recommendation. When creating a new ID, the system generates it. Therefore, the column should remain empty. | product_cross_selling |
limit | Maximum number of products | product_cross_selling |
position | Numerical value | product_cross_selling |
product.active | Product is active | product |
product.autoIncrement | Unique numerical value | product |
product.available | Product is available | product |
product.availableStock | Availabe stock | product |
product.canonicalProduct. diverse Optionen | A point can be placed behind canonicalProduct and thus additional fields can be accessed. | product |
product.canonicalProductId | product | |
product.categories | UUID of category | product |
product.categoriesRo | ||
product.categoryIds | ID of category | product |
product.categoryTree | IDs of the categories | product |
product.cheapestPrice | Cheapest price | product |
product.childCount | Number of variants | product |
product.cmsPage.translations.DEFAULT e.g. product.cmsPage.translations.de-DE.cmsPage product.cmsPage.translations.en-GB.cmsPage | cms_page_translation | |
product.cmsPage.config | Configuration | cms_page |
product.cmsPage.entity | Object | cms_page |
product.cmsPage.id | ID | product |
product.cmsPage.locked | Locked | cms_page |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, productid, optionid.
Database entry | Description | Database table |
active | Indicates whether the promotion is active | promotion |
code | The activation code for the discount promotion | promotion |
use.codes | Indicates whether an activation code is used | promotion |
id | ID of the promotion discount | promotion_discount |
promotion.id | Promotion ID | promotion, promotion_discount |
scope | Defines the range where the discount is applied | promotion_discount |
type | Determines the type of discount deduction | promotion_discount |
value | Discount value | promotion_discount |
consider.advanced.rules | Indicates whether extended rules are included in the discount promotion | promotion_discount |
max.value | Indicates the maximum value of the discount that will be granted | promotion_discount |
discount.rules | Indicates whether rules are stored in the discount | promotion_discount |
applier.key | Indicates how many items receive the discount | promotion_discount |
sorter.key | Indicates whether the price is sorted in ascending or descending order | promotion_discount |
valid.from | From when is the promotion active | promotion |
valid.until | Until when the promotion is active | promotion |
Only a complete profile can be saved. This contains at least the following mandatory fields: id, productId, ruleId, quantityStart.
Database entry | Description | Database table |
createdAt | When was the extended price created | product_price |
id | Unique UUID of the avanced price. | product_price |
price.DEFAULT bsp. price.EUR.currencyId price.USD.gross price.GBP.net | All fields for the price to be imported. DEFAULT can be replaced by the ISO code of the currency and by a following dot the respective field can be accessed. Ex. price.USD.gross | product_price |
product.DEFAULT bsp. product.active product.availableStock product.categories | All product dependent fields of the product for which the extended prices apply. DEFAULT can be replaced by the field name to be accessed. Ex. product.id | product |
purchasePrices.DEFAULT bsp. purchasePrices.EU.currencyId purchasePrices.USD.gross purchasePrices.GBP.net | All fields for the purchase price to be imported. DEFAULT can be replaced by the ISO code of the currency and by a following dot the respective field can be accessed. Ex. price.USD.gross | product |
quantityEnd | Maximum quantity of the product that must be in the cart for this price to apply. | product_price |
quantityStart | Minimum quantity of the product that must be in the shopping cart for this price to apply. | product_price |
ruleId | Unique UUID of the rule applied to this extended price. | product_price |
rule.DEFAULT bsp. rule.name rule.priority | All fields for the used rule from the rule builder. DEFAULT can be replaced by the field name to be accessed. Ex. rule.name | rule |
Database entry | Description | Database table |
promotion.active | Active | promotion |
promotion.cartRules | Cart rule for promotion | promotion_cart_rule |
promotion.code | Promotion Code | promotion |
promotion.customerRestriction | Customer restriction | promotion |
promotion.exclusionIds | ID | promotion |
promotion.id | UUID | promotion |
promotion.individualCodePattern | Custom pattern for individual code | promotion |
promotion.maxRedemptionsGlobal | Max. total uses | promotion |
promotion.maxRedemptionsPerCustomer | Max. uses per customer | promotion |
promotion.orderCount | Order count | promotion |
promotion.orderRules | Order rule | promotion_order_rule |
promotion.personaCustomers | Information about promotion ID & customer ID | promotion_persona_customer |
promotion.personaRules | Information about promotion ID & rule ID | promotion_persona_rule |
promotion.perventCombinaton | Prevent combination with other promotions | promotion |
promotion.translated.DEFAULT. Example: translations.de_DE.language translations.de_DE.customFields.FiledName translations.en_GB.name | All language-dependent fields of the property value. DEFAULT can be replaced by the language and the respective field can be accessed with a subsequent period. For instance, translations.en-GB.name | promotion_translation |
code | Promotion Code | promotion |
createdAt | Created at | promotion |
id | UUID | promotion |
payload | Information on the order ID, customer ID and customer name | promotion_individual_code |
promotionId | UUID | promotion_individual_code |
updatedAt | Updated at | promotion |
You can start the import under Settings > Shop > Import/Export in the tab
First you need to select the right profile (2) for the import. Select the Default product profile. Unlike other profiles, when you select this profile, a checkbox Import product variants will then be displayed. In this case you do not activate this checkbox. You can find out how to import product variants here.
Next, you need a CSV file that matches the selected profile. This CSV file should contain all products and required information including the correct column names.
Once you have made entries in all fields, click on Start import (3).
An example file for the Default product profile can be found here: Default product profile
This file contains the following columns, which you have to fill in accordingly:
id | Unique UUID of the product. This field can be left empty and is automatically assigned during import. |
parent_id | Unique UUID of the parent product, if it is a variant article This field can also be left empty. |
product_number | product number |
active | 1 for active and 0 for inactive. |
stock | Current stock |
name | Product name |
description | Product description |
price_net | Net price |
price_gross | Gross price |
tax_id | Enter the unique UUID of the tax rate here. If you call the configuration page of the respective headset, the ID is displayed in the address line. If you want to create a completely new tax rate, leave this field empty. |
tax_rate | Tax rate value (e.g. 7 or 19) |
tax_name | Name of the tax rate (for example 7% or 19%) |
cover_media_id | If you want to use an image as preview image, which is already in the Shopware installation, enter the UUID of this image here. You can find this in the database table media in the column id. If you want to import a new image, leave this field empty. |
cover_media_url | URL to the image you want to use as preview image. This can also be an external URL outside the Shopware installation. The import of additional images is not included in the standard profile. For this purpose it is necessary to create a new product profile and add the database mapping "media". |
cover_media_title | The title under which the imported preview image should be saved internally. |
cover_media_alt | Alternate text of the preview image |
manufacturer_id | If you want to assign the item to a manufacturer that already exists in your store, enter the UUID of the manufacturer here. When you go to the configuration page of the respective manufacturer, the ID will be displayed in the address line. If you want to import a new manufacturer, leave this field empty. |
manufacturer_name | If you want to create a new manufacturer, enter the name of the new manufacturer here. |
categories | Enter the UUIDs of the categories to which the article should be assigned. When you go to the configuration page of the respective category, the ID will be displayed in the address line. If you want to assign several categories, separate the UUIDs with pipe symbols (|). |
sales_channels | Enter the UUIDs of the sales channel to which the article should be assigned. When you go to the configuration page of the respective sales channel, the ID is displayed in the address bar. If you want to assign multiple channels, separate the UUIDs with pipe symbols (|). |
If you receive a message that the import was successful, you can now view and edit the products under Catalogues > Products.
If the import fails, you will receive a message under the Start Import button telling you both the numbers of records that could be successfully imported and the failed imports from the CSV file.
You can now download the unimported entries as a new CSV file. This file contains only the incorrect records with the additional column _error. This column indicates why the import of this record failed. You can now correct this directly in the downloaded CSV file and then import the file again.
You can start the import under Settings > Shop > Import/Export in the tab Import.
First you need to select the right profile (2) for the import. Select the default newsletter recipient profile.
Next, you need a CSV file that matches the selected profile. This CSV file should contain all newsletter recipient and required information including the correct column names.
Once you have made entries in all fields, click on Start import (3).
An example file for the Default newsletter recipient profile can be found here: Default newsletter recipient profile
This file contains the following columns, which you have to fill in accordingly:
id | Unique UUID of the recipient. This field can be left empty and is automatically assigned during the import. |
Recipient's e-mail address | |
title | Optional title of recipient |
salutation | Salutation |
first_name | First name |
last_name | Last name |
zip_code | Zip code |
city | City |
street | Street |
status | Enter the status for the recipient here. In the standard system only "direct" is used here. Some plugins can use other statuses. |
hash | The hash value is used to ensure the correct registration. Enter a random unique hash value here. |
sales_channel_id | Enter here the UUIDs of the sales channel to which the article is assigned. When you go to the configuration page of the sales channel, the ID is displayed in the address bar. If you want to assign multiple channels, separate the UUIDs with pipe symbols (|). |
If you receive a message that the import was successful, you can now view and edit the products under Marketing > Newsletter recipient.
If the import fails, you will receive a message under the Start Import button telling you both the numbers of records that could be successfully imported and the failed imports from the CSV file.
You can now download the unimported entries as a new CSV file. This file contains only the incorrect records with the additional column _error. This column indicates why the import of this record failed. You can now correct this directly in the downloaded CSV file and then import the file again.
You can start the import under Settings > Shop > Import/Export in the tab Import.
First you need to select the right profile (2) for the import. Select the default properties profile.
Next, you need a CSV file that matches the selected profile. This CSV file should contain all properties and required information including the correct column names.
Once you have made entries in all fields, click on Start import (3).
An example file for the Default properties profile can be found here: Default properties profile
This file contains the following columns, which you have to fill in accordingly:
id | Unique UUID of property value This field can remain empty and is automatically assigned during import. |
color_hex_code | Color code of the color stored in the property |
name | Property name |
position | Each property has a position with which it is displayed in the admin. |
group_id | Unique UUID of the property group. |
group_display_type | Display of the selection of characteristics |
group_sorting_type | Sorting the selection of characteristics. Here you can specify "alphanumeric", "numeric" and "position". |
group_name | Property group name |
group_description | Property group description (optional) |
group_position | Property group position (optional) |
media_id | If you want to use an image as preview image, which is already in the Shopware installation, enter the UUID of this image here. You can find this in the database table media in the column id. If you don't want to use a thumbnail or import a new image, leave this field empty. |
media_folder_id | Optionally you can enter the UUID of the folder where the image to be used is located. If you go to the configuration page of the respective image folder under Content > Media, the ID will be displayed in the address bar. If you don't want to import an image, you can leave this field empty. |
media_type | When exporting, this field contains properties of the used image. However, this can be left empty for import. |
media_title | If you want to import an image, enter the title of the image here. Alternatively you can leave this field empty. |
medie_alt | If you want to import an image, enter the alternative SEO title of the image here. Alternatively you can leave this field empty. |
If you receive a message that the import was successful, you can now view and edit the products under Catalogues> Properties.
If the import fails, you will receive a message under the Start Import button telling you both the numbers of records that could be successfully imported and the failed imports from the CSV file.
You can now download the unimported entries as a new CSV file. This file contains only the incorrect records with the additional column _error. This column indicates why the import of this record failed. You can now correct this directly in the downloaded CSV file and then import the file again.
You can start the import under Settings > Shop > Import/Export in the tab Import.
First you need to select the right profile (2) for the import. Select the default category profile.
Next, you need a CSV file that matches the selected profile. This CSV file should contain all categories and required information including the correct column names.
Once you have made entries in all fields, click on Start import (3).
An example file for the Default properties category can be found here: Default category profile
This file contains the following columns, which you have to fill in accordingly:
id | Unique UUID of the category. This field can be left empty and is automatically assigned during import. |
parent_id | Unique UUID of the parent category under which this category should be sorted. If you go to the configuration page of the respective category under Content > Media, the ID is displayed in the address line. |
active | 1 for active and 0 for inactive. |
type | Enter the category type here. Page for a normal category, folder for a structural category and link for the category type Custom link. |
visible | Enter here whether the category is hidden in the navigation. 1 for visible and 0 for hidden. |
name | Category name |
external_link | Enter the external link here if you have selected link as type. |
description | Category description (optional) |
meta_title | SEO meta title (Optional) |
meta_description | SEO meta description (Optional) |
media_id | If you want to use an image as display image for the category, which is already in the Shopware installation, enter the UUID of this image here. You can find this in the database table media in the column id. If you don't want to use a display image or import a new image, leave this field empty. |
media_url | URL to the image you want to use as preview image. |
media_folder_id | Optionally you can enter the UUID of the folder where the image to be used is located. If you go to the configuration page of the respective image folder under Content > Media, the ID is displayed in the address line. |
media_type | When exporting, this field contains properties of the used image. However, this can be left empty for import. |
media_title | If you want to import an image, enter the title of the image here. Alternatively you can leave this field empty. |
mediea_alt | If you want to import an image, enter the alternative SEO title of the image here. Alternatively you can leave this field empty. |
cms_page_id | UUID of the stored experience world. If you go to the configuration page of the respective adventure world under Contents > Adventure Worlds, the ID is displayed in the address line. If you do not want to use an adventure world, you can leave this field empty. |
If you receive a message that the import was successful, you can now view and edit the products under Catalogues> Categories.
If the import fails, you will receive a message under the Start Import button telling you both the numbers of records that could be successfully imported and the failed imports from the CSV file.
You can now download the unimported entries as a new CSV file. This file contains only the incorrect records with the additional column _error. This column indicates why the import of this record failed. You can now correct this directly in the downloaded CSV file and then import the file again.
You can start the import under Settings > Shop > Import/Export in the tab Import.
First you need to select the right profile (2) for the import. Select the default media profile.
Next, you need a CSV file that matches the selected profile. This CSV file should contain all required information including the correct column names.
Once you have made entries in all fields, click on Start import (3).
An example file for the Default media profile can be found here: Default media profile
This file contains the following columns, which you have to fill in accordingly:
id | Unique UUID of the media file. This field can be left empty and is automatically assigned during import. |
folder_id | Here you can specify the UUID of the folder where the image to be used is located. If you go to the configuration page of the respective image folder under Content > Media, the ID is displayed in the address bar. |
url | Enter the URL of the medium you want to import here. This can also be an external URL outside the Shopware installation. |
private | This field may be used for plugins. For the standard import use "0" here. |
type | This field is used to store the metadata of the medium for export. For import you can leave this field empty. |
title | Image title |
alt | Alternative SEO titles |
If you receive a message that the import was successful, you can now view and edit the products under Content> Media.
If the import fails, you will receive a message under the Start Import button telling you both the numbers of records that could be successfully imported and the failed imports from the CSV file.
You can now download the unimported entries as a new CSV file. This file contains only the incorrect records with the additional column _error. This column indicates why the import of this record failed. You can now correct this directly in the downloaded CSV file and then import the file again.
You can start the import under Settings > Shop > Import/Export in the tab Import.
First you need to select the right profile (2) for the import. Select the default advanced prices profile.
Next, you need a CSV file that matches the selected profile. This CSV file should contain all required information including the correct column names.
Once you have made entries in all fields, click on Start import (3).
An example file for the Default advanced prices profile can be found here: Default advanced prices profile
This file contains the following columns, which you have to fill in accordingly:
id | Unique UUID of the advanced price from the product_price database. Since the import of extended PReises is not intended for creating extended prices, this field must not be left empty. |
product_id | Unique UUID of the product for which the extended price was set up. |
rule_id | Unique UUID of the rule applied to this extended price. |
price_net | Net price of the extended price |
price_gross | Gross price of the extended price |
quantity_start | Minimum quantity of the product that must be in the shopping cart for this price to apply. |
quantity_end | Maximum quantity of the product that must be in the cart for this price to apply. |
If you receive a message that the import was successful, you can now view and edit the products under Content > Media.
If the import fails, you will receive a message under the Start Import button telling you both the numbers of records that could be successfully imported and the failed imports from the CSV file.
You can now download the unimported entries as a new CSV file. This file contains only the incorrect records with the additional column _error. This column indicates why the import of this record failed. You can now correct this directly in the downloaded CSV file and then import the file again.
The following 4 steps are necessary to import variants:
In the first step it is necessary to import the products for which you want to import new variants.
If you want to import variants for already existing products, you can skip this step.
In the attached CSV file you enter the new products. Leave the column id and parent_id empty. These are generated by the system or are not required in this case. Then import this file in the Import/Export module with the default product profile.
The next step is to import the properties on the basis of which the variants are to be created. If you have already created the properties you want to use, you can skip this step.
You can use the attached CSV file to import new properties. Leave the id column empty so that it is generated during the import. In the column group_id you enter the UUID of the property group. You can find this in the address line of the browser when you call up the property group in the Shopware Admin.
Alternatively, you can also get them if you export the properties using the default properties profile.
If you leave this column empty, the property group will also be recreated by the import and a UUID will be created for this group. Once you have filled the CSV file, import it in the Import/Export module with the default properties profile.
Default properties profile.csv
Once products and properties are available, they must be linked in the form of variant configurations in order to be able to create the variants in a later step. In the attached CSV file you enter the option_id. This is the automatically created UUID of the properties. You will get this ID if you export the properties from the last step again.
Then enter the product_id. This is the UUID of the main products for which variants are to be created. You can find this in the address bar of your browser when you call up the products in the Shopware Admin.
Alternatively, you can also get them if you export the properties using the default variant configuration settings profile.
Just leave the id column blank and import it in the Import/Export module with the default variant configuration settings profile.
default variant configuration settings profile.csv
Please bear in mind that you can import or alternatively generate the variantes. Just pick the way that suits you best.
Import variants
With the previous steps you have prepared the variants so far that you now only need to import them. To be able to import variants you need the default product profile and the checkbox import product variants must be checked.
Mandatory fields for the import of the variants in the profile are parent_id, this results from the ID of the main article, product_number, is the desired article number of the variant, active, must be either 0 or 1, stock, gives the stock and optionIds, result from the ID's of the
properties and can be enumerated with |.
Generate variants
With the previous steps you have prepared the variants so far that you now just need to generate them.
Open the product for which you have imported the variants in the Shopware Administration and open the tab generate variants, click on generate variants (1).
In the window that opens, click on generate variants (1).
You can start the import under Settings > Shop > Import/Export in the Import tab.
As profile (2) for the import you first select the profile default customer.
Next, you need a CSV file (1) that matches the selected profile. This CSV file should contain all media and necessary information with the correct column names.
When you have filled in all fields, click on Start Import (3).
An example file for the default profile customer can be found here: Default profile customer.
This file contains the following columns, which you fill in accordingly:
id | Unique UUID of the customer file. This field can be left empty and is automatically assigned during the import. | ||
account_type | Here you can specify the account type of the customer. In the example CSV this is set to private, because it is a private customer. | ||
salutation | Enter here the Andrede of the customer. | ||
customer_number | This field is used for the customer number. | ||
first_name | The first name of the customer is entered in this field. | ||
last_name | The last name of the customer is entered in this field. | ||
E-mail address of the customer. | |||
guest | A boolean value must be entered here. 0 if it is not a guest customer and 1 if it is a guest customer. | ||
customer_group | Defines the customer group | ||
language | Defines the language of the customer | ||
sales_channel | Indicates from which sales channel the order was placed. | ||
payment_method | Payment type | ||
billing_id | Invoice ID | ||
billing_salutation | Salutation in the invoice | ||
billing_title | TItel of the invoice | ||
billing_first_name | First name of the invoice holder | ||
billing_last_name | Last name of the payer | ||
billing_company | Company of the biller | ||
billing_street | Street address of the invoice | ||
billing_zipcode | Zip code of the billing address | ||
billing_city | City of the billing address | ||
billing_country | Billing country | ||
billing_phone_number | Phone number of the billing address | ||
shipping_id | Shipping ID | ||
shipping_salutation | Salutation for shipping | ||
shipping_title | Title/name for shipping | ||
shipping_first_name | First name for shipping address | ||
shipping_last_name | Last name for shipping address | ||
shipping_company | Company of the shipping address | ||
shipping_street | Street of the shipping address | ||
shipping_zipcode | Postal code of the shipping address | ||
shipping_city | City of the shipping address | ||
shipping_country | Country of dispatch | ||
shipping_phone_number | Telephone number of the shipping agent |
If you receive a message that the import was successful, you can now view and edit the products under Content > Media.
If the import fails, you will receive a message under the Start Import button telling you both the numbers of records that could be successfully imported and the failed imports from the CSV file.
You can now download the non-imported records as a new CSV file. This file then contains only the incorrect records with the additional column _error. In this column you can see why the import of this record failed. You can now correct this directly in the downloaded CSV file and then import the file again.
Before an import to the live-system is done, you should create a database backup. In any case the import should be tested in a test- or staging-system.
When importing item translations we have to keep in mind, to include the correct languageId for the translations. This id can be found in the table product_translation. All language-dependent fields of the property value. DEFAULT can be replaced by the language and the respective field can be accessed with a subsequent period. For instance, translations.en-GB.name.
Provided fields incl. description
field name | description |
---|---|
translations.DEFAULT.productId | id of the product |
translations.DEFAULT.languageId | id of the language |
translations.DEFAULT.name | translation of the name |
translations.DEFAULT.keywords | keywords, relevant for the shopware search |
translations.DEFAULT.customFields | |
translations.DEFAULT.createdAt | |
translations.DEFAULT.updatedAt | |
translations.DEFAULT.packUnit | |
translations.DEFAULT.productVersionId | |
translations.DEFAULT.metaTitle | |
translations.DEFAULT.description | |
translations.DEFAULT.metaDescription | |
translations.DEFAULT.slotConfig | |
translations.DEFAULT.packUnitPlural |
This is the profile for item translations and contains all translatable item fields. You can add a new profile by selecting the product object type and adding the mappings for translation accordingly.
Here you can download the profile: profile_item translations.csv
You get an example csv-file here: item translations example file.csv
The product import or product export can be extended so that other media can be imported in addition to the cover image of the product. In the following, we explain the simple steps you can take to implement this.
If you have not already done so, open Settings > Shops > Import / Export > Profiles.
Click on the three dots behind Default product and select Duplicate. In the new window, change the profile name so that you can see what function the profile has. In this case, for example, "Product profile with additional images". Then switch to the Mappings tab.
We need to add a new field to the profile. To do this, click on Add new mapping, which adds a new line in the first place.
The CSV name is the column header under which the new field is displayed in the file. You can assign this name freely. If the file is to be used for exchange with other software, it may be necessary to use a predefined name.
In the field Database entry select media. This is the field from which Shopware will take the data for export or into which the data will be inserted during import. Therefore, only entries that Shopware supports are available in the dropdown list.
Leave the other settings as they are suggested.
Now you can save the profile.
The new profile is now displayed in the list of profiles with the type Custom and the name you gave it.
If you have already created products with several assigned images, you can test a product export with the profile you have just created. In the file you can see how the data must be provided for the import.
You will find the mapping we added as the first column in the file.
Now enter valid URLs in the media column or with the name you have given according to this pattern:
http://example.com/example1.png|http://example.com/example2.png
The image URLs are separated from each other by the pipe character "|". Make sure that the files do not contain spaces or umlauts. The directory in which you provide the media files for the import must have suitable directory rights so that the import can copy and import the files into the Shopware media.
If the specified files already exist in media, they will not be duplicated.
If you are working with the import/export for the first time, first test with only a few products whether your changes are carried out as desired. Alternatively, create a test environment.
Once you have edited and saved your file, open the Import tab.
Click on Choose file to select it for import and select the profile we created in the first step. If your file contains variants, activate the Import product variants slider.
If you only want to check the file first, you can do this with Start dry run. Shopware will perform the same steps as the regular import, but no data will be written to the database tables. For a complete run, select Start import.
Under Import activity, an entry is made for each of the actions that shows you, among other things, whether the import was successful or failed.
In case of failure, use the entry Download invalid records. On the far right of the file you will find a short note explaining why the import of the data set failed.
Always check the entry under Import activity when you are informed via the notifications that the import has been completed. The note does not necessarily mean that the process was successful.
It is possible to assign an existing custom products template to other products via import/export.
Step 1: Assign product
First select a product and assign the desired Custom Products template to it.
Step 2: Copy profile
Go to Settings > Import/Export > Profiles and copy the existing standard profile for custom products.
Step 3: Edit profile
Go to Assignments in the profile and map 2 new fields. Then give these fields the following two database entries:
swagCustomizedProductsTemplate.internalName
swagCustomizedProductsTemplate.id
Step 4: Export profile:
Export the profile and you should notice that the values have been assigned in the two leftmost columns.
Step 5: Import
Copy these values and paste them into other products. Then save and import the profile again.
The custom products template is then assigned to the products via import.