首页 文章

只获得可配置产品的简单产品

提问于
浏览
0

我正在使用下面的代码

$configurable= Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
                $simpleCollection = $configurable->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
                $productAttributeOptions = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product);
                $attributeOptions = array();
                foreach ($productAttributeOptions as $productAttribute) {

                        foreach ($productAttribute['values'] as $attribute) {
                            $attributeOptions[$productAttribute['label']][] = 
                            array('id' => $attribute['value_index'],
                                'label' => $attribute['label'],
                                'mainId' => $productAttribute['attribute_id'] );
                        }

                    }


            return $attributeOptions;

但它给了我所有简单产品的清单,即使那些库存不可用 . 我只想要一份有库存的可配置产品的简单产品清单 . 我怎样才能获得可配置产品的库存产品

1 回答

  • 0

    您可以在库存中查看产品库存状态 0 - 没有库存或 1

    $configurable= Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
    $simpleCollection = $configurable->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
    /* -------- Add this  ------- */
    $simpleCollection->getSelect()->join('cataloginventory_stock_status', 'cataloginventory_stock_status.product_id = e.entity_id', array('stock_status'));
    $simpleCollection->getSelect()->where("`cataloginventory_stock_status`.`stock_status` = 1");
    
    $productAttributeOptions = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product);
    $attributeOptions = array();
    foreach ($productAttributeOptions as $productAttribute) {
    
            foreach ($productAttribute['values'] as $attribute) {
                $attributeOptions[$productAttribute['label']][] = 
                array('id' => $attribute['value_index'],
                    'label' => $attribute['label'],
                    'mainId' => $productAttribute['attribute_id'] );
            }
    
        }
    
    
    return $attributeOptions;
    

相关问题