Skip to main content

What do I need to consider when migrating from Shopware 5 to Shopware 6?

To use Pickware with Shopware 6, you need at least the Shopware Community Edition. You can then install Pickware as usual via the Shopware Community Store. Below, we'll show you the next steps to migrate your data to Shopware 6. If you run into any issues or questions during the process, contact us via the contact form.

General information about the migration

When migrating from Shopware 5 to Shopware 6, stock, bin locations and suppliers can first be exported from Shopware 5 and then imported into your new shop system. Currently, there is no automatic migration provided by Pickware, so you have to transfer your Pickware data manually.

Shopware also offers a migration assistant that lets you transfer data such as orders, products and customers to your new shop. Some data cannot be migrated; you can find more information about this further below.

Fully complete all orders that came in through Shopware 5 within Shopware 5 itself. This includes shipping, invoices, cancellations/refunds and the export for DATEV. Otherwise, errors and issues may occur during processing.

When setting up number ranges in Shopware 6, also plan for a buffer: set the starting number so that it is safely above the last number assigned in Shopware 5 – and take into account that further invoices may still be created in Shopware 5 until all open processes are completed.

To sell vouchers at the POS or in the online shop in Shopware 6, you can use the corresponding extension from Net Inventors GmbH. You can find out how to migrate your existing vouchers to Shopware 6 here.

Installing Pickware

You can install Pickware ERP either via the Shopware Community Store or via Composer. Installation via Composer is explained in this article.

Creating or migrating a Pickware account

To use Pickware in Shopware 6, you need a Pickware account. You can create one here. In your Pickware account, you manage your subscription and billing, book licenses for WMS and POS, and manage your connected iOS devices. You can find more information on the Pickware account here in the help center.

Using an existing account

If you already have a Pickware account from your Shopware 5 shop, you can start the migration and the associated trial period directly in the account management. To do this, proceed as follows:

  1. Log in to your Pickware account and make sure your Shopware 5 shop is selected in the top left corner. Either click on Migration in the menu on the left, or use the Start migration button, which is displayed at the top of the homepage.

    Testphase_1a.png

  2. Select Shopware 6 as the shop system.

    Testphase_1.png

  3. Select which features you want to test.

    Testphase_SW_2.png

  4. Enter the shop URL of your Shopware 6 shop in the field below.

    Testphase_SW_3.png

  5. Select the shop URL of the shop to be migrated from the list. Then click Start now.

    Testphase_SW_4.png

  6. You have now entered the migration phase. Your Shopware 6 shop can be selected and managed via the drop-down menu in the top left corner.

  7. You can now migrate your data from Shopware 5 and prepare your Shopware 6 shop. You can find more information about the migration below.

Migrating Shopware data

To migrate your Shopware data (products, customers, orders, etc.), you can use Shopware's migration assistant. You can find more information and instructions here.

Migrating number ranges

There is no automated way to migrate your number ranges from Shopware 5, which means you need to create them again in Shopware 6. You can find the number range configuration in Shopware 6 under Settings → Shop → Number ranges. You'll find several preconfigured number range types there, which you can adjust to your needs. These apply globally, i.e. to all your Sales Channels. If you create your own number ranges, you can also restrict them to individual Sales Channels.

The Start number field is particularly important here. You can configure it so that, for example, the invoice number of the first invoice created in Shopware 6 continues on from the invoice number of the last invoice created in Shopware 5. Make sure to plan for a sufficient buffer, in case additional documents for open orders are still being created in Shopware 5 while you complete the migration.

You can also find more information on number ranges in the Shopware documentation.

Migrating POS branches and registers

If you use POS branches and registers from Shopware 5, set these up again in Shopware 6. Proceed as follows:

  1. Close out all existing registers while they are still connected to Shopware 5.

  2. Deactivate the registers in your Pickware account.

  3. Reset the register configurations and then set up the registers again.

  4. Connect the registers to your Shopware 6 shop.

  5. Create new branches and assign the registers to the branches.

Note on orders without a delivery status

It can happen that completed orders are incorrectly created without a delivery status and not with the order status Completed. This causes stock to be reserved for the order's line items. To fix this issue, the order status of these orders must be manually set to Completed. You can make this change either via SQL query or via bulk edit in the Shopware Admin for up to 100 orders at a time.

Changing the status via bulk edit

In your Shopware 6 shop admin, navigate to Orders → Overview and click the filter icon. In the Order status field, select the entries In progress and Open.

Filtereinstellungen3.png

The order overview now only shows those orders with the order status In progress and Open. Now click once on the Delivery status column to sort all orders by their delivery status. If there are orders without a delivery status, they should now appear at the top of the list. The Delivery status field is empty in this case.

Bestellung_ohne_Lieferstatus.png

Now check, for example based on the date or your Shopware 5 shop, whether these are actually completed orders. If so, you can adjust the order status, for example via bulk edit.

To do this, select all the relevant orders using the checkbox on the left, then click Bulk edit at the top.

Mehrfachänderung.png

In the next window, click Start bulk edit and select the status change for the order status as follows:

Status_ändern.png

Please note that Shopware always makes status changes one step at a time. This means that the status can only change from Open to In progress, and only afterwards from In progress to Completed. Therefore, you may need to make the status change in two stages.

Afterwards, all indexes must be updated under Settings → System → Caches & Indexes. To do this, select all options in the dropdown menu and then click Refresh indexes.

SW6_Indizes.png

All orders without a shipping status should now have the order status Completed and therefore no longer reserve any stock.

Changing the status via SQL query

To change the order status via your database, use the following SQL query:

UPDATE `order`
SET `order`.`state_id` = (
SELECT `state_machine_state`.`id`
FROM `state_machine_state`
JOIN `state_machine`
ON `state_machine`.`id` = `state_machine_state`.`state_machine_id`
WHERE
`state_machine_state`.`technical_name` = "completed"
AND `state_machine`.`technical_name` = "order.state"
)
WHERE
-- Hier das "Grenzdatum" anpassen
`order`.`order_date_time` < "2024-07-01 00:00:00"
-- Nur Bestellung in der Live-Version aktualisieren (nicht entfernen)
AND `order`.`version_id` = 0x0fa91ce3e96a4bc2be4bd9ce752c3425;

Afterwards, all indexes must be updated under Settings → System → Caches & Indexes. To do this, select all options in the dropdown menu and then click Refresh indexes.

If you have any questions, please contact your agency.

Migrating Pickware data

You can migrate bin locations, stock and suppliers from your Pickware data via CSV import. Please note, however, that stock history cannot be carried over to Shopware 6.

In the following sections, we'll show you what you need to consider for each of these imports.

For imports into Shopware, the CSV file must be UTF-8 encoded and use semicolons as the delimiter. You can find more details on this, and where to find the corresponding configuration option in your spreadsheet program, here.

Bin locations

First, create one or more warehouses in the Shopware 6 admin under Lagerhaltung (Inventory) → Warehouses and bin locations → Create warehouse. You can find more information on this here.

Once a warehouse has been saved, the Bin locations tab appears, where you can create bin locations either manually or via CSV import. The CSV file for creating bin locations only contains the Code column, where the bin location identifier is entered.

Lagerplätze_CSV_Beispiel (1).png

To export the bin locations from Shopware 5, you can use the following SQL query. You need to adjust the warehouse code of the warehouse to be exported accordingly:

SELECT bl.code
FROM pickware_erp_bin_locations bl
LEFT JOIN pickware_erp_warehouses wh
ON wh.id = bl.warehouseid
WHERE bl.code != 'pickware_null_bin_location'
AND wh.code = 'Lagerkürzel' -- Hier das Lagerkürzel eintragen

Stock

If you have already used the Shopware 6 migration tool, stock from Shopware 5 has already been transferred. Afterwards, the indexes must be updated under Settings → System → Caches & Indexes. To do this, select all options in the dropdown menu, then select the method Refresh all except selected. Then click Refresh indexes. This way, only the indexes added by Pickware are updated, which speeds up the process.

Since there are no bin locations in the Shopware 6 standard, the stock now needs to be assigned to the correct bin locations.

Stock of main products with variants

For variant products, the main product is usually not a physically stocked item. After the migration, check whether main products with variants have received stock or are being treated as stock-managed.

Since stock should be correctly managed at the variant level and not through the main product, identify affected main products in the stock overview and correct their stock or stock management settings.

If you want to adjust stock management in bulk, you can use the Shopware product import/export and work with a suitable import/export profile. Depending on your Shopware configuration, it may make sense to first test the changes with a small number of products.

Exporting stock from Shopware 5

First, perform a CSV export in Shopware 5 under Content → Import/Export. Use the profile viison_pickware_erp_article_stocks_absolute. This file serves as the basis for importing your stock into Shopware 6.

Importing stock into Shopware 6

Open the CSV file you just downloaded from Shopware 5 and adjust it by renaming or deleting the columns as follows:

  • articleNumber → Produktnummer (Product number)

  • warehouse → Lagerkürzel (Warehouse code)

  • binLocation → Lagerplatz (Bin location)

  • isDefaultBinLocation → Standardlagerplatz (Default bin location)

  • physicalStock → Bestand (Stock)

  • availableStock → delete

  • purchasePrice → delete

Make sure in any case that the respective value in the Bin location column also matches one of the bin locations you created earlier.

Next, open your Shopware 6 administration, navigate to Lagerhaltung (Inventory) → Bestandsübersicht (Stock overview) → Absoluter Bestandsimport (Absolute stock import) and click Import. Upload your adjusted CSV file here. You can find more information on maintaining stock via CSV import here and on maintaining stock via the shop admin here.

As a general rule, it's advisable to carry out a full stocktake of your inventory after the stock import. You can find instructions on how to do a stocktake in Shopware 6 here.

Note on the unknown bin location

If you didn't use bin locations for products in Shopware 5, meaning they are managed in the admin with the bin location label "unknown bin location", please note the following.

In the CSV export file from Shopware 5, the unknown bin location is listed as pickware_unknown_location. This label doesn't exist in Shopware 6, so it would cause an error if imported as-is. In Shopware 6, the unknown bin location is instead called unknown. Below is an overview of various scenarios regarding the stock-in behavior in Shopware 6:

  • Bin location label = unknown

    • The stock is booked to the unknown bin location.

  • Bin location label = [empty]

    • The stock is booked to the default bin location.

    • If the product has no default bin location, the stock is instead booked to the unknown bin location.

  • Bin location label = pickware_unknown_location

    • The import cannot be performed and an error message is shown.

  • Bin location label matches a label that doesn't exist as a bin location in the shop admin

    • The import cannot be performed and an error message is shown.

Exporting minimum stock levels from Shopware 5

To do this, perform a CSV export in Shopware 5 under Content → Import/Export. Use the profile viison_pickware_erp_article_stock_limits (Pickware minimum and target stock).

Open the CSV file you just downloaded from Shopware 5 and adjust it by renaming or deleting the columns as follows:

  • articleNumber → Produktnummer (Product number)

  • articleName → delete

  • warehouse → delete

  • minimumStock → Meldebestand (Reorder point)

  • targetStock → delete

Make sure the CSV file contains at most one entry per product. During import, the reorder point of the last read entry is used for each product. Since Shopware 5 exports all product-bin location combinations, a product may appear multiple times in the export file. In this case, remove the excess rows or make sure all rows for a product have the same reorder point.

Importing reorder points into Shopware 6

In Shopware 6, the term reorder points is used instead of minimum stock levels. To display the reorder points in the stock overview of your Shopware 6 admin, click the filter icon in the top right corner and select the option Per product in the topmost dropdown menu View. Regardless of the view, you can perform exports and imports taking the corresponding reorder points into account here.

Meldebestand_Ansicht_Je Produkt.png

Suppliers and product assignment

Creating suppliers

First, perform a CSV export in Shopware 5 under Content → Import/Export. Use the profile viision_pickware_erp_suppliers.

Now adjust the CSV file by renaming or deleting the columns as follows:

  • supplierNumber → Nummer (Number)

  • salutation →delete

  • address → split into

    • Street, house number, ZIP code, city, additional address, country (please use ISO2 country codes here, e.g. DE for Germany)

  • contact → split into

    • First name, last name

  • phone → Telefonnummer (Phone number)

  • fax → Faxnummer (Fax number)

  • email → E-Mail-Adresse (Email address)

  • comment → Kommentar (Comment)

  • customerNumber → Kundennummer (Customer number)

  • deliveryTime → Standardlieferzeit (Default delivery time)

  • templateShopId →delete

  • currency →delete

In your Shopware 6 admin under Einkauf (Purchasing) → Lieferanten (Suppliers), you'll find the list settings on the right. There you can see which additional properties for suppliers can be maintained in Shopware 6. If needed, you can also add these via CSV import by inserting a corresponding column in your CSV file.

Listeneinstellungen SW6.png

In the Shopware 6 administration under Einkauf (Purchasing) → Lieferanten (Suppliers) → Importieren (Import), you can upload your adjusted CSV file. You can find more information on creating suppliers in this article.

Assigning products to a supplier

First, perform a CSV export in Shopware 5 under Content → Import/Export. Use the profile viision_pickware_erp_article_suppliers.

Now adjust the CSV file by renaming or deleting the columns as follows:

  • articleNumber → Produktnummer (Product number)

  • articleName → Produktname (Product name)

  • supplierArticleNumber → Lieferantenproduktnummer (Supplier product number)

  • supplierNumber → Lieferantennummer (Supplier number)

  • defaultSupplier → Standardlieferant (Default supplier)
    Note: In Shopware 5, whether the assignment is the default supplier is indicated with y (= yes) or n (= no). In Shopware 6, you need to use ja or nein, i.e. yes or no, instead.

  • purchasePrice → EK (netto) (Purchase price (net))
    Note: Purchase prices can only be imported as net prices in Shopware 6. Therefore, check the Eingabe von Einkaufspreisen (Purchase price entry) field in the settings of the Shopware 5 administration under Settings → General settings → Shopware ERP powered by Pickware and adjust your purchase prices accordingly if needed.

  • currency → delete

  • minimumOrderAmount → Mindestabnahme (Minimum order quantity)

  • packingUnit → Abnahmeintervall (Order interval)

In your Shopware 6 admin under Einkauf (Purchasing) → Lieferantenzuordnung (Supplier assignment), you'll find the list settings on the right. There you can see which additional properties for supplier assignment can be maintained in Shopware 6. If needed, you can also add these via CSV import by inserting a corresponding column in your CSV file.

Listeneinstellungen_Lieferantenzuordnung_SW6.png

In the Shopware 6 administration under Einkauf (Purchasing) → Lieferantenzuordnung (Supplier assignment) → Import, you can upload your adjusted CSV file. You can find more information on supplier assignment in this article.

Please note that you need at least Pickware Advanced to assign multiple suppliers per product. When importing the CSV file, the rows are read from top to bottom. If you have assigned two different suppliers to a product, with Pickware Starter the first entry will be overwritten when the second entry is read. This also applies if you had the extension deactivated at the time of import.

Bill of materials

As in Shopware 5, Pickware Advanced and above also supports the bill of materials feature in Shopware 6. You can conveniently transfer your bills of materials from Shopware 5 to Shopware 6 via CSV import. You can find more information on creating and managing bills of materials in this article.

Migrating additional data

In both Shopware 5 and Shopware 6, you can create new import/export profiles and thus migrate additional data to your Shopware 6 shop.

Information type

Field name in Shopware 5

Field name in Shopware 6

Customs tariff number

attributeViisonCustomsTariffNumber

translations.DEFAULT.customFields.pickware_shipping_customs_information_tariff_number

Country of origin

attributeViisonCountryOfOrigin

translations.DEFAULT.customFields.pickware_shipping_customs_information_country_of_origin

Please note that custom profiles in Shopware 6 are created with a number of required fields, which must always be filled in in the import file as well. It is therefore advisable to first export your newly created profile, add the desired information to this file, and then import the modified file again.

You can find more information on creating new import/export profiles in Shopware's documentation.

Booking Pickware POS and Pickware WMS

WMS and POS licenses from Shopware 5 cannot be transferred to your Shopware 6 shop. If you used Pickware WMS or POS in Shopware 5, the existing licenses must be canceled as part of the migration and rebooked for Shopware 6 in your Pickware account. You can find more details on booking here.

Aside from the iOS apps, no separate installation is necessary. Here in the help center, you can find more information on setting up WMS and POS in the Shopware Admin.

Switching Pickware apps

For Pickware in Shopware 5, you have access to our familiar apps Pickware WMS and Pickware POS. If you previously used the Pickware Lager app (Pickware Inventory app), please note that it is no longer available for Shopware 6. The corresponding features are now part of the WMS App.

For the Pickware apps, you need an Apple device that supports at least iOS 15. You can find more information on the recommended hardware here (WMS) and here (POS). You can download the apps from the App Store as usual.

Before using the Pickware POS App in Shopware 6, please make sure to follow these instructions for your Shopware 5 shop: First, log in on your iOS device as usual and perform a full payout of the register balance as well as a register closing. Afterwards, the configuration must be reset so that the app can be set up again. To do this, log out of the app and then select the Reset configuration entry via the gear icon in the top right corner.

You can find instructions on setting up the WMS and POS app here in the help center.

Handling old POS orders

POS orders are only displayed in the sales history in the POS App if they are clearly recognized as POS orders. Two conditions must be met for this:

  1. The order is assigned to a POS Sales Channel and a branch (BranchStore).

  2. A shipped value is stored for each order line item.

The Shopware migration assistant does not automatically assign this information to migrated orders. If you want to continue viewing or processing returns for POS sales from Shopware 5 at the register later on, the orders must therefore be manually set to a state accepted by the POS App.

Adding a POS identifier for migrated orders

For a migrated order to be recognized as a POS order, it must be assigned to a branch. This assignment is made via the following table:

pickware_pos_order_branch_store_mapping

This table stores, for each order, which BranchStore is responsible. This table stores, per order, which BranchStore (branch) is responsible for the order. Without this entry, the order will not be displayed in the POS App – even if it has been assigned to a POS Sales Channel.

This assignment can be made using your own script, via a database entry, or through your agency.

Adding shipped values to enable returns

After migration, POS orders from Shopware 5 do not contain any shipped quantities. Since you need the shipped values to record any returns for the migrated orders, these values must be set retroactively. To do this, you can use the endpoint provided by Pickware ERP Starter:

POST /api/_action/pickware-erp/stock/move

Then, you need to run the following request for each product in an order:

POST /_action/pickware-erp/stock/move HTTP/1.1

[
{
"id": "{NEW_UUID}",
"quantity": {QUANTITY},
"productId": "{PRODUCT_ID}",
"source": "unknown",
"destination": {
"order": {
"id": "{ORDER_ID}"
}
}
}
]

Here, the values in the brackets {} must be replaced with the following values:

  • {NEW_UUID} – A newly generated UUID for each order line item.

  • {QUANTITY} – The shipped value from Shopware 5

  • {PRODUCT_ID} – The ID of the corresponding product from Shopware 6

  • {ORDER_ID} – The ID of the corresponding order from Shopware 6

Once these values have been added, migrated orders – e.g. from the last 30 days – can also be displayed and returned as usual in the POS App.

You can also import several order line items at once in a single request by including the object multiple times in the root array.

Please also refer to the documentation for the Shopware 6 Admin API as well as our notes on using the API. If you have any questions or need clarification, please contact your agency or reach out to our support team.

Completing the migration

If, to complete the migration, you transfer the domain of your Shopware 5 shop to your Shopware 6 shop, the license domain of your WMS and/or POS licenses for Shopware 6 must also be updated.

  • If you started the migration in your Pickware account for Shopware 5, you can change the license domain yourself in your Pickware account. To do this, log in to your Pickware account, make sure the Shopware 5 shop is selected, and select Migration in the menu on the left. Now click Transfer license domain. This renames the shop URL of your Shopware 6 shop to your previous Shopware 5 domain. The URL of your Shopware 5 shop is extended with the prefix sw5..

  • If you did not use the migration feature in your Pickware account, please contact support to change your license domain.

Which data cannot be migrated?

The following data currently cannot be migrated from Shopware 5:

  • Supplier orders

  • Stock movements

  • Returns

Note on the DATEV export

For all orders created in Shopware 5, the DATEV export must also be performed in Shopware 5, since otherwise this data would not be preserved when exporting in Shopware 6.

Further setup steps

Once you've completed the basics, various other configuration options for Pickware are available to you. You can find them here in the help center. You can also find general information on Shopware 6 directly from Shopware.

Did this answer your question?