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.

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

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

Die Kopfdaten werden durch das Datastore-Schema ShopwareOrderPayloadProvider beschrieben

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

Bestellungs-Details

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ßbuschstaben 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ßbuschstaben den folgenden Wortes ersetzen) als Schlüssel=Wert-Paar

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

siehe ShopwareUpdateOrder unten



Das Feld customerId beschreibt die customerId, welche von Shopware intern genutzt wird. Diese ist ungleichder 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.

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 Pflichfeld, 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.

Name Datentyp Beschreibung Pflichtfeld Werte
account ACCOUNT Die Shopware-Verbindung Ja
datastore DATASTORE Der 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:

Feld Datentyp Beschreibung Pflichtfeld Standardwert
name SINGLE Nein
orderId SINGLE Nein
number SINGLE Nein
paymentId SINGLE Ja
dispatchId SINGLE Ja
partnerId SINGLE Nein
shopId SINGLE Ja
referrer SINGLE Nein
orderStatusId SINGLE Ja
orderTime SINGLE Nein
invoiceAmount SINGLE Ja
invoiceAmountNet SINGLE Ja
invoiceShipping SINGLE Ja
invoiceShippingNet SINGLE Ja
invoiceShippingTaxRate SINGLE Nein
transactionId SINGLE Nein
net SINGLE Ja
taxFree SINGLE Nein 0
currency SINGLE Nein EUR
currencyFactor SINGLE Nein 1.0
paymentStatusId SINGLE Ja
comment SINGLE Nein
customerComment SINGLE Nein
internalComment SINGLE Nein
remoteAddress SINGLE Nein
languageIso SINGLE Nein
orderAttributes1 SINGLE Nein
orderAttributes2 SINGLE Nein
orderAttributes3 SINGLE Nein
orderAttributes4 SINGLE Nein
orderAttributes5 SINGLE Nein
orderAttributes6 SINGLE Nein
orderAdditionalAttributes MAP Nein
customerId SINGLE Nein
customerNumber SINGLE Nein
customerEmail SINGLE Nein
customerSalutation SINGLE Nein
customerTitle SINGLE Nein
customerFirstname SINGLE Nein
customerLastname SINGLE Nein
customerGroupKey SINGLE Nein
customerBirthday SINGLE Nein
customerAccountMode SINGLE Nein
billingStreet SINGLE Nein
billingStreetNumber SINGLE Nein
billingCity SINGLE Nein
billingZipcode SINGLE Nein
billingCountryId SINGLE Ja
billingStateId SINGLE Nein
billingAdditionalAddressLine1 SINGLE Nein
billingAdditionalAddressLine2 SINGLE Nein
billingCompany SINGLE Nein
billingDepartment SINGLE Nein
billingVatId SINGLE Nein
billingSalutation SINGLE Ja
billingTitle SINGLE Nein
billingFirstName SINGLE Ja
billingLastName SINGLE Ja
billingPhone SINGLE Nein
billingText1 SINGLE Nein
billingText2 SINGLE Nein
billingText3 SINGLE Nein
billingText4 SINGLE Nein
billingText5 SINGLE Nein
billingText6 SINGLE Nein
shippingStreet SINGLE Nein
shippingStreetNumber SINGLE Nein
shippingCity SINGLE Nein
shippingZipCode SINGLE Nein
shippingCountryId SINGLE Ja
shippingStateId SINGLE Nein
shippingAdditionalAddressLine1 SINGLE Nein
shippingAdditionalAddressLine2 SINGLE Nein
shippingCompany SINGLE Nein
shippingDepartment SINGLE Nein
shippingSalutation SINGLE Ja
shippingTitle SINGLE Nein
shippingFirstName SINGLE Ja
shippingLastName SINGLE Ja
shippingPhone SINGLE Nein
shippingText1 SINGLE Nein
shippingText2 SINGLE Nein
shippingText3 SINGLE Nein
shippingText4 SINGLE Nein
shippingText5 SINGLE Nein
shippingText6 SINGLE Nein
articleId SINGLE Nein
articleDetailId SINGLE Nein
taxId SINGLE Ja
taxRate SINGLE Ja
statusId SINGLE Ja
articleNumber SINGLE Ja
price SINGLE Ja
quantity SINGLE Ja
articleName SINGLE Ja
shipped SINGLE Nein
shippedGroup SINGLE Nein
mode SINGLE Nein
esdArticle SINGLE Nein
ean SINGLE Nein
unit SINGLE Nein
packUnit SINGLE Nein
orderItemAttributes1 SINGLE Nein
orderItemAttributes2 SINGLE Nein
orderItemAttributes3 SINGLE Nein
orderItemAttributes4 SINGLE Nein
orderItemAttributes5 SINGLE Nein
orderItemAttributes6 SINGLE Nein
orderItemAdditionalAttributes MAP Nein
folder STRING Der Folder des Datastores Nein
limit STRING Begrenzt die Anzahl der pro Ausführung importierten Aufträge. Nein
sortByField STRING Optionales 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
sortDir STRING Die 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.

Name Datentyp Beschreibung Werte
result SPREADSHEET Ein SPREEDSHEET, dass die Ergebnisse des Auftragsimports enthält.
Folgende Felder sind im Output enthalten:

Feld Datentyp Beschreibung Standardwert
identifier SINGLE The identifier column to import Spreadsheet into a Datastore.
shopwareCustomerId SINGLE
shopwareOrderID SINGLE
success SINGLE