bestimmte Artikel von Gutscheinen ausschließen

Hallo liebe Shopware Community, wir möchten im Warenkorb bestimmte Artikel, mit Hilfe von einem angelegten Freitextfeld bzw. Attribut im Backend, von Gutscheinen ausschließen können. Dazu haben wir die cart_footer.tpl verändert. Dass es hier bereits Plugins im Store gibt ist bekannt, aber wir wollten es selbst probieren. :slight_smile: Auszug aus unseren Template: {* Add product using a voucher *} {if $sBasketItem.additional_details.attr10==“true”} {block name=‘frontend_checkout_cart_footer_add_voucher’}

Leider kann bei den ausgewählten Artikeln kein Gutschein genutzt werden.

{/block} {else} {block name=‘frontend_checkout_cart_footer_add_voucher’}

                {block name='frontend_checkout_cart_footer_add_voucher_trigger'}
                    <input type="checkbox" id="add-voucher--trigger" class="add-voucher--checkbox">
                {/block}

                {block name='frontend_checkout_cart_footer_add_voucher_label'}
                    <label for="add-voucher--trigger" class="add-voucher--label">{s name="CheckoutFooterVoucherTrigger"}{/s}</label>
                {/block}

                <div class="add-voucher--panel is--hidden block-group">
                    {block name='frontend_checkout_cart_footer_add_voucher_field'}
                        <input type="text" class="add-voucher--field is--medium block" name="sVoucher" placeholder="{">
                    {/block}

                    {block name='frontend_checkout_cart_footer_add_voucher_button'}
                        <button type="submit" class="add-voucher--button is--medium btn is--primary is--center block">
                            <i class="icon--arrow-right"></i>
                        </button>
                    {/block}
                </div>
            </form> {/block} {/if} Leider funktioniert dies nur wenn man einen Artikel in den Warenkorb legt. :( Wie müsste man hier ansetzen, dass es auch bei mehreren Artikeln im Warenkorb funktioniert? Vielen Dank für eure hilfreichen Antworten :sunglasses: Gruß Tommy

Naja also: der block frontend_checkout_cart_footer_add_voucher wird ja nur einmal in einem Templatefile ausgegeben. Bei einem Zugriff auf $sBasketItem.additional_details.attr10 greifst du auf ein einziges Item (i.d.R. ein Artikel) innerhalb einer Schleife zu. Du müsstest also sobald da was drin steht, was du erkennen kannst z.B. eine Variable setzen. z.B. so: {if $sBasketItem.additional\_details.attr10=="true"} {$detectedVoucherStop = 1} {/if} und dann nachdem die Schleife durchlaufen wurde kannst du dann abhängig davon entscheiden, ob der Gutschein genutzt werden darf. So dann oder so ähnlich: {block name='frontend\_checkout\_cart\_footer\_add\_voucher'} {if $detectedVoucherStop == 1} {\* dein spezieller Code \*} {else} {$smarty.block.parent} {/if} das ganze natürlich in einem eigenem Template. Somit wäre dann die Gutschein-Eingabe immer gesperrt wenn einer der Artikel im Warenkorb nicht mit einem Gutschein genutzt werden kann. Ist natürlich sehr restriktiv so und nicht das gelbe vom Ei. Somit solltest Du jedoch den richtigen Ansatz haben um das ganze besser umsetzen zu können.

1 „Gefällt mir“