Verfügbare Mengen in der Auswahl hervorheben – Shopware

Shops in denen Kunden sich häufig eine ganze Reihe an verschiedenen Produkten in verschiedenen Farben zusammenstellen, stehen häufig vor einem entscheidenden Problem: Woher sollen Kunden wissen, ob Produkte direkt verfügbar sind, oder eventuell nachgeliefert werden müssen.

Im konkreten Fall wird Geschirr aus Bambus verkauft, jedoch sind die Kunden häufig variabel in der Farbwahl und nehmen gern auch eine andere Farbe, sofern diese direkt verfügbar ist. Die Nachlieferzeit im Shop liegt bei gerade mal 5-7 Tagen, daher sind immer 150 Stück direkt auswählbar. Ist ein Artikel nicht vorhanden, erhält der Kunde jedoch erst im Warenkorb den Hinweis, dass seine Bestellung etwas länger benötigt.

Wir haben uns in den letzten Jahren auf Shopware SEO Beratung spezialisiert, wir sind keine reinen Coder, die sowas sicher viel schöner und mit tollen Kommentaren umgesetzt hätten 😉

Tracking in Google Analytics zeigt, dass Kunden dann diese Produkte häufig erst wieder entfernen und dann eine andere Farbe in den Warenkorb legen.

Die Lösung

Unsere Lösung ist sehr einfach und prüft live, ob ein Artikel aktuell verfügbar ist, oder etwas Nachlieferungszeit benötigt. Im folgenden Beispiel sind 4 Artikel direkt liefer- und versendbar, größere Mengen benötigen ein paar Tage mehr.

Realisierung im Theme

Generell arbeiten wir immer mit eigenen Child-Themes, die die bestehenden Themes erweitern. Damit sind Änderungen im Notfall sehr leicht revidierbar.

Unsere Lösung ist auf einen konkreten Shop ausgelegt und wurde damit direkt im Theme realisiert! Bezeichnungen haben wir der Einfachheit direkt eingefügt und nicht als namespace eingetragen (dirty, uh, oh .. ). Eine Realisierung als Plugin wäre natürlich sicher auch möglich. Falls dies jemand dahingehend umbauen möchte, gern einfach kurz bei uns melden.

Die Urpsrüngliche Mengenauswahl befindet sich bei Shopware im Bare Theme unter Bare/frontend/detail/buy.tpl – wir greifen uns nur einen einzelnen Block heraus und ersetzen diesen in unserem Theme mytheme/frontend/detail/buy.tpl

Der Code

{extends file="parent:frontend/detail/buy.tpl"}

{* Quantity selection *}
    {block name='frontend_detail_buy_quantity'}
        <div class="buybox--quantity block">
            {$maxQuantity=$sArticle.maxpurchase+1}
            {$schalter = 1}
                        
            {if $sArticle.laststock && $sArticle.instock < $sArticle.maxpurchase}
                {$maxQuantity=$sArticle.instock+1} 
            {/if}
    
            {block name='frontend_detail_buy_quantity_select'} 
                <div class="select-field">
                    <select id="sQuantity" name="sQuantity" class="quantity--select">
                    <optgroup label="Direkt Verfügbar - 24h Versand" class="avaliableyesgroup">

{section name="i" start=$sArticle.minpurchase loop=$maxQuantity step=$sArticle.purchasesteps}
      
 	{if $schalter == 1 and $sArticle.instock < $smarty.section.i.index}
    			{$schalter = 0}
                </optgroup><optgroup label="Kurze Lieferzeit - 5-7 Werktage" class="avaliableyesgroup"> 
 	{/if} 
        
            <option value="{$smarty.section.i.index}"  
            	{if $sArticle.instock >= $smarty.section.i.index}class="avaliableyes"{else}class="avaliableno"{/if}>{$smarty.section.i.index}{if $sArticle.packunit} {$sArticle.packunit}{/if}</option>
                        {/section}
		</optgroup>
                    </select>
                </div>
            {/block}
        </div>
    {/block}

Nutzung natürlich auf eigene Gefahr 😉

CSS Code

Noch schnell 2 CSS Klassen hinzugefügt, das Theme neu erstellt und fertig ist die neue Auswahl.

.avaliableyes {background-color: #CAE3AD !important; }
.avaliableno {background-color: #F7F8AC !important; }   

Die Grenzen

Diese Lösung ist mega simpel und eignet sich nur für Shops, in denen Produkte nicht minütlich hinzugefügt und abverkauft werden. Es erfolgt auch keine Prüfung, ob ein Artikel bereits irgendwo im Warenkorb liegt und vielleicht 2 Minuten Später bei eigenen Checkout nicht mehr verfügbar ist.

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*