# Individuelle Versandkosten nach Paketgewicht

**URL:** <https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030>\
**Category:** Administration\
**Created:** [26. März 2018 um 14:25 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030 "2018-03-26T14:25:59Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [26. März 2018 um 14:25 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/1 "2018-03-26T14:25:59Z")

</div>

Guten Tag,

wir möchten gerne für unsere Versanddienstleister die Einstellung treffen, dass bei einem Paketgewicht von 28kg die Sendung in zwei Pakete aufgeteilt und die Versandkosten logischerweise multipliziert werden.

Sprich beim Kauf von  
5x Wasser 5kg = 25kg - 1 Paket und 1x Porto  
6x Wasser 5kg = 30kg - 2 Pakete und 2x Porto

In der Doku haben wir folgendes gefunden:

Eigene Berechnung nach Gewicht inkl. Aufteilung in mehrere Pakete  
[https://community.shopware.com/\_detail\_1933.html#Eigene\_Berechnung\_nach\_Gewicht\_inkl.\_Aufteilung\_in\_mehrere\_Pakete](https://community.shopware.com/_detail_1933.html#Eigene_Berechnung_nach_Gewicht_inkl._Aufteilung_in_mehrere_Pakete)

In den Einstellungen Grundeinstellungen -\> Storefront haben wir folgendes eingetragen:

```
MAX(a.topseller) AS has_topseller, MAX(at.attr3) AS has_comment, MAX(b.esdarticle) AS has_esd,IF(MAX(d.weight)<30,1,0) AS aufteilbar

```

Und im Versandmodul:

```
IF(SUM(d.weight*b.quantity)>30,CEIL(SUM(b.quantity*d.weight)/30)*4.95,4.95)

```

Das sieht mir aber sehr nach dem Test danach aus, dass jedes einzelne Gebinde bei 30kg geteilt wird.  
Sprich der Artikel selber muss direkt 30kg haben, das ist aber nicht der Fall. Wie wäre denn der Code für unsere Zwecke anzupassen?

Gruß  
Christian

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [27. März 2018 um 05:22 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/2 "2018-03-27T05:22:39Z")

</div>

Moin,

also anscheinend ist meine Einstellung im Shop falsch.  
Zum Test habe ich mal den Artikel 30kg schwer gemacht und zwei Stück in den Warenkorb gelegt.  
Dabei werden die Versandkosten auch nur einmalig berechnet.

Wo kann denn dort der Fehler liegen?

Gruß  
Christian

---

<div class="post-metadata">

**Author:** ![drac](https://avatars.discourse-cdn.com/v4/letter/d/3d9bf3/32.png) [@drac](https://forum.shopware.com/u/drac)\
**Post date:** [2. April 2018 um 12:44 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/3 "2018-04-02T12:44:49Z")

</div>

Hast Du unter Versandkosten den Faktor auf 100 gesetzt?  
Also 100% von deinem berechneten Wert. (Feld -Versandkosten würde in dem Fall leer bleiben, da es ja berechnet wird, aber der Faktor muss angegeben werden und schon läuft die Sache)

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [13. Juli 2018 um 06:44 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/4 "2018-07-13T06:44:11Z")

</div>

> [@drac schrieb:](https://forum.shopware.com/profile/28650/drac "drac")
> 
> Hast Du unter Versandkosten den Faktor auf 100 gesetzt?  
> Also 100% von deinem berechneten Wert. (Feld -Versandkosten würde in dem Fall leer bleiben, da es ja berechnet wird, aber der Faktor muss angegeben werden und schon läuft die Sache)

Hey greife das Thema nochmal auf, da uns die Übergangslösung nicht mehr ausreicht.  
Habe im Versandkostenmodul nun die Einstellung wie folgt gesetzt:

Versandkosten von 0 bis beliebig - Versandkosten (kein Eintrag), Faktor 100%

Erweiterte Einstellung - \> eigene Berechnung:  
IF(SUM(d.weight\*b.quantity)\>30,CEIL(SUM(b.quantity\*d.weight)/30)\*4.95,4.95)

Im Warenkorb habe ich folgende Artikel  
1x Artikel A 15kg (47,45€)  
4x Artikel B 5kg&nbsp; (5,48€ Stk. - 83,80€)

Versandkosten werden mir hetzt allerdings 131,25€ berechnet, sprich die Summe des Warenkorbs.

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [14. Juli 2018 um 11:38 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/5 "2018-07-14T11:38:35Z")

</div>

Sooooo Fehlerchen gefunden.

Ich hatte doch glatt die Berechnung auf Gewicht bzw. Preis gelassen und nicht auf Eigene Berechnung gesetzt 😃

&nbsp;

Läuft jetzt soweit Einwandfrei.

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [5. Oktober 2018 um 09:09 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/6 "2018-10-05T09:09:44Z")

</div>

Hallöchen,

so das Gewicht wird alles jetzt passend mit den Paketen berechnet und aufgeteilt.

Jetzt wollte ich noch bei DPD den PLZ-Kreis für Inseln sperren, da diese dort nicht hin liefern solllen. Dafür steht DHL zur Verfügung dann.

Dafür habe ich den Code so geschrieben, leider lädt der seitliche Warenkorb dann in eine Schleife

```
IF(SUM(d.weight*b.quantity)>29,CEIL(SUM(b.quantity*d.weight)/29)*5.50,5.50)

IFNULL(us.zipcode,ub.zipcode) IS NULL OR IFNULL(us.zipcode,ub.zipcode) NOT IN ('25845','25846','25847','25849','25859','25863','25869','25929','25930','25931','25932','25933','25938','25939','25940','25941','25942','25946','25947','25948','25949','25952','25953','25954','25955','25961','25962','25963','25964','25965','25966','25967','25968','25969','25970','25980','25985','25986','25988','25989','25990','25992','25993','25994','25996','25997','25998','25999','26465','26474','26486','26548','26571','26579','26757','27498','83526')

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![drakon](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/drakon/32/7724_2.png) [@drakon](https://forum.shopware.com/u/drakon)\
**Post date:** [5. Oktober 2018 um 09:35 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/7 "2018-10-05T09:35:45Z")

</div>

Man kann doch nicht einfach zwei SQL-Anweisungen untereinander schreiben und meinen, das würde dann schon funktionieren. Beide Bedingungen müssen zumindest per AND oder OR verknüpft werden (je nachdem ob beide Bedingungen gelten müssen oder nur eine davon).

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [5. Oktober 2018 um 09:51 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/8 "2018-10-05T09:51:20Z")

</div>

> [@drakon schrieb:](https://forum.shopware.com/profile/16695/drakon "drakon")
> 
> Man kann doch nicht einfach zwei SQL-Anweisungen untereinander schreiben und meinen, das würde dann schon funktionieren. Beide Bedingungen müssen zumindest per AND oder OR verknüpft werden (je nachdem ob beide Bedingungen gelten müssen oder nur eine davon).

Ja das ergibt Sinn 😉

Hab das ganze so geschrieben, allerdings gibt er dann trotzdem beide Versandpartner aus und berechnet kein Porto

```
IF(SUM(d.weight*b.quantity)>29,CEIL(SUM(b.quantity*d.weight)/29)*5.885,5.885) AND IFNULL(us.zipcode,ub.zipcode) IS NULL OR IFNULL(us.zipcode,ub.zipcode) NOT IN ('25845','25846','25847','25849','25859','25863','25869','25929','25930','25931','25932','25933','25938','25939','25940','25941','25942','25946','25947','25948','25949','25952','25953','25954','25955','25961','25962','25963','25964','25965','25966','25967','25968','25969','25970','25980','25985','25986','25988','25989','25990','25992','25993','25994','25996','25997','25998','25999','26465','26474','26486','26548','26571','26579','26757','27498','83526')

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![drakon](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/drakon/32/7724_2.png) [@drakon](https://forum.shopware.com/u/drakon)\
**Post date:** [5. Oktober 2018 um 10:07 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/9 "2018-10-05T10:07:51Z")

</div>

Wenn BEIDE Bedingungen zutreffen müssen, wäre ein AND richtig.

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [5. Oktober 2018 um 10:42 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/10 "2018-10-05T10:42:21Z")

</div>

> [@drakon schrieb:](https://forum.shopware.com/profile/16695/drakon "drakon")
> 
> Wenn BEIDE Bedingungen zutreffen müssen, wäre ein AND richtig.

is doch mit dazwischen

---

<div class="post-metadata">

**Author:** ![drakon](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/drakon/32/7724_2.png) [@drakon](https://forum.shopware.com/u/drakon)\
**Post date:** [5. Oktober 2018 um 10:45 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/11 "2018-10-05T10:45:26Z")

</div>

Hab mich verguckt. Aber dann muss man den zweiten Bedingungsblock mit dem OR einklammern.

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [5. Oktober 2018 um 10:53 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/12 "2018-10-05T10:53:48Z")

</div>

> [@drakon schrieb:](https://forum.shopware.com/profile/16695/drakon "drakon")
> 
> Hab mich verguckt. Aber dann muss man den zweiten Bedingungsblock mit dem OR einklammern.

&nbsp;

ok, meinst du so - hab mich damit bislang nicht auseinander setzen müssen 😉

```
IF(SUM(d.weight*b.quantity)>29,CEIL(SUM(b.quantity*d.weight)/29)*5.885,5.885) AND IFNULL(us.zipcode,ub.zipcode) IS NULL OR (IFNULL(us.zipcode,ub.zipcode) NOT IN ('25845','25846','25847','25849','25859','25863','25869','25929','25930','25931','25932','25933','25938','25939','25940','25941','25942','25946','25947','25948','25949','25952','25953','25954','25955','25961','25962','25963','25964','25965','25966','25967','25968','25969','25970','25980','25985','25986','25988','25989','25990','25992','25993','25994','25996','25997','25998','25999','26465','26474','26486','26548','26571','26579','26757','27498','83526'))

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![drakon](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/drakon/32/7724_2.png) [@drakon](https://forum.shopware.com/u/drakon)\
**Post date:** [5. Oktober 2018 um 11:00 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/13 "2018-10-05T11:00:15Z")

</div>

```
IF(SUM(d.weight*b.quantity)>29,CEIL(SUM(b.quantity*d.weight)/29)*5.885,5.885) AND (IFNULL(us.zipcode,ub.zipcode) IS NULL OR IFNULL(us.zipcode,ub.zipcode) NOT IN ('25845','25846','25847','25849','25859','25863','25869','25929','25930','25931','25932','25933','25938','25939','25940','25941','25942','25946','25947','25948','25949','25952','25953','25954','25955','25961','25962','25963','25964','25965','25966','25967','25968','25969','25970','25980','25985','25986','25988','25989','25990','25992','25993','25994','25996','25997','25998','25999','26465','26474','26486','26548','26571','26579','26757','27498','83526'))

```

So meinte ich.

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [5. Oktober 2018 um 12:51 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/14 "2018-10-05T12:51:53Z")

</div>

> [@drakon schrieb:](https://forum.shopware.com/profile/16695/drakon "drakon")
> 
> IF(SUM(d.weight_b.quantity)\>29,CEIL(SUM(b.quantity_d.weight)/29)\*5.885,5.885) AND (IFNULL(us.zipcode,ub.zipcode) IS NULL OR IFNULL(us.zipcode,ub.zipcode) NOT IN (‚25845‘,‚25846‘,‚25847‘,‚25849‘,‚25859‘,‚25863‘,‚25869‘,‚25929‘,‚25930‘,‚25931‘,‚25932‘,‚25933‘,‚25938‘,‚25939‘,‚25940‘,‚25941‘,‚25942‘,‚25946‘,‚25947‘,‚25948‘,‚25949‘,‚25952‘,‚25953‘,‚25954‘,‚25955‘,‚25961‘,‚25962‘,‚25963‘,‚25964‘,‚25965‘,‚25966‘,‚25967‘,‚25968‘,‚25969‘,‚25970‘,‚25980‘,‚25985‘,‚25986‘,‚25988‘,‚25989‘,‚25990‘,‚25992‘,‚25993‘,‚25994‘,‚25996‘,‚25997‘,‚25998‘,‚25999‘,‚26465‘,‚26474‘,‚26486‘,‚26548‘,‚26571‘,‚26579‘,‚26757‘,‚27498‘,‚83526‘))
> 
> So meinte ich.

&nbsp;

Ok, habe ich hinterlegt.

Leider wird mir immer noch DPD ausgewiesen und seltsamerweise mit 0€ Versandkosten berechnet obwohl die Versandkosten ja nach Gewicht berechnet werden sollen.

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [9. Oktober 2018 um 15:05 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/15 "2018-10-09T15:05:52Z")

</div>

> [@Str33tfight3r schrieb:](https://forum.shopware.com/profile/23600/Str33tfight3r "Str33tfight3r")
> 
> > [@drakon schrieb:](https://forum.shopware.com/profile/16695/drakon "drakon")
> > 
> > IF(SUM(d.weight_b.quantity)\>29,CEIL(SUM(b.quantity_d.weight)/29)\*5.885,5.885) AND (IFNULL(us.zipcode,ub.zipcode) IS NULL OR IFNULL(us.zipcode,ub.zipcode) NOT IN (‚25845‘,‚25846‘,‚25847‘,‚25849‘,‚25859‘,‚25863‘,‚25869‘,‚25929‘,‚25930‘,‚25931‘,‚25932‘,‚25933‘,‚25938‘,‚25939‘,‚25940‘,‚25941‘,‚25942‘,‚25946‘,‚25947‘,‚25948‘,‚25949‘,‚25952‘,‚25953‘,‚25954‘,‚25955‘,‚25961‘,‚25962‘,‚25963‘,‚25964‘,‚25965‘,‚25966‘,‚25967‘,‚25968‘,‚25969‘,‚25970‘,‚25980‘,‚25985‘,‚25986‘,‚25988‘,‚25989‘,‚25990‘,‚25992‘,‚25993‘,‚25994‘,‚25996‘,‚25997‘,‚25998‘,‚25999‘,‚26465‘,‚26474‘,‚26486‘,‚26548‘,‚26571‘,‚26579‘,‚26757‘,‚27498‘,‚83526‘))
> > 
> > So meinte ich.
> 
> &nbsp;
> 
> Ok, habe ich hinterlegt.
> 
> Leider wird mir immer noch DPD ausgewiesen und seltsamerweise mit 0€ Versandkosten berechnet obwohl die Versandkosten ja nach Gewicht berechnet werden sollen.

&nbsp;

Fehler gefunden, man sollte auch den Code nicht in die Berechnung sondern in die Bedingung schreiben.

Sprich 1x Bedingung und einmal Berechnung.

Gruß

Christian

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [18. Oktober 2018 um 15:40 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/16 "2018-10-18T15:40:37Z")

</div>

Hallöchen,

die Inseln per DPD auszusperren funktioniert jetzt.  
Jetzt kommen Kunden natürlich auf die Idee, Packstationen per DPD anzugeben.

Kann man dieses auch ähnlich wie die Inseln irgendwie in die Bedingung mit einbinden dass die Straße sobald diese Packstation heißt auch nicht mehr DPD verschickt bzw. ausgewählt werden kann?

Gruß  
Christian

---

<div class="post-metadata">

**Author:** ![Str33tfight3r](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@Str33tfight3r](https://forum.shopware.com/u/Str33tfight3r)\
**Post date:** [20. Oktober 2018 um 17:43 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/17 "2018-10-20T17:43:05Z")

</div>

Hey, hat da jemand einen Lösungsvorschlag, finde immer nur die Postleitzahl als Feld in der Doku, kann man die Straße nicht berücksichtigen oder ist das einfach nicht mit aufgeführt wie sonst das man aber alle Felder ansprechen kann?

---

<div class="post-metadata">

**Author:** ![langnickel](https://avatars.discourse-cdn.com/v4/letter/l/3ec8ea/32.png) [@langnickel](https://forum.shopware.com/u/langnickel)\
**Post date:** [22. Oktober 2018 um 15:48 UTC](https://forum.shopware.com/t/individuelle-versandkosten-nach-paketgewicht/52030/18 "2018-10-22T15:48:54Z")

</div>

Je nach verwendeten datenbankserver mal folgendes probieren:

```
CASE WHEN INSTR(LOWER(us.street), 'packstation') <= 0 THEN 1 ELSE 0 END
```
