Jump to content

var outside {foreach} loop, incremented inside {foreach} if id_category is 437


Recommended Posts



I'm new to smarty so here's my question.


In the cart I need to check if each product category equals a certain product category, and if it does then increment +1 a variable.


here's my shopping-cart.tpl. My var is called "pippo"

{assign var='pippo' value=0}

{foreach $products as $product}
{assign var='productId' value=$product.id_product}
{assign var='productAttributeId' value=$product.id_product_attribute}
{assign var='quantityDisplayed' value=0}
{assign var='odd' [email protected]%2}
{assign var='ignoreProductLast' value=isset($customizedDatas.$productId.$productAttributeId) || count($gift_products)}
{* Display the product line *}
{include file="./shopping-cart-product-line.tpl" [email protected] [email protected]}
{* Then the customized datas ones*}
{if isset($customizedDatas.$productId.$productAttributeId)}
{foreach $customizedDatas.$productId.$productAttributeId[$product.id_address_delivery] as $id_customization=>$customization}

As you can see the shopping-cart.tpl includes shopping-cart-product-line.tpl, where each product get read and displayed.


Inside shopping-cart-product-line.tpl I put my increment (I get product category and if it equals to the one I'm interested to, I want to add 1 to $pippo (thanks to Mr. Milosz for his tutorial on how to add product category in cart)

{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat} {/foreach}
{if $cat.id_category==437}
{math equation='x+1' x=$pippo assign="pippo"} 

The loop works a charme, and it actually increments by 1 $pippo if   $cat.id_category==437. But the next line $pippo=0 once again. $pippo seems to reset on each loop. Why?


My var is assigned=0 outside the {foreach} cycle, so $pippo should increment by one, and then keep the new value, not the old one...




Share this post

Link to post
Share on other sites

Dear Tomerg3,


thank you so much for help. I actually checked my smarty version is 3, so you are right. 


The variable keeps on getting zero. In the image of my cart, close to the product image I put {$pippo} to let me see if it increments. As you can see, on the products there's 1 instead of 0, this means that {if} works and recognizes the category and adds 1 to $pippo. But the next line $pippo is 1 again, even if I have 2 products with the right product category. 


Above all, when I go back to shopping-cart.tpl and I make it print {$pippo}, it always equals 0 (you can see at the bottom of the page).


Sob. Any idea?


Thank you so much. :-)pippo.jpg

Share this post

Link to post
Share on other sites

I tried, but with no success  :wacko: 


I really don't know whom I could ask for help... Tomerg do you know somebody who knows prestashop and smarty (paying) that could help me pass through this issue?


It's really weird, isn't it?  :huh:


Thank you tomerg3 for your time and help...  :)

Share this post

Link to post
Share on other sites

  • 10 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More