电子商务促销优惠组件设计

问题描述

现在各大电商都有自己的促销优惠方式,满减,立减,折扣,现金券,返现,积分抵现,赠送积分,使用范围也可能是单种商品,大类商品,单笔订单等,优惠环节涉及购买时,订单时和支付时,可谓非常纷繁复杂。现在我正在开发的电子商务平台有商品Goods和货品Product,有订单Order和订单项OrderItem,我希望能尽量减少与现有功能的耦合,而设计一个尽可能全面覆盖上述优惠促销的组件,并可在以后进行扩展,现在初步有一个设计雏形,但是实际过程中发现还是太复杂,并且不得不开始耦合了,所以决定停工重新整理思路。希望有能人给点思路和建议 问题补充:多谢各位的帮助,感觉还是规则引擎最靠谱,我决定使用规则引擎试试看。

解决方案

如果统一来处理是很麻烦的,跨多个应用边界了,购买、订单、支付多个环节,并涉及不同范围及相应的不同的促销优惠方式。。。根据应用边界拆分成购买、订单、支付环节吧。。。个人意见,如有雷同,纯属巧合
解决方案二:
去年我们也做过一个类似的促销系统,目的跟你们一样,也是想把促销的内容从现有的平台中解耦出来,可以跟你一起探讨一下,先说下我们的思路吧:1.提供一个促销管理程序,自己人用,可以在上面添加订单满金额、产品满金额或满数量的一些促销,种类包括立减、打折、买赠、送积分、换购、送券等等,可以设促销地区时间,到时间自动启用停用,也可以设各种促销的档位,满100怎么着满200怎么着,以及是否可以累计。2.再提供一个促销计算接口,客户进入购物车的时候,调用一下促销接口,把购买的产品ID传过来,计算接口实时算出促销并回传信息。大体思路就是这样,缺点是促销是实时算出来的,可以应付一下中小型的电商系统,访问量大了肯定会成为瓶颈,如果楼主有更好的思路,我们可以一起改进!
解决方案三:
这个问题其实是非常麻烦的,因为涉及到业务太多了。想完全解耦完全是不可能的。说说我的思路吧。1 首先可以定义出各种促销方式,金额,数量,附赠品等2 对于某种类型的促销方式,使用的规则是什么。可以自定义一套规则来定义其形式,拿金额来说,可以通过读取数据库拿去指定货品的金额打折方法,然后计算金额,最终得出一个折后的金额。3 对规则的定义。考虑到不同产品的规则不一样,规则的指定肯定是针对单品来算的。其实对于我们来讲最终关注的是最终优惠后的金额,所以我们只需要记录处每一项单品的原始价格以,最终价格以及优惠方式即可。这样就可以完全了解整个订单的所处优惠方式以及计算策略了。你所说的订单和订单项,无非是总订单信息和详细订单信息,对应关系应该为1:n,这个完全是不需要做处理的。数据库方面应该添加些字段即可。关键就是规则的定义,建议你在这方面做一个详细的分析,比如影响规则的纬度,规则定义的范围等等。另外,象携程网的话好像就是出了你这样的类似的一个规则引擎,用于机票和酒店的打折优惠的。这个不好做,但是还是祝你成功。
解决方案四:
优惠改变订单的不外有三种1.改变数量。2.改变金额。3.增加物品——积分,点数,金券或实物等。我的考虑,订单估计要做两份。- 原始订单- 优惠处理过的订单。数量,金额或物品(其他Item)的变化。优惠引擎,接受原始订单,生成最终订单。不知道你说的耦合发生在什么地方,优惠引擎依赖订单是必然的,订单部分就不用依赖优惠引擎。这种单向依赖还可以接受吧?至于单件商品和整体的计算逻辑在优惠的设计范围内,这里又不会有什么耦合发生的,对吧?倒是支付,能否使用积分,点数或金券等这些支付逻辑,恐怕要做为订单属性和订单绑在一起的。举例来说:特价商品不能用金券。这里有- 优惠——特价商品。- 原始订单。- 优惠处理过的最终订单——总金额减少了,并且被添加了不能用金券的属性。- 支付时金券被无效。客户需要按最终订单的金额付款。 大致如此,随便聊聊。祝好运。
解决方案五:
你们商品和货品有什么区别
解决方案六:
新手路过,感觉要用到策略模式

时间: 2024-12-23 17:47:25

电子商务促销优惠组件设计的相关文章

电子商务类网站促销优惠组件设计

今天在ITEYE看到有人问: 写道 现在各大电商都有自己的促销优惠方式,满减,立减,折扣,现金券,返现,积分抵现,赠送积分,使用范围也可能是单种商品,大类商品,单笔订单等,优惠环节涉及购买时,订单时和支付时,可谓非常纷繁复杂. 现在我正在开发的电子商务平台有商品Goods和货品Product,有订单Order和订单项OrderItem,我希望能尽量减少与现有功能的耦合,而设计一个尽可能全面覆盖上述优惠促销的组件,并可在以后进行扩展,现在初步有一个设计雏形,但是实际过程中发现还是太复杂,并且不得不

26.3. 促销优惠组件设计

设计思想是,在购物车结算前匹配促销规则计算出最终优惠金额 +-----------------------+ User -> Goods -> Cart -> Delivery -> | Promotions components | -> Checkout +-----------------------+ | Promotion rule 1 | | Promotion rule 2 | | Promotion rule 3 | | Promotion rule 4 |

PHP生成唯一的促销/优惠/折扣码(附源码)_php技巧

每一个电子商务网站,现在有一种或多种类型的优惠/折扣/优惠券系统,给大家分享一下如何在PHP生成唯一的促销/折扣码.主要是实现一个优惠码系统,可用于跟踪用户来自某些特定的来源,例如有些主机促销的时候链接到别的页面会有优惠码生成,还有更多的促销代码等.因此,今天将讨论这样一个优惠码的实现过程 考虑的需求 代码应该很容易记住,因此保持短的长度是一个好主意,使用户可以很容易地记住它 没有特殊字符!它应该是字母数字组合,因为它会永远是为用户更容易记住 长度推广/折扣代码的正确.没有一个标准的长度,因为它

Asp.net组件设计浅论

asp.net|设计 一.什么是组件? 查看MSDN,微软是这样给组件定义的:在 .NET Framework 中,组件是指实现 System.ComponentModel.IComponent 接口的一个类,或从实现 IComponent 的类中直接或间接派生的类.这是从纯语言(技术)角度下的定义,通俗的讲,组件是"可独立运作的软件单元",这里强调独立运作,也就代表着组件必须拥有低耦合性.高重用性等特点.微软将软件划分为两部分:其一是Component,意指具备特定功能.可独立运作.

漫谈Visual C#的组件设计方法

visual|设计 Properties 在C#中为类预定义属性是件再简单不过的事,见程序1. 程序1 using System;namespace PropertiesDemo{ public class MyData { ............... } public class Class1 { private MyData _data; public MyData Data { get { return _data; } } public Class1() { _data = new

COM组件设计与应用(六)——用ATL写第一个组件(vc.net)

一.前言 1.与 <COM 组件设计与应用(五)>的内容基本一致.但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对. 2.这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成两个数值的加法,Cat()完成两个字符串的连接. 3.下面......好好听讲! 开始了:-) 二.建立 ATL 工程 步骤2.1:建立一个解决方案. 步骤2.2:在 该解决

COM组件设计与应用(一)起源及复合文件

一.前言 公元一九九五年某个夜黑风高的晚上,我的一位老师跟我说:"小杨呀,以后写程序就和搭积木一样啦.你赶快学习一些OLE的技术吧......",当时我心里就寻思 :"开什么玩笑?搭积木方式写程序?再过100年吧......",但作为一名听话的好学生,我开始在书店里"踅摸"(注1)有关OLE的书籍(注2).功夫不负有心人,终于买到了我的第一本COM书<OLE2 高级编程技术>,这本800多页的大布头花费了我1/5的月工资呀......

AOP@Work: 用Contract4J进行组件设计-用契约式设计和AspectJ改进软件

简介:契约式设计(Design by Contract)是切实可行的技术,可以阐明组 件 设计的细节.为客户记录正确的组件用法,并用编程的方式测试组件使用的顺应 性(compliance).在 AOP@Work 的最后一篇中,Dean Wampler 介绍 了 Contract4J,这是契约式设计的工具,它用 Java 5 标注 (annotation)指定合约,并在运行时用 AspectJ 方面计算合约.在成为 AOP 工具包中新增的一个举足轻重的工具的同时,Contract4J 迎合了面向方

一般的电子商务平台如何进行设计呢?

电子商务建设的最终目的是发展业务和应用.目前Internet网上商家不少,但由于缺乏相应的安全保障.支付手段和http://www.aliyun.com/zixun/aggregation/13745.html">管理机制,一方面网上商家以一种无序的方式发展,造成重复建设和资源浪费:另一方面商家业务发展比较低级,很多业务仅以浏览为主,需通过网外的方式完成资金流和物流,不能充分利用Internet网无时空限制的优势. 因此有必要建立一个业务发展框架系统,规范网上业务的开展,提供完善的网络资源