Importieren von komplexen Artikeldaten über die Shopware REST API

Shopware stellt mit der REST API eine komfortable Möglichkeit zur Verfügung, um Daten mit dem System auszutauschen. Besonders für den vollautomatischen Import von Artikeldaten ist diese Schnittstelle hervorragend geeignet.

Solltest Du mit der REST API noch keine Erfahrung haben, empfehle ich Dir jedenfalls zuvor die Dev-Docs zum Thema REST API bei Shopware zu lesen.

Diesen kurzen Artikel habe ich dennoch verfasst, da ich bei der Implementierung über einige Kleinigkeiten gestolpert bin, die mich einiges an Zeit gekostet haben. Schlussendlich haben sich all diese Problem aus dem Aufbau der Artikeldaten ergeben.

Batch-Update an die REST API senden

Die API lässt sich ja sowohl über den „klassischen“ Weg von extern via HTTP ansprechen oder direkt aus dem Source eines Plugins über die API Ressourcen. In diesem Artikel arbeite ich der Einfachheit halber mit der klassischen REST API. Wie Du diese ansprichst, erfährst Du in dieser Dokumentation.

Shopware bietet Dir mit dem Batch-Modus eine sehr komfortable und performante Möglichkeit, um eine große Datenmenge in einem Rutsch in das System zu bekommen. Dabei musst Du Dich nicht manuell um die Erstellung von Unterobjekten wie etwa Konfigurator-Sets kümmern. Shopware prüft anhand der übergebenen Namen, ob diese Daten bereits vorhanden sind und erstellt sie bei Bedarf vollautomatisch.

Um Artikeldaten via Batch an Shopware zu senden, musst Du folgenden Endpunkt der Shopware API mittels HTTP PUT aufrufen:

PUT https://username:[email protected]/api/articles

Als Body kannst Du nun die Artikeldaten als JSON Konstrukt übergeben:

[
  {
    "name": "Produktbezeichnung",
    "configuratorSet": {
      "groups": [
        {
          "name": "Packungsgröße",
          "options": [
            {
              "name": "10 Stück"
            },
            {
              "name": "20 Stück"
            },
            {
              "name": "30 Stück"
            }
          ]
        }
      ]
    },
    "taxId": 4,
    "active": true,
    "mainDetail": {
      "number": "4400",
      "inStock": 49,
        "configuratorOptions": [
          {
            "group": "Packungsgröße",
            "option": "10 Stück"
          }
        ],
        "prices": [
          {
            "customerGroupKey": "151",
            "price": 5
          }
        ]
    },
    "variants": [
      {
        "number": "4410",
        "inStock": 49,
        "configuratorOptions": [
          {
            "group": "Packungsgröße",
            "option": "20 Stück"
          }
        ],
        "prices": [
          {
            "customerGroupKey": "151",
            "price": 5
          }
        ]
      },
      {
        "number": "4420",
        "inStock": 49,
        "configuratorOptions": [
          {
            "group": "Packungsgröße",
            "option": "30 Stück"
          }
        ],
        "prices": [
          {
            "customerGroupKey": "151",
            "price": 6
          }
        ]
      }
    ]
  }
]

Dieses Konstrukt ist auf ein Minimum reduziert, enthält aber alle wichtigen Elemente für einen Artikel mit Varianten und verschiedenen Konfigurationen.

Sofern der Request erfolgreich verarbeitet wurde, erhältst Du als Antwort einen HTTP 200 Status und als Body eine Beschreibung, welche Artikel auf welche Art und Weise behandelt wurde (Create, Update).

Zusammenfassung
Importieren von komplexen Artikeldaten über die Shopware REST API
Titel
Importieren von komplexen Artikeldaten über die Shopware REST API
Beschreibung
Shopware stellt mit der REST API eine komfortable Möglichkeit zur Verfügung, um Daten mit dem System auszutauschen. Besonders für den vollautomatischen Import von Artikeldaten ist diese Schnittstelle hervorragend geeignet.
Autor
Publisher
synonymous.rocks
Logo

Kommentar verfassen

Folge mir auf Twitter

Hol Dir kostenlos Tipps und Tricks zu Shopware, E-Commerce und andere Open-Source Produkte.

Folge @synonymousrocks