From 3670a6210b67b46f32fb444926f1f2f64f3267df Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Mon, 10 Aug 2020 09:31:56 +0200 Subject: [PATCH] introduce ability to make original and copy be linked to each other --- config/products.php | 3 +++ .../Webkul/Product/src/Repositories/ProductRepository.php | 7 +++++++ tests/functional/Product/ProductCopyCest.php | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/config/products.php b/config/products.php index 05fc36296..b11a76d0a 100644 --- a/config/products.php +++ b/config/products.php @@ -8,4 +8,7 @@ return [ 'skipAttributesOnCopy' => [ ], + + // Make the original and source product 'related' via the 'product_relations' table + 'linkProductsOnCopy' => true, ]; \ No newline at end of file diff --git a/packages/Webkul/Product/src/Repositories/ProductRepository.php b/packages/Webkul/Product/src/Repositories/ProductRepository.php index f6fca4b38..dd5405e93 100755 --- a/packages/Webkul/Product/src/Repositories/ProductRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductRepository.php @@ -703,5 +703,12 @@ class ProductRepository extends Repository $variant->save(); } } + + if (config('products.linkProductsOnCopy')) { + DB::table('product_relations')->insert([ + 'parent_id' => $originalProduct->id, + 'child_id' => $copiedProduct->id, + ]); + } } } \ No newline at end of file diff --git a/tests/functional/Product/ProductCopyCest.php b/tests/functional/Product/ProductCopyCest.php index 9a5f0b0de..448a72c3b 100644 --- a/tests/functional/Product/ProductCopyCest.php +++ b/tests/functional/Product/ProductCopyCest.php @@ -74,6 +74,11 @@ class ProductCopyCest 'qty' => 10, ]); + $I->seeRecord('product_relations', [ + 'parent_id' => $original->id, + 'child_id' => $copiedProduct->id, + ]); + $flat = $I->grabRecord(ProductFlat::class, [ 'product_id' => $copiedProduct->id, ]);