내 환경.Spree 계산 프로세스를 사용자 정의하는 방법은 무엇입니까?
Mac OSX 10.7.4
Ruby 1.9.3p0
Rails 3.2.3
Spree 1.1.0
안녕하세요, 저는 일본어 프로그래머이자 Spree의 초보자입니다. Spree의 결제 프로세스를 사용자 정의하여 배송 방법 및 지불 방법 선택과 같은 결제 단계를 제거하고 싶습니다.
Spree Guides에 따르면 Order
모델의 경우 완전히 새로운 상태 시스템을 정의해야합니다.
따라서 다음과 같이 order_decorator.rb
을 app/models
디렉터리에 추가했습니다.
# app/models/order_decorator.rb
module SpreeCustomExtension
class Engine < Rails::Engine
def self.activate
Order.class_eval do
Order.state_machines[:state] = StateMachine::Machine.new(Order, :initial => 'cart') do
after_transition :to => 'complete', :do => :complete_order
before_transition :to => 'complete', :do => :process_payment
event :next do
transition :from => 'cart', :to => 'payment'
transition :from => 'payment', :to => 'confirm'
transition :from => 'confirm', :to => 'complete'
end
event :cancel do
transition :to => 'canceled', :if => :allow_cancel?
end
event :return do
transition :to => 'returned', :from => 'awaiting_return'
end
event :resume do
transition :to => 'resumed', :from => 'canceled', :if => :allow_resume?
end
event :authorize_return do
transition :to => 'awaiting_return'
end
before_transition :to => 'complete' do |order|
begin
order.process_payments!
rescue Spree::GatewayError
if Spree::Config[:allow_checkout_on_gateway_error]
true
else
false
end
end
end
after_transition :to => 'complete', :do => :finalize!
after_transition :to => 'confirm', :do => :create_tax_charge!
after_transition :to => 'payment', :do => :create_shipment!
after_transition :to => 'canceled', :do => :after_cancel
end
end
end
end
end
또한, 나는 내 lib/
디렉토리에 spree_site.rb
파일을 추가했다.
# lib/spree_site.rb
module SpreeSite
class Engine < Rails::Engine
def self.activate
Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
Rails.configuration.cache_classes ? require(c) : load(c)
end
end
def load_tasks
end
config.to_prepare &method(:activate).to_proc
end
end
그러나 전혀 변화가없는 것 같습니다. 누구든지 체크 아웃 프로세스를 사용자 정의하기 위해 수정해야하는 위치를 알고 있습니까?
좋은 시작일 안내 또는 조언을 제안하십시오. 나는 정말 어떤 조언을 주셔서 감사합니다.
미리 감사드립니다.
감사합니다 뭔가를 시작, 나는 야단법석의 네임 스페이스 내에서 시도 할 것이다. 고맙습니다. – user1431177