2012-07-26 51 views
1

我已經使此代碼顯示某些可配置產品是否有庫存。但我不能在瓦瑞恩/ product.js任何地方得到股票數量如何在Magento中顯示可配置的產品庫存數量?

updateStock: function(){ 
    var tempProducts = []; 
    var allowedProducts = []; 

    var idColor = jQuery('#attribute85').val(); 
    var idTalla = jQuery('#attribute127').val(); 

    // productos por color 
    var options = this.getAttributeOptions(85); 
    for (var i = 0; i < options.length; i++) { 
     if (options[i].id == idColor) { 
      for (var j = 0; j < options[i].products.length; j++) { 
       tempProducts.push(options[i].products[j]); 
      } 
     } 
    } 

    jQuery('#input-box-127 a').each(function(index) { 
     // jQuery(this).find('.talla').removeClass('seleccionado'); 
     jQuery(this).find('div').addClass('sin_stock'); 

     idTalla = jQuery(this).attr('rel'); 
     options = spConfig.getAttributeOptions(127); 
     for (var i = 0; i < options.length; i++) { 
      if (options[i].id == idTalla) { 
       for (var j = 0; j < options[i].products.length; j++) { 
        for (var index = 0; index < tempProducts.length; index++) { 
         if (tempProducts.indexOf(options[i].products[j]) > -1) { 
          //alert(jQuery(this).text()); 
          jQuery(this).find('div').removeClass('sin_stock'); 
         } 
        } 
       } 
      } 
     } 
    }); 

    return allowedProducts.length > 0; 
}, 

是否有在Magento任何變量在哪裏可以得到配置的產品庫存?

回答

0

在Magento中,沒有配置產品的庫存水平。

每個孩子的產品/變體都有它自己的庫存水平,所以您需要檢查當前選定變異的庫存。

8

你可以得到次產品列表和計算所有子產品的數量可配置的產品的數量...

$product=Mage::getModel("catalog/product");   
$prod=$product->load($prod_id); 
    $conf = Mage::getModel('catalog/product_type_configurable')->setProduct($prod); 
    $col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); 

    $total_qty=0; 
    foreach($col as $sprod){ 
     $sprod=$product->load($sprod->getId()); 
     $qty = intval(Mage::getModel('cataloginventory/stock_item')->loadByProduct($sprod)->getQty()); 
     $total_qty+=$qty; 
    }  
+0

我把它改成下面的法師1.8: http://pastebin.com/mpmKrSeL – 2014-11-20 21:30:41

+1

注意:加載到循環中是不可擴展的,如果你看一下Mage_CatalogInventory_Model_Stock_Item :: loadByProduct()方法,你會注意到只需要產品ID,因此似乎不需要$ sprod = $ product-> load($ sprod - >的getId()) – 2015-04-23 07:29:57

相關問題