Magento:从产品ID和当前类别ID获取相关产品

时间:2013-03-28 13:44:44

标签: magento magento-1.7

我在训练期间完全开始使用Magento。我现在已经在一个项目上工作了两个星期,有时我无法弄清楚如何继续。

我要尝试代表我的类别树:

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

我的实际问题是:我在其中一个辅助子类别(例如遮阳板)。我添加了一个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天后,我仍然不知道如何解决我的问题。如果有人能提供帮助,即使是一点点,也只是一个线索......

2 个答案:

答案 0 :(得分: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

我会测试它,当我会有更多时间。

答案 1 :(得分: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
    }
}