magento促销方案之 - 购物车内点击赠送礼品

 

今天做了关于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购物车赠品促功能完毕!

本文永久地址:https://sjolzy.cn/magento-shopping-cart-click-on-the-promotions-gifts.html

--EOF--

随机文章

已有 15 条评论

  1. 看下啥错误

  2. sunnysunny

    站长你好,我用的了你方法,程序在点击添加到购物的时候就报错了,不能显示了,郁闷

    1. 具体什么错呢?

  3. 请教问题请教问题

    博主你好 我按照方法添加了代码 但是没有反映 没有出现赠品 不知道是哪里出了问题 能否也发一下你的文件看看 ~

  4. nathonnathon

    照说明设置,但是购物车页面没有出现赠品区。BASE和设计主题目录都放了这三个文件,但还是没有显示,楼主能否发来三个文件参考对比一下?谢谢!

    1. 已发送,请查收~

  5. nathonnathon

    隐藏的目录和赠品商品都已经设置好,修改相应文件后,购物车原来左边的广告(原始文件就有的)就消失了,代之这行文字 choose over。真不知是哪里的问题。

    1. 注意crosssell.phtml这个文件里的$categoryIds这个参数要设为隐藏目录的ID,另外你的MGT版本是多少?之前Angelo兄的版本是1.4.1.1,他还花钱让我帮他调了。。

  6. AngeloAngelo

    谢谢站长的文件.今天下午测试了,发现点击左下角的礼品列表,跳到Object not found!
    我是在本地测试的,还有添加到购物车按钮没有颜色。
    我看了文件是Copyright (c) 2009 Irubin Consulting Inc,而我的是Copyright (c) 2010 Magento Inc. 不知道是否是版本的问题造成的。

  7. AngeloAngelo

    没有,我在appdesignfrontenddefault 里面的模板都找不到你说的B,C两个文件
    但是在appdesignfrontendasedefault emplatecheckoutcart 里面都可以找到,
    但是我发现B,C两个文件和你的不一样,我用搜索查找没有类似你这样的代码在里面,
    我是用的Magento ver. 1.4.1.1
    请教一下。

    1. 那没错, base那边也可以! 我们这边的主题都习惯把base内容拷一份放在default同级的目录里, 你在base里的这两个文件改试试

  8. AngeloAngelo

    站长,您好!
    请问我怎么没有找到文件B和文件C,在其它模板下面也没有找到这两个文件。

    1. B,C两个文件地址里的 beautyard 换成你自己的主题也没有吗?

  9. AngeloAngelo

    如果可以的话,能否把这三个文件打包发给我,我对比和参考一下。
    站长系统里应该可以看到我的邮件地址。
    谢谢!

    1. 已发送请查阅。

添加新评论