@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/hooks/index.mjs
CHANGED
|
@@ -61,6 +61,7 @@ var CUSTOMER_ATTRIBUTE_KEY = "_discounts_function_env";
|
|
|
61
61
|
var CUSTOMER_SCRIPT_GIFT_KEY = "_giveaway_gradient_gifts";
|
|
62
62
|
var CODE_AMOUNT_KEY = "_sku_code_money";
|
|
63
63
|
var SCRIPT_CODE_AMOUNT_KEY = "_code_money";
|
|
64
|
+
var MEMBER_PRICE_ATTRIBUTE_KEY = "_member_price";
|
|
64
65
|
var MAIN_PRODUCT_CODE = ["WS24", "WSTD", "WS7D", "WSCP", "WSPE", "WSPD"];
|
|
65
66
|
|
|
66
67
|
// src/hooks/cart/utils/normalize-add-to-cart-lines.ts
|
|
@@ -939,59 +940,90 @@ function useRemoveCartCodes(options) {
|
|
|
939
940
|
);
|
|
940
941
|
return useSWRMutation("remove-codes", removeCodes, options);
|
|
941
942
|
}
|
|
942
|
-
|
|
943
|
-
// src/hooks/cart/utils/add-to-cart.ts
|
|
944
|
-
var getLinesWithAttributes = ({
|
|
943
|
+
var initSameLinesAttributes = ({
|
|
945
944
|
cart,
|
|
946
|
-
|
|
945
|
+
line
|
|
947
946
|
}) => {
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
947
|
+
const sameLineInCart = cart?.lineItems.find(
|
|
948
|
+
(lineInCart) => lineInCart.variant.sku === line.variant?.sku && lineInCart.product?.handle === line.variant?.product?.handle
|
|
949
|
+
);
|
|
950
|
+
const codeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
951
|
+
(attr) => attr.key === CODE_AMOUNT_KEY
|
|
952
|
+
);
|
|
953
|
+
const scriptCodeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
954
|
+
(attr) => attr.key === SCRIPT_CODE_AMOUNT_KEY
|
|
955
|
+
);
|
|
956
|
+
let functionAttribute = null;
|
|
957
|
+
try {
|
|
958
|
+
functionAttribute = sameLineInCart?.customAttributes?.find(
|
|
959
|
+
(attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY && JSON.parse(attr.value)?.discounted_amount
|
|
957
960
|
);
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
961
|
+
} catch (error) {
|
|
962
|
+
}
|
|
963
|
+
if (codeAmountAttribute || functionAttribute || scriptCodeAmountAttribute) {
|
|
964
|
+
return {
|
|
965
|
+
...line,
|
|
966
|
+
attributes: [
|
|
967
|
+
...line.attributes || [],
|
|
968
|
+
codeAmountAttribute,
|
|
969
|
+
functionAttribute,
|
|
970
|
+
scriptCodeAmountAttribute
|
|
971
|
+
].filter(Boolean)
|
|
972
|
+
};
|
|
973
|
+
}
|
|
974
|
+
return line;
|
|
975
|
+
};
|
|
976
|
+
var initDiscountAttributes = ({ line }) => {
|
|
977
|
+
let itemAttributes = line.attributes || [];
|
|
978
|
+
const functionEnvAttribute = itemAttributes.find((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
979
|
+
if (!functionEnvAttribute) {
|
|
980
|
+
itemAttributes = itemAttributes.concat([
|
|
981
|
+
{
|
|
982
|
+
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
983
|
+
value: JSON.stringify({
|
|
984
|
+
is_gift: false,
|
|
985
|
+
discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
|
|
986
|
+
})
|
|
987
|
+
}
|
|
988
|
+
]);
|
|
989
|
+
}
|
|
990
|
+
const memberPriceAttribute = itemAttributes.find(
|
|
991
|
+
(attr) => attr.key === MEMBER_PRICE_ATTRIBUTE_KEY
|
|
992
|
+
);
|
|
993
|
+
const coupon = line.coupon;
|
|
994
|
+
if (!memberPriceAttribute && coupon) {
|
|
995
|
+
itemAttributes = itemAttributes.concat([
|
|
996
|
+
{
|
|
997
|
+
key: MEMBER_PRICE_ATTRIBUTE_KEY,
|
|
998
|
+
value: JSON.stringify({ code: coupon.code })
|
|
999
|
+
}
|
|
1000
|
+
]);
|
|
1001
|
+
}
|
|
1002
|
+
const couponDiscountAttribute = itemAttributes.find(
|
|
1003
|
+
(attr) => attr.key === CODE_AMOUNT_KEY || attr.key === SCRIPT_CODE_AMOUNT_KEY
|
|
1004
|
+
);
|
|
1005
|
+
if (!couponDiscountAttribute && coupon && Number(coupon?.amount) > 0) {
|
|
1006
|
+
itemAttributes = itemAttributes.concat([
|
|
1007
|
+
{
|
|
1008
|
+
key: CODE_AMOUNT_KEY,
|
|
1009
|
+
value: new Decimal2(coupon.amount).times(line.quantity || 1).toString()
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
key: SCRIPT_CODE_AMOUNT_KEY,
|
|
1013
|
+
value: new Decimal2(coupon.amount).times(line.quantity || 1).toString()
|
|
1014
|
+
}
|
|
1015
|
+
]);
|
|
1016
|
+
}
|
|
1017
|
+
return { ...line, attributes: itemAttributes };
|
|
978
1018
|
};
|
|
979
|
-
var
|
|
1019
|
+
var getLinesWithAttributes = ({
|
|
1020
|
+
cart,
|
|
1021
|
+
lineItems
|
|
1022
|
+
}) => {
|
|
980
1023
|
return lineItems.map((line) => {
|
|
981
|
-
|
|
982
|
-
const
|
|
983
|
-
|
|
984
|
-
itemAttributes = itemAttributes.concat([
|
|
985
|
-
{
|
|
986
|
-
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
987
|
-
value: JSON.stringify({
|
|
988
|
-
is_gift: false,
|
|
989
|
-
discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
|
|
990
|
-
})
|
|
991
|
-
}
|
|
992
|
-
]);
|
|
993
|
-
}
|
|
994
|
-
return { ...line, attributes: itemAttributes };
|
|
1024
|
+
const sameLine = initSameLinesAttributes({ cart, line });
|
|
1025
|
+
const functionLine = initDiscountAttributes({ line: sameLine });
|
|
1026
|
+
return functionLine;
|
|
995
1027
|
});
|
|
996
1028
|
};
|
|
997
1029
|
|
|
@@ -1020,11 +1052,7 @@ function useAddToCart({ withTrack = true } = {}, swrOptions) {
|
|
|
1020
1052
|
return;
|
|
1021
1053
|
}
|
|
1022
1054
|
performanceAdapter?.addToCartStart();
|
|
1023
|
-
const
|
|
1024
|
-
cart,
|
|
1025
|
-
lineItems
|
|
1026
|
-
});
|
|
1027
|
-
const linesWithFunctionAttributes = getLinesWithFunctionAttributes(linesWithAttributes);
|
|
1055
|
+
const linesWithFunctionAttributes = getLinesWithAttributes({ cart, lineItems });
|
|
1028
1056
|
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1029
1057
|
merchandiseId: item.variant?.id || "",
|
|
1030
1058
|
quantity: item.quantity || 1,
|
|
@@ -1198,13 +1226,15 @@ function useBuyNow({ withTrack = true } = {}, swrOptions) {
|
|
|
1198
1226
|
if (!lineItems || lineItems.length === 0) {
|
|
1199
1227
|
return;
|
|
1200
1228
|
}
|
|
1201
|
-
const linesWithFunctionAttributes =
|
|
1229
|
+
const linesWithFunctionAttributes = getLinesWithAttributes({
|
|
1230
|
+
lineItems
|
|
1231
|
+
});
|
|
1202
1232
|
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1203
1233
|
merchandiseId: item.variant?.id || "",
|
|
1204
1234
|
quantity: item.quantity || 1,
|
|
1205
1235
|
attributes: item.attributes,
|
|
1206
1236
|
sellingPlanId: item.sellingPlanId
|
|
1207
|
-
})).filter((item) => item.merchandiseId
|
|
1237
|
+
})).filter((item) => item.merchandiseId);
|
|
1208
1238
|
if (lines.length === 0) {
|
|
1209
1239
|
return;
|
|
1210
1240
|
}
|
|
@@ -1259,17 +1289,41 @@ function useCalcGiftsFromLines({
|
|
|
1259
1289
|
lines
|
|
1260
1290
|
});
|
|
1261
1291
|
const allGiftLines = useMemo(() => {
|
|
1262
|
-
const functionGiftLines = functionGift.qualifyingGift?.itemsToAdd || []
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
(p) => p.handle === product.handle
|
|
1292
|
+
const functionGiftLines = (functionGift.qualifyingGift?.itemsToAdd || []).map((item) => {
|
|
1293
|
+
const product = functionGift.giftProductsResult?.find(
|
|
1294
|
+
(product2) => product2.handle === item.variant.handle
|
|
1266
1295
|
);
|
|
1267
|
-
const
|
|
1296
|
+
const variants = product?.variants;
|
|
1297
|
+
const variant = Array.isArray(variants) ? variants.find((v) => v.sku === item.variant.sku) : void 0;
|
|
1298
|
+
if (!variant) {
|
|
1299
|
+
console.warn(
|
|
1300
|
+
`Function gift: Variant not found for handle=${item.variant.handle}, sku=${item.variant.sku}`
|
|
1301
|
+
);
|
|
1302
|
+
return null;
|
|
1303
|
+
}
|
|
1304
|
+
return {
|
|
1305
|
+
variant: {
|
|
1306
|
+
...variant,
|
|
1307
|
+
product
|
|
1308
|
+
},
|
|
1309
|
+
quantity: item.quantity ?? 1,
|
|
1310
|
+
attributes: item.attributes
|
|
1311
|
+
};
|
|
1312
|
+
}).filter((item) => item !== null);
|
|
1313
|
+
const scriptGiftLines = scriptGift.freeGiftLevel ? scriptGift.freeGiftLevel.giveawayProducts.map((item) => {
|
|
1314
|
+
const product = scriptGift.giftProductsResult?.find(
|
|
1315
|
+
(product2) => product2.handle === item.handle
|
|
1316
|
+
);
|
|
1317
|
+
const variants = product?.variants;
|
|
1318
|
+
const variant = Array.isArray(variants) ? variants.find((v) => v.sku === item.sku) : void 0;
|
|
1319
|
+
if (!variant) {
|
|
1320
|
+
console.warn(`Script gift: Variant not found for handle=${item.handle}, sku=${item.sku}`);
|
|
1321
|
+
return null;
|
|
1322
|
+
}
|
|
1268
1323
|
return {
|
|
1269
1324
|
variant: {
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
sku: product.sku
|
|
1325
|
+
...variant,
|
|
1326
|
+
product
|
|
1273
1327
|
},
|
|
1274
1328
|
quantity: 1,
|
|
1275
1329
|
attributes: [
|
|
@@ -1279,10 +1333,11 @@ function useCalcGiftsFromLines({
|
|
|
1279
1333
|
}
|
|
1280
1334
|
]
|
|
1281
1335
|
};
|
|
1282
|
-
}).filter((item) => item
|
|
1336
|
+
}).filter((item) => item !== null) : [];
|
|
1283
1337
|
return [...functionGiftLines, ...scriptGiftLines];
|
|
1284
1338
|
}, [
|
|
1285
1339
|
functionGift.qualifyingGift,
|
|
1340
|
+
functionGift.giftProductsResult,
|
|
1286
1341
|
scriptGift.freeGiftLevel,
|
|
1287
1342
|
scriptGift.giftProductsResult,
|
|
1288
1343
|
scriptGiveawayKey
|
|
@@ -3173,6 +3228,6 @@ function clearGeoLocationCache(cacheKey = "geoLocation") {
|
|
|
3173
3228
|
}
|
|
3174
3229
|
}
|
|
3175
3230
|
|
|
3176
|
-
export { BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, DeliveryPlusType, MAIN_PRODUCT_CODE, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, SpendMoneyType, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, 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, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia };
|
|
3231
|
+
export { BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, DeliveryPlusType, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, OrderBasePriceType, OrderDiscountType, PLUS_MEMBER_TYPE, PlusMemberContext, PlusMemberMode, PlusMemberProvider, PriceBasePriceType, PriceDiscountType, RuleType, SCRIPT_CODE_AMOUNT_KEY, ShippingMethodMode, SpendMoneyType, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useAvailableDeliveryCoupon, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, 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, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia };
|
|
3177
3232
|
//# sourceMappingURL=index.mjs.map
|
|
3178
3233
|
//# sourceMappingURL=index.mjs.map
|