Komplett & Teillieferung

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

1 „Gefällt mir“

Kann hier niemand helfen?

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

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?

Jap das wäre perfekt :slight_smile: Sieht gut aus

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).

{* 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}
3 „Gefällt mir“

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?

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.

{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}

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.

1 „Gefällt mir“