magento / inventory

Magento Inventory Project (a.k.a MSI)
Open Software License 3.0
337 stars 247 forks source link

Introduce REST endpoints to fetch saleable quantity / stock data for a list of skus #3415

Open SamJUK opened 1 week ago

SamJUK commented 1 week ago

Description (*)

According to the documentation at https://developer.adobe.com/commerce/webapi/rest/inventory/check-salable-quantity/ We currently have REST endpoints for checking both, if a single sku or multiples skus are saleable. Via the following routes

GET /V1/inventory/is-product-salable/:sku/:stockId
GET /V1/inventory/are-products-salable/:skus[]/:stockId

Although when it comes to fetching the actual saleable quantity, there is only a endpoint to check a singular product at a time.

GET /V1/inventory/get-product-salable-quantity/:sku/:stockId

In the context of external ERP systems / marketplaces, it quite common to perform regular stock retrieval from Magento to ensure accurate stock counts. Currently this means making a single request for each product, which for large catalogs can amount to a lot of requests & wasted bandwidth compared to being able to batch multiple products into a single request.

Expected behavior (*)

Offer a endpoint to fetch saleable qty for multiple products similar to are-products-saleable.

GET GET /V1/inventory/get-products-salable-quantities/:sku[]/:stockId

Benefits

Additional information

Functionality seems to be a popular request in the magento2 repository, with people requiring stockItems on the product list endpoint, see the references below.

See the following comment on one of the PRs from Sidolov, around removing the stock data from the catalog REST endpoints. Although currently there seems to be no alternative to bulk load stock/qty data for a set of skus. https://github.com/magento/magento2/pull/28435#issuecomment-638320655

m2-assistant[bot] commented 1 week ago

Hi @SamJUK. Thank you for your report. To speed up processing of this issue, make sure that you provided sufficient information. Add a comment to assign the issue: @magento I am working on this


Join Magento Community Engineering Slack and ask your questions in #github channel.

lamasfoker commented 6 days ago

@SamJUK I think you can use this endpoint with the proper search criteria and get the same result of your proposal. Unfortunately there is a bug in that API, see #3416.