Hallo,
ich hoffe hier kann mir jemand auf die Sprünge helfen - ich sehe nach 3 Tagen den Wald vor lauter Bäumen nicht mehr. Es ist kompliziert.
Wir haben in unseren B2B-Shop Artikel die mit 7% und mit 19% besteuert. Dementsprechend haben wir 2 Standard-Versandarten, die je nachdem greifen, welcher Warenkorbwert größer ist. Das wird über das Versandkostenmodul mit folgender SQL-Abfrage gesteuert:
IF(SUM(if(t.tax = 7, (b.price*b.quantity) ,0))>SUM(if(t.tax = 19, (b.price*b.quantity) ,0)),1,0) as 7percent
und in den eigenen Bedingungen der beiden Standard-Versandarten mit „7percent“ und !7percent" abgefragt und ausgewählt. Außerdem versenden wir beim Standard-Versand versandkostenfrei ab 150 Euro Netto Warenkorbwert. Das funktioniert soweit.
Jetzt kamen neue Artikel ins Sortiment die mit 2 verschiedenen Speditionsarten versendet werden sollen - normale Spedition und Tiefkühlspedition. Die Artikel werden jeweils mit 7% versteuert und haben nichts mit dem Standard-Versand und der Versandkostenfrei-Grenze zu tun. Demnach musste ich bei den beiden Standardversandarten eine eigene Berechnung hinzufügen, diese neuen Artikel ausschließt.
IF (
SUM(
IF(at.attr4 = 1 OR at.attr5 = 1, 0, b.quantity)
) = 0,
0,
IF (
SUM(
IF(at.attr4 = 1 OR at.attr5 = 1, 0, b.price * b.quantity)
) > 150,
0,
9.52
)
)
Das funktioniert ebenfalls.
Damit Shopware erkennt, dass diese neuen Artikel mit einer der beiden Speditionen versendet und die eigene Berechnung im Standard-Versand diese Artikel nicht beachten werden soll, werden bei diesen Artikel entsprechende Checkboxen (Freitextfelder at.attr4 und at.attr5 zur Artikelmaske hinzugefügt) gepflegt. Ich habe dazu wieder eine SQL-Abfrage im Versandkostenmodul hinterlegt:
MIN((SELECT 1 FROM s_articles_categories WHERE articleID=a.id AND categoryID= 401)) AS tkspedition, MIN((SELECT 1 FROM s_articles_categories WHERE articleID=a.id AND categoryID= 370)) AS spedition
und den beiden Aufschlagversandarten in den eigenen Bedingungen das jeweilige Alias (tkspedition bzw. spedition) hinterlegt.
Auch das funktioniert.
Was aber nicht funktioniert: Der Versandaufschlag wird, sobald ein Artikel mit 19% Mehrwertsteuer im Warenkorb ist, ebenfalls mit 19% berechnet. Soll aber die hinterlegten 7% nehmen. Ist das überhaupt möglich?