我正在尝试将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
答案 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可能看起来有点过于简单的一家餐厅。