Skip to end of metadata
Go to start of metadata

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)

inputSpreadsheetErstellen 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.

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


  • Felder des Datastores

Die Kopfdaten werden durch das Datastore-Schema ShopwareOrderPayloadProvider beschrieben

FelderAnmerkungenPflichtfeldStandardwertWo finde ich diese Shopware IDs / Werte?

Bestellungs-Details

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


numberBestellnummer: wird automatisch von Shopware vergeben, wenn Spalte leer ist


paymentIdID der Zahlungsartja
Tabelle s_core_paymentmeans
dispatchIdID der Versandart ja
Tabelle s_premium_dispatch
partnerIdPartner-ID

Tabelle s_emarketing_partner
shopIdID des Shopsja
Tabelle s_core_shops
referrerHerkunft des Auftrags


orderStatusIdID des Status der Bestellungja
Tabelle s_core_states (group = state)
orderTimeBestellzeit im Format yyyy-MM-dd'T'HH:mm:ssZ Beispiel(2017-12-12T09:54:57+0100)


invoiceAmountRechnungsbetrag Bruttoja

invoiceAmountNetRechnungsbetrag Nettoja

invoiceShippingVersandkosten Bruttoja

invoiceShippingNetVersandkosten Nettoja

currencyWährung
EUR
currencyFactorUmrechnungsfaktor Währung
1.0
transactionIdTransaktions ID


netGesamtbetrag Nettoja

taxfreeSteuerfrei
0
paymentStatusIdID des Zahlungsstatus ja
Tabelle s_core_states (group = payment)
commentKommentar


customerCommentKundenkommentar


internalCommentInterner Kommentar


remoteAddressIP-Adresse


languageIsoID 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 Email Adresse gesucht (customerEmail). Falls noch kein Kunde mit dieser Email 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
customerNumberKundennummer


customerSalutation1Anrede (mr oder mrs)


customerTitleTitel


customerEmail1Email Adresse


customerFirstname1Vorname


customerLastname1Nachname


customerGroupKeyKundengruppe


customerBirthday

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




customerAccountModeAccount Typ (0 = Kunde, 1 = Schnellbesteller)


Rechnungsadresse

billingStreet

Straße


billingStreetNumber

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




billingCityStadt


billingZipcodePLZ


billingCountryId1ID Land

ShopwareGetCountriesAndStates oder s_core_countries

billingStateId1ID Bundesland

ShopwareGetCountriesAndStates oder s_core_countries_states

billingAdditionalAddressLine1zusätzliche Adresszeile 1


billingAdditionalAd2ressLine1zusätzliche Adresszeile 2


billingCompanyFirmenname


billingDepartmentAbteilung


billingVatIdUst ID


billingSalutation1Anrede (mr oder mrs)


billingTitleTitel


billingFirstname1
Vorname


billingLastname1

Nachname


billingPhoneTelefonnummer


Lieferadresse

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

shippingStreetStraße


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


shippingCity1Stadt


shippingZipCodePLZ


shippingCountryId1

ID Land

ShopwareGetCountriesAndStates oder s_core_countries

shippingStateId1ID Bundesland

ShopwareGetCountriesAndStates oder s_core_countries_states

shippingAdditionalAddressLine1zusätzliche Adresszeile 1


shippingAdditionalAddressLine2zusätzliche Adresszeile 2


shippingCompanyFirmenname


shippingDepartmentAbteilung


shippingSalutationAnrede (mr oder mrs)


shippingTitleTitel


shippingFirstNameVorname


shippingLastNameNachname


shippingPhoneTelefonnummer



Die Auftragspositionen sind durch das Schema ShopwareOrderItemPayloadProvider beschrieben.

PflichtfelderAnmerkungenPflichtfeldWo finde ich diese Shopware IDs / Werte?

articleName

Artikelname

articleIdID des Artikels
ShopwareGetProducts Step oder Tabelle s_articles
articleNumberArtikelnummer
ShopwareGetProducts Step oder Tabelle s_articles
pricePreis

quantityAnzahl

taxIdID Mwst.
Tabelle s_core_tax
taxRateMwst. in Prozent
Tabelle s_core_tax
statusIdStatus 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 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 Pflichfeld, siehe auch https://issues.shopware.com/issues/SW-20045 und https://issues.shopware.com/issues/SW-22180 .



  • No labels