我可以通过这段代码得到它: -
$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恤,那么现在我如何才能知道哪些组合产品缺货?
任何代码?
由于
答案 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文件中实现了此代码。
谢谢:)