@nuskin/ns-product-lib 2.7.1-cx24-3684.2 → 2.7.2-cdb-1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -4
- package/package.json +2 -2
- package/src/product.js +6 -3
- package/src/productData.js +63 -25
package/CHANGELOG.md
CHANGED
@@ -1,16 +1,45 @@
|
|
1
|
-
## [2.7.
|
1
|
+
## [2.7.2-cdb-1.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.1...v2.7.2-cdb-1.1) (2023-04-17)
|
2
2
|
|
3
3
|
|
4
4
|
### Fix
|
5
5
|
|
6
|
-
* added
|
6
|
+
* added some logs (#CDB-1) ([253482b](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/253482ba8825d56d9a7e3d8541a83bbbda03e09b)), closes [#CDB-1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CDB-1)
|
7
7
|
|
8
|
-
## [2.7.1
|
8
|
+
## [2.7.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.0...v2.7.1) (2023-04-15)
|
9
9
|
|
10
10
|
|
11
11
|
### Fix
|
12
12
|
|
13
|
-
*
|
13
|
+
* updating text in unit testing ([65393d6](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/65393d6492b0696a24daa56f79b768cc38e1c7ae))
|
14
|
+
|
15
|
+
# [2.8.0-cx24-3705.2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.8.0-cx24-3705.1...v2.8.0-cx24-3705.2) (2023-04-14)
|
16
|
+
|
17
|
+
|
18
|
+
### Update
|
19
|
+
|
20
|
+
* setting correct title if multiple variants ([583e74d](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/583e74d41acc7213cd86a48df9076a453da8bb93))
|
21
|
+
|
22
|
+
# [2.8.0-cx24-3705.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.0...v2.8.0-cx24-3705.1) (2023-04-14)
|
23
|
+
|
24
|
+
|
25
|
+
### Update
|
26
|
+
|
27
|
+
* setting correct title if multiple variants ([9574804](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/9574804094f65261ff45c9658ba4e4d4baf0bdf2))
|
28
|
+
|
29
|
+
## [2.7.1-cx24-3879.2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.1-cx24-3879.1...v2.7.1-cx24-3879.2) (2023-04-13)
|
30
|
+
|
31
|
+
|
32
|
+
### Fix
|
33
|
+
|
34
|
+
* Payload for subscription products are missing when added to cart from MySite homepage ([20b0ed2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/20b0ed2661b4d213147cef9e77d268b167b49421))
|
35
|
+
|
36
|
+
## [2.7.1-cx24-3879.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.0...v2.7.1-cx24-3879.1) (2023-04-13)
|
37
|
+
|
38
|
+
|
39
|
+
### Fix
|
40
|
+
|
41
|
+
* Payload for subscription products are missing when added to cart from MySite homepage ([7b7ac3b](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/7b7ac3bd7c0b196aa9a7e97e885f7e296ef7e97d))
|
42
|
+
* Payload for subscription products are missing when added to cart from MySite homepage ([d49957f](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/d49957f44d9ce6b6469b0bc94bc8f8050d00f35a))
|
14
43
|
|
15
44
|
# [2.7.0](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.6.2...v2.7.0) (2023-04-05)
|
16
45
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nuskin/ns-product-lib",
|
3
|
-
"version": "2.7.
|
3
|
+
"version": "2.7.2-cdb-1.1",
|
4
4
|
"description": "This project contains shared Product models and code between the backend and frontend.",
|
5
5
|
"main": "src/index.js",
|
6
6
|
"scripts": {
|
@@ -33,7 +33,7 @@
|
|
33
33
|
"dependencies": {
|
34
34
|
"@nuskin/configuration-sdk": "2.2.3",
|
35
35
|
"@nuskin/ns-common-lib": "1.4.5",
|
36
|
-
"@nuskin/ns-util": "4.2
|
36
|
+
"@nuskin/ns-util": "4.3.2",
|
37
37
|
"axios": "0.27.2",
|
38
38
|
"qs": "6.11.0"
|
39
39
|
},
|
package/src/product.js
CHANGED
@@ -75,7 +75,7 @@ const Product = function (productData) {
|
|
75
75
|
//equinox inventory / stock label
|
76
76
|
//@example "IN STOCK"
|
77
77
|
this.inventory = "";
|
78
|
-
|
78
|
+
|
79
79
|
// equinox specific properties
|
80
80
|
this.equinoxProductId = "";
|
81
81
|
this.properties = {};
|
@@ -262,7 +262,6 @@ const Product = function (productData) {
|
|
262
262
|
|
263
263
|
if (option.isEqPromotion) {
|
264
264
|
//retain product.price as original price
|
265
|
-
this.setPrice(this.getPricing(priceType));
|
266
265
|
this.setCv(this.getCvWithType(priceType));
|
267
266
|
this.setPv(this.getPvWithType(priceType));
|
268
267
|
this.priceType = priceType;
|
@@ -338,7 +337,11 @@ const Product = function (productData) {
|
|
338
337
|
return this.addCvWithType(csvKey, productStatus.csv[csvKey]);
|
339
338
|
}, this);
|
340
339
|
}
|
341
|
-
|
340
|
+
//only remap the orderTypes for legacy (which we'll know when equinoxProductId is blank)
|
341
|
+
if(this.equinoxProductId == "") {
|
342
|
+
this.orderTypes = ProductUtils.mergeOrderTypes(this.orderTypes, productStatus.orderType);
|
343
|
+
}
|
344
|
+
|
342
345
|
if (productStatus.childSkus) {
|
343
346
|
this.childSkus = productStatus.childSkus;
|
344
347
|
}
|
package/src/productData.js
CHANGED
@@ -21,20 +21,48 @@ const ProductData = {
|
|
21
21
|
* @param {boolean} isEquinoxEnabled
|
22
22
|
*/
|
23
23
|
getProductData: async function (skus, locale, market, isEquinoxEnabled = false) {
|
24
|
+
console.trace({
|
25
|
+
where: 'productData getProductData',
|
26
|
+
skus,
|
27
|
+
locale,
|
28
|
+
market,
|
29
|
+
isEquinoxEnabled
|
30
|
+
})
|
24
31
|
const localeMarket = `${locale}_${market}`;
|
25
32
|
|
26
33
|
if (isEquinoxEnabled) {
|
27
34
|
const config = (await getConfiguration(['Equinox_Markets'])).Equinox_Markets;
|
35
|
+
console.trace({
|
36
|
+
where: 'productData getProductData',
|
37
|
+
config
|
38
|
+
})
|
28
39
|
|
29
40
|
if (config.country_code === market && config.active) {
|
41
|
+
console.trace({
|
42
|
+
where: 'productData getProductData equinox path',
|
43
|
+
config
|
44
|
+
})
|
30
45
|
return await this.getProductFromEquinox(skus, localeMarket, config);
|
31
46
|
}
|
32
47
|
}
|
48
|
+
console.trace({
|
49
|
+
where: 'productData getProductData legacy path'
|
50
|
+
})
|
33
51
|
return await this.getProductFromLegacy(skus, localeMarket);
|
34
52
|
},
|
35
53
|
|
36
54
|
getProductFromEquinox: async function (skus, locale, config) {
|
55
|
+
console.trace({
|
56
|
+
where: 'productData getProductFromEquinox',
|
57
|
+
skus,
|
58
|
+
locale,
|
59
|
+
config
|
60
|
+
})
|
37
61
|
const response = await this.searchEquinoxProduct(skus, locale, config);
|
62
|
+
console.trace({
|
63
|
+
where: 'productData getProductFromEquinox',
|
64
|
+
response
|
65
|
+
})
|
38
66
|
|
39
67
|
if (response.data.product) {
|
40
68
|
return await this.eqProductMapper(response.data.product, skus);
|
@@ -48,11 +76,11 @@ const ProductData = {
|
|
48
76
|
},
|
49
77
|
|
50
78
|
/**
|
51
|
-
*
|
52
|
-
* @param {string[]} skus
|
53
|
-
* @param {string} locale
|
54
|
-
* @param {ConfigMap} config
|
55
|
-
* @returns
|
79
|
+
*
|
80
|
+
* @param {string[]} skus
|
81
|
+
* @param {string} locale
|
82
|
+
* @param {ConfigMap} config
|
83
|
+
* @returns
|
56
84
|
*/
|
57
85
|
searchEquinoxProduct: async function (skus, locale, config) {
|
58
86
|
let skuFilter = [];
|
@@ -94,7 +122,16 @@ const ProductData = {
|
|
94
122
|
},
|
95
123
|
|
96
124
|
getProductFromLegacy: async function (skus, locale) {
|
125
|
+
console.trace({
|
126
|
+
where: 'productData getProductFromLegacy',
|
127
|
+
skus,
|
128
|
+
locale
|
129
|
+
})
|
97
130
|
const marketConfig = await contentstack.getAEMConfig();
|
131
|
+
console.trace({
|
132
|
+
where: 'productData getProductFromLegacy',
|
133
|
+
marketConfig
|
134
|
+
})
|
98
135
|
|
99
136
|
if (marketConfig === null) {
|
100
137
|
return null;
|
@@ -140,7 +177,6 @@ const ProductData = {
|
|
140
177
|
const discountedPrice = eventName ? computedPrice : eqVariant.priceFacets["Regular Price"];
|
141
178
|
const productCVPrice = eventName ? CVPrice : eqVariant.priceFacets.CV;
|
142
179
|
const productPVPrice = eventName ? PVPrice : eqVariant.priceFacets.PV;
|
143
|
-
const wholeSalePrice = eventName ? defaultProductPrice : eqVariant.priceFacets["Wholesale Price"];
|
144
180
|
|
145
181
|
return {
|
146
182
|
"sku": eqVariant.identifier,
|
@@ -253,12 +289,12 @@ const ProductData = {
|
|
253
289
|
"price": discountedPrice,
|
254
290
|
"priceMap": {
|
255
291
|
"WRTL": productPrice,
|
256
|
-
"WADW-WRTL":
|
257
|
-
"WADR":
|
258
|
-
"RTL":
|
259
|
-
"WWHL":
|
260
|
-
"WADW":
|
261
|
-
"WHL":
|
292
|
+
"WADW-WRTL": eqVariant.priceFacets["Regular Price"],
|
293
|
+
"WADR": eqVariant.priceFacets["Regular Price"],
|
294
|
+
"RTL": eqVariant.priceFacets["Regular Price"],
|
295
|
+
"WWHL": eqVariant.priceFacets["Wholesale Price"],
|
296
|
+
"WADW": eqVariant.priceFacets["Wholesale Price"],
|
297
|
+
"WHL": eqVariant.priceFacets["Wholesale Price"]
|
262
298
|
},
|
263
299
|
"cvMap": {
|
264
300
|
"WWHL": productCVPrice,
|
@@ -365,7 +401,7 @@ const ProductData = {
|
|
365
401
|
let product = (productData.type && productData.type === "kit") ? productData : productData.sku[count];
|
366
402
|
let imageURL = product.properties.imageURL ? product.properties.imageURL : '';
|
367
403
|
let thumbnailImage = imageURL ? imageURL + '?width=40' : ''
|
368
|
-
|
404
|
+
let productTitle = productData.properties.name
|
369
405
|
|
370
406
|
if (productData.sku && productData.sku.length > 1) {
|
371
407
|
// exclude base product from variants
|
@@ -373,6 +409,10 @@ const ProductData = {
|
|
373
409
|
variants[variant.identifier] = this.eqProductVariantMapper(variant);
|
374
410
|
return variant;
|
375
411
|
});
|
412
|
+
const productArr = productData.sku.filter(p => p.default === true)
|
413
|
+
productTitle = productArr[0].properties.name;
|
414
|
+
product = productArr[0]
|
415
|
+
|
376
416
|
}
|
377
417
|
|
378
418
|
const {
|
@@ -384,11 +424,9 @@ const ProductData = {
|
|
384
424
|
PVPrice
|
385
425
|
} = this.getEqProductPromotions(product);
|
386
426
|
const productPrice = eventName ? defaultProductPrice : product.priceFacets["Regular Price"];
|
387
|
-
const discountedPrice = eventName ? computedPrice : product.priceFacets["
|
427
|
+
const discountedPrice = eventName ? computedPrice : product.priceFacets["Regular Price"];
|
388
428
|
const productCVPrice = eventName ? CVPrice : product.priceFacets.CV;
|
389
429
|
const productPVPrice = eventName ? PVPrice : product.priceFacets.PV;
|
390
|
-
const wholeSalePrice = eventName ? defaultProductPrice : product.priceFacets["Wholesale Price"];
|
391
|
-
|
392
430
|
|
393
431
|
product.childSkus = await this.fetchChildSkus(product);
|
394
432
|
product.availableQuantity = mapAvailableQuantity(product);
|
@@ -396,7 +434,7 @@ const ProductData = {
|
|
396
434
|
...product,
|
397
435
|
"sku": product.identifier,
|
398
436
|
"globalProductID": productData.identifier,
|
399
|
-
"title":
|
437
|
+
"title": productTitle,
|
400
438
|
"country": product.properties.market,
|
401
439
|
"language": "en",
|
402
440
|
"shortDescr": productData.properties.description,
|
@@ -432,13 +470,13 @@ const ProductData = {
|
|
432
470
|
"priceType": "WRTL",
|
433
471
|
"price": discountedPrice,
|
434
472
|
"priceMap": {
|
435
|
-
"WRTL": productPrice,
|
436
|
-
"WADW-WRTL":
|
437
|
-
"WADR":
|
438
|
-
"RTL":
|
439
|
-
"WADW":
|
440
|
-
"WHL":
|
441
|
-
"WWHL":
|
473
|
+
"WRTL": productPrice,
|
474
|
+
"WADW-WRTL": product.priceFacets["Regular Price"],
|
475
|
+
"WADR": product.priceFacets["Regular Price"],
|
476
|
+
"RTL": product.priceFacets["Regular Price"],
|
477
|
+
"WADW": product.priceFacets["Wholesale Price"],
|
478
|
+
"WHL": product.priceFacets["Wholesale Price"],
|
479
|
+
"WWHL": product.priceFacets["Wholesale Price"]
|
442
480
|
},
|
443
481
|
"cvMap": {
|
444
482
|
"WWHL": productCVPrice,
|
@@ -513,7 +551,7 @@ const ProductData = {
|
|
513
551
|
};
|
514
552
|
},
|
515
553
|
|
516
|
-
mapEquinoxSKUExists: function(exists) {
|
554
|
+
mapEquinoxSKUExists: function (exists) {
|
517
555
|
// this could be avoided if only we are using response mapper
|
518
556
|
// for equinox products that exists.
|
519
557
|
// @todo: clean-up
|