2013-02-13 82 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