@nuskin/ns-product-lib 2.5.0-cx24-2462.1.2 → 2.5.0-cx24-2862.2
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +7 -18
- package/package.json +1 -1
- package/src/productData.js +87 -121
package/CHANGELOG.md
CHANGED
@@ -1,28 +1,24 @@
|
|
1
|
-
# [2.5.0-cx24-
|
1
|
+
# [2.5.0-cx24-2862.2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.5.0-cx24-2862.1...v2.5.0-cx24-2862.2) (2022-11-11)
|
2
2
|
|
3
3
|
|
4
4
|
### Update
|
5
5
|
|
6
|
-
*
|
6
|
+
* set ADR pricing from equinox (CX24-2862) ([b64dcea](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/b64dcea4dd3374be992c667db5c0b2604aacc029))
|
7
7
|
|
8
|
-
# [2.5.0-cx24-
|
8
|
+
# [2.5.0-cx24-2862.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.4.2-cx24-2612.1.1...v2.5.0-cx24-2862.1) (2022-11-10)
|
9
9
|
|
10
10
|
|
11
|
-
### Release
|
12
|
-
|
13
|
-
* Automated changes by GitLab pipeline [skip ci] ([62c7b7d](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/62c7b7d38d24f3f267c859ae7f16af55f8d950f1))
|
14
|
-
|
15
11
|
### Update
|
16
12
|
|
17
|
-
*
|
18
|
-
*
|
13
|
+
* set ADR pricing from equinox (CX24-2862) ([9f6dfb7](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/9f6dfb726f40b1335411318629a2ebdf1b4dac96))
|
14
|
+
* set ADR pricing from equinox (CX24-2862) ([61f550a](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/61f550a21c5cc9d062549ec2aaf2758aebccf2be))
|
19
15
|
|
20
|
-
## [2.4.2-
|
16
|
+
## [2.4.2-cx24-2612.1.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.4.1...v2.4.2-cx24-2612.1.1) (2022-11-07)
|
21
17
|
|
22
18
|
|
23
19
|
### Fix
|
24
20
|
|
25
|
-
* [Equinox market] Admin > Move up/down/top/bottom of featured products and edit bundle is not working ([
|
21
|
+
* [Equinox market] Admin > Move up/down/top/bottom of featured products and edit bundle is not working ([9d9d106](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/9d9d10667477b4c7ef7bf8ec013aab322d3cdbcc))
|
26
22
|
|
27
23
|
## [2.4.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.4.0...v2.4.1) (2022-11-06)
|
28
24
|
|
@@ -62,13 +58,10 @@
|
|
62
58
|
|
63
59
|
* To make multiple products work (#CX24-2444) ([ce4c483](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/ce4c483b7fbb0527e60045d8174fd503a67e63fa)), closes [#CX24-2444](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2444)
|
64
60
|
|
65
|
-
<<<<<<< HEAD
|
66
|
-
=======
|
67
61
|
### New
|
68
62
|
|
69
63
|
* added support for inventory label (#CX24-2186) ([3e27481](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/3e2748106cd6098086dbd6b738964deabacc875d)), closes [#CX24-2186](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2186)
|
70
64
|
|
71
|
-
>>>>>>> CX24.2
|
72
65
|
### Release
|
73
66
|
|
74
67
|
* Automated changes by GitLab pipeline [skip ci] ([8f75316](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/8f75316b692ddccda5b7bea830ee6dc625b942c7))
|
@@ -76,9 +69,6 @@
|
|
76
69
|
|
77
70
|
### Update
|
78
71
|
|
79
|
-
<<<<<<< HEAD
|
80
|
-
* map product images to carousel images (CX24-2462) ([1e17c6e](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/1e17c6ec39e54b4bdb2bb804c997eb14c9e501d5))
|
81
|
-
=======
|
82
72
|
* added support for variant and price (#CX24-2186) ([e0bf8f2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/e0bf8f280a838dfa4cc613e5bc34d254dbdc8e1a)), closes [#CX24-2186](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2186)
|
83
73
|
* added variant label (#CX24-2186) ([4c223b3](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/4c223b34438ed73cb824716cacb93482486f8195)), closes [#CX24-2186](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2186)
|
84
74
|
* use platform-specific values when initialized ([18de006](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/18de006211ab396f4d7fa40d0089c8e185d9cee9))
|
@@ -97,7 +87,6 @@
|
|
97
87
|
|
98
88
|
* added support for variant and price (#CX24-2186) ([e0bf8f2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/e0bf8f280a838dfa4cc613e5bc34d254dbdc8e1a)), closes [#CX24-2186](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2186)
|
99
89
|
* added variant label (#CX24-2186) ([4c223b3](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/4c223b34438ed73cb824716cacb93482486f8195)), closes [#CX24-2186](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-2186)
|
100
|
-
>>>>>>> CX24.2
|
101
90
|
|
102
91
|
# [2.3.0](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.2.0...v2.3.0) (2022-10-14)
|
103
92
|
|
package/package.json
CHANGED
package/src/productData.js
CHANGED
@@ -81,7 +81,7 @@ const ProductData = {
|
|
81
81
|
/**
|
82
82
|
* @param {contentstack.MarketConfig} marketConfig
|
83
83
|
*/
|
84
|
-
getLegacyRequestHeaders: function
|
84
|
+
getLegacyRequestHeaders: function(marketConfig) {
|
85
85
|
return {
|
86
86
|
'Content-Type': 'application/json',
|
87
87
|
client_id: marketConfig.checkout_client_id,
|
@@ -95,7 +95,7 @@ const ProductData = {
|
|
95
95
|
* @param {*} eqVariant
|
96
96
|
* @returns Array<Product>
|
97
97
|
*/
|
98
|
-
eqProductVariantMapper: function (eqVariant) {
|
98
|
+
eqProductVariantMapper : function (eqVariant) {
|
99
99
|
|
100
100
|
let imageURL = eqVariant.properties.imageURL;
|
101
101
|
const regex = /\d+.\d+/
|
@@ -104,7 +104,7 @@ const ProductData = {
|
|
104
104
|
if (imageURL.includes('contentstack')) {
|
105
105
|
thumbnailImage = imageURL + '?width=40'
|
106
106
|
} else {
|
107
|
-
thumbnailImage = imageURL.replace(regex,
|
107
|
+
thumbnailImage = imageURL.replace(regex,'40.40')
|
108
108
|
}
|
109
109
|
|
110
110
|
return {
|
@@ -125,7 +125,7 @@ const ProductData = {
|
|
125
125
|
}
|
126
126
|
],
|
127
127
|
"thumbnail": thumbnailImage,
|
128
|
-
ingredients:
|
128
|
+
"ingredients": eqVariant.properties.ingredients,
|
129
129
|
"benefits": eqVariant.properties.benefits,
|
130
130
|
"usage": eqVariant.properties.usage,
|
131
131
|
"resources": eqVariant.properties.resources,
|
@@ -142,17 +142,17 @@ const ProductData = {
|
|
142
142
|
"availableQuantity": eqVariant.inventoryProperties.atpQty,
|
143
143
|
"maxQuantity": 999,
|
144
144
|
"points": "",
|
145
|
-
"cv": (eqVariant.priceFacets.CV) ?
|
146
|
-
"pv":
|
145
|
+
"cv": (eqVariant.priceFacets.CV) ? eqVariant.priceFacets.CV : '',
|
146
|
+
"pv":eqVariant.priceFacets.PV,
|
147
147
|
"priceType": "WRTL",
|
148
148
|
"price": eqVariant.priceFacets["Regular Price"],
|
149
149
|
"priceMap": {
|
150
150
|
"WRTL": eqVariant.priceFacets["Regular Price"],
|
151
151
|
"WADW-WRTL": eqVariant.priceFacets["Regular Price"],
|
152
|
-
"WADR":
|
152
|
+
"WADR": eqVariant.priceFacets["Regular Price"],
|
153
153
|
"RTL": eqVariant.priceFacets["Regular Price"],
|
154
154
|
"WWHL": eqVariant.priceFacets["Wholesale Price"],
|
155
|
-
"WADW":
|
155
|
+
"WADW": eqVariant.priceFacets["Wholesale Price"],
|
156
156
|
"WHL": eqVariant.priceFacets["Wholesale Price"]
|
157
157
|
},
|
158
158
|
"cvMap": {
|
@@ -165,19 +165,7 @@ const ProductData = {
|
|
165
165
|
"WADW": eqVariant.priceFacets.PV,
|
166
166
|
"WHL": eqVariant.priceFacets.PV
|
167
167
|
},
|
168
|
-
"orderTypes":
|
169
|
-
"adr": true,
|
170
|
-
"order": true,
|
171
|
-
"zpfc": false,
|
172
|
-
"zadp": true,
|
173
|
-
"ars": true,
|
174
|
-
"kiosk": true,
|
175
|
-
"mobile": true,
|
176
|
-
"preferred customer": true,
|
177
|
-
"retail": true,
|
178
|
-
"web": true,
|
179
|
-
"web display": true
|
180
|
-
},
|
168
|
+
"orderTypes": this._setOrderType(eqVariant.properties),
|
181
169
|
"division": eqVariant.properties.division,
|
182
170
|
"backOrderDate": null,
|
183
171
|
"locallyProduced": false,
|
@@ -188,9 +176,9 @@ const ProductData = {
|
|
188
176
|
"shade": "",
|
189
177
|
"status": this.switchStatusFromEquinox(eqVariant.properties.status),
|
190
178
|
"variantType": "Other",
|
191
|
-
"variantDropdownLabel": eqVariant.properties.variantLabel
|
179
|
+
"variantDropdownLabel": eqVariant.properties.variantLabel || "",
|
192
180
|
"variantDropdownPlaceholder": "Select Type",
|
193
|
-
"variantsLabel": eqVariant.properties.variantLabel
|
181
|
+
"variantsLabel": eqVariant.properties.variantLabel || "",
|
194
182
|
"groupOffer": false,
|
195
183
|
"personalOffer": false,
|
196
184
|
"savedEventName": null,
|
@@ -223,7 +211,7 @@ const ProductData = {
|
|
223
211
|
if (imageURL.includes('contentstack')) {
|
224
212
|
thumbnailImage = imageURL + '?width=40'
|
225
213
|
} else {
|
226
|
-
thumbnailImage = imageURL.replace(regex,
|
214
|
+
thumbnailImage = imageURL.replace(regex,'40.40')
|
227
215
|
}
|
228
216
|
|
229
217
|
if (data.sku && data.sku.length > 1) {
|
@@ -243,19 +231,18 @@ const ProductData = {
|
|
243
231
|
"longDescr": data.properties.productDetailsDescription,
|
244
232
|
"fullImage": imageURL,
|
245
233
|
"imageAltText": data.properties.name,
|
246
|
-
productCarouselImages:
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
)) : [],
|
234
|
+
"productCarouselImages": [
|
235
|
+
{
|
236
|
+
"contentType": "img",
|
237
|
+
"src": "/content/products/24/00/35/24003529/jcr:content/fullImage.imgw.1280.1280.png",
|
238
|
+
"alt": ""
|
239
|
+
}
|
240
|
+
],
|
254
241
|
"thumbnail": thumbnailImage,
|
255
|
-
ingredients:
|
256
|
-
benefits:
|
257
|
-
usage:
|
258
|
-
resources:
|
242
|
+
"ingredients": data.properties.ingredients,
|
243
|
+
"benefits": data.properties.benefits,
|
244
|
+
"usage": data.properties.usage,
|
245
|
+
"resources": data.sku[count].properties.resources,
|
259
246
|
"videos": "",
|
260
247
|
"movie": "",
|
261
248
|
"youtube": "",
|
@@ -269,16 +256,16 @@ const ProductData = {
|
|
269
256
|
"availableQuantity": data.sku[count].inventoryProperties.atpQty,
|
270
257
|
"maxQuantity": 999,
|
271
258
|
"points": "",
|
272
|
-
"cv": (data.sku[count].priceFacets.CV) ?
|
259
|
+
"cv": (data.sku[count].priceFacets.CV) ? data.sku[count].priceFacets.CV : '',
|
273
260
|
"pv": data.sku[count].priceFacets.PV,
|
274
261
|
"priceType": "WRTL",
|
275
262
|
"price": data.sku[count].priceFacets["Regular Price"],
|
276
263
|
"priceMap": {
|
277
264
|
"WRTL": data.sku[count].priceFacets["Regular Price"],
|
278
265
|
"WADW-WRTL": data.sku[count].priceFacets["Regular Price"],
|
279
|
-
"WADR":
|
266
|
+
"WADR": data.sku[count].priceFacets["Regular Price"],
|
280
267
|
"RTL": data.sku[count].priceFacets["Regular Price"],
|
281
|
-
"WADW":
|
268
|
+
"WADW": data.sku[count].priceFacets["Wholesale Price"],
|
282
269
|
"WHL": data.sku[count].priceFacets["Wholesale Price"],
|
283
270
|
"WWHL": data.sku[count].priceFacets["Wholesale Price"]
|
284
271
|
},
|
@@ -292,19 +279,7 @@ const ProductData = {
|
|
292
279
|
"WADW": data.sku[count].priceFacets.PV,
|
293
280
|
"WHL": data.sku[count].priceFacets.PV
|
294
281
|
},
|
295
|
-
"orderTypes":
|
296
|
-
"adr": true,
|
297
|
-
"order": true,
|
298
|
-
"zpfc": false,
|
299
|
-
"zadp": true,
|
300
|
-
"ars": true,
|
301
|
-
"kiosk": true,
|
302
|
-
"mobile": true,
|
303
|
-
"preferred customer": true,
|
304
|
-
"retail": true,
|
305
|
-
"web": true,
|
306
|
-
"web display": true
|
307
|
-
},
|
282
|
+
"orderTypes": this._setOrderType(data.sku[count].properties),
|
308
283
|
"childSkus": [],
|
309
284
|
"custTypes": this.switchCustType(data.properties.customerTypes),
|
310
285
|
"division": data.properties.division,
|
@@ -317,9 +292,9 @@ const ProductData = {
|
|
317
292
|
"shade": "",
|
318
293
|
"status": this.switchStatusFromEquinox(data.sku[count].properties.productStatus),
|
319
294
|
"variantType": "Other",
|
320
|
-
"variantDropdownLabel": data.sku[count].properties.variantLabel
|
295
|
+
"variantDropdownLabel": data.sku[count].properties.variantLabel || "",
|
321
296
|
"variantDropdownPlaceholder": "Select Type",
|
322
|
-
"variantsLabel": data.sku[count].properties.variantLabel
|
297
|
+
"variantsLabel": data.sku[count].properties.variantLabel || "",
|
323
298
|
"groupOffer": false,
|
324
299
|
"personalOffer": false,
|
325
300
|
"savedEventName": null,
|
@@ -406,82 +381,73 @@ const ProductData = {
|
|
406
381
|
|
407
382
|
_sortProductsBySku: function (skus, products) {
|
408
383
|
|
409
|
-
if
|
384
|
+
if(!skus || !products || products.length === 1) {
|
410
385
|
return products
|
411
386
|
}
|
412
387
|
|
413
|
-
|
388
|
+
const sortedProducts = products.sort(function (a, b) {
|
414
389
|
return skus.indexOf(a.sku) - skus.indexOf(b.sku);
|
415
390
|
});
|
416
391
|
|
417
|
-
|
418
|
-
}
|
419
|
-
|
420
|
-
function mapBenefits(benefits) {
|
421
|
-
if (!benefits) {
|
422
|
-
return {};
|
423
|
-
}
|
424
|
-
|
425
|
-
const list = JSON.parse(benefits)
|
426
|
-
.map(item => item.benefits.map(benefit => benefit).join(''))
|
427
|
-
.join('');
|
428
|
-
|
429
|
-
return {
|
430
|
-
benefitsHTML: list,
|
431
|
-
benefitsText: 'Benefits',
|
432
|
-
benefitItems: []
|
433
|
-
};
|
434
|
-
}
|
435
|
-
|
436
|
-
function mapIngredients(ingredients) {
|
437
|
-
if (!mapIngredients) {
|
438
|
-
return {};
|
439
|
-
}
|
440
|
-
|
441
|
-
// concatenating the name, description, keyIngredients, and otherIngredients
|
442
|
-
const list = JSON.parse(ingredients)
|
443
|
-
.map(i => [
|
444
|
-
i.keyIngredients
|
445
|
-
.map(k => `<img src="${k.image.url}" alt="${k.image.alt}" /> ${k.name} ${k.description}`)
|
446
|
-
.join(' '),
|
447
|
-
i.otherIngredients
|
448
|
-
].join(' '))
|
449
|
-
.join(' ');
|
450
|
-
|
451
|
-
return {
|
452
|
-
ingredientsHTML: list,
|
453
|
-
ingredientsText: 'Ingredients',
|
454
|
-
ingredients: []
|
455
|
-
}
|
456
|
-
}
|
457
|
-
|
458
|
-
function mapResources(resources) {
|
459
|
-
if (!resources) {
|
460
|
-
return {};
|
461
|
-
}
|
462
|
-
|
463
|
-
const text = JSON.parse(resources)
|
464
|
-
.map(res => `<p><a href="${res.url}" target="_blank">${res.title}</a></p>`)
|
465
|
-
.join('');
|
466
|
-
|
467
|
-
return {
|
468
|
-
resourcesHTML: text,
|
469
|
-
resourcesText: 'Resources',
|
470
|
-
resourceLinks: []
|
471
|
-
}
|
472
|
-
}
|
392
|
+
return sortedProducts
|
473
393
|
|
474
|
-
|
475
|
-
if (!usage) {
|
476
|
-
return {};
|
477
|
-
}
|
394
|
+
},
|
478
395
|
|
479
|
-
|
480
|
-
|
396
|
+
/**
|
397
|
+
*
|
398
|
+
* @param {*} availableChannels
|
399
|
+
*
|
400
|
+
* This function is use to convert arsPhone,web,kiosk,mobile,subscription
|
401
|
+
* to orderType object
|
402
|
+
* "adr”
|
403
|
+
"order"
|
404
|
+
"zpfc"
|
405
|
+
"zadp"
|
406
|
+
"ars"
|
407
|
+
"kiosk"
|
408
|
+
"mobile"
|
409
|
+
"preferred customer"
|
410
|
+
"retail"
|
411
|
+
"web"
|
412
|
+
"web display"
|
413
|
+
*/
|
414
|
+
_setOrderType: function (properties) {
|
415
|
+
let orderTypeArr = {
|
416
|
+
"adr": false,
|
417
|
+
"order": false,
|
418
|
+
"zpfc": false,
|
419
|
+
"zadp": false,
|
420
|
+
"ars": false,
|
421
|
+
"kiosk": false,
|
422
|
+
"mobile": false,
|
423
|
+
"preferred customer": false,
|
424
|
+
"retail": false,
|
425
|
+
"web": false,
|
426
|
+
"web display": false
|
427
|
+
};
|
428
|
+
let availableChannelsArr = properties.availableChannels.split(',')
|
429
|
+
|
430
|
+
availableChannelsArr.forEach(channel => {
|
431
|
+
if (channel == 'arsPhone')
|
432
|
+
orderTypeArr.ars = true
|
433
|
+
if (channel == 'web') {
|
434
|
+
orderTypeArr.order = true
|
435
|
+
orderTypeArr.web = true
|
436
|
+
}
|
437
|
+
if (channel == 'kiosk')
|
438
|
+
orderTypeArr.kiosk = true
|
439
|
+
if (channel == 'mobile')
|
440
|
+
orderTypeArr.mobile = true
|
441
|
+
if (channel == 'subscription')
|
442
|
+
orderTypeArr.adr = true
|
481
443
|
|
482
|
-
|
483
|
-
|
484
|
-
|
444
|
+
});
|
445
|
+
if (properties.retail)
|
446
|
+
orderTypeArr.retail = true
|
447
|
+
if (properties.prefferredCustomer)
|
448
|
+
orderTypeArr['preferred customer'] = true
|
449
|
+
|
450
|
+
return orderTypeArr;
|
485
451
|
}
|
486
452
|
}
|
487
453
|
|