{if $sBasketItem.ordernumber != XYZ} Abfrage im Warenkorb funktioniert plötzlich nicht mehr!

Hallo zusammen,

ich habe das Template vom Warenkorb angepasst und möchte wenn ein bestimmter Artikel im Warenkorb liegt die Premiumartikel nicht anzeigen.

Das hat bisher auch ohne Probleme funktioniert.
Merkwürdigerweise erscheint seit heute der Premiumartikel wieder, obwohl der bestimmt Artikel im Warenkorb liegt. 
Ich habe das Verhalten in einem Testsystem versucht nachzustellen. Dort funktioniert dei Anzeige ohne Probleme.

Hat jemand von euch schon einmal solch eine Erfahrung gemacht? Neu kompiliert etc. habe ich natürlich.

Grüße,

chrisen

Eventuell ein Update vom Shop gemacht?

Hinzu kommt, dass die Variable $sBasketItem nur beim Block “frontend_checkout_cart_panel” varhanden ist. Die Anzeige der Premiumartikel kommt aber beim Block “frontend_checkout_cart_premium”. Hast du ein eigenes Template?

Nein.
Ich habe keine Änderungen vorgenommen. 

Deine Frage verwirrt mich:

                    {* Product table content *}
                    {block name='frontend_checkout_cart_panel'}
                        
                            

                                {* Product table header *}
                                {block name='frontend_checkout_cart_cart_head'}
                                    {include file="frontend/checkout/cart_header.tpl"}
                                {/block}

                                {* Basket items *}
                                {foreach $sBasket.content as $sBasketItem}
                                    {block name='frontend_checkout_cart_item'}
                                        {include file='frontend/checkout/cart_item.tpl' isLast=$sBasketItem@last}
                                    {/block}
                                {/foreach}

                                {* Product table footer *}
                                {block name='frontend_checkout_cart_cart_footer'}
                                    {include file="frontend/checkout/cart_footer.tpl"}
                                {/block}
                            
                        
                    {/block}

                    {* Premium products *}
                    {block name='frontend_checkout_cart_premium'}
                        {if $sPremiums}

                            {* Actual listing *}
                            {block name='frontend_checkout_cart_premium_products'}
                                {include file='frontend/checkout/premiums.tpl'}
                            {/block}
                        {/if}
                    {/block}

 

Ich habe den Block  {block name=‘frontend_checkout_cart_premium’} so geändert:

 

{extends file="parent:frontend/checkout/cart.tpl"}


{block name='frontend_checkout_cart_premium'}
 {if $sBasketItem.ordernumber != 100500}
                        {if $sPremiums}

                            {* Actual listing *}
                            {block name='frontend_checkout_cart_premium_products'}
                                {include file='frontend/checkout/premiums.tpl'}
                            {/block}
                        {/if}
                        
                        {/if}
{/block}
                   

                   {block name="frontend_checkout_actions_checkout"}{/block}

 

Das kann überhaupt nicht richtig funktionieren, denn die Varaible $sBasketItem gehört zur Schleife {foreach $sBasket.content as $sBasketItem} und die liegt in einem völlig anderen Bereich. Der Block dem Premium liegt darunter. Wenn Premium nicht angezeigt werden soll, wenn der Artikel 100500 im warenkorb liegt, dann in etwa so:

{* Basket items *}
{assign var="ShowPremium" value="1"}
{foreach $sBasket.content as $sBasketItem}
 {block name='frontend_checkout_cart_item'}
 {include file='frontend/checkout/cart_item.tpl' isLast=$sBasketItem@last}
 {if $sBasketItem.ordernumber == 100500} {assign var="ShowPremium" value="0"} {/if}
{/block}
{/foreach}

{* Premium products *}
{block name='frontend_checkout_cart_premium'}
{if $ShowPremium}
 {if $sPremiums}
 {* Actual listing *}
 {block name='frontend_checkout_cart_premium_products'}
 {include file='frontend/checkout/premiums.tpl'}
 {/block}
 {/if}
{/if}
{/block}

Die Variable ShowPremium wird auf 1 gesetzt, also Premium wird immer angezeigt. Sobald Artikel 100500 hinzu kommt, wird ShowPremium auf 0 gesetzt. Premium wird nicht mehr angezeigt. Denn beachte, es können ja auch mehere Artikel im Warenkorb liegen und dann kann deine Abfrage gar nicht funktionieren!
 

1 „Gefällt mir“