【问题标题】:Magento : get related products from both product ID and current category IDMagento :从产品 ID 和当前类别 ID 中获取相关产品
【发布时间】:2013-04-16 20:35:39
【问题描述】:

我在培训期间完全从 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 天后,我仍然不知道如何解决我的问题。如果有人可以提供帮助,哪怕是一点点,只是一个线索......

【问题讨论】:

  • 参考这里并应用代码 // 添加 OR 条件: $collection->addAttributeToFilter(array( array( 'attribute' => 'field_name', 'in' => array(1, 2, 3), ), array('attribute' => 'date_field', 'from' => '2000-09-10', ), ));

标签: magento magento-1.7


【解决方案1】:

我目前无法对此进行测试,但您可以尝试执行以下操作:


$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

我要测试一下,等我有更多时间。

【讨论】:

    【解决方案2】:

    其实我只是自己解决了我的问题。

    如果将来可以帮助任何人,这是我的解决方案:

    $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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2015-05-27
      相关资源
      最近更新 更多