V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
terrywater
V2EX  ›  分享创造

开源电商 B2C 商城 Fecshop,支持多语言多货币

  •  
  •   terrywater · 2017-12-11 14:46:03 +08:00 · 6734 次点击
    这是一个创建于 2530 天前的主题,其中的信息可能已经有所发展或是发生改变。


    Latest Stable Version Total Downloads Latest Unstable Version

    项目状态:

    正式版本已经出来,后台( appadmin )和 pc 端( appfront ),wap 端( apphtml5 ) ,vue 端( appserver )已经完成,完成了一些基本的 api。

    1、Fecshop 介绍

    Fecshop 全称为 Fancy ECommerce Shop,是基于 php Yii2 框架之上开发的一款优秀的开源电商系统, Fecshop 支持多语言,多货币,架构上支持 pc,手机 web,手机 app,和 erp 对接等入口,您可以免费快速的定制和部署属于您的电商系统。

    详细参看地址:Fecshop 介绍

    Fecshop 官网: http://www.fecshop.com ,您可以在这里提交 bug,问题咨询等等。

    Fecshop [已完成] PC Web Demo: http://fecshop.appfront.fancyecommerce.com/

    Fecshop [已完成] Mobile Web Demo ( WAP ): http://fecshop.apphtml5.fancyecommerce.com

    Fecshop [已完成] Mobile VUE Demo(Appserver,前后端彻底分离模式): http://demo.fancyecommerce.com/#/

    Fecshop 后台演示地址:加 QQ 群,在群公告里面有后台演示地址,账号密码等信息

    Fecshop QQ 群:186604851,入群验证:fecshop

    Fecshop 作者 QQ:2358269014

    FecShop Email: [email protected]

    Fecshop Github 地址: https://github.com/fancyecommerce/yii2_fecshop

    开源协议:Fecshop 授权协议

    2、Fecshop 文档和视频

    二开以及安装文档: Fecshop 安装开发文档 [撰写完成]

    使用帮助说明文档: Fecshop 使用帮助文档 [撰写完成]

    安装开发帮助视频: Fecshop 安装开发视频 [撰写完成]

    前后端分离模式 Api: Appserver VUE Api 文档 [撰写完成]

    3、安装 Fecshop

    请务必按照说明安装,自己来配置环境安装吧.

    从基础 linux 一步一步的配置的方式,详细参看文档: Fecshop 安装

    4、fecshop 配置:

    配置详细参看:fecshop 配置

    如果您使用 vagrant box 的安装方式,上面的这些步骤,在 box 都配置好了。

    5、架构特色

    架构特色:参看详细介绍:Fecshop 架构特色

    下面是简叙:

    Fecshop 全称为 Fancy ECommerce Shop,是一款优秀的开源电商系统,遵循 BSD-3-Clause 协议(和 Yii2 框架一样的开源协议), 目的是为了方便 yii2 用户快速的 开发商城,Fecshop 作为一款可以持续性发展的商城系统, 在框架层面有以下特性:

    1. 由于商城系统的复杂性,原始的框架 MVC 结构,显的有点力不从心,Fecshop 框架 加入了 Block 层, Controller 层只负责调度,Model 只负责数据库映射,中间的处理逻辑由 block 来完成,View 层 负责显示,这样各司其职, 以免造成 controller 文件过于庞大。

    2. 加入独立功能块,有点类似 Yii2 的 Widget,目的是为了让一些侧栏公用块 可以通过配置的方式 添加,同时,还可以具有设置缓存的功能,譬如侧栏的产品浏览记录, newsletter 等独立显示块可能在很多 页面用到,通过独立功能块可以配置方便的载入。

    3. 在 Model 层的上层加入服务层 Services,这样,Controller,Block,View 层,在原则上 不能直接调用 model,必须通过 Services 层以及子 Services 层,然后 Services 访问各个 model,组织数据,事务处理等操作, 将数据结果返回给上层,这种设计可以方便以后业务 发展后,进而根据业务特点进行重构,或者以后如果出现新技术,新方式, 都重构成自己想要的样子,譬如, 将某个底层由 mysql 换成 mongodb,或者为了应付高并发读写并且多事务性的功能部分, 进行分库分表的设计方式。

    4. Fecshop多模板系统,Fecshop设置了多个模板路径,各个模板路径下的文件被加载 的优先级不同,其中,Fecshop 的模板路径下的文件最全面,但是优先级最低, ,第三方模板路径优先级其次,用户本地模板路径优先级最高, 用户可以通过 复制相应路径下的 view 或者 js,css 文件到本地模板路径,存在于高优先级 模板路径的文件会被优先加载,这样用户可以通过多模板系统的原理进行模板的 制作,同时,不影响Fecshop模板的升级,如果Fecshop view 文件升级后被修改, 那么用户可以比对本地模板文件与升级模板文件的代码的不同, 复制更改的代码到本地模板路径 即可。第三方的模板路径的优先级介于本地模板路径和 Fecshop 模板路径之间。

    5. 重写机制,Fecshop的功能基本都可以被用户重写,包括 servies 层,Modules, Controller,Block,Views,View Layout, 以及 Js Css Img 等,都可以被用户重写,其中 Js,Css,Img,Views,View Layout 是通过多模板 路径优先级来实现的,其他的是通过配置文件的覆盖更改来实现重写,这样,用户 就可以很方便重构Fecshop或者第三方的功能和模板。

    6. 升级最小化干扰,Fecshop的核心文件是放到 vendor/fancyecommerce/fecshop 路径下面,和第三方扩展,用户二次开发路径完全隔离开, Fecshop 可以通过 composer 进行核心功能的升级,用户只需要通过 composer 升级 即可。

    7. 快速高效,Fecshop Servises 遵循 Yii2 的懒加载方式,只初始化使用到的组件服务, 缓存方面有整页缓存,block 部分缓存,动态数据 ajax 加载等方式,让您的网站快速响应。

    8. Fecshop 多入口模式,分为 appadmin (后台),appfront ( PC 前端),apphtml5 (手机 web ), appserver (手机 app 服务),appapi ( erp,或者其他接口对接), 不同的业务,不同的设备,进入不同的入口,各个入口共用服务层 services, 但是 modules 部分独立,这样相互干扰最小,可以相互独立开发。

    9. 后台封装化,fec_admin 扩展可以快速的实现增删改查类型的表单列表, 方便用户快速的做增删改查。

    鉴于以上特点,您可以下载安装Fecshop,然后更改Fecshop的模板和功能,扩展自己想要 的功能,或者安装第三方开发好了的扩展或者模板,来快速的组建起来您的网站。

    6、捐赠

    如果您认为这是一个不错的项目,对您有帮助,你可以通过下面的方式进行捐赠, 这里感谢您对开源项目的支持。

    支付宝:

    微信:

    47 条回复    2019-02-23 09:27:06 +08:00
    terrywater
        1
    terrywater  
    OP
       2017-12-11 16:06:49 +08:00
    顶顶
    istark
        2
    istark  
       2017-12-11 16:35:40 +08:00
    一个人做的?
    s2555
        3
    s2555  
       2017-12-11 17:16:02 +08:00
    收藏,持续关注
    cocoakekeyu
        4
    cocoakekeyu  
       2017-12-11 17:54:39 +08:00
    👍
    terrywater
        5
    terrywater  
    OP
       2017-12-11 18:24:56 +08:00
    @istark 是的,已经开发 2 年。
    terrywater
        6
    terrywater  
    OP
       2017-12-11 18:27:07 +08:00
    @s2555 会一直开发下去的。
    istark
        7
    istark  
       2017-12-11 18:29:15 +08:00
    @terrywater 希望你能拉到投资或者赞助,组建一个小团队,做的产品更好,使用的人就越多。
    duola
        8
    duola  
       2017-12-11 18:34:33 +08:00
    还能说什么,佩服!
    duola
        9
    duola  
       2017-12-11 18:38:56 +08:00
    已捐赠 9.9
    terrywater
        10
    terrywater  
    OP
       2017-12-11 18:41:56 +08:00
    @duola 多谢,可以使用 fecshop,帮助优化 fecshop 功能。再次感谢
    terrywater
        11
    terrywater  
    OP
       2017-12-11 18:43:14 +08:00
    @istark 现在只想做好一个开源产品,持续做下去,利用空闲时间,沉淀多年的经验,以及抛砖引玉,吸引更多的人(有能力有信息的)过来帮助优化 fecshop。
    w88975
        12
    w88975  
       2017-12-11 18:45:26 +08:00
    厉害 商城这种系统 一个人开发下来也是很牛的
    terrywater
        13
    terrywater  
    OP
       2017-12-11 18:54:33 +08:00
    @w88975 从 2010 年入坑跨境出口电商 B2C,工作这么多年,积累了很多轮子,2015 年开始筹划开发 fecshop

    嗯,工作量比较大,不过还好,坚持下来就好了。
    IllBeBack
        14
    IllBeBack  
       2017-12-11 19:03:08 +08:00
    PF!
    terrywater
        15
    terrywater  
    OP
       2017-12-11 20:41:23 +08:00
    @IllBeBack ....
    Wichna
        16
    Wichna  
       2017-12-11 20:53:49 +08:00
    特别赞,楼主我可以转帖到 Paybase 吗? https://paybase.cn/
    terrywater
        17
    terrywater  
    OP
       2017-12-11 21:18:22 +08:00
    @Wichna 可以啊,多谢帮助宣传。
    miao
        19
    miao  
       2017-12-11 21:31:02 +08:00   ❤️ 1
    好吧, zencart 的生意被抢了. 感谢楼主
    bomb77
        20
    bomb77  
       2017-12-11 21:35:14 +08:00
    很好看,支持一下
    terrywater
        21
    terrywater  
    OP
       2017-12-11 21:38:51 +08:00
    @miao 哈哈,fecshop 很多思想来自于 magento 和 Yii2 的新特性。
    terrywater
        22
    terrywater  
    OP
       2017-12-11 21:48:09 +08:00
    @bomb77 3Q
    Wichna
        23
    Wichna  
       2017-12-11 22:03:54 +08:00
    terrywater
        24
    terrywater  
    OP
       2017-12-11 22:15:53 +08:00
    @Wichna 3Q
    tim2017
        25
    tim2017  
       2017-12-11 22:20:01 +08:00 via iPhone   ❤️ 1
    收藏。见证奇迹的时刻!
    terrywater
        26
    terrywater  
    OP
       2017-12-11 22:21:35 +08:00
    zhuzhongkelk
        27
    zhuzhongkelk  
       2017-12-11 22:42:57 +08:00 via iPhone   ❤️ 1
    恭喜 Fecshop 出正式版,希望 Fecshop 以后能增加批发功能,比如整箱销售,整包销售。这功能对于有些外贸企业是刚需。
    wudaonongjian
        28
    wudaonongjian  
       2017-12-11 22:47:54 +08:00 via iPhone
    膜拜✪ω✪大神
    justfun
        29
    justfun  
       2017-12-11 23:04:36 +08:00 via iPhone
    UI 比较适合做外贸
    terrywater
        30
    terrywater  
    OP
       2017-12-11 23:19:12 +08:00
    @justfun 模板可以自己开发样式
    terrywater
        31
    terrywater  
    OP
       2017-12-11 23:20:44 +08:00
    @zhuzhongkelk 细化一下这个功能,来 http://www.fecshop.com/ 发个帖
    IllBeBack
        32
    IllBeBack  
       2017-12-12 00:06:36 +08:00 via Android
    @terrywater 佩服!
    cao6
        33
    cao6  
       2017-12-12 09:19:31 +08:00
    为什么好多商城的商品规格选择都不用 ajax 加载
    terrywater
        34
    terrywater  
    OP
       2017-12-12 09:45:21 +08:00
    @cao6 这是模式

    1.京东模式:进入京东页面,你可以看到,点击不同的规格,url 是变动的,每一个 sku 是一个独立的 url,这种好处是可以一个产品和颜色对应一个 url,发送 url 直接找到相应型号的产品,譬如 fecshop 的实现: https://fecshop.appfront.fancyecommerce.com/raglan-sleeves-letter-printed-crew-neck-sweatshirt-53386451-77774122,

    2.淘宝模式:进入淘宝,你会发现颜色尺码默认都是没有选择的,您需要通过点击勾选,然后才知道有没有库存,因为产品页面要做整页缓存,因此价格部分要动态加载,因此需要 ajax 请求,fecshop 也做了相应的实现: https://fecshop.appfront.fancyecommerce.com/reindeer-pattern-glitter-christmas-dress-86519596

    这是两种模式。
    terrywater
        36
    terrywater  
    OP
       2017-12-12 09:48:58 +08:00
    @cao6 京东模式的产品点击后,页面刷新,浏览器会闪一下,这个影响体验,这个可以通过前端技术搞定。

    譬如京东的这个产品: https://item.jd.com/11321641633.html#none
    terrywater
        37
    terrywater  
    OP
       2017-12-12 09:53:25 +08:00
    对于淘宝,譬如: https://detail.tmall.com/item.htm?spm=a230r.1.14.37.f98b8f8EAyCE0&id=560128789437&ns=1&abbucket=2&skuId=3663375966068

    你会发现,进入页面后,颜色尺码默认都是没有勾选的,需要先点击选择, 然后才知道有没有库存,因此,淘宝模式的 url 对应的是 spu。

    而京东模式,点击进入产品页,都是会默认勾选的,也就是一个 sku 对应一个 url,而不是 spu 对应。


    因此,这两种模式的数据结构是不同的,但,Fecshop 都做了相应的实现。
    wujunze
        38
    wujunze  
       2017-12-12 13:00:06 +08:00
    很赞
    notreami
        39
    notreami  
       2017-12-12 13:00:46 +08:00
    希望又详细的库表设计说明。很多这类开源项目,库表设计都没说明。
    terrywater
        40
    terrywater  
    OP
       2017-12-12 14:12:15 +08:00
    @notreami 说详细一点,你需要库包设计出现哪些内容?
    notreami
        41
    notreami  
       2017-12-12 15:42:24 +08:00
    @terrywater 比如 RE 图,以及为什么要这些张表。这些表的分别用于什么?
    terrywater
        42
    terrywater  
    OP
       2017-12-12 16:27:58 +08:00
    只有各个表,以及字段的注解

    RE 图, 对于 fecshop 不需要了,因为引入了 mongodb,产品数据,一张 mongodb 表搞定,当然,库存放到了 mysql 里面,用了 2mysql 表。

    另外就是 cart 和 order 表的一些数据的对应,只是 2 个表

    因此不需要 RE 图。

    不知道你听了这些啥感觉,哈哈。
    mongodb 没有表结构,多人协作的大系统,为了防止出错,一般不敢用。

    mongodb nosql 类型做这些不涉及到事务的数据存储,还是没啥问题的。
    terrywater
        43
    terrywater  
    OP
       2017-12-12 16:29:38 +08:00
    @notreami Fecshop 针对的是中型网站,mongodb 除了做存储,还可以当搜索引擎,支持分词,另外还有 aggregate 管道功能,因此,不需要 ElasticSearch 等搜索工具了

    用 mongodb 是一种折中方案,如果想重构,也是可以的,在 services 增加一个底层实现,然后配置做指向就行了
    Molang
        44
    Molang  
       2017-12-13 09:13:39 +08:00
    收藏了,总感觉以后会用到似的,haha
    terrywater
        45
    terrywater  
    OP
       2017-12-14 08:57:38 +08:00
    @Molang 欢迎
    terrywater
        46
    terrywater  
    OP
       2018-12-12 17:56:09 +08:00
    @zhuzhongkelk

    整箱销售已经开发了,现在已经成熟稳定,1.6.1.0 版本
    16t
        47
    16t  
       2019-02-23 09:27:06 +08:00
    准备试一试,谢谢 LZ 辛苦开发。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4331 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 05:33 · PVG 13:33 · LAX 21:33 · JFK 00:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.