Skip to content

Support of Store Pickup for Multi Source Inventory

Igor Miniailo edited this page Dec 12, 2018 · 25 revisions

How does Store Pickup work from a Customer point of view

Customer places an order and waits to receive a "Ready for pickup" e-mail. (This is a separate e-mail from the order confirmation.) Bring his ID, credit card, and order number to the store and pick up the ordered items.

At the time when the order is being placed on the "Shipping" step, we introduce an ability to choose "Store Pickup" out of allowed shipping methods.

We apply an assumption that each order should be fulfilled just from the only pickup location (which is considered as shipping address).

**Note: if some need to specify different pickup locations per cart item(-s), internally that could lead to functionality similar to Multi-Shipping (or integration with Multi-Shipping) when several orders created, for each corresponding pickup location.

In MVP functionality it's proposed to avoid integration with Multi-Shipping and provide an ability to choose a single Store Pickup location from Drop-Down box:

When Customer chooses pickup location Magento as before creates reservations for global stock (not to specific Source).

**Note: Maybe makes sense to add extension attribute to Order object and specify Source which should be used to fulfill the order OR we can detect the Source checking whether Shipping address matches the addresses of our Sources.

**Note: If there are not enough Qty on specified Source to fulfill the Order, an internal transportation from other sources should be made to the selected one. Say, our "Salable Quantity" on "Custom Stock" is 10 for SKU-1. "Custom Stock" consists of three sources:

  • Source A, which contains 5 items of SKU-1
  • Source B, which contains 4 items of SKU-1
  • Source C, which contains 1 item of SKU-1

Altogether it gives us 5 + 4 + 1 = 10 If Customer has ordered 8 items of SKU-1 and chosen "Source A" for Store Pickup:

  • the system will create Reservation for -8 for SKU-1 on "Custom Stock" (not Source A)
  • merchant has to move 3 items of SKU-1 from Source B -> Source A to fulfill the order
  • when required 3 items are moved to Source A (so, the order is fulfillable) merchant initiate delivery of "Ready for pickup" e-mail, which notifies Customer that he can come to the store to grab all ordered items.

How does Store Pickup work from a Merchant point of view

A merchant should have the ability to specify which Sources support Store Pickup. To do so we have to introduce corresponding Extension Attribute for Source entity and provide an ability to specify one via both Admin UI on the Source editing page and Web APIs. Based on the attribute value (whether it set) we will add the corresponding Source to the Store Pickup Drop-Down list.

For orders placed with Store Pickup shipping method, we have to skip the Source Selection Algorithm step, as this information known in advance. But merchant has to be informed that there is not enough Qty to fulfill the order and internal shipping should be done to fulfill one, in the case when the selected source does not allocate all requested product Qty.

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