# Versandkostenfrei wenn Abo-Artikel

**URL:** https://forum.shopware.com/t/versandkostenfrei-wenn-abo-artikel/39630
**Category:** Administration
**Created:** [7. September 2016 um 11:01 UTC](https://forum.shopware.com/t/versandkostenfrei-wenn-abo-artikel/39630 "2016-09-07T11:01:03Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![libelle](https://avatars.discourse-cdn.com/v4/letter/l/34f0e0/32.png) [@libelle](https://forum.shopware.com/u/libelle)
#### Post date: [7. September 2016 um 11:01 UTC](https://forum.shopware.com/t/versandkostenfrei-wenn-abo-artikel/39630/1 "2016-09-07T11:01:03Z")

</div>

Hallo Community,

wir haben das Shopware-Plugin „Abo-Commerce“ in Shopware 5.2.6 installiert. Produkte gibt es einmal als Einmal-Artikel sowie in den angelegten Abo-Versionen.

Wird ein Produkt als Einmal-Artikel bestellt, fallen Versandkosten an. Wird das Produkt hingegen in einer der angelegten Abo-Möglichkeiten gekauft, sollen die Versandkosten entfallen. Hat jemand eine Idee wie das umzusetzen wäre?

Danke  
Sebastian  
&nbsp;

---

<div class="post-metadata">

### Author: ![JanineOverhausKocan](https://avatars.discourse-cdn.com/v4/letter/j/65b543/32.png) [@JanineOverhausKocan](https://forum.shopware.com/u/JanineOverhausKocan)
#### Post date: [7. September 2016 um 12:32 UTC](https://forum.shopware.com/t/versandkostenfrei-wenn-abo-artikel/39630/2 "2016-09-07T12:32:23Z")

</div>

Hallo Sebastian,

um im Warenkorb abzufragen ob ein Abo-Artikel im Warenkorb liegt müsste zunächst in der Datei /engine/Shopware/Core/sAdmin.php die Funktion sGetDispatchBasket erweitert werden,da dort werden die einzelnen Tabellen gejoint werden und man die s\_order\_basket\_attributes für die Abfrage benötigt. Will man nun eine weitere Tabelle einbinden, kann man dies nach folgendem Schema tun:

```
LEFT JOIN s_order_basket_attributes yx
ON b.id = yx.basketID

```

In der eigenen Bedingung kann dann z.B. folgendes abgefragt werden: MAX(IF(xy.swag\_abo\_commerce\_duration = NULL, false,true)) as abo  
Mit abo als eigener Bedingung in der Versandart wird diese nur dann aktiviert, wenn Wenn mindestens ein Abo-Artikel im Warenkorb liegt mit !abo wird die Versandart blockiert für Abo-Artikel. Weitere Möglichkeiten für die individuellen Bedingungen finden sich auch hier im Wiki, z.B. eine Abfrage für Mischwarenkörbe: [http://community.shopware.com/Individuelle-Versandkosten-Bedingungen-und-Berechnungen\_detail\_1933\_647.html#Komplexe\_Bedingung\_anhand\_von\_eines\_Freitextfeldes\_f.FCr\_Mischwarenk.F6rbe](http://community.shopware.com/Individuelle-Versandkosten-Bedingungen-und-Berechnungen_detail_1933_647.html#Komplexe_Bedingung_anhand_von_eines_Freitextfeldes_f.FCr_Mischwarenk.F6rbe)

Viele Grüße aus Schöppingen

---

<div class="post-metadata">

### Author: ![libelle](https://avatars.discourse-cdn.com/v4/letter/l/34f0e0/32.png) [@libelle](https://forum.shopware.com/u/libelle)
#### Post date: [7. September 2016 um 12:37 UTC](https://forum.shopware.com/t/versandkostenfrei-wenn-abo-artikel/39630/3 "2016-09-07T12:37:06Z")

</div>

Hallo Janine,

danke für die schnelle Antwort und danke für diesen Denkanstoß. Ich werde mir das näher anschauen.

Beste Grüße  
Sebastian  
&nbsp;

---

<div class="post-metadata">

### Author: ![metallista](https://avatars.discourse-cdn.com/v4/letter/m/edb3f5/32.png) [@metallista](https://forum.shopware.com/u/metallista)
#### Post date: [27. Dezember 2016 um 21:14 UTC](https://forum.shopware.com/t/versandkostenfrei-wenn-abo-artikel/39630/4 "2016-12-27T21:14:14Z")

</div>

Hallo Janine,

wo genau in der Funktion sGetDispatchBasket&nbsp;sollte man deinen Codeschnipsel einfügen?

&nbsp;

Hab es jetzt mal hier eingefügt (s\_order\_basket\_attributes z):

```
$sql = "
            SELECT
                MIN(d.instock>=b.quantity) as instock,
                MIN(d.instock>=(b.quantity+d.stockmin)) as stockmin,
                MIN(a.laststock) as laststock,
                SUM(d.weight*b.quantity) as weight,
                SUM(IF(a.id,b.quantity,0)) as count_article,
                MAX(b.shippingfree) as shippingfree,
                SUM(IF(b.modus=0,$amount/b.currencyFactor,0)) as amount,
                SUM(IF(b.modus=0,$amount_net/b.currencyFactor,0)) as amount_net,
                SUM(CAST(b.price as DECIMAL(10,2))*b.quantity) as amount_display,
                MAX(d.length) as `length`,
                MAX(d.height) as height,
                MAX(d.width) as width,
                u.id as userID
                $sql_select
            FROM s_order_basket b

            LEFT JOIN s_order_basket_attributes z
            ON b.id = z.basketID            

            LEFT JOIN s_articles a
            ON b.articleID = a.id
            AND b.modus = 0
            AND b.esdarticle = 0

            LEFT JOIN s_articles_details d
            ON (d.ordernumber = b.ordernumber)
            AND d.articleID = a.id

```

&nbsp;

Wirft aber einen Fehler. Die Spalte wird nicht gefunden:

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/8/863f01a41df9835b5cd33a0cd2c709baeddd9db5.png)

Hast du eine Idee?

Danke und viele Grüße!
