I need to create a new category page which list all products added by past 7 days , that page should act like a normal category page with the layered Navigation (I'm using AITOC layered navigation) but with products added in past week . What is the best method to do this ? . I can get the prouct collection of products added in last 7 days and then create a new cms page and point my collection to it but it will not include pagination layered navigation etc... so there should be a better method to do this
Hi Chamal,
You can realize this within the same category by adding a new URL parameter ?filter=week.
Get this parameter in
/app/code/local/AdjustWare/Nav/Model/Observer.php
and add a condition to product collection by adding after this line
$configurableProducts = array_unique($configurableProducts);
the following code
if(Mage::app()->getRequest()->getParam('filter') == 'week') { $collection->getSelect()->where('created_at > NOW() - INTERVAL 7 DAY'); }
Besides, you will need to add analogous conditions for setbar filters to the following files
/app/code/local/AdjustWare/Nav/Model/Catalog/Layer/Filter/Attribute.php
/app/code/local/AdjustWare/Nav/Model/Catalog/Layer/Filter/Price.php
Hope this helps!
Aitoc is a group of distinguished web developers that have been building for Magento since 2009.
See our extensions for Magento 2.
thank you very much for replying to my question ,but I need to achive this in a complete new category not in a same category any suggestion for it ?
Hi Chamal,
In this case you can use pretty much the same piece of code.
The only difference would be, you don't have to add the parameter to the URL.
You should check right from the start whether an additional condition should be applied to this category. In this array $categoryIds , you'd then need to write the categories that require the additional condition.
if(in_array(Mage::registry('current_category')->getId(), $categoryIds)) { $collection->getSelect()->where('created_at > NOW() - INTERVAL 7 DAY'); }
Aitoc is a group of distinguished web developers that have been building for Magento since 2009.
See our extensions for Magento 2.
I have tried what you described but couldn't find a place to add the condition in following files.
/app/code/local/AdjustWare/Nav/Model/Catalog/Layer/Filter/Attribute.php
/app/code/local/AdjustWare/Nav/Model/Catalog/Layer/Filter/Price.php
where to add above condition in Attribute.php and Price.php . So far I have added condition to Observer.php only but it is not showing any results , please help me.
to mention I have no products already added to above category and need to display products from a custom collection no need to adding products to the category
/app/code/local/AdjustWare/Nav/Model/Catalog/Layer/Filter/Attribute.php
function _getBaseCollectionSql
/app/code/local/AdjustWare/Nav/Model/Catalog/Layer/Filter/Price.php
function getMinOrMax
If you use custom collection then the code should be added to this collection, not to the category's collection.
If you'll have further questions, you can contact support on our website.
Aitoc is a group of distinguished web developers that have been building for Magento since 2009.
See our extensions for Magento 2.