# Nur der erste Artikel im Warenkorb löst Versandkosten aus

**URL:** <https://forum.shopware.com/t/nur-der-erste-artikel-im-warenkorb-lost-versandkosten-aus/61120>\
**Category:** Programmierung\
**Created:** [16. August 2019 um 05:43 UTC](https://forum.shopware.com/t/nur-der-erste-artikel-im-warenkorb-lost-versandkosten-aus/61120 "2019-08-16T05:43:36Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dschwellenbach](https://avatars.discourse-cdn.com/v4/letter/d/c89c15/32.png) [@dschwellenbach](https://forum.shopware.com/u/dschwellenbach)\
**Post date:** [16. August 2019 um 05:43 UTC](https://forum.shopware.com/t/nur-der-erste-artikel-im-warenkorb-lost-versandkosten-aus/61120/1 "2019-08-16T05:43:36Z")

</div>

Hallo Zusammen,

nachdem wir unsere Versandkosten für Langgüter endlich soweit am Laufen haben, haben wir nun folgendes Problem:

Die Versandkosten werden nach Länge&Breite berechnet - jedoch wird nur der erste Artikel im Warenkorb berücksichtigt.

Code:

IF ((d.length \>&nbsp; 3 AND d.length &nbsp; 3 AND d.width IF((d.length \>&nbsp; 4 AND d.length &nbsp; 4 AND d.width IF((d.length \>&nbsp; 5 AND d.length&nbsp; &nbsp; 5 AND d.width )))

&nbsp;

Jemand eine Idee wie ich den Code umbauen muss?

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [16. August 2019 um 06:15 UTC](https://forum.shopware.com/t/nur-der-erste-artikel-im-warenkorb-lost-versandkosten-aus/61120/2 "2019-08-16T06:15:11Z")

</div>

Sollen denn die Kosten pro Artikel angerechnet werden? Dann musst du ein SUM() drumherum machen.

Das SUM heißt eigentlich nur, dass alle Positionen genommen werden und addiert.

Ansonsten musst du mit MAX() bei den einzelnen Abfragen arbeiten.

---

<div class="post-metadata">

**Author:** ![dschwellenbach](https://avatars.discourse-cdn.com/v4/letter/d/c89c15/32.png) [@dschwellenbach](https://forum.shopware.com/u/dschwellenbach)\
**Post date:** [16. August 2019 um 06:18 UTC](https://forum.shopware.com/t/nur-der-erste-artikel-im-warenkorb-lost-versandkosten-aus/61120/3 "2019-08-16T06:18:21Z")

</div>

IF((MAX(d.length) \> 3 AND MAX(d.length) \< 4) OR (MAX(d.width) \>&nbsp; 3 AND MAX(d.width)

IF((MAX(d.length) \> 4 AND MAX(d.length) \< 5) OR (MAX(d.width) \>&nbsp; 4 AND MAX(d.width)

IF((MAX(d.length) \> 5 AND MAX(d.length) \< 10) OR (MAX(d.width) \>&nbsp; 5 AND MAX(d.width)

)))

&nbsp;

So hab ich es jetzt aufgebaut…aber scheint immernoch nicht so richtig zu funktionieren

---

<div class="post-metadata">

**Author:** ![dschwellenbach](https://avatars.discourse-cdn.com/v4/letter/d/c89c15/32.png) [@dschwellenbach](https://forum.shopware.com/u/dschwellenbach)\
**Post date:** [16. August 2019 um 07:15 UTC](https://forum.shopware.com/t/nur-der-erste-artikel-im-warenkorb-lost-versandkosten-aus/61120/4 "2019-08-16T07:15:11Z")

</div>

Also die Formel funktioniert jetzt… folgendes Problem haben wir jetzt noch… Wenn ein Artikel kleiner als 3Meter ist muss das Gesamtgewicht berechnet werden - dort haben wir jetzt folgende Formel hinterlegt:

&nbsp;

IF((MAX(d.length) \> 3 AND MAX(d.length) \< 4) OR (MAX(d.width) \>&nbsp; 3 AND MAX(d.width)

IF((MAX(d.length) \> 4 AND MAX(d.length) \< 5) OR (MAX(d.width) \>&nbsp; 4 AND MAX(d.width)

IF((MAX(d.length) \> 5 AND MAX(d.length) \< 10) OR (MAX(d.width) \>&nbsp; 5 AND MAX(d.width)

IF((SUM(d.weight) \> 31.5 AND SUM(d.weight) \< 100), 31.50,

IF((SUM(d.weight) \> 100 AND SUM(d.weight) \< 200), 38.85,

IF((SUM(d.weight) \> 200 AND SUM(d.weight) \< 300), 50.40,0

))))))

Hier gibt er aber bei einem Artikel unter 3m den Wert 0 bei den Versandkosten aus

Irgendwie kommen wir hier nicht mehr weiter…

---

<div class="post-metadata">

**Author:** ![gfittings](https://avatars.discourse-cdn.com/v4/letter/g/34f0e0/32.png) [@gfittings](https://forum.shopware.com/u/gfittings)\
**Post date:** [9. März 2020 um 19:50 UTC](https://forum.shopware.com/t/nur-der-erste-artikel-im-warenkorb-lost-versandkosten-aus/61120/5 "2020-03-09T19:50:10Z")

</div>

Hallo, kann mir jemand bei meiner Abfrage behilflich sein:&nbsp;

Es soll geprüft werden ob Länge oder Breite oder Höhe \< 1000, dann 10 euro,

anschl. wenn&nbsp;Länge oder Breite oder Höhe \< 1500, dann 20 euro,

anschl. wenn&nbsp;Länge oder Breite oder Höhe \< 2500, dann 30 euro,

Es ist nat. auch kombinationen möglich, länge unter 1500 und breite evtl. über 2500 – dann soll er den aufschlag von den mehr als 2500 nehmen …

Komme einfach nicht weiter … ☹

Bisher:

IF((MAX(d.length) \> 0 AND MAX(d.length) \< 1000) OR (MAX(d.width) \> 0) AND (MAX(d.width) \< 1000) OR (MAX(d.height) \> 0) AND (MAX(d.height) \< 1000), 5,&nbsp;  
IF((MAX(d.length) \> 1000 AND MAX(d.length) \< 1500) OR (MAX(d.width) \> 1000) AND (MAX(d.width) \< 1500) OR (MAX(d.height) \> 1000) AND (MAX(d.height) \< 1500), 10, 0))
