📜 ⬆️ ⬇️

Warehouse management system using CQRS and Event Sourcing. Setting Requirements

image

Recently, the concept of Omnichannel has become popular, when in order to improve the quality of customer service, various sales channels are integrated into one. And no matter how and where the sale is made, it makes sense for the seller to combine all sales channels in order to fulfill the order. In practice, this means that it does not matter if the client came to you offline, made an order on the website, in a mobile application or by phone - you must use all available means to carry it out. And for you, as for the seller, each individual channel should not be a big difference. Presentation of the omni channel on the example of Frankfurt Airport (Eng.).

For the integration described above, it is very important for the seller to integrate the inventory levels of the goods. Because retail infrastructure can be quite complex and combine external warehouses, shops, stores with the ability to order goods to the store (store pick-up), dropshipping (the trade scheme in which you sell products from the supplier’s company, which itself sends them to the buyer from Your name, and you only accept money from the buyer).
')

image

Since we are developing a framework, and not a specific solution with turnkey integration for a particular business, the set of requirements for us has turned out to be quite broad.
The main requirements include:


Mapping of physical warehouses and warehouses to sales channels


image

This chart shows the various possibilities of mapping physical stores where goods are located on sales channels. Under the sales channels refers to the delivery of goods to the market and their subsequent implementation. For example, in terms of Magento, this could be a Website, but with the advent of B2B a separate sales channel may be a wholesale customer for whom you have a separate discount and who can bargain with you separately. In this case, the sales channel will be the Customer Group. Also a good example of a sales channel may be a country or region.

As you can see in this diagram, physical warehouses are combined into a virtual aggregation, which in turn is assigned to a specific distribution channel. In this case, one physical warehouse can serve more than 1 sales channel, and within the sales channel, stock from more than one warehouse can be combined. This allows you to achieve maximum flexibility, as well as, if necessary, introduce new sales channels and compare existing drains with them.

Magento MSI (Multi Source Inventory)


This article is the first article in the “Warehouse Management System Using CQRS and Event Sourcing” cycle within which the collection of requirements, design and development of a warehouse management system will be considered using Magento 2 as an example.

An open project, where development is underway, and where community engineers are involved, as well as where you can familiarize yourself with the current state of the project and documentation, is available at github.com/magento-engcom/magento2/projects

Source: https://habr.com/ru/post/331654/


All Articles