diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index 290fb45a83..7a01b408bb 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -64,7 +64,7 @@ Spree::Order.class_eval do def update_distribution_charge! line_items.each do |line_item| pd = product_distribution_for line_item - pd.ensure_correct_adjustment_for line_item + pd.ensure_correct_adjustment_for line_item if pd end end diff --git a/spec/models/order_spec.rb b/spec/models/order_spec.rb index eb3a968a5c..2cb7dc97e8 100644 --- a/spec/models/order_spec.rb +++ b/spec/models/order_spec.rb @@ -42,6 +42,15 @@ describe Spree::Order do subject.send(:update_distribution_charge!) end + it "skips line items that don't have a product distribution" do + line_item = double(:line_item) + subject.stub(:line_items) { [line_item] } + + subject.stub(:product_distribution_for) { nil } + + subject.send(:update_distribution_charge!) + end + it "looks up product distribution enterprise fees for a line item" do product = double(:product) variant = double(:variant, product: product)