Adobe Commerce 3.0: migration guide from Adobe Commerce 2.0
About this article
This guide describes the process of migrating from the merchant plugin Adobe Commerce 2.0 to the latest version Adobe Commerce 3.0.
Table of contents
Migration of channelname and channel order number
Introduction
In 2024, ChannelEngine released the Adobe Commerce 3.0 plugin — the successor to Adobe Commerce 2.0, which will soon be deprecated.
Support for Adobe Commerce 2.0 will remain available for incident resolution until December 1, 2025. However, migrating to version 3.0 is strongly recommended to take advantage of improved reliability, a modern architecture, and ongoing feature development.
This guide provides an overview of the key differences between the two versions, along with step-by-step instructions for migrating to version 3.0.
To learn more about each Adobe Commerce plugin, check out the respective guides:
Key differences
| Adobe Commerce 2.0 | Adobe Commerce 3.0 | |
| Plugin type | Local installation | API-based integration |
| Adobe access | Direct access to internal code and database | Access via official Adobe APIs |
| Customizability | High – direct modification of Adobe components | High – direct modification of Adobe components |
| Plugin conflicts | High potential for conflicts with other extensions | Low risk due to isolated API calls |
| Configuration location | Configuration is done entirely in Adobe Commerce | Configuration is done on ChannelEngine due to the API-first architecture |
Feature comparison
| Feature | Adobe Commerce 2.0 plugin | Adobe Commerce 3.0 plugin |
| Import product data | ✅ | ✅ |
| Import product offers | ✅ | ✅ |
| Import shipments | ✅ | ✅ |
| Import merchant returns | ✅ | ✅ |
| Export channel returns | ✅ | ✅ |
| Export orders | ✅ | ✅ |
| Export marketplace-fulfilled orders | ✅ | ✅ |
| Import product images | ✅ | ✅ |
| Import cancelations | ✅ | ✅ |
| Three-level product structure | ✅ | ✅ |
| Import return tracking code | ❌ | ✅ |
| Export order extra data | ❌ | ✅ |
| Multiple stock locations | ❌ | ❌ |
Migration from 2.0 to 3.0
Prerequisites
Before starting the migration, bear the following in mind:
- The Adobe Commerce 2.0 and 3.0 plugins cannot coexist – uninstall version 2.0 before installing version 3.0.
- Use a staging environment – it is important to test the integration thoroughly before switching to production.
- Before disabling Adobe Commerce 2.0, make sure that all In progress orders are fully processed (shipped, canceled, or returned). These orders will not carry over to version 3.0.
- Only orders with the New status on ChannelEngine will be processed by Adobe Commerce 3.0.
- ChannelEngine adheres to Adobe standards and guidelines and is officially validated by Adobe through the Adobe Commerce App Assurance Program. The Adobe Commerce plugin is designed for standardized Adobe Commerce setups. Additionally, while ChannelEngine has seen successful integrations of the ChannelEngine Adobe Commerce plugin with various third-party plugins, ChannelEngine cannot guarantee compatibility with every setup combination.
- Any incompatibility with third-party plugins or highly customized Adobe Commerce settings is the responsibility of the user or the third-party plugin provider to resolve.
Uninstall Adobe Commerce 2.0
Prepare a staging environment
Create a new Adobe staging site that mirrors your production environment. If that is not possible, update your existing staging environment to closely match production.
Uninstall the plugin
To uninstall the Adobe Commerce 2.0 plugin, choose the method based on how the plugin was installed originally.
If the plugin was installed manually:
-
Open the terminal and disable the module:
php bin/magento module:disable ChannelEngine_ChannelEngineIntegration - Remove the plugin code by deleting the '/app/code/ChannelEngine' folder in the file system.
- Delete the ChannelEngine-related tables from your database.
-
Clean and flush the cache:
php bin/magento cache:cleanphp bin/magento cache:flush -
Upgrade and recompile the application:
php bin/magento setup:upgradephp bin/magento setup:di:compile
If the plugin was installed via Composer:
-
Open the terminal and remove the package:
composer remove channelengine/channelengine -
Disable the module:
php bin/magento module:disable ChannelEngine_ChannelEngineIntegration -
Upgrade the setup:
php bin/magento setup:upgrade - Check for any ChannelEngine tables in the database and delete them.
-
Clean and flush the cache:
php bin/magento cache:cleanphp bin/magento cache:flush -
Recompile the application:
php bin/magento setup:di:compile
After completing these steps, the Adobe Commerce 2.0 plugin should be fully removed.
Remove the plugin from ChannelEngine
Remember to remove Adobe 2.0 plugin from your ChannelEngine tenant.
- Log in to your ChannelEngine tenant.
- On the dashboard, locate the Adobe Commerce 2.0 plugin.
- Go to Setup. Click Delete to remove the plugin from your environment.
Install Adobe Commerce 3.0
You can install Adobe Commerce 3.0 manually. To do this, follow the instructions in the Adobe Commerce 3.0: merchant plugin guide.
Alternatively, you can install the plugin as an extension of the Adobe platform, available from the Adobe Commerce marketplace. To learn more about the Adobe extension for ChannelEngine, check out ChannelEngine marketplace connector v3.
Configure Adobe Commerce 3.0
You can fully configure the 3.0 plugin within your ChannelEngine tenant. For guidance, check out the Setup section of the Adobe Commerce 3.0: merchant plugin guide.
The table below shows which settings fields are mapped from the Adobe Commerce 2.0 plugin to the Adobe Commerce 3.0 plugin. The table also provides recommended values to support a smooth migration.
Settings fields mapping v2.0 → v3.0
| Setting on Adobe Commerce 2.0 | Options | Setting on Adobe Commerce 3.0 | Recommended option | Notes |
| Export products | Yes, No | - | - | Enabled by default on 3.0 |
| Use customer group pricing | Yes, No | - | - | Not supported on 3.0 |
| Merchant product number | Product ID, SKU | SKU | - | |
| Select price attribute | Final price, Price, Special price | - | - | This is mapped to Price on 3.0. If Special price is present and not expired, ChannelEngine List price is mapped to Price, and ChannelEngine Price is mapped to Special price. |
| Enable stock synchronization | Yes, No | Update stock on product import | Yes, No | |
| Enable multi-stock inventory | Yes, No | - | - | Not supported on 3.0 |
| Select inventories | Stock source | Inventory management stock ID | The ID of the selected stock source | |
| Set default stock quantity | 0 | - | - | Not supported on 3.0 |
| - | - | Magento stock endpoint | Salable quantity | Imported by default on 2.0 |
| Enable three-level synchronization | Yes, No | Generate three-level product structure | Yes, No | |
| Three-level synchronization attribute | Color, Size, Format | Product option for parent | 1, 2, 3 | Three-level product structure is enabled by default on 3.0. Note that the generator is based on the order of attributes and not the specific attribute (color/size). |
| Name | Product name | - | - | Mapped to Product name by default and not configurable on 3.0 |
| Description | Description | - | - | Mapped to Description by default and not configurable on 3.0 |
| Category | Categories | - | - | Built from the category IDs and not configurable on 3.0 |
| Shipping cost | Shipping cost | - | - | Not configurable on 3.0 |
| MSRP | MSRP | - | - | If present, mapped to ChannelEngine List price (takes precedence over Price in Special price case) on 3.0 |
| Purchase price | Purchase price | - | - | Mapped to product cost on 3.0 |
| Shipping time | Shipping time | - | - | Not configurable on 3.0 |
| Brand | Manufacturer | - | - | Mapped to Manufacturer by default and not configurable on 3.0 |
| Color | Color | - | - | Mapped to Color by default and not configurable on 3.0 |
| Size | Size | - | - | Mapped to Size by default and not configurable on 3.0 |
| EAN | GTIN | - | - | Mapped to one of these attributes, as long as it has a value: GTIN, EAN, barcode |
| Create reservations for products when orders are synchronized | Yes, No | - | - | Stock reserved by default on 3.0 |
| Import merchant fulfilled orders | Yes, No | Enable synchronization of orders fulfilled by merchant | Yes, No | |
| Unknown order lines handling | Exclude full order | - | - | Orders with ghost products are not exported to Adobe 3.0 |
| Synchronize shipments | Yes, No | - | - | Synchronization enabled by default on 3.0 |
| Synchronize cancelations | Yes, No | - | - | Synchronization enabled by default on 3.0 |
| Address format | Default (Europe), North America | - | - | Handled via a tenant setting for address parser, with dependence on order address on 3.0 |
| Import order fulfilled by marketplace | Yes, No | Enable synchronization of orders fulfilled by marketplace | Yes, No | |
| Status of incoming orders | Processing | - | - | Set to Processing by default and not configurable on 3.0 |
| Status that defines a shipped order | Complete | - | - | Set to Complete by default and not configurable on 3.0 |
Migration of channelname and channel order number
ChannelEngine's Adobe 3.0 and Adobe 2.0 Magento plugins save some information in different places. The most significant difference is where the channelname and channel order number are stored.
Adobe/Magento 2.0 plugin
The Adobe Commerce 2.0 plugin does not write new orders directly to the database. Instead, it uses built-in functions for saving new orders.
To prepare an order, the 2.0 plugin uses Magento\Framework\Webapi\ServiceInputProcessor::process, and for saving, it uses the Magento\Sales\Api\OrderRepositoryInterface::save function. Magento saves an order in the sales_order table because it is the main table for order storage in the Magento system. All described logic is found in the function ChannelEngine\ChannelEngineIntegration\Services\BusinessLogic\OrderService::create.
In addition, the 2.0 plugin adds a custom table channel_engine_order where it saves custom ChannelEngine data (channel name, channel order number, type of fulfillment) and connects it with the order ID from Magento:
Adobe/Magento 3.0 plugin
Our plugin stores orders in the regular Magento table:
sales_order_grid
and the attributes are called:
ce_id(this is the channelengine order id)ce_channel_order_noce_channel_name
On the order line:
ce_id(channelengine order id)
The main difference
After removing 2.0 and installing 3.0, Adobe shows the channelname and channel order number in the order overview for new orders. However, for orders that were done before 3.0 was installed, the Adobe order overview will not show a value. If the Adobe order overview does not show a value, the Adobe search feature will also not be able to find the order.
The proposed solution
Since the Adobe Commerce 3.0 plugin uses the regular Adobe/Magento table, all the pre-3.0 orders already exist. The new fields do not show the pre-3.0 values because the Adobe Commerce 2.0 plugin stored them in a separate table. As a solution, populate the empty fields with the historical data from the legacy table to help the Returns and Customer Support teams work on pre-3.0 orders. Matching can be done using the order_id from Magento, from the separate custom table in Adobe Commerce 2.0.
Comments
0 comments
Article is closed for comments.