全称为Fancy ECommerce Shop, 着重于电商架构的研发优化,全新定义商城的架构体系,是基于php Yii2框架之上开发的一款优秀的开源电商系统,易于系统升级,二次开发以及第三方扩展,代码100%开源,作为一款定位于商城框架功能齐全的电商系统,您可以下载代码查看fecmall的代码结构,Fecmall开源商城是 B2C类型,不支持商家入驻(不是B2B2C,B2B2C请使用多商户版Fecbbc系统), Fecmall支持多语言,多货币,架构上支持pc,手机web,手机app,微信小程序,和erp对接等入口,您可以免费快速的定制和部署属于您的电商系统。
Fecmall发起人Terry:
Terry,2010年进入跨境电商行业至今,从开始的玩magento到 自建商城系统,积累了很多跨境电商业务经验,2015年开始筹划fecmall开源项目,将多年的电商经验沉淀到fecmall,方便自己的项目使用,并分享给大家, 希望fecmall抛砖引玉,可以聚集一群电商技术人士,共同学习,提升,进步。
Fecmall开发初衷:
目前市场上开源电商系统,生态和插件体制非常好, 譬如magento,zencart,可以很快的让公司有一个属于自己的电商系统, 但当公司业务晋升,需要大量二开,甚至想重构掉原有的模块,是一件非常令人头疼的事情, 譬如把magento的购物车模块由mysql换成redis,是非常费劲的事情, 另外,自从2010年至今,随着移动端的到来,多入口模式的电商系统, 以及新的编程思想, 新的软件工具的涌现, 在开源界几乎找不到适应当今模式的开源电商系统,为了满足自己的需求,顺便方便更多的人,从2015年开始筹划开发 支持多入口模式的fecmall,一直坚持到今天,简而言之,fecmall面向的群体是程序员,而非小白。 不过,小白也做不了电商,目前没听说过那个做自营电商的公司没有程序员, 小白还是去taobao,天猫,ebay,amazon,aliexpress等平台入驻比较好, 不适合做自营网站。
注:2019年8月份,fecmall-2版本的发布,以及fecmall入驻宝塔控制面板支持一键部署,让fecmall的安装难度大大降低,动手能力强一些的小白可以基于宝塔部署fecmall。
Fecmall 架构特色:
Fecmall 全称为Fancy ECommerce Shop,是一款优秀的开源电商系统,遵循BSD-3-Clause协议(和Yii2框架一样的开源协议), 目的是为了方便yii2用户快速的 开发商城,Fecmall作为一款可以持续性发展的商城系统, 在框架层面有以下特性:
由于商城系统的复杂性,原始的框架MVC结构,显的有点力不从心,Fecmall框架 加入了Block层, Controller层只负责调度, Model只负责数据库映射,中间的处理逻辑由block来完成,View层 负责显示,这样各司其职, 以免造成controller文件过于庞大。
加入独立功能块,有点类似Yii2的Widget,目的是为了让一些侧栏公用块 可以通过配置的方式 添加,同时,还可以具有设置缓存的功能,譬如分类侧栏的产品推荐, newsletter等独立显示块可能在很多 页面用到,通过独立功能块可以配置方便的载入。
在Model层的上层加入服务层Services,这样,Controller,Block,View 层,在原则上 不能直接调用model,必须通过Services层以及子Services层,然后Services访问各个 model,然后组织处理数据, 将数据结果返回给上层,这种设计可以方便以后业务 发展后,进而根据业务特点进行重构,或者以后如果出现新技术,新方式, 都重构成自己想要的样子,譬如, 将某个底层由mysql换成mongodb,或者为了应付高并发读写并且多事务性的功能部分, 进行分库分表的设计方式。 另外,作为一款强扩展性的商城,产品,分类等services部分,实现了mongodb和mysql两套services,用户可以在后台配置切换不同的底层存储, 以及cart services,通过配置将mysql cart切换成redis cart,Service是公用层,前端pc,h5,小程序等入口公用services, Service是懒加载模式,用到的时候才会实例化单例模式对象,无论在应用扩展,开发重构,代码开发,性能加速等方面,services都是一把利器,Fecmall services的实现方式参考了Yii2的组件原理。
Fecmall多模板系统,Fecmall设置了多个模板路径,各个模板路径下的文件被加载 的优先级不同,其中,Fecmall的模板路径下的文件最全面,但是优先级最低, ,第三方模板路径优先级其次,用户本地模板路径优先级最高, 用户可以通过 复制相应路径下的view或者js,css文件到本地模板路径,存在于高优先级 模板路径的文件会被优先加载,这样用户可以通过多模板系统的原理进行模板的 制作,同时,不影响Fecmall模板的升级,如果Fecmall view文件升级后被修改, 那么用户可以比对本地模板文件与升级模板文件的代码的不同, 复制更改的代码到本地模板路径 即可。第三方的模板路径的优先级介于本地模板路径和Fecmall 模板路径之间。
重写机制,Fecmall的功能基本都可以被用户重写,包括servies层,Modules, Controller,Block,Views,View Layout, 以及Js Css Img等,都可以被用户重写,其中 Js,Css,Img,Views,View Layout 是通过多模板 路径优先级来实现的,其他的是通过配置文件的覆盖更改来实现重写,这样,用户 就可以很方便重构Fecmall或者第三方的功能和模板。
升级最小化干扰,Fecmall的核心文件是放到vendor/fancyemerce/fecmall 路径下面,和第三方扩展,用户二次开发路径完全隔离开, Fecmall可以通过poser进行核心功能的升级,用户只需要通过poser升级 即可。
快速高效,Fecmall Servises遵循Yii2的懒加载方式,只初始化使用到的组件服务, 缓存方面有整页缓存,block部分缓存,动态数据ajax加载等方式,让您的网站快速响应。
Fecmall 多入口模式,分为 appadmin(后台), appfront(PC前端),apphtml5(手机web), appserver(手机app服务),appapi(erp,或者其他接口对接), 不同的业务,不同的设备,进入不同的入口,各个入口共用服务层services, 但是modules部分独立,这样相互干扰最小,可以相互独立开发。
后台封装化,fec_admin扩展可以快速的实现增删改查类型的表单列表, 方便用户快速的做增删改查。
<(..)是国内知名商城系统及商城网站建设提供商,为企业级商家提供零售商城、B2B2C多用户商城系统、社区团购、微信分销系统、小程序商城、商城系统等多端商城网站建设解决方案>
申明:本网站部分文章和图片来源网络编辑,如有侵权及时沟通删除,来客电商原创文章,转载请注明来源。