Zahlstatus in Plentymarkets ändern

Guten Morgen,


wir übertragen Aufträge mit Synesty von Shopware zu Plentymarkets. Das funktioniert auch einwandfrei.


Wie kann ich den Zahlstatus aus Shopwrae, der sich bei manchen Zahlarten ändert, nachträglich an den Aufträgen in Plentymarkets updaten?


Finde nirgends einen Step, der den Zahlungsstatus in Plentymarkets updaten kann.

Was wäre da ein typischer Workflow?


Vielen Dank

Hallo spreisl-thomas,


was du sucht ist der "PlentySetOrdersHead" Step.

Hier brauchst du lediglich die plenty OrderID und kannst dann verschiedene Felder der Kopfdaten der Order aktualisieren.



Viele Grüße,


Rocco

Hy Rocco,


in dem Step PlentySetOrdersHead gibt es lediglich die Spalte "PaidAt"?! Reicht die, um den Zahlungsstatus auf bezahlt zu ändern und wie lautet hier der valide Wert?

Bekomme immer die Fehlermeldung

image


Der Zahlstatus bleibt unerändert!


Hallo,


wir haben das nochmal getestet. Das PaidAt Datum kann offenbar nicht mehr direkt über den PlentySetOrdersHead Step gesetzt werden. Auch wenn wir ein valides (W3C Format, z.B. 2020-05-20T01:00:00+01:00 ) in der PaidAt Spalte verwendet haben, wurde weder das Zahlungsdatum noch der Zahlstatus der Bestellung geändert.


Ein möglicher Weg einen Zahlung (Zahlungseingang) zu buchen wäre über den PlentyAddOrders Step und die Option Payment Options "Create payment if paymentTransactionID is set". Falls die Bestellungen aus Shopware schon über den PlentyAddOrders Step angelegt werden, sollten die importierten Bestellungen im Datastore vorhanden sein und die Spalte "orderID" nach dem Import gefüllt sein. Wenn der Zahlungseingang bei Shopware erfolgt ist müsste für die entsprechende Bestellung die Spalte paymentTransactionID im Datastore gefüllt und der processing status auf UNPROCESSED gesetzt werden. Bei erneuter Ausführung des AddOrders Steps wird dann eine vollständige Zahlung für diese Bestellung (orderID) in Plenty erstellt.





Ah, ok. Werde versuchen, das so zu lösen. Habe aber vorher noch ein anders Problem. Ich arbeite schon mit der Payment Option bei PlentyAddOrders. Bekomme aber bei manchen Aufträgen folgende Fehlermeldung im Datastore:


ERROR: Could not create new payment. (Root Causes: PlentyRESTBaseException: Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '12f5ba4cd9fb498277bffee55348254b' for key 'plenty_pay_hash_unique' (SQL: insert into `plenty_pay` (`amount`, `currency`, `status`, `transactionType`, `mopId`, `hash`) values (82.26, EUR, 2, 2, 5100, 12f5ba4cd9fb498277bffee55348254b)) (Code=23000)<br /><br/>POST https://www.projektorag-plentymarkets.de/rest/payments/ HTTP/1.1)

Die Fehlermeldung bedeutet im Normalfall, dass schon eine Zahlung mit gleichen Daten an der Bestellung vorhanden ist. Plenty bildet einen Hash für die Zahlungsdaten (`amount`, `currency`, `status`, `transactionType`, `mopId`). Wenn dieser schon vorhanden ist, kann die Zahlung nicht nochmal angelegt werden.

Und wenn dies nicht der Fall ist? Die Aufträge werden sofort mit dem Status "bezahlt" nach Plentymarkets importiert bzw. angelegt. Zahhlungsdaten kann es also zu diesem Zeitpunkt noch nicht geben, weil Auftrag und Zahlung gleichzeitig angelegt werden.

Ich habe mir das nochmal angesehen. Der Import der Zahlung läuft wie folgt ab:


1. Bestellung wird angelegt

2. Zahlung wird angelegt (ohne Zuordnung zur Bestellung)

3. Angelegte Zahlung wird mit der Bestellung verknüpft


Der Fehler/das Problem tritt bei Schritt 2 auf. D.h. es ist vermutlich schon eine Zahlung mit gleichem Betrag, Zahlungsart etc. für eine andere Bestellung vorhanden, sodass die Zahlung nicht nochmal angelegt werden kann. Um das Problem zu lösen könnten sie zusätzlich noch einen pro Bestellung eindeutigen Buchungstext (paymentBookingText) vergeben. Dieser wird offenbar auch in den Abgleich der Zahlungen mit einbezogen und es wird eine neue Zahlung angelegt.



Hallo Synesty, mit euren Tipps habe ich es prima umsetzen können. Vielen Dank.


Ein kleines Problem habe ich allerdings noch. Welche Spalte in dem PlentyAddOrders Step ist dafür zuständig, dass die Kunden-ID und der Kontoinhaber der Zahlungsart gefüllt wird?


image


Ich habe es schon mit der ownerID versucht. Die ist es nicht!


Hat hier vielleicht jemand eine Idee? Ist wichtig!

Hallo,


dann sind Felder an der Zahlung und haben nicht direkt etwas mit der Bestellung beim Anlegen zu tun. Momentan können wir diese Felder nicht setzten. Wir sind aber dabei die Möglichkeit zu prüfen und werden uns nochmal melden.


Viele Grüße,

Der Synesty-Support

Super, das würde die Zahlungsanlage beim Import natürlich komplettieren. Bin gespannt

Hi,


es ist jetzt möglich die beiden Felder zu setzten. Der Kontoinhaber wird über das Feld "billingCustomerContactPerson" und die Kunden-ID wenn in dem Feld "paymentCreateContactLink" "true" gesetzt ist.

Sollten die Felder noch nicht vorhanden sein, kannst du diese dem Datastore einfach hinzufügen. Neu angelegte Datastore mit dem Order Schema haben diese beiden Felder bereits.


Viele Grüße,

Lukas