I am trying to add labels on product list page based on special conditions. I have buy one get one free sale, so When user visits buy 1 get 1 free category, he should be able to see the label on the products(in my case, I have bogo.png image). Everything worked fine with the modifications I did until I searched on the store front for a product, I get undefined variable error.
2015-01-09 18:26:58 - PHP Notice: Undefined index: bogo in catalog/view/theme/YourTheme/template/product/product_collection.tpl on line 26
I did google search for the problem and browsed opencart forums for days without any luck. So here is what I did until now. On Category.php in catalog/controller file, I added under this array
$this->data['products'][]= array(
'bogo' => $bogo,
And added this condition under getProducts specifying if the category id is the category id for the buy 1 get 1 free category set bogo to true.
$results = $this->model_catalog_product->getProducts($data);
if($category_id==977){
$bogo = true;
}
else{
$bogo = false;
}
and on product_collection.tpl file, I did this change.
<pre><code>
<?php if( $product['bogo'] ) { ?>
<span class="product-label-bogo2"><img src='bogo.png'></span>
<?php } else if ($product['special']) { ?>
<span class="product-label-special"><span><?php echo $this->language->get( 'text_sale' ); ?></span></span>
<?php } ?>
</code></pre>
Everything is fine if I go to that category it displays the label perfectly, the problem is I get that above error only when I search for anything on store front. Please note that before rating the question negatively, I am not familiar at all with php and I did my best with research for hours to solve this.