【问题标题】:Magento: Filter Configurable Product by their optionsMagento:按选项过滤可配置产品
【发布时间】:2011-04-14 22:18:59
【问题描述】:

我想按属性过滤一些可配置的产品,这些属性用于创建该产品的更多实例(尺寸、颜色等)。这意味着这些属性不会直接分配给可配置产品,而是分配给它们的子项。

我已经有一个代码,可以通过某些属性过滤可配置产品,但是这些都分配给主产品,并且子产品继承了它:设计师。

$attributes_designers = $this->getRequest()->getParam('designers');   
$attributes_colors = $this->getRequest()->getParam('color');
$attributes_sizes = $this->getRequest()->getParam('size');



$currentCategory =  Mage::getModel('catalog/layer')->getCurrentCategory(); 
$_productCollection = $currentCategory->getProductCollection();

if(count($attributes_designers)>0 and !in_array("ALL",$attributes_designers)) {        
    $_productCollection->addAttributeToFilter('designer',$attributes_designers);
}
if(count($attributes_colors)>0 and !in_array("ALL",$attributes_colors)) {        
    $_productCollection->addAttributeToFilter('color',$attributes_colors);
}
if(count($attributes_sizes)>0 and !in_array("ALL",$attributes_sizes)) {        
    $_productCollection->addAttributeToFilter('size_apparel_eu',$attributes_sizes);
}
if(isset($_GET['order'])) $_productCollection->setOrder($this->getRequest()->getParam('order'), $this->getRequest()->getParam('dir'));

 $_productCollection->load();

这里,colorsize_apparel_eu 不起作用,因为它们不是直接分配给产品,而是它们的子代。

【问题讨论】:

    标签: magento filter


    【解决方案1】:

    如果我在这里的理解正确...您首先需要使用以下内容获取子产品:

    $_product = $this->getProduct();
    $_configurable_model = Mage::getModel('catalog/product_type_configurable');
    $_child_products = array();
    if ($_product->getTypeId() == 'configurable')
      $_child_products = $_configurable_model->getUsedProducts(null, $_product);
    

    然后你可以使用某种循环(foreach 很方便)

    foreach ($_child_products as $_child_product){
        $_child_product->getRequest()->getParam('designers');
    }
    

    或者您需要调用这些方法来获取子产品信息。

    我希望这是有帮助和相关的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      相关资源
      最近更新 更多