2013-02-13 20 views
0

我希望網格類別視圖中的產品最小數量添加到購物車按鈕旁邊的數量框。我已經嘗試使用下面的代碼,它的工作原理除了該字段總是顯示'0'。Magento網格視圖數量框顯示最小數量

我該如何使該字段顯示產品的最小數量而不是'0'。

這是我用來修改list.phtml文件:

     <?php if(!$_product->isGrouped()): ?> 

         <label for="qty"><?php echo $this->__('Qty:') ?></label>         
           <input name="qty" type="text" class="input-text qty" id="qty" maxlength="12" value="<?php echo $this->getProductDefaultQty() * 1 ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" /> 

         <?php endif; ?> 

回答

2

功能getProductDefaultQty僅視框上可用,而不是列表:(

你可以重寫類Mage_Catalog_Block_Product_List與客戶模塊,並在您模塊的類此功能。

對於這個答案,我會打電話給你的模塊Nat_Quantity的緣故(如果你喜歡,你可以改變這一點)

步驟1:創建一個XML moudle

在/應用的/ etc /模塊/創建一個文件Nat_Quantity.xml。它應該看起來像(注意codePool有一個大寫的P)。

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Nat_Quantity> 
      <active>true</active> 
      <codePool>local</codePool> 
      <depends> 
       <Mage_Catalog /> 
      </depends> 
     </Nat_Quantity> 
    </modules> 
</config> 

第2步:創建你的模塊文件夾結構

在/應用程序/代碼/本地/創建文件夾NAT,然後在那裏創建的文件夾數量。 在此數量文件夾下創建以下兩個文件夾等和塊。 (注意等是小寫)

第3步:創建你的config.xml

在/應用程序/代碼/本地/ NAT /數量/等創建config.xml文件,這將是這個樣子:

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Nat_Quantity> 
      <version>1.0.0</version> 
     </Nat_Quantity> 
    </modules> 
    <global> 
     <blocks> 
      <catalog> 
       <rewrite> 
        <product_list>Nat_Quantity_Block_Product_List</product_list> 
       </rewrite> 
      </catalog> 
     </blocks> 
    </global> 
</config> 

第3步:創建塊

在/應用程序/代碼/本地/ NAT /數量/座/產品創造list.php的這將看起來如下:

<?php 
class Nat_Quantity_Block_Product_List extends Mage_Catalog_Block_Product_List { 
    /** 
    * Get default qty - either as preconfigured, or as 1. 
    * Also restricts it by minimal qty. 
    * 
    * @param null|Mage_Catalog_Model_Product 
    * 
    * @return int|float 
    */ 
    public function getProductDefaultQty($product) 
    { 
     $qty = $this->getMinimalQty($product); 
     $config = $product->getPreconfiguredValues(); 
     $configQty = $config->getQty(); 
     if ($configQty > $qty) { 
      $qty = $configQty; 
     } 

     return $qty; 
    } 
} 

這應該允許您在列表模板中調用$ this-> getProductDefaultQty($ product)。您將需要傳遞到功能驗證產品或者你可以通過在產品ID,然後加載該產品在功能

$product = Mage::getModel('catalog/product')->load($productId); 
+0

謝謝你,請原諒我,因爲我沒有太多的經驗,但我會在哪裏能夠找到我需要修改的內容? – 2013-02-14 23:52:57

+0

查看更新的答案。希望這有助於 – dmanners 2013-02-15 08:15:13

+0

這是否幫助你解決問題? – dmanners 2013-05-18 17:35:35