Gelöst Workflow: Wenn Artikel zuvor bestellt, dann stornieren

karabey

Sehr aktives Mitglied
28. November 2012
927
75
Hallo,

Ich such nach ein Logik für den Workflow um Bestellungen von Artikeln die bereits zuvor bestellt wurden zu stornieren.

Wir limitieren zwar auf 1 Stück pro Kunde/Bestellung aber es gibt ganz intelligente die dann hintereinander bestellen.
Um im Workflow das zu automatisieren müsste ich zuerst prüfen ob der Kunde eine zweite Bestellung abgibt und wenn ja dann die vergangenen Bestellungen aufrufen und prüfen ob das Artikel bestellt wurde.

Natürlich kommt auch in Frage wie belastend es für Wawi sein kann und es nicht sinnvoll ist im Shop zu überprüfen.
 

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
Über einen langen Zeitraum nur einen Artikel pro Kunde?
SQL-Abfrage in DotLiquid einbinden, welche pro Bestellung die Kundennummer-Artikel Kombination in der Datenbank sucht und dann für den Workflow entweder true oder false ausgibt
 
  • Gefällt mir
Reaktionen: karabey

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
Musste dir selber zusammen-joinen. Im Grunde fragst du einfach
"bestellung mit kunde = (kd-nr var aus dotliquid) und artikel = (art-nr aus dotliquid)"
wenn ein ergebnis kommt (außer vom aktuellen auftrag), dann auftrag abbrechen.
ich kann mich morgen mal an die abfrage setzen, wenn ich etwas zeit habe. bis dahin kannst es ja selber probieren
 
  • Gefällt mir
Reaktionen: karabey

karabey

Sehr aktives Mitglied
28. November 2012
927
75
Möchtest du dich selber daran versuchen?
Würde mich freuen wenn du mir da helfen könntest. Mit DotLiquid habe ich es nicht drauf.

Dazu müsste man die Kundenummer abfragen und die aktuelle Bestellnummer. Die aktuelle Bestellnummer mit der vorherigen Bestellnummer abgleichen und wenn die bekannte(n) Artikelnummer(n) in der vorherigen Bestellnummer vorhanden ist, dann diese stornieren. Hoffe denke richtig damit.
 
Zuletzt bearbeitet:

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
Code:
select
    case
        when count(kartikel) > 1
        then 'true'
    end
from verkauf.tAuftrag
    join verkauf.tAuftragPosition
           on verkauf.tAuftrag.kAuftrag = verkauf.tAuftragPosition.kAuftrag
where kkunde = '{{Kundennummer}}'
    and kartikel= '{{Artikelnummer}}'
group by kkunde, kartikel

Das ist die SQL Abfrage für Wawi 1.6.
{{Kundennummer}} und {{Artikelnummer}} sind die Dotliquid-Variablen (die tatsächliche Bezeichnung musst du selber einfügen), die den aktuellen Auftrag enthalten.
Das Ergebnis dieser Abfrage ist "true", wenn die Kombination aus {{Kundennummer}} und {{Artikelnummer}} bereits in der Datenbank vorhanden war, bevor die aktuelle Bestellung reingeschrieben wurde, d.h. diese Kombi jetzt mindestens 2x in der Datenbank liegt (count >1). Dieses "true" kannst du dir dann mit DotLiquid in den erweiterten Eigenschaften ausgeben lassen und danach im Workflow benutzen ("true" -> abbrechen (oder zurückhalten)).
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: karabey

Ähnliche Themen