@nuskin/ns-product-lib 2.13.3-cx24-5694.1 → 2.13.3-cx24-5694.2
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/src/graph-ql/mappers/index.js +3 -2
- package/src/graph-ql/mappers/originalPrice.js +24 -0
- package/src/graph-ql/mappers/retailPrice.js +3 -2
- package/src/graph-ql/mappers/wholesalePrice.js +3 -2
- package/src/graph-ql/product.js +62 -17
- package/src/graph-ql/query/getProductById.js +8 -0
- package/src/graph-ql/query/getProductsById.js +8 -0
package/package.json
CHANGED
@@ -3,11 +3,12 @@ const wholesalePrice = require('./wholesalePrice');
|
|
3
3
|
const retailPrice = require('./retailPrice');
|
4
4
|
const retailSubscriptionPrice = require('./retailSubscriptionPrice')
|
5
5
|
const wholesaleSubscriptionPrice = require('./wholesaleSubscriptionPrice')
|
6
|
-
|
6
|
+
const originalPrice = require('./originalPrice');
|
7
7
|
|
8
8
|
module.exports = {
|
9
9
|
mapWholesalePrice: wholesalePrice,
|
10
10
|
mapRetailPrice: retailPrice,
|
11
11
|
mapRetailSubscriptionPrice: retailSubscriptionPrice,
|
12
|
-
mapWholesaleSubscriptionPrice: wholesaleSubscriptionPrice
|
12
|
+
mapWholesaleSubscriptionPrice: wholesaleSubscriptionPrice,
|
13
|
+
mapOriginalPrice : originalPrice
|
13
14
|
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Map original price (set to retail)
|
5
|
+
* use original price if product type is equal to kit/bundle
|
6
|
+
* @param {obj} product
|
7
|
+
* @param {boolean} isWholesale default === false
|
8
|
+
* @param {boolean} isBundleKit default === false
|
9
|
+
* @return {number} retailPrice
|
10
|
+
*/
|
11
|
+
function originalPrice(product, isWholesale = false, isBundleKit = false) {
|
12
|
+
const { price, totalPrice } = product;
|
13
|
+
const productPrice = totalPrice ? totalPrice : price;
|
14
|
+
|
15
|
+
if (isBundleKit) {
|
16
|
+
|
17
|
+
return isWholesale ? productPrice.wholesaleOriginal : productPrice.retailOriginal;
|
18
|
+
}
|
19
|
+
|
20
|
+
return isWholesale ? productPrice.wholesale : productPrice.retail;
|
21
|
+
|
22
|
+
}
|
23
|
+
|
24
|
+
module.exports = originalPrice;
|
@@ -4,9 +4,10 @@
|
|
4
4
|
* Map retail price
|
5
5
|
* Map retailSales if it has sales/promotions
|
6
6
|
* @param {obj} product
|
7
|
+
* @param {boolean} isBundleKit
|
7
8
|
* @return {number} retailPrice
|
8
9
|
*/
|
9
|
-
function retailPrice(product) {
|
10
|
+
function retailPrice(product, isBundleKit = false) {
|
10
11
|
const { price, totalPrice } = product;
|
11
12
|
const productPrice = totalPrice ? totalPrice : price;
|
12
13
|
|
@@ -15,7 +16,7 @@ function retailPrice(product) {
|
|
15
16
|
return productPrice.retailSales;
|
16
17
|
}
|
17
18
|
|
18
|
-
return productPrice.retail;
|
19
|
+
return isBundleKit ? productPrice.retailOriginal : productPrice.retail;
|
19
20
|
|
20
21
|
}
|
21
22
|
|
@@ -4,9 +4,10 @@
|
|
4
4
|
* Map wholesale price
|
5
5
|
* Map wholesaleSales if it has sales/promotions
|
6
6
|
* @param {*} product
|
7
|
+
* @param {boolean} isBundleKit
|
7
8
|
* @return {number} wholesalePrice
|
8
9
|
*/
|
9
|
-
function wholeSalePrice(product) {
|
10
|
+
function wholeSalePrice(product, isBundleKit) {
|
10
11
|
const { price, totalPrice } = product;
|
11
12
|
const productPrice = totalPrice ? totalPrice : price;
|
12
13
|
|
@@ -14,7 +15,7 @@ function wholeSalePrice(product) {
|
|
14
15
|
return productPrice.wholesaleSales;
|
15
16
|
}
|
16
17
|
|
17
|
-
return productPrice.wholesale;
|
18
|
+
return isBundleKit ? productPrice.wholesaleOriginal : productPrice.wholesale;
|
18
19
|
}
|
19
20
|
|
20
21
|
module.exports = wholeSalePrice;
|
package/src/graph-ql/product.js
CHANGED
@@ -7,7 +7,9 @@ const {
|
|
7
7
|
mapWholesalePrice,
|
8
8
|
mapRetailPrice,
|
9
9
|
mapRetailSubscriptionPrice,
|
10
|
-
mapWholesaleSubscriptionPrice
|
10
|
+
mapWholesaleSubscriptionPrice,
|
11
|
+
mapOriginalPrice
|
12
|
+
} = require('./mappers');
|
11
13
|
|
12
14
|
const defaultPayload = {
|
13
15
|
operationName: "getProduct",
|
@@ -77,6 +79,32 @@ async function getProduct(id, market, locale, config) {
|
|
77
79
|
};
|
78
80
|
}
|
79
81
|
|
82
|
+
/**
|
83
|
+
* Map product prices
|
84
|
+
* @param {*} product
|
85
|
+
* @param {boolean} isKitBundle
|
86
|
+
* @return {obj} prices
|
87
|
+
*/
|
88
|
+
function mapPrices(product, isKitBundle = false) {
|
89
|
+
const originalPrice = mapOriginalPrice(product, isKitBundle);
|
90
|
+
const retailPrice = mapRetailPrice(product, isKitBundle);
|
91
|
+
const wholesalePrice = mapWholesalePrice(product, isKitBundle);
|
92
|
+
const originalWholeSalePrice = mapOriginalPrice(product, true, isKitBundle);
|
93
|
+
|
94
|
+
//map subscription (ADR) prices
|
95
|
+
const retailSubscriptionPrice = mapRetailSubscriptionPrice(product);
|
96
|
+
const wholesaleSubscriptionPrice = mapWholesaleSubscriptionPrice(product);
|
97
|
+
|
98
|
+
return {
|
99
|
+
originalPrice,
|
100
|
+
originalWholeSalePrice,
|
101
|
+
retailPrice,
|
102
|
+
wholesalePrice,
|
103
|
+
retailSubscriptionPrice,
|
104
|
+
wholesaleSubscriptionPrice
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
80
108
|
/**
|
81
109
|
*
|
82
110
|
* Map product data to be product card consumable structure *
|
@@ -108,6 +136,16 @@ function mapProduct(product, market, locale, config) {
|
|
108
136
|
//serves as parent
|
109
137
|
const defaultVariant = variants[0];
|
110
138
|
const productImages = mapProductImages(defaultVariant);
|
139
|
+
|
140
|
+
const {
|
141
|
+
originalPrice,
|
142
|
+
retailPrice,
|
143
|
+
wholesalePrice,
|
144
|
+
retailSubscriptionPrice,
|
145
|
+
wholesaleSubscriptionPrice,
|
146
|
+
originalWholeSalePrice
|
147
|
+
} = mapPrices(defaultVariant, !!kitBundleProducts);
|
148
|
+
|
111
149
|
const productDetail = {
|
112
150
|
"sku": defaultVariant.sku || product.id,
|
113
151
|
"globalProductID": product.id,
|
@@ -129,15 +167,15 @@ function mapProduct(product, market, locale, config) {
|
|
129
167
|
"cv": (defaultVariant.points) ? defaultVariant.points.wholesale.cv : 0,
|
130
168
|
"pv": (defaultVariant.points) ? defaultVariant.points.wholesale.pv : 0,
|
131
169
|
"priceType": "WRTL",
|
132
|
-
"price":
|
170
|
+
"price": originalPrice,
|
133
171
|
"priceMap": {
|
134
|
-
"WRTL":
|
135
|
-
"WADW-WRTL":
|
136
|
-
"WADR":
|
137
|
-
"RTL":
|
138
|
-
"WWHL":
|
139
|
-
"WADW":
|
140
|
-
"WHL":
|
172
|
+
"WRTL": retailPrice,
|
173
|
+
"WADW-WRTL": retailSubscriptionPrice,
|
174
|
+
"WADR": retailSubscriptionPrice,
|
175
|
+
"RTL": retailPrice,
|
176
|
+
"WWHL": wholesalePrice,
|
177
|
+
"WADW": wholesaleSubscriptionPrice,
|
178
|
+
"WHL": originalWholeSalePrice
|
141
179
|
},
|
142
180
|
"cvMap": {
|
143
181
|
"WWHL": (defaultVariant.points) ? defaultVariant.points.wholesale.cv : 0,
|
@@ -219,6 +257,13 @@ function mapVariants(product) {
|
|
219
257
|
const sku = variant.sku || variant.id;
|
220
258
|
|
221
259
|
const productImages = mapProductImages(variant);
|
260
|
+
const {
|
261
|
+
originalPrice,
|
262
|
+
retailPrice,
|
263
|
+
wholesalePrice,
|
264
|
+
retailSubscriptionPrice,
|
265
|
+
wholesaleSubscriptionPrice
|
266
|
+
} = mapPrices(variant);
|
222
267
|
|
223
268
|
variants[sku] = {
|
224
269
|
"sku": sku,
|
@@ -239,15 +284,15 @@ function mapVariants(product) {
|
|
239
284
|
"cv": (variant.points) ? variant.points.wholesale.cv : 0,
|
240
285
|
"pv": (variant.points) ? variant.points.wholesale.pv : 0,
|
241
286
|
"priceType": "WRTL",
|
242
|
-
"price":
|
287
|
+
"price": originalPrice,
|
243
288
|
"priceMap": {
|
244
|
-
"WRTL":
|
245
|
-
"WADW-WRTL":
|
246
|
-
"WADR":
|
247
|
-
"RTL":
|
248
|
-
"WWHL":
|
249
|
-
"WADW":
|
250
|
-
"WHL":
|
289
|
+
"WRTL": retailPrice,
|
290
|
+
"WADW-WRTL": retailSubscriptionPrice,
|
291
|
+
"WADR": retailSubscriptionPrice,
|
292
|
+
"RTL": retailPrice,
|
293
|
+
"WWHL": wholesalePrice,
|
294
|
+
"WADW": wholesaleSubscriptionPrice,
|
295
|
+
"WHL": wholesalePrice
|
251
296
|
},
|
252
297
|
"cvMap": {
|
253
298
|
"WWHL": (variant.points) ? variant.points.wholesale.cv : 0,
|
@@ -360,6 +360,8 @@ const getProductByIdQuery = `query getProduct($id: String!, $market: String, $la
|
|
360
360
|
wholesaleSales
|
361
361
|
retailSubscription
|
362
362
|
wholesaleSubscription
|
363
|
+
retailOriginal
|
364
|
+
wholesaleOriginal
|
363
365
|
currencyCode
|
364
366
|
__typename
|
365
367
|
}
|
@@ -370,6 +372,8 @@ const getProductByIdQuery = `query getProduct($id: String!, $market: String, $la
|
|
370
372
|
wholesaleSales
|
371
373
|
retailSubscription
|
372
374
|
wholesaleSubscription
|
375
|
+
retailOriginal
|
376
|
+
wholesaleOriginal
|
373
377
|
currencyCode
|
374
378
|
__typename
|
375
379
|
}
|
@@ -448,6 +452,8 @@ const getProductByIdQuery = `query getProduct($id: String!, $market: String, $la
|
|
448
452
|
wholesaleSales
|
449
453
|
retailSubscription
|
450
454
|
wholesaleSubscription
|
455
|
+
retailOriginal
|
456
|
+
wholesaleOriginal
|
451
457
|
__typename
|
452
458
|
}
|
453
459
|
totalPrice {
|
@@ -458,6 +464,8 @@ const getProductByIdQuery = `query getProduct($id: String!, $market: String, $la
|
|
458
464
|
wholesaleSales
|
459
465
|
retailSubscription
|
460
466
|
wholesaleSubscription
|
467
|
+
retailOriginal
|
468
|
+
wholesaleOriginal
|
461
469
|
__typename
|
462
470
|
}
|
463
471
|
points {
|
@@ -362,6 +362,8 @@ const getProductsByIdQuery = `query getProducts($id: String!, $market: String, $
|
|
362
362
|
retailSubscription
|
363
363
|
wholesaleSubscription
|
364
364
|
currencyCode
|
365
|
+
retailOriginal
|
366
|
+
wholesaleOriginal
|
365
367
|
__typename
|
366
368
|
}
|
367
369
|
totalPrice {
|
@@ -372,6 +374,8 @@ const getProductsByIdQuery = `query getProducts($id: String!, $market: String, $
|
|
372
374
|
retailSubscription
|
373
375
|
wholesaleSubscription
|
374
376
|
currencyCode
|
377
|
+
retailOriginal
|
378
|
+
wholesaleOriginal
|
375
379
|
__typename
|
376
380
|
}
|
377
381
|
points {
|
@@ -449,6 +453,8 @@ const getProductsByIdQuery = `query getProducts($id: String!, $market: String, $
|
|
449
453
|
wholesaleSales
|
450
454
|
retailSubscription
|
451
455
|
wholesaleSubscription
|
456
|
+
retailOriginal
|
457
|
+
wholesaleOriginal
|
452
458
|
__typename
|
453
459
|
}
|
454
460
|
totalPrice {
|
@@ -459,6 +465,8 @@ const getProductsByIdQuery = `query getProducts($id: String!, $market: String, $
|
|
459
465
|
wholesaleSales
|
460
466
|
retailSubscription
|
461
467
|
wholesaleSubscription
|
468
|
+
retailOriginal
|
469
|
+
wholesaleOriginal
|
462
470
|
__typename
|
463
471
|
}
|
464
472
|
points {
|