erw. Versandkostenberechnung: Abhängig von zwei Attributen

Hi, ich bin gerade dabei mich in die erweiterte Versandkostenberechnung einzuarbeiten was aber leider doch einige Fragezeichen bei mir aufwirft :frowning: Gut weitergeholfen hat mir schon das gesammelte Wissen vom user shopbesitzer um das Grundprinzip nachzuvollziehen. Danke auch nochmal für die Zusammenstellung! Das Wiki habe ich auch durch… Aber so ganz komm ich noch nicht dahinter und auch 37 Seiten hier im Forum mit dem Suchbegriff “Versandkosten” haben mich nicht schlauer gemacht. Daher hoffe ich nun auf einen guten Ratschlag aus der Community :slight_smile: Ich möchte pro Artikel im Warenkorb die individuell hinterlegten Versankosten (s_articles_attributes.attr10) einmal berechnen lassen. Das ist ja auch grundsätzlich kein Problem mit: SUM(at.attr10) Allerdings habe ich noch ein zweites Attribut ‘suppliercode’ (s_articles_attributes.attr3) angelegt, welches in Beziehung zu den Versandkosten stehen soll. Die pro Produkt hinterlegten Versandkosten sollen nur einmal pro suppliercode berechnet werden. Es gibt verschiedene Hersteller, die aber zusätzlich mehrere Versandmethoden haben. Daher kann ich leider nicht auf ‘a.supplierID’ zurückgreifen. Das ist hier schon gut beschrieben, es wird pro Hersteller eine Aufschlagsvariante angelegt, die dann folgendes macht: SUM(IF(a.supplierID=1, d.weight\*b.quantity, 0)) Hier könnte ich zur Not ansetzen und das ganze umstricken, aber das Problem ist, dass ich hier pro suppliercode eine neue Aufschalgsvariante benötige, es aber ständig wechselnde Hersteller geben wird. Deutlich eleganter wäre es also wenn ich einfach das entsprechende Attribut auslesen könnte. Leider scheitere ich hier :frowning: Ich habe bisher versucht das ganze über GROUP BY zu realisieren. Meine Query in der Datenbank gibt auch das gewünschte Ergebnis: SELECT attr10 FROM `s_articles_attributes` GROUP BY s\_articles\_attributes.attr3 In den Versandksoten gibt es dann allerdings ein SQLSTATE[42000]: Syntax error or access violation: 106 mit folgendem Code: SUM(at.attr10) GROUP BY at.attr3 Also habe ich versucht mir meine eigene Tabelle zu basteln via: SUM(at.attr10) total FROM s\_order\_basket AS b INNER JOIN s\_articles\_attributes AS at ON b.articleId = at.articleid GROUP BY at.attr3, at.attr10 Gibt aber wieder ein SQLSTATE[42000]: Syntax error or access violation: 1064 Ich bin eigentlich der Meinung, dass meine Syntax stimmt und daher etwas ratlos :wink: Mein nächster Ansatz wäre sonst noch das ganze über foreach zu probieren aber ich habe das Gefühl, dass das schon vorher zum scheitern verurteilt ist. Ich hoffe, dass das hier jemand bis zum Ende gelesen hat :slight_smile: Aber ich wollte gerne meinen bisherigen Weg darlegen und das Problem greifbar machen. Wäre echt klasse, wenn ich hier eine kleine Hilfestellung bekommen könnte, mit der ich dann weiter probieren kann :slight_smile: Danke und viele Grüße!

Hm, über 300 views und keiner hat nen Rat, ich hoffe das liegt an der Aufgabenstellung und nicht an der Länge vom Text :wink: Ich werde nun erstmal mehrere suppliercodes im System anlegen und dann pro suppliercode einen Aufschlagsversand anlegen. Nicht elegant aber reicht erstmal aus. Problemlösung wird also erstmal vertagt, evtl. hat bis dahin ja doch einer eine Idee :slight_smile: