@anker-in/shopify-react 0.1.1-beta.21 → 0.1.1-beta.23
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 +245 -210
- package/dist/hooks/index.d.ts +245 -210
- package/dist/hooks/index.js +72 -9
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +71 -8
- 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 +72 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -8
- package/dist/index.mjs.map +1 -1
- package/dist/provider/index.d.mts +1 -2
- package/dist/provider/index.d.ts +1 -2
- package/dist/provider/index.js +9 -7
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/index.mjs +8 -6
- package/dist/provider/index.mjs.map +1 -1
- package/dist/{types-C1So3siD.d.mts → types-BSsb8OPm.d.mts} +1 -34
- package/dist/{types-C1So3siD.d.ts → types-BSsb8OPm.d.ts} +1 -34
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { CartContextValue, CartProvider, CartProviderProps, LoadingState, ShopifyContext, ShopifyContextValue, ShopifyProvider, ShopifyProviderProps, useCartContext, useShopify } from './provider/index.mjs';
|
|
2
2
|
export { C as CookieAdapter, a as CookieOptions, R as RouterAdapter, U as UserContextAdapter } from './types-Dt0DUG00.mjs';
|
|
3
3
|
export { browserCartCookieAdapter, browserCookieAdapter } from './adapters/index.mjs';
|
|
4
|
-
export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddPlusMemberProductsToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.mjs';
|
|
5
|
-
export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA
|
|
4
|
+
export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddPlusMemberProductsToCart, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.mjs';
|
|
5
|
+
export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA } from './types-BSsb8OPm.mjs';
|
|
6
6
|
export * from '@anker-in/shopify-sdk';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'react/jsx-runtime';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { CartContextValue, CartProvider, CartProviderProps, LoadingState, ShopifyContext, ShopifyContextValue, ShopifyProvider, ShopifyProviderProps, useCartContext, useShopify } from './provider/index.js';
|
|
2
2
|
export { C as CookieAdapter, a as CookieOptions, R as RouterAdapter, U as UserContextAdapter } from './types-Dt0DUG00.js';
|
|
3
3
|
export { browserCartCookieAdapter, browserCookieAdapter } from './adapters/index.js';
|
|
4
|
-
export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddPlusMemberProductsToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.js';
|
|
5
|
-
export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA
|
|
4
|
+
export { AddCartLinesInput, ApplyCartCodesInput, AutoFreeGift, AutoFreeGiftCartLineInput, AutoFreeGiftConfig, AutoFreeGiftItem, AutoFreeGiftList, AutoFreeGiftMainProduct, BuyNowInput, BuyRuleType, CODE_AMOUNT_KEY, CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY, Config, CreateCartInput, DiscountLabel, FormattedGift, FunctionGiftResult, GeoLocationData, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MainProductInfo, NormalizedSearchResultItem, Options, OrderBasePriceType, OrderDiscountConfig, OrderDiscountResult, OrderDiscountType, PlusMemberContext, PlusMemberContextValue, PlusMemberProvider, PlusMemberProviderProps, PriceBasePriceType, PriceDiscountConfig, PriceDiscountType, RemoveCartCodesInput, RemoveCartLinesInput, RewardItem, RuleCondition, RuleType, SCRIPT_CODE_AMOUNT_KEY, SearchResult, SearchResultType, SelectedOptionsResult, ShippingMethodsContext, SiteInfo, SpendMoneyType, TieredDiscount, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInCartProps, UseIntersectionOptions, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseScriptAutoFreeGiftResult, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdatePlusMemberDeliveryOptionsProps, VariantItem, VariantMedia, VideoMedia, checkAttributesUpdateNeeded, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getDiscountEnvAttributeValue, getMatchedMainProductSubTotal, getQuery, getReferralAttributes, normalizeAddToCartLines, preCheck, safeParse, useAddCartLines, useAddPlusMemberProductsToCart, useAddToCart, useAllBlogs, useAllCollections, useAllProducts, useApplyCartCodes, useArticle, useArticles, useArticlesInBlog, useAutoRemovePlusMemberInCart, useBlog, useBuyNow, useCalcAutoFreeGift, useCalcGiftsFromLines, useCalcOrderDiscount, useCartAttributes, useCartItemQuantityLimit, useCollection, useCollections, useCreateCart, useExposure, useGeoLocation, useHasPlusMemberInCart, useIntersection, usePlusAnnualProductVariant, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberDeliveryCodes, usePlusMemberItemCustomAttributes, usePlusMonthlyProductVariant, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useScriptAutoFreeGift, useSearch, useSelectedOptions, useShippingMethodAvailableCheck, useShippingMethods, useSite, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdatePlusMemberDeliveryOptions, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.js';
|
|
5
|
+
export { a as AddToCartInput, A as AddToCartLineItem, B as BuyNowTrackConfig, g as DeliveryCustomData, h as DeliveryData, D as DeliveryPlusType, G as GtmParams, P as PLUS_MEMBER_TYPE, b as PlusMemberMode, e as PlusMemberSettingsMetafields, d as PlusMemberShippingMethodConfig, c as PlusMemberShippingMethodMetafields, f as SelectedPlusMemberProduct, S as ShippingMethodMode, U as UseAddToCartOptions, i as gaTrack, l as trackAddToCartFBQ, t as trackAddToCartGA, j as trackBeginCheckoutGA, m as trackBuyNowFBQ, k as trackBuyNowGA } from './types-BSsb8OPm.js';
|
|
6
6
|
export * from '@anker-in/shopify-sdk';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'react/jsx-runtime';
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ var shopifySdk = require('@anker-in/shopify-sdk');
|
|
|
5
5
|
var Cookies5 = require('js-cookie');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
var Decimal2 = require('decimal.js');
|
|
8
|
+
var shopifyCore = require('@anker-in/shopify-core');
|
|
8
9
|
var useSWR = require('swr');
|
|
9
10
|
var useSWRMutation = require('swr/mutation');
|
|
10
11
|
var ahooks = require('ahooks');
|
|
@@ -148,9 +149,10 @@ function normalizeAddToCartLines(lines) {
|
|
|
148
149
|
const variant = line.variant;
|
|
149
150
|
const product = variant.product;
|
|
150
151
|
const quantity = line.quantity || 1;
|
|
151
|
-
const
|
|
152
|
-
const
|
|
153
|
-
const
|
|
152
|
+
const originalPrice = variant.compareAtPrice?.amount ? Number(variant.compareAtPrice.amount) : variant.price?.amount ? Number(variant.price.amount) : 0;
|
|
153
|
+
const finalPrice = variant.finalPrice?.amount ? Number(variant.finalPrice.amount) : originalPrice;
|
|
154
|
+
const subtotalAmount = originalPrice * quantity;
|
|
155
|
+
const totalAmount = finalPrice * quantity;
|
|
154
156
|
return {
|
|
155
157
|
id: `temp-line-${index}-${variant.id}`,
|
|
156
158
|
// Temporary ID for pre-cart lines
|
|
@@ -164,7 +166,7 @@ function normalizeAddToCartLines(lines) {
|
|
|
164
166
|
customAttributes: line.attributes || [],
|
|
165
167
|
variant: {
|
|
166
168
|
id: variant.id,
|
|
167
|
-
price,
|
|
169
|
+
price: variant.price?.amount ? Number(variant.price.amount) : 0,
|
|
168
170
|
listPrice: variant.compareAtPrice?.amount ? Number(variant.compareAtPrice.amount) : 0,
|
|
169
171
|
sku: variant.sku || "",
|
|
170
172
|
name: variant.title || "",
|
|
@@ -241,7 +243,7 @@ var getMatchedMainProductSubTotal = (cartData, variant_list, main_product) => {
|
|
|
241
243
|
const matchedList = cartData?.lineItems?.filter((line) => {
|
|
242
244
|
const { is_gift } = getDiscountEnvAttributeValue(line.customAttributes);
|
|
243
245
|
return isAllStoreVariant ? !is_gift : variant_list?.find((item) => {
|
|
244
|
-
return !is_gift &&
|
|
246
|
+
return !is_gift && shopifyCore.atobID(line.variantId) === item;
|
|
245
247
|
});
|
|
246
248
|
});
|
|
247
249
|
return matchedList?.reduce((acc, line) => {
|
|
@@ -493,7 +495,7 @@ var useCalcAutoFreeGift = (cart, autoFreeGiftConfig, customer, lines) => {
|
|
|
493
495
|
if (!giftProduct) return null;
|
|
494
496
|
return {
|
|
495
497
|
variant: {
|
|
496
|
-
id:
|
|
498
|
+
id: shopifyCore.btoaID(giftProduct.variant_id),
|
|
497
499
|
handle: giftProduct.handle,
|
|
498
500
|
sku: giftProduct.sku
|
|
499
501
|
},
|
|
@@ -1006,6 +1008,61 @@ function useRemoveCartCodes(options) {
|
|
|
1006
1008
|
return useSWRMutation__default.default("remove-codes", removeCodes, options);
|
|
1007
1009
|
}
|
|
1008
1010
|
|
|
1011
|
+
// src/hooks/cart/utils/add-to-cart.ts
|
|
1012
|
+
var getLinesWithAttributes = ({
|
|
1013
|
+
cart,
|
|
1014
|
+
lineItems
|
|
1015
|
+
}) => {
|
|
1016
|
+
return lineItems.map((line) => {
|
|
1017
|
+
const sameLineInCart = cart?.lineItems.find(
|
|
1018
|
+
(lineInCart) => lineInCart.variant.sku === line.variant?.sku && lineInCart.product?.handle === line.variant?.product?.handle
|
|
1019
|
+
);
|
|
1020
|
+
const codeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
1021
|
+
(attr) => attr.key === CODE_AMOUNT_KEY
|
|
1022
|
+
);
|
|
1023
|
+
const scriptCodeAmountAttribute = sameLineInCart?.customAttributes?.find(
|
|
1024
|
+
(attr) => attr.key === SCRIPT_CODE_AMOUNT_KEY
|
|
1025
|
+
);
|
|
1026
|
+
let functionAttribute = null;
|
|
1027
|
+
try {
|
|
1028
|
+
functionAttribute = sameLineInCart?.customAttributes?.find(
|
|
1029
|
+
(attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY && JSON.parse(attr.value)?.discounted_amount
|
|
1030
|
+
);
|
|
1031
|
+
} catch (error) {
|
|
1032
|
+
}
|
|
1033
|
+
if (codeAmountAttribute || functionAttribute || scriptCodeAmountAttribute) {
|
|
1034
|
+
return {
|
|
1035
|
+
...line,
|
|
1036
|
+
attributes: [
|
|
1037
|
+
...line.attributes || [],
|
|
1038
|
+
codeAmountAttribute,
|
|
1039
|
+
functionAttribute,
|
|
1040
|
+
scriptCodeAmountAttribute
|
|
1041
|
+
].filter(Boolean)
|
|
1042
|
+
};
|
|
1043
|
+
}
|
|
1044
|
+
return line;
|
|
1045
|
+
});
|
|
1046
|
+
};
|
|
1047
|
+
var getLinesWithFunctionAttributes = (lineItems) => {
|
|
1048
|
+
return lineItems.map((line) => {
|
|
1049
|
+
let itemAttributes = line.attributes || [];
|
|
1050
|
+
const functionEnvAttribute = itemAttributes.find((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY);
|
|
1051
|
+
if (!functionEnvAttribute) {
|
|
1052
|
+
itemAttributes = itemAttributes.concat([
|
|
1053
|
+
{
|
|
1054
|
+
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
1055
|
+
value: JSON.stringify({
|
|
1056
|
+
is_gift: false,
|
|
1057
|
+
discounted_amount: Number(line.variant?.finalPrice?.amount || line.variant?.price?.amount) * (line.quantity || 1)
|
|
1058
|
+
})
|
|
1059
|
+
}
|
|
1060
|
+
]);
|
|
1061
|
+
}
|
|
1062
|
+
return { ...line, attributes: itemAttributes };
|
|
1063
|
+
});
|
|
1064
|
+
};
|
|
1065
|
+
|
|
1009
1066
|
// src/hooks/cart/use-add-to-cart.ts
|
|
1010
1067
|
function useAddToCart({ withTrack = true } = {}, swrOptions) {
|
|
1011
1068
|
const { client, config, locale, cartCookieAdapter, userAdapter } = useShopify();
|
|
@@ -1029,7 +1086,12 @@ function useAddToCart({ withTrack = true } = {}, swrOptions) {
|
|
|
1029
1086
|
if (!lineItems || lineItems.length === 0) {
|
|
1030
1087
|
return;
|
|
1031
1088
|
}
|
|
1032
|
-
const
|
|
1089
|
+
const linesWithAttributes = getLinesWithAttributes({
|
|
1090
|
+
cart,
|
|
1091
|
+
lineItems
|
|
1092
|
+
});
|
|
1093
|
+
const linesWithFunctionAttributes = getLinesWithFunctionAttributes(linesWithAttributes);
|
|
1094
|
+
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1033
1095
|
merchandiseId: item.variant?.id || "",
|
|
1034
1096
|
quantity: item.quantity || 1,
|
|
1035
1097
|
attributes: item.attributes,
|
|
@@ -1180,7 +1242,8 @@ function useBuyNow({ withTrack = true } = {}, swrOptions) {
|
|
|
1180
1242
|
if (!lineItems || lineItems.length === 0) {
|
|
1181
1243
|
return;
|
|
1182
1244
|
}
|
|
1183
|
-
const
|
|
1245
|
+
const linesWithFunctionAttributes = getLinesWithFunctionAttributes(lineItems);
|
|
1246
|
+
const lines = linesWithFunctionAttributes.map((item) => ({
|
|
1184
1247
|
merchandiseId: item.variant?.id || "",
|
|
1185
1248
|
quantity: item.quantity || 1,
|
|
1186
1249
|
attributes: item.attributes,
|
|
@@ -1633,7 +1696,7 @@ var useUpdateLineCodeAmountAttributes = ({
|
|
|
1633
1696
|
);
|
|
1634
1697
|
const functionEnvValue = getDiscountEnvAttributeValue(line.customAttributes);
|
|
1635
1698
|
const hasSameFunctionEnvAttribute = Number(functionEnvValue.discounted_amount) === Number(line.totalAmount);
|
|
1636
|
-
if (!hasSameFunctionEnvAttribute && hasFunctionEnvAttribute) {
|
|
1699
|
+
if (!hasSameFunctionEnvAttribute && hasFunctionEnvAttribute && !functionEnvValue.is_gift) {
|
|
1637
1700
|
attrNeedUpdate.push({
|
|
1638
1701
|
key: CUSTOMER_ATTRIBUTE_KEY,
|
|
1639
1702
|
value: JSON.stringify({
|