- 1.5+ Years of cooperation
- 3k+ Tasks done
- 50k+ Hours of Development
Client Profile

Name
Verkter
Project Length
2021 – ongoing
Industry
Tools for home and industry
Business Size
Medium, 6 storefronts, 20.000 daily users
Product Catalog
50.000
Project’s Goal
Migration to Magento 2
Business Problem
The client’s Magento 1 installation was heavily customized with solutions that were not designed to work together. That brought numerous performance and compatibility issues. Customers started to complain about slow load speed, checkout issues, and numerous bugs during the shopping process.

Challenge

We had to move to a newer, PCI Compliant system but leave the Magento 1 backend for order processing as the client’s operations were well established and pretty effective. Migrating the backend to the new system would negatively impact sales and customer satisfaction. We had to come up with a solution that could help to migrate 6 stores to Magento 2 with an operational center on Magento 1, where store admins could manage order processing, labels, invoices, etc.
One more client’s concern was that it would take lots of time to retrain staff (about 30 people) to work with Magento 2. Moreover, as the site was full of custom and unnecessary functionality that wasn’t %100 compatible with each other, we should have helped the client to develop a new approach to everyday business operations to make stores faster and bug free.

Solution

As the client had 6 different stores that he wanted to connect to the Magento 1 backend, we offered to use Microservices (PWA) as the most advanced and strategically correct migration option.
PWA is pretty good for websites that have different stores and regional storereviews. It allows to set storeviews in different environments according to their load and update them separately. The deployment of new features on one store won’t affect the other ones.

The most important thing about PWA is that it separates Storefront and Backend, using an API (GraphQL) as a connector. It also uses all sorts of caching and local storages to keep users data, before pushing into the main database.

For this project we built the same frontend using Magento 2 platform. Yet, the admin area of Magento 2 won’t be used, instead all of the products, customers and orders management will be happening in Magento 1 dashboard. Magento 2 will be used only as a transfer system from M1 while frontend would be on a new PWA solution so that users are able to browse catalog and make purchases.
Reasons Why We Offered a PWA Solution


The ability to put Storefront and Backend onto different servers, depending on their load.

It’s possible to integrate different CMSs, ERPs, Apps to the same Backend.

Separate changes deployment to different store views.

The client may avoid using Magento default backend, and build a custom dashboard for all the departments instead.

PWA causes less issues with Magento core updates. It won’t mess or break any storefront features, even when using custom functionality.
Project Goals
- Switch frontend to a new Magento 2 platform – to have better performance, modules support, security patches.
- Use Magento 1 as a backoffice, secure it and restrict it from outside.
- Use PWA studio venia template as the main theme.
- Add SPIX service to the ecommerce system.
The main idea of the project was to let the client’s staff continue using Magento 1 for internal needs but allow customers to make safe purchases on Magento 2 with all the benefits of a new platform.

The New Business Environment
PIM Integration
As the client was going to use Magento 2 only as a frontend and wanted to manage internal operations in Magento 1, we had to integrate a Product Information Management system (Akeneo) to transfer and sync data between Magento 2 frontend and Magento 1 backend.


Considering we chose a PWA approach we had to integrate a PIM solution that centralizes and organizes product information, making it easier to connect Magento 2 frontend and Magento 1 backend. Moreover, we had to develop a custom Akeneo connector to integrate the product information management system to the backend.
ERP Solution
Internal Operations brings higher load than customers via frontend and orders. Up to 20 daily admins were working in the Magento backend with Orders, Shipments, Internal tasks, Packing slips, etc. We decided to separate that area from the storefront server and let it work on its separate environment with the help of PWA technology. It also helped us to connect other third-party systems like PIM directly to that dashboard.
Another benefit of having a custom ERP solution is that if the company decides to switch any of the systems – nothing will change for the employees. They will be working with the same custom built backoffice and won’t even notice that something has changed.

New Order Processing

1. Akeneo PIM syncs the products with Magento 2.

2.The order is placed on the PWA frontend directly to M2, and customers will be getting emails from M1. All the order processing will be done as it is on Magento 1 by the time the client is ready to move all the processes to Magento 2.

3.After order is placed – the order as well as the customer will be synced to M1. Yet the payment will be synced directly to the payment gateway.

4.All the manipulations to M1 order will lead to:
A. an email to a customer from M1 (when needed)
B. a sync back to M2 – so that customer were able to see all the changes to the order in “My account”

5.When shipment is created in M1 – it will be synced to Shipping services, as well as M2 order updated (to reflect the changes in My account for a customer).

6.The template will be built based on the PWA Studio for the project.
SPIX Integration (Stock- Pricing- Inventory- Xml service)
We took a new approach to order management, considering the fact that we use Magento 2 as the frontend and Magento 1 as the backend with the help of SPIX integration. The service is separate from any other instance in a system and integrated with Magento1/ OMS and PIM.
The service takes data from suppliers and parses them further through the flow. Order flows into M2 through the frontend. When order is placed – the Qty is not getting decreased, instead Reservation is in place, so the item gets reserved, yet the qty is not changed.
The order gets passed to OMS, where Admin creates a shipment. When the shipment is created in OMS, here is what happens:
- Shipment get passed to M2
- Qty finally decreased in M2
- Reservation getting removed
- The order gets completed
M1 also sends Qty decrease to SPIX, indicating what sku in what warehouse should be decreased.
