百货购OFBiz实践0508精.docx
- 文档编号:4890199
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:28
- 大小:2.42MB
百货购OFBiz实践0508精.docx
《百货购OFBiz实践0508精.docx》由会员分享,可在线阅读,更多相关《百货购OFBiz实践0508精.docx(28页珍藏版)》请在冰豆网上搜索。
百货购OFBiz实践0508精
百货购
OFBiz(13.07)实践
1为什么要使用OFBiz
∙OFBiz能很好的支持大型电商的全业务及全功能,同时它的扩展点很灵活。
能
较容易的加入自有业务模式。
比如百货购的代理加盟商模式,多站点,多店模
式,利润分成等。
∙OFBiz很好的实现了企业级通用数据库设计模式。
它的很多表设计堪称数据库
设计的典范。
这样的设计,几乎可以支持任何形式的企业级业务。
在百货购的
业务整合中,显得游刃有余。
∙OFBiz的业务后台功能全面且强大,能够很好满足目前百货购业务系统的运
营。
∙OFBiz的代码质量高,文档规范。
代码的可读性高,利于深入业务功能实现细
节。
方便扩展。
OFBiz做为Apache的顶级项目。
它本身就有来自开源社区的强力支持,同时系统也是由一批具有很深业务背景的专家级工程师实现的。
站在他们的起点上,来构建百货购的电商系统,成功率,可靠性,可实施性大大加强。
2整合思路
∙熟悉OFBiz的主业务,包括类目,产品,订单,设施,内容,购物车,货运业务。
∙研读OFBiz的核心业务代码,包括创建订单,运费计算,价格规则解析,促销业务规则解析等。
∙分析自有业务,百货购独有的业务模式。
在OFBiz里能否较好的,较顺畅的实现。
∙对OFBiz原有业务能够满足百货购的业务的,进行整合。
对不能满足的,进行扩展。
∙OFBiz里有一个参考的前台系统实现。
虽然它的功能完整。
但是要改造成百货购适用的前台,工作量很大,风险也不可控制(团队对OFBiz的自有框架还没有完全驾驭)。
固采用的是前台和OFBiz完全分离的方式。
即,团队用最熟悉的技术,在原有分析的成果上,进行全新开发。
而后台完全采用OFBiz的后台业务系统。
仅做功能上的扩展和一些交互细节的优化。
3总体架构
3.1架构简图
3.2系统说明
百货购产品编辑,运营人员,供货商,访问的核心业务系统,做了如下安全加强。
∙双向HTTPS认证。
登录系统的用户必须下载由系统生成的签名证书。
才能正常登录
∙加上图文验证验证
∙加上手机短信码登录验证
通过PC浏览器和手机浏览器的访问。
统一访问到的是百货购全新开发的前台系统。
每个系统完全独立。
分别是:
∙帐号系统(),负责整站的登录认证,及登录状态的管理。
∙购物车系统(),负责用户将产品加入购物车,购物车数据的维护∙订单系统(),负责订单的确认及生成,还有第三方支付整合等。
∙个人中心系统(),负责所有用户信息的聚合。
如订单数据,交易数据,充
值记录,安全认证等。
∙搜索系统(),负责整站所有产品信息的全文检索
∙PC版网站前端系统(),负责类目,产品,广告,活动,促销等数据
的展示
∙WAP版网站前端系统(),负责类目,产品,广告,活动,促销等数据
的展示
以上所有的WEB系统。
均运行在Jetty9之上。
它的session会话数据。
均保存在MongoDB中。
有些经常要访问,且变更很少的数据均缓存至Redis中。
移动端APP,百货购内部的各种应用,或是未来要接入的第三方APP。
均通过RESTAPI的方式进行接口调用。
实现参考了淘宝开放平台公开文档所表达的设计思路。
有API服务管理平台及相应的API能务提供方。
目前的所有API,绝大部分为内部私有API。
数据库选用PostgreSQL9。
最强的开源数据库系统。
4技术
4.1项目管理
Maven3
GIT+GitHub企业级私有仓库
4.2开发及应用环境
4.3技术集
5模块
5.1用户
5.1.1单点登录(柏华哥)
5.1.2用户安全
由于互联网账号存在被盗风险,为了保护账户安全,登录用户可以在安全中心提高账号的安全等级,通过手机或者登录密码的验证,用户可以修改密码,邮箱验证,手机验证,启用支付密码,并且修改支付密码。
5.1.3后台用户管理
OFBiz管理员给使用后台人员建立会员组名称,在会员组中建了后台人员登录账号,并使用OFBiz强大
的权限分配机制给相应用户分配应用类型权限。
5.2购物车
5.2.1数据
5.2.1.1Cookie中保存
未登录用户编码对应的产品数据,进行Base64编码后,进行Gzip压缩保存至HttpOnly的Cookie中。
有效期为一年
gzip(base64.encode(产品1标识|产品1名称|产品1数量|产品1特征|产品1其它属性,产品2标识|产品2名称|产品2数量|产品2特征|产品2其它属性))
ungzip(base64.decode(产品1标识|产品1名称|产品1数量|产品1特征|产品1其它属性,产品2标识|产品2名称|产品2数量|产品2特征|产品2其它属性))
5.2.1.2数据库中保存
用户登录后,解析Cookie中的购物车数据(如果有)并合并购物车数据,并持久化至数据库中。
同时删除Cookie中的数据
5.2.2业务逻辑
∙虚拟产品,可配置产品不能加入至购物车
∙还未开始销售的产品不能加入至购物车
∙已经销售终止的产品不能加入至购物车
∙库存不足的产品不能加入至购物车
∙产品价格异常的不能加入至购物车
∙产品没有有效的供货商不能加入至购物车
∙购物车中的产品价格小计
∙购物车中的产品优惠信息
5.3订单
5.3.1核心表结构
5.3.2业务流程
∙商品验证:
主要是验证产品是否是可销售的成品,是否已经开始销售,是否已经终止销售,是否有价格异常,是否有可用库存等。
∙订单稽查:
主要是指对创建订单的用户,根据系统规则,判定是否是恶意下单,挤占产品库存的行为。
比如,如果同一天,同一个用户,有10笔交易,未完成支付。
则该用户当天不能再进行下单。
∙价格计算:
主要是根据用户的成交价格进行产品的价格计算
∙费用调整计算:
主要是指促销优惠带来的影响订单总价格的费用计算。
5.3.2.1商品货运分组:
主要是根据不同的供货商,来进行货运分组
∙计算运费:
主要是根据分组过后的商品,分别计算对应的运费
∙生成订单预留库存:
生成一笔订单。
并预留对应的库存。
5.4搜索
5.4.1基本概述
1技术lucene4.6.0
2分词IK分词(IKAnalyzer2012FF_u1)
3lucene概述
Lucene是一个高性能、可伸缩的信息搜索(IR)库。
它使你可以为你的应用程序添加索引和搜索能力。
Lucene是用java实现的成熟的、免费的开源项目,是著名的ApacheJakarta大家庭的一员,并且基于在Apache软件许可[ASF,License]。
同样,Lucene是当前与近几年内非常流行的免费的Java信息搜索(IR)库。
。
全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。
Lucene是一个高性能、可伸缩的信息搜索(IR)库。
InformationRetrieval(IR)library.它使你可以为你的应用程序添加索引和搜索能力。
Lucene提供了一组简单却足够强大的核心API,只需要最小限度地理解全文索引和搜索。
你只须学习它的几个类从而把Lucene集成到一个应用程序中。
因为Lucene是一个Java库,它并不限定要索引和搜索的内容,这使得它比其它一些搜索程序更具有优势。
5.4.2百货购lucene数据目录存放结构
A以百货购分类创建目录
如图:
B:
百货购索引数据存放
1一个商品以一个document存放到对应分类目录下面
2商品存储结构:
a一个文档对应字段数据:
商品id,商品名字,商品品牌,商品关键字等数据….
b对于商品存于多分类,将对每个分类下面存放一个当前商品document
c对应存在变形产品的商品,以一个doucument记录,document存放数据以变形产品规格组合为key,值为变形产品id,存放,以做按规格搜索
5.4.3百货购搜索框智能提示
1每天记录用户搜索框搜索关键字
2进行日志分析,将每天用户搜索关键字,进行分析,存入数据库
3对应数据库存在相同或者相似的关键字,不在记录,将其搜索次数加1,作为搜索优先
5.4.4二级页面搜索
1搜索商品对应分类和查询条件
a搜索出来的商品,获取前面n个商品对应分类,展示
b搜索出来的产品,获取前面n个商品对应的规格,作为搜索条件
5.4.5搜索准确度
1为搜索产品自定义评分规则,在lucene搜索出来的评分里面,进行拦截处理,加入自定义评分规
则,提高搜索出来产品相关度,准确度
2加入同义词分析,找出对应分词的同义词进行搜索
5.4.6搜索速度优化
1将搜索MultiReader,进行缓存,当内容改变是,进行刷新缓存
2分类搜索时获取对应目录的IndexReader,进行缓存,改变是刷新缓存
5.4.7索引同步
后台底对产品进行更新或者下架,调用同步索引接口,进行相应同步和更新
5.5内容(陈志达)
5.5.1基本概述
OFBiz的内容管理系统非常强大。
内容管理应用程序主要包括:
调查,论坛,博客,内容,数据资源,模板和内容管理系统。
百货购网站()的所有广告位管理就是基于OFBiz后台操作。
对应不同的广告内容,我们需要创建不同的文件夹对相关的内容进行保存以及管理。
我们可以通过SQL语句对文件进行初始化,亦可以通过OFBiz后台手动进行创建。
内容主要分为:
长文本,短文本,网址资源,图像,视频,音频以及其他。
百货购网站首页跑马灯就是通过创建图像进行上传图片,首页对应的通告就是通过新建长文本进行添加。
5.5.2新建跑马灯以及修改跑马灯
首先,我们来到OFBiz内容管理的菜单栏:
他的菜单栏比较多,目前我们网站的内容主要是网站和内容以及内容管理系统,至于论坛和博客的管
理,将会在以后的百货购社区和博客中体现。
现在主要是说说有关新建网站,在这个新建网站的下面添加内容以及后台操作对内容的管理。
在后台我新建了www(百货购),主站的所有内容都在这个站点下面进行管理:
找到内容管理系统,点击打开:
进入我们我们新建站点的内容管理系统下面的菜单条目:
这个站点下面目前主要有五个菜单条,我们可以通过下面的添加菜单添加的菜单条目。
接着我们对菜单栏下面的条目进行编辑,选择菜单,然后打开:
选中首页跑马灯,单击鼠标右键:
这里有七个栏目,我们常用的是新建长文本,新建短文本和新建图像。
这里我们为首页添加跑马灯,所以我们选择新建图像,点击进入:
新添加一个首页跑马灯,给这个跑马灯取一个名字。
添加跑马灯要注意几点:
1.跑马灯链接到哪里,2.跑马灯显示顺序,3.跑马灯的状态。
这样我们就添加了一个简单的首页跑马灯,现在我们去§查看我们添加的跑马灯:
这样我们一个简单的添加跑马灯操作就完成了。
5.5.3添加长文本
这是一个在OFBiz后台新建的长文本内容,对应在网站百货购显示:
到这里,我们在OFBiz后台新建网站,为添加跑马灯和通告内容的操作,以及在网站对应位置显示就基本完成了。
至于OFBiz后台对博客和论坛的操作以及管理,后面我们继续更新最新相关的内容操作文档。
5.6货运(柏华哥)
5.7自有业务扩展(柏华哥)
5.8类目
5.8.1类目的层次结构
在类目管理中,分类是由目录统一管理,首先由建立目录,然后建立浏览根分类与目录关联,在实际网站中,浏览根分类是不作显示用途的,在浏览根分类下关联着一级分类,依次类推.
5.8.2类目的类型
每一个目录下都可以包括多个分类项。
根据用途的不同分类的方式也不同。
系统设置了多种分类方式
:
每个分类下面还可以有子类。
当上级分类的类型为“浏览根”时,网店页面上显示它所有的下级子类,点击下级子类,即可以查看这些子类里的商品了。
在这种情况下,对“非促销商品的浏览了”。
如果一个目录包括一个“促销”分类一个和“浏览根”分类,在“浏览根”下面又有多个子类,这时就可以实现显示多种分类商品了,如:
促销的商品,男式西服等。
注:
类型说明引用自网事蒙尘
5.8.3类目发布
新建目录:
在目录选项下选择目录模块新建目录
新建分类:
在目录选项下选择分类模块下新建分类
分类关联目录:
选择新建好的分类或已有分类,在目录子模块下关联存在的目录,并设置目录类型为浏览根
分类关联子分类(汇总):
选择新建好的分类或已有分类,在汇总子模块下关联存在的上级或下级分类
5.9商品
5.9.1类目与商品关联
商品在网站上进行展示并销售,首先要与网站上的分类相关联,在实际的业务中,商品常关联在最底层的分类上。
一个分类下可以关联多个商品,一个商品也能同时关联在多个分类下。
5.9.2商品的常用类型
在OFBiz与实际业务结合中,常使用到的商品类型有,成品(即普通商品),虚拟产品与变形产品(具有某些特征的商品,如:
衣服鞋子),配置产品(通过组合销售的产品,如电脑由主机与配件等组合形成的产品)
5.9.3商品发布
虚拟产品新增:
1、在目录菜单下选择产品选项新增虚拟产品信息
2、虚拟产品关联特征
在新建的产品子选项中选取特征
虚拟产品关联分类:
在虚拟产品的子选项选择分类
变形产品的新增:
1、新增变形产品信息
同虚拟产品新建相同,勾选变形产品
、新增变形产品价格
在新增的变形产品子选项中选取价格
注:
标价===市场价缺省价格===会员价
3、变形产品关联虚拟产品
在变形产品的子选项选择关联
4、变形产品新增具体特征
同虚拟产品新增特征步骤相同,但变形产品的特征只能是与之关联的虚拟产品特征中的特征之一,并且特征应用类型为标准
5、变形产品关联供货商
在子选项中选择供货商
6、变形产品关联仓库
在子选项中选择场所
7、变形产品入库
在子选项中选取库存
选择变形产品所在的仓库接收库存
自动获取产品ID,进入接收明细接收产品
配置产品新增:
与虚拟产品新增步骤相同,在产品类型处选择可配置产品
配置产品新增配置:
在子选项中选取配置
配置项关联组件产品
1、通过可配置产品关联的配置进入,选取配置选项
2、选择配置选项,添加组件产品
5.10数据迁移
5.10.1背景
百货购1.0是基于SQLServer数据库开发的一套网站,而2.0则是用java语言基于
PostgreSQL数据库开发的,是两套完全不同的系统。
但是百货购1.0中的数据对于新系统则很重要,因此面临一个从SQLServer向PostgreSQL迁移数据的问题。
5.10.2思路
由于百货购2.0使用的是OFBiz的自有数据库,数据结构跟百货购1.0完全不同,所以想要通过其他第三方的工具等方式来完成是不可能的。
因此,选择性的迁移部分最重要的数据以及保证数据的完整性,在迁移之前就需要考虑好。
本次数据迁移的基本思路:
熟悉SQLServer数据结构,确定需要迁移数据,确定表以及字段。
熟悉OFBiz数据结构,确定数据存放的表以及字段,也就是两个数据库之间的对应关系。
确定数据对应关系后,迁移数据,2.0系统数据补充。
数据确认、测试、修复。
5.10.3迁移方式
使用OFBiz后台WEB工具导入XML数据。
使用OFBiz的XML工具是此次数据迁移的主要方式。
优点:
迁移的可视化好,错误提示信息详细,自动的事务控制。
缺点:
导入过程慢,制作XML数据源麻烦,XML文件不能过大,必须分块导入。
sql语句导入。
优点:
适合处理一些特殊情况的数据
缺点:
无事务控制,不能进行整体的数据迁入
DBCP连接池自动化读取导入。
优点:
一边读SQLServer,一边存入PostgreSQL,自动化非常高
缺点:
需要自己写好事务控制,整站迁移不是很灵活,错误机制也较弱。
6难点
自有业务的整合
订单业务
7TODO
∙POS系统,完全实现线上线下的无缝整合∙供货商自主上货
∙个性化推荐
∙财务深度对接
∙供应链初始整合
∙OFBiz云系统
8参考文档
http:
//OFBiz.apache.org
http:
//OFBiz.apache.org/documentation.htmlhttp:
//en.wikipedia.org/wiki/Apache_OFBizApacheOFBizE-BusinessSolutions
数据模型资源手册卷1,卷2(林友芳)
8.1.1.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 百货 OFBiz 实践 0508