Skip to content

ShopwareAddOrders - Shopware

Version: 6.5.x

← 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?

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



  • customerId und customerNumber

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.

  • 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 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 Ihre Shopware 6 Verbindung Ja
datastore DATASTORE Der Datenspeicher, der die Bestellungen für Shopware enthält. Der Datenspeicher muss mit dem Shopware-Bestellschema kompatibel sein. Ja
Folgende Felder sind zu konfigurieren :

Feld Datentyp Beschreibung Pflichtfeld Standardwert
name SINGLE Nein
orderId SINGLE Will be filled by API, as soon as order is created in Shopware.If this field is filled, Synesty Studio will attempt to overwrite existing datafor the given order Nein
orderNumber SINGLE Nein
orderDateTime SINGLE Date in Format YYYY-MM-DD'T'HH:mm:ssXXX , i.e. 2021-02-28T13:04:22+01:00 Nein
currencyId SINGLE UUID of currency. Leave empty if you can provide a value for currency field Nein
currency SINGLE Provide a name for currency (i.e. EUR) Nein
currencyFactor SINGLE Nein 1.0
salesChannelId SINGLE UUID of sales channel. Leave empty if you can provide a name for salesChannel field (i.e. Default-Saleschannel) Nein
salesChannel SINGLE Nein
stateId SINGLE UUID of order state. Leave empty if you can provide a technical name for state field Nein
state SINGLE provide a technical name for state field, i.e. open Nein
paymentMethodId SINGLE UUID of payment method. Leave empty if you can provide a Use payment method's name, i.e. Paypal. Nein
paymentMethod SINGLE Nein
shippingMethodId SINGLE UUID of shipping method. Leave empty if you can provide a Use shipping method's name, i.e. Standard. Nein
shippingMethod SINGLE Use shipping method's name, i.e. Standard Nein
orderTaxStatus SINGLE Nein gross
shippingCosts SINGLE Nein 0.0
shippingCostsTaxRate SINGLE Nein
shippingDateEarliest SINGLE Date in Format YYYY-MM-DD'T'HH:mm:ssXXX , i.e. 2021-02-28T13:04:22+01:00 Nein
shippingDateLatest SINGLE Date in Format YYYY-MM-DD'T'HH:mm:ssXXX , i.e. 2021-02-28T13:04:22+01:00 Nein
affiliateCode SINGLE Nein
orderPositionPrice SINGLE Nein
orderNetPrice SINGLE Nein
orderTotalPrice SINGLE Nein
customFields MAP Map of custom fields Nein
orderCustomerId SINGLE Leave empty! Field will be filled by API. Nein
orderCustomerNumber SINGLE Ja
orderCustomerEmail SINGLE Ja
orderCustomerIsGuest SINGLE Nein false
orderCustomerCompany SINGLE Nein
orderCustomerSalutationId SINGLE Nein
orderCustomerSalutation SINGLE usually one out of mr, mrs Nein
orderCustomerFirstName SINGLE Ja
orderCustomerLastName SINGLE Ja
orderCustomerCountryState SINGLE Complete country state name, i.e. Thüringen Ja
orderCustomerGroupId SINGLE UUID of order customer group. Leave empty if you can provide a value for orderCustomerGroup (i.e. Default-Customergroup) Nein
orderCustomerGroup SINGLE Use name (i.e. Default-Customergroup) Nein
billingAddressId SINGLE This field can be left empty. In that case, the id is created if the address is not existing yet. Nein
billingAddressSalutation SINGLE usually one out of mr, mrs Nein
billingAddressSalutationId SINGLE Nein
billingAddressTitle SINGLE Nein
billingAddressFirstName SINGLE Nein
billingAddressLastName SINGLE Nein
billingAddressCompany SINGLE Nein
billingAddressDepartment SINGLE Nein
billingAddressZipcode SINGLE Nein
billingAddressCity SINGLE Nein
billingAddressStreet SINGLE Nein
billingAddressCountryId SINGLE Nein
billingAddressCountryISOAlpha2 SINGLE Nein
billingAddressAdditionalAddressLine1 SINGLE Nein
billingAddressAdditionalAddressLine2 SINGLE Nein
billingAddressVatId SINGLE Nein
useBillingAsShippingAddress SINGLE If true billing address is used as shipping address. Nein false
shippingAddressId SINGLE This field can be left empty. In that case, the id is created if the address is not existing yet. Nein
shippingAddressSalutationId SINGLE Nein
shippingAddressSalutation SINGLE usually one out of mr, mrs Nein
shippingAddressTitle SINGLE Nein
shippingAddressFirstName SINGLE Nein
shippingAddressLastName SINGLE Nein
shippingAddressCompany SINGLE Nein
shippingAddressDepartment SINGLE Nein
shippingAddressZipcode SINGLE Nein
shippingAddressCity SINGLE Nein
shippingAddressStreet SINGLE Nein
shippingAddressCountryId SINGLE Nein
shippingAddressCountryISOAlpha2 SINGLE Nein
shippingAddressAdditionalAddressLine1 SINGLE Nein
shippingAddressAdditionalAddressLine2 SINGLE Nein
shippingAddressVatId SINGLE Nein
itemIdentifier SINGLE Nein
type SINGLE Nein custom
productId SINGLE Required if type is 'product' Nein
productNumber SINGLE Required if type is 'product' Nein
quantity SINGLE Ja
label SINGLE Ja
unitPrice SINGLE Ja
taxRate SINGLE Ja
description SINGLE Nein
good SINGLE Nein true
removable SINGLE Nein true
stackable SINGLE Nein false
folder STRING Der Ordner des Datenspeichers. Nein
limit STRING Beschränkt die Anzahl der verarbeiteten Aufträge pro Ausführung. Nein
sortByField STRING Optionales Feld zum Sortieren der Datensätze nach einem der indizierten 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
identifierOrderId STRING Setzen Sie diese Option, um die Shopware-Order-ID in Identifier2 oder Identifier3 des Datenspeicherelements zu schreiben. Nein
  • Deaktiviert
  • Identifier2
  • Identifier3
  • Tags
compareCustomersByEmail BOOLEAN Setzen Sie diese Option auf ENABLED, um als letzten Ausweg den passenden Kunden über die E-Mail-Adresse zu finden, wenn der Kunde nicht über die Kunden-ID oder Kundennummer gefunden werden kann. Nein
  • Aktiviert
  • Deaktiviert

Outputs

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

Name Datentyp Beschreibung Pflichtfeld Werte
result SPREADSHEET A spreadsheet object containing the results of the process. Ja
Folgende Felder sind im Output enthalten :

Feld Datentyp Beschreibung Pflichtfeld Standardwert
identifier SINGLE The identifier column to import Spreadsheet into a Datastore. Nein
orderId SINGLE Nein
status SINGLE Nein