magento在购物车中显示用户通过特价所节约的金额情况的实现

一般商品都会打折,会用户打折的幅度或打折后的金额,这在产品页上基本都会显示,但是用户将商品放入购物车后,只显示最后的金额,没打显示原价及节约的金额。magento的购物车中如何实现呢:

如上图示,这是购物车列表的实现效果图。
代码/template/checkout/cart/item/default.phtml中分为两段
第一段在148行左右
在代码
                    <?php echo $this->helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?>
                <?php else: ?>
下方将echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition()); 换成以下代码

 <?php 
                          if($_item->getProduct()->getPrice()>$_incl)
                          {
                          echo '<span class="cart-old-price">';
                          echo $this->helper('checkout')->formatPrice($_item->getProduct()->getPrice()-$_item->getWeeeTaxDisposition()); 		
                    			echo "</span><br>";
                    			echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition());                       	
                          }
                          else                    
                    			echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition()); 
                    			
 ?>

第二段在文件最后能找到 echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()); 代码的地方,换成以下代码

 <?php 
                    $tempqty = ($_item->getQty() ? $_item->getQty() : ($_item->getQtyOrdered() ? $_item->getQtyOrdered() : 1));
                    if($_item->getProduct()->getPrice()>$this->helper('checkout')->getPriceInclTax($_item))
                          {
                          	if(!Mage::getSingleton('core/session')->getSavemoneycart())   Mage::getSingleton('core/session')->setSavemoneycart(0);
                          
                          echo '<span class="cart-old-price">';
                          echo $this->helper('checkout')->formatPrice($_item->getProduct()->getPrice()*$tempqty-$_item->getWeeeTaxDisposition()); 		
                    			echo "</span><br>";
                    			echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition());    
                    			echo "<br><span class='cart-save-price'>";
                    			echo $this->__("Savings amount:").'<br>'.$this->helper('checkout')->formatPrice($_item->getProduct()->getPrice()*$tempqty-$_item->getWeeeTaxDisposition()-$_incl);
                    			echo "</span>";
                    			Mage::getSingleton('core/session')->setSavemoneycart(Mage::getSingleton('core/session')->getSavemoneycart()+($_item->getProduct()->getPrice()*$tempqty-$_item->getWeeeTaxDisposition()-$_incl));
                          }
                          else                    
                    			echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()); 
                    			
                    
 ?>

即可实现以上图示效果。
还差一个,如果用户购物了多件商品,要在购物车汇总中显示节约的总金额。

在template/checkout/cart.phtml
中头部增加
Mage::getSingleton('core/session')->setSavemoneycart(0);
然后在
<?php echo $this->getChildHtml('totals'); ?>
下方增加以下代码,即可实现。

	<?php                      
                   	if(Mage::getSingleton('core/session')->getSavemoneycart())
						{
								echo "<div class='totals-save-sum'>";
                   				echo $this->__("Savings amount:")."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$this->helper('checkout')->formatPrice(Mage::getSingleton('core/session')->getSavemoneycart());                   		
                   				echo "</div>";
                   		}
         ?>

代码部分写的不是很好,大家做个参照,自行完善吧!

magento中在购物车图标鼠标放上后可显示购物车中商品列表的代码

magento中在购物车图标鼠标放上后可显示购物车中商品列表的代码,如下图所示:

打包代码如下:
/购物车图标鼠标放上后可显示购物车中商品列表的代码.zip

布局xml中的引用语法如下:

<default>
             <reference name="header">
            <block type="checkout/cart_sidebar" name="cart_top" template="checkout/cart/topcart.phtml">
                <action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/sidebar/default.phtml</template></action>
                <action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/sidebar/default.phtml</template></action>
                <action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/sidebar/default.phtml</template></action>
                <block type="core/text_list" name="cart_sidebar.extra_actions" as="extra_actions" translate="label" module="checkout">
                    <label>Shopping Cart Sidebar Extra Actions</label>
                </block>
            </block>
        </reference>
    </default>

在头部代码中的调用

修改magento默认加入购物车数量正确方法

magento系统默认的加入购物车输入框的数量是空的,这里我们让magento的add to cart 显示默认数量为1,网上别人介绍的方法是修改的文件位于你所使用的magento模板文件夹所在的位置。一般在template/catalog/product/view/addtocart.phtml.根据跟踪,上述方法也是可以,实际上magento已经内置对这个的支持.
cataloginventory/item_options/min_sale_qty,magento实际是根据这个参数判断的,在后台system\Inventory\Product Stock Options\Minimum Qty Allowed in Shopping Cart中即可配置,如下图所示:

修改magento商品页中加入购物车的默认商品数量

magento系统默认的加入购物车输入框的数量是空的,这里我们让magento的add to cart 显示默认数量为1,修改的文件位于你所使用的magento模板文件夹所在的位置。
一般在template/catalog/product/view/addtocart.phtml
 

<input name=”qty” class=”input-text qty” id=”qty” maxlength=”12″ value=”<?php if($_product->isSaleable()): ?>
<?php echo $this->getMinimalQty($_product)== null?1:$this->getMinimalQty($_product) ?>
<?php else: ?>
<?php echo $this->getMinimalQty($_product)== null?0:$this->getMinimalQty($_product) ?>
<?php endif; ?>” type=”text” />

上面的代码主要是判断是否设置了MinimalQty,如果为最小数量NULL那么加入购物车数量就默认为数量1