Versandkostenart nach Produktmaßen

Hallo, ich benötige Unterstützung bei der Auswahl der Versandkostenart. Ich habe versucht die mit folgender Dokumentation zu lösen:

http://community.shopware.com/Individuelle-Versandkosten-Bedingungen-und-Berechnungen_detail_1933.html

… Leider habe ich so meine Probleme damit.

 

Ich habe bisher zwei Ansätze verfolgt:

  1. Ich möchte, dass bei einm Artikel mit einer Länge von z.B.: 999 cm die Ausweichversandart “Speditionsversand” ausgewählt wird. Außerdem möchte ich erreichen wenn der Artikel eine Länge von 9999 cm hat, dass dann die Versandkosten 19,90 € betragen.

Dies wollte ich so umsetzten:

Erweiterte Einstellungen des Speditionsversandes / Feld “Eigene Berechnungen”: 

IF(d.length > 9998, 19.90,0.00) 

Leider wirde jetzt auch bei allen anderen Artikeln diese Ausweichversandart selektiert.

Den zweiten Ansatz den ich verfolgt habe, ist zwar nicht so schön, wäre aber gerade noch aktzeptabel gewesen:

Ich habe zwei Freitextfelder generiert (Speditionsversand1 und Speditionsversand2), nun habe ich eine SQL Erweiterung im Versandkostenmodul hinterlegt:

, MAX(at.attr6="1") AS Speditionsversand1, MAX(at.attr7="1") AS Speditionsversand2

Im Feld Eigene Bedingungen steht dann noch

Speditionsversand1="1"

oder je nach dem um welchen Artikel es sich handelt:

Speditionsversand2="1"

Leider öffnet sich danach der Warenkorb gar nicht mehr…

 

Hat jemand einen Lösungsvorschlag für mich wie ich dies bewerkstelligen kann?

 

Danke für jeden Hinweis

 

CaT

 

 

Hallo!

Zu erst einmal nicht als Ausweichversandart definieren.

Du musst dann bei deiner normalen Versandart auch was definieren. Also da muss eine Logik rein, damit der Shop das kapiert.

Das heisst: Bei Standardversand Länge von z.b von 1 bis 9998 m eintragen

Dann nimmt er die Versandart nicht mehr für alle Artikel sondern nur ab 9999 m.

So konnten wir das gleiche Problem bezogen auf Gewicht lösen.

Leider kann ich bei deinem Problem nicht behilflich sein, da ich selber mit der Einrichtung der Versandoption zu kämpfen habe.

Bei mir werden dauerhaft 0,00€ Versandkosten im Warenkorb angezeigt, obwohl hier klare Regel festgelegt wurden.

Einstellung bei mir:

Kundengruppe: Händler

Versandkosten berechnen nach Gewicht

Versandkostenfrei ab: nie

Versandarttyp Standart

Zahlungsart Aufschlag immer berechnen

Steuersatz: 7 %

 

Versandkosten

0 - 4,5 = 4,50€

4,6 - 9,5= 5,50€

9,6 - 19= 6,50

20 - höher = 0,00€

 

Erweiterte Einstellung:

Versandkostenfrie Artikel unterstützen

Gewicht: von 20kg - 50kg

Könnt Ihr mir eventuell weiter helfen.

Mit besten Grüßen

 

 

Ich plage mich ebenfalls mit der Versandoption nach MAX(d.length) herum. Ich habe folgende Berechnung angelegt:

IF(d.length <161,0,
IF(d.length <201,15,
IF(d.length <251,25,
IF(d.length <301,40,0))))

Die Berechnung funktioniert, wenn ich nur einen Artikel in den Warenkorb lege. Sobald ich zwei oder mehr Artikel in den Warenkorb lege, werden die Versandkosten auf Basis der Länge der ersten Position im Warenkorb berechnet, nicht aufgrund des längsten Artikels im Warenkorb.

Z.B.

Artikel 1 =200, Artikel 2=250 = 15.- Versandkosten (falsch)
Artikel 1 =250, Artikel 2=200 = 25.- Versandkosten (richtig)

In der erweiterten SQL-Abfrage habe ich
MAX(d.length) AS has_sperrgut
eingegeben und has_sperrgut zusätzlich als Bedingung eingetragen. Das gleiche Problem hab ich aber auch ohne.

 

MAX(d.length) gibt dir die “größte” Länge im Warenkorb zurück. Das funktioniert auch soweit, wie es soll - gerade nochmal getestet.

Dir fehlt bei deinen IF-Bedingungen allerdings überall ein MAX. Sonst hast du halt immer nur die erste Position des Warenkorbes.

IF (MAX(d.length) > 4,4, IF (MAX(d.length) > 0,1,0))

Das gibt bei mir eine 4 zurück, wenn eine der Positionen eine Länge größer 4 hat oder eine 1 wenn die Länge größer 1 ist.

Super, jetzt funktioniert es! Ich habe gestern den ganzen Abend damit verbracht, aber wäre nie auf die Idee gekommen, daß MAX nochmal in das Berechnungsfeld zu schreiben, weil ich es ja schon in die Grundeinstellungen/Storefront/Versandkosten-Modul mit

CAST(MAX(d.length)AS SIGNED) AS has_sperrgut

eingetragen hatte.

Jetzt hab ich folgendes in der eigenen Berechnung stehen:

IF (MAX(d.length) <160,0,
IF (MAX(d.length) <201,15,
IF (MAX(d.length) <251,25,
IF (MAX(d.length) <301,38,0))))

Vielleicht hilft es ja jemandem weiter.
Vielen, vielen Dank nochmal für die Hilfe! Thumb-Up Smile

Guten Tag

würde gerne dieses Thema nochmals aufgreifen. Ich versuche die MAX länge, Breite und Höhe im Warenkorb auszulesen.

Mit folgendem Code wird natürlich immer nur der erste Artikel im Warenkorb ausgelesen.

IF (d.length<100 AND (d.width)<60 AND SUM(d.weight*b.quantity)<30 AND (d.height)<60,10,25)

wenn ich nun die Max auslesen möchte wäre dies nach mir (stimmt dieser Code mit MAX?)

IF MAX(d.length<100 AND MAX(d.width)<60 AND SUM(d.weight*b.quantity)<30 AND MAX(d.height)<60,10,25)

muss ich auch in Grundeinstellungen/Storefront/Versandkosten-Modul folgendes eintragen?

CAST(MAX(d.length)AS SIGNED), CAST(MAX(d.width)AS SIGNED), CAST(MAX(d.height)AS SIGNED)

Vielen Dank.