Shopware Versand-/Produktverfügbarkeit überprüfen

Hallo,

wir importieren in Synesty unsere Shopware Bestellungen. Dafür nutzen wir einen Master-Datastore für die Bestellungen und einen Child-Datastore für die Bestellpositionen. Jetzt wollen wir überprüfen ob zu einer Bestellung alle Produkte verfügbar sind. Sind nicht alle Produkte zu einer Bestellung verfügbar soll die Bestellung nicht weiterverarbeitet werden, also nicht versand werden.
Wir können schon zu den Bestellpositionen den Lagerbestand hinzufügen (Querverweis im Mapper), dafür haben wir einen extra Bestands-Datastore. Allerdings fällt es uns schwer daraufhin eine Überprüfung einzubauen um zu sagen ob eine Bestellung versand werden darf oder nicht.
Hätte da jemand eine Idee, wie man das am besten bewerkstelligen könnte?

Viele Grüße,
Patrick

Hallo @abc_design,

du könntest in einer Hilfsspalte die Quantity mit dem Bestand vergleichen und wenn der Bestand größer als Quantity ist eine 0 ausgeben und fall nicht eine 1. Das könne dann ungefähr so aussehen:

<#if result["Bestand"]?trim?number >= quantity?trim?number>0<#else>1</#if>

Anschließend kannst du nach der OrderId(vorausgesetzt das ist der Identifier, der in jeder Zeile gleich ist) gruppieren und in der Hilfspalte die Aggregatfunktion „Summe aller Werte“ nutzen. Wenn dann in der Hilfspalte ein Wert größer 0 auftaucht, weißt du, dass bei einer Position nicht genügend Produkte vorhanden sind.

Viele Grüße
Lukas

1 Like

Hallo @synesty-Lukas,

das klappt sehr gut. Vielen Dank!

Ich musste nur das ganze etwas umstellen, sonst hat es mir das ‚>=‘ als schließen des Tags erkannt. So funktioniert es jetzt aber:
<#if ItemQuantity != ''><#if Stock?trim?number < ItemQuantity?trim?number>1<#else>0</#if></#if>

Gruß
Patrick

Hallo @abc_design,

mein Fehler, um die Bedingung hätten noch () Klammern gemusst.

Viele Grüße
Lukas

Ok, alles klar. Danke dir!