Hallo! Wir versenden Rohr und Stangenmaterial bis zu 6 metern länge. Dazu muss man den verschiedenen Längen verschiedene Versandkosten geben. Da ich bei dem Versandkosten-Modul nicht direkt ueber die Länge arbeiten kann, dachte ich mir, ich arbeite ueber das Attributsfeld. (attr5) Laut wiki ist es ja möglich. Also habe ich mir 3 verschiedene Versandkosten angelegt, mit folgenden Einstellungen: - Standard versandart - eigene Berechnung - nie versandkostenfrei Bei eigene Berechnung habe ich folgendes eingetragen: Versandkosten 1 = MAX(at.attr5=‚stabv1‘) Versandkosten 2 = MAX(at.attr5=‚stabv2‘) Versandkosten 3 = MAX(at.attr5=‚stabv3‘) So, all das Stangenmaterial hat dieses Attributsfeld mit der entsprechenden Bezeichnung bekommen. Das Problem ist aber, wenn ich jetzt ein solches Stangenmaterial in den Warenkorb lege, bekomme ich immer bei der Versandart 1 und 2 als auswahl. Auch wenn ich ein solche Stange einlege, die das attr5 garnicht ausgefuellt hat (stangen unter 2m gehen mit paket) Ich vermute das es am MAX liegt. Aber wenn ich eingebe IF(at.attr… lädt der warenkorb garnicht sondern hängt in einer endlosschleife fest. Es ist wirklich frustrierend, seit Monaten versuche ich schon eine Lösung zu bekommen, habe auch bei diversen Partnern nachgefragt aber anscheinend bin ich kein profitabler Kunde fuer so eine simple SQL abfrage, denn niemand wollte sich mir annehmen, bzw hab nochmal nachgefragt, da kam keine Antwort. Ich kann Shopware fuer unerfahrene Shopbesitzer absolut nicht empfehlen, wenn man nur irgendwelche Sonderlösungen braucht (und sich nicht eine agentur leisten kann), ist man aufgeschmissen (dies nur mein subjektives gefuehl)
*hochschubs* Also gut, nochmal von vorne. Sollte dies so korrekt sein? Ich habe das Attributsfeld 5 neu angelegt. Die Artikel-varianten haben jeweils den korrekten Code fuer die Versandart angelegt. Von stabv1 bis stabv3 entsprechend den jeweiligen Längen (als Tipp, in excel mit formularen arbeiten, dann formular nach unten ausfuellen, und die CSV hochladen, geht fix) Im Versandkosten-Modul in den eigenen Bedingungen folgende Abfrage eingetragen: MAX(a.topseller) AS has\_topseller, MAX(at.attr3) AS has\_comment, MAX(b.esdarticle) AS has\_esd, MAX(at.attr5="true") AS attribut
Dann bei den jeweiligen Versandkosten als „eigene Bedingung“ das entsprechende stabvX in das feld eingetragen. Wenn ich aber nun einen Artikel in den Warenkorb lege, bei dem die dritte Versandart aktiviert werden sollte, also stabv3, erhalte ich folgende Fehlermeldung: Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. SQLSTATE[42S22]: Column not found: 1054 Unknown column 'stabv1' in 'where clause' in Zend/Db/Statement/Pdo.php on line 234 Stack trace: #0 Zend/Db/Statement.php(300): Zend\_Db\_Statement\_Pdo-\>\_execute(Array) #1 Zend/Db/Adapter/Abstract.php(479): Zend\_Db\_Statement-\>execute(Array) #2 Zend/Db/Adapter/Pdo/Abstract.php(238): Zend\_Db\_Adapter\_Abstract-\>query('????SELECT?????...', Array) #3 Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend\_Db\_Adapter\_Pdo\_Abstract-\>query('????SELECT?????...', Array) #4 Enlight/Components/Adodb.php(324): Enlight\_Components\_Db\_Adapter\_Pdo\_Mysql-\>query('????SELECT?????...', Array) #5 engine/core/class/sAdmin.php(3326): Enlight\_Components\_Adodb-\>GetAssoc('????SELECT?????...') #6 engine/core/class/sAdmin.php(2271): sAdmin-\>sGetPremiumDispatches(2) #7 Shopware/Controllers/Frontend/Checkout.php(1022): sAdmin-\>sGetDispatches(2) #8 Shopware/Controllers/Frontend/Checkout.php(113): Shopware\_Controllers\_Frontend\_Checkout-\>getSelectedDispatch() #9 Enlight/Controller/Action.php(135): Shopware\_Controllers\_Frontend\_Checkout-\>cartAction() #10 Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('cartAction') #11 Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #12 Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #13 Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #14 shopware.php(74): Enlight\_Application-\>run() #15 {main}
Nach der Logik kann das so ja nicht funktionieren. Das Attr5 ist ja keine checkbox, sondern ein textfeld und kann kein true beinhalten. Wie muss denn die Abfrage aussehen, damit der Inhalt des Textfeldes (attr5) aus der eigenen Bedinungung bei den Versandkosten abgeglichen wird??? Und wieso bemängelt die SQL Abfrage das Fehlende Column ‚stabv1‘ obwohl es garnicht um den stabv1 ging???
*pfeif* *unauffällighochschubs* Da die SQL-Abfrage versucht, das stabv1 (sollte aber stabv3 sein?? *kopfkratz*) als Column anzusehen, meine ich, muss dann in die erweiterte Bedinungung attr5 rein? D.h. ich muss aber fuer jede Versandart dann eine eigene Berechnung bei eigene Berechnung eintragen… denk ich mal *redmitmirselbst* Hier wäre dann wirklich wunderbar wenn ich eine kurze klitzekleine minischnelle aussage vom Shopware-Team bekommen könnte, warum es denn 2 verschiedene eingabefelder fuer die eigene Berechnung gibt, und was der unterschied bei den beiden ist *diehoffnungnetaufgeb*
Nugut. Also endlich habe ich mal einen Erfolg verzeichnet. Das Tutorial, um die Versandkosten je Artikel abzubilden, (hier) funktioniert. Die Umsetzung ist bissle schwer, aber wenn man genug Kaffee intus hat und die Konzentration bei 100%, geht es. Es funktioniert auch, die Versandkosten (in dem Beispiel) sich nicht verdoppeln zu lassen, wenn man aus der Erweiterten Berechnung das *quantity entfernt, also: SUM(at.attr5) (wie beim speditionsversand) Was ich ja jetzt nun möchte, ist nicht die Versandkosten pro Artikel in den Backend einzutragen, sondern dem Artikel einen bestimmten Keyword mitgeben, und die Versandkosten im Modul selbst einzutragen. Weil das einfach unglaublich nervig wird, wenn sich nun eine Versandkostenart im Preis ändert, weil man das dann in hunderten von Varianten neu eintragen darf (ja ich weiss CSV, dennoch nervig). Weil wir auch in mehrere Länder versenden, und ich dann fuer die anderen Länder weitere Attributsfelder anlegen darf. Momentan gehts, aber sollten mal mehrere Länder dazukommen, oh weh… Nachtrag: Endlich gelöst, Anleitung dazu gibts hier…