0 0 0 0


I want to add a sub menu item "Locations" to "Catalog" menu item in opencart administration. On selecting locations, I want to see my own location management view page which inetracts with my own locations table in the opencart database.

Please let me know where and what mvc's to create to achieve this functionality in open cart. Thank you.

Best Answer:

I have already implemented your concept in my opencart project.


1) by default in product adding dashboard page have a field to enter product location you fill product location there and follow my points

2) open catalog > model > category.php add this code

function getCategoryLoction($category_id) {
    $sql = "select p.location,count(p.location) as locCount from " . DB_PREFIX . "product p inner join " . DB_PREFIX . "product_to_category p2c on(p.product_id=p2c.product_id) where p2c.category_id=$category_id group by p.location";
    $query = $this->db->query($sql);
    return $query->rows;

3) open catalog > controller>module > category.php add this code

/* location based search starts here */
$incomingCatId  = ($this->data['category_id']!= '')?$this->data['category_id']:'0';
$locations  =   $this->model_catalog_category->getCategoryLoction($incomingCatId); 
foreach($locations as $loc):
    $this->data['locations'][] = array(
        'location' => $loc['location'],
        'count' =>  $loc['locCount'],
        'href' => $this->url->link('product/category', 'path=' . $incomingCatId.'&loc='.$loc['location'].'')
/* location based search ends here */

4) open catalog > view >theme >default >template>module > category.tpl category add this code

<div class="l_nav_box">
    <div class="l_nav_title">
    <ul class="cat_ul">
         <?php if(!empty($locations)): ?>
         <?php foreach ($locations as $loc) : ?>
         <?php if($loc['location']!= ''): ?>
         <li> <a href="<?php echo $loc['href']; ?>"><?php echo $loc['location']; ?> <span>(<?php echo $loc['count']; ?>)</span> </a> </li>
         <?php endif; ?>
         <?php endforeach; ?>
         <?php else: ?>
         No Locations mentioned
         <?php endif; ?>    

5) important in admin side activate category module and save it choose

Copyright © 2011 Dowemo All rights reserved.    Creative Commons   AboutUs