Merge pull request #8653 from Matt-Yorkley/split-checkout-t-and-c

Split checkout T&Cs
This commit is contained in:
Matt-Yorkley
2022-01-19 13:39:15 +00:00
committed by GitHub
5 changed files with 226 additions and 15 deletions

View File

@@ -47,9 +47,10 @@ class SplitCheckoutController < ::BaseController
end
def confirm_order
return unless @order.confirmation? && params[:confirm_order]
return unless summary_step? && @order.confirmation?
return unless validate_summary! && @order.errors.empty?
@order.customer.touch :terms_and_conditions_accepted_at
@order.confirm!
end
@@ -58,17 +59,27 @@ class SplitCheckoutController < ::BaseController
@order.select_shipping_method(params[:shipping_method_id])
@order.update(order_params)
send("validate_#{params[:step]}!")
validate_current_step!
@order.errors.empty?
end
def summary_step?
params[:step] == "summary"
end
def advance_order_state
return if @order.complete?
OrderWorkflow.new(@order).advance_checkout(raw_params.slice(:shipping_method_id))
end
def validate_current_step!
step = ([params[:step]] & ["details", "payment", "summary"]).first
send("validate_#{step}!")
end
def validate_details!
return true if params[:shipping_method_id].present?
@@ -83,6 +94,7 @@ class SplitCheckoutController < ::BaseController
def validate_summary!
return true if params[:accept_terms]
return true unless TermsOfService.required?(@order.distributor)
@order.errors.add(:terms_and_conditions, t("split_checkout.errors.terms_not_accepted"))
end