Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 启用扁平类别和产品后未显示的畅销书_Php_Magento_Flat - Fatal编程技术网

Php 启用扁平类别和产品后未显示的畅销书

Php 启用扁平类别和产品后未显示的畅销书,php,magento,flat,Php,Magento,Flat,我有一个代码来显示我们店里最畅销的产品。如果禁用平面类别和平面产品,代码运行良好。有没有一种方法可以在不禁用平面产品和类别的情况下实现此功能。谢谢 class Mage_Catalog_Block_Product_Viewed extends Mage_Catalog_Block_Product_Abstract{ public function __construct(){ parent::__construct(); $storeId = Mag

我有一个代码来显示我们店里最畅销的产品。如果禁用平面类别和平面产品,代码运行良好。有没有一种方法可以在不禁用平面产品和类别的情况下实现此功能。谢谢

class Mage_Catalog_Block_Product_Viewed extends Mage_Catalog_Block_Product_Abstract{
    public function __construct(){
        parent::__construct();
        $storeId    = Mage::app()->getStore()->getId();
        $products = Mage::getResourceModel('reports/product_collection')
            ->addOrderedQty()
            ->addMinimalPrice()
            ->addAttributeToSelect('*')
            ->addAttributeToSelect(array('name', 'price', 'small_image'))
            ->setStoreId($storeId)
            ->addStoreFilter($storeId)
            ->setOrder(‘ordered_qty’, ‘desc’);
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
        Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);

        $products->setPageSize(15)->setCurPage(1);
        $this->setProductCollection($products);
    }
}

请确保查询需要返回的所有产品属性在Magento admin(目录>管理属性)中标记为“用于产品列表”=是。属性仅在设置此选项(或其他一些选项)时才成为平面表格的一部分,这是启用平面目录时的主要区别之一

您可以对集合的查询进行Mage::log()选择,并查看打开和关闭平面目录时的差异,这将帮助您了解差异并进行调试:

$products->setPageSize(15)->setCurPage(1);
$products->load(); // this is needed only for debugging, 
                   // to get the "real" database query
                   // PLEASE remove this and Mage::log 
                   // in production as it would affect performance
Mage::log( (string)$products->getSelect() );
$this->setProductCollection($products);

能给我们看看代码吗?此外,请阅读:这更可能是因为
报告/product\u集合
仅用于adminhtml中的集合,并且没有实现在启用扁平产品/类别时正确加载的要求。