From 070cb1abc1370e472981248fc5d60c1b0e2628fb Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 11 Aug 2021 13:50:03 +0100 Subject: [PATCH] Improve checkout flow logic --- app/controllers/split_checkout_controller.rb | 24 ++++++++------------ 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/app/controllers/split_checkout_controller.rb b/app/controllers/split_checkout_controller.rb index 47b8728a76..d6974fb27e 100644 --- a/app/controllers/split_checkout_controller.rb +++ b/app/controllers/split_checkout_controller.rb @@ -49,16 +49,11 @@ class SplitCheckoutController < ::BaseController def update if @order.update(order_params) - OrderWorkflow.new(@order).advance_to_payment + OrderWorkflow.new(@order).advance_to_confirmation - if @order.state == "payment" - redirect_to checkout_step_path(:payment) - else - render :edit - end + redirect_to_step else flash[:error] = "Saving failed, please update the highlighted fields" - render :edit end end @@ -87,14 +82,15 @@ class SplitCheckoutController < ::BaseController end def redirect_to_step - if @order.state == "payment" - if true# order.has_no_payment_method_chosen? - redirect_to checkout_step_path(:payment) - else - redirect_to checkout_step_path(:summary) - end - else + 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) end end