3

私はトレーニング期間中、Magento から完全に始めました。あるプロジェクトに取り組んでから 2 週間が経ちましたが、どうすればよいか分からないことがあります。

私は自分のカテゴリツリーを表現しようとしています:

- accessories
    * visors
    * communication systems
    * other
- helmets
    * a lot of subcategories and subcategories...

私の実際の問題は次のとおりです。私はアクセサリーのサブカテゴリの 1 つに属しています (バイザーなど)。selectヘルメットのモデルを選べるフォームを追加しました。が送信されたらselect、選択したヘルメット モデル (実際には ) に関連するバイザーのリストを表示したいと思いvirtual productます。

現在のカテゴリ ID (この場合はバイザー) と仮想製品 ID (ヘルメット モデル) を取得できます。しかし、商品IDとカテゴリーIDの両方で関連商品を表示する方法がわかりません。

私はこのようなものを試しました:

$relatedProducts = Mage::getModel('catalog/product_link')
                         ->getCollection()
                         ->addCategoryFilter($myCurrentCat)
                         ->addFieldToFilter('product_id',$myVirtualProductId)
                         ->addFieldToFilter('link_type_id','1');

しかし、うまくいかないようです。

どんな助けでも大歓迎です。ありがとう。

編集 : この質問をしてから 10 日経った今でも、問題の解決方法がわかりません。誰かが少しでも、手がかりを助けることができれば...

4

2 に答える 2

4

現時点ではこれをテストできませんが、次のようなことを試すことができます。


$collection = Mage::getSingleton('catalog/product_link')
    ->useRelatedLinks()
    ->getProductCollection()
    ->setIsStrongMode();
$product = Mage::getModel('catalog/product')->load($productId);
$collection->setProduct($product);
$collection->addCategoryFilter($category); //I'm not sure if this will work correctly

もう少し時間ができたら、テストします。

于 2013-04-09T09:21:42.760 に答える
0

実際、私は自分の問題を自分で解決しました。

将来誰かを助けることができるなら、これが私の解決策です:

$mainProduct = Mage::getModel('catalog/category')->load($myCurrentCat->getId());
$mainProduct = $mainProduct->getProductCollection();
$mainProduct = $mainProduct->addAttributeToFilter('product_id', $myVirtualProductId);

foreach ($mainProduct as $product) {
    $related = $product->getRelatedProductIds();
    if ($this->array_contains($related, $myVirtualProductId)) {
        //TODO
    }
}
于 2013-04-16T12:35:39.413 に答える