API Code funktioniert nicht

Hallo zusammen,

ich würde mich freuen wenn mir jemand helfen kann :slight_smile: Ich versuche mich an API und komme nach Tagen nicht mehr weiter. Generell möchte ich, dass die API einfach den Produktnamen ändert und in mein Zusatzfeld einen Wert einträgt. Die Abfrage nach der Product ID funktioniert, jedoch das ändern der Daten nicht. Hat jmd Lust und Zeit mir auf die Sprünge zu helfen? Also der Code sagt, dass das Produkt geupdatet ist, jedoch ist in Wirklichkeit nichts passiert.

<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://meine-seite.de/store-api/product",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
  
    'filter' => [
        [
            'type' => 'equals',
            'field' => 'productNumber',
            'value' => 'SW10001'
        ]
    ],
    'additionalFieldsets' => [
        'api' => ['customFields']
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Accept: application/json",
    "Content-Type: application/json",
    "sw-access-key: SWSCS21XYNZGRMXEELQ0RXO5BW"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  $decoded_response = json_decode($response, true);
  
  // Überprüfen, ob das Produkt gefunden wurde
  if(isset($decoded_response['elements'][0])) {
      $product_id = $decoded_response['elements'][0]['id'];
      echo "Product ID: $product_id" . PHP_EOL; // Produkt-ID ausgeben
      
      // Produkt-ID gefunden, Zusatzfeld 'meinlabel' mit Wert '1' aktualisieren
      $update_data = [
		'name' => 'hallo', // Änderung des Produktnamens
        'customFields' => [
            'technischernamefeld' => [
                'meinlabel' => '1'
            ]
        ]
      ];
      
      $curl_update = curl_init();
      
      curl_setopt_array($curl_update, [
        CURLOPT_URL => "https://meine-seite.de/store-api/product/$product_id",
		
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "PATCH",
        CURLOPT_POSTFIELDS => json_encode($update_data),
        CURLOPT_HTTPHEADER => [
          "Accept: application/json",
          "Content-Type: application/json",
          "sw-access-key: SWSCS21XYNZGRMXEELQ0RXO5BW"
        ],
      ]);
      
      $update_response = curl_exec($curl_update);
      $update_err = curl_error($curl_update);
      
      curl_close($curl_update);
      
      if ($update_err) {
        echo "cURL Error updating product #:" . $update_err;
      } else {
        echo "Product updated successfully";
      }
  } else {
      echo "Product not found";
  }
}
?>

Du möchtest also mit einem öffentlich zugänglichen API-Key Daten ändern? Mutig.

Es gibt zwei API: store-api und api