From db874b18a481678edf29955c8af241dd5c2b94f9 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 14 Feb 2025 10:27:09 +1100 Subject: [PATCH] Fix reset stock when importing DFC products --- .../app/services/catalog_item_builder.rb | 1 + .../services/catalog_item_builder_spec.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/engines/dfc_provider/app/services/catalog_item_builder.rb b/engines/dfc_provider/app/services/catalog_item_builder.rb index 3af8c0e4f4..4a0c28005c 100644 --- a/engines/dfc_provider/app/services/catalog_item_builder.rb +++ b/engines/dfc_provider/app/services/catalog_item_builder.rb @@ -15,6 +15,7 @@ class CatalogItemBuilder < DfcBuilder if limit.to_i.negative? variant.stock_items[0].backorderable = true else + variant.stock_items[0].backorderable = false variant.stock_items[0].count_on_hand = limit end end diff --git a/engines/dfc_provider/spec/services/catalog_item_builder_spec.rb b/engines/dfc_provider/spec/services/catalog_item_builder_spec.rb index 6f7d5d42a6..15052e034d 100644 --- a/engines/dfc_provider/spec/services/catalog_item_builder_spec.rb +++ b/engines/dfc_provider/spec/services/catalog_item_builder_spec.rb @@ -28,4 +28,23 @@ RSpec.describe DfcBuilder do ) end end + + describe ".apply_stock" do + let(:item) { CatalogItemBuilder.catalog_item(variant) } + + it "updates from on-demand to out-of-stock" do + variant.save! + variant.on_demand = true + variant.on_hand = -3 + + item.stockLimitation = 0 + + expect { + CatalogItemBuilder.apply_stock(item, variant) + variant.save! + } + .to change { variant.on_demand }.to(false) + .and change { variant.on_hand }.to(0) + end + end end