@nuskin/product-components 3.19.0-td-1017.1 → 3.19.1-pa-933.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.releaserc +1 -1
- package/components/NsProductOffer.vue +14 -4
- package/components/NsProductQuantitySelector.vue +8 -4
- package/docs/CHANGELOG.md +1 -1
- package/mixins/NsProductMixin.js +14 -3
- package/package.json +3 -3
- package/services/EQPromotionService.js +10 -0
- package/services/NsProductDataService.js +2 -1
- package/gl-sbom-npm-yarn.cdx.json +0 -4134
package/.releaserc
CHANGED
|
@@ -48,8 +48,16 @@
|
|
|
48
48
|
<div :class="$style.offerMessaging">
|
|
49
49
|
<h2 :class="$style.offerTitle">{{ localTranslations.welcome }}</h2>
|
|
50
50
|
<p :class="$style.offerMessage">
|
|
51
|
-
<span v-if="!offer.isGroupOffer">{{
|
|
52
|
-
|
|
51
|
+
<span v-if="!offer.isGroupOffer && !offer.isQuickShare">{{
|
|
52
|
+
offer.name
|
|
53
|
+
}}</span>
|
|
54
|
+
<span
|
|
55
|
+
v-if="
|
|
56
|
+
!offer.isGroupOffer &&
|
|
57
|
+
offer.countryCode === 'JP' &&
|
|
58
|
+
!offer.isQuickShare
|
|
59
|
+
"
|
|
60
|
+
>
|
|
53
61
|
さん,
|
|
54
62
|
</span>
|
|
55
63
|
<span v-else-if="!offer.isGroupOffer && offer.countryCode !== 'JP'"
|
|
@@ -921,13 +929,15 @@ export default {
|
|
|
921
929
|
|
|
922
930
|
if (
|
|
923
931
|
availability &&
|
|
924
|
-
availability.addToCart &&
|
|
932
|
+
(availability.addToCart || availability.addToAdr) &&
|
|
925
933
|
Object.keys(this.products[sku].data).length >= 1 &&
|
|
926
934
|
availableQuantity >= 1
|
|
927
935
|
) {
|
|
928
936
|
const selectedQuantity = availability.selectedQuantity || 0;
|
|
929
937
|
if (selectedQuantity > 0) {
|
|
930
|
-
const price = availability.
|
|
938
|
+
const price = availability.addToCart
|
|
939
|
+
? availability.price
|
|
940
|
+
: availability.adrPrice || 0;
|
|
931
941
|
|
|
932
942
|
totalPrice += price * selectedQuantity;
|
|
933
943
|
this.totalProductQuantity += selectedQuantity;
|
|
@@ -237,10 +237,14 @@ export default {
|
|
|
237
237
|
this.dropdownMax,
|
|
238
238
|
this.dropdownMax - this.includeZero ? 0 : 1
|
|
239
239
|
);
|
|
240
|
-
|
|
241
|
-
this
|
|
242
|
-
|
|
243
|
-
|
|
240
|
+
this.$nextTick(() => {
|
|
241
|
+
if (!this.isMobileDevice()) {
|
|
242
|
+
this.$refs.input.focus();
|
|
243
|
+
this.$refs.input.select();
|
|
244
|
+
} else {
|
|
245
|
+
this.$refs.input.blur();
|
|
246
|
+
}
|
|
247
|
+
});
|
|
244
248
|
} else {
|
|
245
249
|
this.errorMessage = "";
|
|
246
250
|
this.showCustomSelectedItem = false;
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
## [3.19.1-pa-933.1](https://code.tls.nuskin.io/ns-am/ux/product-components/compare/v3.19.0...v3.19.1-pa-933.1) (2025-11-05)
|
package/mixins/NsProductMixin.js
CHANGED
|
@@ -130,6 +130,10 @@ const NsProductMixin = {
|
|
|
130
130
|
baseSku: "",
|
|
131
131
|
checkedQualifications: false,
|
|
132
132
|
description: "",
|
|
133
|
+
/**
|
|
134
|
+
* Reflects if a user can ship in this market
|
|
135
|
+
*/
|
|
136
|
+
canUserShop: true,
|
|
133
137
|
/**
|
|
134
138
|
* Determines if the "Add To Cart" button is disabled
|
|
135
139
|
*/
|
|
@@ -349,6 +353,7 @@ const NsProductMixin = {
|
|
|
349
353
|
this.setTranslations();
|
|
350
354
|
await this.$nextTick();
|
|
351
355
|
|
|
356
|
+
await this.setCanUserShopInMarket();
|
|
352
357
|
this.setLoyalty();
|
|
353
358
|
this.setHideAdr();
|
|
354
359
|
},
|
|
@@ -966,6 +971,10 @@ const NsProductMixin = {
|
|
|
966
971
|
return this.$NsProductDataService.getAdrPriceType();
|
|
967
972
|
},
|
|
968
973
|
|
|
974
|
+
async setCanUserShopInMarket() {
|
|
975
|
+
this.canUserShop = await CartService.canUserAddToCart();
|
|
976
|
+
},
|
|
977
|
+
|
|
969
978
|
setHideAdr() {
|
|
970
979
|
const isSkinConsult = util.isSkinConsult();
|
|
971
980
|
const mySiteHideAdr = !!(
|
|
@@ -1061,6 +1070,7 @@ const NsProductMixin = {
|
|
|
1061
1070
|
this.selectedQuantity = quantity;
|
|
1062
1071
|
|
|
1063
1072
|
if (
|
|
1073
|
+
!this.canUserShop ||
|
|
1064
1074
|
+this.selectedQuantity > this.maxQuantity ||
|
|
1065
1075
|
+this.selectedQuantity < 1 ||
|
|
1066
1076
|
+this.selectedQuantity % 1 !== 0
|
|
@@ -1082,7 +1092,7 @@ const NsProductMixin = {
|
|
|
1082
1092
|
isBaseSku: this.isBaseSku,
|
|
1083
1093
|
isVariantSku: this.isVariantSku,
|
|
1084
1094
|
addToCart: !this.disableAddToCart,
|
|
1085
|
-
addToAdr: !this.
|
|
1095
|
+
addToAdr: !this.disableAddToAdr,
|
|
1086
1096
|
selectedQuantity: Number(this.selectedQuantity),
|
|
1087
1097
|
maxQuantity: this.maxQuantity,
|
|
1088
1098
|
originalPrice: this.originalPrice,
|
|
@@ -1320,8 +1330,9 @@ const NsProductMixin = {
|
|
|
1320
1330
|
},
|
|
1321
1331
|
|
|
1322
1332
|
checkAddToCartAndAdr() {
|
|
1323
|
-
this.disableAddToCart =
|
|
1324
|
-
|
|
1333
|
+
this.disableAddToCart =
|
|
1334
|
+
!this.canUserShop || this.showAdrOnly || !this.hasOrderTypeOrder;
|
|
1335
|
+
this.disableAddToAdr = !this.canUserShop || !this.showAdr;
|
|
1325
1336
|
},
|
|
1326
1337
|
|
|
1327
1338
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuskin/product-components",
|
|
3
|
-
"version": "3.19.
|
|
3
|
+
"version": "3.19.1-pa-933.1",
|
|
4
4
|
"description": "Nu Skin Product Components",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@mdi/font": "3.9.97",
|
|
26
26
|
"@ns/ns-contentstack-lib": "2.2.2",
|
|
27
|
-
"@nuskin/design-components": "8.
|
|
27
|
+
"@nuskin/design-components": "8.9.1",
|
|
28
28
|
"@nuskin/ns-common-lib": "1.4.8",
|
|
29
29
|
"@nuskin/ns-core-styles": "2.12.0",
|
|
30
30
|
"@nuskin/ns-icon": "2.12.1",
|
|
31
31
|
"@nuskin/ns-loyalty-web": "1.5.7",
|
|
32
32
|
"@nuskin/ns-product-lib": "2.20.0",
|
|
33
|
-
"@nuskin/ns-shop": "7.
|
|
33
|
+
"@nuskin/ns-shop": "7.8.0",
|
|
34
34
|
"@nuskin/product-recommendation": "2.0.1",
|
|
35
35
|
"axios": "1.8.3",
|
|
36
36
|
"lodash": "4.17.21",
|
|
@@ -162,6 +162,16 @@ const getEquinoxRequestConfiguration = async () => {
|
|
|
162
162
|
Authorization: `Bearer ${oktaToken}`
|
|
163
163
|
};
|
|
164
164
|
|
|
165
|
+
const shoppingContext =
|
|
166
|
+
window &&
|
|
167
|
+
window.aem &&
|
|
168
|
+
window.aem.ShoppingContext &&
|
|
169
|
+
window.aem.ShoppingContext.getShoppingContext();
|
|
170
|
+
if (shoppingContext && shoppingContext.overrides) {
|
|
171
|
+
headers.showwholesalepricing =
|
|
172
|
+
shoppingContext.overrides.showWholeSalePricing;
|
|
173
|
+
}
|
|
174
|
+
|
|
165
175
|
return {
|
|
166
176
|
marketLocale,
|
|
167
177
|
storeId: config.store_id,
|
|
@@ -278,7 +278,8 @@ if (!NsProductDataService) {
|
|
|
278
278
|
const productsToSaveToSession = [];
|
|
279
279
|
for (const product of productData.products) {
|
|
280
280
|
// do a last quick check to make sure we don't add duplicate products
|
|
281
|
-
product.
|
|
281
|
+
const eventNames = product.eventName ? [product.eventName] : null;
|
|
282
|
+
product.setPriceAndPvFromType(this.getPriceType(), eventNames, {
|
|
282
283
|
isEqPromotion: equinoxMarketConfig.active
|
|
283
284
|
});
|
|
284
285
|
this.products.push(product);
|