I've added a CMS page wich shows all the products listed under the "All Products" category by creating a CMS page with a "two column with left sidebar" layout, and in the content tabs, I've added the following code:
{{block type="catalog/product_list" category_id="2" template="catalog/product/list.phtml"}}
I was reading about it and the layered navigation should be showing already. However, I've set "Is anchor" to yes, but it doesn't work. I can't make it to appear. What am I missing here? Is there a better way to create this catalog page?
Thanks in advance.
To display layered navigation on cms page you have to set root category to Is Anchor=Yes.
Please check the below link for calling layer navigation in CMS Page
http://www.webdesign-gm.co.uk/news/web-design/magento-web-design/layered-navigation-on-home-page-or-any-cms-page-magento.php
Or you can try this Design tab->Page Layout->Layout Update XML:
<reference name="left">
<!-- Layered Navigation Block -->
<block type="catalog/layer_view" name="catalog.leftnav" template="catalog/layer/view.phtml" >
<action method="setCategoryId"><category_id>40</category_id></action>
</block>
</reference>
<reference name="content">
<block type="catalog/product_list" name="home" template="catalog/product/list.phtml">
<!-- Product List View -->
<action method="setCategoryId"><category_id>40</category_id></action>
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</reference>
Open CMS->Pages->[your page] in Magento Admin Panel.
Add the following layout instructions to Design tab->Page Layout->Layout Update XML
<block type="catalog/product_list" name="product_list"
template="catalog/product/list.phtml">
<action method="setCategoryId"><category_id>3</category_id></action>
<block type="catalog/product_list_toolbar" name="product_list_toolbar"
template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="addColumnCountLayoutDepend">
<layout>empty</layout>
<count>6</count>
</action>
<action method="addColumnCountLayoutDepend">
<layout>one_column</layout>
<count>5</count>
</action>
<action method="addColumnCountLayoutDepend">
<layout>two_columns_left</layout>
<count>4</count>
</action>
<action method="addColumnCountLayoutDepend">
<layout>two_columns_right</layout>
<count>4</count>
</action>
<action method="addColumnCountLayoutDepend">
<layout>three_columns</layout>
<count>3</count>
</action>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
<block type="catalog/layer_view" name="cms_layer" as="cms_layer" before="-">
<action method="setCategoryId"><category_id>3</category_id></action>
</block>
Also insert ID of desired category in 3 (2 times).
Open desired category of your store through Catalog->Manage Categories. Make sure that Is Anchor=Yes on Display Settings tab.
One possible reason layered navigation does not show is because you also need to configure your attributes to show in layered navigation.
Related
<block type="page/html_wrapper" name="top.container" as="topContainer" translate="label">
<label>Page Header</label>
<action method="setElementClass"><value>top-container</value></action>
<block type="core/template" name="pageHeader" template="page/html/topcontainer.phtml">
<block type="core/template" name="page.header" template="page/html/page_header.phtml"/>
<block type="page/html_breadcrumbs" name="breadcrumbs" as="breadcrumbs"/>
</block>
</block>
This block lines up my entire home page. I need to add another block in to this list. This is read from CMS blocks in Admin panel. How can I find the source.
Use this code you will be able to read from CMS blocks in Admin panel with name contact.
<reference name="left">
<block type="cms/block" name="contact" before="-">
<action method="setBlockId"><block_id>contact</block_id></action>
</block>
</reference>
I need to create a custom template with products categories. Which means under one category limited number of related products should be displayed. Under another category that category related products should be displayed. Also there should be a label which display those category names. As well as I need to add a link to view more products.
I am doing this through category layout (backend). I added the below code and tried.
<reference name="header">
<block type="core/template" name="header_nav" as="headerNav" template="page/html/headernav.phtml">
</block>
</reference>
<reference name="content">
<block type="catalog/product_list" name="product_list_flowers" template="catalog/product/list.phtml">
<action method="setData"><key>category_id</key><value>178</value></action>
<action method="setColumnCount"><count>4</count></action>
</block>
<block type="catalog/product_list" name="product_list_cakes" template="catalog/product/list.phtml">
<action method="setData"><key>category_id</key><value>179</value></action>
<action method="setColumnCount"><count>4</count></action>
</block>
</reference>
Category products are displaying. But this is not limiting the number of products. Also the header is not displaying. And I cannot add a link to this page.
Can anyone please help me on this. Thank You.
To be able to set limitation on Product Collection (since this differs from category to category in your case), find below the implementation:
<reference name="content">
<block type="catalog/product_list_flowers" name="product_list_flowers" template="catalog/product/list/flowers.phtml">
<action method="setData"><key>category_id</key><value>178</value></action>
<action method="setColumnCount"><count>4</count></action>
</block>
<block type="catalog/product_list_cakes" name="product_list_cakes" template="catalog/product/list/cakes.phtml">
<action method="setData"><key>category_id</key><value>179</value></action>
<action method="setColumnCount"><count>4</count></action>
</block>
</reference>
The above code will continue to display 4 columns with products.
Create block files (If this differs from category to category)
app/code/local/Namespace/Module/Block/Catalog/Product/List/Flowers.php
app/code/local/Namespace/Module/Block/Catalog/Product/List/Cakes.php
Override List.php (If all the categories require same limitation of products)
app/code/local/Namespace/Module/Block/Catalog/Product/List.php
<reference name="content">
<block type="catalog/product_list" name="product_list_flowers" template="catalog/product/list/flowers.phtml">
<action method="setData"><key>category_id</key><value>178</value></action>
<action method="setColumnCount"><count>4</count></action>
</block>
<block type="catalog/product_list" name="product_list_cakes" template="catalog/product/list/cakes.phtml">
<action method="setData"><key>category_id</key><value>179</value></action>
<action method="setColumnCount"><count>4</count></action>
</block>
</reference>
Below line no: 87, In this public function _getProductCollection()
...
$this->_productCollection = $layer->getProductCollection();
$this->_productCollection->setPageSize(10); //this will display only 10 products
...
Let me know if I was able to understand it correctly.
Happy Coding...
im having troubles making my search results have 4 products across. I am on Magento version 1.5. I have tried modifying my catalog.xml and catalogsearch.xml using this solution:
<action method="setColumnCount"><count>4</count></action>
It never worked for categories, the only way I got categories to work was using the custom design tab and adding:
<reference name="product_list">
<action method="setColumnCount"><columns>4</columns></action>
</reference>
I have also tried modifying my list.phtml file with this code and it didnt work either:
<?php $_columnCount = 4; ?>
I have no idea what else I can do to make my search results return 4 products across, the only thing that has worked for me is the custom design tab and there is none for search results. Any help would be greatly appreciated. Thank you!
I'm on magento ce 1.7.0.2 and am using a 2 column right layout.
I had to use setColumnCount in catalogsearch.xml like this:
<reference name="content">
<block type="catalogsearch/result" name="search.result" template="catalogsearch/result.phtml">
<block type="catalog/product_list" name="search_result_list" template="catalog/product/list.phtml">
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="setColumnCount"><columns>4</columns></action>
THEN, I had to edit styles.css around line 804 and change .col2-right-layout .products-grid {width:632px;...} to width:675px I would like to have changed it to 100%, but that created a gray border to the right of the rightmost product, which isn't how the design was intended to work.
Hope this helps you!
may be the possibles you facing magento bug some times
That’s a bug in Magento. Refer to this thread: http://www.magentocommerce.com/boards/viewthread/195932/
You can use “4" instead. Try:
<!-- //Removed due to Magneto bug w/ Layout cache
<action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
-->
<action method="setColumnCount"><count>4</count></action>
or you can see detail Solution at this LINK
To doing this open up catalogsearch.xml
in line 59 and 109 right after this line:
<block type="catalog/product_list" name="search_result_list" template="catalog/product/list.phtml">
add this code:
<action method="setColumnCount"><columns>4</columns></action>
I've had the same problem, this code worked for me in Magento CE 1.9.
Add it to your local.xml and it should work. At least it did for me.
<catalogsearch_result_index>
<block type="catalogsearch/result" name="search.result" template="catalogsearch/result.phtml">
<block type="catalog/product_list" name="search_result_list" template="catalog/product/list.phtml"></block>
<action method="setListOrders"/>
<action method="setListModes"/>
<action method="setListCollection"/>
<reference name="search_result_list">
<action method="setColumnCount"><columns>4</columns></action>
</reference>
</block>
<catalogsearch_result_index>
Adding this to local.xml worked for me:
<catalogsearch_result_index translate="label">
<reference name="content">
<reference name="search_result_list">
<action method="setColumnCount"><columns>2</columns></action>
</reference>
</reference>
</catalogsearch_result_index>
Magento CE 1.9.2.0
I am using magento 1.7.In my home page I want to display product in different categories with pagination. I tried the following code, and pagination is working.How to give 'view all' here.
<reference name="left">
<block type="catalog/layer_view" before="-" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
</reference>
<reference name="root">
<block type="page/html_breadcrumbs" name="breadcrumbs" as="breadcrumbs">
</block>
</reference>
<reference name="content">
<block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" template="catalog/product/list.phtml">
<action method="setColumnCount"><column_count>6</column_count></action>
<action method="setProductsCount"><count>0</count></action>
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager" template="catalog/product/list/pager.phtml"/>
<action method="setDefaultListPerPage"><limit>15</limit></action>
<action method="setDefaultGridPerPage"><limit>6</limit></action>
<action method="addPagerLimit"><mode>grid</mode><limit>6</limit></action>
</block>
<action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>6</count></action>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</reference>
Go to your admin system->configuration.
select catalog tab and select frontend option here you can find option Allow All Products per Page select yes and save.
Now view all link is listed in your dropdown.
I am new to magento.
I am creating a products page which will contain large number of products.
I am trying to display them on my CMS page, But i am able to show only 20 records per page. I just want to show pagination, So that user can navigate through the products easily.
I have searched over the net and found this code and updated in Layout Update XML
<reference name="content">
<block type="catalog/product_list" name="featured" template="catalog/product/list.phtml">
<action method="setCategoryId"><category_id>2</category_id></action>
</block>
</reference>
But it's not working.
Are there any default paging mechanisms in Magento?
i found the solution for my question
here Layout Update XML
<reference name="content">
<block type="catalog/product_list" name="home" template="catalog/product/list.phtml">
<action method="setCategoryId"><category_id>2</category_id></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="setToolbarBlockName"><name>product_list_toolbar</name><count>5</count></action>
</block>
</reference>
just change category id you want to paginate.