Hallo Liebes Shopware-Forum,
ich hänge aktuell an einem Problem mit dem Versandkosten-Modul.
Ausgangssituation: Gefahrgut-Produkte und Mischwarenkörbe benötigen eine eigene Versandart.
Ich habe auf Basis der Dokumentation ein Checkbox-Freitextfeld mit dem Namen ‚gefahrgut‘ erstellt und in der SQL-Abfrage des Versandkosten-Moduls eine Abfrage erstellt und diese Bedingung dafür in der Versandart hinterlegt. Das hat alles einwandfrei funktioniert. Sobald die Checkbox ausgewählt war, wurde das Produkt als Gefahrgut gekennzeichnet und sobald der Warenkorb eines oder mehrere dieser Produkte beinhaltet, wurde auch die entsprechende Versandart ausgegeben.
Folgende Abfrage habe ich in das Modul geschrieben:
MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, Min(gefahrgut='1') as gefahrgut, Max(gefahrgut='1') as mischkorb
In der Versandart steht folgende Bedingung:
gefahrgut && mischkorb
Neue Bedingung: Statt Checkbox nun ein Varchar-Freitextfeld mit Wert übertragen aus SAP
Nun kommt allerdings die o.g. Bedingung dazu. Das Varchar-Freitextfeld mit gleichem Namen wird über einen Import mit Daten befüllt. Sobald dieses Feld einen Wert hat, soll das Produkt als Gefahrgut gekennzeichnet werden und die entsprechende Versandart ausgegeben werden.
Umsetzung:
Ich habe probiert, die neue Anforderung über Anfragen verschiedener Art umzusetzen, leider ohne Erfolg. Es werden weiterhin die Versandarten ausgegeben, welche für den Versand von normalen Produkten vorgesehen sind.
Folgende Variationen habe ich, nach Recherche im Forum und Doku, genutzt:
MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, Min(gefahrgut='1') as gefahrgut, Max(gefahrgut='1') as mischkorb
MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, MAX(at.gefahrgut=“true”) as gefahrgut
MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, MAX(at.gefahrgut) as gefahrgut
MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, MAX(at.gefahrgut="true") as "gefahrgut"
Die Bedingung in den Versandarten habe ich nicht verändert. Ist es mit Varchar-Feldern überhaupt so möglich? Oder muss ich eine Checkbox nutzen?
Ich stehe wohl ein wenig auf dem Schlauch, leider finde ich keine Möglichkeit es zu lösen und habe auch keine Idee, warum es nicht funktioniert.
Ich würde mich über einen Schubs in die richtige Richtung freuen.