Insert a previous and next product page button on your single product page in Magento.
First, find app/design/frontend/your-instance-name/your-theme/template/catalog/product/view.phtml.
Now open the view.phtml with any code editor. If you want to insert Previous & Next product button after the Product Name as me, then find the following code:
1 2 3 4 5 |
<div class="product-name"> <h1> <?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?> </h1> </div> |
Beneath it, post:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php // Previous and Next product links in product page $_product = $this->getProduct(); if(!$_product->getCategoryIds()) return; // Don't show Previous and Next if product is not in any category $cat_ids = $_product->getCategoryIds(); // get all categories where the product is located $cat = Mage::getModel('catalog/category')->load( $cat_ids[0] ); // load first category, you should enhance this, it works for me $order = Mage::getStoreConfig('catalog/frontend/default_sort_by'); $direction = 'asc'; // asc or desc $category_products = $cat->getProductCollection()->addAttributeToSort($order, $direction); $category_products->addAttributeToFilter('status',1); // 1 or 2 $category_products->addAttributeToFilter('visibility',4); // 1.2.3.4 $cat_prod_ids = $category_products->getAllIds(); // get all products from the category $_product_id = $_product->getId(); $_pos = array_search($_product_id, $cat_prod_ids); // get position of current product $_next_pos = $_pos+1; $_prev_pos = $_pos-1; // get the next product url if( isset($cat_prod_ids[$_next_pos]) ) { $_next_prod = Mage::getModel('catalog/product')->load( $cat_prod_ids[$_next_pos] ); } else { $_next_prod = Mage::getModel('catalog/product')->load( reset($cat_prod_ids) ); } // get the previous product url if( isset($cat_prod_ids[$_prev_pos]) ) { $_prev_prod = Mage::getModel('catalog/product')->load( $cat_prod_ids[$_prev_pos] ); } else { $_prev_prod = Mage::getModel('catalog/product')->load( end($cat_prod_ids) ); } ?> <div> <?php if($_prev_prod != NULL): ?> <a href="<?php print $_prev_prod->getUrlPath(); if($search_parameter):?>?search=1<?php endif;?>"><span><?php echo $this->__('PREVIOUS PRODUCT') ?></span></a> <?php endif; ?> || <?php if($_next_prod != NULL): ?> <a href="<?php print $_next_prod->getUrlPath(); if($search_parameter):?>?search=1<?php endif;?>"><span><?php echo $this->__('NEXT PRODUCT') ?></span></a> <?php endif; ?> </div> |
Reference