From 70ce1b9efee9f34b17e098faeab33f0d12d5eef6 Mon Sep 17 00:00:00 2001 From: Inamul-hasan-tec Date: Thu, 20 Aug 2026 11:16:05 +0530 Subject: [PATCH] fix(variants): inherit parent SKU/price by default and load variantAxes optionsList in catalog repository --- src/features/catalogs/catalogs/catalog.repository.js | 12 ++++++++++-- src/features/variants/variants/variant.service.js | 7 ++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/features/catalogs/catalogs/catalog.repository.js b/src/features/catalogs/catalogs/catalog.repository.js index 69fed52..3b2e185 100644 --- a/src/features/catalogs/catalogs/catalog.repository.js +++ b/src/features/catalogs/catalogs/catalog.repository.js @@ -25,9 +25,17 @@ export class CatalogRepository { { model: models.Attribute, as: 'variantAxes', - attributes: ['id', 'code', 'name'], + attributes: ['id', 'code', 'name', 'type', 'options'], through: { attributes: [] }, - required: false + required: false, + include: [ + { + model: models.AttributeOption, + as: 'optionsList', + attributes: ['id', 'code', 'label', 'sort_order'], + required: false + } + ] }, { model: models.AssetFamily, diff --git a/src/features/variants/variants/variant.service.js b/src/features/variants/variants/variant.service.js index 6ee8162..5f9084e 100644 --- a/src/features/variants/variants/variant.service.js +++ b/src/features/variants/variants/variant.service.js @@ -683,8 +683,9 @@ export class VariantService { continue; } - // Generate SKU - const generatedSku = this._buildSku(skuTemplate, parentProduct.code, combo); + // Generate SKU using parent product SKU or code as fallback + const parentSkuVal = parentProduct.sku || parentProduct.code || 'SKU'; + const generatedSku = this._buildSku(skuTemplate, parentSkuVal, combo); // Check SKU uniqueness const existingSku = await models.Variant.findOne({ @@ -703,7 +704,7 @@ export class VariantService { product_id: productId, sku: finalSku, name: variantName, - price: 0.00, + price: parseFloat(parentProduct.price) || 0.00, cost_price: 0.00, currency: 'USD', stock: 0,