rss
twitter
    Find out what I'm doing, Follow Me :)
Showing posts with label magento trick. Show all posts
Showing posts with label magento trick. Show all posts

Monday, March 23, 2009

How to Change Decimal Point for Price Format

Sometime you need to play with the price format. magento default add 2 precision format for the price. now if you want to remove precision or want to keep 3 decimal point for price then you need to do following

1) Open /lib/zend/Currency.php file

2) Find 'precision' => 2 near line no. 78

here is the place, you need to change precision decimal

Change 'precision' => 0 if you want to keep 0 decimal

Tuesday, March 17, 2009

How to Rename The Top Links in Magento

Many times you found some demand or requirement from the client to change the top links of magento.

Yes, I am talking about top links.



You can rename this by two way

1) Searching this string in Magento's Core File (Never follow this)

Or

2) Magento has provide very good features of language management. you can rename any text by adding it's replacement text in translate.csv file

You will get this file in /app/design/frontend/default/[theme_name]/locale/en_US/ folder. You have to enter all substitute of text in every new line. In csv file, first mention the text that you want to change and after putting comma(,) mention it's replacement text.

for example,

To change "My Cart" to "My Bag", you have to insert line as

"My Cart","My Bag"

I am here mentioning some advance language replacement for you.

1) When you add any product in cart, top link will display like "My Cart (1 item)". now if you want to change this string to like "My Cart (1 item)" then you can do it by writing below code in csv file

"My Cart (%s item)","My Cart <b class='redfont'>(%s item)</b>"

2) When you add any product in wishlist, top link will display like "My Wishlist (1 item)". now if you want to change this string to like "My Wishlist (1 item)" then you can do it by writing below code in csv file

"My Wishlist (%d item)","My Wishlist <b class='redfont'>(%d item)</b>"

Hope, this will help to someone like me

thanks

Monday, March 16, 2009

How to Display Featured Product in Magento

What is featured product?
The Featured Product is a product with an attribute added from the administrative UI. When the administrator selects "Yes" in the "Featured" attribute, that product will be displayed in a content block on the category page.

Step to follow to achieve this
1) Create new "Featured" attribute
Create a new attribute by going to Catalog > Attributes > Manage Attributes > Add New Attribute.

Attribute Properties

* Attribute Identifier: featured
* Scope: Store View
* Catalog Input Type for Store Owner: Yes/No
* Unique Value (not shared with other products): No
* Values Required: No
* Input Validation for Store Owner: None
* Apply To: All Product Types

Front End Properties

* Use in quick search: No
* Use in advanced search: Yes
* Comparable on Front-end: No
* Use In Layered Navigation (Can be used only with catalog input type ‘Dropdown’): No
* Visible on Catalog Pages on Front-end: Yes

Manage Label/Options

* Default: Featured Product
* English: Featured Product

Save the new attribute and go to Catalog ? Attributes ? Manage Attributes Sets to add the attribute to the default feature set.

2) Add Block configuration to catalog.xml
Open MyCompany/app/design/frontend/default/default/layout/catalog.xml. We want to add a new right above the product list block in the default category layout.

Insert the block configuration on line 73 (default catalog.xml).
<block type="catalog/product_featured" name="product_featured" as="product_featured" template="catalog/product/featured.phtml"></block>

3) Create new block class that will instantiate the featured product

Create a new file, and directories: app/code/local/MyCompany/Catalog/Block/Product/Featured.php

<php
class MyCompany_Catalog_Block_Product_Featured extends Mage_Catalog_Block_Product_Abstract
{
public function getFeaturedProduct()
{
// instantiate database connection object
$categoryId = $this->getRequest()->getParam('id', false);
$resource = Mage::getSingleton('core/resource');
$read = $resource->getConnection('catalog_read');
$categoryProductTable = $resource->getTableName('catalog/category_product');

//$productEntityIntTable = $resource->getTableName('catalog/product_entity_int'); // doesn't work :(
$productEntityIntTable = (string)Mage::getConfig()->getTablePrefix() .'catalog_product_entity_int';
$eavAttributeTable = $resource->getTableName('eav/attribute');

// Query database for featured product
$select = $read->select()
->from(array('cp'=>$categoryProductTable))

->join(array('pei'=>$productEntityIntTable), 'pei.entity_id=cp.product_id', array())
->joinNatural(array('ea'=>$eavAttributeTable))
->where('cp.category_id=?', $categoryId)
->where('pei.value=1')
->where('ea.attribute_code="featured"');

$row = $read->fetchRow($select);


return Mage::getModel('catalog/product')->load($row['product_id']);
}
}

?>

4) Extend Mage_Catalog_Block_Category_View

Create a new file, and directories, called app/code/local/MyCompany/Catalog/Block/Category/View.php. We’re extending the core class here so our module will be separate from the core code base. When upgrading, we won’t have to worry about our code not working or having to patch files.

<php
class MyCompany_Catalog_Block_Category_View extends Mage_Catalog_Block_Category_View
{
public function getFeaturedProductHtml()
{
return $this->getBlockHtml('product_featured');
}
}
?>

5) Modify the templates

Edit app/design/frontend/default/default/template/catalog/category/view.phtml and add the following code:

<?=$this->getFeaturedProductHtml()?>

right above this line:

<?=$this->getProductListHtml()?>

Create app/design/frontend/default/default/template/catalog/product/featured.phtml and add some product info HTML to show the featured product. Here is an example that simply displays a link to the product:

<?php $_product=$this->getFeaturedProduct() ?>

Check this out: <a href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->htmlEscape($_product->getName()) ?></a>>


6) Add new blocks to the app/etc/local.xml

<blocks>
<catalog>
<rewrite> <product_featured>MyCompany_Catalog_Block_Product_Featured</product_featured>
</rewrite>
<rewrite>
<category_view>MyCompany_Catalog_Block_Category_View</category_view>
</rewrite>
</catalog>
</blocks>


I hope this helps you add a “Featured Product” feature. It certainly feels thorough, but if I left anything out, please let me know and I’ll be happy to help.

Source: http://www.magentocommerce.com/wiki/how_to_create_a_featured_product