为什么类别中的产品使用Mage :: app('默认')而不使用Mage :: app(' admin')?

时间:2014-06-04 09:44:34

标签: magento collections count categories product

我写了一个扩展名,在这个扩展名中我需要一个类别的活跃产品的数量。

我使用此剪辑按类别确定活动产品:

 $return = Mage::getModel('catalog/category')
        ->load($category->getId())
        ->getProductCollection()
        ->addAttributeToSelect('entity_id')
        ->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
        ->addAttributeToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
        ->count();

如果我在test.php中调用该函数来获取活动产品的数量

header('Content-Type: text/html; charset=utf-8');
require_once "app/Mage.php";
Mage::reset();
Mage::app('default');

var_dump(myDummyFunction($categoryObject));

结果我得到3分。如果我在扩展名中使用相同的magento中的相同功能(在管理区域中使用),则结果为0.

有人知道为什么会这样,以及如何解决这个问题?

顺便说一下:如果我改变了Mage :: app('默认');在test.php到Mage :: app(' admin');它还显示0 ...

1 个答案:

答案 0 :(得分:7)

使用此

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 

就在此之前

Mage::app('default');