今天做了关于magento的另外一种促销方案 :在购物车根据客户购买商品数量赠送等数价格为0的小礼品。
希望目标 :在购物车页面左下角块中显示后台设置的赠品专区里的设定数量的商品,当用户点击某款赠品时,即添加到购物车。(根据用户购买商品数可选等量的赠品)
实现 :
1,在后台建立一个专门存放价格为0的赠品的目录A。另外,将目录的General Information的Is Active属性设为NO,这样在前台商品目录就不会显示这个赠品目录,但在购物车那边客户读取这个目录的产品。
2,然后向目录A添加几个测试商品a1,a2,a3...,注意在Product Information 把Inventory里的Qty设为大于0、价格设为0、 Stock Availability选项选为In Stock、Websites里的站也要勾上,这样赠品添加完毕。
3,代码修改
a文件: /app/design/frontend/default/beautyard/template/checkout/cart.phtml
头部加上:<script>var x = 0,y=0;</script>
b文件: /app/design/frontend/default/beautyard/template/checkout/cart/crosssell.phtml
也是在头部加上():
<?php
$cartNumbers = Mage::helper('checkout/cart')->getCart()->getSummaryQty();
$maxGift = 3; //控制要显示的赠品数
$categoryIds = 726; //网站赠品目录的id
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*') ->addAttributeToFilter('category_ids',array('finset'=>$categoryIds));
$category = Mage::getModel('catalog/category');
$category->load($categoryIds);
$collection = $category->getProductCollection();
foreach ($collection as $product) {
$result[] = $product->getId();
}
?>
<div id="cartGift" name="cartGift" class="box-others-also-like">
<ul>
<?php
if(count($result)>$maxGift){
$ourneed = array_rand($result,$maxGift);
foreach($ourneed as $cc){
$thisproduct= Mage::getModel('catalog/product')->load($result[$cc]);
?>
<li>
<a href="/checkout/cart/add?product=<?php echo $result[$cc]; ?>&qty=1" title="<?php echo $thisproduct->getName(); ?>" ><?php echo $thisproduct->getName(); ?></a>
</li>
<?php
}
} ?>
</ul>
</div>
<div id="cartGiftTips" name="cartGiftTips">choose over</div>
<script>(x<=y)?($('cartGift').hide()&&$('cartGiftTips').show()):($('cartGift').show()&&$('cartGiftTips').hide())</script>
c文件:/app/design/frontend/default/beautyard/template/checkout/cart/item/default.phtml
160行左右加上:
<?php if($_item->getCalculationPrice()>0):?>
<script>x+=<?php echo $this->getQty();?>;</script>
<?php else: ?>
<script>y+=<?php echo $this->getQty();?>;</script>
<?php endif; ?>
接着更改之后的td:
<td class="a-center">
<input name="cart[<?php echo $_item->getId() ?>][qty]" value="<?php echo $this->getQty() ?>" size="4" title="<?php echo $this->__('Qty') ?>" class="input-text qty" maxlength="12" <?php if($_item->getCalculationPrice()==0):?>readonly<?php endif; ?> />
</td>
OK!到此关于magento购物车赠品促功能完毕!
作者: Sjolzy
--EOF--
看下啥错误
评分:5分
Magento促销 : 2011-04-29 13:37
看下啥错误
sunny : 2011-04-15 15:20
站长你好,我用的了你方法,程序在点击添加到购物的时候就报错了,不能显示了,郁闷
请教问题 : 2011-04-04 09:47
博主你好 我按照方法添加了代码 但是没有反映 没有出现赠品 不知道是哪里出了问题 能否也发一下你的文件看看 ~
nathon : 2010-12-24 17:16
隐藏的目录和赠品商品都已经设置好,修改相应文件后,购物车原来左边的广告(原始文件就有的)就消失了,代之这行文字 choose over。真不知是哪里的问题。
nathon : 2010-12-24 17:06
照说明设置,但是购物车页面没有出现赠品区。BASE和设计主题目录都放了这三个文件,但还是没有显示,楼主能否发来三个文件参考对比一下?谢谢!
veilen : 2010-12-17 11:52
不知道楼主有没有测试过这样一种情况:
"当客人成功添加赠品后,更新购物车成状态,然后再继续向购物成添加赠品。"
代码没认真看,但是你的“目标期望”可能存在这个bug,不知道有没有做过特别处理。
Angelo : 2010-12-06 19:58
谢谢站长的文件.今天下午测试了,发现点击左下角的礼品列表,跳到Object not found!
我是在本地测试的,还有添加到购物车按钮没有颜色。
我看了文件是Copyright (c) 2009 Irubin Consulting Inc,而我的是Copyright (c) 2010 Magento Inc. 不知道是否是版本的问题造成的。
Angelo : 2010-12-05 23:15
如果可以的话,能否把这三个文件打包发给我,我对比和参考一下。
站长系统里应该可以看到我的邮件地址。
谢谢!
Angelo : 2010-12-05 21:29
没有,我在app\design\frontend\default\ 里面的模板都找不到你说的B,C两个文件
但是在app\design\frontend\base\default\template\checkout\cart 里面都可以找到,
但是我发现B,C两个文件和你的不一样,我用搜索查找没有类似你这样的代码在里面,
我是用的Magento ver. 1.4.1.1
请教一下。
Angelo : 2010-12-05 11:42
站长,您好!
请问我怎么没有找到文件B和文件C,在其它模板下面也没有找到这两个文件。