PlentyGetCustomerDeliveryAddress - Frage

Hallo,


ist es irgendwie möglich, die o.g. Funktion so zu nutzen, dass auch Adressen herangezogen, bei denen Rechnungs = Lieferadresse ist?


Ich möchte eine Möglichkeit bauen, mit der ich Kundenadressen, die ins Versandcenter eingespielt werden vorher bearbeiten kann. Ist nur eine Rechnungsadresse und keine Lieferadresse hinterlegt erhalte ich mit der Funktion "null" als Ergebnis. Ich möchte in dem fall aber die Rechnungsadresse haben.


Danke und Grüße

Enrico

Hallo Enrico,


wir haben den Anwendungsfall leider noch nicht so richtig begriffen. Mit dem oben genannten Step lassen sich nur die Lieferadressen abrufen.


Wenn wir etwas besser verstehen was genau du vorhast, können wir vielleicht eine Alternative vorschlagen (auf den ersten "Blick" scheint es so, dass dafür z.B. auch ein "SearchOrders" funktionieren könnte)



Viele Grüße

Der Synesty Support

Hallo zusammen,
ich glaube Ihr habt es richtig verstanden :)
Ich will zu einem Auftrag immer die Adresse auslesen, die auch für den Versand verwendet wird.
Habe ich nur eine Rechnungsadresse - dann eben diese statt der Lieferadresse.

Mit searchOrders könnte das auch gehen, allerdings kann ich da nicht nach countryID schauen beim holen der orders - das wäre aber super.

Alternativ: Wenn ich den searchorders verwende - wie ist denn der Skriptbefehl wenn ich generell mit jeder Flowausführung alle Aufträge ziehen will, die 14 Tage zurück liegen? Also kein bestimmtes Datum sondern OrderInsertDate "14 Tage zurück von heute"

Danke und Grüße
Enrico

Hallo Enrico,


ich denke das SearchOrders der leichtere Weg für dein Vorhaben ist. Die beiden Filter für die CustomerCountryID & DeliveryAddressCountryID bauen wir in den SearchOrders Step noch ein. Bis nächste Woche Mittwoch sollten sie vorhanden ist.

Alternativ: Wenn ich den searchorders verwende - wie ist denn der Skriptbefehl wenn ich generell mit jeder Flowausführung alle Aufträge ziehen will, die 14 Tage zurück liegen? Also kein bestimmtes Datum sondern OrderInsertDate "14 Tage zurück von heute"

Du kannst dufür einen TextHtmlWriter Step mit folgendem Template einfügen:

${datecalc("DAY", -14)!?datetime?string('yyyy-MM-dd')} 00:00

Das Ergebnis des TextHtmlWriter Steps kannst du dann mit dem orderInsertDateToFrom Feld verknüpfen.


Viele Grüße

Torsten

Perfekt Torsten, danke!
Damit funktioniert es.
Noch eine Zusatzfrage: Welchen Baustein verwende ich dann, wenn ich die überarbeitete Lieferadresse zurück geben möchte?
Denn so wie ich das sehe, setzt Synesty mit PlentySetCustomerDeliveryAdress die Lieferadresse nur, wenn bereits eine vergeben ist.
Mein ziel ist es, die Lieferadresse einer Bestellung upzudaten. (Beispielsweise um Adressfehler bei Auslandskunden zu umgehen).

PS: Ist euch auch schon aufgefallen, dass man in der Skriptsprache "Adress" eingeben muss damit es funktioniert statt "address" XD

Hallo Enrico,


du kannst die Lieferadresse mit dem PlentySetCustomerDeliveryAddress Step anlegen und danach die neue ID mit dem PlentySetOrdersHead an den Auftrag setzen. Wichtig beim SetOrdersHead Step ist, das du den DoneTimestamp wieder setzt, falls der Warenausgang der Bestellung schon gebucht ist.


Das mit "Adress" ist uns noch nicht aufgefallen. Wo genau hast du das gesehen ?


Viele Grüße

Torsten

Danke Torsten, probiere ich aus.


Siehe die beiden Screenshots. Mit Address (richtig geschrieben mit 2 dd bekomme ich kein Ergebnis in der Spalte, mit einem d schon.


image


image



Nochmal ich,
um die neue ID im Auftrag setzen zu können, muss ich die erstmal wieder holen, nachdem sie angelegt ist - woher weiß ich dann, welche die korrekte ist, falls vorher schon eine falsche Lieferadresse gesetzt war?

Geht das dann über einen Timestamp?

Hallo Enrico,


du könntest im SetCustomerDeliveryAddress Step in der Spalte "ExternalDeliveryAddressID" die Order ID angeben. Beim Abruf bekommst du die Order ID dann wieder und kannst die neue DeliveryAddressId über SetOrdersHead setzen.


Viele Grüße

Torsten

Hallo Torsten,

ich bekomme jeweils beim Set - Step fehlermeldungen.
PlentySetCustomerDeliveryAddress - WARNING:Skipping row 2 because of invalid customerID.
PlentySetOrdersHead - WARNING:Skipping row 1 because of invalid orderID:
die ID´s passen aber, schließlich hole ich mir die ja vorher aus Plenty - woran kann das denn liegen?
Trotz dem Fehler legt er immerhin eine Adresse an, allerdings wird die im Auftrag nicht aktualisiert