From b67737d6f0b00fc18f165472b87d0025fd878737 Mon Sep 17 00:00:00 2001 From: Sofia Besenski Date: Thu, 14 May 2026 11:16:46 -0700 Subject: [PATCH] Make SimpleCoordinator inventory_units keyword arg We want to support additional keyword arguments to this class and a positional argument interferes with this. Co-authored-by: Jared Norman Co-authored-by: Adam Mueller Co-authored-by: Noah Silvera --- core/app/models/spree/exchange.rb | 5 ++++- core/app/models/spree/order.rb | 4 ++-- core/app/models/spree/stock/simple_coordinator.rb | 9 ++++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/core/app/models/spree/exchange.rb b/core/app/models/spree/exchange.rb index df7ed344881..7f8b7138e6d 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 d1bc0cc54f6..6f3cdd75398 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 69bf4ef57e0..22fb41db28a 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