diff --git a/core/app/models/spree/exchange.rb b/core/app/models/spree/exchange.rb index df7ed34488..7f8b7138e6 100644 --- a/core/app/models/spree/exchange.rb +++ b/core/app/models/spree/exchange.rb @@ -22,7 +22,10 @@ def display_amount def perform! begin - shipments = Spree::Config.stock.coordinator_class.new(@order, @reimbursement_objects.map(&:build_exchange_inventory_unit)).shipments + shipments = Spree::Config.stock.coordinator_class.new( + @order, + inventory_units: @reimbursement_objects.map(&:build_exchange_inventory_unit) + ).shipments rescue Spree::Order::InsufficientStock raise UnableToCreateShipments.new("Could not generate shipments for all items. Out of stock?") end diff --git a/core/app/models/spree/order.rb b/core/app/models/spree/order.rb index d1bc0cc54f..6f3cdd7539 100644 --- a/core/app/models/spree/order.rb +++ b/core/app/models/spree/order.rb @@ -513,9 +513,9 @@ def create_proposed_shipments end def create_shipments_for_line_item(line_item) - units = Spree::Config.stock.inventory_unit_builder_class.new(self).missing_units_for_line_item(line_item) + inventory_units = Spree::Config.stock.inventory_unit_builder_class.new(self).missing_units_for_line_item(line_item) - Spree::Config.stock.coordinator_class.new(self, units).shipments.each do |shipment| + Spree::Config.stock.coordinator_class.new(self, inventory_units:).shipments.each do |shipment| shipments << shipment end end diff --git a/core/app/models/spree/stock/simple_coordinator.rb b/core/app/models/spree/stock/simple_coordinator.rb index 69bf4ef57e..22fb41db28 100644 --- a/core/app/models/spree/stock/simple_coordinator.rb +++ b/core/app/models/spree/stock/simple_coordinator.rb @@ -27,7 +27,14 @@ class SimpleCoordinator :filtered_stock_locations, :inventory_units_by_variant, :desired, :availability, :allocator, :packages - def initialize(order, inventory_units = nil) + def initialize(order, inventory_units_deprecated = nil, inventory_units: nil) + if inventory_units_deprecated + Spree.deprecator.warn "Using the `inventory_units` positional " \ + "argument is deprecated in favor of using the keyword argument. " + + inventory_units ||= inventory_units_deprecated + end + @order = order @inventory_units = inventory_units || Spree::Config.stock.inventory_unit_builder_class.new(order).units