@nuskin/ns-product-lib 2.7.0-cx24-3682.19 → 2.7.0-cx24-3682.21

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [2.7.0-cx24-3682.21](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.0-cx24-3682.20...v2.7.0-cx24-3682.21) (2023-03-28)
2
+
3
+
4
+ ### New
5
+
6
+ * MySite product cards show blank data when users have setup AEM Base SKU's(55) in Admin #CX24-3682 ([d32293e](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/d32293e08920313b2598e6be21d66c7377713d9e)), closes [#CX24-3682](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-3682)
7
+
8
+ # [2.7.0-cx24-3682.20](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.0-cx24-3682.19...v2.7.0-cx24-3682.20) (2023-03-28)
9
+
10
+
11
+ ### New
12
+
13
+ * MySite product cards show blank data when users have setup AEM Base SKU's(55) in Admin #CX24-3682 ([d008a2e](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/d008a2e625131f66f7f2ea5ed428c0ec4cb28e8b)), closes [#CX24-3682](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-3682)
14
+
1
15
  # [2.7.0-cx24-3682.19](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.7.0-cx24-3682.18...v2.7.0-cx24-3682.19) (2023-03-28)
2
16
 
3
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuskin/ns-product-lib",
3
- "version": "2.7.0-cx24-3682.19",
3
+ "version": "2.7.0-cx24-3682.21",
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": {
@@ -48,6 +48,7 @@
48
48
  * @property {string} identifier e.g., Normal - "blt8b757df6dcaa199c" | Kit - "02001076"
49
49
  * @property {EquinoxProductProperties} properties
50
50
  * @property {EquinoxProductVariant[]} sku or varaints - available only when product is a normal product.
51
+ * @property {boolean|null} [exists] indicates whethere the SKU exists or not (HTTP 404) e.g., false
51
52
  */
52
53
 
53
54
  /**
@@ -26,7 +26,7 @@ function productNotFoundInterceptor(error) {
26
26
  ...error.response,
27
27
  data: {
28
28
  product: [
29
- productNotFound({ identifier: sku }, market)
29
+ productNotFound({ identifier: sku, exists: false }, market)
30
30
  ]
31
31
  },
32
32
  statusText: getStatusText(error.response)
@@ -11,15 +11,19 @@ function productNotFound(product, market) {
11
11
  const model = {};
12
12
  model.identifier = mapIdentifier(` ${product.identifier}`);
13
13
  model.properties = mapProperties();
14
+ model.exists = mapExists(product.exists);
14
15
  model.sku = [mapVariant({
16
+ // adding a whitespace allows us to display an SKU with 55
17
+ // without initializing the variant selector of ns-product-small
15
18
  identifier: ` ${product.identifier}`,
16
19
  properties: {
17
20
  availableChannels: 'subscription,arsPhone,kiosk,mobile,web',
18
21
  customerTypes: 'BrandAffiliate,Preferred,Retail',
22
+ description: 'not-found',
19
23
  imageURL: 'https://nuskin.com/content/dam/global/images/products/01102730-nu-skin-tri-phasic-white-essence.png',
20
24
  isExclusive: 'false',
21
25
  market,
22
- name: product.identifier,
26
+ name: ` ${product.identifier}`,
23
27
  productStatus: 'Sellable',
24
28
  scanQualifiedCount: '0',
25
29
  status: 'active',
@@ -30,4 +34,15 @@ function productNotFound(product, market) {
30
34
  return model;
31
35
  }
32
36
 
37
+ /**
38
+ * @param {boolean|null|undefined} exists
39
+ */
40
+ function mapExists(exists) {
41
+ if (exists === undefined) {
42
+ return null;
43
+ }
44
+
45
+ return exists;
46
+ }
47
+
33
48
  module.exports = productNotFound;
package/src/product.js CHANGED
@@ -75,7 +75,14 @@ const Product = function(productData) {
75
75
  //equinox inventory / stock label
76
76
  //@example "IN STOCK"
77
77
  this.inventory = "";
78
+
79
+ // equinox specific properties
78
80
  this.equinoxProductId = "";
81
+ this.equinox = {
82
+ sku: {
83
+ exists: null
84
+ }
85
+ };
79
86
 
80
87
  this.setMarketAttributes = function(productStatus) {
81
88
  if (productStatus.marketAttributes) {
@@ -534,6 +541,11 @@ const Product = function(productData) {
534
541
  retData.addOns = this.addOns;
535
542
  retData.inventory = this.inventory;
536
543
  retData.equinoxProductId = this.equinoxProductId;
544
+ retData.equinox = {
545
+ sku: {
546
+ exists: this.equinox.sku.exists
547
+ }
548
+ };
537
549
 
538
550
  return retData;
539
551
  };
@@ -675,6 +687,14 @@ const Product = function(productData) {
675
687
  }
676
688
 
677
689
  this.equinoxProductId = data.equinoxProductId;
690
+
691
+ if (data.equinox && data.equinox.sku) {
692
+ this.equinox = {
693
+ sku: {
694
+ exists: data.equinox.sku.exists
695
+ }
696
+ };
697
+ }
678
698
  }
679
699
  };
680
700
 
@@ -462,7 +462,12 @@ const ProductData = {
462
462
  "restrictedMarkets": [],
463
463
  "addOns": [],
464
464
  "inventory": product.inventory || "", //inventory label
465
- "equinoxProductId": productData.identifier
465
+ "equinoxProductId": productData.identifier,
466
+ equinox: {
467
+ sku: {
468
+ exists: productData.exists ? productData.exists : false
469
+ }
470
+ }
466
471
  };
467
472
 
468
473
  products.push(new Product(product));