Skip to content

MSI Roadmap

Igor Miniailo edited this page Nov 16, 2018 · 203 revisions

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

See current status on the Project Board for Milestone 2 on ZenHub

As MSI 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

100% Complete

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

See MLS1 Burndown report on ZenHub (COMPLETE)

Status Estimate Story PR(s) Open Tickets Zenhub Epic
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 EpicProgress
1 Run Source Selection Algo by request on Order page Tickets EpicProgress
3 Adapt Returns (SalesInventory). All returns should happen on Default Source Tickets Epic Progress
3 Low Stock Notifications to Merchant on the level of source. 321 Tickets Epic Progress
1 Product Alert for Customers on the level of stock Product Alert). Tickets Epic Progress
1 Update Low Stock Report Epic
5 Adapt OLD CatalogInventory all other APIs 269, 304 Tickets EpicProgress
5 Inventory Catalog Search Tickets EpicProgress
5 Shopping Cart Update Tickets EpicProgress
3 Simplest “By Priority” Algorithm implementation Tickets EpicProgress
1 Processing of different order statuses. Reorder (close Reservation, create new Reservation) EpicProgress
1 Processing of different order statuses. Cancel Order, Partial cancel Tickets EpicProgress
1 Change qty on Invoice step of Order page Tickets EpicProgress
1 Adapt All cache invalidation taking into account new extension points (new Inventory APIs) EpicProgress
3 Make Source Selection Algorithm to be compatible with: Configurable product EpicProgress
3 Update/Change source assignment in the existing orders Epic Progress
10 Add MSI content to Merchant documentation Epic Progress
10 Basic MFTF Test Coverage Epic Progress
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.

100% Complete

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

See MLS2 Burndown report on ZenHub (COMPLETE)

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

Milestone 3: New Inventory Configuration, Full B2B support, Elasticsearch support, Distance Based Algorithm

0% Complete

Status Estimate Story PR(s) Open Tickets Zenhub Epic
L Source Item Configuration API 1553 EpicProgress
XL Stock Item Configuration API 1553 EpicProgress
M Full support of Multi-Sourcing in B2B edition
M Full support of Multi-Sourcing for Elasticsearch adapter EpicProgress
XL Add Support of Multi-Sourcing for Bundle product EpicProgress
L “Minimal delivery cost” Algorithm (Geo Positioning Based source selection) (Using ZIP addresses open database) 1866
XL MFTF Test Coverage of S0/S1 scenarious
L Store pickup support for Multi-Source Inventory
MLS4

Product Backlog (Further Milestones)

0% Complete

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

Status Estimate Story PR(s) Open Tickets Zenhub Epic
M Add an ability to assign additional sources to Default Stock (has dependencies on Bundle and Grouped product support)
M Make Default Source/Stock switchable (has dependencies on Bundle and Grouped product support)
M Reservation on the level of Source
M Stock Reservation by time (Shopping Cart reservation by time)
M Performance improvements, cover MSI with PAT scenarious
S Add ability to specify that Source has some type (aka Dropshipper) to apply it for source selection
S MSI + Product GraphQL API integration
M Drop existing CatalogInventory index and fully substitute it with new one provided by MSI (has dependencies on Bundle and Grouped product support)
  • Eliminate EE functionality of ScalableInventory EpicProgress (S) (moved from MLS1)
  • Configuration of the Shipping Options per source (M) (moved from MLS1)
  • Product assignment per each source Admin UI (M) (Postponed)
  • Delivery Time Information (REMOVED FROM SCOPE) (M)
  • 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