In our last implementation, we came across a scenario where the customer is already having a Commerce platform and he wants to move Sitecore XC. The requirement was also to migrate the exiting user to as well as their address details and order to the new system.
The whole business is running on top of a legacy system which is the soul of the entire commerce ecosystem, which includes online and offline business both. Another challenge was their Domain Entity is completely different from that of we use in XC, well the list of core difference is quite large, so let me enlist them below-
All the domain entities are differently referred to in the legacy systems.
They were using two different Applications set for online ordering and account management.
Customers should use the same password as they were using earlier.
The password encryption algorithm was different from that of Sitecore.
Pricing for the products is coming from the external system.
Let’s discuss how we provided the best possible solution for the above case study.
Mapping of Commerce Entities
The very first is to try to map the older domain entity with the existing set of XC Entities. So say for example in the legacy system an order entity is treated as Sales Agreement. Taking that point into consideration we can map all the entity like below –
Once we have successfully mapped the existing entities, it may be possible there are still some more entities exits that are completely new and are tightly coupled with the older system. XC is flexible enough to accumulate these new changes. For creating a new entity in XC you can refer. Since XC offers to create cart and order for the anonymous user, two different applications profile is no longer a concern.
How to make Customer use older password
We imported the complete user with their existing password encrypting into a custom Db table, we rolled out them within XC as well. These profiles required for order migration and abandon cart migration as well. Now it’s the time to hook the incoming login request to use this custom table instead of Core tables. Once you get the correct password from the user you then have to update your system profile details with this password. check the flow below –
I hope its being clear from the diagram above that while performing a migration we also need to a add the older system detail into the custom table.
Migrating the Abandon Cart
Sitecore XC had already provided mechanism with the help you of which you can directly add Line Item to a profile Cart. The flow we usually do is
Load the Profile Cart
Add the Line Items to the Cart.
We create a console application as a worker application which was performing the business read write operation from master records to Sitecore via async ActionMethod calls.
Migrating the Orders in the System
We follow the same process as that of Customer details, to create a separate table and query and append the older data at run-time. I had not figured out how to roll out the older data directly into the XC as Order Entity may be in future, I write a blog the same as well.
Extending the existing Commerce Entities
Creating a new Commerce Entity from Scratch
Implementing a Dynamic Pricing Model
All the above points require more information as altogether a separate implementation. I will write and link the above points to there respective post later. Hope you find the article informative…
98720cookie-checkHow to migrate to Sitecore Experience Commerceyes