[gelöst] Versandkosten nach Länge berechnen - wie abfrage?

Hallole! Unsere Produkte haben in einigen Kategorien eine Länge eingetraten, und nun möchte ich fuer die Länge eine Versandkostestaffelung anlegen Dazu muss ich ja die Staffelung anlegen bei den Versandkosten und dann bei den Grundeinstellungen die SQL Abfrage generieren. Die Beispiel-SQL Abfrage, das bezieht sich auf den WHERE Teil der SQL-Abfrage oder? Irgendwie krieg ich das nicht auf die Reihe, wie das aussehen muss. Also die Staffelung nach der Länge. Die Länge ist in der Tabelle s_articles_details, Feld length. Ich habe eingetragen: MAX(s_articles_details.length) Das produziert aber folgenden Fehler Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. SQLSTATE[42S22]: Column not found: 1054 Unknown column 's\_articles\_details.length' in 'field list' in Zend/Db/Statement/Pdo.php on line 234 Was mach ich hier falsch?

Hi, kennst du folgenden Wiki Beitrag schon: http://wiki.shopware.de/Versandkosten-e … l_672.html Eventuell kann dieser dir weiterhelfen.

Danke! Ja den kannte ich schon. Mir fehlt es aber noch am allgemeinen Verständnis, da ich zwar mittelmässiges wissen ueber SQL habe, aber jetzt den Bezug irgendwie nicht herstellen kann. An welcher Stelle in der SQL-Abfrage kommt denn der Bezug zu der Staffelung? Welcher Teil der gesamten SQL Abfrage ist der einzutragende SQL-Befehl?

Hi, du möchtest also eine komplexe Berechnung? Also Versandkosten nach Länge berechnen und dann auch noch eine Staffel? Ich denke mit solch einer Anfrage solltest du dich an besten an einen Partner wenden. http://www.shopware.de/partner/ueberblick/ Aber vielleicht kann dir hier noch ein User einen Tipp geben… Gruß Patrick

Hallo! Hmm vielleicht verstehe ich nur etwas falsch. Ich dachte nicht dass das was ich machen möchte komplex ist? Meine Artikel haben verschiedene Längen. Ich habe eine Staffelung als Versandkosten mit den Grenzwerten bei den Längen eingetragen: Und nun sollte die SQL Abfrage die Länge mit der Staffelung vergleichen und die entsprechenden Kosten ausgeben. Ist das kompliziert? Eigentlich ist es doch simpel, mir fehlt es nur an Hintergrundwissen, wie Shopware den Abfrageteil, den ich schreibe, mit der tatsächlichen SQL Abfrage verknuepft?

Hi, wenn du eigene Berechnung wählst, dann musst du diese eigene Berechnung in den erweiterten Einstellungen vornehmen. Einen Link zu einigen Beispielen habe ich dir oben ja schon gegeben. Gruß Patrick

Ja danke dir vielmals fuer deine Antworten. Aber das weiss ich ja schon unnd genau an dieser eigenen Berechnung scheitert es bei mir. Wie ganz zuerst in der Fehlermeldung ja schon erwähnt.

Wuerde an der Stelle gerne nochmal nachfragen, kennt denn jemand die entsprechende Stelle im Code, in der diese SQL Abfrage generiert wird, oder in welchen Ordner ich das eventuell finden könnte?

Ich wuerde mich hier wirklich ueber Tipps von anderen Usern freuen. Wer hat denn schon die eigene Berechnung bei den Versandkosten erfolgreich angewandt? Ich finde es echt schade das die Dokumentation so duerftig ist. Ich vermute, das bei der eigenen Abfrage der Buchstabe „d“ fuer die Artikeltabelle steht, da bei der Palettenberechnug diese mit Gewicht angesprochen wurde CEIL(SUM(d.weight\*b.quantity)/750) Ich habe es mit verschiedenen Versionen wieder probiert, darunter: MAX(d.length) Aber es hilft nicht. Die Längen sind fuer das Produkt auch im Backend eingepflegt. Das ist ein Verständnisproblem bei mir. Ich nehme an, der Teil den man ins Backend einträgt, ist der WHERE Teil der SQL Abfrage. Aber nur zum Teil, sozusagen die erste Bedingung, da hier fehlt, wie denn die Angabe aus dem Backend mit der Staffelung in den Versandkosten verglichen wird. Freue mich ueber jeden Kommentar hierzu!

Das Problem ist, dass Du zwei Logiken mischen willst, die durch die Berechnung nach “Eigene Berechnung” nicht mehr komplett berücksichtigt werden. Das Beispiel von Shopware… CEIL(SUM(d.weight\*b.quantity)/750) … funktioniert doch für dich nur, insofern Du die Versandkosten nach cm abrechnest. Das hat mit der eigentlichen “Staffel” aus dem Modul halt nichts mehr zutun. Beim Shopware Beispiel werden für alle 750 Kg pauschal 50 € abgerechnet, die halt im Tab Versandkosten in der ersten Zeile eingetragen werden. Wenn Du jetzt sagst, Du willst für alle 10 cm 5 € nehmen, dann könntest Du den Beispiel-Code für Dich anpassen. Ich weiss die Spaltennamen gerade auch nicht auswendig, würde aber noch mal nachsehen, insofern diese Lösung für Dich darstellbar ist. Wieso jetzt ein Faktor von 5000 nötig ist, erschließt sich mir nun auch gerade nicht. Grüße Emtii

1 „Gefällt mir“

Dank dir so viel! Zumindest etwas Licht in dieses truebe dunkel! Das Beispiel mit den 5 Euro fuer 10 cm geht leider in meinem Falle garnicht. Also versteh ich das richtig, es ist garnicht möglich, die Staffelung im Versandkosten Modul mit der eigenen Berechnung zu verwenden? Was ich ja erreichen möchte: Produkt a - Länge 500 cm Produkt a1 - Länge 1000 cm Produkt a2 - Länge 3000 cm Versandkosten: bis 900 cm - 5 Euro bis 2500 cm - 8 Euro ab 2501 cm - 10 Euro Ist das in Shopware garnicht lösbar?

Und hier wuerde ich mich sehr ueber eine Aussage freuen, ob das ueberhaupt möglich ist, denn (eigene Berechnung nicht mit Staffelung verwendbar?) von der Aufstellung selbst könnte man sich das schon denken, und wenn dem nicht so ist, wäre ja super wenn man das in der Doku erwähnen könnte.

Ich sehe per Default leider keine Möglichkeit, was nicht heisst, dass es sie nicht gibt. Vielleicht hat aber noch jemand anderes eine Idee. Sorry. Grüße Emtii

Dank dir sehr! Vielleicht sagt ja einer vom Team ein kurzes Wörtchen *zum Team schaut und hoffnungsvoll lächelt*

*schubs* noch jemand ideen? Bin leider total ratlos… :frowning:

Hi, also wenn die eigene Berechnung genutzt wird, dann kann die Staffel ja nicht mehr greifen. In der eigenen Berechnung muss dann die Staffel mit einfließen. Das ganze kann dann schon ziemlich komplex werden. Gruß Patrick

Komplex schön und gut, aber wie greift man denn nun auf das Feld Länge in der eigenen Berechnung von Versandkosten zu?

Hallo, standardmäßig wird das Feld nicht mit ausgelesen. Das kannst du z.B. auch sehen, wenn Firebug aktiv ist und das Debug Plugin. Dann siehst du alle verfügbaren Variablen. Das Feld Länge ist dort nicht aufgeführt. Da müsste man also ggf. mit einem Plugin ansetzen, sodass die zusätzlich benötigten Variablen mit abgefragt und zur Verfügung gestellt werden. Ich nehme das mal als Ticket mit auf. Evtl. können wir die Felder im nächsten/übernächsten Update mit berücksichtigen, so dass man auch im Standard via Versandkostenmodul darauf zugreifen kann. Sebastian

Vielen Dank fuer das aufnehmen des Falles! Also ich kenne da noch eine, zwar umständliche, aber machbare Lösung, und zwar ueber die Artikelattribute. Man legt ein neues Feld an, z.B. attr5 als “versandberechnung” und löst dann ueber die eigene Berechnung im Backend. z.B. Versandkosten1, Versandkosten2 und trägt dann in die eigene Berechnung bei den erweiterten Einstellungen: MAX(at.attr5=‘Versandkosten1’) ein. bei dem zweiten fuer die zweite länge dann eben als eigene Berechnung: MAX(at.attr5=‘Versandkosten2’) (ich bin mir net sicher, eigentlich muesste es doch anstatt MAX mit IF auch funktionieren, beim ersten test tats jedenfalls so wie im beispiel) Ist war viel arbeit die Attribute in die Artikel einzupflegen, aber so gings dann. wär natuerlich vieeel schöner wenn man im Modul direkt angeben könnte: “Versandkostenberechnung nach: Artikel attribut oder Feld” und dann direkt mit der Staffelung vergleichen Nachtrag Problem endlich gelöst, frage mich warum ich nicht viel frueher darauf gekommen bin. Habe einfach das "Gewicht"sfeld missbraucht und in das Längen-Feld “umgewandelt”, sprich die Längen als Gewichte eingetragen, dann ein zusätzliches Attributsfeld angelegt, wie im Wiki-Beispiel mit der Spedition, dann eine Versandkostenstaffelung gemacht die bei dem Attributsfeld greift und die Staffelung je nach dem umgewandelten Gewicht macht. Eigentlich total simpel… Anleitung dazu gibts hier…