@nuskin/ns-product-lib 2.2.0 → 2.3.0-cx24-2186.2

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.3.0-cx24-2186.2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.3.0-cx24-2186.1...v2.3.0-cx24-2186.2) (2022-10-17)
2
+
3
+
4
+ ### Fix
5
+
6
+ * added stable ns-util version (#CX24-2186) ([cb868f1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/cb868f14be7420ea5d70d542a77cf470cdfec40c)), closes [#CX24-2186](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2186)
7
+
8
+ # [2.3.0-cx24-2186.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.2.0...v2.3.0-cx24-2186.1) (2022-10-13)
9
+
10
+
11
+ ### New
12
+
13
+ * added inventory label in the mapping (#CX24-2186) ([a24fc39](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/a24fc39915e3d7e525949a2de8be04727c5226fd)), closes [#CX24-2186](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2186)
14
+
1
15
  # [2.2.0](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.1.0...v2.2.0) (2022-10-13)
2
16
 
3
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuskin/ns-product-lib",
3
- "version": "2.2.0",
3
+ "version": "2.3.0-cx24-2186.2",
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": {
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@nuskin/ns-common-lib": "1.4.5",
33
- "@nuskin/ns-util": "3.107.0",
33
+ "@nuskin/ns-util": "3.105.0-CX24.1",
34
34
  "axios": "0.27.2",
35
35
  "qs": "6.11.0"
36
36
  },
package/src/product.js CHANGED
@@ -72,6 +72,11 @@ const Product = function(productData) {
72
72
  // agelocme stuff
73
73
  this.agelocme = null; // object containing agelocme information (like code, label, name)
74
74
 
75
+ //equinox API inventory label
76
+ //@example "IN STOCK"
77
+ //@string inventoryLabel
78
+ this.inventoryLabel = "";
79
+
75
80
  this.setMarketAttributes = function(productStatus) {
76
81
  if (productStatus.marketAttributes) {
77
82
  this.marketAttributes = productStatus.marketAttributes;
@@ -626,6 +631,7 @@ const Product = function(productData) {
626
631
  this.marketAttributes = productData.marketAttributes;
627
632
  this.addOns = productData.addOns || [];
628
633
  this.restrictedMarkets = productData.restrictedMarkets || [];
634
+ this.inventoryLabel = productData.inventoryLabel || "";
629
635
 
630
636
  if (data.priceType) {
631
637
  this.addPricing(data.priceType, data.price);
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  const axios = require("axios");
3
3
  const contentstack = require('./contentstack/contentstack');
4
- const product = require("./product");
4
+ const Product = require("./product");
5
5
 
6
6
  /** @type {*} */
7
7
  const ProductData = {
8
8
  /**
9
- * @param {string[]} skus
10
- * @param {string} locale
11
- * @param {string} market
12
- * @param {boolean} isEquinoxEnabled
9
+ * @param {string[]} skus
10
+ * @param {string} locale
11
+ * @param {string} market
12
+ * @param {boolean} isEquinoxEnabled
13
13
  */
14
14
  getProductData: async function (skus, locale, market, isEquinoxEnabled = false) {
15
15
  const localeMarket = `${locale}_${market}`;
@@ -28,7 +28,7 @@ const ProductData = {
28
28
  getProductFromEquinox: async function (skus, locale, storeID) {
29
29
  const filter = '{"filters":[{"field":"index_key_skuId","operation":"IN","value":"' + skus.toString() + '"}]}';
30
30
  axios.defaults.withCredentials = true;
31
-
31
+
32
32
  const url = await contentstack.getKongUrl() + `/orchestrationservices/storefront/catalogs/search/`;
33
33
  console.log("Dynamic URL", url)
34
34
  const href = `${url}?filter=${encodeURI(filter)}`;
@@ -78,7 +78,7 @@ const ProductData = {
78
78
  responseType: 'json'
79
79
  });
80
80
  },
81
-
81
+
82
82
  /**
83
83
  * @param {contentstack.MarketConfig} marketConfig
84
84
  */
@@ -92,13 +92,12 @@ const ProductData = {
92
92
 
93
93
  eqProductMapper: function (productDataResponse) {
94
94
  let prod = [];
95
- let count = 0;
96
95
 
97
- let prodArr = productDataResponse.map((data) => {
96
+ let prodArr = productDataResponse.map((data, count) => {
98
97
  let imageURL = data.sku[count].properties.imageURL;
99
98
  const regex = /\d+.\d+/
100
99
  let thumbnailImage = ''
101
-
100
+
102
101
  if (imageURL.includes('contentstack')) {
103
102
  thumbnailImage = imageURL + '?width=40'
104
103
  } else {
@@ -207,16 +206,18 @@ const ProductData = {
207
206
  "earn": true
208
207
  },
209
208
  "restrictedMarkets": [],
210
- "addOns": []
209
+ "addOns": [],
210
+ inventoryLabel: data.sku[count].inventory || ""
211
211
  };
212
- let newProduct = new product(prod);
213
- return newProduct
214
- })
212
+
213
+ return new Product(prod);
214
+ });
215
215
 
216
216
  let data = {
217
217
  products: prodArr,
218
218
  count: productDataResponse.length
219
219
  };
220
+
220
221
  return {
221
222
  data: {
222
223
  "status": 200,
@@ -252,13 +253,13 @@ const ProductData = {
252
253
  },
253
254
 
254
255
  /**
255
- *
256
- * @param {*} custType
257
- *
256
+ *
257
+ * @param {*} custType
258
+ *
258
259
  */
259
260
  switchCustType: function (custType) {
260
261
  let newCustType = [];
261
- if (custType.includes('Brand Affiliate - Business Entity') || custType.includes('Brand Affiliate - Individual'))
262
+ if (custType.includes('Brand Affiliate - Business Entity') || custType.includes('Brand Affiliate - Individual'))
262
263
  newCustType.push(10)
263
264
  if (custType.includes('Retail Customer'))
264
265
  newCustType.push(20)