Hallo, so ich poste dann nochmal die komplette Fehlerbeschreibung:
ich möchte meine Versandkosten nach der Größe der Artikel berechnen lassen.
Ich habe mich am entsprechenden Tutorial orientiert, dieses aber etwas abgeändert:
-
5 Attribute bei den Artikeln angelegt (für jede Lieferzone eines):
attr10 - Versandkosten Deutschland
attr11 - Versandkosten EU
attr12 - Versandkosten Europa ohne EU
attr13 - Versandkosten Welt I
attr14 - Versandkosten Welt II -
Im Modul Premiumversandkosten folgende SQL-Abfrage:
MAX(a.topseller) AS has_topseller, MAX(at.attr3) AS has_comment, MAX(b.esdarticle) AS has_esd, MAX(at.attr10=1) AS shipde, MAX(at.attr11=1) AS shipeu1, MAX(at.attr12=1) AS shipeu2, MAX(at.attr13=1) AS shipwelt1, MAX(at.attr14=1) AS shipwelt2
-
für jede Lieferzone eine Versandart angelegt
-
bei jeder Versandart “Eigene Versandkostenberechnung” mit folgendem Code:
MAX(at.attrXX)
XX natürlich jeweils 10,11,12,13 oder 14 -
3 Testartikel für die drei verschiedenen Artikelgrößen angelegt und dort jeweils
jedes Attribut mit Versandkosten gefüllt:
[attr10; attr11; attr12; attr13; attr14]Testartikel Großbrief: 3.05; 5.50; 5.50; 5.50; 5.50
Testartikel Maxibrief: 3.80; 9.05; 9.05; 9.05; 9.05
Testartikel Paket: 5.90; 15.00; 28.00; 34.00; 40.00
So, nun endlich zum Problem:
Die Berechnung funktioniert, wenn ich als Lieferland Deutschland nehme - je nach dem welche Artikel im Warenkorb sind, wird immer der höchste verfügbare Versandkostenbetrag der jeweiligen Artikel im WK berechnet.
Wähle ich ein anderes Land, funktioniert das nur solange, bis ich einen Paketartikel mit anderen Artikeln kombiniere. Dann wird mal Maxibrief, mal Großbrief berechnet.
Nach vielen stundenlangen Test habe ich den Fehler kaum eingrenzen können, aber zwei Sachen sind mir aufgefallen:
-
Der Fehler tritt erst auf, sobal ich den Testartikel “Großbrief” in den Warenkorb lege in Kombination mit Testartikel “Paket”. Großbrief+Maxibrief funktioniert dagegen, Maxibrief+Paket auch.
Die Artikel und alle anderen Einstellungen habe ich aber schon zigmal geprüft und tlw. auch neu eingestellt, um dort Fehlerquellen auszuschließen. -
Es macht fast den Anschein (kann aber nicht sein) als wenn in die Berechnung nur die erste Stelle des 3-4stelligen Attributs (sprich Versandkostenpreises) einfließt. Zumindest kann ich so das Verhalten eindeutig nach “meinen Wünschen” beeinflussen: Ändere ich die Versandkosten auf 1,2,3,… aufsteigen, geht es. Z.B. hat der Großbrief die Kosten 8 und Paket 9, geht es. Ändere ich das Paket dann aber auf 10, wird wieder der Preis vom Großbrief genommen. Daher der “Anschein” als wenn er nur die erste Stelle zur Berechnug heranzieht (8<9, 8>1[0]).
Ist etwas an den SQL-Befehlen falsch, oder woran kann dieses liegen?
Ich finde einfach nicht den geringsten Ansatz, woran es liegen kann.
Viele Grüße
Heiko