1

Trying to add Prices on my featured products and new products on Home Page. The code for the new products is;

<?php
/**
 * Product list template
 *
 * @see Mage_Catalog_Block_Product_List
 */
/* @var $this Mage_Catalog_Block_Product_List */
?>
<?php
  $storeId = Mage::app()->getStore()->getId();
    $catalog = $this->getLayout()->createBlock('catalog/product_list')->setStoreId($storeId);

  $productList_block  = Mage::app()->getLayout()->createBlock('catalog/product_list');       
    $_productCollection=$productList_block->getLoadedProductCollection()->addAttributeToSort('news_from_date', Varien_Data_Collection::SORT_ORDER_DESC);;
    $_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">
    <?php echo $this->getToolbarHtml() ?>
    <?php // List mode ?>
    <h3><?php echo $this->__('New Products') ?></h3>
    <?php if($this->getMode()!='grid'): ?>
    <?php $_iterator = 0; ?>
    <ol class="mini-products-list home-mini-products-list" id="mini-products-list">
    <?php foreach ($_productCollection as $_product): ?>
        <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
            <?php // Product Image ?>
            <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
                <?php /* Based on the native RWD styling, product images are displayed at a max of ~400px wide when viewed on a
                        one column page layout with four product columns from a 1280px viewport. For bandwidth reasons,
                        we are going to serve a 300px image, as it will look fine at 400px and most of the times, the image
                        will be displayed at a smaller size (eg, if two column are being used or viewport is smaller than 1280px).
                        This $_imgSize value could even be decreased further, based on the page layout
                        (one column, two column, three column) and number of product columns. */ ?>
                <?php $_imgSize = 150; ?>
                <img id="product-collection-image-<?php echo $_product->getId(); ?>"
                     src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->keepFrame(false)->resize($_imgSize); ?>"
                     alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
            </a>
            <?php // Product description ?>
            <div class="product-shop home-product-shop">
                <div class="f-fix">
                    <div class="product-primary">
                        <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
                        <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>                     
                    </div>                   
                    <div class="desc std">
                        <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                        <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
                    </div>
                </div>
            </div>
            <div class="product-shop-action">
              <?php if($_product->isSaleable()): ?>
                  <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $catalog->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                  <?php echo $this->getPriceHtml($_product, true) ?>
              <?php else: ?>
                  <?php
                    // Code for ETA Date, if the product if Out of Stock 
                    $eta_date = getProductETADate($_product); 
                    if($eta_date != "")
                    {
                  ?>
                    <span class='product-eta-date'>ETA: <?php echo $eta_date; ?></span>
                  <?php } else { ?>
                    <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>  
                  <?php } ?>
              <?php endif; ?>
            </div>
            <div class="clearBoth"></div>
        </li>
    <?php if($_iterator >= 10) break; endforeach; ?>
    </ol>
    <script type="text/javascript">decorateList('mini-products-list', 'none-recursive')</script>

    <?php else: ?>

    <?php // Grid Mode ?>

    <?php $_collectionSize = $_productCollection->count() ?>
    <?php $_columnCount = $this->getColumnCount(); ?>
    <ul class="products-grid products-grid--max-<?php echo $_columnCount; ?>-col">
        <?php $i=0; foreach ($_productCollection as $_product): ?>
            <?php /*if ($i++%$_columnCount==0): ?>
            <?php endif*/ ?>
            <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
                    <?php $_imgSize = 210; ?>
                    <img id="product-collection-image-<?php echo $_product->getId(); ?>"
                         src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize($_imgSize); ?>"
                         alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
                </a>
                <div class="product-info">
                    <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>                                        
                </div>
                <div class="desc std">
                        <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                        <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
                </div>
            </li>
            <?php /*if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
            <?php endif*/ ?>
        <?php endforeach ?>
    </ul>
    <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
    <?php endif; ?>

    <div class="toolbar-bottom">
        <?php echo $this->getToolbarHtml() ?>
    </div>
</div>
<?php endif; ?>
<?php
// Provides a block where additional page components may be attached, primarily good for in-page JavaScript
if ($this->getChild('after')) {
    $_afterChildren = $this->getChild('after')->getSortedChildren();
    foreach ($_afterChildren as $_afterChildName) {
        $_afterChild = $this->getChild('after')->getChild($_afterChildName);
        //set product collection on after blocks
        $_afterChild->setProductCollection($_productCollection);
        echo $_afterChild->toHtml();
    }
}
?>

No matter what I add to try and get the

->getPrice()

function nothing shows up. Anything I am missing here?

I've setup a test site www.test.zyqor.com.au if you would like to view what I have done.

Here is my updated code;

            <?php // Product description ?>
            <div class="product-shop">
                <div class="f-fix">
                    <div class="product-primary">
                        <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
                        <?php echo $_product->getFinalPrice() ?>
                        <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>                     
</div>

I added

<?php echo $_product->getFinalPrice() ?>

but still nothing showing up?

7
  • Have you tried $product->getFinalPrice(). Commented Aug 10, 2016 at 1:37
  • Ok I tried using <?php echo $product->getFinalPrice() ?> But nothing showing up
    – SixShields
    Commented Aug 10, 2016 at 1:52
  • I think your $product is $_product Commented Aug 10, 2016 at 1:53
  • Hmm still not working. Should I be adding this under any particular bit. I've added it at the start and at the end with no difference.
    – SixShields
    Commented Aug 10, 2016 at 1:57
  • You should add after your forloop. Meaning near your product name. Commented Aug 10, 2016 at 1:57

1 Answer 1

1

You can try $_product->getFinalPrice() to get the final price of the product.

You should place this inside your foreach loop. After this line <?php foreach ($_productCollection as $_product): ?>

Also remember to add in both view- grid and list.

And finally you should clear your cache each time you make any changes.

1
  • Excellent answer. Thankyou
    – SixShields
    Commented Aug 10, 2016 at 6:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.