当前位置:主页 > 电商资讯 > b2b2c多用户商城系统 >

如何选择可扩展的开源b2b2c多商户电子商城?

2018-10-05 04:30 点击数:

 

大家在选择多商户电子商城,也就是b2b2c商城时,往往陷入迷茫。各种开发语言,技术框架,就够让不懂it的管理者头疼了。其实,这个问题完全可以用类似买车的两种态度来得到答案,是喜欢新潮还是喜欢中庸?买车只是一时的事情,用车、用车成本才是长久的事情。你买车时喜欢标新立异的车型,还是选个大众车,甚至是出租车的款式?

两种选择的人,都有自己的道理,这个懂得自然懂。我只说下单独拿开发语言对软件系统的影响。

java是最高大上的开发语言,但是成本也是最高的。二次开发,维护成本都是问题。能玩的起这个的,几乎不会有人给你长期做维护,大材小用。
Yii是php的一种高大上的开发框架,二次开发,维护还是个问题。能玩的起这个的,还是几乎不会有人给你长期做维护,大材小用。不服的,自己查51job看看两年的yii程序员工资再说。因为起点较高,基本都是从别的框架转型过来的,两年经验只能是入门级的。
asp.net 是微软开发语言,目前的地位比较尴尬。无意引起技术争执不做多说。但日趋没落,此类技术人员越来越少是不争的事实,二次开发,维护比上面两个容易度一个比一个简单些。简单与否只是针对招人,用人,开支。对管理者来说敲代码关我什么事!
php的laravel是php中一种较为优雅的开发框架。当然这也意味着要有点本事的人才玩的起。
php的ThinkPhp框架是目前国内开发者使用量最大的一种框架。代码效率稍弱于以上。但随着php7的出现,所有php效率凭空提高了200%,再加上现在服务器技术的发展,cpu性能大大提高。在实际应用中基本感觉不到这种差异。最大的好处就是好招人,只要会php开发的,基本都会使用这个框架。而目前现状在二三线城市,就连招一年经验的thinkphp工程师,都不是一个特别容易,召之即来的事情。实际开发中,至少需要有一个一年以上经验的才可以胜任,否则,就是边做边出bug。几个月的工作量还不如一个老手一个月的效率。

电商系统,特别是正规化运营的平台类b2b2c多用户商城系统,不可避免的要针对自己实际情况进行二次开发。上述问题是必须要进行认真考虑的问题。当然,也可以委托外包公司进行开发,这是另一个话题。只适合初期业务量小的情况。当你业务真正大起来,持续的不间断开发将成为日常工作。没有任何一个成功的电商是套个模板就可以做起来的。

下面我们再谈下系统架构。传统的商城系统,仅仅只是一套软件,用install安装即可。不管什么客户端,都是访问同一个域名。

简单当然是简单了。小白也可以几分钟安装一个。但随着使用量的增加,系统就会越来越感觉到臃肿,性能效率下降。唯一的解决方案是做负载均衡,做集群。用一个大白话就是一个人装水瓶去旅行,一瓶不够可以带2瓶,3瓶,每瓶相当于一定的负载量,但是如果你有1万个,10万个用户,每个用户的信息都可能复制吗?还带得动吗?届时系统将不可避免走向彻底瘫痪。

而分布式架构则可以极大解决这个问题。相关文章,可以单独阅读了。笔者在此附上一篇技术类文章的扩展阅读,供大家参考

浅谈多商户架构下的系统-从传统走向分布式的必要性


功能可以升级,品牌可以打造,但系统架构选择这一决定不可更改,后期只有推翻重来这一条路可走。

ShopsN多商户电子商城采用Thinkphp框架,采用分布式架构开发。实现庖丁解牛级模块分离,业务运行如行云流水

一、 系统架构

-系统概述
· 该系统主要面向除了自营外,拥有多其他主体独立核算销售的大平台型电商系统。下个版本更将适合新零售行业,特别是购物领域,解决线下线上购买商品的不便。



-采用了分布式应用架构
· 增大系统容量。我们的业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,我们需要多台机器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。
而传统的市面上一般的多商户系统,虽然有着小白型安装配置容易的优点,但是在遇到这种扩张后,就会随业务量的增大,扩展难度呈指数性加大。后期整个系统将不得不推翻重新构建。ShopsN则高屋建瓴,采用高度可分解式的开发思路来设计,对系统进行了庖丁解牛式的布局。你当然可以安装在一台服务器,但可以更轻松的部署到多服务器。
· 加强系统可用。我们的业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。(后期扩展)
· 模块化:系统模块重用度更高
· 因为软件服务模块被拆分,开发和发布速度可以并行而变得更快
· 系统扩展性更高
· 团队协作流程也会得到改善


 


 
 
-分布式需要解决的问题:
· 多个模块共享session:我们使用了 redis 实现了session共享
· redis 优点:
 ▽ 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
 
 
 
 ▽  支持丰富数据类型,支持string,list,set,sorted set,hash
 
 ▽  (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
 
 ▽  丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
 
 ▽  Redis 的 队列 可以实现秒杀、抢购等功能。
· 服务治理(后期扩展)
· 服务调度(后期扩展)
 
- 缓存架构(采用了驱动方式配置)
· 使用的是redis 作为缓存服务端,加快了服务端的响应速度,提高了用户的体验性
· 减少了对数据库的读操作,数据库的压力降低
- 环境架构
· Apache 或 iis 或Nginx + PHP + MySQL + Redis
·  建议PHP 版本 7.2往上 PHP7比PHP5平均快了近4倍,获得了更大的吞吐率,更安全;
· 建议MySQL使用5.7
 ▽  5.7 更加安全
 ▽  5.7 更加灵活,提供了json支持
 ▽  可以混合存储结构化数据和非结构化数据,同时拥有关系型数据库和非关系型数据库的优点
 ▽ 易用性:增加了许多监控信息
 ▽  访问速度更快,低延迟
 
 
 
-系统目前有以下几个客户端,每个客户端都可以独立配置在一台服务器,也可以全部安装到同一个服务器,轻松随时应对高可用性商务的扩展。
· 总后台
· 移动端
· 移动端(API)
· PC端
· PC端(API)
· 微商城
· 微商城(API)
· 商户管理中心
· 商户管理中心(API)
- 支付系统
· 采用了分发的方式(dispatch)减少了繁琐的代码量
· 支付配置 配置到数据库里面,操作配置更加方便,不用写任何代码
- 软件配置系统
· 统一在总后台管理用户不需要懂软件语言,即可配置,省去了时间去熟悉代码
- 版本控制:
· 采用了git版本控制,管理系统、规范代码,有助于团队协作,开发效率更快
· 有助于检查问题原因所在
- 第三方登录:
· 减少了繁琐的账号填写,登录更加便捷
· 实现了一个微信号或者QQ号登录所有的系统
- 运费系统:
· 系统可以自行添加运费模板,包邮、指定条件包邮数据
· 计费类型 :按件、按重量、按体积
· 用户发布商品的时候可以灵活的选择模板
· 用户配置好后,用户购买时系统自行计算运费
- 商品系统:
· 采用了 spu + sku 形式发布商品
· Spu 是一个商品组,而sku 是商品组下面的一个商品
· 减少了发布商品的工作量
- 订单系统:
· 采用了分单形式:即当用户买了好几个商家的商品是,系统自动分单
· 给商家提供了便利
· 消费者可以选择性操作订单
- 积分系统:
· 积分系统促进了用户的活跃度,与留存率
· 正确的引导用户行为:这就是为什么很多产品的积分获取是通过任务系统来完成的,例如新手任务等。就是为了帮助用户快速熟悉产品功能,同时不要做错误的事情。如果你的积分体系还有负激励机制,效果会更佳!
· 培养用户忠诚度:用户可以使用积分来兑换购买商品
 
 
 
 
ShopsN多商户系统开发中用到的技术栈
后端
 采用技术开发性价比最高的开发语言-php,国人使用范围最广的Thinkphp框架。便于开发,便于招聘,便于维护,是电商开发中成本最低,效果优异的技术方案。
 
Vue
轻量、简洁、高效、快速、模块友好;
节省开发时间、维护性高,用户体验效率更快;
轻巧、高性能、易上手、易学习、易整合;
有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
 
vue-cli 脚手架
代码和文件结构更清晰、易于维护;
提升前端开发的效率,降低开发成本和周期;
自动搭建模块化代码,减少减少开发人员工作量;
和 webpack 结合使用,高效开发,避免了不必要的错误。
 
vuex
vuex 是一个专为 vue.js 应用程序开发的状态管理模式;
它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证以一种可预测的方式发生变化。
解决了组件之间共享同一状态的问题;
通过定义和隔离状态管理中的各种概念并强制遵守一定的规则,我们的代码将会变得更结构化且易维护;
使用 vuex 来引入外部状态管理,将业务逻辑切分到组件外,可以避免重复的从服务端抓取数据;
Vuex 的状态存储是响应式的。
 
less
使用后代码更规范、便于管理、更智能、可维护性更高;
结构清晰,便于扩展;
可以方便的屏蔽浏览器私有语法差异;
封装对浏览器语法差异的重复处理,减少无意义的机械劳动;
可以轻松实现多重继承。
 
ESLint
代码规范和错误检查;
提高代码质量;
自动检测代码是否符合规范;
规范开发人员代码质量;
提升开发效率;
 
git
速度快、灵活;
适合分布式开发,强调个体;
公共服务器压力和数据量都不会太大;
版本控制工具,便于多人开发,可维护性高;
任意两个开发者之间可以很容易的解决冲突。
 
Axios
可以运行于浏览器和 Node.js 服务器环境;
使用 Axios 替代了原生的网络请求,扩展性高;
支持跨域、速度更快、提升用户体验;
节省开发时间,让开发人员有更多时间用在逻辑处理上。
 
CommonJS规范
规范管理接口和常量,开发性能快、可维护性更高;
解决变量污染问题,每个模块具有独立空间,互不干扰,命名空间等方案与之相比相形见绌;
定义模块十分简单,接口十分简洁;
支持引入和导出功能,这样可以顺畅地连接各个模块,实现彼此间的依赖关系;
代码优化时效率高。
 
webpack
webpack 是以 commonJS 的形式来书写脚本的,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移;
它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源;
还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载;
开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转 base64 等;
扩展性强,插件机制完善。
 
elementUI
网站快速成型工具;
风格简洁、性能高速;
组件多、样式简洁、符合大众审美;
节省开发时间,让开发人员有更多时间用在处理逻辑上。
 
flex弹性布局
简单、方便、快速;
兼容移动端、电脑端;
独立的高度控制与对齐;
   独立的元素顺序;
   指定元素之间的关系;
   灵活的尺寸与对齐方式。
 
rem
使用rem能等比例适配所有屏幕,兼容所有屏幕的手机端、电脑端,维护方便;
大大减少我们代码的重复性,是我们的代码更兼容;
通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应;
ios:6.1系统以上都支持;
android:2.1系统以上都支持;
除了 IE8 及更早版本外,所有浏览器均已支持 rem 。
 
CSS3新属性
在主页制作时采用 CSS3 技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制;
只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式;
CSS3 提供了非常多新途径去改善的设计工作,且做了不少重要的变化;
CSS3 将完全向后兼容,所以没有必要修改现在的设计来让它们继续运作。
 
 
 
移动端
 
第三方登录
不需要注册账号,直接使用已有的QQ号、微信等登录。减少了注册环节,减少了因为注册而流失的用户。
可以直接获取用户昵称、头像等信息,省去再次填写昵称、上传头像的麻烦。
共享QQ、微信等账号已有的用户关系,用户进入产品中就能找到熟悉的人,容易留住用户。
多数情况下,还减少了登录时账号和密码输入,通过点击就完成了登录。
 
客户服务
用户在客户服务中可直接联系在线客服,有QQ、电话、在线留言等方式;
用户可自助查询可能遇到的问题;
用户可通过查看公告的方式减少因操作不当导致的问题。
 
支付方式灵活
用户可选择余额、支付宝、微信、银联支付;
使用第三方支付减少了充值环节,减少了因充值而流失的用户;
第三方支付有担保,用户更容易接受和选择。
 
主题鲜明
金黄色作为主强调色,关键信息重点凸显;
首页品类推荐模块标题图文多色搭配;
首页楼层推荐商品模块的场景化文案,直达消费者内心;
以banner位、浮动小图标作为活动入口,起展示引导作用。同时,banner图采用了轮播形式,每隔几秒钟,系统会自动切换下一张。不断地循环播放,让整个APP页面带上了动态因素,在周围静止不变的环境下,更加引人注目,一下子就抓住了消费者的眼球。
 
场景化设计
根据分析用户使用的场景,用视觉的方式模拟类似的效果,这样可以提升用户使用的愉悦感,也可以降低用户的学习成本。
我们用到的有:优惠券、收藏夹、购物车等。
优惠券:增加了用户量,提高了用户活跃性,领券体验方便;
 
干净的空间感
大投影拉开空间感,利用投影轻重和远近创造多层次空间,用色块或图片制作精致干净的投影;
用间距替换线条,进行简化设计;
用规律性的排版,把握购物节奏感。
 
细节设计
搜索功能里强大的关键字推荐可减少用户的输入,提升用户体验,提高商家商品的成交量;
用户登录后看到的商品价格是会员价,比平时要便宜很多,极大的提高了商品的成交量;
购物车中在优惠信息,增加用户愉悦感,促使用户尽快付款购买。
 
购物流程设计
商品详情页面中有该商品的相关推荐和相似商品,用户有多种选择,粘性更高;
弱化商家入口和信息,突出商品价格。商品品牌和相似品牌的菜单,用户可以点击随意切换,切换的内容在屏幕中占位面积特别小,不会导致大面积切换而使用户在界面流程中迷失方向;还给出了相关搭配的产品推荐,刺激用户消费心,,增加用户转化率。
丰富的图文展示和用户评价模块拉近用户与产品之间的距离。图文详情顶部的 tab 栏让详情框架层级更为分明。
积分购买功能完善,用户可通过以往购买过的商品积累积分,当达到一定积分后,可兑换商品,增加用户粘度。
 
 
 
商户后台
 
首页统计
用户可直接看到成交量、成交金额、商品管理、订单管理、公告和销量统计,用户体验好。
 
权限帐户
管理员帐号可以分发一些帐号给测试人员、游客等,这里的权限就不是所有人都能看到,极大的保护了隐私;
可扩展性强;
操作方便、人性化,用户可直接增加、减少用户的权限;
 
强大的商品购买流程
从发布商品,到商品促销,到快递物流,再到完成订单,商户后台中心有一整套完整的机制。
灵活管理;
 
共赢平台
丰富的顾客资源流量,为商家提供与消费者对接的机会;
具有广度与深度、效率与实力相结合的强力优势;
ShopsN品牌的绝对影响力,为商家带来无限商机;
细节服务,配套销售资源,曝光量大,销售量大;
精诚合作,互利共赢,数百万品牌商信赖之选。
安全性

        

合作会员单位
开源并非意味着不安全。相反,如开源的linux比windows系统要安全的多。正是因为开源的缘故,许多公益组织为开源软件提供了大量免费的安全技术测试,并提供奖励给“白帽子”技术高手,来共同为开源界提供安全的环境。ShopsN的开源商城系统,也得到了上述组织的青睐,成为国内为数不多的免费获取安全漏洞补丁的电商系统公司。并获得不断的技术指导安全修复服务。
 

更多内容细节,正在不断更新中。。。
ShopsN目标是打造一流的开源多商户系统,不但可以自营,连锁,还可以加盟入驻。并在不远的时间内实现b2b2c到b2b2c2o的新零售多商户布局。