# SYNC-Api und Fehler

**URL:** <https://forum.shopware.com/t/sync-api-und-fehler/68185>\
**Category:** Programmierung\
**Created:** [7. Juli 2020 um 10:13 UTC](https://forum.shopware.com/t/sync-api-und-fehler/68185 "2020-07-07T10:13:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ebcom](https://avatars.discourse-cdn.com/v4/letter/e/7ab992/32.png) [@ebcom](https://forum.shopware.com/u/ebcom)\
**Post date:** [7. Juli 2020 um 10:13 UTC](https://forum.shopware.com/t/sync-api-und-fehler/68185/1 "2020-07-07T10:13:49Z")

</div>

Ich übertrage mittels Sync-API 5400 Artikel in den Shop. Es werden immer 500er Blöcke übertragen. In einem Datenblock kommt es bei zwei Artikeln zu einem Fehler, weshalb letztendlich nur 4900 Artikel im Shop landen. Gibt es eine Möglichkeit diese beiden fehlerhaften Datensätze zu ignorieren so dass 5398 Artikel im Shop landen?

---

<div class="post-metadata">

**Author:** ![beyerph](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@beyerph](https://forum.shopware.com/u/beyerph)\
**Post date:** [3. August 2020 um 06:50 UTC](https://forum.shopware.com/t/sync-api-und-fehler/68185/2 "2020-08-03T06:50:52Z")

</div>

Hallo,

ich habe das gleiche Problem mit der Sync-API - bei mir geht es um Bestände. Ich übergebe 300 Bestands-Updates über den Sync-Befehl, eine der 300 übergebenen Artikelnummern existieren allerdings nicht im Shop und der ganze Block wird nicht importiert. Gibt es einen Header, den man beim Request mitschicken könnte, der den Rollback verhindert?

Besten Dank

---

<div class="post-metadata">

**Author:** ![Shaimole](https://avatars.discourse-cdn.com/v4/letter/s/df705f/32.png) [@Shaimole](https://forum.shopware.com/u/Shaimole)\
**Post date:** [13. August 2020 um 12:14 UTC](https://forum.shopware.com/t/sync-api-und-fehler/68185/3 "2020-08-13T12:14:39Z")

</div>

Es sollte möglich sein und zwar folgendermaßen:

1. header fail-on-error auf string „false“ setzen.

2. die Ids (oder Artikel etc) in einzelne oder kleinere packete unterteilen.

Das heißt nicht, dass sie einzeln geschickt werden sollen, sonder nur einzelnd verarbeitet.

Beispiel:

Hier ein standart sync request, wenn eine der Kategorien einen fehler wirft wird keine übertragen.

```
{
    "write-category": {
        "entity": "category",
        "action": "upsert",
        "payload": [
            { "name": "category-1" },
            { "name": "category-2" },
            { "name": "category-3" },
            { "name": "category-4" },
            { "name": "category-5" },
            { "name": "category-6" }
        ]
    }
}

```

Wenn man es allerdings so formatiert wird beim fehler nur die jeweilige Kategorie verworfen.

```
{
    "write-category1": {
        "entity": "category",
        "action": "upsert",
        "payload": [
            { "name": "category-1" }
        ]
    },
    "write-category2": {
        "entity": "category",
        "action": "upsert",
        "payload": [
            { "name": "category-2" }
        ]
    },
    "write-category3": {
        "entity": "category",
        "action": "upsert",
        "payload": [
            { "name": "category-3" }

        ]
    },
    "write-category4": {
        "entity": "category",
        "action": "upsert",
        "payload": [
            { "name": "category-4" }
        ]
    },
    "write-category5": {
        "entity": "category",
        "action": "upsert",
        "payload": [
            { "name": "category-5" }
        ]
    },
    "write-category6": {
        "entity": "category",
        "action": "upsert",
        "payload": [
            { "name": "category-6" }
        ]
    }
}

```

Ist natrürlich langsamer

&nbsp;

Gruß Felix

---

<div class="post-metadata">

**Author:** ![essenzenladen](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/essenzenladen/32/11533_2.png) [@essenzenladen](https://forum.shopware.com/u/essenzenladen)\
**Post date:** [19. März 2021 um 18:03 UTC](https://forum.shopware.com/t/sync-api-und-fehler/68185/4 "2021-03-19T18:03:26Z")

</div>

Hi,

der Thread ist zwar schon ein paar Tage alt, aber vielleicht kannst Du mir trotzdem helfen. Ich arbeite mich gerade in die Sync API ein, scheitere aber aktuell schon daran, dass ich ein „FRAMEWORK\_\_PRIMARY\_KEY\_NOT\_PROVIDED“ bekomme, obwohl ich im Payload die (Artikel-) ID mitgebe:

```
(
    [write-product] => Array
        (
            [entity] => product
            [action] => upsert
            [payload] => Array
                (
                    [0] => Array
                        (
                            [id] => 0776A765A7B3449C9012C0F433AFE791
                            [name] => Tropffläschchen 100 ml blau
                        )

                )

        )

)

```

bzw. als JSON

```
{
  "write-product" : {
    "entity" : "product",
    "action" : "upsert",
    "payload" : [
      { "id" : "0776A765A7B3449C9012C0F433AFE791", "name" : "Tropffl\u00e4schchen 100 ml blau" }
    ]
  }
}

```

Die Dokumentation ist da leider auch sehr spartanisch. Kannst Du mir einen beispielhaften Payload geben, mit dem ich eine „product“ Entity aktualisieren kann?

Danke 🙂

LG  
Carsten

---

<div class="post-metadata">

**Author:** ![aggrosoft](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/aggrosoft/32/23875_2.png) [@aggrosoft](https://forum.shopware.com/u/aggrosoft)\
**Post date:** [3. Juli 2024 um 14:22 UTC](https://forum.shopware.com/t/sync-api-und-fehler/68185/5 "2024-07-03T14:22:02Z")

</div>

Das ist seit Version ~ 6.5 nicht mehr gültig - um das zu verhindern müssen jetzt einzelne Requests versendet werden.
