Fremdsystem anbinden

Garantiedaten lassen sich auch von außerhalb der Administration lesen und schreiben. So hält ein ERP, PIM oder ein Lieferanten-Feed sie aktuell, ohne dass jemand sie erneut eintippt. Diese Seite ist optional — für die Pflege in der Administration brauchst du sie nicht.

Zugang anlegen

Öffne Einstellungen > System > Integrationen und erstelle eine Integration. Erteile ihr die Rechte der EU-Gewährleistung zum Ansehen, Bearbeiten und Anlegen.

[Screenshot: Einstellungen > System > Integrationen]

Alle drei Rechte sind nötig, weil erst das Anlegen es der Verbindung erlaubt, ein Produkt zu konfigurieren, das noch keine Garantiedaten hat.

  • Zugriffsschlüssel und Secret Kopiere beides und gib es an die technische Umsetzung weiter. Das Secret wird nur einmal angezeigt.

  • Nur lesen Vergib ausschließlich das Recht zum Ansehen, dann wird jeder Schreibvorgang abgelehnt.

  • Zugang entziehen Lösche die Integration, der Zugang endet sofort.

Technische Referenz

Die Authentifizierung erfolgt über POST /api/oauth/token mit grant_type=client_credentials sowie Zugriffsschlüssel und Secret. Der Token wird als Authorization: Bearer mitgesendet.

Ein Produkt lesen, adressiert über die Produktnummer, sodass das angebundene System keine internen Shopware-IDs kennen muss:

GET /api/_action/iwv-eu-guarantee/product-configuration?productNumber=DEINE-SKU

Ein Produkt schreiben:

POST /api/_action/iwv-eu-guarantee/product-configuration
{"productNumber": "DEINE-SKU", "values": {"durationMonths": 36}}

Bis zu 500 Produkte auf einmal — hier werden Produkt-IDs statt Produktnummern erwartet:

POST /api/_action/iwv-eu-guarantee/bulk-apply
{"productIds": ["…", "…"], "values": {"durationMonths": 36}}

Zwei Regeln, die wichtiger sind als der Rest

  • Ein Schreibvorgang ändert nur die übermittelten Felder Ein weggelassenes Feld behält seinen Wert, ein als null übermitteltes Feld wird geleert. Sende also nicht bei jedem Abgleich das vollständige Modell, sofern du nicht alles überschreiben möchtest.

  • Ein Lesevorgang liefert stored und resolved stored sind die am einzelnen Produkt gespeicherten Werte und ist null, sobald das Produkt keine eigenen hat. resolved sind die tatsächlich geltenden Werte, sourceLevel benennt die Ebene, von der sie stammen, z.B.: label für eine EU-Label-Regel. Ein Produkt mit stored: null kann sehr wohl eine gültige Garantie haben — maßgeblich ist resolved.

Schreibbare Werte

configurationMode (inherit, override oder disabled), active, suppressStatutoryNotice, producerGuaranteeConfirmed, providedAtNoCost, coversEntireGood, informationSuppliedToSeller, durationMonths, producerBrand, modelIdentifier, termsUrl, termsMediaId, generalInfo, sourceReference, validFrom und validUntil.

Die ersten drei können nicht geleert werden. Der Berechtigungsstatus wird bei jedem Schreibvorgang neu berechnet und nie direkt gesetzt.

Herstellervorgaben und EU-Label-Regeln tauschst du am einfachsten über den Import aus.