禁用有效的航运狂欢

时间:2015-07-03 03:25:44

标签: ruby-on-rails ruby ruby-on-rails-4 spree shopping

我正在使用Rails和Spree Commerce创建一个电子商务商店。我花了10分钟来设置所有东西并运行。我的国家/地区列在管理配置设置中。当我即将查看我的购物车时,请填写地址并点击“保存并继续”按钮,我收到以下错误消息:

  

找不到所选商品的运费

就我而言,我现在不想使用有效的运送宝石或任何验证地址可用的东西。我想禁用送货地址上的检查功能。我只想让客户填写仅存储在数据库中的送货地址。在我的情况下,每个距离的运费不是必需的。

2 个答案:

答案 0 :(得分:4)

在这种情况下你可以做三件事

  1. 使用@michaelmichael建议的免费送货促销。
  2. 或者

    1. 从结帐流程中略过交付步骤。只需覆盖订单模型,如下所示

      Spree::Order.class_eval do
          ...
          checkout_flow do
              go_to_state :address
              # go_to_state :delivery <== remove this line
              go_to_state :payment, :if => lambda { |order| order.payment_required? }
              go_to_state :confirm, :if => lambda { |order| order.confirmation_required? }
              go_to_state :complete
              remove_transition :from => :delivery, :to => :confirm
          end
      end
      

    2. 重写此方法,每次都返回true。 (建议不要使用此选项)

      Spree::Order.class_eval do
          ...
          def ensure_available_shipping_rates
              true
          end
      end
      

答案 1 :(得分:0)

如果没有更多信息,我无法对您的问题给出最终答案,但我可以提供一些一般性指导。

我认为您很可能没有正确设置区域,运输方式或运输类别。

在发货之前,您必须正确设置区域,运输类别,运输方式和默认库存位置。否则Spree将在您上面提供的结账时返回相同的错误。您的评论让您在10分钟内启动并运行商店,这让我相信您的设置中缺少某些内容。

Milind Phirake上面的答案很好,但你不应该超越Spree的任何订单相关方法来运送工作。只需正确配置您的商店。

有关您必须设置的参数的信息,请参阅Spree user guides on shipping