Имам нужда от процес на плащане, лишен от стъпка за доставка и плащане (работя в магазин, който приема наложен платеж, така че имам нужда само от стъпката за адрес.) Използвам 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
Нежеланите стъпки са премахнати (поне визуално), но когато изпратя адреса, извежда следната грешка.
IndexError в CheckoutsController#update „плащане“ е невалидно име
Гледайки следата и няколко подобни грешки по-късно, решавам сляпо да отменя два метода от checkouts_controller.rb в site_extension.rb, за да не правя нищо (тъй като предполагам, че се занимават с плащане)
def clear_payments_if_in_payment_state
end
def object_params
end
Това води до грешки при валидиране на всички полета за адрес за доставка и фактуриране. Смътно имам представа, че трябва да отменя няколко метода от checkouts_controller.rb. Ако това схващане е правилно, тогава какви са тези методи.