# Shopware 6 | API | Fehler bei Patch auf product

**URL:** <https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791>\
**Category:** Shopware 6 (German)\
**Tags:** general, administration, programming\
**Created:** [3. Juli 2021 um 04:09 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791 "2021-07-03T04:09:40Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![s-a](https://avatars.discourse-cdn.com/v4/letter/s/c5a1d2/32.png) [@s-a](https://forum.shopware.com/u/s-a)\
**Post date:** [3. Juli 2021 um 04:09 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/1 "2021-07-03T04:09:41Z")

</div>

Hallo zusammen,

ich benötige mal wieder eure Hilfe und bin sehr dankbar das es euch gibt.

Wenn ich einen Patch auf Produkte mit folgendem Payload durchführe erhalte ich eine „FRAMEWORK\_\_WRITE\_TYPE\_INTEND\_ERROR“ Fehlermeldung (ganze Fehlermeldung - siehe ganz unten). Wenn ich den gleichen Payload nehme um ein Produkt anzulegen mit dem Endpoint mit Post auf /api/product anzulegen funktioniert dieses Einwandfrei.

Was mache ich falsch. Freue mich über jede Hilfe.

Payload;  
[https://w3movyaf5t4pcsqse7bdevs.s3.eu-west-1.amazonaws.com/Shopware6-Patch-Product-payload.json](https://w3movyaf5t4pcsqse7bdevs.s3.eu-west-1.amazonaws.com/Shopware6-Patch-Product-payload.json)

Fehlermdeldung:

```auto
{
    "errors": [
        {
            "status": "500",
            "code": "FRAMEWORK__WRITE_TYPE_INTEND_ERROR",
            "title": "Internal Server Error",
            "detail": "Expected command for \"Shopware\\Core\\Content\\Product\\ProductDefinition\" to be \"Shopware\\Core\\Framework\\DataAbstractionLayer\\Write\\Command\\UpdateCommand\". (Got: Shopware\\Core\\Framework\\DataAbstractionLayer\\Write\\Command\\InsertCommand)",
            "meta": {
                "parameters": {
                    "definition": "Shopware\\Core\\Content\\Product\\ProductDefinition",
                    "expectedClass": "Shopware\\Core\\Framework\\DataAbstractionLayer\\Write\\Command\\UpdateCommand",
                    "actualClass": "Shopware\\Core\\Framework\\DataAbstractionLayer\\Write\\Command\\InsertCommand"
                }
            }
        }
    ]
}

```

---

<div class="post-metadata">

**Author:** ![CarstenHarnisch](https://avatars.discourse-cdn.com/v4/letter/c/f0a364/32.png) [@CarstenHarnisch](https://forum.shopware.com/u/CarstenHarnisch)\
**Post date:** [4. Juli 2021 um 20:32 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/2 "2021-07-04T20:32:37Z")

</div>

Eigentlich steht es ja schon in der Fehlermeldung drin, sprich Du machst ein Insert (also einen HTTP POST) aber eigentlich wird halt ein Update (= HTTP PATCH) erwartet.

Vermutlich lässt Du Dich hier von der Behandlung der IDs fehlleiten. Als MySQL Nutzer ist man eigentlich gewohnt dass die DB selbst die IDs vergibt. Sprich man sendet ein Datenpaket als insert und macht das 100mal und als Ergebnis gibt es 100 Sätze.  
Hier ist das aber anders ! Der Client erzeugt die UUID und dann geht das Insert genau 1mal und danach kommt der Fehler oben.

---

<div class="post-metadata">

**Author:** ![s-a](https://avatars.discourse-cdn.com/v4/letter/s/c5a1d2/32.png) [@s-a](https://forum.shopware.com/u/s-a)\
**Post date:** [5. Juli 2021 um 00:52 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/3 "2021-07-05T00:52:22Z")

</div>

@CarstenHarnisch Vielen Dank für Deine Hilfe. Komisch ich habe bei Postman PATCH eingestellt aber es geht dennoch nicht. Was muss ich ändern damit es funktioniert? Kannst Du mir näher erläutern welche ids ich weglassen muss damit ein PATCH funktioniert? Ich gehe dabei so vor: Ich erstelle beispielsweise die Kategorie ID in dem ich beim jeweiligen Endpunkt die Kategorie erstelle und die dann als response gemeldete ID dann für das POST also das anlegen von Artikeln verwende. Wenn ich jedoch danach per Patch etwas ändern möchte kommt es zur genannten Fehlermeldung. Ich hoffe Du hast noch eine Idee damit es funktioniert.

---

<div class="post-metadata">

**Author:** ![CarstenHarnisch](https://avatars.discourse-cdn.com/v4/letter/c/f0a364/32.png) [@CarstenHarnisch](https://forum.shopware.com/u/CarstenHarnisch)\
**Post date:** [5. Juli 2021 um 04:34 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/4 "2021-07-05T04:34:00Z")

</div>

Dein beschriebenes Vorgehen ist so genau richtig. Aber es geht ja hier um die Änderung an einem Produkt. Also VOR dem Insert/POST für das Produkt eine UUID (Produkt-ID) erzeugen und evtl. auch eine eindeutige Produkt-Nr (SKU). Also letztlich das gleiche Vorgehen, wie bei den Kategorien.

Später dann die Produkt-ID nutzen bei einer Änderung (update/PATCH). Sprich die Daten für einen Patch bestehen minimal aus der UUID und einer Feld-Wert Kombi.

---

<div class="post-metadata">

**Author:** ![s-a](https://avatars.discourse-cdn.com/v4/letter/s/c5a1d2/32.png) [@s-a](https://forum.shopware.com/u/s-a)\
**Post date:** [5. Juli 2021 um 20:53 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/5 "2021-07-05T20:53:28Z")

</div>

@CarstenHarnisch Nochmals Danke das Du mir hilfst. Ich mache ein POST auf product und dann erhalte ich als response eine ID vom gerade angelegten Produkt. Diese verwende ich auch für den PATCH (in der URL: gebe ich dann die ID an) aber da erhalte ich die genannte Fehlermeldung. Ich hoffe Du oder gerne jemand anderes findest den Fehler. Da ich sonst einfach das Produkt löschen werde um es dann neu anzulegen.

---

<div class="post-metadata">

**Author:** ![CarstenHarnisch](https://avatars.discourse-cdn.com/v4/letter/c/f0a364/32.png) [@CarstenHarnisch](https://forum.shopware.com/u/CarstenHarnisch)\
**Post date:** [6. Juli 2021 um 04:26 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/6 "2021-07-06T04:26:30Z")

</div>

Hmm, was ist das für eine Programmiersprache, die Du nutzt ? Magst Du mal einen Ausschnitt posten von der Update-Routine. Es scheint ja wohl so zu sein, dass der Server die Patch-Methode nicht erkennt !  
Ist Content-Type gesetzt im HTTP-Request ?

---

<div class="post-metadata">

**Author:** ![s-a](https://avatars.discourse-cdn.com/v4/letter/s/c5a1d2/32.png) [@s-a](https://forum.shopware.com/u/s-a)\
**Post date:** [6. Juli 2021 um 17:08 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/7 "2021-07-06T17:08:02Z")

</div>

@CarstenHarnisch Hier nun mein Java Code (OkHttp3) den ich verwende:

```auto
String smaUrl = "http://shopware.none/api/product/<idDesProduktes>";

RequestBody body = RequestBody.create(MediaType.parse("application/json"), smaResultForApi);
Request request = new Request.Builder().url(smaUrl)
	.addHeader("Authorization", "Bearer " + smaApiGetToken())
	.addHeader("Accept", "application/vnd.api+json").patch(body).build();
try (Response response = client.newCall(request).execute()) {
        

```

smaResultForApi beeinhaltet dabei den JSON payload von weiter oben.  
Vielen Dank an jeden der mir hilft.

Gruß  
Sven

---

<div class="post-metadata">

**Author:** ![Klimax](https://avatars.discourse-cdn.com/v4/letter/k/848f3c/32.png) [@Klimax](https://forum.shopware.com/u/Klimax)\
**Post date:** [11. Juli 2022 um 07:39 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/8 "2022-07-11T07:39:54Z")

</div>

HI,  
hast du das Problem damals lösen können? Stecke grad in der selber Situation…

---

<div class="post-metadata">

**Author:** ![Dolce](https://avatars.discourse-cdn.com/v4/letter/d/47e85d/32.png) [@Dolce](https://forum.shopware.com/u/Dolce)\
**Post date:** [6. September 2022 um 06:14 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/9 "2022-09-06T06:14:57Z")

</div>

Hallo zusammen

Auch ich reihe mich in die Schlange der wartenden ein. Mit einer älteren Shopwareversion konnte ich über einen Artikel-Patch ein neues Variantenprodukt als Children Array mitgegeben.  
Durch das Ausführen des Patches wurde nicht nur der Artikel aktualisiert, vielmehr noch wurde die neue Variante sauber angelegt und mit dem Hauptartikel erfolgreich im Backend & Frontend verknüpft.  
Leider funktioniert diese wertvolle Funktion nun nicht mehr, was uns wiederum viel Arbeit beschert.

@Klimax: Hast Du bereits eine Lösung gefunden?  
@s-a : Wie sieht Dein Lösungsansatz aus?

---

<div class="post-metadata">

**Author:** ![alx90s](https://avatars.discourse-cdn.com/v4/letter/a/f04885/32.png) [@alx90s](https://forum.shopware.com/u/alx90s)\
**Post date:** [17. Dezember 2022 um 16:37 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/10 "2022-12-17T16:37:26Z")

</div>

Also ich bin heute in den selben Fehler reingerannt ☹

Mein Request:

```auto
export default async function pathProduct(req, res) {
  let headers = {
    Accept: "application/json",
    "Content-Type": "application/json",
    Authorization: req.body.token,
  };

  const PRODUCT_PARENT_ID = "34be072942d44daf920344f567793f50";
  const STOCK_CHILDREN = 9999;
  const VARIANT_ID_50X150 = "26819a63300b4de8ba49ff30c9cf6b71";
  const VARIANT_ID_20X30 = "b16f551dd20f454484a2c8dd6bee7026";

  const API = process.env.SHOP_ENDPOINT;
  const ENDPOINT = "/api/product/" + PRODUCT_PARENT_ID;
  const apiUrl = new URL(API + ENDPOINT);

  fetch(apiUrl.href, {
    method: "PATCH",
    headers: headers,
    body: JSON.stringify({
      children: [
        {
          productNumber: PRODUCT_PARENT_ID + ".1",
          stock: STOCK_CHILDREN,
          price: [
            {
              currencyId: "b7d2554b0ce847cd82f3ac9bd1c0dfca",
              gross: 1,
              net: 1,
              linked: false,
            },
          ],
          options: [
            { id: VARIANT_ID_50X150 }, // 50x150
          ],
        },
        {
          productNumber: PRODUCT_PARENT_ID + ".2",
          stock: STOCK_CHILDREN,
          price: [
            {
              currencyId: "b7d2554b0ce847cd82f3ac9bd1c0dfca",
              gross: 2,
              net: 2,
              linked: false,
            },
          ],
          options: [
            { id: VARIANT_ID_20X30 }, // 20x30
          ],
        },
      ],
    }),
  })
    .then(async (response) => {
      let resp = await response.json();
      console.log(resp);
      response.json();
    })
    .then((json) => {
      res.status(200).send(json);
    });
}

```

Fehlermeldung:

```auto
{
  errors: [
    {
      status: '500',
      code: 'FRAMEWORK__WRITE_TYPE_INTEND_ERROR',
      title: 'Internal Server Error',
      detail: 'Expected command for "product" to be "Shopware\\Core\\Framework\\DataAbstractionLayer\\Write\\Command\\UpdateCommand". (Got: Shopware\\Core\\Framework\\DataAbstractionLayer\\Write\\Command\\InsertCommand)',
      meta: [Object]
    }
  ]
}

```

---

<div class="post-metadata">

**Author:** ![Gheiner](https://avatars.discourse-cdn.com/v4/letter/g/f0a364/32.png) [@Gheiner](https://forum.shopware.com/u/Gheiner)\
**Post date:** [23. Februar 2023 um 16:21 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/11 "2023-02-23T16:21:48Z")

</div>

Gibt es hier mittlerweile eine Lösung? Bekomme gerade exakt denselben Fehler beim PATCH zurück. Sehr seltsam. Gestern haben PATCH-Requests bei mir noch funktioniert.

---

<div class="post-metadata">

**Author:** ![Gheiner](https://avatars.discourse-cdn.com/v4/letter/g/f0a364/32.png) [@Gheiner](https://forum.shopware.com/u/Gheiner)\
**Post date:** [23. Februar 2023 um 16:42 UTC](https://forum.shopware.com/t/shopware-6-api-fehler-bei-patch-auf-product/88791/12 "2023-02-23T16:42:08Z")

</div>

OK, die Lösung: es wurde eine falsche ID übergeben. Die ID stammte aus einem fehlerhaften Feld im ERP. Mit der richtigen productId klappt es wieder.
