Shopware 6: SalesChannel-API - Benutzerdefinierte Produkt Eigenschaften

Hallo Zusammen,

über die API möchte ich mit Javascript ein Produkt inkl. benutzerdefinierten Eigenschaft in den Warenkorb ablegen.

Add product to cart *
POST  /sales-channel-api/v1/checkout/cart/product/{id}

Damit lege ich das Produkt in den Warenkorb, doch wie muss mein payload* im POST body ausssehen um eine Eigenschaft zuzuweisen? zB. die Stofffarbe.

Get a cart *
GET  /sales-channel-api/v1/checkout/cart oder GET /sales-channel-api/v1/product/{productId}

Dort vermisse ich auch die gesuchten Eigenschaften. Wie kann ich die vom User gewählten Eigenschaften für die Darstellung im Frontend auslesen?
Im GET Response Objekt gibt es die properties mit uuid, sind das meine gesuchten Eigenschaften?
Und woher weiß ich welche uuid für was steht und wie der Wert dafür lauted?

Bin für jede Hilfe dankbar.
Mit freundlichem Gruß, mii.

* Doku: cart endpoint:
https://docs.shopware.com/en/shopware-platform-dev-en/api/sales-channel-cart-api?category=shopware-platform-dev-en/api

Hallo,

die Eigenschaften sind, wie schon gesagt, im Schlüssel properties. Die Abfrage der Gruppen geschieht wie folgt:

POST /sales-channel-api/v1/product mit folgendem Body:

{
  "associations": {
    "properties": {
      "associations": {
        "group": {}
      }
    }
  }
}

Gruß

1 Like

Hallo zusammen,

die Eigenschaften kann man per GET sales-channel-api/v1/product?associations[properties] mit laden.
Generell sind die Eigenschaften nicht dafür, dass der Nutzer diese Auswählen kann, sondern beschreiben das Produkt.
Produktvarianten haben gewisse Varianteneigenschaften, sind aber explizite Produkte.

Gruß

Krispin

1 Like

Vielen Dank,
hat funktioniert, die Eigenschaften sind wie beschrieben da:

@Krispin schrieb:

die Eigenschaften kann man per GET sales-channel-api/v1/product?associations[properties][] mit laden.

Bezüglich der Varianten ist es Sinnvoll diese als Freitextfelder anzulegen?
Im Backend erscheinen diese dann als Zusatzfelder, wie zB. Name:

In der Datenbank stehen diese in der custom_field Tabelle. Aber im GET /sales-channel-api/v1/checkout/cart Response Objekt fehlen diese Felder.
Wie muss der Request lauten um die Zusatzfelder eines Produktes im Warenkorb zu lesen?
Und wie sieht der payload für POST  /sales-channel-api/v1/checkout/cart/product/{id} aus um das Zusatzfeld im Warenkorb zu beschreiben?

Herzlichen Dank,
Gruß, mii

Update:  27. November 2019
Es scheint das Shopware die gesuchte Funktionalität nicht von Haus aus mitbringt.
Ersichtlich druch das Dublizieren eines Objekts im Warenkorb, wo lediglich die quantity rauf gesetzt, aber kein neues lineItem erzeugt wird.

Eine Shopware Erweiterung stellt die gesuchte Funktionalität bereit:
Individuelle Eingabe von Artikel-Optionen (Freitext) für Gutschein, Gravur, Aufdruck, Stickung | Detailseite | Produktdarstellung | Storefront / Detailanpassungen | Erweiterungen | Shopware Community Store

Gelöst: 10 Dezember 2019

Wir haben uns eine eigene Erweiterung für Shopware 6   geschrieben, welche die Funktionalität bereitstellt. 
Die Erweiterung aus dem Store bietet zur Zeit keine Unterstützung für Shopware 6.