diff --git a/app/controllers/concerns/checkout_steps.rb b/app/controllers/concerns/checkout_steps.rb new file mode 100644 index 0000000000..83eca5ed83 --- /dev/null +++ b/app/controllers/concerns/checkout_steps.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +module CheckoutSteps + extend ActiveSupport::Concern + + private + + def summary_step? + params[:step] == "summary" + end + + def payment_step? + params[:step] == "payment" + end + + def redirect_to_step_based_on_order + case @order.state + when "cart", "address", "delivery" + redirect_to checkout_step_path(:details) + when "payment" + redirect_to checkout_step_path(:payment) + when "confirmation" + redirect_to checkout_step_path(:summary) + else + redirect_to order_path(@order, order_token: @order.token) + end + end + + def redirect_to_step + case params[:step] + when "details" + return redirect_to checkout_step_path(:payment) + when "payment" + return redirect_to checkout_step_path(:summary) + end + redirect_to_step_based_on_order + end + + def check_step + case @order.state + when "cart", "address", "delivery" + redirect_to checkout_step_path(:details) unless params[:step] == "details" + when "payment" + redirect_to checkout_step_path(:payment) if params[:step] == "summary" + end + end +end diff --git a/app/controllers/split_checkout_controller.rb b/app/controllers/split_checkout_controller.rb index 16276528a3..be4890b544 100644 --- a/app/controllers/split_checkout_controller.rb +++ b/app/controllers/split_checkout_controller.rb @@ -8,6 +8,7 @@ class SplitCheckoutController < ::BaseController include OrderStockCheck include Spree::BaseHelper include CheckoutCallbacks + include CheckoutSteps include OrderCompletion include CablecarResponses include WhiteLabel @@ -129,14 +130,6 @@ class SplitCheckoutController < ::BaseController selected_shipping_method.first.require_ship_address == false end - def summary_step? - params[:step] == "summary" - end - - def payment_step? - params[:step] == "payment" - end - def advance_order_state return if @order.complete? @@ -171,36 +164,4 @@ class SplitCheckoutController < ::BaseController def order_params @order_params ||= Checkout::Params.new(@order, params, spree_current_user).call end - - def redirect_to_step_based_on_order - case @order.state - when "cart", "address", "delivery" - redirect_to checkout_step_path(:details) - when "payment" - redirect_to checkout_step_path(:payment) - when "confirmation" - redirect_to checkout_step_path(:summary) - else - redirect_to order_path(@order, order_token: @order.token) - end - end - - def redirect_to_step - case params[:step] - when "details" - return redirect_to checkout_step_path(:payment) - when "payment" - return redirect_to checkout_step_path(:summary) - end - redirect_to_step_based_on_order - end - - def check_step - case @order.state - when "cart", "address", "delivery" - redirect_to checkout_step_path(:details) unless params[:step] == "details" - when "payment" - redirect_to checkout_step_path(:payment) if params[:step] == "summary" - end - end end