diff --git a/app/services/line_item_syncer.rb b/app/services/line_item_syncer.rb index af037e924d..4d9d925900 100644 --- a/app/services/line_item_syncer.rb +++ b/app/services/line_item_syncer.rb @@ -35,8 +35,8 @@ class LineItemSyncer skip_stock_check: skip_stock_check?(order)) next if skip_stock_check?(order) || new_line_item.sufficient_stock? - order.line_items.delete(new_line_item) add_order_update_issue(order, new_line_item) + new_line_item.update_attributes(quantity: 0) end end diff --git a/spec/services/order_syncer_spec.rb b/spec/services/order_syncer_spec.rb index 975ce5ffbe..94308f7540 100644 --- a/spec/services/order_syncer_spec.rb +++ b/spec/services/order_syncer_spec.rb @@ -500,7 +500,7 @@ describe OrderSyncer do expect(syncer.sync!).to be true line_items = Spree::LineItem.where(order_id: subscription.orders, variant_id: variant.id) - expect(line_items.map(&:quantity)).to eq [] + expect(line_items.map(&:quantity)).to eq [0] expect(order.reload.total.to_f).to eq 59.97 expect(syncer.order_update_issues[order.id]).to include "#{variant.product.name} - #{variant.full_name} - Insufficient stock available, only 5 remaining" end