ruby-on-rails - 结帐时出现 Spree Commerce 错误 : "We are unable to ship the selected items to your shipping address."

标签 ruby-on-rails spree

我很乐意帮助解决我遇到的令人沮丧的问题。第一次设置 Spree,但我已经在 Rails 中开发了 3 年,所以我熟悉它的工作原理。

几乎是默认设置。但是当我尝试结帐时,单击“地址”页面上的“保存并继续”,标题中出现错误。我可以从错误的来源订单模型中看到:https://github.com/spree/spree/blob/2-0-stable/core/app/models/spree/order.rb

def ensure_available_shipping_rates
  if shipments.empty? || shipments.any? { |shipment| shipment.shipping_rates.blank? }
    errors.add(:base, Spree.t(:items_cannot_be_shipped)) and return false
  end
end

要弄清楚哪些条件返回真值并不容易。如果是我的应用程序,我只会添加一个调试器语句并以这种方式进行检查。谁能给我任何关于如何进一步排除故障或尝试什么的建议。

我使用的是 Rails 3.2.14,Spree 2-0-stable。

谢谢!

最佳答案

有几种方法可以解决这个问题。如果你想添加调试语句,你可以打开 gem:

bundle show spree_core

编辑代码,重新启动 Rails 服务器,然后像往常一样进行调试。别忘了把它改回来!

如果您想减少侵入性,可以启动 Rails 控制台。获取您正在处理的订单(可能是 Spree::Order.last)并弄清楚发生了什么。

您可能遇到了运输方式和区域方面的问题。 Spree::Zone 列出一组国家(例如,美国、加拿大和墨西哥可以定义您的北美区域)。 Spree::ShippingMethod 定义将某物运送到特定区域的成本。这些设置都可以在管理界面中定义。

您可能选择了一个不在定义区域中的国家/地区,或者在没有运输方式的定义区域中。 Spree 不知道运送元素的费用(或者是否可以运送到那里),因此它会触发您看到的错误。

希望对您有所帮助。祝 Spree 启动和运行一切顺利!

关于ruby-on-rails - 结帐时出现 Spree Commerce 错误 : "We are unable to ship the selected items to your shipping address.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18277367/

相关文章:

paypal - 在 spree 中配置 paypal 网关字段

ruby-on-rails - 如何构建可在运行时编辑的 Rails 站点?

ruby-on-rails - AWS 中的私钥管理是否有推荐的解决方案?

ruby-on-rails - 从关联中获取按字段分组并按组中计数排序的所有记录

ruby-on-rails - 如何在生产中访问Spree的管理部分?

ruby-on-rails - Rails Marketplace - Spree Gem 还是从头开始构建?

ruby-on-rails - 'mandrill-api' gem 和 'mandrill_mailer' gem 的区别

ruby-on-rails - 如何在不需要前缀的情况下为 Vanity URL 设置 Rails routes.rb

ruby-on-rails - Spree - 避免大量的产品选择

ruby-on-rails - Spree订单完成时如何调用自定义类方法!执行的方法