如何才能在magento的可配置产品中获得哪些产品无法销售?

时间:2015-01-20 07:51:21

标签: magento

我可以通过这段代码得到它: -

$allProducts = $_product->getTypeInstance(true)->getUsedProducts(null, $_product);
foreach($allProducts as $p)
   if($p->isSaleable())
endforeach;

但我想要的方式是......就像我有一个可配置产品,其中我有2种颜色白色然后它的相关尺寸如s,m& l总共我有3个产品组合了白色到s,m& l&同样的方式蓝&它与s,m& s相关湖最后我可以说我有6种产品。

现在的事情是White-> s& l和Blue-> s&这些产品缺货,问题是所有产品的名称都相同,即T恤,那么现在我如何才能知道哪些组合产品缺货?

任何代码?

由于

2 个答案:

答案 0 :(得分:1)

如果我理解得合理,你想知道它的大小和尺寸。颜色缺货?因此,在那个if ($p->isSaleable)中,您应该能够检查颜色和大小:

echo $p->getAttributeText("color");
echo $p->getAttributeText("size");

如果这不起作用,请尝试:

$p->getResource()->getAttribute("color")->getFrontend()->getValue($p);

其他方式是尺寸&简短描述中的颜色,或具有某种SKU代码,以便能够区分它们。 IE浏览器。 MYPRODUCT46。其中4可以映射到颜色,6可以映射到大小)。

我希望它有所帮助!

答案 1 :(得分:1)

感谢Javier的宝贵支持:)

我想要输出的方式,我在这里发布解决方案: -

/* FOR CONFIGURABLE PRODUCTS */
$_product = Mage::registry('current_product');
if($_product->isConfigurable())
{
    /* FIRST GET ALL ATTRIBUTES OF CONFIGURABLE PRODUCT */
    $attributes = $_product->getTypeInstance(true)->getConfigurableAttributes($_product);
    foreach($attributes as $att)
    {
        $pAtt = $att->getProductAttribute();
        $array_attribute_code[] = $pAtt->getAttributeCode();
    }

    /* NOW LOOP THE PRODUCTS & GET COMBINATIONS WHERE PRODUCTS ARE OUT OF STOCK */
    $allProducts = $_product->getTypeInstance(true)->getUsedProducts(null, $_product);
    foreach($allProducts as $allProduct)
    {
        if(!$allProduct->isSaleable())
        {
            for($i=0;$i<count($array_attribute_code);$i++)
            {
                echo $allProduct->getAttributeText($array_attribute_code[$i]).' ';
            }
            echo "<br/>";
        }
    }
}

尝试以上代码&amp;得到像白色的输出对,然后beneth白色然后beneth蓝色s

重要的是告诉您我已在我的模块的.phtml文件中实现了此代码。

谢谢:)