Search code examples
vb.netmagento2soapuimagento-rest-api

Updating stock on magento 2.1 using REST API - Error {"message": "Request does not match any route."}


I am trying to get a stock item quantity updated on a magento 2.1 site using REST API.

I am coding in VB.net but I get the error JSON response {"message": "Request does not match any route."}

            Dim Access_Token = "XXXXXXXXXXXXX"

            Try

                Dim VATWebClient = New WebClient()
                VATWebClient.Headers(HttpRequestHeader.Accept) = "application/json"
                VATWebClient.Headers(HttpRequestHeader.ContentType) = "application/json"
                VATWebClient.Headers(HttpRequestHeader.Authorization) = "Authorization Bearer " & Access_Token
                Dim Response As String

                Response = VATWebClient.UploadString("http://www.xxxxxx.com/rest/V1/products/xxxx/stockItems/1", "{""stockItem"":{""qty"":100}}")


            Catch webEx As WebException
                Dim errorMessage As String = webEx.Message
                Dim errorStack As String = webEx.StackTrace

            End Try

I have also tried to setup SoapUI just to test to make sure that I am calling it right and I get the same error.

I read somewhere that the webapi.xml must be updated with the API which is required I am really hoping that's not the case as the host/web developer is not very accessible!


Solution

  • UploadString will create a POST Request, as you can see form the API Docs, this API endpooint is PUT method only.

    https://devdocs.magento.com/swagger/index_21.html#!/catalogInventoryStockRegistryV1/catalogInventoryStockRegistryV1UpdateStockItemBySkuPut
    

    I'm not too sure how to change the method in visual basic, but I'm sure it's not too difficult.