Versandkosten eigene Bedingungen

Hallo, 

leider komme ich noch nicht zu ganz mit der Konfiguration der Versandkosten in Shopware klar und leider hilft mir hier auch die allgemeine Erklärung von Shopware nicht weiter. 

Ich möchte Versandarten ausschließen wenn nur ein bestimmter Artikel im Warenkorb liegt. Bei diesen Versandarten habe ich mit !allshippingfree bzw. shippingfree bereits eine Bedingung hinterlegt. Daraufhin möchte ich eine Versandart anlegen, die nur dann ausgewählt werden kann, wenn nur dieser Artikel (Stückzahl egal) im Warenkorb liegt. 

Kann mir hier jemand helfen und mitteilen und mir hier kurz die einzelnen Schritte mitteilen (wo ich was eintragen muss), damit ich das beschriebene Szenario abbilden kann? 

Danke! 

Hallo,

kannst du ein Beispiel schreiben, bzw. welchen woran erkennst du den bestimmten Artikel? Gewicht, SKU, …?

Hallo, 

hier kommen für mich prinzipiell Artikelnummer oder Artikel-ID in Frage. 

Also z.B. 

  1. Versandart kann nicht ausgewählt werden, wenn nur der Artikel mit der Artikelnummer/Arikel-ID im Warenkorb liegt. Die bereits hinterlegte Bedingungen !allshippingfree bzw. shippingfree sollen weiterhin ebenfalls für die Versandart hinterlegt sein.    

  2. Versandart kann nur ausgewählt werden, wenn nur ein bestimmter Artikel (Stückzahl egal) mit der Artikelnummer/Artikel-ID im Warenkorb liegt 

Danke schon im Voraus! 

 

Hallo,

also um Artikel anhand der Artikelnummer abzufragen kannst du dich nach diesem Beispiel richten: http://community.shopware.com/Individuelle-Versandkosten-Bedingungen-und-Berechnungen_detail_1933_647.html#Artikelnummern

Die Bedingung Min(IF(d.ordernumber LIKE ‚%ARTIKELNUMMER%‘ OR b.modus <> 0,1,0)) AS artikel

Fragt ab ob nur dieser Artikel im Warenkorb liegt. Sobald auch noch ein anderer Artikel im Warenkorb ist liefert die MIN-Abfrage 0 zurück also false.

Kombiniert mit deinen weiteren Bedingungen kannst du dann && benutzen, um die Versandart nur freizuschalten, wenn beide Bedingungen erfüllt sind.

Für die Versandart für andere Artikel also
!allshippingrfree && !artikel

Für die Versandart nur für den bestimmten Artikel etwa

!allshippingrfree && artikel

Du solltest noch überlegen, ob und wie du Mischwarenkörbe separat behandeln willst, also ob dir zwei Versandarten reichen 1x mit dem Artikel 1x ohne, oder ob du eine Logik brauchst 1x ganz ohne den Artikel, 1x nur der Artikel, 1x der Artikel und andere Artikel.

Viele Grüße aus Schöppingen
Janine

1 „Gefällt mir“

Ich habe folgende Bedinung eingefügt

Min(IF(d.ordernumber LIKE '%ARTIKELNUMMER%' OR b.modus <> 0,1,0)) AS artikel

Dann kann ich nicht mehr auf den Warenkorb zugreifen. Es kommt ein Ladebalken als wäre SSL nicht aktiv.

 

Hallo @Johansens‍ und vllt. auch Andere, die hierüber stolpern.

Wie es scheint wurde das Statement zur Ermittlung der Versandarten grundlegend geändert und liefert zumindest in der aktuellen Version keine Artikelnummern mehr mit, darüber hinaus führt der vorgeschlagene Bugfix in der aktuellen 5er Version zu einem SQL-Fehler weshalb die Storefront vermutlich auch nicht mehr lädt oder eine Meldung wirft wie “hupps, es ist ein Fehler aufgetreten - wir wurden informiert und sind dran” oder so ähnlich.

Momentan scheint eine Prüfung auf Artikelnummer (oder andere Warenkorb/Artikel-bezogene Felder nur noch über subqueries möglich zu sein)

Das würde dann in etwa so aussehen bei den Erweiterten Einstellungen unter eigene Bedingungen:

(SELECT max(IF(sob.ordernumber LIKE '%ARTIKELNUMMER%' OR sob.modus=0,0,1)) 
 FROM s_order_basket sob 
 WHERE sob.sessionID = b.sessionID) = 0

Um zusätzlich auf die Artikel selbst zu gelangen müsste ein JOIN auf die s_articles_details erfolgen, für die Attribute ein weiterer Join auf s_articles_attributes usw.