狂欢:根据结账流程的答案进入下一阶段

时间:2014-10-11 09:48:04

标签: ruby-on-rails spree

我正在尝试将Spree用于餐馆的食品订购系统。

我修改了Checkout流程,因此第一步是在Home Delivery或Shop Eating之间进行选择。

如果用户选择“发送”,它将跳转到地址页面。 如果用户选择“Shop Eating”,它将跳过地址页面。

我想我需要为某个Spree表创建一个新的布尔列(对于什么表?),以及 怎么说“如果用户检查Shop Eating,跳过地址页面”???

谢谢!

我的结帐流程

Spree::Order.class_eval do
checkout_flow do
  go_to_state :address
  go_to_state :payment, if: ->(order) {
    order.update_totals
    order.payment_required?
  }
  go_to_state :confirm, if: ->(order) { order.confirmation_required? }
  go_to_state :complete
  remove_transition :from => :delivery, :to => :confirm
end
  insert_checkout_step :seleccionar_delivery, :before => :address
end

1 个答案:

答案 0 :(得分:0)

假设您将'吃'放在Spree :: Order上,简单地说,go_to_state :address, unless: :eating?如果您想要跳过该步骤。

如果你想根据吃的价值去解决OR seleccionar_delivery:

go_to_state :address, unless: :eating?
go_to_state :seleccionar_delivery, if: :eating?
go_to_state :payment

...结帐继续正常。如果您已经覆盖了结帐流程,则不需要使用insert_checkout_step帮助程序,只需添加另一个go_to_state。我还建议selccionar_delivery的另一个名字。但这应该可以解决你的问题。

正如一个旁注,Spree可能看起来有点过于简单的一家餐厅。