【问题标题】:get only available simple products of configurable product只获取可配置产品的可用简单产品
【发布时间】:2017-09-29 13:03:21
【问题描述】:

我正在使用下面的代码

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

但它给了我所有简单产品的列表,即使那些没有库存。 我只想要库存的可配置产品的简单产品列表。 我怎样才能只获得可配置产品的库存产品

【问题讨论】:

  • 使用 where 语句来选择有货的产品怎么样?

标签: php magento


【解决方案1】:

您可以查看产品库存状态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;

【讨论】:

  • 但它仍然为我提供了所有选项@vky
  • 我的朋友检查您的问题get only available simple products of configurable product 所以我为此提供了解决方案。
  • 我修改了代码并相应地使用它,所以它工作了,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 2021-12-22
  • 1970-01-01
相关资源
最近更新 更多