From 05d9646f3e23f9f61928811bc95752647738e839 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Fri, 9 Jun 2023 11:43:43 +0100 Subject: [PATCH] Blank out product SKU when cloning a product This was effectively being done before for the product's sku (stored on the master variant) via the #duplicate_variant method, but now it needs to be done explicitly on the product in #duplicate_product (cherry picked from commit 0f253bb2a0bd50c255d5af929e8b5349036cba5a) --- lib/spree/core/product_duplicator.rb | 1 + spec/lib/spree/core/product_duplicator_spec.rb | 1 + spec/models/spree/product_spec.rb | 1 + 3 files changed, 3 insertions(+) diff --git a/lib/spree/core/product_duplicator.rb b/lib/spree/core/product_duplicator.rb index 5d94a5fe77..2c76e519f9 100644 --- a/lib/spree/core/product_duplicator.rb +++ b/lib/spree/core/product_duplicator.rb @@ -21,6 +21,7 @@ module Spree product.dup.tap do |new_product| new_product.name = "COPY OF #{product.name}" new_product.taxons = product.taxons + new_product.sku = "" new_product.created_at = nil new_product.deleted_at = nil new_product.updated_at = nil diff --git a/spec/lib/spree/core/product_duplicator_spec.rb b/spec/lib/spree/core/product_duplicator_spec.rb index b0680e5c35..b36514c206 100644 --- a/spec/lib/spree/core/product_duplicator_spec.rb +++ b/spec/lib/spree/core/product_duplicator_spec.rb @@ -69,6 +69,7 @@ describe Spree::Core::ProductDuplicator do duplicator = Spree::Core::ProductDuplicator.new(product) expect(new_product).to receive(:name=).with("COPY OF foo") expect(new_product).to receive(:taxons=).with([]) + expect(new_product).to receive(:sku=).with("") expect(new_product).to receive(:product_properties=).with([new_property]) expect(new_product).to receive(:created_at=).with(nil) expect(new_product).to receive(:unit_value=).with(true) diff --git a/spec/models/spree/product_spec.rb b/spec/models/spree/product_spec.rb index c8588e0f8e..9097e170d5 100644 --- a/spec/models/spree/product_spec.rb +++ b/spec/models/spree/product_spec.rb @@ -16,6 +16,7 @@ module Spree it 'duplicates product' do clone = product.duplicate expect(clone.name).to eq 'COPY OF ' + product.name + expect(clone.sku).to eq "" expect(clone.image).to eq product.image end end