0

我需要获取搜索结果skus返回的列表。Magento我环顾四周并用谷歌搜索,但在搜索结果页面上显示产品时找不到产品的来源。我searchresults.phtml打开了文件。看起来什么时候$this->getChildHtml('content')被调用是产品循环的地方,但我认为核心/文本列表有一些魔力。无论如何,我想访问搜索结果提供的产品集合并在 searchresults.phtml 文件中循环浏览它。

编辑:澄清一下,我真正需要的是访问来自搜索结果的产品集合。

编辑:原来 searchresults.phtml 是一个自定义页面。

4

3 回答 3

2

在 app/design/frontend/{package}/{theme}/catalog/product/list.phtml 中有一行:

$_productCollection=$this->getLoadedProductCollection();

如果您想在该模板中获取所有 skus(每页不限),您可以执行以下操作:

$select = clone $_productCollection->getSelect();
$select
        ->reset(Zend_Db_Select::LIMIT_COUNT)//remove this line if you want list of skus belonging only to current page
        ->reset(Zend_Db_Select::LIMIT_OFFSET) // and this one too
        ->reset(Zend_Db_Select::COLUMNS)
        ->reset(Zend_Db_Select::ORDER)
        ->columns('sku');
$all_skus = Mage::getSingleton('core/resource')->getConnection('core_read')->fetchCol($select,'');
于 2013-10-10T18:46:54.753 回答
0

目录搜索

在类下面扩展

\app\code\core\Mage\CatalogSearch\Block\Advanced\Result.php

在 result.php 中创建新函数

protected function skuProductCollection(){
        return $this->getSearchModel()->getProductCollection()->getColumnValues('sku');
    }

并在您的 phtml 文件中编写以下代码

<?php $allSku = $this->skuProductCollection() ?>
<?php print_r($allSku); ?>

希望对你有帮助

于 2013-10-10T17:06:59.010 回答
0

在意识到我正在使用自定义模板后,我现在看到可能需要解决两个地方:

目录搜索/result.phtml

目录搜索/高级/result.phtml

对于 result.phtml,块是 Mage_CatalogSearch_Block_Result。在该块中,您可以调用$this->_productCollection(). sku 在集合中。我假设高级也是如此。

编辑:对于您必须使用的高级搜索$this->getChild('search_result_list')->_productCollection

于 2013-10-10T20:04:00.757 回答