@anker-in/shopify-react 0.1.1-beta.40 → 0.1.1-beta.41
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/dist/hooks/index.d.mts +5 -4
- package/dist/hooks/index.d.ts +5 -4
- package/dist/hooks/index.js +120 -64
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +120 -65
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +120 -64
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +120 -65
- package/dist/index.mjs.map +1 -1
- package/dist/provider/index.d.mts +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/index.mjs.map +1 -1
- package/dist/{types-BSsb8OPm.d.mts → types-y1Wa95P3.d.mts} +4 -0
- package/dist/{types-BSsb8OPm.d.ts → types-y1Wa95P3.d.ts} +4 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -150,6 +150,7 @@ var CUSTOMER_ATTRIBUTE_KEY = "_discounts_function_env";
|
|
|
150
150
|
var CUSTOMER_SCRIPT_GIFT_KEY = "_giveaway_gradient_gifts";
|
|
151
151
|
var CODE_AMOUNT_KEY = "_sku_code_money";
|
|
152
152
|
var SCRIPT_CODE_AMOUNT_KEY = "_code_money";
|
|
153
|
+
var MEMBER_PRICE_ATTRIBUTE_KEY = "_member_price";
|
|
153
154
|
var MAIN_PRODUCT_CODE = ["WS24", "WSTD", "WS7D", "WSCP", "WSPE", "WSPD"];
|
|
154
155
|
|
|
155
156
|
// src/hooks/cart/utils/normalize-add-to-cart-lines.ts
|
|
@@ -1053,59 +1054,90 @@ function useRemoveCartCodes(options) {
|
|
|
1053
1054
|
);
|
|
1054
1055
|
return useSWRMutation("remove-codes", removeCodes, options);
|
|
1055
1056
|
}
|
|
1056
|
-
|
|
1057
|
-
// src/hooks/cart/utils/add-to-cart.ts
|
|
1058
|
-
var getLinesWithAttributes = ({
|
|
1057
|
+
var initSameLinesAttributes = ({
|
|
1059
1058
|
cart,
|
|
1060
|
-
|
|
1059
|
+
line
|
|
1061
1060
|
}) => {
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1061
|
+
const sameLineInCart = cart?.lineItems.find(
|
|
1062
|
+
(lineInCart) => lineInCart.variant.sku === line.variant?.sku && lineInCart.product?.handle === line.variant?.product?.handle
|
|
1063
|
+
);
|
|
1064
|
+
const codeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
1065
|
+
(attr) => attr.key === CODE_AMOUNT_KEY
|
|
1066
|
+
);
|
|
1067
|
+
const scriptCodeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
1068
|
+
(attr) => attr.key === SCRIPT_CODE_AMOUNT_KEY
|
|
1069
|
+
);
|
|
1070
|
+
let functionAttribute = null;
|
|
1071
|
+
try {
|
|
1072
|
+
functionAttribute = sameLineInCart?.customAttributes?.find(
|
|
1073
|
+
(attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY && JSON.parse(attr.value)?.discounted_amount
|
|
1071
1074
|
);
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1075
|
+
} catch (error) {
|
|
1076
|
+
}
|
|
1077
|
+
if (codeAmountAttribute || functionAttribute || scriptCodeAmountAttribute) {
|
|
1078
|
+
return {
|
|
1079
|
+
...line,
|
|
1080
|
+
attributes: [
|
|
1081
|
+
...line.attributes || [],
|
|
1082
|
+
codeAmountAttribute,
|
|
1083
|
+
functionAttribute,
|
|
1084
|
+
scriptCodeAmountAttribute
|
|
1085
|
+
].filter(Boolean)
|
|
1086
|
+
};
|
|
1087
|
+
}
|
|
1088
|
+
return line;
|
|
1089
|
+
};
|
|
1090
|
+
var initDiscountAttributes = ({ line }) => {
|
|
1091
|
+
let itemAttributes = line.attributes || [];
|
|
1092
|
+
const functionEnvAttribute = itemAttributes.find((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
1093
|
+
if (!functionEnvAttribute) {
|
|
1094
|
+
itemAttributes = itemAttributes.concat([
|
|
1095
|
+
{
|
|
1096
|
+
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
1097
|
+
value: JSON.stringify({
|
|
1098
|
+
is_gift: false,
|
|
1099
|
+
discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
|
|
1100
|
+
})
|
|
1101
|
+
}
|
|
1102
|
+
]);
|
|
1103
|
+
}
|
|
1104
|
+
const memberPriceAttribute = itemAttributes.find(
|
|
1105
|
+
(attr) => attr.key === MEMBER_PRICE_ATTRIBUTE_KEY
|
|
1106
|
+
);
|
|
1107
|
+
const coupon = line.coupon;
|
|
1108
|
+
if (!memberPriceAttribute && coupon) {
|
|
1109
|
+
itemAttributes = itemAttributes.concat([
|
|
1110
|
+
{
|
|
1111
|
+
key: MEMBER_PRICE_ATTRIBUTE_KEY,
|
|
1112
|
+
value: JSON.stringify({ code: coupon.code })
|
|
1113
|
+
}
|
|
1114
|
+
]);
|
|
1115
|
+
}
|
|
1116
|
+
const couponDiscountAttribute = itemAttributes.find(
|
|
1117
|
+
(attr) => attr.key === CODE_AMOUNT_KEY || attr.key === SCRIPT_CODE_AMOUNT_KEY
|
|
1118
|
+
);
|
|
1119
|
+
if (!couponDiscountAttribute && coupon && Number(coupon?.amount) > 0) {
|
|
1120
|
+
itemAttributes = itemAttributes.concat([
|
|
1121
|
+
{
|
|
1122
|
+
key: CODE_AMOUNT_KEY,
|
|
1123
|
+
value: new Decimal2(coupon.amount).times(line.quantity || 1).toString()
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
key: SCRIPT_CODE_AMOUNT_KEY,
|
|
1127
|
+
value: new Decimal2(coupon.amount).times(line.quantity || 1).toString()
|
|
1128
|
+
}
|
|
1129
|
+
]);
|
|
1130
|
+
}
|
|
1131
|
+
return { ...line, attributes: itemAttributes };
|
|
1092
1132
|
};
|
|
1093
|
-
var
|
|
1133
|
+
var getLinesWithAttributes = ({
|
|
1134
|
+
cart,
|
|
1135
|
+
lineItems
|
|
1136
|
+
}) => {
|
|
1094
1137
|
return lineItems.map((line) => {
|
|
1095
|
-
|
|
1096
|
-
const
|
|
1097
|
-
|
|
1098
|
-
itemAttributes = itemAttributes.concat([
|
|
1099
|
-
{
|
|
1100
|
-
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
1101
|
-
value: JSON.stringify({
|
|
1102
|
-
is_gift: false,
|
|
1103
|
-
discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
|
|
1104
|
-
})
|
|
1105
|
-
}
|
|
1106
|
-
]);
|
|
1107
|
-
}
|
|
1108
|
-
return { ...line, attributes: itemAttributes };
|
|
1138
|
+
const sameLine = initSameLinesAttributes({ cart, line });
|
|
1139
|
+
const functionLine = initDiscountAttributes({ line: sameLine });
|
|
1140
|
+
return functionLine;
|
|
1109
1141
|
});
|
|
1110
1142
|
};
|
|
1111
1143
|
|
|
@@ -1134,11 +1166,7 @@ function useAddToCart({ withTrack = true } = {}, swrOptions) {
|
|
|
1134
1166
|
return;
|
|
1135
1167
|
}
|
|
1136
1168
|
performanceAdapter?.addToCartStart();
|
|
1137
|
-
const
|
|
1138
|
-
cart,
|
|
1139
|
-
lineItems
|
|
1140
|
-
});
|
|
1141
|
-
const linesWithFunctionAttributes = getLinesWithFunctionAttributes(linesWithAttributes);
|
|
1169
|
+
const linesWithFunctionAttributes = getLinesWithAttributes({ cart, lineItems });
|
|
1142
1170
|
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1143
1171
|
merchandiseId: item.variant?.id || "",
|
|
1144
1172
|
quantity: item.quantity || 1,
|
|
@@ -1312,13 +1340,15 @@ function useBuyNow({ withTrack = true } = {}, swrOptions) {
|
|
|
1312
1340
|
if (!lineItems || lineItems.length === 0) {
|
|
1313
1341
|
return;
|
|
1314
1342
|
}
|
|
1315
|
-
const linesWithFunctionAttributes =
|
|
1343
|
+
const linesWithFunctionAttributes = getLinesWithAttributes({
|
|
1344
|
+
lineItems
|
|
1345
|
+
});
|
|
1316
1346
|
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1317
1347
|
merchandiseId: item.variant?.id || "",
|
|
1318
1348
|
quantity: item.quantity || 1,
|
|
1319
1349
|
attributes: item.attributes,
|
|
1320
1350
|
sellingPlanId: item.sellingPlanId
|
|
1321
|
-
})).filter((item) => item.merchandiseId
|
|
1351
|
+
})).filter((item) => item.merchandiseId);
|
|
1322
1352
|
if (lines.length === 0) {
|
|
1323
1353
|
return;
|
|
1324
1354
|
}
|
|
@@ -1373,17 +1403,41 @@ function useCalcGiftsFromLines({
|
|
|
1373
1403
|
lines
|
|
1374
1404
|
});
|
|
1375
1405
|
const allGiftLines = useMemo(() => {
|
|
1376
|
-
const functionGiftLines = functionGift.qualifyingGift?.itemsToAdd || []
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
(p) => p.handle === product.handle
|
|
1406
|
+
const functionGiftLines = (functionGift.qualifyingGift?.itemsToAdd || []).map((item) => {
|
|
1407
|
+
const product = functionGift.giftProductsResult?.find(
|
|
1408
|
+
(product2) => product2.handle === item.variant.handle
|
|
1380
1409
|
);
|
|
1381
|
-
const
|
|
1410
|
+
const variants = product?.variants;
|
|
1411
|
+
const variant = Array.isArray(variants) ? variants.find((v) => v.sku === item.variant.sku) : void 0;
|
|
1412
|
+
if (!variant) {
|
|
1413
|
+
console.warn(
|
|
1414
|
+
`Function gift: Variant not found for handle=${item.variant.handle}, sku=${item.variant.sku}`
|
|
1415
|
+
);
|
|
1416
|
+
return null;
|
|
1417
|
+
}
|
|
1418
|
+
return {
|
|
1419
|
+
variant: {
|
|
1420
|
+
...variant,
|
|
1421
|
+
product
|
|
1422
|
+
},
|
|
1423
|
+
quantity: item.quantity ?? 1,
|
|
1424
|
+
attributes: item.attributes
|
|
1425
|
+
};
|
|
1426
|
+
}).filter((item) => item !== null);
|
|
1427
|
+
const scriptGiftLines = scriptGift.freeGiftLevel ? scriptGift.freeGiftLevel.giveawayProducts.map((item) => {
|
|
1428
|
+
const product = scriptGift.giftProductsResult?.find(
|
|
1429
|
+
(product2) => product2.handle === item.handle
|
|
1430
|
+
);
|
|
1431
|
+
const variants = product?.variants;
|
|
1432
|
+
const variant = Array.isArray(variants) ? variants.find((v) => v.sku === item.sku) : void 0;
|
|
1433
|
+
if (!variant) {
|
|
1434
|
+
console.warn(`Script gift: Variant not found for handle=${item.handle}, sku=${item.sku}`);
|
|
1435
|
+
return null;
|
|
1436
|
+
}
|
|
1382
1437
|
return {
|
|
1383
1438
|
variant: {
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
sku: product.sku
|
|
1439
|
+
...variant,
|
|
1440
|
+
product
|
|
1387
1441
|
},
|
|
1388
1442
|
quantity: 1,
|
|
1389
1443
|
attributes: [
|
|
@@ -1393,10 +1447,11 @@ function useCalcGiftsFromLines({
|
|
|
1393
1447
|
}
|
|
1394
1448
|
]
|
|
1395
1449
|
};
|
|
1396
|
-
}).filter((item) => item
|
|
1450
|
+
}).filter((item) => item !== null) : [];
|
|
1397
1451
|
return [...functionGiftLines, ...scriptGiftLines];
|
|
1398
1452
|
}, [
|
|
1399
1453
|
functionGift.qualifyingGift,
|
|
1454
|
+
functionGift.giftProductsResult,
|
|
1400
1455
|
scriptGift.freeGiftLevel,
|
|
1401
1456
|
scriptGift.giftProductsResult,
|
|
1402
1457
|
scriptGiveawayKey
|
|
@@ -3511,6 +3566,6 @@ function useCartContext(options) {
|
|
|
3511
3566
|
return context;
|
|
3512
3567
|
}
|
|
3513
3568
|
|
|
3514
|
-
export { BrowserPerformanceAdapter, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, CartProvider, DeliveryPlusType, MAIN_PRODUCT_CODE, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, ShopifyContext, ShopifyProvider, SpendMoneyType, browserCartCookieAdapter, browserCookieAdapter, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, gaTrack, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, trackAddToCartFBQ, trackAddToCartGA, trackBeginCheckoutGA, trackBuyNowFBQ, trackBuyNowGA, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartContext, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMemberNeedAddToCart, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useShopify, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia };
|
|
3569
|
+
export { BrowserPerformanceAdapter, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, CartProvider, DeliveryPlusType, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, ShopifyContext, ShopifyProvider, SpendMoneyType, browserCartCookieAdapter, browserCookieAdapter, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, gaTrack, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, trackAddToCartFBQ, trackAddToCartGA, trackBeginCheckoutGA, trackBuyNowFBQ, trackBuyNowGA, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartContext, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMemberNeedAddToCart, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useShopify, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia };
|
|
3515
3570
|
//# sourceMappingURL=index.mjs.map
|
|
3516
3571
|
//# sourceMappingURL=index.mjs.map
|