获得配置产品
问题描述:
的只提供简单的产品,我用下面的代码获得配置产品
$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;
,但它给了我一切简单的产品名单,甚至那些没有现货。 我只想要一个可配置产品的简单产品列表。 我怎样才能只股票产品配置产品的
答
您可以检查产品库存状态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;
如何使用WHERE语句来选择产品,他们有库存吗? – Sheldon