Versandkostenberechnung, Kategorie ID für eigene Berechnung

Hallo Zusammen,

weiß jemand von euch ob es möglich ist, die Kategorie-ID der Artikel im Warenkorb für die Eigene Versandkostenberechnung herauszubekommen? 

Ich hatte bisher die Idee in der erweiterten SQL-Abfrage im Backend am Ende folgendes anzuhängen. 

(SELECT categoryID FROM s_articles_categories WHERE articleID=a.id) as kategorie

Im Anschluss hatte ich versucht in der eigenen Berechnung auf die kategorie zuzugreifen. 

Einfache Variante: 

IF(kategorie=40,2,10) 

Hier bekomme ich dann die Exception, dass die Spalte kategorie nicht zur Verfügung steht. 

Geht das eventuell gar nicht so einfach, wie ich mir das gedacht habe?

Liebe Grüße und vielen Dank

Kevin

Hey Zusammen,

also ich bin hier nun weitergekommen in dem Thema und habe glaube ich nun eine Variante für mich gefunden. Schade ist nur, dass die allgemeine Einstellung Versandkostenfrei ab 99€ nicht mehr genutzt werden kann, da unsere Rechnung dann nich aufgeht :) 

Für alle die es interessiert anbei noch eine Info zur kompletten Anforderung und meiner aktuellen eigenen Berechnung. 

Verbesserungswünsche oder Vorschläge gerne erwünscht ;) 

Anforderung: 

Generell werden im Shop nur Weine verkauft. Es gilt eine einfache Versandkostenregel. Bis 99€ kostet der Versand 6€. Über 99€ frei Haus. 
Zusätzlich werden im Shop physische Gutscheine verkauft (in drei Kategorien) 
Diese sollen zusätzlich in den Versandkosten mit 2,50€ veranschlagt werden und das auch nur 1x, sofern ein Kunde zwei Gutscheine in den Warenkorb legt. 

Daher ergaben sich für mich folgende Fälle: 

  • Nur Gutscheine im Warenkorb -> 2,50€
  • Gemischter Warenkorb und Warenwert unter 99€ -> 8,50€
  • Gemischer Warenkorb und Warenwert über 99€ -> 2,50€
  • Nur Weine im Warenkorb und Warenwert unter 99€ -> 6,00€
  • Nur Weine im Warenkorb und Warenwert über 99€ -> 0,00

Hieraus ergab sich folgende eigenen Berechnung, die irgendwie viel viel zu lang aussieht :slight_smile:

IF(MIN((SELECT 1 FROM s_articles_categories WHERE articleID=a.id AND categoryID IN(40,442,443))),IF(SUM(b.quantity*b.price)>99,2.5,IF(MIN((SELECT distinct 1 FROM s_articles_categories WHERE articleID=a.id AND categoryID NOT IN(40,442,443))),8.5,2.5)),IF(SUM(b.quantity*b.price)>99,0,6))

Über ein paar Tipps hierzu würde ich mich freuen… Performance hierzu sah in meinem Testsystem gut aus. Konnte hier nichts feststellen, was die Verarbeitung im Checkout wirklich verlangsamt… Dennoch scheint das mir hier so ein bisschen zu kompliziert zu sein. 

Liebe Grüße

Kevin