Versandkosten - Eigene Bedingung & Berechnung

Hallo zusammen,

vielleicht kann mir jemand etwas unter die Arme greifen. :slight_smile:

Hier mal die eigene Berechnung:

IF(
  SUM(IF(at.attr4 != '1',b.price*b.quantity,0)) < 600,
    SUM(
       IF(at.attr5 != '', at.attr5*b.quantity,
       IF(d.weight*b.quantity < 3, 3.50,
       IF(d.weight*b.quantity < 5, 5.95,
       IF(d.weight*b.quantity < 10, 8.50,
       IF(d.weight*b.quantity < 15, 11.90,
       IF(d.weight*b.quantity < 20, 20.50,
       IF(d.weight*b.quantity < 30, 24.63,
       IF(d.weight*b.quantity < 40, 30.11,
       IF(d.weight*b.quantity < 50, 33.94,
       IF(d.weight*b.quantity < 60, 39.69,
       IF(d.weight*b.quantity < 70, 43.76,
       IF(d.weight*b.quantity < 80, 47.76,
       IF(d.weight*b.quantity < 90, 50.91,
       IF(d.weight*b.quantity < 100, 65,
       IF(d.weight*b.quantity < 120, 69.52,
       IF(d.weight*b.quantity < 140, 76.09,
       IF(d.weight*b.quantity < 160, 86.11,
       89
       )))))))))))))))))
    ), 0)

at.attr4 ist ein Boolean, welches aktiv ist, wenn der Versand immer berechnet werden soll.
at.attr5 ist ein Einfacher Text, welcher individuelle Versandkosten beinhalten kann.

Der Part “SUM(IF(at.attr4 != ‘1’,b.price*b.quantity,0)) < 600”, soll nur den Warenwert von den Produkten berechnen, welcher nicht “immer Versand” kostet und falls der Wert unter 600 € ist soll das Gewicht*Anzahl bis 89 € jeweils den bestimmten Versandbetrag ergeben. Falls der Warenwert dann 600 € übersteigt sollen die Versandkosten 0 sein bzw. nur noch die berechnet werden, welche das Flag “immer Versand” haben.

Was leider nicht funktioniert, wenn der Preis ohne das Flag “immer Vesand” die 600 € Warenwert übersteigt.

Ich bleib weiter dran, aber vielleicht fällt jmd etwas ins Auge was mir hilft?

VG und Danke

 

IF(
SUM(IF(at.attr4 != ‚1‘,b.price*b.quantity,0)) < 600,

), 0)

Ich denke, dass diese Abfrage das Problem ist. Du prüfst für alle Artikel die attr4 != 1 haben, ob der Wert kleiner 600 ist. Wenn er größer ist, ist der Warenkorb 0€.
Müsstest du da statt der 0 dann nicht deine Berechnung durchführen, die greifen soll, wenn es mehr als 600€ sind?

Vielleicht hab ich’s ein wenig ungünstig formuliert. :slight_smile:

Folgende Freitextfelder stehen im Artikel zu Verfügung:

Versand immer: Ja|Nein
Individueller Versand: 75.00

Der Versand der Standard-Produkte wird nach Gewicht berechnet bis zu einer Warengesamtsumme von 600 €. Ab dann wird der Versand kostenlos.

Es gibt aber „Produkte, welche immer Versand kosten“, unabhängig vom Preis. Deswegen soll eine Warengesamtsumme ohne diese Produkte berechnet werden.

D. h. wenn „Versand immer“ nicht angehakt wird at.attr4 != ‘1’, soll mit b.price*b.quantity die Gesamtsumme ohne die Produkte, welche immer kosten berechnet werden. Hier soll bei der Warengesamtsumme abgefragt werden, ob sie unter 600 € ist und falls das der Fall ist, wird der Versand 0 €.

Bzw. wäre das mit 0 € Versand der erste Schritt für die Standard-Produkte, weil dann die „Produkte, welche immer Versand kosten“ noch aufaddiert werden sollen. Z. B. 0 + SUM(IF(at.attr5 != ‘’, at.attr5*b.quantity))

Ich hoffe ich konnte mich verständlicher ausdrücken. :slight_smile:

VG und Danke

Ich würde das gerne nochmal aufgreifen. Leider habe ich noch keine passable Lösung gefunden.
Seit kurzem werden die Versandkosten jetzt auch aufgerundet, was ich nicht ganz verstehe.

Was in der Konstellation wie oben angegeben funktioniert, ist das ab 600 € keine Versandkosten berechnet werden. Das ist bei Produkten, welche nach Gewicht berechnet werden ok. Leider werden die Versandkosten wohl auf jedes Produkt einzeln gerechnet… D. h. habe ich zwei verschiedne Artikel im Warenkorb und ist man bei einem Gesamtgewicht von z. B. 121kg, sollten es 76,09 € sein. Es wird aber wohl jeder Artikel separat berechnet und man ist schon über den maximalen Versandkosten von 89 € drüber. Ab 600 € sind wieder keine Versandkosten, was ok ist.

Die Lösung für die “Versand immer: Ja” steht auch noch aus.

Werde weiter berichten, aber falls jemand etwas ähnliches schon mal hatte, wäre ich für Hinweise sehr dankbar! :slight_smile: VG