Plenty: Artikel zu vorhandenem Auftrag hinzufügen (+ entfernen)?

Hallo,

wie kann ich zu bestehenden Aufträgen Artikel zufügen bzw entfernen? Konkret will ich automatisch Ersatzartikel setzen für eine gegebene List von Ersetzungen.

Mit PlentySetOrderItems kann ich die Anzahl der zu löschenden auf 0 setzen. Lieber wäre mir aber, sie ganz aus dem Auftrag zu entfernen.

Aber um einen Artikel hinzuzufügen bräuchte ich eine RowID die ich nicht habe, und leer lassen wirft ein Warning.

Auch per RowID einfach die VariantID mit der neuen zu ersetzen uns so den Artikel auszutauschen hat leider nichts gebracht. Wie muss ich vorgehen?

Danke Daniel

Hallo Daniel,


Artikel entfernen an Bestellungen werden wir in dem Step nicht anbieten. Komplett verbieten können wir es natürlich nicht. Über den SpreadsheetUrlDownload Step könnte es funktionieren (siehe https://developers.plentymarkets.com/rest-doc#/Order/delete_rest_orders__orderId__items__orderItemId_ mit RowId = OrderItemId ). Das ist dann aber komplett auf eigene Verantwortung ;) Möglicherweise ist es aber auch Plenty seitig nicht mehr möglich (https://forum.plentymarkets.com/t/delete-order-item-fehler-500-reorder-position-laesst-sich-nicht-loeschen/556681/4 )


Für das Hinzufügen hab ich in der REST API Doku auf den ersten Blick keine passende Route gesehen. Evtl. geht es über das Update der Order( https://developers.plentymarkets.com/rest-doc#/Order/put_rest_orders__orderId_ ).


Ich habe das austauschen der Varianten IDs auch nochmal getestet. Es funktioniert wenn es auch im Plenty Backend möglich ist die Positionen zu ändern. D.h. Nachdem der Warenausgang gebucht ist funktioniert es nicht mehr. Es kommt leider auch keine Fehlermeldung oder Warnung.


VG Torsten


Hi Torsten,

schade dass weiteres nicht möglich ist, aber könnt ihr natürlich auch wenig machen. Auf die experimentelle Route würde ich mich jetzt aber auch nur begeben wenn es sein muss. Aber austauschen würde für unseren Use-Case wohl reichen.


Kannst du mir nochmal kurz skizzieren wie du das gemacht hattest? Ich hatte es nämlich in Aufträgen ohne Warenausgang versucht, und es hatte nicht geklappt. So versucht:

image

Wobei OrderID, RowID und Quantity aus dem Abruf des Auftrags kamen, und nur VariantID mit einem anderen Wert ersetzt wurde.


Grüße Daniel


Hallo Daniel,


dein Mapping sieht soweit gut aus. Ich habe auch nur das Ergebnis aus dem PlentySearchOrder Step verwendet und eine feste Varianten ID + Text gesetzt:




VG Torsten


Funktioniert jetzt auch bei mir, danke!

Hallo Team,
ich bin auf diesen Thread gestoßen auf der Suche nach einer Möglichkeit, einer Order eine Position hinzuzufügen. Leider konnte ich unter dem angegebenen Link nichts Konkretes finden. Gibt es da eine Möglichkeit? Aber vielleicht denke ich auch zu kompliziert. Der Grund, warum ich das machen will: Ein Kunde meldet Versandkosten an einen externen Marktplatz, die abhängig sind von der VK-technisch teuersten Position eines Auftrages. Die VK stehen aber so nicht in Plenty drin. Jetzt soll praktisch hintenrum der (per Synesty-Flow) ermittelte VK-Betrag als VK in Plenty auch eingetragen/korrigiert werden, damit die Rechnungsbeträge übereinstimmen. Ich habe allerdings keine Möglichkeit gefunden, VK in Plenty über die API zu ändern - es bliebe nur die Chance, ein anderes VK-Profil an den Auftrag zu hängen, was aber aufgrund der unbekannten Höhe nicht zum Ziel führt. Da die Auftragsanlage in Plenty über andere Marktplätze so funktioniert, daß Plenty eine Artikelposition „Versandkosten“ auslesen und daraufhin die VK im Auftrag anlegen kann, war meine Idee, dem Auftrag sozusagen hintenrum eine solche Position zu verpassen in der Hoffnung, daß Plenty dann diese VK übernehmen würde. Habt ihr eine Idee, wie ich das hinbekomme?

Danke und Gruß,
Michael Podolsky
podcomm e-commerce management

Hallo Micha,

einen Step zu Hinzufügen von Auftragspositionen haben wir leider nicht.

Wenn am Auftrag schon Versandkosten vorhanden sind, dann sollten die im Ergebnis des PlentySearchOrders Step als extra Zeile (item) vorhanden sein.

Über den PlentySetOrderItems kannst du den Preis dieser Position aktualisieren.

Das sollte dann auch die Versandkosten am Auftrag überschreiben:

VG Torsten

Hi Thorsten,
durch Deine Antwort bin ich auf die Idee gekommen, dann schon bei Auftragsanlage in Plenty (das passiert über einen Flow) diese Versandkostenposition zu setzen. Nur kommt die nie in Plenty an, und ich weiß nicht, warum. Irgendwo habe ich einen Denk- oder Konfigurationsfehler. Im Datastore steht die Position immer drin - siehe Anhang.


In Plenty hat dieser „Artikel“ die Verknüpfung zum Shop gesetzt. Ich bekomme es aber nicht hin, daß die Position auch in plenty am Auftrag erscheint. Mittlerweile habe ich auch die variantID entfernt und lasse das Feld leer übergeben - ändert aber auch nichts. Irgendwelche Ideen?

Gruß Micha

Hallo Micha,

was hast du denn in der Spalte shippingCosts (am Auftragskopf) angegeben?

Der PlentyAddOrders Step fügt die Position für die Versandkosten automatisch hinzu, wenn in der Spalte shippingCosts ein Wert angegeben ist. Ich könnte mir vorstellen, dass es Probleme gibt, falls es zwei Position vom Typ „Versandkosten“ gibt. Wenn du die Position für die Versandkosten selbst hinzufügst, sollte die Spalte deshalb leer sein.

Viele Grüße
Torsten

Hi Thorsten,
die Spalte ist leer. Auch im Feld shippingProfileID steht nichts drin. Wie sieht es denn mit der sonst nötigen VariantID aus? Wenn ich im Positionen-Datastore nachsehe, ist das (leere) Feld rosa hinterlegt mit dem Hinweis „Pflichtfeld“. Die ItemTypeID ist aber 6 - ist das also nur eine kosmetische Sache, weil der DS an der Stelle nicht sehen kann, daß der Typ auf 6 steht, oder muß das wie in meinen ersten Versuchen über eine Fake-Variante in Plenty erledigt und deren ID da eingetragen werden (was aber ja auch nicht geklappt hatte)?

Gruß Micha

Hallo Micha,

Das ist leider ein „kosmetisches“ Problem, welches wir (momentan) nicht beheben können, da wir für die Pflichtfelder keine Abhängigkeiten zu anderen Spalten(Werten) setzen können.

Die Varianten ID muss im Fall der Versandkosten (typeId=6) leer bleiben. Wenn die Varianten ID nicht leer ist wird automatisch typeId = 1 gesetzt. Die gesetzte Varianten ID in deinem Screenshot von oben hab ich leider übersehen.

Viele Grüße
Torsten

Nein, die VarID IST ja leer. Genauso wie shippingCosts und shippingProfileID. Dennnoch kommt die Position nicht in Plenty an!

Hallo Micha,

kannst du bitte mal den Debug modus im Flow aktivieren und uns per Ticket schicken. Vielleicht können da eine Ursache erkennen, warum die Versandkosten nicht ankommen.

VG Torsten

Hi Torsten,

danke für Deine Ideen! Ich habe es jetzt hinbekommen. Falls jemand an derselben Stelle sein sollte - einer meiner Fehler war, es nicht zu merken, daß es schon funktioniert. Wenn man im Plenty Backend in die Auftragspositionen schaut, steht da diese Fake-Position nämlich nicht drin. Man sieht sie nur, wenn man sich die Daten über die API holt :wink:

Gruß Micha
podcomm e-commerce management