在Magento 1.9上显示可配置产品的库存

时间:2015-10-24 15:11:32

标签: php magento

我是Magento的新手,我在显示可配置产品库存方面遇到了问题。我尝试了很多我在Google,Stackoverflow,Magento论坛上发现的东西,但我失败了。这是我唯一无法尝试的解决方案:

  

$ _ product是您的可配置产品。

     

简单地使用它:

     

$ _ product-> getTypeInstance(true) - > getUsedProducts(null,$ _product);

     

所以你可能有类似的东西:

     

foreach($ _product-> getTypeInstance(true) - > getUsedProducts(null,   $ _product)as $ simple){        $ stock = Mage :: getModel(' cataloginventory / stock_item') - > loadByProduct($ simple) - > getQty();        echo $ simple-> getName()。"尺寸"。$ simple-> getSize()。"有库存的股票&#34 ;;        echo'
&#39 ;;我让你适应你的确切需求,并在需要时提出问题

我的问题是:我不知道在哪里可以应用此解决方案!

ScreenShot()

2 个答案:

答案 0 :(得分:0)

你需要执行两个步骤来实现这个功能,但是我已经使用1.8版进行了检查,但希望它能在你的情况下工作

步骤1.复制文件app / code / core / mage / catalog / block / product / view / type / configurable.php

在app / code / local下创建一个具有相同目录结构的文件夹mage / catalog / block / product / view / type / configurable.php

现在在configuration.php文件中找到函数名getJsonConfig。

转到以下代码

   $info['options'][] = array(
                        'id'        => $value['value_index'],
                        'label'     => $value['label'],
                        'price'     => $configurablePrice,
                        'oldPrice'  => $this->_prepareOldPrice($value['pricing_value'], $value['is_percent']),
                        'products'  => $productsIndex,
		
                    );
 

在此代码之前放置两行代码

$simpleproduct = Mage::getModel('catalog/product')->load($productsIndex); 
$qty = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($simpleproduct)->getQty();

在这里您可以看到我按产品ID获取产品库存,现在在info选项数组代码中您必须添加一个参数

$info['options'][] = array(
                        'id'        => $value['value_index'],
                        'label'     => $value['label'],
                        'price'     => $configurablePrice,
                        'oldPrice'  => $this->_prepareOldPrice($value['pricing_value'], $value['is_percent']),
                        'products'  => $productsIndex,
			'qty'       => $qty, // we are sending stock parameter so we can use it latter in drop down field
		
                    );

步骤2.现在转到js / varian / configuration.js

找到以下一行

 if(allowedProducts.size()>0){
                    options[i].allowedProducts = allowedProducts;
                    element.options[index] = new Option(this.getOptionLabel(options[i], options[i].price), options[i].id);

在此

下放置以下行

element.options[index].innerHTML += " Stock is :"+options[i].qty; 

这就是欢呼声

如果您有任何疑问,请告诉我

答案 1 :(得分:0)

包含应用程序/代码/本地/法师/目录/块/产品/视图/类型/Configurable.php

$simpleproduct = Mage::getModel('catalog/product')->load($productsIndex); 
$qty = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($simpleproduct)->getQty();

                    $info['options'][] = array(
                        'id'        => $value['value_index'],
                        'label'     => $value['label'],
                        'price'     => $configurablePrice,
                        'oldPrice'  => $this->_prepareOldPrice($value['pricing_value'], $value['is_percent']),
                        'products'  => $productsIndex,
                        'qty'       => $qty, // we are sending stock parameter so we can use it latter in drop down field
                    );
                    $optionPrices[] = $configurablePrice;
                }
            }

和js / varien / configurable.js

if(allowedProducts.size()>0){
                    options[i].allowedProducts = allowedProducts;
                    element.options[index] = new Option(this.getOptionLabel(options[i], options[i].price), options[i].id);
                    if (typeof options[i].price != 'undefined') {
                        element.options[index].setAttribute('price', options[i].price);
                    }
                    element.options[index].innerHTML += " Stock is :"+options[i].qty; 
                    element.options[index].config = options[i];
                    index++;
                }

不是在1.9.4下工作...是不是有问题?