我是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 ;;我让你适应你的确切需求,并在需要时提出问题
我的问题是:我不知道在哪里可以应用此解决方案!
()
答案 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下工作...是不是有问题?