/ / Zmena toku pokladnice v spree-0.10.2 - rubín-na-koľajnice, spree

Zmena prietoku v spree-0.10.2 - ruby-on-rails, spree

Potrebujem proces platby bez kroku doručenia a platby (pracujem v obchode, ktorý prijíma dobierku, takže potrebujem iba krok adresy.) používam Spree 0,10,2

Veci, ktoré som vyskúšal: V site_extension.rb pridal nasledujúci stavový stroj

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

Nežiaduce kroky sa odstránia (aspoň vizuálne), ale keď odošlem adresa vyvolá nasledujúcu chybu.

IndexError in CheckoutsController aktualizácie # „platba“ je neplatné meno

Pri pohľade na stopu a niekoľko podobných chýbneskôr sa rozhodnem Windows XP slepo prepísať dve metódy z checkouts_controller.rb v systéme Windows site_extension.rb nerobiť nič (pretože sa zaoberajú platbami I Predpokladám)

 def clear_payments_if_in_payment_state
end

def object_params
end

Toto vyvolá chyby pri overovaní na všetkých stránkach- oblasti dodávky a Fakturačná adresa. Nejasne mám predstavu, že musím prepísať niekoľko metód z checkouts_controller.rb. Ak je táto predstava správna, potom aké sú tieto metódy.

odpovede:

1 pre odpoveď č. 1

Musíte:

1) Odstráňte krok prechodu na prevod a stav dodávky.

2) Tiež potlačenie metódy payment_required.

3) Tieto kroky musia byť v order_decorator.rb v adresári app / models / spree.

checkout_flow do
go_to_state :address
# go_to_state :payment
go_to_state :complete
remove_transition :from => :delivery, :to => :confirm
remove_transition :from => :delivery, :to => :confirm
remove_transition :from => :payment, :to => :confirm
end
#Spree::Order.state_machine.before_transition :to => :payment, :do => :set_order

def set_order
self.create_proposed_shipments
end
def require_email
return false
end
def payment_required?
false
end

Testoval som to na výboji 2-0-stabilný s koľajnicami 3.2.14.


1 pre odpoveď č. 2

Ľutujeme, skutočne vám nemôžem pomôcť: Prispôsobenie procesu platby pomocou služby Spree 0.10.2 je niečo ako nočná mora. Ale ja by som odporučil prejsť na novšiu verziu Spree, ako je 1,3-stabilný, Ak by ste prešli na tento, bolo by to také ľahké ako vytvorenie order_decorator.rb súbor v priečinku your_app_folder/app/models/spree s nasledujúcim kódom:

Spree::Order.class_eval do
remove_checkout_step :delivery
remove_checkout_step :payment
end