cancel
Showing results for 
Search instead for 
Did you mean: 

impostazione Body richiesta PUT API Magento 2

SOLVED

impostazione Body richiesta PUT API Magento 2

Ciao a tutti,

ho bisogno di inviare, tramite API Rest Magento2 e framework GuzzleHttp, un comando di modifica caratteristica per un prodotto.

 

utilizzo il comando

 

$res = $client->put(http://magentoPath:8080/rest/V1/products/CODICEPRODOTTO);

 

ma credo di sbagliare la sintassi per il passaggio parametri al body.

 

devo inserire nel body un JSON del tipo:

 

$updateParam = {"product":{"sku":"CODICEPRODOTTO","custom_attributes":{"attribute_code":"description","value":"prova"}},"saveOptions":true}

 

Ho provato utilizzando il comando

 

$client->setBody($updateParam);

 

ma viene restituito l'errore

 

{"message":"\"%fieldName\" is required. Enter and try again.","parameters":{"fieldName":"product"}}

 

Ho provato a passare il JSON direttamente nella chiamata:

 

$res = $client->put("products/CODICEPRODOTTO", ['body' => $updateParam]);

 

ma mi viene restituito un 500 Internal Server Error

 

Qualche suggerimento?

grazie 

3 ACCEPTED SOLUTIONS

Accepted Solutions

Re: impostazione Body richiesta PUT API Magento 2

You need to pass below payload to your request,

{
  "product": {
    "sku": "customsku",
    "custom_attributes": [
        {
            "attribute_code": "description",
            "value": "test descriptoion"
        }
    ]
  }
}

 You missed [] in custom_Attributes value.

If Issue Solved, Click Kudos/Accept As solutions. Get Magento insight from
Magento 2 Blogs/Tutorial

View solution in original post

Re: impostazione Body richiesta PUT API Magento 2

Hi, 

 

I tryed this:

 

$updateParam = "{'product': {'sku': 'CODE','custom_attributes': [{'attribute_code': 'description'','value': 'test description'}]}}";

$res = $client->put("http://magentoPath:8080/rest/V1/products/CODE");
$client->setBody($updateParam);

 

but I got

 

{"message":"\"%fieldName\" is required. Enter and try again.","parameters":{"fieldName":"product"}}

 

 

View solution in original post

Re: impostazione Body richiesta PUT API Magento 2

3 REPLIES 3

Re: impostazione Body richiesta PUT API Magento 2

You need to pass below payload to your request,

{
  "product": {
    "sku": "customsku",
    "custom_attributes": [
        {
            "attribute_code": "description",
            "value": "test descriptoion"
        }
    ]
  }
}

 You missed [] in custom_Attributes value.

If Issue Solved, Click Kudos/Accept As solutions. Get Magento insight from
Magento 2 Blogs/Tutorial

Re: impostazione Body richiesta PUT API Magento 2

Hi, 

 

I tryed this:

 

$updateParam = "{'product': {'sku': 'CODE','custom_attributes': [{'attribute_code': 'description'','value': 'test description'}]}}";

$res = $client->put("http://magentoPath:8080/rest/V1/products/CODE");
$client->setBody($updateParam);

 

but I got

 

{"message":"\"%fieldName\" is required. Enter and try again.","parameters":{"fieldName":"product"}}

 

 

Re: impostazione Body richiesta PUT API Magento 2

risolto