Skip to content

ShopwareAddOrders - Shopware

Version: 5.2+

← Shopware Add-On Übersicht

Mit dem Step ShopwareAddOrders können Sie neue Aufträge in Shopware anlegen.

Dieser Step unterscheidet sich von anderen Steps. Aufträge die zu Shopware übertragen werden sollen, müssen zuerst in zwei Datastores (Auftragskopfdaten und Auftragspositionen) gespeichert werden. Der ShopwareAddOrders - Step kann nur gespeicherte Aufträge zu Shopware übertragen. 

Für diesen Step benötigen Sie daher zwei Datastores in einer Master-Child Beziehung (siehe Datastores).

  • Im Master Datastore sind dabei die Kopfdaten der Bestellung gespeichert.
  • Im Child Datastore sind die jeweiligen Artikelpositionen gespeichert und müssen per master_identifier dem jeweiligen Masterdatastore-Item (Bestellkopf) zugewiesen sein.

Das ist notwendig, da der Step bei der Abarbeitung der Aufträge die von Shopware vergebene AuftragsID (orderID) an die Datensätze schreibt und jeden Datensatz als PROCESSED_SUCCESS markiert.

Voraussetzungen

Wenn Sie das Shopware Addon gebucht haben, erstellen Sie zwei Datastores in einer Master-Child Beziehung zueinander. Der API Nutzer muss mindestens folgende Berechtigungen besitzen:

  • customer: create, read und perform_order
  • order: create* und read

Die Funktion zum Anlegen von Bestellungen ist erst seit der Version 5.2.21 in der Shopware REST API vorhanden. Ältere Shopware Versionen können nicht zum anlegen von Bestellungen genutzt werden.

Vorgehensweise

  • Für die Datastores sind zunächst zwei Schemas zu erstellen. 
    • ShopwareOrderHead (als Master für die Auftragskopfdaten): wählen Sie Vordefiniertes Schema ShopwareOrderPayloadProvider
    • ShopwareOrderItem (als Child für die Auftragspositionen) : wählen Sie Vordefiniertes Schema *ShopwareOrderItemPayloadProvider *

Diese beiden vordefinierten sind im Shopware Plugin enthalten und können beim Erstellen von Schemas genutzt werden.

Entsprechend sind nun 2 Datastores mit den jeweiligen Schemas anzulegen. Nennen Sie die Datastores am besten analog zu den Schemas:

  • OrderHead (als Master für die Auftragskopfdaten)
  • OrderItem (als Child für die Auftragspositionen)

In die Datastores müssen nun mit Daten aus dem jeweiligen System befüllt werden (z.Bsp. aus Plentymarkets, etc.)

Der Step erwartet nun als Input den Master Datastore für die Order (mit dem Schema ShopwareOrderPayloadProvider). 

  • datastore=OrderHead

InputParameter

Input Beschreibung
account

Wählen Sie hier Ihren Shopware-Account aus, um auf die Schnittstelle Ihres Shops zuzugreifen zu können (weitere Informationen)

inputSpreadsheet Erstellen Sie ein Spreadsheet mit den unten angegebenen Spalten, um die Variantenattribute den Bildern zuzuordnen
limit

Dieser Filter schränkt ein wie viele Order angelegt werden. Während der Erstellung und dem Testen von Flows ist es praktisch diesen Wert gering zu halten (z.B. 1-2), damit nur wenige Daten zum Prüfen geschrieben werden.

datastore Wählen Sie hier den Datastore für die Kopfdaten der Aufträge

Felder des Datastores

Die Kopfdaten werden durch das Datastore-Schema ShopwareOrderPayloadProvider beschrieben

Felder Anmerkungen Pflichtfeld Standardwert Wo finde ich diese Shopware IDs / Werte?

Bestelldetails

orderId ID der Bestellung: Diese Spalte wird automatisch befüllt, wenn die Bestellung angelegt wurde. Bitte lassen Sie diese Spalte leer


number Bestellnummer: wird automatisch von Shopware vergeben, wenn Spalte leer ist


paymentId ID der Zahlungsart ja
Tabelle s_core_paymentmeans
dispatchId ID der Versandart ja
Tabelle s_premium_dispatch
partnerId Partner-ID

Tabelle s_emarketing_partner
shopId ID des Shops ja
Tabelle s_core_shops
referrer Herkunft des Auftrags


orderStatusId ID des Status der Bestellung ja
Tabelle s_core_states (group = state)
orderTime Bestellzeit im Format yyyy-MM-dd'T'HH:mm:ssZ Beispiel(2017-12-12T09:54:57+0100)


invoiceAmount Rechnungsbetrag Brutto ja

invoiceAmountNet Rechnungsbetrag Netto ja

invoiceShipping Versandkosten Brutto ja

invoiceShippingNet Versandkosten Netto ja

currency Währung
EUR
currencyFactor Umrechnungsfaktor Währung
1.0
transactionId Transaktions ID


net Gesamtbetrag Netto: Legt fest ob die Rechnung mit Nettobeträgen erstellt wird ja 0
taxfree Steuerfrei
0
paymentStatusId ID des Zahlungsstatus ja
Tabelle s_core_states (group = payment)
comment Kommentar


customerComment Kundenkommentar


internalComment Interner Kommentar


remoteAddress IP-Adresse


languageIso ID Sprache
1
orderAdditionalAttributes

zusätzliche Freitextfelder. Camelcase Schreibweise('_' mit Großbuchstaben den folgenden Wortes ersetzen) als Schlüssel=Wert-Paar

Bsp.: attributeName=Wert;attributeName2=Wert2 usw.

siehe ShopwareUpdateOrder unten




Kundendaten

customerId

Ist eine customerId angegeben wird der Auftrag dem entsprechend existierenden Kunden im Shopware System zugewiesen.


Ist customerId nicht gefüllt und der customerAccountMode = 0 (Account Typ Kunde), wird nach einem Kunden mit der angegebenen E-Mail Adresse gesucht (customerEmail). Falls noch kein Kunde mit dieser E-Mail Adresse existiert, wird mit den  angegebenen Kundendaten ein neuer Kunde erstellt (customerEmail, customerFirstname, etc.).  Für den customerAccountMode = 1 (Account Typ Schnellbesteller) wird immer ein neuer Kunde angelegt. 

Achtung! - In diesem Fall werden die mit 1 markierten beschriebenen Customer Felder obligatorisch



ShopwareGetCustomers Step oder Tabelle s_user
customerNumber Kundennummer


customerSalutation1 Anrede (mr oder mrs)


customerTitle Titel


customerEmail1 E-Mail Adresse


customerFirstname1 Vorname


customerLastname1 Nachname


customerGroupKey Kundengruppe


customerBirthday

Datum Geburtstag ( Format "yyyy-MM-dd'T'HH:mm:ssZ")




customerAccountMode Account Typ (0 = Kunde, 1 = Schnellbesteller)


Rechnungsadresse

billingStreet

Straße


billingStreetNumber

Hausnummer. Die Hausnummer wird automatisch mit in das Feld Straße in Shopware übernommen.




billingCity Stadt


billingZipcode PLZ


billingCountryId1 ID Land

ShopwareGetCountriesAndStates oder s_core_countries

billingStateId1 ID Bundesland

ShopwareGetCountriesAndStates oder s_core_countries_states

billingAdditionalAddressLine1 zusätzliche Adresszeile 1


billingAdditionalAd2ressLine1 zusätzliche Adresszeile 2


billingCompany Firmenname


billingDepartment Abteilung


billingVatId Ust ID


billingSalutation1 Anrede (mr oder mrs)


billingTitle Titel


billingFirstname1 Vorname


billingLastname1

Nachname


billingPhone Telefonnummer


Lieferadresse

(Hinweis: Wenn alle relevanten ("shipping...") Felder leer sind, wird automatisch die Rechnungsadresse als Lieferadresse verwendet)

shippingStreet Straße


shippingStreetNumber Hausnummer. Die Hausnummer wird automatisch mit in das Feld Straße in Shopware übernommen.


shippingCity1 Stadt


shippingZipCode PLZ


shippingCountryId1

ID Land

ShopwareGetCountriesAndStates oder s_core_countries

shippingStateId1 ID Bundesland

ShopwareGetCountriesAndStates oder s_core_countries_states

shippingAdditionalAddressLine1 zusätzliche Adresszeile 1


shippingAdditionalAddressLine2 zusätzliche Adresszeile 2


shippingCompany Firmenname


shippingDepartment Abteilung


shippingSalutation Anrede (mr oder mrs)


shippingTitle Titel


shippingFirstName Vorname


shippingLastName Nachname


shippingPhone Telefonnummer


Die Auftragspositionen sind durch das Schema ShopwareOrderItemPayloadProvider beschrieben.

Pflichtfelder Anmerkungen Pflichtfeld Wo finde ich diese Shopware IDs / Werte?

articleName

Artikelname

articleId ID des Artikels
ShopwareGetProducts Step oder Tabelle s_articles
articleNumber Artikelnummer
ShopwareGetProducts Step oder Tabelle s_articles
price Preis

quantity Anzahl

taxId ID Mwst.
Tabelle s_core_tax
taxRate Mwst. in Prozent
Tabelle s_core_tax
statusId Status der Position

Tabelle s_core_detail_states

orderItemAttributes1


orderItemAttributes2


orderItemAttributes3


orderItemAttributes4


orderItemAttributes5


orderItemAttributes6


orderItemAdditionalAttributes

zusätzliche Freitextfelder. Camelcase Schreibweise('_' mit Großbuchstaben den folgenden Wortes ersetzen) als Schlüssel=Wert-Paar

Bsp.: attributeName=Wert;attributeName2=Wert2 usw.

siehe ShopwareUpdateOrder unten



customerId und customerNumber

Das Feld customerId beschreibt die customerId, welche von Shopware intern genutzt wird. Diese ist ungleich der customerNumber, welche im Shopware Backend angezeigt wird.
Ist das Feld customerId gefüllt, wird versucht die Order mit der in Shopware existierenden customerId zu verknüpfen. Existiert kein Nutzer für die ID, wird die entsprechende Order übersprungen.
Ist keine customerId angegeben, wird ein customer neu angelegt und im Datastore die ID für den neu angelegten customer am jeweiligen Auftragskopf gesichert.

countryId und stateId

Die Felder countryId und stateId sind für die Rechnungs- und Lieferadresse ein Pflichtfeld. Um die jeweiligen Werte für ein Mapping der IDs zu erhalten kann der Step ShopwareGetCountriesAndStates genutzt werden.

Die stateId (Bundesland) ist in Versionen bis 5.5.0 ein Pflichtfeld, siehe auch https://issues.shopware.com/issues/SW-20045 und https://issues.shopware.com/issues/SW-22180.


Inputs

Das sind die Optionen, mit denen man den Step konfigurieren kann.

NameDatentypBeschreibungPflichtfeldWerte
accountACCOUNTDie Shopware-VerbindungJa
datastoreDATASTOREDer Datastore mit den Bestellungen die zu Shopware importiert werden sollen. Der Datastore muss mit dem Shopware Schema für Bestellungen('ShopwareOrderPayloadProvider') kompatibel sein.Ja
Folgende Felder sind zu konfigurieren:

FeldDatentypBeschreibungPflichtfeldStandardwert
nameSINGLENein
orderIdSINGLENein
numberSINGLENein
paymentIdSINGLEJa
dispatchIdSINGLEJa
partnerIdSINGLENein
shopIdSINGLEJa
referrerSINGLENein
orderStatusIdSINGLEJa
orderTimeSINGLENein
invoiceAmountSINGLEJa
invoiceAmountNetSINGLEJa
invoiceShippingSINGLEJa
invoiceShippingNetSINGLEJa
invoiceShippingTaxRateSINGLENein
transactionIdSINGLENein
netSINGLEJa
taxFreeSINGLENein0
currencySINGLENeinEUR
currencyFactorSINGLENein1.0
paymentStatusIdSINGLEJa
commentSINGLENein
customerCommentSINGLENein
internalCommentSINGLENein
remoteAddressSINGLENein
languageIsoSINGLENein
orderAttributes1SINGLENein
orderAttributes2SINGLENein
orderAttributes3SINGLENein
orderAttributes4SINGLENein
orderAttributes5SINGLENein
orderAttributes6SINGLENein
orderAdditionalAttributesMAPNein
customerIdSINGLENein
customerNumberSINGLENein
customerEmailSINGLENein
customerSalutationSINGLENein
customerTitleSINGLENein
customerFirstnameSINGLENein
customerLastnameSINGLENein
customerGroupKeySINGLENein
customerBirthdaySINGLENein
customerAccountModeSINGLENein
billingStreetSINGLENein
billingStreetNumberSINGLENein
billingCitySINGLENein
billingZipcodeSINGLENein
billingCountryIdSINGLEJa
billingStateIdSINGLENein
billingAdditionalAddressLine1SINGLENein
billingAdditionalAddressLine2SINGLENein
billingCompanySINGLENein
billingDepartmentSINGLENein
billingVatIdSINGLENein
billingSalutationSINGLEJa
billingTitleSINGLENein
billingFirstNameSINGLEJa
billingLastNameSINGLEJa
billingPhoneSINGLENein
billingText1SINGLENein
billingText2SINGLENein
billingText3SINGLENein
billingText4SINGLENein
billingText5SINGLENein
billingText6SINGLENein
shippingStreetSINGLENein
shippingStreetNumberSINGLENein
shippingCitySINGLENein
shippingZipCodeSINGLENein
shippingCountryIdSINGLEJa
shippingStateIdSINGLENein
shippingAdditionalAddressLine1SINGLENein
shippingAdditionalAddressLine2SINGLENein
shippingCompanySINGLENein
shippingDepartmentSINGLENein
shippingSalutationSINGLEJa
shippingTitleSINGLENein
shippingFirstNameSINGLEJa
shippingLastNameSINGLEJa
shippingPhoneSINGLENein
shippingText1SINGLENein
shippingText2SINGLENein
shippingText3SINGLENein
shippingText4SINGLENein
shippingText5SINGLENein
shippingText6SINGLENein
articleIdSINGLENein
articleDetailIdSINGLENein
taxIdSINGLEJa
taxRateSINGLEJa
statusIdSINGLEJa
articleNumberSINGLEJa
priceSINGLEJa
quantitySINGLEJa
articleNameSINGLEJa
shippedSINGLENein
shippedGroupSINGLENein
modeSINGLENein
esdArticleSINGLENein
eanSINGLENein
unitSINGLENein
packUnitSINGLENein
orderItemAttributes1SINGLENein
orderItemAttributes2SINGLENein
orderItemAttributes3SINGLENein
orderItemAttributes4SINGLENein
orderItemAttributes5SINGLENein
orderItemAttributes6SINGLENein
orderItemAdditionalAttributesMAPNein
folderSTRINGDer Folder des DatastoresNein
limitSTRINGBegrenzt die Anzahl der pro Ausführung importierten Aufträge.Nein
sortByFieldSTRINGOptionales Feld zum Sortieren der Datensätze nach einem der indizierten Datastore Felder.Nein
  • Keine (Standard)
  • Identifier
  • Identifier2
  • Identifier3
  • Tags
  • Erstellungsdatum
  • Aktualisierungsdatum
  • Datum der letzten Inhaltsänderung
  • Datum der Verarbeitung
  • Folder
sortDirSTRINGDie Sortierreihenfolge (Aufsteigend oder Absteigend).Nein
  • Aufsteigend
  • Absteigend

Outputs

Das sind die Ergebnisse des Steps, die von nachfolgenden Steps, nach der Ausführung verwendet werden können.

NameDatentypBeschreibungWerte
resultSPREADSHEETEin SPREEDSHEET, dass die Ergebnisse des Auftragsimports enthält.
Folgende Felder sind im Output enthalten:

FeldDatentypBeschreibungStandardwert
identifierSINGLEThe identifier column to import Spreadsheet into a Datastore.
shopwareCustomerIdSINGLE
shopwareOrderIDSINGLE
successSINGLE