2017-03-14 2 views
0

löschen Ich versuche, von commercetools API über HTTP-Anfrage zu löschen.Kann Produkt nicht von commercetools api

Im Anschluss ist mein Code:

$url = 'https://api.sphere.io/test/products/xxxx'; 
$params = json_encode(array('version'=>1)); 

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $params); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json')); 
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE"); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Bearer xxxx')); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
$res = curl_exec($curl); 
$response = json_decode($res); 

print_r($response); 

Antwort vom Server:

stdClass Object ([statusCode] => 400 [message] => Missing version number [errors] => Array ([0] => stdClass Object ([code] => InvalidOperation [message] => Missing version number))) 

Ich schicke Versionsnummer in params, aber immer noch Fehler. Bitte helfen Sie mir

+0

Irgendwelche Vorschläge dazu. – Gowri

Antwort

2

mein erster Rat ist es, das commercetools PHP SDK zu verwenden. Gefunden hier https://github.com/commercetools/commercetools-php-sdk oder bei der Verwendung von Komponist https://packagist.org/packages/commercetools/php-sdk

ein Produkt mit dem SDK Löschen sieht wie folgt aus:

<?php 

namespace Commercetools\Core; 

use Commercetools\Core\Request\Products\ProductDeleteRequest; 

require __DIR__ . '/../vendor/autoload.php'; 


// create the api client config object 
$config = Config::fromArray([ 
    'client_id' => 'XXX', 
    'client_secret' => 'XXX', 
    'scope' => 'xxxx' 
]); 

$request = ProductDeleteRequest::ofIdAndVersion('123456', 1); 

$client = Client::ofConfig($config); 

$response = $client->execute($request); 
$deletedProduct = $request->mapFromResponse($response); 

Wenn Sie wirklich direkt bleiben möchte mit der API sprechen Sie die Version als Abfrage senden Parameter wie in der Dokumentation hier http://dev.commercetools.com/http-api-projects-products.html#delete-product-by-id angegeben. So würde die URL in Ihrem Beispiel sein:

$url = 'https://api.sphere.io/test/products/xxxx?version=1'; 
+0

Ich möchte kein SDK verwenden, mit http api ich muss dies tun. – Gowri

+0

Also dann ist dies der Weg zu gehen: $ url = 'https://api.sphere.io/test/products/xxxx?version=1'; $ curl = curl_init ($ url); curl_setopt ($ curl, CURLOPT_HTTPHEADER, Array ('Akzeptieren: application/json')); curl_setopt ($ curl, CURLOPT_CUSTOMREQUEST, "LÖSCHEN"); curl_setopt ($ curl, CURLOPT_HTTPHEADER, Array ('Autorisierung: Bearer xxxx')); curl_setopt ($ curl, CURLOPT_RETURNTRANSFER, WAHR); $ res = curl_exec ($ curl); $ response = json_decode ($ res); print_r ($ Antwort); –

+0

Perfekt ... Es funktioniert. – Gowri

Verwandte Themen