Step: PlentyAddOrders - REST API
Mit diesem Step können Sie neue Aufträge in Plentymarkets anlegen und / oder Zahlungen(Payments) für vorhandene Bestellungen importieren.
Achtung
Dieser Step unterscheidet sich von anderen Steps. Aufträge die zu plentymarkets übertragen werden sollen, müssen zuerst in zwei Datenstores (Auftragskopfdaten und Auftragspositionen) gespeichert werden. Der PlentyAddOrders - Step kann nur gespeicherte Aufträge zu plentymarkets ü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 plentymarkets vergebene AuftragsID (orderID) an die Datensätze schreibt und jeden Datensatz als PROCESSED_SUCCESS markiert. Damit wird verhindert, dass Aufträge doppelt zu plentymarkets übertragen werden.
Benötigte Plentymarkets REST API Berechtigungen
(es sind nicht immer alle notwendig):
- Aufträge - Auftragsadressen - Auftragsadressen erstellen
- Aufträge - Aufträge erstellen
- Aufträge - Auftragseigenschaften - Eigenschaft erstellen
- Aufträge - Referenzen für Auftragsrelationen - Referenz erstellen
- Aufträge - Aufträge anzeigen
- Aufträge - Aufträge aktualisieren
- Kommentare - Kommentar erstellen
Step Konfiguration:
Input | Beschreibung |
---|---|
account | Ihr Plentymarkets-Account um auf die Schnittstelle zuzugreifen. |
limit | Damit kann eingeschränkt werden wie viele Aufträge angelegt werden. Gerade während der Erstellung eines Flows ist es praktisch diesen Wert eher klein zu halten (z.B. 10), damit nur wenige Aufträge angelegt werden. Default: 50 |
datastore | Geben Sie hier den Datastore an, in denen die jeweiligen Auftragskopfdaten abgespeichert sind. Es werden automatisch alle verknüpften Auftragspositionen gefunden und an den Kopf angehangen. Der Datastore mit den Auftragskopfdaten benötigt ein PlentyOrderPayload Schema (siehe Datastores - Schema) und der zugehörige Child-Datastore ein PlentyOrderItemsPayload. Die Bestellpositionen müssen über eine Master-Child Beziehung mit dem Auftrag verbunden sein. |
folder | Geben Sie den Folder an, aus denen Sie die Aufträge aus dem Datastore abholen wollen. |
Payment Options | Hier können sie auswählen ob die Zahlungsvorgang für Bestellungen angelegt und die Bestellung somit als vollständig bezahlt importiert wird. Folgende Optionen sind möglich:
Default: No |
Vorbereitung:
Achtung
Aufträge die zu Plentymarkets übertragen werden sollen, müssen zuerst in zwei Datenstores (Auftragskopfdaten und Auftragspositionen) gespeichert werden. Wenn die Aufträge bereit verabeitet wurden, werden Sie im Datastore als verabeitet (PROCESSED_SUCCESS oder PROCESSED_ERROR) markiert. Wenn Sie die Daten erneut importieren wollen, muss der entsprechende Datensatz des Bestellkopfs wieder auf den Verabeitungstatus "UNPROCESSED" zurückgesetzt werden.
Datastores mit Auftragskopf und Auftragspositionen anlegen
Damit der PlentyAddOrders Step funktioniert, müssen die Auftragsdaten bereits in 2 Datastores vorliegen:
Schema:Bestellung - Kopfdaten Bestellung - Auftragspositionen Nachdem Sie die oberen Schritte ausgeführt haben, sehen Sie die beiden Datastores in der Datastore Ansicht so aus: Datastores: |
Aufträge in Datastores speichern
1. Benötigte Daten für Auftragskopf
| Die Daten können sie manuell oder automatisch über einen Flow in den Datastore importieren. In der Regel wird es über einen Flow gemacht. Einge Felder werden automatisch beim Import der Bestellung vom Step gefüllt und dürfen nicht gesetzt werden:
| ||||||||
2.Benötigte Daten für Auftragsposition (Pflichtfelder)
| Zur Positionsanlage sind die beiden in der Tabelle aufgeführten Spalten notwendig. Ist kein Preis (Netto oder Brutto) angegeben wird dieser automatisch anhand der angegebenen Variante zugeordnet. |
Spaltenbeschreibung:
Auftragskopf
Spaltenbezeichnung | Erläuterung |
---|---|
ID Spalten (werden teilweise, je nach Use-Case automatisch befüllt ) | |
orderID | Von Plenty vergebene Aufrags ID |
deliveryAddressID | ID der Versandadresse |
customerID | Kunden ID |
customerAddressID | ID der Rechnungsadresse |
paymentID | ID des Zahlungsvorgangs |
Status Spalten(werden automatisch befüllt) | |
remoteStatusMessage | Wird von Synesty mit der "Antwort" von Plenty befüllt OrderID=XXX,OrderStatus=XXX |
remoteStatusCode | Wird von Synesty bei Übertragung der Bestellung an Plenty gesetzt SUCCESS = Erfolgreich übermittelt |
remotePaymentStatus | Wird von Synesty bei Anlage einer Zahlung mit dem Status befüllt |
Auftragseinstellungen | |
plentyID | ID des Mandanten / Webshops |
ownerID | ID des Benutzers / Eigners der Bestellung |
customerReference | Zeichen Kunde |
referrerID | Auftragsherkunft ID |
orderStatus | Auftragsstatus |
externalCustomerNumber | Externe Kundennummer |
externalOrderID | Externe Auftragsnummer |
warehouseID | Lager ID |
shippingProfileID | Versandprofil ID (z.B. für Paket) |
methodOfPaymentID | Zahlungsmethode ID |
orderType | Auftragstyp |
marking1ID | Markierung 1 ID |
shippingCosts | Versandkosten |
estimatedTimeOfShipment | vorrausichtliches Versanddatum |
referenceOrderID | ID des referenzierten Auftrags, z.B. bei Retouren |
Zahlungsvorgang | |
paymentTransactionID | Zahlungstransaktion ID |
paymentBookingText | Verwendungszweck der Zahlung |
Kunden- / Rechnungsadressdaten | |
billingCustomerFormOfAddress | Anrede (Rechnungsadresse) |
billingCustomerCompany | Firma (Rechnungsadresse) |
billingCustomerFirstName | Vorname (Rechnungsadresse) |
billingCustomerSurname | Nachname (Rechnungsadresse) |
billingCustomerAdditionalName | Namenszusatz (Rechnungsadresse) |
billingCustomerStreet | Straße (Rechnungsadresse) |
billingCustomerHouseNumber | Hausnummer (Rechnungsadresse) |
billingCustomerZip | Postleitzahl (Rechnungsadresse) |
billingCustomerCity | Stadt (Rechnungsadresse) |
billingCustomerCountryID | Land ID (Rechnungsadresse), siehe auch https://developers.plentymarkets.com/en-gb/interface/stable7/Order.html#order_countries |
billingCustomerEmail | E-Mail Adresse (Rechnungsadresse) |
billingCustomerTelephone | Telefon (Rechnungsadresse) |
billingCustomerFax | Fax (Rechnungsadresse) |
billingCustomerLanguage | Sprache (Rechnungsadresse), siehe https://developers.plentymarkets.com/en-gb/interface/stable7/Order.html#order_currency |
billingCustomerVatID | Umsatzsteuer-Identifikationsnummer (Rechnungsadresse) |
billingDebitorAccount | Mandant (Kunde) |
billingCustomerPlentyID | Kundenklasse (Kunde) |
billingCustomerPostNumber | Postnummer (Rechnungsadresse) |
billingCustomerContactPerson | Ansprechpartner (Kunde) |
billingCustomerClass | Kundenklasse (Kunde) |
billingCustomerPaymentDueWithin | Zahlungsziel (Kunde) |
Lieferadressdaten | |
deliveryCustomerCompany | Firma (Lieferadresse) |
deliveryCustomerFirstName | Vorname (Lieferadresse) |
deliveryCustomerSurname | Nachname (Lieferadresse) |
deliveryCustomerAdditionalName | Namenszusatz (Lieferadresse) |
deliveryCustomerStreet | Straße (Lieferadresse) |
deliveryCustomerHouseNumber | Hausnummer (Lieferadresse) |
deliveryCustomerZip | Postleitzahl (Lieferadresse) |
deliveryCustomerCity | Stadt (Lieferadresse) |
deliveryCustomerCountryID | Land ID (Lieferadresse), siehe auch https://developers.plentymarkets.com/en-gb/interface/stable7/Order.html#order_countries |
deliveryCustomerEmail | E-Mail Adresse (Lieferadresse) |
deliveryCustomerTelephone | Telefon (Lieferadresse) |
deliveryCustomerFax | Fax (Lieferadresse) |
deliveryCustomerVatID | Umsatzsteuer-Identifikationsnummer (Lieferadresse) |
deliveryCustomerPostNumber | Postnummer (Lieferadresse) |
Auftragsnotiz | |
infoUserID | Benutzer ID der Auftragsnotiz |
info | Notiz am Auftrag |
Auftragsposition
Spaltenbezeichnung | Erläuterung |
---|---|
variantId | ID der Variante in ihrem Plentymarkets Shop |
quantity | Bestellmenge |
price | Preis Brutto |
priceNet | Preis Netto |
VAT | Prozentsatz MwSt |
vatCountryId | ID des Landes für diesen MwSt Satz (Einstellungen » Mandant (Shop) » Standard » Umsatzsteuersätze) |
currency | Währung, siehe https://developers.plentymarkets.com/rest-doc/introduction#currencies |
itemText | Artikelname |
itemRebate | Artikel Rabatt |
Anwendungsbeispiel:
In der Regel ist bereits in einem vorherigen Prozess ein Master-Child Datastore mit Bestellungen (Kopf- und Positionsdaten) gelaufen - siehe Vorbereitung.
Der "PlentyAddOrders" Step greift nun auf diesen Master-Child Datastore zu und sendet alle Datensätze im PROCESSING_STATUS = UNPROCESSED an Plentymarkets.
Alle erfolgreich an Plentymarkets übermittelten Aufträge werden im Auftragskopf Datastore als "PROCESSED_SUCCESS" markiert. Desweiteren erhalten die Aufträge die von Plenty angelegte Auftragsnummer (OrderID) und werden mit mit einem StatusCode (SUCCESS bei Erfolg, ERROR bei fehlerhafter Übertragung) gekennzeichnet.
Ein erfolgreich übermittelter Auftrag, sieht im Auftragksopf Datastore in etwa so aus:
Hinweis: Falls bei der Übermittlung an Plenty ein Fehler auftritt, prüfen Sie ob alle benötigten Spalten (siehe oben) gefüllt sind.