Versandkosten die 1000ste

Hallo ich brauche leider Hilfe bei den Versandarten weil es immer noch nicht klappt.

  • Artikel mit Versandkostenfrei Haken

  • Artikel ohne Versandkostenfrei Haken

  • Standard Versand, ab 50Euro Warenkorb Versandkostenfrei vorher zzgl 9 Euro Versandkosten

  • Film Versand ab 8,90Euro Versandkostenfrei vorher zzgl 2 Euro Versandkosten (Alles Artikel in Kategorie und Subkategorie von Film) ansonsten 2 Euro Versandkosten

  • Abholung vor Ort immer Versandkostenfrei

Bisher hatte ich in Eigenschaften dazu die , MIN(d.shippingfree) = 1 as allshippingfree, MIN((SELECT 1 FROM s_articles_categories WHERE articleID=a.id AND categoryID=23)) AS is_film
hat aber nichts gebracht. Es ist zum verzweifeln.

Bitte keine Link auf diese !allshippingfree-Anleitung, die kann ich mittlerweile im Traum zitieren.

Danke und Gruss

Yep, das kann ziemlich “mind-boggling” werden, die Gehirnknoten bei der Konfiguration kenne ich gut, hab auch mehrere AnlĂ€ufe benötigt bis es passte, und die Doku ist da teilweise etwas undurchsichtig.

Daher versuche ich das mal anhand eines (stark vereinfachten) Beispiels zu erklÀren:

Die erste Entscheidung ist, ob Du mehrere Versandarten nutzen möchtest oder nur die Preise ein und derselben Versandart dynamisch berechnen musst. Oder eine Kombination von beiden AnsĂ€tzen (was bei uns der Fall ist). Bei uns sind es z.B. schon mal 3 unterschiedliche Versandarten: normales Paket, Gefahrgutversand 1.4S und Gefahrgutversand 1.4G (der 1.4S inkludiert). Paket und 1.4G werden nach Gewicht ermittelt, 1.4S hingegen ĂŒber den Warenwert (da die Artikel sehr leicht sind und dann eher das Volumen ausschlaggebend ist).

Bei sortenreinen Warenkörben ist es ja noch relativ einfach, die KomplexitĂ€t kommt vor allem ĂŒber gemischte Warenkörbe. Ich empfehle Dir, hier ein gutes altes Tool aus der Prozessmodellierung zu verwenden: Decision Tables. Was soll das Ergebnis sein (sprich: welche Versandart und zu welchem Preis), wenn - um Deine Beispiele zu nehmen - ein Versandkostenfrei, ein Film und ein normaler Artikel im WK liegen.
Das spielst Du nun fĂŒr jede mögliche Kombination durch (eine Zeile pro Kombination).

Dann geht es darum, diese Regeln umzusetzen. ZunĂ€chst kĂŒmmerst Du Dich um die Selektion der richtigen Versandart. Unsere Artikel haben z.B. ein Freitextfeld mit der Gefahrgutklasse, somit wird zunĂ€chst einmal ĂŒber erweiterte SQL Abfragen des Versandkostenmoduls ermittelt, ob im WK mindestens ein Artikel mit dieser Klasse liegt, z.B. MAX(IF((at.artikel_gefahrgutklasse="1.4S"), 1,0)) as hat_14s und MAX(IF((at.artikel_gefahrgutklasse="1.4G"), 1,0)) as hat_14g. Gleichermaßen verfĂ€hrst Du mit allen anderen relevanten Kriterien.

Nun trĂ€gst Du bei jeder Versandart entsprechend deiner Tabelle ein, wann diese verfĂŒgbar sein darf. Beliebte Fehler sind hier schon, die Freischaltung fĂŒr Zahlungsmethoden oder LĂ€nder zu vergessen. Danach gehst Du auf den Reiter “Erweiterte Einstellungen” und schreibst in das Feld “eigene Bedingung” die gewĂŒnschte Formel. Beispiel fĂŒr meine 1.4S Versandard: hat_14s AND !hat_14g, also nur anbieten, wenn mindestens ein Artikel 1.4S, aber keiner (! = NOT) 1.4G hat. Bei 1.4G hingegen wird nur eingetragen: hat_14g - ob 1.4S vorhanden ist dann nĂ€mlich egal. Und beim normalen Paketversand dĂŒrfen beide nicht gesetzt sein, hier wĂ€re die Formel also !hat_14s AND !hat_14g. Die Formeln mĂŒssen also so gewĂ€hlt werden, dass bei jeder Kombi genau eine Versandart ĂŒbrig bleibt (außer es ist gewollt, dem Kunden mehrere zur Auswahl anzubieten).

Das ist schon mal das A und O. Jetzt geht es noch an den Preis der jeweiligen Versandart. Entweder machst Du das ĂŒber die vorgesehene Staffeln (nach Gewicht oder Warenkorbwert), oder du trĂ€gst unter “Eigene Berechnung” eine Formel ein, welche den Wert basierend auf diversen Parametern - analog zu oben - ermittelt. Das Ergebnis muss hier natĂŒrlich kein Boolean sein, sondern der zu verwendende Betragswert.

Hoffe das hilft Dir schon mal weiter, und auch dem ein oder anderen Mitleser - das Thema wird ja stÀndig gefragt. Bin gespannt auf Deine Fragen!

LG Phil

1 Like

Vielen Dank fĂŒr die AusfĂŒhrliche Beschreibung.

Wie verhÀlt sich die Erweiterte SQL in Einstellung > Versandkostenmodul zu den Einstellungen in der Versandart?
Wenn ich eine Kategorie sperre oder die KategorieID ausgeben lasse, ĂŒberschneidet sich das nicht?

MIN(d.shippingfree) = 1 as allshippingfree, MIN((SELECT 1 FROM s_articles_categories WHERE articleID=a.id AND (categoryID=23 OR categoryID=129)) AS is_film

dann brauch ich doch dann keine Kategorie mehr sperren oder?

Standart 	 	 | Preis: 9CHF	| !allshippingfree		| Versandkostenfrei: unterstĂŒtzen && ab 50CHF	| Kategorie sperren: nein
Film und Musik 	 | Preis: 2CHF	| !allshippingfree	 	| Versandkostenfrei: unterstĂŒtzen && ab 8,90CHF	| Kategorie sperren: ja ausser 23,129
Versandkostenfrei| Preis: 0CHF	| allshippingfree 		| Versandkostenfrei: unterstĂŒtzen		 	| Kategorie sperren: nein
Abholung vor ORT | Preis: 0CHF										 	 		 	 	| Kategorie sperren: nein
Standart 	 	 | Preis: 9CHF	| !allshippingfree		| Versandkostenfrei: unterstĂŒtzen && ab 50CHF	| Kategorie sperren: nein
Film und Musik 	 | Preis: 2CHF	| !allshippingfree AND is_film	 	| Versandkostenfrei: unterstĂŒtzen && ab 8,90CHF	| Kategorie sperren: ja ausser 23,129
Versandkostenfrei| Preis: 0CHF	| allshippingfree 		| Versandkostenfrei: unterstĂŒtzen		 	| Kategorie sperren: nein
Abholung vor ORT | Preis: 0CHF										 	 		 	 	| Kategorie sperren: nein

Egal was, das Modul speichert es noch nicht einmal ab.