商品が比較リストのマゼンタにあるかどうかを確認するには

比較する商品を追加することができます。製品が既に追加されていない場合は、「比較する」というリンクを表示する必要があります。商品が比較リストにあるかどうかを確認する必要があります。

私は list.phtml ファイルを持っています。

私はこれを試しましたが、これはすべての製品を比較リストに追加します。

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

返された商品をループすることができ、商品がこのコレクションに含まれているかどうかを確認できますが、商品 id または sku を取って > true または false を選択します。

私もこのようなフィルタを追加しましたが動作しません

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

1 答え

使用してみてください

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;
}

したがって、モデルとテンプレートでコレクションをロードしたり、独自のカスタムヘルパーモデルでフィルタをロードしたりすることができます。

2
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com