Skip to content

MSI Roadmap

Stanislav Idolov edited this page Feb 27, 2020 · 203 revisions

Backlog which describes the deliverable state of Multi-Source Inventory project.

See current status on the Project Board

As Magento Inventory considered as a community-driven project - all the work implemented along the project will belong to Magento Open Source edition (former Magento CE).

There are 3 Milestones where we started investigation/design/coding:

Table of Contents

MLS1

Milestone 1: MSI MVP (Minimal Viable Product) 1st of June, 2017 - 19th of June, 2018

Story Size Estimation: S=1, M=3, L=10, XL=20

Status Estimate Story PR(s) Open Tickets
1 Introduce new API for Source Management 28
1 Provide Web API for Source Management 26
3 Manage multiple sources admin UI 28, 37, 32
3 Introduce APIs for products assignment to sources. SourceItem interface and its Repository. Cover source item management scenarios with Web API tests 38, 36
1 Read API. Stock interface and its management 35
3 Source assignment per each product Admin UI
1 Sources to Stock assignment API 39
1 Admin UI for Sources to Stock assignment 39
1 Cover with WEB API all existing scenarios for SourceItem and Source to Stock linkage 53
3 New indexing of Inventory and creating Virtual Aggregated Stock Items based on linkage rules 49
10 Introduce Reservation API. Append only reservations 64
3 Implement runtime calculation of Stock Quantity taking into account the reservations happened 94
3 Implement Reservation Clean-Up 94
3 Default Source and Stock. Creation of Default Source and Stock for it. Including admin UI 113, 121, 118, 122, 126
10 Import/Export of Sources (new functionality + admin UI) 147, 116
3 Add Drop Shipping support
3 Make Stock calculation and check availability services to support Backorders functionality 156
3 Multi Dimensional Index for Stock Inventory. Add support to invalidate all dimensions/some dimensions/partial update 141
1 Stock to Website mapping (with possibility of mapping to custom Sales Channels)
3 Add Stock/Website mapping UI 168, 173
1 Stock Removal. Throw an exception and allow to delete just unassigned stocks 171
1 Website creation. We should assign Default stock to newly created website. 165
3 Add new index on Reservation which will update both OLD StockItem::Qty and StockStatus::Qty 170
3 Migration M1.X, M2.1.X -> MSI 198
1 Import/Export of products aware of Sources 211
3 Adapt OLD Cataloginventory StockItem to work through new Inventory interfaces 198
3 Adapt OLD Cataloginventory StockStatus to work through new Inventory interfaces 198
3 Checkout adaptation. Adapt CatalogInventory\StockItem configuration for Multi-Source purposes
3 Substitute stock deduction on current checkout flow with Reservation placement. Async stock deduction 295
3 Admin part (order in admin panel). Substitute stock deduction in admin panel with Reservation placement
3 Introduce Source Selection Algorithm extension point
3 Add Source Code attribute, to provide an ability not to depend on internal Magento surrogate identity (SourceId). Fix Product and SourceItem import/export functionality, which currently use SourceId (Added to MVP backlog by request of Mark) 307, 298
3 Add Source Delivery awareness to Order page 315 Tickets
1 Run Source Selection Algo by request on Order page Tickets
3 Adapt Returns (SalesInventory). All returns should happen on Default Source Tickets
3 Low Stock Notifications to Merchant on the level of source. 321 Tickets
1 Product Alert for Customers on the level of stock Product Alert). Tickets
1 Update Low Stock Report
5 Adapt OLD CatalogInventory all other APIs 269, 304 Tickets
5 Inventory Catalog Search Tickets
5 Shopping Cart Update Tickets
3 Simplest “By Priority” Algorithm implementation Tickets
1 Processing of different order statuses. Reorder (close Reservation, create new Reservation)
1 Processing of different order statuses. Cancel Order, Partial cancel Tickets
1 Change qty on Invoice step of Order page Tickets
1 Adapt All cache invalidation taking into account new extension points (new Inventory APIs)
3 Make Source Selection Algorithm to be compatible with: Configurable product
3 Update/Change source assignment in the existing orders
10 Add MSI content to Merchant documentation
10 Basic MFTF Test Coverage
MLS2

Milestone 2: Preparation for 2.3.0 Magento release, Group product type support, Mass Inventory re-assignment. Stabilization. 13th of July, 2018 - 16th of November, 2018.

Story Size Estimation: S=1, M=3, L=10, XL=20

Status Estimate Story PR(s) Open Tickets
L Add Support of Multi-Sourcing for Grouped product
L Mass Inventory action (re-assign Source Items from/to different sources)
S Support Negative Threshold for Backorder functionality
L Prepare MSI for 2.3 Magento Release
MLS3

Milestone 3: Full B2B support, Elasticsearch support, Distance Based Algorithm

Status Estimate Story PR(s) Open Tickets
M Full support of Multi-Sourcing in B2B edition
M Full support of Multi-Sourcing for Elasticsearch adapter
🔃 XL Add Support of Multi-Sourcing for Bundle product
L “Minimal delivery cost” Algorithm (Geo Positioning Based source selection) (Using ZIP addresses open database) 1866
XL MFTF Test Coverage of S0/S1 scenarios Filter By Label
🔃 XL Store pickup support for Multi-Source Inventory
L Performance Improvements 1937
L CLI tools for fixing corrupted reservations which affect Salable Quantity calculation
S MSI + Product GraphQL API integration
M Export aggregated stock data (Salable quantities and Stock status)
MLS4

Milestone 4: Remove dependencies to CatalogInventory module

Status Estimate Story PR(s) Open Tickets
M Add an ability to assign additional sources to Default Stock (has dependencies on Bundle product support)
M Make Default Source/Stock switchable (has dependencies on Bundle product support)
M Drop existing CatalogInventory index and fully substitute it with new one provided by Inventory (has dependencies on Bundle product support)
M Performance improvements, cover MSI with PAT scenarious
M Assign Source Selector for Processing of Returns/Credit Memo

Product Backlog (Further Milestones)

Story Size Estimation: S=1, M=3, L=10, XL=20

Status Estimate Story PR(s) Open Tickets
S Add ability to specify that Source has some type (aka Dropshipper) to apply it for source selection
XL Stock Item Configuration API 1553
M Reservation on the level of Source
M Stock Reservation by time (Shopping Cart reservation by time)
  • Eliminate EE functionality of ScalableInventory (S) (moved from MLS1)
  • Configuration of the Shipping Options per source (M) (moved from MLS1)
  • Product assignment per each source Admin UI (M) (Postponed)
  • Improve modularity of Inventory. Make it agnostic to Sales, Checkout, Quote. (M)
  • Integrate Source Selection Algorithm to Checkout process (XL)

MSI Documentation:

  1. Technical Vision. Catalog Inventory
  2. Installation Guide
  3. List of Inventory APIs and their legacy analogs
  4. MSI Roadmap
  5. Known Issues in Order Lifecycle
  6. MSI User Guide
  7. DevDocs Documentation
  8. User Stories
  9. User Scenarios:
  10. Technical Designs:
  11. Admin UI
  12. MFTF Extension Tests
  13. Weekly MSI Demos
  14. Tutorials
Clone this wiki locally