@nuskin/ns-product-lib 2.9.1 → 2.9.2-cx24-4771.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,19 @@
|
|
1
|
+
## [2.9.2-cx24-4771.2](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.9.2-cx24-4771.1...v2.9.2-cx24-4771.2) (2023-08-03)
|
2
|
+
|
3
|
+
|
4
|
+
### Fix
|
5
|
+
|
6
|
+
* bundle kit backordered add to cart (#CX24-4771) ([d068f30](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/d068f30c3cd4b3025e8646db4d81358a70981261)), closes [#CX24-4771](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-4771)
|
7
|
+
* linter inventory props (#CX24-4771) ([8189e64](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/8189e64d1e080c9480fae1fb318eaf55ed7cc374)), closes [#CX24-4771](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-4771)
|
8
|
+
|
9
|
+
## [2.9.2-cx24-4771.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.9.1...v2.9.2-cx24-4771.1) (2023-07-31)
|
10
|
+
|
11
|
+
|
12
|
+
### Fix
|
13
|
+
|
14
|
+
* backorder Qty for single product and kits (#CX24-4771) ([5ee943a](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/5ee943a4bcb98c4f2f4826b8e43e65ae28bd38d6)), closes [#CX24-4771](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-4771)
|
15
|
+
* product backordered quantity (#CX24-4771) ([5efc8cc](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/commit/5efc8ccde4967ee50504f449ac818139f4416a75)), closes [#CX24-4771](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/issues/CX24-4771)
|
16
|
+
|
1
17
|
## [2.9.1](https://code.tls.nuskin.io/ns-am/product/js-libs/ns-product-lib/compare/v2.9.0...v2.9.1) (2023-07-17)
|
2
18
|
|
3
19
|
|
package/package.json
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
*/
|
6
6
|
function availableQuantity(product) {
|
7
7
|
if (product.inventoryProperties) {
|
8
|
-
return product.inventoryProperties.atpQty;
|
8
|
+
return product.inventoryProperties.backOrdered ? product.inventoryProperties.backOrderedQty : product.inventoryProperties.atpQty;
|
9
9
|
}
|
10
10
|
|
11
11
|
if (product.childSkus && product.childSkus.length > 0) {
|
12
12
|
const quantities = product.childSkus
|
13
13
|
.filter(cs => cs.inventory !== undefined)
|
14
|
-
.map(cs => cs.inventory.atpQty);
|
14
|
+
.map(cs => cs.inventory.backOrdered ? cs.inventory.backOrderedQty : cs.inventory.atpQty);
|
15
15
|
|
16
16
|
return Math.min(...quantities);
|
17
17
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/**
|
2
2
|
* childSKU maps a product variant. Used mainly in subscription.
|
3
3
|
*
|
4
|
-
* @param {import('.').KitSKUQuantity[]} kits
|
5
|
-
* @param {import('.').EquinoxNormalProduct} product
|
4
|
+
* @param {import('.').KitSKUQuantity[]} kits
|
5
|
+
* @param {import('.').EquinoxNormalProduct} product
|
6
6
|
*/
|
7
7
|
function childSKU(kits, product) {
|
8
8
|
const sku = product.sku.filter(sku => sku.default)[0];
|
@@ -23,7 +23,8 @@ function childSKU(kits, product) {
|
|
23
23
|
availableChannels: sku.properties.availableChannels,
|
24
24
|
inventory: {
|
25
25
|
atpQty: sku.inventoryProperties.atpQty,
|
26
|
-
backOrdered: sku.inventoryProperties.backOrdered
|
26
|
+
backOrdered: sku.inventoryProperties.backOrdered,
|
27
|
+
backOrderedQty: sku.inventoryProperties.backOrderedQty
|
27
28
|
}
|
28
29
|
}
|
29
30
|
}
|
package/src/productData.js
CHANGED
@@ -135,6 +135,26 @@ const ProductData = {
|
|
135
135
|
};
|
136
136
|
},
|
137
137
|
|
138
|
+
/**
|
139
|
+
* Get available product quantity
|
140
|
+
* If backOrdered === true, use backOrderedQty
|
141
|
+
* else use atpQty
|
142
|
+
* @param {obj} inventory
|
143
|
+
* @returns {number} qty
|
144
|
+
*/
|
145
|
+
getAvailableQty: function(inventory) {
|
146
|
+
if (!inventory || (!inventory.hasOwnProperty('backOrdered')
|
147
|
+
|| !inventory.hasOwnProperty('atpQty') || !inventory.hasOwnProperty('backOrderedQty'))) {
|
148
|
+
return 0;
|
149
|
+
}
|
150
|
+
|
151
|
+
if (inventory.backOrdered) {
|
152
|
+
return inventory.backOrderedQty;
|
153
|
+
}
|
154
|
+
|
155
|
+
return inventory.atpQty;
|
156
|
+
},
|
157
|
+
|
138
158
|
/**
|
139
159
|
* Map product variant
|
140
160
|
* @todo remove unnecessary fields and do code refactoring
|
@@ -256,7 +276,7 @@ const ProductData = {
|
|
256
276
|
}
|
257
277
|
],
|
258
278
|
"scanQualified": eqVariant.properties.scanQualifiedCount,
|
259
|
-
"availableQuantity": eqVariant.inventoryProperties
|
279
|
+
"availableQuantity": this.getAvailableQty(eqVariant.inventoryProperties),
|
260
280
|
"maxQuantity": 999,
|
261
281
|
"points": "",
|
262
282
|
"cv": productCVPrice,
|
@@ -498,7 +518,7 @@ const ProductData = {
|
|
498
518
|
},
|
499
519
|
"restrictedMarkets": [],
|
500
520
|
"addOns": [],
|
501
|
-
"inventory": product.inventory || "", //inventory label
|
521
|
+
"inventory": product.inventory || product.properties.inventoryStatus || "", //inventory label,
|
502
522
|
"equinoxProductId": productData.identifier,
|
503
523
|
"properties": product.properties,
|
504
524
|
equinox: {
|