Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Magento Multi-Source Inventory (MSI)

1,252 views

Published on

Multi-Source Inventory: The Largest Community-Developed Feature in Magento. Brand new inventory management approach which is about to substitute existing CatalogInventory mechanism in Magento2.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Magento Multi-Source Inventory (MSI)

  1. 1. © 2017 Magento, Inc. Page | 1 Multi-Source Inventory (MSI) Igor Miniailo Magento 2 Architect Community Engineering
  2. 2. © 2017 Magento, Inc. Page | 2
  3. 3. © 2017 Magento, Inc. Page | 3 Does MSI stands for Multi-Source Inventory? NO
  4. 4. © 2017 Magento, Inc. Page | 4 MSI is a brand new Inventory management mechanism which supports Multi Sourcing
  5. 5. © 2017 Magento, Inc. Page | 5 MSI is designed to enable stock management in multiple locations so that merchants can properly reflect their physical warehouses in Magento system without external extensions or customization Multi-Source Inventory (MSI)
  6. 6. © 2017 Magento, Inc. Page | 6 Split the inventory between the sources within one Magento installation
  7. 7. © 2017 Magento, Inc. Page | 7 Replace current CatalogInventory with MSI
  8. 8. © 2017 Magento, Inc. Page | 8 How big is MSI?
  9. 9. © 2017 Magento, Inc. Page | 9 How Big is Magento?
  10. 10. © 2017 Magento, Inc. Page | 10 How big is MSI? – It’s huge
  11. 11. © 2017 Magento, Inc. Page | 11 https://github.com/magento-engcom/msi/wiki/MSI-Roadmap
  12. 12. © 2017 Magento, Inc. Page | 12 MVP MSI Business Values for Merchants • Management of all physical locations (Sources) and products stored there (SourceItems) – As a merchant, I want Magento to provide an ability to manage all physical Sources where the products are stored. To get an understanding of the Stock level on each of them. • Improve Checkout Performance (even for Single Stock merchants) – As a merchant, I want to eliminate excessive database locks and Inventory consistency validation during checkout process which lead to performance degradation when there is a high checkout concurrency rate. So that, Reservation mechanism introduced which supports Asynchronous Inventory Deduction.
  13. 13. © 2017 Magento, Inc. Page | 13 MVP MSI Business Values for Merchants • Import/Export Stock data – As a merchant, I want new Import/Export process for Inventory to be introduced to speed up integration with an external ERP system. • Drop Shipping support – As a merchant, I want to have an ability to setup external Source to be used for Drop shipping. • Stock Control / Low Stock Reports – As a merchant, I want Magento to support Stock Control on all the physical locations (Sources) and notify me when products on some location are running out. • No additional complication for Single Stock Merchants – As a Merchant who is satisfied with Magento Single Stock, I want no added complexity for UI and Stock management. The user experience for Single Stock usage should be preserved.
  14. 14. © 2017 Magento, Inc. Page | 14 Base Concept
  15. 15. © 2017 Magento, Inc. Page | 15 Inventory Management
  16. 16. © 2017 Magento, Inc. Page | 16 Inventory Management
  17. 17. © 2017 Magento, Inc. Page | 17 Inventory Management
  18. 18. © 2017 Magento, Inc. Page | 18 Inventory management on Product Page
  19. 19. © 2017 Magento, Inc. Page | 19 • Unload the process of placing an order as much as possible • Remove unnecessary locks (get rid of race condition between concurrent transactions) • Improve scalability of Magento introducing multi-dimensional indices (each stock has own Index / Database table) Checkout Action Points/Goals
  20. 20. © 2017 Magento, Inc. Page | 20 Reservation - the entity is used when the order is placed and we need to reserve some product quantity in stock. Reservations are append only operations and help us to prevent blocking operations and race conditions at the time of checkout. Reservation mechanism https://github.com/magento-engcom/msi/wiki/Reservations
  21. 21. © 2017 Magento, Inc. Page | 21 Order Placement – Step 1 France Warehouse SKU-1: 5qty EU Stock SKU-1: 15qty Italy Warehouse SKU-1: 10qty Raw data Index Reservations No records Salable Qty: 15qty (data from index, empty reservations)
  22. 22. © 2017 Magento, Inc. Page | 22 Order Placement – Step 2 Action: Customer buys 5 products on frontend
  23. 23. © 2017 Magento, Inc. Page | 23 Order Placement – Step 3 France Warehouse SKU-1: 5qty EU Stock SKU-1: 15qty Italy Warehouse SKU-1: 10qty Raw data Index Reservations SKU-1: -5 Salable Qty: 10qty (data from index 15, apply all reservations -5) Data is NOT changed Reservation has been added
  24. 24. © 2017 Magento, Inc. Page | 24 Order Placement – Step 4 Action: Admin makes a re-order 3 products out of 5 returned, and new order consists of 2 products
  25. 25. © 2017 Magento, Inc. Page | 25 Order Placement – Step 5 France Warehouse SKU-1: 5qty EU Stock SKU-1: 15qty Italy Warehouse SKU-1: 10qty Raw data Index Reservations SKU-1: -5 SKU-1: +3 Salable Qty: 13qty (data from index 15, apply reservations -5+3) Data is NOT changed Reservation has been added
  26. 26. © 2017 Magento, Inc. Page | 26 Order Placement – Step 6 Action: Admin completes order. Re-index was run.
  27. 27. © 2017 Magento, Inc. Page | 27 Order Placement – Step 7 France Warehouse SKU-1: 3qty EU Stock SKU-1: 13qty Italy Warehouse SKU-1: 10qty Raw data Index Reservations SKU-1: -5 SKU-1: +3 SKU-1: +2 Salable Qty: 13qty (data from index 13, apply reservations -5+3+2=0) Data is CHANGED Compensation Reservation has been added
  28. 28. © 2017 Magento, Inc. Page | 28 Order Placement – Step 8 Action: Reservation cleaning Looping through these reservations we could find reservations which in sum gives 0 (Zero) and remove them.
  29. 29. © 2017 Magento, Inc. Page | 29 Order Placement – Step 9 (like Step 1) France Warehouse SKU-1: 3qty EU Stock SKU-1: 13qty Italy Warehouse SKU-1: 10qty Raw data Index Reservations Salable Qty: 13qty (data from index, empty reservations) Data is NOT changed Reservations have been removed No records
  30. 30. © 2017 Magento, Inc. Page | 30 Order Processing
  31. 31. © 2017 Magento, Inc. Page | 31 Source Selection Based on Priority of Sources
  32. 32. © 2017 Magento, Inc. Page | 32 Source Selection Algorithm
  33. 33. © 2017 Magento, Inc. Page | 33 Shipment created per Source
  34. 34. © 2017 Magento, Inc. Page | 34 Kanban board and Wiki are on the GitHub .
  35. 35. © 2017 Magento, Inc. Page | 35 Slack Channel to Exchange ideas (#MSI)
  36. 36. © 2017 Magento, Inc. Page | 36 YouTube playlist
  37. 37. © 2017 Magento, Inc. Page | 37 Some stats • 66 developers have ever created PRs to MSI • 400 PRs created since the beginning (mid of June 2017)
  38. 38. © 2017 Magento, Inc. Page | 38 • Documentation https://github.com/magento-engcom/msi/wiki • Roadmap https://github.com/magento-engcom/msi/wiki/MSI-Roadmap • Dashboard https://app.zenhub.com/workspace/o/magento-engcom/msi/boards • Weekly Demos https://www.youtube.com/watch?v=ZtBNIE8FbjI&list=PLrQ5FBCRsEb WKK6U_3Awe7X-nG7KY0WPW Related Links
  39. 39. © 2017 Magento, Inc. Page | 39 How to join us? Send an email to engcom@magento.com @iminyaylo Thank y’all!

×