Hallo,
wir kommen bei der Umsetzung einer Berechnung in Synesty nicht weiter. Wir möchten den prozentualen Rabatt pro Bestellung aus unserem Shop (Shopware) berechnen. Dafür bekommen wir die Daten aus Shopware und verwenden dafür "ShopwareSearchOrders", wodurch wir den Auftragskopf und die Auftragsposition in zwei verschiedenen Datastores abspeichern, in denen sich die beiden benötigten Werte zur Berechnung befinden. Ich veranschauliche gerne mal ein Beispiel:
Datastore Auftragskopf:
- Order XY --> InvoiceAmount = 1000 Euro
- Order YX --> InvoiceAmount= 1500 Euro
Datastore Auftragsposition:
- Order XY --> Position 1 = 5 Euro
- Order XY --> Position 2 = 2 Euro
- Order XY --> Position 3 = -2 Euro
- Order YX --> Position 1 = 3 Euro
An dem Negativwert in der Auftragsposition erkennen wir, dass bei Order XY ein Gutschein verwendet wurde. Dieser bezieht sich auf die gesamte Order. Um also den Belegrabatt zu berechnen, müssten wir je Ordernummer:
((NegativPosition * 100) / InvoiceAmountDerBestellung) berechnen. In unserem Fall wäre das bei Order XY ein Rabatt von 2 Euro auf 1000 Euro InvoiceAmount, also 0,2% Belegrabatt als Ergebnis.
Wie kann ich das jetzt rechnerisch in Synesty umsetzen? Für mich wären dies zwei Schritte:
1. Suche in jeder Ordernummer in dem Datastore Auftragsposition nach einem negativen Wert
2. Sofern ein negativer Wert gefunden wird, berechne den prozentualen Rabatt pro Bestellung mit der oben beschriebenen Formel (hierfür wird dann "InvoiceAmount" aus dem Datastore Auftragskopf benötigt)
Als Hinweis: Schlussendlich geben wir die Information über den TextHTMLWriter als XML aus. Über jegliche Tipps oder Anregungen, wie wir dieses Vorgehen in Synesty umsetzen können, wäre ich sehr sehr dankbar! :-)