Magento - 获取可配置的产品尺寸

时间:2016-12-15 09:41:11

标签: php magento magento-1.9

我试图在list.phtml网格中获取可配置产品的所有可用尺寸。

使用下面的代码,我可以成功获得所有尺寸,但它甚至可以显示不可用的尺寸。

    <?php if($_product->isSaleable()): ?>
    <div class="taglie">
    <?php $cProduct = Mage::getModel('catalog/product')->load($_product->getId());
    //check if product is a configurable type or not
    if ($cProduct->getData('type_id') == "configurable") {
        //get the configurable data from the product
        $config = $cProduct->getTypeInstance(true);
        //loop through the attributes
        foreach($config->getConfigurableAttributesAsArray($cProduct) as $attributes) { ?>
            <?php foreach($attributes["values"] as $values) {
                echo "<span>".$values["label"]."</span>";
            } ?> 
        <?php 
        } 
    } ?>
</div>
<?php else: ?>
    <?php echo $this->__('Out of Stock') ?>
<?php endif; ?>

我要做的是隐藏不可用的尺寸选项。

1 个答案:

答案 0 :(得分:1)

<p style="margin-top: 8px;">    
    <?php 
        $sizes = array();
        if($_product->isConfigurable()){
            $allProducts = $_product->getTypeInstance(true)->getUsedProducts(null, $_product);
            foreach ($allProducts as $subproduct) {
                if ($subproduct->isSaleable()) {
                    $sizes[] = $subproduct->getAttributeText('size');
                }
            }
            if(count($sizes)>0) {
            echo implode(", ", $sizes);
            }
        }
    ?>
</p>