我需要一个没有送货和付款步骤的结帐流程(在接受货到付款的商店工作,所以我只需要地址步骤。)我使用的是Spree 0.10.2
我尝试过的事情:在site_extension.rb
添加了以下状态机
Checkout.state_machines[:state] = StateMachine::Machine.new(Checkout, :initial => 'address') do
after_transition :to => 'complete', :do => :complete_order
before_transition :to => 'complete', :do => :process_payment
event :next do
transition :to => 'complete', :from => 'address'
end
end
删除了不需要的步骤(至少在视觉上),但是当我提交地址时,它会引发以下错误。
CheckoutsController#update "payment" 中的 IndexError 是无效名称
稍后查看跟踪和几个类似的错误,我决定盲目地覆盖 site_extension.rb 中 checkouts_controller.rb 中的两个方法,什么都不做(因为我认为它们处理付款)
def clear_payments_if_in_payment_state
end
def object_params
end
这样做会在交货和帐单地址的所有字段上引发验证错误。我隐约有一个想法,我需要重写 checkouts_controller.rb 中的几个方法。如果这个概念是正确的,那么这些方法是什么。