开源项目 ShopQi 专贴 (任何问题或疑问请发到这里)

saberma · 2012年03月26日 · 最后由 tobone 回复于 2014年08月10日 · 16733 次阅读

ShopQi 是一个多网店电子商务管理系统,代码完全开源。

地址: https://github.com/saberma/shopqi

有关 ShopQi 的任何问题或疑问,可以发到这里(长期有效),我会尽快回复。

开源出来的代码,能否做一个单店版本,做成 Rails Engine?

我也有这样的想法,不过现在没时间去做。 有个朋友前几个星期联系我,说正在基于 ShopQi 弄单店版本,弄好了会开源出来。

如果把 shop 功能同用户,博客,文章等功能分离,就美好了。 如果很强,可以单独卖 shop engine

shop 里面的支付接口支持等,可做文章很多啊

期待看到你的运营情况,很想做这种 saas 的东西。但是不知道怎么去运营,营销。期待分享经验啊。

@hunter 那就是单店版本了,在国外也许有可能卖钱。支付接口的支持也已经有成熟的插件了。

@bony saas 可能还得几年后在中国才能有所发展,现在还没有发现做得好的。我现在也还是边摸索着边走,如果有好的经验,一定会写出来分享。

我比较喜欢异想天开,随便考虑了一下,没有仔细看过你的代码,仅用于头脑风暴。

--插件形式的 shop engine 机会很大哦,如果能做成插件,所有的企业都需要一个 online shop 平台,更别提个人了,只是如何个插法?

--博客和宣传 博客和宣传其实用一个 cms 可以解决,解决商品信息介绍的问题

--可以支持价目表,不同的服务配置等

--先做好一件商品,再做商城就比较容易

--类似于 jekii 博客平台,本地编辑,git 部署,用户一键更新站点 本地编辑商品信息,一键 git push 上传,可以想象上传那些图片在线编辑太烦人了

--支持各种支付接口

-独立的数据库?因为在人家基础上搞比较麻烦

--支持后台访问统计

--角色支持? 客服,管理员

--在线聊天支持,用 node.js 搭一个聊天室?

--提供 API

完美的 shop 绝对有很大价值

上网站看了下 shopqi,哇塞,已经做的很不错了,有前途哦

产品已经很细腻了,不知道现在的实际商家数量。过段时间 4 月过后,联系好货,准备上去卖看

@hunter --插件形式的 shop engine 当初做这个的时候就是设想大多数企业都需要 online shop,但是没有做成插件,而是以 SAAS 的方式提供服务。 例如:企业有官网 example.com,只要:

  1. 在 ShopQi 创建一个商店帐号 example.shopqi.com
  2. 修改 DNS 增加一条 CNAME 记录 shop,指向 example.shopqi.com;
  3. 在官网主菜单中增加"商城"链接,指向 shop.example.com
  4. 修改商城皮肤,保持与官网风格一致 一个企业的商城就建起来了。在这种情况下,ShopQi 整体就相当于一个插件了。

--博客和宣传 博客已经有了,宣传也有了 (宣传在 ShopQi 称之为页面)。博客和页面的基本差异就是前者有一定的时效性,比如商城本周开展优惠活动,就可以用博客发布。而关于商城的一些介绍信息就可以通过页面这个功能来发布。

--可以支持价目表,不同的服务配置等 如果以后有精力去做单机版本,将会是开源免费的,不会收费。

--先做好一件商品,再做商城就比较容易 这个没看明白具体的意思?

--类似于 jekii 博客平台,本地编辑,git 部署,用户一键更新站点,本地编辑商品信息,一键 git push 上传,可以想象上传那些图片在线编辑太烦人了 这个功能分两个部分:

  1. 修改商品信息,这个本地修改还没有支持;但已经提供简要的 api,以方便未来有需求的企业进行二次开发,与原有软件进行集成等。
  2. 修改商城皮肤,支持本地修改时看到实际效果(取服务器的商品信息) 这个正在计划做,还没想好是用 ruby 来做,还是用 node;做这一部分功能得以 windows 为主,方便美工修改。

--支持各种支付接口 这个暂时已经支持支付宝、财付通,即将支持快钱还有更多的接口。关于担保交易时的发货处理还不够细(在 ShopQi 修改订单为已发货时支付宝要同步更新),这个待下一步继续完善。

-独立的数据库?因为在人家基础上搞比较麻烦 如果是单机版,数据库是独立的

--支持后台访问统计 现在不支持更细的访问统计,现用 google 或百度的

--角色支持?客服,管理员 不支持角色,降低复杂度。现在只支持功能权限的直接控制,例如把订单处理的功能授权给张三。

--在线聊天支持,用 node.js 搭一个聊天室? 在第一版的时候是做了的,后来去掉了,需求不是很大,就不面面俱到了。

--提供 API 关键业务已经有 api

@hunter 谢谢你提供的信息

@suxu 谢谢试用,有任何问题随时 @我

@saberma ,谨防功能爆炸,抓住和完善核心功能才是正确的,希望没有干扰到你正常开发。

@saberma 目前https://www.shopqi.com的网站部署方案是神马? 是自己的云计算平台啊?分享一下您的部署方案吧。

@hunter 非常赞同你的观点。

@mobiwolf 现在还是自己 diy 服务器,等一般时间云计算成熟些了,再整体迁徙过去,之后再把这些也分享出来。 diy 服务器的过程有写出来,主要是【后记】部分才是最终选择的方案。 http://saberma.me/other/2011/10/21/how-to-diy-a-server.html

自己 diy 的服务器?什么意思?感觉速度飞快啊!

@Levan 就是服务器是自己组装的,然后托管在深圳的双线机房。绝大多数地区访问速度还是不错的。再加上 Sprockets,后续访问不需要再重新加载 js,css 之类的,会快多。后台管理的大多数操作都是 ajax 实现,列表中的数据也都是通过 json 方式加载,速度也会有不少提升。 还没有进行优化,速度提升的空间还很大。

@saberma 是不是可以考虑用 cloud foundry 来搭建一个定制版本的私有云来专门服务于 shopqi 呢?

@mobiwolf 你的意思是按客户需要对 ShopQi 进行二次开发,然后安装到私有云?这样做的好处是?

@saberma 1,资源共享了,网店的流量不会高的惊人。2,出错自动恢复 3,让你的 shopqi 运行在你自己的私有云,这样感觉更安全。

@mobiwolf 明白了

  1. 资源现在就是共享的,提供的是 SAAS 服务。我觉得直接基于服务器部署和中间加个云层,对于流量来说是一样的。你指的资源共享了,负载就不会高得惊人吧。
  2. 出错恢复之类用云来管理确实更有保障
  3. 随着规模的扩大,我倾向于使用私有云 + 公有云来管理,cloud foundry 使用 chef 来部署各种应用和数据库非常方便,再加上使用公有云存储文件和图片。

@saberma 试用了,访问速度挺不错。只是字体真的不是很好看,正准备看你的源码。不过想弱弱的问下,你的图片是如何处理的?打开的速度很快,也有一个放大功能,可否简单的介绍下呢?

@ruby_sky 图片没经过特殊处理,只存储原图,使用 dragonfly 生成各种规格的缩略图,用 rack-cache 缓存。 有些商店的放大功能是使用 js 插件 Cloud Zoom 来实现的。

#20 楼 @saberma 好的,谢谢哈。

 sudo bundle install
/var/www0/shopqi/Gemfile:22:in `evaluate': compile error (SyntaxError)
/var/www0/shopqi/Gemfile:22: syntax error, unexpected ':', expecting $end
gem 'rack-cache', require: 'rack/cache‘

git clone 了 github 上面的代码后,提示 gemfile 不对

@icemark ruby 是 1.8 版本的?

换了 1.9.2 也出错。。。

/var/www9/shopqi$ sudo bundle install
/opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/dsl.rb:7:in `instance_eval': /var/www9/shopqi/Gemfile:23: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' (SyntaxError)
gem 'carrierwave'
     ^
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/dsl.rb:7:in `evaluate'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/definition.rb:17:in `build'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler.rb:136:in `definition'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `run'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389:in `start'
        from /opt/ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/bin/bundle:13:in `<top (required)>'
        from /usr/bin/bundle:19:in `load'
        from /usr/bin/bundle:19:in `<main>'


@icemark 我这使用 rvm 切换到 ruby 1.9.2,没能重现问题 你运行下

gem e 

把环境信息发上来看看

Gemfile 中的内容没有修改过吧?

搞定了,谢谢

在登录页面输入网店域名 + 邮箱 + 密码后,依然会弹出第二次登录窗口,需要输入邮箱和密码才能登录 这是设计好这样的流程还是出错了呢?

@icemark 不是设计好的,问题已经确认,我查下原因

Installing kgio (2.6.0) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/SanviLu/Documents/rails_one_click/ruby/bin/ruby extconf.rb checking for CLOCK_MONOTONIC in time.h... no checking for CLOCK_MONOTONIC() in time.h... no checking for clockid_t in time.h... no checking for clock_gettime() in -lrt... no checking for t_open() in -lnsl... no checking for socket() in -lsocket... no checking for poll() in poll.h... yes checking for getaddrinfo() in sys/types.h,sys/socket.h,netdb.h... yes checking for getnameinfo() in sys/types.h,sys/socket.h,netdb.h... yes checking for struct sockaddr_storage in sys/types.h,sys/socket.h... yes checking for accept4() in sys/socket.h... no checking for sys/select.h... yes checking for ruby/io.h... yes checking for rb_io_t.fd in ruby.h,ruby/io.h... yes checking for rb_io_t.mode in ruby.h,ruby/io.h... yes checking for rb_io_t.pathv in ruby.h,ruby/io.h... yes checking for struct RFile in ruby.h,ruby/io.h... yes checking size of struct RFile in ruby.h,ruby/io.h... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.

Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/SanviLu/Documents/rails_one_click/ruby/bin/ruby --with-rtlib --without-rtlib --with-nsllib --without-nsllib --with-socketlib --without-socketlib /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:597:in Integer': can't convert nil into Integer (TypeError) from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:597:inblock in try_constant' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:330:in popen' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:330:inblock in xpopen' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:254:in open' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:323:inxpopen' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:596:in try_constant' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:1156:inblock in check_sizeof' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:790:in block in checking_for' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:284:inblock (2 levels) in postpone' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:254:in open' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:284:inblock in postpone' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:254:in open' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:280:inpostpone' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:789:in checking_for' from /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/1.9.1/mkmf.rb:1155:incheck_sizeof' from extconf.rb:40:in `'

Gem files will remain installed in /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/gems/1.9.1/gems/kgio-2.6.0 for inspection. Results logged to /Users/SanviLu/Documents/rails_one_click/ruby/lib/ruby/gems/1.9.1/gems/kgio-2.6.0/ext/kgio/gem_make.out An error occurred while installing kgio (2.6.0), and Bundler cannot continue. Make sure that gem install kgio -v '2.6.0' succeeds before bundling.

匿名 #30 2012年09月28日

我使用的是 MySQL 数据库,在运行到$ bundle exec rake "shopqi:bootstrap[mysql]"这条命令的时候出现下面的错误: rake aborted! undefined method `collections' for #Product:0xd2e3cec 请问是什么原因啊?

整合了淘宝么?

@sanivbyfish 你试下直接安装 kgio 看成不成功? gem install kgio -v '2.6.0'

@yanhuanle 运行 bundle exec rake "shopqi:bootstrap[mysql]" --trace,看具体是哪条语句抛出的异常

@chucai 没整合淘宝

#32 楼 @saberma 尝试过了,一样的错误,我 ruby-china 也是这个 gem 出错,是因为我是 mountain lion 的关系吗

@sanivbyfish 那很可能跟你的 ruby 环境有关系了,你是使用 rvm 安装的 ruby 吗?

#34 楼 @saberma 用的 railsoneclick 安装的

@sanivbyfish 这个问题很可能是你缺少安装某些系统开发组件。 你可以试下使用 rvm,也很简单的,安装完成后它会有后续安装说明,根据你的操作系统提示你还需要安装哪些系统开发组件供 ruby 使用。

@sanivbyfish 好的,有需要再找我

匿名 #39 2012年09月28日

这里出错了: …… ** Execute db:seed:development:shop rake aborted! undefined method collections' for #<Product:0xdebf9bc> /home/lele/.rvm/gems/ruby-1.9.2-p290/gems/activemodel-3.2.7/lib/active_model/attribute_methods.rb:407:inmethod_missing' /home/lele/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.7/lib/active_record/attribute_methods.rb:149:in method_missing' db/seeds/development/shop.seeds.rb:48:inblock in ' db/seeds/development/shop.seeds.rb:46:in upto' db/seeds/development/shop.seeds.rb:46:in' ……

@yanhuanle 之前 product.collections 改成 product.custom_collections 了,db seed 中的脚本没改过来。

现在已经更新代码,git pull 获取最新的就可以了。

匿名 #41 2012年09月28日

哈哈,运行成功,非常感谢!

kgio 我装不上,我换成 thin

ActionController::RoutingError (No route matches [GET] "/"): actionpack (3.2.7) lib/action_dispatch/middleware/debug_exceptions.rb:21:in call' actionpack (3.2.7) lib/action_dispatch/middleware/show_exceptions.rb:56:incall' railties (3.2.7) lib/rails/rack/logger.rb:26:in call_app' railties (3.2.7) lib/rails/rack/logger.rb:16:incall' config/initializers/logger.rb:6:in call_with_quiet_assets' actionpack (3.2.7) lib/action_dispatch/middleware/request_id.rb:22:incall' rack (1.4.1) lib/rack/methodoverride.rb:21:in call' rack (1.4.1) lib/rack/runtime.rb:17:incall' activesupport (3.2.7) lib/active_support/cache/strategy/local_cache.rb:72:in `call'

这个是什么问题

@sanivbyfish 你需要使用 lvh.me,因为 localhost 的访问是被忽略的

我刚试了,换成 thin 后访问首页和后台管理正常。如果还有问题请告诉我。

#43 楼 @saberma 也就是我妖修改个 host 对吧

@sanivbyfish 可以不用修改 host 文件,lvh.me 的购买者已经将它指向 127.0.0.1

#45 楼 @saberma 我去掉 host 就访问不到了,如果自己加 host,那么他的资源文件读取不到,好像跟 CDN 有关

@sanivbyfish 你有加端口吧,thin start -p 4000 启动后,使用 lvh.me:4000 访问

另外,你 ping lvh.me 是什么結果?

#47 楼 @saberma SanviLutekiMac-mini:dump SanviLu$ ping lvh.me ping: cannot resolve lvh.me: Unknown host

@sanivbyfish 可能是你的电信运营商限制访问 lvh.me 了,你可以 试下 42foo.com

你可以看下 http://stackoverflow.com/questions/1562954/public-wildcard-domain-name-to-resolve-to-127-0-0-1 里面提到好几个这样的域名

http://0.0.0.0:4000/ Routing Error No route matches [GET] "/" 配置过程没有出现任何的报错。也出现了上面的问题。。。

@ruby_sky ShopQi 可以看作是一个多商店的管理,根据不同的域名来显示相应的商店 如 a.lvh.me 显示 a 商店,而 b.lvh.me 显示 b 商店,lvh.me 不显示为商店,而显示官方网站;所以通过 0.0.0.0 是无法判断该显示某个商店还是显示官方网站的,请通过 lvh.me 或者 42foo.com 访问 。

#51 楼 @saberma #50 楼 @ruby_sky 今天满怀激动的心情按照 github 上的教材用 mysql 搭建了一个 ShopQi,最终成功了,但是 遇到了以下问题: 1:在运行script/development/use_mysql命令时这,出现错误提示,提示信息为
Replaced "gem 'pg'" to "gem 'mysql2'" in Gemfile.,但是我在 gemfile 里面看到是用 的 mysql2 也,这个问题我就跳过了,没有解决,但是发现貌似它没有用~~ 2:但是我想请问下,为什么在本地发布需要 lvh.me:4000 这个域名?这和 localhost 有什么 区别呢? 3:还有就是那些 css,图片之类的文件是怎么处理的,为什么我将 4000 端口换成了 3000 后其 css,图片等资源文件都找不到了。 4:目前正准备做一个校园版的网上格子盟,发现其需求和交互与 ShopQi 很相似,不知道 可否在 ShopQi 上自己深度定制呢,并在校园里发布,就像 Discuz! 一样。

@small_fish__ lvh.me 这个域名是不需要配置的,方便在本地开发环境下使用泛域名访问项目,因为 localhost 是不支持泛域名的,而通过修改 host 文件可以指定某些二级域名指向 127.0.0.1,但在需要新的二级域名时又要指定一下,很麻烦,所以就有人购买了一些域名,并修改 DNS 的泛域名指向 127.0.0.1 这个地址。 css、图片类文件在开发环境没有进行处理,都是使用 cdn.lvh.me 进行访问,修改端口不会影响的,具体出现找不到资源文件的问题你可以通过 chrome 调试看看,是通过哪些 url 访问资源文件

@small_fish__ 你的名字太特别了,无法正常 at 到

#53 楼 @saberma 哦,关于使用 lvh.me 的原因弄明白了,刚刚在 chrome 下看了,原来是里面资源的链接写的是死的,还是 4000 端口,所以我换了端口当然就不行了 #54 楼 @saberma 名字是 small_fish__

@small_fish__ 端口不是写死的,可以在 config/app_config.yml 修改。我更新下 README.md

#56 楼 @saberma 我试着开了一家店,然后提示如下错误是因为什么呢? 错误如下: Liquid error: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '."position" asc' at line 1: SELECT products.* FROM products INNER JOIN custom_collection_products ON products.id = custom_collection_products.product_id WHERE custom_collection_products.custom_collection_id = 3 ORDER BY "custom_collection_products"."position" asc 难道是 sql 语句和表的字段不匹配吗?

@saberma 不知道 ShopQi 现在实现盈利了没.

不好意思,回复晚了。

@small_fish__ 我安装 MySQL 后在打开新的网店前台时重现此问题了,已经做了修正,你可以 git pull 最新代码看看。 由于我一直在 PostSQL 环境进行开发,MySQL 环境下没有做太多的测试,所以可能还会有其他一些的问题,如果发现了,你可以联系我协助解决。

@smilekk 还没有盈利呢😄

在使用 mysql 屡试不成功的情况下,使用 PostSQL 成功运行起来了

@sparkrico 不成功是报错了,还是在浏览器时访问不了?

@saberma 我在尝试 spree 的时候 1.9.2ok,1.9.3 就不行, 我刚又试了下 1.9.2 的情况 【mysql】 ruby 1.9.2p320 下没问题 ruby-1.9.3-p194 下出错 出错在 Bundler could not find compatible versions for gem "grit": In Gemfile: gollum (>= 0) ruby depends on grit (~> 2.4.1) ruby grit (2.5.0)

总之 1.9.2 似乎更好用

@sparkrico 那可以先用着 1.9.2 也可以。因为这个是版本依赖的问题,要解决的话,只能试下 grit 的各个版本,看哪个能同时满足依赖条件

你好 我安装是遇到了问题。 tar (child): /home/duan/Documents/Aptana:无法 open: 没有那个文件或目录 tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now rake aborted! No such file or directory - /home/duan/Documents/Aptana Studio 3 Workspace/shopqi/data/shops/development/1/themes/1/config/settings_data.json

Tasks: TOP => db:setup => db:seed => db:seed:development => db:seed:development:shop

这个是怎么回事儿啊?

@saberma 在么?能帮忙解决一下么? tar (child): /home/duan/Documents/Aptana:无法 open: 没有那个文件或目录 tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now rake aborted! No such file or directory - /home/duan/Documents/Aptana Studio 3 Workspace/shopqi/data/shops/development/1/themes/1/config/settings_data.json

Tasks: TOP => db:setup => db:seed => db:seed:development => db:seed:development:shop 不尽感谢啊!

@railsbug 可能是你的目录包含了空格,你将 Aptana Studio 3 Workspace 中的空格去掉或者换成其他不含空格的名字试试吧

@saberma 谢谢你的回复! 应该不是吧。。。我已经安装了 rubychina 和 refinery 的源码 都跑的挺正常的啊,而且我看了 shopqi/data/shops/development/1/themes/1/config/目录下是空的,确实没有 settings_data.json 这个文件

@saberma 我运行 bundle exec rake "shopqi:bootstrap[mysql]",突然蹦出的这个错误的

有位同学反映的 issue 跟你描述的问题很类似,也是由于没能正常解压出主题模板目录引起的

他是因为 ImageMagic 安装时没有包含 png 格式支持导致的,你可以运行 convert -list configure 检查下 具体可以查看 https://github.com/saberma/shopqi/issues/472

@saberma 问题已解决,真的是空格的事儿,敬仰如滔滔江水啊。。。。

ShopQi 的注册显示正在改版中,有预计的完成时间么?

@chechaoyang 还没有计划开放注册,你如果要试用功能,可以安装到本地的。

@saberma 先给上感谢,此处省略 1 万字:), 在学习你的代码,仿照做了下,有个问题; active_merchant-1-23#action_view_helper 方法payment_service_for有这样一行 form_options[:method] = service.form_method 这个 form_method,for_china.alipay.helper 直接从 active-merchnat.helper 的 def form_method; "POST"; end 来;这么以来,我的'payment-form'.methd='POST',我比对发现 shopqi 的 payment-form.method='GET';我的payment-form.method如果是post,会报错ILLEGAL_SIGN;注掉form_options[:method] = service.form_method,payment-form.mehtod 改为 get 就没问题;请帮忙解释下;谢谢;

@yeafee 使用 POST 方式时报 ILLEGAL_SIGN,可能是因为支付宝识别不到正确的编码,你可以试下修改 http://git.io/FJKUFw

# self.service_url = 'https://www.alipay.com/cooperate/gateway.do' self.service_url = 'https://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8'

参考:http://club.alipay.com/read-htm-tid-8681631.html 第九步:支付时使用的 POST 表单提交方式

嗨,你好,很感谢你分享的 shopQi,我是 ruby1.9.2 的,我 clone 下来,然后新建了一个 gemset,bundle 的时候,老实安装不了"gem install pg -v '0.11.0'"这个,请问是否是有什么特别的依赖哦,谢谢

回刚刚自己的问题,ubuntu 下的有个解决方法:安装 libpq-dev 即可,在这里找到答案的:http://www.cnblogs.com/ilazysoft/archive/2011/10/10/2205449.html

安装这个 sudo gem install therubyracer -v '0.9.4' 提示需要 libv8,我安装了,但还是有错误,我的 libv8 的版本是 3.3.10.2,对于 libv8 有版本限制吗?

自己回答一下,解决了,把所有的 libv8 都移除了,就好了

@saberma 请教个问题,shopqi 本身用 haml 做模板引擎,但是店铺的可以定制模版用的是 liquid,为什么在用户自定义模版选 liquid,是 liquid 在这方面有独特的优势么?

@kenshin54 模板是由用户自定制的,内容需要进行过滤以保证安全性,所以选择 liquid

@saberma 新手请教一下,shopqi 的整站管理后台是什么?

@saberma 想请教一下,不过这个问题不是用的你程序出现的!我自己开发程序,我用支付宝接口activemerchant_patch_for_china这个 gem,也是用get提交,这部分代码有参考过你的源代码和他的实例,但是会出现报错ILLEGAL_SIGN`,出了#74 #75 楼的错误和解决办法外,还会有其他原因吗?

又一个死项目,真可惜。唉!

@wkj713 你可以访问: /active_admin email: admin@lvh.me password: 666666

具体配置在这里: https://github.com/saberma/shopqi/blob/master/config/app_secret_config.yml.example#L19

@stephen 还没有遇到其他原因,具体得调试才知道了。

按照你说的步骤,选择了 mysql 的方式,出了个错误; MacBook-Air:shopqi-master lxq$ script/development/use_mysql sed: 1: "Gemfile": extra characters at the end of G command Replaced "gem 'pg'" to "gem 'mysql2'" in Gemfile.

@jeremy16601 ShopQi 很长时间没有维护了,如果只是下来学习的,推荐你看看 19 屋,文档会丰富些,社区讨论也更活跃。

#87 楼 @saberma 好 的,谢谢啦,确实是最近刚刚开始学习,多多指教。

@jeremy16601 不客气。有问题可以直接发 issue。

我不太明白 shopQi 哪里惹到 shopify 了,他们不是开源的呀。

请问下我 shopqi 如果不搭建在本地,在开发中如何进行访问?直接通过 ip 访问显示 No route matches [GET],如何解决呢?

请问下我 shopqi 如果不搭建在本地,在开发中如何进行访问?直接通过 ip 访问显示 No route matches [GET],如何解决呢?@saberma

楼主你好,ShopQi 现在支持 ruby 2 和 rails 4 吗?

你好, 我克隆了项目 shopqi 遇到了问题: #11084 INFO -- : SIGWINCH ignored because we're not daemonized,如何解决?谢谢

saberma ShopQi 上线内测,中国版 shopify 提及了此话题。 04月03日 10:56
需要 登录 后方可回复, 如果你还没有账号请 注册新账号