您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
OpenCart 积分系统介绍及使用方法 (rewards)
发布时间:2024-10-19 19:54:22编辑:雪饮阅读()
-
为商品配置购买积分及奖励积分
在opencart中要给商品的购买配置上可以用积分进行购买,则可以在Catalog=>Products=>找到指定某个商品,比如我这里找到Apple Cinema 30"在Edit Product时的Reward Points选项卡中可以看到有Points这里这个商品是400,意思就是说可以花费400积分来购买该商品。同时这里还有Customer Group里面可以看到有个Default的Customer Group其的Reward Points是100.这个的意思就是说如果客户分组在Default里面,则客户购买该商品会得到100积分的奖励。
确认并为测试账号添加积分以足以购买积分商品
那么我们可以先登录一个opencart前台账号比如我这里的一个测试账号,登录后可以进入到如
http://www.opencart3039.com/index.php?route=account/reward
也就是Reward Points,由于我这里目前还没有什么交易,所以是0.
同时我们在后台Customers=>Customers中找到这个对应的测试账号,可以发现默认也确实是在Default客户组里面。
咱们可以对这个Customer进行Edit Customer在Reward Points选项卡里面Add Reward Points,这里我就默认增加400吧。(这里会为客户发邮件的可能,所以如果之前有修改过哪里,则这里需要兼容处理下)正好让该测试账号有能力用积分购买上面的Apple Cinema 30
然后回到刚才前端用户的Reward Points界面刷新后可以看到积分已经同步到了。
尝试用积分购买
尝试将Apple Cinema 30点击add to cart 变成了下载文件?
我从network里面查看到请求到http://www.opencart3039.com/index.php?route=checkout/cart/add时候的响应如下{ "error": { "option": { "218": "Radio required!", "223": "Checkbox required!", "217": "Select required!", "209": "Textarea required!", "222": "File required!", "219": "Date required!", "221": "Time required!", "220": "Date & Time required!" } }, "redirect": "http:\/\/www.opencart3039.com\/test" }
经过我的排查,问题出现在这里
X:\www\wwwroot\www.opencart3039.com\catalog\controller\checkout\ cart.php里面的add方法中关键代码
if ($product_option['required'] && empty($option[$product_option['product_option_id']])) {
$json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']);
}
也就是说这是多规格商品前端需要传递一些对应规格属性的值。
这里或许是opencart的一个bug。刚看到最新的3.0.4.0好像也是没有提到这个的修复。
不过也可以去试试。
这里暂时就不尝试了。其实还有一种方案就是自己写一个弹窗让用户选择即可。
涉及的挺复杂。
那么我这里就将之前用于测试的iphone商品修改下购买积分和奖励积分同这个Apple Cinema 30相同即可,因为iphone是单规格的。
然后继续尝试。
那么确实iphone就能成功add to cart
然后在checkout中的Use Reward Points中Points to use可以输入要用的积分数,这里最大可用就是上面我们设置的400积分。
所以原来之前Points指的是最大可用积分。剩下的还是要另外支付的。
由于还有税收,导致后面还要对接支付,而支付我们之前配置的支付宝支付是假参数,所以这里可以试试将iphone的Tax Class设置为--- None ---
于Catalog=>Productst的iphone商品的Edit Produc的data选项卡中。
然后最后就是0元支付,就不选择支付宝支付,选择Free Checkout即可。
但最后的结果不是我期望的,我发现 我并没有获得积分。
可能是0元支付不会返积分吧。
但也可能是之前的那个邮件发送修改导致吧,因为下订单也会触发哪里,如果哪里的后续衔接没有做好,可能是会导致这种问题的。有兴趣的可以继续研究下。这个opencart后续好像是停止更新了,懒得搞了。
本期词汇
rewards [劳经]奖励
Cinema 电影院;电影
Textarea 计算机语言(标签定义多行的文本输入控件)
关键字词:opencart,rewards,积分
相关文章
- OpenCart 如何安装和配置免运费快递方式 (free shippi
- OpenCart 按商品件数收费配送方式安装配置方法 (item)
- OpenCart 按重量计费发货方式安装配置方法 (weight)
- OpenCart 发货方式之固定运费安装配置方法 (flat)
- OpenCart 如何安装和设置支付宝付款方式 (payment met
- OpenCart 邮件设置及发不出邮件常见问题 (mail)( Pass
- OpenCart 如何开启和设置网站伪静态 (seo rewrite)?
- OpenCart 后台管理员用户和权限设置 (user/permission
- OpenCart 如何设置横幅广告图片 (banner)?
- OpenCart 如何设置幻灯片轮播图片 (slideshow)?