3

我在培训期间完全从 Magento 开始。我已经在一个项目上工作了两个星期,有时我不知道如何进行。

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

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

我的实际问题是:我属于配件子类别之一(例如遮阳板)。我添加了一个select允许选择头盔型号的表格。提交后select,我想显示与所选头盔型号相关的遮阳板列表(实际上是 a 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 回答