@anker-in/shopify-react 1.2.2-beta.3 → 1.2.2-beta.5

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/index.d.mts CHANGED
@@ -2,7 +2,7 @@ export { AppContext, CartContextValue, CartProvider, CartProviderProps, LoadingS
2
2
  export { C as CookieAdapter, a as CookieOptions, P as PerformanceAdapter, R as RouterAdapter, U as UserContextAdapter } from './types-SKDHauqk.mjs';
3
3
  export { BrowserPerformanceAdapter, browserCartCookieAdapter, browserCookieAdapter } from './adapters/index.mjs';
4
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, GetCartAttributesProps, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartProps, HasPlusMemberInCartResult, HasPlusMemberInLinesResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, 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, UpdateBuyerIdentityInput, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseAvailableDeliveryCouponResult, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInLinesProps, UseIntersectionOptions, UsePlusMemberVariantsOptions, UsePlusMemberVariantsResult, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdateBuyerIdentityOptions, UseUpdateCartAttributesOptions, VariantItem, VariantMedia, VideoMedia, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getCartBasicAttributes, getDiscountEnvAttributeValue, getGA4Attributes, getGA4AttributesAsync, getMatchedMainProductSubTotal, getOperatingSystem, getQuery, getReferralAttributes, getUserType, hasPlusMemberInCart, hasPlusMemberInLines, 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, useHasPlusMemberInLines, useIntersection, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberNeedAddToCart, usePlusMemberVariants, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useSearch, useSelectedOptions, useShippingMethods, useSite, useUpdateBuyerIdentity, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.mjs';
5
- export { g as AddToCartInput, A as AddToCartLineItem, C as BuyNowTrackConfig, p as DeliveryCustomData, D as DeliveryPlusType, v as GA4Data, G as GtmParams, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, n as PlusMemberSettingsMetafields, m as PlusMemberShippingMethodConfig, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, o as SelectedPlusMemberVariant, k as ShippingMethodMode, h as UseAddToCartOptions, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, e as UseScriptAutoFreeGiftResult, q as gaTrack, x as getGA4ClientId, z as getGA4Data, y as getGA4SessionId, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, B as trackAddToCartFBQ, t as trackAddToCartGA, r as trackBeginCheckoutGA, E as trackBuyNowFBQ, s as trackBuyNowGA, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift, w as waitForGtagReady } from './types-C4qc-wG4.mjs';
5
+ export { g as AddToCartInput, A as AddToCartLineItem, C as BuyNowTrackConfig, p as DeliveryCustomData, D as DeliveryPlusType, v as GA4Data, G as GtmParams, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, n as PlusMemberSettingsMetafields, m as PlusMemberShippingMethodConfig, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, o as SelectedPlusMemberVariant, k as ShippingMethodMode, h as UseAddToCartOptions, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, e as UseScriptAutoFreeGiftResult, q as gaTrack, x as getGA4ClientId, z as getGA4Data, y as getGA4SessionId, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, B as trackAddToCartFBQ, t as trackAddToCartGA, r as trackBeginCheckoutGA, E as trackBuyNowFBQ, s as trackBuyNowGA, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift, w as waitForGtagReady } from './types-DnDvCDW-.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
@@ -2,7 +2,7 @@ export { AppContext, CartContextValue, CartProvider, CartProviderProps, LoadingS
2
2
  export { C as CookieAdapter, a as CookieOptions, P as PerformanceAdapter, R as RouterAdapter, U as UserContextAdapter } from './types-SKDHauqk.js';
3
3
  export { BrowserPerformanceAdapter, browserCartCookieAdapter, browserCookieAdapter } from './adapters/index.js';
4
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, GetCartAttributesProps, GiftProduct, GiftProductItem, GiftTier, HasPlusMemberInCartProps, HasPlusMemberInCartResult, HasPlusMemberInLinesResult, ImageMedia, LocaleMapping, MAIN_PRODUCT_CODE, MEMBER_PRICE_ATTRIBUTE_KEY, 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, UpdateBuyerIdentityInput, UpdateCartAttributesInput, UseAllBlogsOptions, UseAllCollectionsOptions, UseAllProductsOptions, UseArticleOptions, UseArticlesInBlogOptions, UseArticlesOptions, UseAutoRemovePlusMemberInCartProps, UseAvailableDeliveryCouponResult, UseBlogOptions, UseBuyNowOptions, UseCalcGiftsFromLinesOptions, UseCalcGiftsFromLinesResult, UseCollectionOptions, UseCollectionsOptions, UseExposureOptions, UseGeoLocationOptions, UseHasPlusMemberInLinesProps, UseIntersectionOptions, UsePlusMemberVariantsOptions, UsePlusMemberVariantsResult, UsePriceOptions, UsePriceResult, UseProductOptions, UseProductsByHandlesOptions, UseSearchOptions, UseShippingMethodsOptions, UseShippingMethodsResult, UseSiteOptions, UseUpdateBuyerIdentityOptions, UseUpdateCartAttributesOptions, VariantItem, VariantMedia, VideoMedia, clearGeoLocationCache, createMockCartFromLines, currencyCodeMapping, defaultSWRMutationConfiguration, formatFunctionAutoFreeGift, formatScriptAutoFreeGift, getCachedGeoLocation, getCartBasicAttributes, getDiscountEnvAttributeValue, getGA4Attributes, getGA4AttributesAsync, getMatchedMainProductSubTotal, getOperatingSystem, getQuery, getReferralAttributes, getUserType, hasPlusMemberInCart, hasPlusMemberInLines, 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, useHasPlusMemberInLines, useIntersection, usePlusMemberCheckoutCustomAttributes, usePlusMemberContext, usePlusMemberNeedAddToCart, usePlusMemberVariants, usePrice, useProduct, useProductUrl, useProductsByHandles, useRemoveCartCodes, useRemoveCartLines, useReplaceCartPlusMember, useSearch, useSelectedOptions, useShippingMethods, useSite, useUpdateBuyerIdentity, useUpdateCartAttributes, useUpdateCartLines, useUpdateLineCodeAmountAttributes, useUpdateVariantQuery, useVariant, useVariantMedia } from './hooks/index.js';
5
- export { g as AddToCartInput, A as AddToCartLineItem, C as BuyNowTrackConfig, p as DeliveryCustomData, D as DeliveryPlusType, v as GA4Data, G as GtmParams, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, n as PlusMemberSettingsMetafields, m as PlusMemberShippingMethodConfig, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, o as SelectedPlusMemberVariant, k as ShippingMethodMode, h as UseAddToCartOptions, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, e as UseScriptAutoFreeGiftResult, q as gaTrack, x as getGA4ClientId, z as getGA4Data, y as getGA4SessionId, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, B as trackAddToCartFBQ, t as trackAddToCartGA, r as trackBeginCheckoutGA, E as trackBuyNowFBQ, s as trackBuyNowGA, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift, w as waitForGtagReady } from './types-C4qc-wG4.js';
5
+ export { g as AddToCartInput, A as AddToCartLineItem, C as BuyNowTrackConfig, p as DeliveryCustomData, D as DeliveryPlusType, v as GA4Data, G as GtmParams, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, n as PlusMemberSettingsMetafields, m as PlusMemberShippingMethodConfig, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, o as SelectedPlusMemberVariant, k as ShippingMethodMode, h as UseAddToCartOptions, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, e as UseScriptAutoFreeGiftResult, q as gaTrack, x as getGA4ClientId, z as getGA4Data, y as getGA4SessionId, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, B as trackAddToCartFBQ, t as trackAddToCartGA, r as trackBeginCheckoutGA, E as trackBuyNowFBQ, s as trackBuyNowGA, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift, w as waitForGtagReady } from './types-DnDvCDW-.js';
6
6
  export * from '@anker-in/shopify-sdk';
7
7
  import 'react';
8
8
  import 'react/jsx-runtime';
package/dist/index.js CHANGED
@@ -866,17 +866,11 @@ var trackAddToCartGA = ({
866
866
  lineItems = [],
867
867
  gtmParams = {}
868
868
  }) => {
869
- if (!lineItems.length || !lineItems[0]?.variant) {
869
+ if (!lineItems.length) {
870
870
  return;
871
871
  }
872
- const { variant } = lineItems[0];
873
- const currencyCode = variant.product?.price?.currencyCode;
874
- const totalPrice = lineItems?.reduce(
875
- (prev, { variant: variant2 }) => prev.plus(
876
- variant2?.finalPrice?.amount === void 0 ? Number(variant2?.price?.amount) || 0 : Number(variant2?.finalPrice?.amount) || 0
877
- ),
878
- new Decimal2__default.default(0)
879
- ).toNumber();
872
+ const currencyCode = lineItems[0].product?.price?.currencyCode;
873
+ const totalPrice = lineItems.reduce((prev, item) => prev.plus(item.variant.price || 0), new Decimal2__default.default(0)).toNumber();
880
874
  gaTrack({
881
875
  event: "ga4Event",
882
876
  event_name: "add_to_cart",
@@ -886,19 +880,19 @@ var trackAddToCartGA = ({
886
880
  value: totalPrice,
887
881
  position: gtmParams?.position || "",
888
882
  items: lineItems.map((item) => {
889
- const imageUrl = item.variant?.image?.url || item.variant?.product?.images?.[0]?.url;
883
+ const imageUrl = item.variant.image?.url || item.product?.images?.[0]?.url;
890
884
  const itemCategoryId = item.gtmParams?.item_category_id;
891
- const itemVariantId = item.variant?.id ? shopifyCore.atobID(item.variant.id) : void 0;
885
+ const itemVariantId = item.variant.id ? shopifyCore.atobID(item.variant.id) : void 0;
892
886
  return {
893
- item_id: item.variant?.sku,
894
- item_name: item.variant?.product?.title || item.variant?.product?.title,
887
+ item_id: item.variant.sku,
888
+ item_name: item.product?.title,
895
889
  item_brand: gtmParams?.brand || "",
896
- item_category: item.variant?.product?.productType || "",
897
- item_variant: item.variant?.title || item.variant?.title,
898
- price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
890
+ item_category: item.product?.productType || "",
891
+ item_variant: item.variant.name,
892
+ price: item.variant.listPrice ?? item.variant.price,
899
893
  quantity: item.quantity || 1,
900
894
  ...imageUrl && { image_url: imageUrl },
901
- ...itemCategoryId && { item_category_id: itemCategoryId },
895
+ ...itemCategoryId !== void 0 && { item_category_id: itemCategoryId },
902
896
  ...itemVariantId && { item_variant_id: itemVariantId }
903
897
  };
904
898
  }),
@@ -1079,21 +1073,24 @@ var getGA4Data = async (measurementId = "G-R0BRMRK4CY") => {
1079
1073
  };
1080
1074
 
1081
1075
  // src/tracking/fbq.ts
1082
- var trackAddToCartFBQ = ({ lineItems = [] }) => {
1076
+ var trackAddToCartFBQ = ({
1077
+ lineItems = []
1078
+ }) => {
1083
1079
  if (typeof window === "undefined" || !window.fbq) {
1084
1080
  return;
1085
1081
  }
1086
- if (lineItems.length && lineItems[0]?.variant) {
1087
- const { variant, quantity } = lineItems[0];
1082
+ if (lineItems.length) {
1083
+ const item = lineItems[0];
1084
+ const { variant, quantity, product } = item;
1088
1085
  try {
1089
1086
  window.fbq("track", "AddToCart", {
1090
- value: variant?.compareAtPrice?.amount ?? (variant?.price?.amount || variant?.price || 0),
1087
+ value: variant.listPrice || variant.price,
1091
1088
  num_items: quantity,
1092
- currency: variant?.price?.currencyCode,
1093
- content_name: variant?.product?.title,
1089
+ currency: product?.price?.currencyCode,
1090
+ content_name: product?.title,
1094
1091
  content_type: "product_group",
1095
- content_ids: String(variant?.id),
1096
- content_category: variant?.product?.metafields?.global?.trafficType || "public"
1092
+ content_ids: String(variant.id),
1093
+ content_category: product?.metafields?.global?.trafficType || "public"
1097
1094
  });
1098
1095
  } catch (error) {
1099
1096
  console.error("FBQ tracking error:", error);
@@ -1178,7 +1175,7 @@ var initSameLinesAttributes = ({
1178
1175
  line
1179
1176
  }) => {
1180
1177
  const sameLineInCart = cart?.lineItems.find(
1181
- (lineInCart) => lineInCart.variant.sku === line.variant?.sku && lineInCart.product?.handle === line.variant?.product?.handle
1178
+ (lineInCart) => lineInCart.variant.id === line.variant?.id
1182
1179
  );
1183
1180
  const codeAmountAttribute = sameLineInCart?.customAttributes?.find(
1184
1181
  (attr) => attr.key === CODE_AMOUNT_KEY
@@ -1209,13 +1206,14 @@ var initSameLinesAttributes = ({
1209
1206
  var initDiscountAttributes = ({ line }) => {
1210
1207
  let itemAttributes = line.attributes || [];
1211
1208
  const functionEnvAttribute = itemAttributes.find((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY);
1212
- if (!functionEnvAttribute) {
1209
+ const priceAmount = line.variant?.finalPrice?.amount ?? line.variant?.price?.amount;
1210
+ if (!functionEnvAttribute && priceAmount !== void 0 && priceAmount !== null) {
1213
1211
  itemAttributes = itemAttributes.concat([
1214
1212
  {
1215
1213
  key: CUSTOMER_ATTRIBUTE_KEY,
1216
1214
  value: JSON.stringify({
1217
1215
  is_gift: false,
1218
- discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
1216
+ discounted_amount: new Decimal2__default.default(priceAmount).times(line.quantity || 1).toNumber()
1219
1217
  })
1220
1218
  }
1221
1219
  ]);
@@ -2554,12 +2552,25 @@ function useAddToCart({ withTrack = true } = {}, swrOptions) {
2554
2552
  addCustomAttributes(customAttributes);
2555
2553
  }
2556
2554
  }
2557
- if (withTrack) {
2555
+ if (withTrack && resultCart) {
2556
+ const trackingLineItems = lineItems.map((inputLine) => {
2557
+ const cartLine = resultCart.lineItems.find(
2558
+ (line) => line.variant.id === inputLine.variant?.id
2559
+ );
2560
+ if (!cartLine) {
2561
+ return null;
2562
+ }
2563
+ return {
2564
+ ...cartLine,
2565
+ quantity: inputLine.quantity,
2566
+ gtmParams: inputLine.gtmParams
2567
+ };
2568
+ }).filter(Boolean);
2558
2569
  trackAddToCartGA({
2559
- lineItems,
2570
+ lineItems: trackingLineItems,
2560
2571
  gtmParams: { ...gtmParams, brand: config.getBrand() }
2561
2572
  });
2562
- trackAddToCartFBQ({ lineItems });
2573
+ trackAddToCartFBQ({ lineItems: trackingLineItems });
2563
2574
  }
2564
2575
  performanceAdapter?.addToCartEnd();
2565
2576
  return resultCart;