magento/magento2#38154: Getting success message after sending invalid SKU for the inventory/source-items API #3448
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description (*)
According to issue magento/magento2#38154, the
/rest/V1/inventory/source-itemsPOST API endpoint was accepting requests with non-existent SKUs and returning 200 OK status code without any validation errors. InInventory\Model\SourceItem\Validator\SkuValidator, validation only checked if SKU is not empty and doesn't have leading/trailing spaces, but didn't verify if a product with that SKU actually exists in the catalog.I've added
validateSkuExists()method intoInventory\Model\SourceItem\Validator\SkuValidator, that tries to load product by given SKU,and in case of failure, it catchesNoSuchEntityExceptionand returns validation error "Product with SKU <given_sku> does not exist."Fixed Issues (if relevant)
Prerequisites: Have Magento installed with magento/inventory-metapackage and at least one product in store (e.g., SKU "24-MB01")
Manual testing scenarios (*)
Expected result: API returns 400 Bad Request status, Error message:
{"message":"Validation Failed","errors":[{"message":"Product with SKU \"sfasdfasd\" does not exist.","parameters":[]}]}Contribution checklist (*)