# Komplett & Teillieferung

**URL:** <https://forum.shopware.com/t/komplett-teillieferung/94190>\
**Category:** Plugins\
**Created:** [2. Mai 2022 um 09:37 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190 "2022-05-02T09:37:16Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![revexibox](https://avatars.discourse-cdn.com/v4/letter/r/7bcc69/32.png) [@revexibox](https://forum.shopware.com/u/revexibox)\
**Post date:** [2. Mai 2022 um 09:37 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/1 "2022-05-02T09:37:16Z")

</div>

Hi,  
suche ein Plugin welches dem Kunden die Option gibt das er wählen kann ob alles als Komplettlieferung kommt, bei Warenrückstand. Oder als Teillieferung bei doppelter Versandkostenberechnung.  
Wer kann helfen?

Ähnlich der Grafik

 ![Bildschirmfoto 2022-05-02 um 11.48.00](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/a/0/a000971635459fef955467456f18ffb3ebe20e6a.png)

---

<div class="post-metadata">

**Author:** ![revexibox](https://avatars.discourse-cdn.com/v4/letter/r/7bcc69/32.png) [@revexibox](https://forum.shopware.com/u/revexibox)\
**Post date:** [11. Mai 2022 um 06:14 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/2 "2022-05-11T06:14:09Z")

</div>

Kann hier niemand helfen?

---

<div class="post-metadata">

**Author:** ![LKHshop](https://avatars.discourse-cdn.com/v4/letter/l/e5b9ba/32.png) [@LKHshop](https://forum.shopware.com/u/LKHshop)\
**Post date:** [16. Mai 2022 um 09:55 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/3 "2022-05-16T09:55:05Z")

</div>

Wir wären ebenfalls an einer solchen Funktion / Plugin interessiert.

---

<div class="post-metadata">

**Author:** ![Arya\_Svitkona](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/arya_svitkona/32/15319_2.png) [@Arya\_Svitkona](https://forum.shopware.com/u/Arya_Svitkona)\
**Post date:** [18. Mai 2022 um 10:45 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/4 "2022-05-18T10:45:04Z")

</div>

Anbei ein Screenshot unserer Lösung mit dem Shopware Standard.  
Teillieferung anbieten bei den Versandkosten, welche etwas teurer ist und beim Checkout durchloopen, ob gewünschte Anzahl kleiner oder gleich dem Lagerbestand ist. Wenn nicht, kommt unten der Hinweis bez. Teilieferung.

Nicht perfekt, aber ev. ein Workaround?

 ![Bildschirmfoto 2022-05-18 um 12.43.20](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/9/1/91305db865ce7a32dca789dec4dad4fa2e375c54.png)

---

<div class="post-metadata">

**Author:** ![revexibox](https://avatars.discourse-cdn.com/v4/letter/r/7bcc69/32.png) [@revexibox](https://forum.shopware.com/u/revexibox)\
**Post date:** [18. Mai 2022 um 10:56 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/5 "2022-05-18T10:56:52Z")

</div>

Jap das wäre perfekt 🙂 Sieht gut aus

---

<div class="post-metadata">

**Author:** ![Arya\_Svitkona](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/arya_svitkona/32/15319_2.png) [@Arya\_Svitkona](https://forum.shopware.com/u/Arya_Svitkona)\
**Post date:** [18. Mai 2022 um 12:54 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/6 "2022-05-18T12:54:28Z")

</div>

Nicht sehr hübsch, aber sämtliche Artikel im Frontend durchgeloopt und etwas CSS.  
Musst dies jedoch für confirm.tpl und finish.tpl machen (Achtung Blöcke heissen anders).

```auto
{* Show if articles are deliverable *}
{block name='frontend_checkout_confirm_item_outer'}
        {* Basket items *}
            
        {$hasMissingStockArticle = 0}
        {$hasAvailableStockArticle = 0}
        {foreach $sBasket.content as $sBasketItem}
            {block name='frontend_checkout_cart_item'}
                {if $sBasketItem.instock >= $sBasketItem.quantity}
                    {$hasAvailableStockArticle = 1}
                {else}
                    {$hasMissingStockArticle = 1}
                {/if}
            {/block}
        {/foreach}

        {if $hasAvailableStockArticle === 1}<span class="content--title availability--title">Ab Lager verfügbar</span><p>Die nachfolgenden Artikel sind zum jetztigen Zeitpunkt an Lager und können in gewünschter Menge bestellt werden.</p>{/if}
        {foreach $sBasket.content as $sBasketItem}
            {block name='frontend_checkout_cart_item'}
                {if $sBasketItem.instock >= $sBasketItem.quantity}
                    {include file='frontend/checkout/confirm_item.tpl' isLast=$sBasketItem@last}
                    {$hasAvailableStockArticle = 1}
                {else}
                    {$hasMissingStockArticle = 1}
                {/if}
            {/block}
        {/foreach}

        {if $hasMissingStockArticle === 1}<span class="content--title availability--title">Wird für Dich bestellt</span><p>Da nachfolgende Artikel aktuell nicht an Lager sind, bestellen wir diese nach Bestellabschluss gerne für dich. </p>{/if}
        {foreach $sBasket.content as $sBasketItem}
            {if $sBasketItem.instock < $sBasketItem.quantity}
                {include file='frontend/checkout/confirm_item.tpl' isLast=$sBasketItem@last}
            {/if}
        {/foreach}
        {if $hasMissingStockArticle === 1}
            <div class="table--tr block-group row--product product--partial-delivery">
                <div class="basket-product-wrapper">
                    <i class="icon--info2"></i> {s name="CheckoutFooterPartialShippingHint" namespace="frontend/checkout/cart_footer"}<strong>Nicht alle Produkte gleich verfügbar?</strong> Wähle bei <a href="{url controller=checkout action=shippingPayment sTarget=checkout}">Versandart</a> einfach "Teillieferung" aus und lasse dir deine Bestellung kostengünstig in zwei Paketen zusenden.{/s}
                </div>
            </div>
        {/if}

{/block}

```

---

<div class="post-metadata">

**Author:** ![revexibox](https://avatars.discourse-cdn.com/v4/letter/r/7bcc69/32.png) [@revexibox](https://forum.shopware.com/u/revexibox)\
**Post date:** [20. Mai 2022 um 06:06 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/7 "2022-05-20T06:06:40Z")

</div>

Also das heißt ich muss den Snippet in confirm.tpl und finish.tpl einpflegen und danach sollte es laufen? Oder bedarf es mehr Anpassung?

---

<div class="post-metadata">

**Author:** ![Arya\_Svitkona](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/arya_svitkona/32/15319_2.png) [@Arya\_Svitkona](https://forum.shopware.com/u/Arya_Svitkona)\
**Post date:** [25. Mai 2022 um 08:44 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/8 "2022-05-25T08:44:10Z")

</div>

Erm, nicht ganz.  
Diesen Block kannst beim „confirm.tpl“ so einbinden. Beim „finish.tpl“ musst du die Pfade der geladenen Dateien anpassen bei „include file='frontend/checkout…“  
Kannst diesen hier nutzen und ev. für deine Bedürfnisse anpassen.

```auto
{block name='frontend_checkout_finish_items'}
    <div class="finish--table product--table">
        <div class="panel has--border">
            <div class="panel--body is--rounded">

                {* Table header *}
                {block name='frontend_checkout_finish_table_header'}
                    {include file="frontend/checkout/finish_header.tpl"}
                {/block}

                {$hasMissingStockArticle = 0}
	            {$hasAvailableStockArticle = 0}
	            {foreach $sBasket.content as $sBasketItem}
	                {block name='frontend_checkout_cart_item'}
	                    {if $sBasketItem.instock >= $sBasketItem.quantity}
	                        {$hasAvailableStockArticle = 1}
	                    {else}
	                        {$hasMissingStockArticle = 1}
	                    {/if}
	                {/block}
	            {/foreach}

	            {if $hasAvailableStockArticle === 1}<span class="content--title availability--title">Ab Lager verfügbar</span><p>Die nachfolgenden Artikel sind zum jetztigen Zeitpunkt an Lager und werden für dich gepackt.</p>{/if}
	            {foreach $sBasket.content as $sBasketItem}
	                {block name='frontend_checkout_cart_item'}
	                    {if $sBasketItem.instock >= $sBasketItem.quantity}
	                        {include file='frontend/checkout/finish_item.tpl' isLast=$sBasketItem@last}
	                        {$hasAvailableStockArticle = 1}
	                    {else}
	                        {$hasMissingStockArticle = 1}
	                    {/if}
	                {/block}
	            {/foreach}

	            {if $hasMissingStockArticle === 1}<span class="content--title availability--title">Wird jetzt für Dich bestellt</span><p>Da nachfolgende Artikel aktuell nicht an Lager sind, bestellen wir diese nun gerne für dich. </p>{/if}
	            {foreach $sBasket.content as $sBasketItem}
	                {if $sBasketItem.instock < $sBasketItem.quantity}
	                    {include file='frontend/checkout/finish_item.tpl' isLast=$sBasketItem@last}
	                {/if}
	            {/foreach}

                {* Table footer *}
                {block name='frontend_checkout_finish_table_footer'}
                    {include file="frontend/checkout/finish_footer.tpl"}
                {/block}
            </div>
        </div>
    </div>
{/block}

```

---

<div class="post-metadata">

**Author:** ![revexibox](https://avatars.discourse-cdn.com/v4/letter/r/7bcc69/32.png) [@revexibox](https://forum.shopware.com/u/revexibox)\
**Post date:** [31. Mai 2022 um 14:00 UTC](https://forum.shopware.com/t/komplett-teillieferung/94190/10 "2022-05-31T14:00:26Z")

</div>

Grundeinstellungen → Storefront → Versandkosten-Modul  
Hier die erweiterte SQL Anfrage erweitern mit ` (d.instock)-(b.quantity) < 0 as instock`

Danach kann in den Versandkosten unter Erweiterte Einstellungen, über Eigene Bedingungen mit `instock` oder `!instock` die Versandvariante ausgeblendet werden.
