# Configurator Options updaten via Sync Api

**URL:** https://forum.shopware.com/t/configurator-options-updaten-via-sync-api/90750
**Category:** Programmierung
**Created:** [7. Oktober 2021 um 11:54 UTC](https://forum.shopware.com/t/configurator-options-updaten-via-sync-api/90750 "2021-10-07T11:54:53Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![M\_M](https://avatars.discourse-cdn.com/v4/letter/m/9fc29f/32.png) [@M\_M](https://forum.shopware.com/u/M_M)
#### Post date: [7. Oktober 2021 um 11:54 UTC](https://forum.shopware.com/t/configurator-options-updaten-via-sync-api/90750/1 "2021-10-07T11:54:53Z")

</div>

Hallo,

nach einem Update von 6.3.5 auf 6.4.5 habe ich folgendes Problem:

Ich kann Artikel über die Sync Api anlegen. Configuratoroptions werden im selbem Request mitgegeben. (Haben alle eine eindeutige ID)Eintrag funktioniert, im Frontend und Backend schaut alles gut aus. Sobald ich jedoch den selben Artikel mit dem selben Request updaten will (upsert) bekomme ich folgende Meldung:

An exception occurred while executing ‚INSERT INTO `property_group_option` (`id`, `property_group_id`, `created_at`) VALUES (‚�x���fK��L�"2\‘,‚�’�R��m���Ȓ�‘,‚2021-10-07 11:53:30.488‘);‘:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‚\x9Cx\xDC\xD5\xD9fK\xEE\xA0\xCCL\xE2\xB1"2‘ for key ‚property\_group\_option.PRIMARY‘".

UND

An exception occurred while executing ‚INSERT INTO `product_configurator_setting` (`id`, `version_id`, `product_id`, `product_version_id`, `property_group_option_id`, `created_at`) VALUES (‚�A�өB?��$�j��m‘,‚���jK¾K��u,4%‘,‚�����b�CU���‘,‚���jK¾K��u,4%‘,‚q}�٬lg%��1]a�‘,‚2021-10-07 11:55:56.523‘);‘:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‚\xB3\xFF\x03\xD5\xF3\x08\xEAb\xD1CU\xF8\xF6\x7F\x0F\x95-\x0F\xA9‘ for key ‚product\_configurator\_setting.uniq.product\_configurator\_setting.prod\_id.vers\_id.prop\_group\_id‘"

Sollte er nicht updaten wenns den Key schon gibt? Hat jemand eine Idee, was sich seit 6.3.5 geändert haben könnte?

---

<div class="post-metadata">

### Author: ![styleflasher](https://avatars.discourse-cdn.com/v4/letter/s/74df32/32.png) [@styleflasher](https://forum.shopware.com/u/styleflasher)
#### Post date: [14. Oktober 2021 um 11:38 UTC](https://forum.shopware.com/t/configurator-options-updaten-via-sync-api/90750/2 "2021-10-14T11:38:17Z")

</div>

Es gibt bereits ein Ticket dazu: [Shopware Issuetracker](https://issues.shopware.com/issues/NEXT-16111)

---

<div class="post-metadata">

### Author: ![styleflasher](https://avatars.discourse-cdn.com/v4/letter/s/74df32/32.png) [@styleflasher](https://forum.shopware.com/u/styleflasher)
#### Post date: [14. Oktober 2021 um 14:45 UTC](https://forum.shopware.com/t/configurator-options-updaten-via-sync-api/90750/3 "2021-10-14T14:45:15Z")

</div>

Mit sowas hier klappt’s wieder:

> <https://github.com/shopware/platform/blob/trunk/src/Core/Content/ImportExport/DataAbstractionLayer/Serializer/Entity/ProductSerializer.php#L229>

---

<div class="post-metadata">

### Author: ![alem](https://avatars.discourse-cdn.com/v4/letter/a/f6c823/32.png) [@alem](https://forum.shopware.com/u/alem)
#### Post date: [27. April 2022 um 13:35 UTC](https://forum.shopware.com/t/configurator-options-updaten-via-sync-api/90750/4 "2022-04-27T13:35:39Z")

</div>

Das Thema ist leider bis heute nicht erledigt.  
Hat jeman eine Idee?

Ich mach schon was ziemlich ähnliches wie @styleflasher :

```auto

  private function getProductConfiguratorSetting(string $productId, string $propertyGroupOptionId, $context) : array {
    $criteria = new Criteria();
    $criteria->addFilter(new EqualsFilter('productId', $productId));
    $criteria->addFilter(new EqualsFilter('optionId', $propertyGroupOptionId));
    $productConfiguration = $this->productConfiguratorSettingRepository->search($criteria, $context)->first();

    if ($productConfiguration) {
      return ['id' => $productConfiguration->getId(), 'optionId' => $propertyGroupOptionId, 'productId'=>$productId];
    } else {
      return ['optionId' => $propertyGroupOptionId, 'productId'=>$productId];
    }
  }

```

aber der witz ist es wird bei initalen import nicht mal gespeichert also findet es gar keine configurations und trotzdem bekomme ich sp$ter beim productRepository-\>upsert diese Duplicate Entry Meldung,

und warum wird da von der prop\_group\_id gesprochen? die gibts ja gar nicht in der Tabele (aber in den indexes)
