我在训练期间完全开始使用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天后,我仍然不知道如何解决我的问题。如果有人能提供帮助,即使是一点点,也只是一个线索......答案 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
}
}