我试图在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; ?>
我要做的是隐藏不可用的尺寸选项。
答案 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>