# Eigene Versandkostenberechnung

**URL:** <https://forum.shopware.com/t/eigene-versandkostenberechnung/51598>\
**Category:** Programmierung\
**Created:** [7. März 2018 um 14:34 UTC](https://forum.shopware.com/t/eigene-versandkostenberechnung/51598 "2018-03-07T14:34:31Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![tobivan](https://avatars.discourse-cdn.com/v4/letter/t/f08c70/32.png) [@tobivan](https://forum.shopware.com/u/tobivan)\
**Post date:** [7. März 2018 um 14:34 UTC](https://forum.shopware.com/t/eigene-versandkostenberechnung/51598/1 "2018-03-07T14:34:31Z")

</div>

Hallo Zusammen!  
Habe folgendes Problem mit Versandkostenberechnung:  
Versandkosten ab 150 € frei sonst 6.99€  
dann gibt es 6 verschiedene Sperrgutartikel und dazugehörige Versandkosten  
sperrgut 1 - 10€,&nbsp;​sperrgut 2 - 20€,&nbsp;​sperrgut 3&nbsp;- 30€,&nbsp;​sperrgut 4&nbsp;- 40€,&nbsp;​sperrgut 5&nbsp;- 50€,&nbsp;​sperrgut 6&nbsp;- 60€  
diese sperrgutartikel werden bei den einzelnen artikeln über ein freitextfeld gesetzt.  
Wenn ein “nicht” sperrgutartikel im Warenkorb ist und unter 150 € sollen trotzdem zu den sperrgutartikeln die 6,99 € versandkosten addiert werden.  
Wenn mehrere Sperrgutartikel im Warenkorb sind sollen alle addiert werden.

Ich habe Freitextfelder angelegt und wollte das über eigene Berechnungen lösen - scheitere aber irgendwie an der if und sum abfrage

Achja und dann gibt es noch einen Sonderfall.  
Das sperrgut 7 (wird auf über freitextfeld bei den artikel markiert) - das soll nur über besonderen transport geliefert werden mit einem hinweis im warenkorb oder alternative selbstabholung. (bei versand) - auch wenn andere artikel sich im Warenkorb zusätzlich befinden.

Da beisst es jetzt komplett aus wie ich das umsetzen kann.

Danke für Hilfe!!! Ihr seid die Besten 😉  
&nbsp;

---

<div class="post-metadata">

**Author:** ![enerSpace](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/enerspace/32/13552_2.png) [@enerSpace](https://forum.shopware.com/u/enerSpace)\
**Post date:** [7. März 2018 um 17:30 UTC](https://forum.shopware.com/t/eigene-versandkostenberechnung/51598/2 "2018-03-07T17:30:34Z")

</div>

Hallo @tobivan‍,

hast du dir meinen Artikel hier:&nbsp;[https://forum.shopware.com/discussion/comment/217512/#Comment\_217512](https://forum.shopware.com/discussion/comment/217512/#Comment_217512) schon einmal genauer angesehen? Das wurde von einer Sperrgutberechnung abgeleitet. Vielleicht helfen dir hier die Ansätze weiter.

VG

![image](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/bb8958d17f9f7c07e111287f43ec676d699d0799.png)  
enerSpace Webhosting  
Tel.: +49 511 - 219 568 76 | Web:&nbsp;[https://www.enerspace.de](https://www.enerspace.de/)

---

<div class="post-metadata">

**Author:** ![tobivan](https://avatars.discourse-cdn.com/v4/letter/t/f08c70/32.png) [@tobivan](https://forum.shopware.com/u/tobivan)\
**Post date:** [8. März 2018 um 10:57 UTC](https://forum.shopware.com/t/eigene-versandkostenberechnung/51598/3 "2018-03-08T10:57:22Z")

</div>

Danke,&nbsp;

naja soweit konnte ich das schon lösen - ich habe die ganzen Sperrgutartikel aufsummiert.  
IF(SUM(IF(at.attr6=‘1’,b.quantity,0))\*10)+(SUM(IF(at.attr7=‘1’,b.quantity,0))\*20)+(SUM(IF(at.attr8=‘1’,b.quantity,0))\*30)+(SUM(IF(at.attr9=‘1’,b.quantity,0))\*40)+(SUM(IF(at.attr10=‘1’,b.quantity,0))\*50)+(SUM(IF(at.attr11=‘1’,b.quantity,0))\*60)

Das geht auch

Aber wie kann ich jetzt die Abfrage machen, dass er noch&nbsp;Versandkosten in Höhe von 6.99 € dazurechnet wenn noch andere nicht sperrgutartikel im warenkorb sind bzw. andere nicht sperrgutartikel ab 150€ versandkostenfrei wären (ohne dass ich für diese artikel ein eigenes freitextfeld mache und diese extra markiere)

Abgesehen von diesem Problem noch&nbsp; 😉  
“Das sperrgut 7 (wird auf über freitextfeld bei den artikel markiert) - das soll nur über besonderen transport geliefert werden mit einem hinweis im warenkorb oder alternative selbstabholung. (bei versand) - auch wenn andere artikel sich im Warenkorb zusätzlich befinden.”

&nbsp;

---

<div class="post-metadata">

**Author:** ![enerSpace](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/enerspace/32/13552_2.png) [@enerSpace](https://forum.shopware.com/u/enerSpace)\
**Post date:** [8. März 2018 um 11:31 UTC](https://forum.shopware.com/t/eigene-versandkostenberechnung/51598/4 "2018-03-08T11:31:23Z")

</div>

Hallo @tobivan‍,

Kann es sein, dass deine Regel nicht ganz komplett hier angekommen ist? Da ist ein offenes IF ohne Abschluss.

Du kannst mal versuchen, die folgende Regel mit anzuhängen:

```
+SUM(IF(at.attr6!="1" and at.attr7!="1" and at.attr8!="1" and at.attr9!="1" and at.attr10!="1" and at.attr11!="1",IF(b.price < "150","6.99",0),0))

```

Wobei bei der Formel nur davon ausgegangen wird, dass ein einzelner Artikel Versandkostenfrei wäre, wenn dieser mehr als 150 € kostet. Andernfalls musst du quantity mit einbeziehen:

```
+SUM(IF(at.attr6!="1" and at.attr7!="1" and at.attr8!="1" and at.attr9!="1" and at.attr10!="1" and at.attr11!="1",IF(b.quantity*b.price < "150","6.99",0),0))

```

Zweiteres musst du mit der Tempaltebasis lösen. Weisst du wie das geht?

_EDIT: Regeln angepasst und getestet. Vorherige waren fehlerhaft._

VG

![image](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/bb8958d17f9f7c07e111287f43ec676d699d0799.png)  
enerSpace Webhosting  
Tel.: +49 511 - 219 568 76 | Web:&nbsp;[https://www.enerspace.de](https://www.enerspace.de/)

---

<div class="post-metadata">

**Author:** ![tobivan](https://avatars.discourse-cdn.com/v4/letter/t/f08c70/32.png) [@tobivan](https://forum.shopware.com/u/tobivan)\
**Post date:** [8. März 2018 um 14:55 UTC](https://forum.shopware.com/t/eigene-versandkostenberechnung/51598/5 "2018-03-08T14:55:15Z")

</div>

Danke für die Bemühungen - klappt leider nicht.

Ich vereinfache das mal so wie ich das bis jetzt habe:  
1 Sperrgutartikel - Versandkosten 89 €

- Normalartikel - 6.99 € Versand - ab 150 € (nur Normalartikel ohne Sperrgutartikel) dann 0 € Versand  
Mit folgender Berechnung addiert er mir bei einem Sperrgutartikel (wenn kein Normalartikel im Warenkorb liegt) ja auch die 6,99 € dazu - er geht dann von 0 aus und das ist ja kleiner 150  
IF(SUM(IF(at.attr6!=1,b.price\*b.quantity,0))\>150,0,6.99)+(SUM(IF(at.attr6=1,b.quantity,0))\*89)  
Gibt mir immer 95,99 € aus, auch wenn ich nur 1 Sperrgutartikel im Warenkorb habe  
Hm…  
Niemand ein Vorschlag?
