Disabling A Category
For some reason this does not work:
$category->setIsActive(false);
You must use this instead:
$category->setIsActive(0);
Related cards:
Non-Required Category Attribute Not Set in Global Scope
When a category is created whilst in a store scope, and a value is set against an attribute which has is_required
set to false
, and has a scope more specific than global
, then a value is not set against the global scope, resulting in the sto...
Getting A Products URL
Potentially confusing due to the 3 methods you could use, all of which are in Mage_Catalog_Model_Product
:
public function getUrlPath($category=null)
public function getUrlInStore($params = array())
public function getProductUrl($use...
Get and Resize Category Images
public function getCategoryImage(Mage_Catalog_Model_Category $category, $width = 250, $height = 250)
{
// return when no image exists
if (!$category->getImage()) {
return false;
}
// return when...
Category Product Collection
This snippet provides a collection of products within a category
$cat = Mage::getModel('catalog/category')->load(1);
$coll = Mage::getResourceModel('catalog/product_collection');
$coll->addCategoryFilter($cat);
 from a controll...
Adding A Column to a Flat Table
Handy to add attributes to sales_flat_order:
$installer->getConnection()->addColumn(
$this->getTable('sales/order'),
'some_attribute',
[
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
'length' => ...
Adding Attribute To Category List Product Collection
Only a core set of attributes are added to the product collection (for the list page) by default. This bit of XML will allow you to add additional attributes to that collection:
<config>
<frontend>
<product>
...
Add Category Attributes Through SQL Updates
This is creating a module which will update categories to include new attributes.
-
inside app/etc/modules/yourmodule.xml put the following:
<?xml version="1.0"?> <config> <modules> <Yourmodule_Sql>...
Admin Grids - Filtering A Joined Column
Often, you'll want to add a column to a collection used in a grid, and to do so you'd use _prepareCollection()
:
protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
...
Creating a Datetime attribute that stores time
Magento has a Datetime backend model but formats a Zend_Date
object without the time. So if you want to store datetime (actually with time) you will need to setup your own backend model.
Here is how i've done it:
class Namespace_Module_Mod...