如何检查产品是否在比较列表magento中

时间:2011-11-25 07:45:19

标签: php magento

您可以添加要比较的产品。如果产品未添加,我必须显示“添加到比较”链接,否则显示“比较”。我必须检查产品是否在比较列表中。

我有list.phtml个文件。

我尝试了这个,但这会在比较列表中添加所有产品。

$_productCollection = Mage::helper('catalog/product_compare')->getItemCollection()

我可以循环浏览退回的产品,并可以检查该产品是否在此系列中,但我正在寻找一个产品idsku并返回true的电话或false

我还添加了这样的过滤器,但不起作用

$_productCollection = Mage::helper('catalog/product_compare')->getItemCollection()
            ->addAttributeToFilter('sku', $item->getSku());

1 个答案:

答案 0 :(得分:2)

尝试使用

Mage_Catalog_Model_Product_Compare_List

及其方法:

getItemCollection

像这样:

$collection = Mage::getModel('catalog/product_compare_list')->getItemCollection();
$collection->.....Additional filters go here.

为什么帮手不起作用?因为已经在那里加载了集合:

v 1.6

public function getItemCollection()
{
    if (!$this->_itemCollection) {
        $this->_itemCollection = Mage::getResourceModel('catalog/product_compare_item_collection')
            ->useProductItem(true)
            ->setStoreId(Mage::app()->getStore()->getId());

        if (Mage::getSingleton('customer/session')->isLoggedIn()) {
            $this->_itemCollection->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId());
        } elseif ($this->_customerId) {
            $this->_itemCollection->setCustomerId($this->_customerId);
        } else {
            $this->_itemCollection->setVisitorId(Mage::getSingleton('log/visitor')->getId());
        }

        Mage::getSingleton('catalog/product_visibility')
            ->addVisibleInSiteFilterToCollection($this->_itemCollection);

        /* Price data is added to consider item stock status using price index */
        $this->_itemCollection->addPriceData();

        $this->_itemCollection->addAttributeToSelect('name')
            ->addUrlRewrite()
            ->load();

        /* update compare items count */
        $this->_getSession()->setCatalogCompareItemsCount(count($this->_itemCollection));
    }

    return $this->_itemCollection;
}

因此,您可以按模型加载集合并在模板或自己的自定义助手模型中过滤自身。