製品コレクションからグループ化された製品の最小価格を取得するにはどうすればよいですか?

magento.stackexchange https://magento.stackexchange.com/questions/5139

  •  16-10-2019
  •  | 
  •  

質問

製品コレクションリソースモデルを使用して、すべての製品をロードしています。

$_categoryId = $this->getCategoryId();

$_productCollection = Mage::getResourceModel('catalog/product_collection')
        ->addMinimalPrice()
        ->addFinalPrice()
        ->addTaxPercents()
        ->addCategoryFilter(Mage::getModel('catalog/category')->load($_categoryId))
        ->addAttributeToSelect('*')
        ->addAttributeToFilter('status', 1)
        ->addAttributeToFilter('visibility', 4);

ただし、たとえば、グループ化された製品の最小価格を表示することはできません。

echo $_productCollection->getFirstItem()->getMinimalPrice();

これは、シンプルな製品で機能します。これは、これがカタログ/Product_Listブロックではなく、コア/テンプレートブロックタイプであるという事実に関連しているようです。ただし、Catalog/Product_Listを使用することは、他の理由によりオプションではありません。

役に立ちましたか?

解決

コードを更新して、 *を選択するだけでなく、代わりにカタログ構成属性を使用する場合、コードはすべての製品タイプで動作します。

Mage::getSingleton('catalog/config')->getProductAttributes()

あなたのコードは次のように見えるはずです。

$_categoryId = $this->getCategoryId();

$_productCollection = Mage::getResourceModel('catalog/product_collection')
    ->addMinimalPrice()
    ->addFinalPrice()
    ->addTaxPercents()
    ->addCategoryFilter(Mage::getModel('catalog/category')->load($_categoryId))
    ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
    ->addAttributeToFilter('status', 1)
    ->addAttributeToFilter('visibility', 4);

この場合、製品の種類ごとに正しい最小価格がロードされます。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top