diff --git a/app/controllers/split_checkout_controller.rb b/app/controllers/split_checkout_controller.rb index 917f6ad2d9..f7d1e20cd7 100644 --- a/app/controllers/split_checkout_controller.rb +++ b/app/controllers/split_checkout_controller.rb @@ -108,6 +108,7 @@ class SplitCheckoutController < ::BaseController def confirm_order return unless @order.confirmation? && params[:confirm_order] + if params["accept_terms"] != "1" @order.errors.add(:base, "terms_not_accepted") return false @@ -123,12 +124,12 @@ class SplitCheckoutController < ::BaseController end def advance_order_state - return if @order.complete? + return true if @order.complete? workflow_options = raw_params.slice(:shipping_method_id) if @order.payments.empty? - OrderWorkflow.new(@order).advance_to_payment + OrderWorkflow.new(@order).advance_to_payment(workflow_options) else OrderWorkflow.new(@order).advance_to_confirmation(workflow_options) end diff --git a/app/services/order_workflow.rb b/app/services/order_workflow.rb index 39571a6545..8fc1615c77 100644 --- a/app/services/order_workflow.rb +++ b/app/services/order_workflow.rb @@ -23,7 +23,10 @@ class OrderWorkflow result end - def advance_to_payment + def advance_to_payment(options = {}) + if options[:shipping_method_id] + order.select_shipping_method(options[:shipping_method_id]) + end advance_to_state("payment", advance_order_options) end