diff --git a/lib/spree/core/controller_helpers/order.rb b/lib/spree/core/controller_helpers/order.rb index e95499bef2..460bd8e15f 100644 --- a/lib/spree/core/controller_helpers/order.rb +++ b/lib/spree/core/controller_helpers/order.rb @@ -17,7 +17,7 @@ module Spree def current_order(create_order_if_necessary = false) order = spree_current_order(create_order_if_necessary) - if order + if order&.line_items.present? scoper = OpenFoodNetwork::ScopeVariantToHub.new(order.distributor) order.line_items.each do |li| scoper.scope(li.variant) diff --git a/spec/controllers/base_controller_spec.rb b/spec/controllers/base_controller_spec.rb index fb1d399335..635d91fb9d 100644 --- a/spec/controllers/base_controller_spec.rb +++ b/spec/controllers/base_controller_spec.rb @@ -91,6 +91,11 @@ describe BaseController, type: :controller do expect(session[:order_id]).to_not eq last_cart.id expect(controller.current_order.line_items.count).to eq 0 end + + it "doesn't load variant overrides without line items" do + expect(VariantOverride).to_not receive(:indexed) + controller.current_order(true) + end end it "redirects to home with message if order cycle is expired" do