From ef607da2c16511b19cc230e672bdf9e9366682cd Mon Sep 17 00:00:00 2001 From: David Cook Date: Fri, 17 Mar 2023 10:40:53 +1100 Subject: [PATCH] Revert "Fix: Customers can checkout with non-matching shipping and product categories" --- .../concerns/checkout_callbacks.rb | 22 +++---------------- app/controllers/split_checkout_controller.rb | 2 +- app/views/split_checkout/_details.html.haml | 4 ++-- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/app/controllers/concerns/checkout_callbacks.rb b/app/controllers/concerns/checkout_callbacks.rb index 5bb44eb9f3..4b6608b947 100644 --- a/app/controllers/concerns/checkout_callbacks.rb +++ b/app/controllers/concerns/checkout_callbacks.rb @@ -15,9 +15,7 @@ module CheckoutCallbacks prepend_before_action :require_distributor_chosen before_action :load_order, :associate_user, :load_saved_addresses, :load_saved_credit_cards - before_action :allowed_shipping_methods, if: -> { - params[:step] == "details" - } + before_action :load_shipping_methods, if: -> { params[:step] == "details" } before_action :ensure_order_not_completed before_action :ensure_checkout_allowed @@ -48,22 +46,8 @@ module CheckoutCallbacks @selected_card = nil end - def allowed_shipping_methods - @allowed_shipping_methods ||= sorted_available_shipping_methods.filter( - &method(:supports_all_products_shipping_categories?) - ) - end - - def sorted_available_shipping_methods - available_shipping_methods.sort { |a, b| a.name.casecmp(b.name) } - end - - def supports_all_products_shipping_categories?(shipping_method) - (products_shipping_categories - shipping_method.shipping_categories.pluck(:id)).empty? - end - - def products_shipping_categories - @products_shipping_categories ||= @order.products.pluck(:shipping_category_id).uniq + def load_shipping_methods + @shipping_methods = available_shipping_methods.sort { |a, b| a.name.casecmp(b.name) } end def redirect_to_shop? diff --git a/app/controllers/split_checkout_controller.rb b/app/controllers/split_checkout_controller.rb index cbb7c4e41c..3d8a708fc9 100644 --- a/app/controllers/split_checkout_controller.rb +++ b/app/controllers/split_checkout_controller.rb @@ -24,7 +24,7 @@ class SplitCheckoutController < ::BaseController check_step if params[:step] recalculate_tax if params[:step] == "summary" - flash_error_when_no_shipping_method_available if allowed_shipping_methods.none? + flash_error_when_no_shipping_method_available if available_shipping_methods.none? end def update diff --git a/app/views/split_checkout/_details.html.haml b/app/views/split_checkout/_details.html.haml index 8b20be09fb..e81c8c08a7 100644 --- a/app/views/split_checkout/_details.html.haml +++ b/app/views/split_checkout/_details.html.haml @@ -76,8 +76,8 @@ - display_ship_address = false - ship_method_description = nil - - selected_shipping_method ||= @allowed_shipping_methods[0].id if @allowed_shipping_methods.length == 1 - - @allowed_shipping_methods.each do |shipping_method| + - selected_shipping_method ||= @shipping_methods[0].id if @shipping_methods.length == 1 + - @shipping_methods.each do |shipping_method| - ship_method_is_selected = shipping_method.id == selected_shipping_method.to_i %div.checkout-input.checkout-input-radio = fields_for shipping_method do |shipping_method_form|