Skip to content

MSI FAQs

Ievgen Shakhsuvarov edited this page Jul 16, 2019 · 28 revisions

This section provides quick answers with links to additional content for MSI questions we receive.

Have a question? Ask in the MSI Slack channel or during demos and presentations. If you are interested in joining Slack, or a specific channel, send us a request at [email protected] or self signup.

Q: Should I import bundled products amounts or use mass transfer?

For MSI 1.1.0 and earlier, we do not recommend using MSI import features or mass transfer options for bundled products. These products must be assigned to the Default Source and Default Stock, and not supported to custom source and stock.

We have stories in the MSI Roadmap to solve this issue and support bundled products for custom source and stock.

Q: What is the difference between SourceItemIndexer and StockIndexer?

In MSI, the indexation logic is a bit tricky because we have several scenarios which should invalidate the Inventory index. These scenarios include:

  • Changes in SourceItem (product on source) quantity. Typically occurs when a shipment is created. Magento\InventoryIndexer\Indexer\SourceItem\* is responsible for that logic.
  • Changes in Source status, for example, when a merchant disables an existing source. We need to recalculate the whole stock with an assigned, disabled source. Magento\InventoryIndexer\Indexer\Stock is responsible for this logic.
  • Changes in Source to Stock linkage. Any time we introduce or drop a relationship between Source and Stock, we need to re-calculate the index for the whole Stock.

Q: Is there a reason that there is not possible to assign multiple sources to the Default Stock? Trying to use MSI to accumulate the stock QTY from all of our sources in one sellable total.

As of MSI 1.1.0 and earlier, MSI reuses the legacy inventory index (created by CatalogInventory module) for the Default Stock. We do so, because MSI index is not capable to calculate Salable Qty for Bundle products yet. That's why the Single Stock mode is Default stock wit only Default Source assigned to it. If we will assign more sources now to Default Stock - the legacy index would not be able to build aggregation then.

We have stories in the MSI Roadmap to solve this tech debt:

  • Add an ability to assign additional sources to Default Stock (has dependencies on Bundle and Grouped product support)
  • Make Default Source/Stock configurable on custom sources and stocks (has dependencies on Bundle and Grouped product support)

Q: I want to use a drop shipper with freight calculations for sources, but it's picking up the wrong zip code (from shipping details)?

Currently, MSI does not support freight calculations for sources. We may include support for drop shipment freight calculations at a later time. (MSI Issue)

Q: I use online carriers (UPS, FedEx, etc) for shipping methods. What Zip code will it pull from for carriers? Does MSI support SSA at checkout?

We recommend using offline shipping carriers for MSI. When using an online carrier with MSI, it will pull the address of the Default Source, not custom sources. Currently MSI is designed to not provide the system any Single/Multi stock information at the time of order.

We did keep an extension point on the level of code if you want to extend and add functionality for supporting shipping carriers on the level of Source.

Adding Source Selection Algorithm checks during checkout to support online carriers is possible with extended code. To review Inventory Management REST calls, start here. For information on SSAs, see this page.

Q: Why does MSI use natural not surrogate identities?

We use natural not surrogate identities (or keys) purposefully to be microservice friendly. Using the natural ID keeps MSI from being dependent on internal ID at the data storage access layer.

Q: Why can I enter negative quantity amounts when assigning quantities per source?

Not a bug, but a feature! We have a business case for negative quantities. Drop shipping can be set up for MSI, perhaps using a specific custom source for the drop shipper. The drop shipper source can enter negative inventory quantities to alert how much of a product they need to order from manufacturers. In this scenario, we recommend enabling Backorders for this product with an Out-of-Stock Threshold of 0 for infinite backorders, or set to a specific negative amount.

This functionality is also supported in core Magento.

What about decimals? We support it on the stock level using the Qty Uses Decimals.

Q: Does the status (in/out of stock) matter for a Configurable Product parent?

Yes, always make sure to check and update the parent Configurable Product status when changing and updating child products! This status affects the display of child products on your storefront. If the parent is Out of Stock, all In Stock child products cannot be added to shopping carts. If the products can be purchased, set the parent and child products to In Stock.

This is by design to allow customers to see the product even if not available to purchase yet. You could use disable/enable product option to hide/show the products. But you may want to have the Out of Stock products display on your storefront to add to wishlists and to let customers watch for updates.

For example, if you wanted to hide the Configurable Product while creating and updating child products, you would set it to Out of Stock. This updates the Salable Quantity for this parent and all children, not accepting purchases until you are ready. The products may still display in your storefront if you enabled “Including Out of Stock” for your Stores > Configurations > Search option. When ready to sell, change to In Stock.

Q: I just installed/upgraded to MSI and having issues with my multisite implementation seeing all stock. What did I do wrong?

Example from Rob Conings in SLACK: I have the issue that even though my virtualhost passes MAGE_RUN_CODE and MAGE_RUN_TYPE it does not work on the default url. Only if you go to an url with a store specified it goes to the secondary website. If not it is redirect to the primary website.

When you first install/upgrade, all of your products have the Default Source added, associating all quantities to that source. But you may need to add all of your websites in a multisite implementation to the Default Stock. Until you do, additional websites beyond the default/main may not properly see stock.

MSI provides the aggregated salable quantities (or availability) and on-hand inventory quantities through the stock. It maps your websites as sales channels with sources (or locations).

To add your websites as Sales Channels to the Stock, see the Stock section of the wiki/user guide!

Q: Does MSI support multi-shipping or multiple shipping addresses used for orders?

Yes, MSI does support it. When a customer completes checkout using the option Check Out with Multiple Addresses, Magento automatically generates a separate order for each addresses selected. MSI handles these orders like all other orders.

For more information on supported order types and how it works, see Shipment and Order Management.

Q: How do you keep from overselling with MSI?

You have many options for maintaining stock and not overselling products in MSI. The entire system is built to ensure your staff, stocks, and customers always see the status of product inventory.

Concurrent Checkout works in the background to keep incoming orders from overwhelming your inventory. Keep reading for the basics!

Inventory thresholds are important. MSI leverages global and per product thresholds to keep from overselling:

  • Only X left Threshold - Set the stock quantity to send a notification that the product stock is nearing out of stock. The system default is 0.
  • Out-of-Stock Threshold - Sets the stock quantity to consider a product as out of stock. In MSI, if backorders is enabled, we recommend setting a negative value. This sets a maximum threshold for all orders. For details, see Configure MSI backorders.
  • Notify for Quantity Below - Typically, this option and value sets the stock quantity to send a notification of low stock for a product. In MSI, it also deducts from the Salable Quantity to ensure you do not oversell a product based on on-hand inventory. You can override this amount per product through Assigned Sources.

MSI keeps you stocked through alerts, backorders, and updates to your aggregated product quantity (or salable quantity) for all sources on a stock. Customers can only purchase the Salable Quantity. To go below these thresholds, you must enable and configure backorders.

Learn more about product thresholds and settings globally and per product.

Reservations keep your physical stock current. As checkout completes, MSI sets aside product quantities with reservations. These reserved amounts are deducted from the Salable Quantity of products. Think of your product inventory per Sales Channel/Stock like this:

When an order is processed and shipped, the reservation quantity is deducted from the product quantity per source you select. If you ship partial amounts, each shipment deducts that amount from your product quantity while the remaining reservations stay in place.

Learn more about reservations.

Q: I can't delete a source or change the code? What can I do?

Sources are part of product inventories, orders, shipment data and much more. You can remove a source from a product, transferring the inventory or dropping the product from all shipments at a location. But removing a source entirely can cause issues with order data.

If you need to manage a source, removing it from SSA calculations and MSI order processing as a location, you can disable the source. Disabled sources retain all data, assigned products and inventory quantities, and may be re-enabled any time to begin shipping again.

The code is vital for connecting the source to orders. This is a unique ID for the source and is disabled from editing.

Learn more about managing sources.

Q: What happens to product source assignments when I import new products?

When importing products to your Magento instance, they are automatically assigned to the Default Source. If you import products with a custom source assigned, the Default Source will still be added with a quantity of 0.

To update sources and quantities, use the Import/Export feature, Mass Action Tools, and/or directly through the product.

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