声明:原文来自Spree官方博客Spree 2.3.0 Released,原文发布日期是2014-06-30,本文仅作翻译。
简要介绍:Spree是一个基于Ruby on Rails开发的开源在线商城框架,提供了从商品展示购买、下单支付到库存管理以及订单管理等一系列基本功能,并且支持通过第三方扩展的形式定制或者扩展框架的功能,最新版本的Spree已经支持最新的Rails版本。
Spree 2.3的最新更改已经加入对Rails 4.1的支持,提供了更好的配置项的存储,更好的针对多店铺的支持,以及更好的游客追踪。Spree 2.3的发布,有赖于总的97位贡献者以及他们总的700多个的commit记录。现在,我们非常兴奋地宣布:Spree 2.3发布了!
现在,Rails 4.1已经得到了Spree 2.3的支持。如果你希望基于Rails 4.1进行开发,那么Spree 2.3就是特为你准备的发布版。
现在,所有的配置项存储在一个记录上,而不是存储在spree_preferences
表中。这意味着,为了获取一个配置项,比如价格的计算器配置,就会触发一个数据库查询,所查询的那一行记录有一个包含了所有配置信息的命名为preferences
的列。
而在此之前,对于每一个配置记录本身,可能都会有一个单独的数据库调用,而在查询到所请求的配置项之后,还是有可能会有任意数目的数据库调用产生。而现在,我们总的只需要调用一次,这意味着程序本身将会有一些速度上的提升。
我们已经添加了一个名为Spree::Store
的model,用于支持基本的多店铺/多域名的站点。其在spree-multi-domain
这个扩展的基础上提供了针对多店铺/多域名的基本框架。一些原有的配置项被转移到了这个model上,以此实现根据具体的店铺提供不同配置值:
Spree::Config[:site_name]
迁移到了 name
Spree::Config[:site_url]
迁移到了 url
Spree::Config[:default_meta_description]
迁移到了 meta_description
Spree::Config[:default_meta_keywords]
迁移到了 meta_keywords
Spree::Config[:default_seo_title]
迁移到了 seo_title
一个数据库迁移文件将会负责把这些原有的配置项转移到一个新的默认的store实例上。
一个新的名为ControllerHelpers::Store
的Concern提供了一个current_store
helper,可以在请求的域名的基础上,通过它获取当前店铺。
现在,我们用了一个签名的cookie在浏览器中存储游客的唯一的token。通过它允许关闭了浏览器的顾客可以在再次访问时继续完成他们的购物流程。更重要的是,这也帮助作为商店主人的你方便地识别游客的订单。由于我们在访客来访时都会设置cookies.signed[:guest_token]
,所以除了订单,或许你可以把cookie用于其他用途。
举个实际例子,如果游客需要收藏一个商品,你可以创建一个用于记录收藏记录的model,然后把cookies.signed[:guest_token]
赋值给这个model中的token
字段。这将有助于你分析当前用户在此之前的订单以及收藏记录,这对于商品推荐将是非常有用的。
你可以从Github上浏览更详细的变更列表。