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

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.
@@ -2,8 +2,8 @@ import * as swr_mutation from 'swr/mutation';
2
2
  import { SWRMutationConfiguration } from 'swr/mutation';
3
3
  import * as _anker_in_shopify_sdk from '@anker-in/shopify-sdk';
4
4
  import { CartLineInput, NormalizedCart, NormalizedProduct, NormalizedProductVariant, NormalizedLineItem, UpdateCartLinesOptions, HasMetafieldsIdentifier, Media, NormalizedCollection, CollectionsConnection, NormalizedBlog, NormalizedArticle, NormalizedAttribute } from '@anker-in/shopify-sdk';
5
- import { h as UseAddToCartOptions, g as AddToCartInput, A as AddToCartLineItem, G as GtmParams, C as BuyNowTrackConfig, e as UseScriptAutoFreeGiftResult, m as PlusMemberShippingMethodConfig, n as PlusMemberSettingsMetafields, D as DeliveryPlusType, o as SelectedPlusMemberVariant } from '../types-C4qc-wG4.mjs';
6
- export { p as DeliveryCustomData, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, k as ShippingMethodMode, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift } from '../types-C4qc-wG4.mjs';
5
+ import { h as UseAddToCartOptions, g as AddToCartInput, A as AddToCartLineItem, G as GtmParams, C as BuyNowTrackConfig, e as UseScriptAutoFreeGiftResult, m as PlusMemberShippingMethodConfig, n as PlusMemberSettingsMetafields, D as DeliveryPlusType, o as SelectedPlusMemberVariant } from '../types-DnDvCDW-.mjs';
6
+ export { p as DeliveryCustomData, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, k as ShippingMethodMode, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift } from '../types-DnDvCDW-.mjs';
7
7
  import * as swr from 'swr';
8
8
  import swr__default, { SWRConfiguration } from 'swr';
9
9
  import * as swr__internal from 'swr/_internal';
@@ -2,8 +2,8 @@ import * as swr_mutation from 'swr/mutation';
2
2
  import { SWRMutationConfiguration } from 'swr/mutation';
3
3
  import * as _anker_in_shopify_sdk from '@anker-in/shopify-sdk';
4
4
  import { CartLineInput, NormalizedCart, NormalizedProduct, NormalizedProductVariant, NormalizedLineItem, UpdateCartLinesOptions, HasMetafieldsIdentifier, Media, NormalizedCollection, CollectionsConnection, NormalizedBlog, NormalizedArticle, NormalizedAttribute } from '@anker-in/shopify-sdk';
5
- import { h as UseAddToCartOptions, g as AddToCartInput, A as AddToCartLineItem, G as GtmParams, C as BuyNowTrackConfig, e as UseScriptAutoFreeGiftResult, m as PlusMemberShippingMethodConfig, n as PlusMemberSettingsMetafields, D as DeliveryPlusType, o as SelectedPlusMemberVariant } from '../types-C4qc-wG4.js';
6
- export { p as DeliveryCustomData, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, k as ShippingMethodMode, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift } from '../types-C4qc-wG4.js';
5
+ import { h as UseAddToCartOptions, g as AddToCartInput, A as AddToCartLineItem, G as GtmParams, C as BuyNowTrackConfig, e as UseScriptAutoFreeGiftResult, m as PlusMemberShippingMethodConfig, n as PlusMemberSettingsMetafields, D as DeliveryPlusType, o as SelectedPlusMemberVariant } from '../types-DnDvCDW-.js';
6
+ export { p as DeliveryCustomData, P as PLUS_MEMBER_TYPE, j as PlusMemberMode, l as PlusMemberShippingMethodMetafields, S as ScriptAutoFreeGiftConfig, k as ShippingMethodMode, U as UseAutoRemoveFreeGiftsOptions, a as UseAutoRemoveFreeGiftsResult, d as isAnyGift, c as isBuyGetGift, i as isFunctionGift, b as isScriptGift, u as useAutoRemoveFreeGifts, f as useScriptAutoFreeGift } from '../types-DnDvCDW-.js';
7
7
  import * as swr from 'swr';
8
8
  import swr__default, { SWRConfiguration } from 'swr';
9
9
  import * as swr__internal from 'swr/_internal';
@@ -778,17 +778,11 @@ var trackAddToCartGA = ({
778
778
  lineItems = [],
779
779
  gtmParams = {}
780
780
  }) => {
781
- if (!lineItems.length || !lineItems[0]?.variant) {
781
+ if (!lineItems.length) {
782
782
  return;
783
783
  }
784
- const { variant } = lineItems[0];
785
- const currencyCode = variant.product?.price?.currencyCode;
786
- const totalPrice = lineItems?.reduce(
787
- (prev, { variant: variant2 }) => prev.plus(
788
- variant2?.finalPrice?.amount === void 0 ? Number(variant2?.price?.amount) || 0 : Number(variant2?.finalPrice?.amount) || 0
789
- ),
790
- new Decimal2__default.default(0)
791
- ).toNumber();
784
+ const currencyCode = lineItems[0].product?.price?.currencyCode;
785
+ const totalPrice = lineItems.reduce((prev, item) => prev.plus(item.variant.price || 0), new Decimal2__default.default(0)).toNumber();
792
786
  gaTrack({
793
787
  event: "ga4Event",
794
788
  event_name: "add_to_cart",
@@ -798,19 +792,19 @@ var trackAddToCartGA = ({
798
792
  value: totalPrice,
799
793
  position: gtmParams?.position || "",
800
794
  items: lineItems.map((item) => {
801
- const imageUrl = item.variant?.image?.url || item.variant?.product?.images?.[0]?.url;
795
+ const imageUrl = item.variant.image?.url || item.product?.images?.[0]?.url;
802
796
  const itemCategoryId = item.gtmParams?.item_category_id;
803
- const itemVariantId = item.variant?.id ? shopifyCore.atobID(item.variant.id) : void 0;
797
+ const itemVariantId = item.variant.id ? shopifyCore.atobID(item.variant.id) : void 0;
804
798
  return {
805
- item_id: item.variant?.sku,
806
- item_name: item.variant?.product?.title || item.variant?.product?.title,
799
+ item_id: item.variant.sku,
800
+ item_name: item.product?.title,
807
801
  item_brand: gtmParams?.brand || "",
808
- item_category: item.variant?.product?.productType || "",
809
- item_variant: item.variant?.title || item.variant?.title,
810
- price: item.variant?.compareAtPrice?.amount ?? item.variant?.price?.amount,
802
+ item_category: item.product?.productType || "",
803
+ item_variant: item.variant.name,
804
+ price: item.variant.listPrice ?? item.variant.price,
811
805
  quantity: item.quantity || 1,
812
806
  ...imageUrl && { image_url: imageUrl },
813
- ...itemCategoryId && { item_category_id: itemCategoryId },
807
+ ...itemCategoryId !== void 0 && { item_category_id: itemCategoryId },
814
808
  ...itemVariantId && { item_variant_id: itemVariantId }
815
809
  };
816
810
  }),
@@ -910,21 +904,24 @@ var getGA4Data = async (measurementId = "G-R0BRMRK4CY") => {
910
904
  };
911
905
 
912
906
  // src/tracking/fbq.ts
913
- var trackAddToCartFBQ = ({ lineItems = [] }) => {
907
+ var trackAddToCartFBQ = ({
908
+ lineItems = []
909
+ }) => {
914
910
  if (typeof window === "undefined" || !window.fbq) {
915
911
  return;
916
912
  }
917
- if (lineItems.length && lineItems[0]?.variant) {
918
- const { variant, quantity } = lineItems[0];
913
+ if (lineItems.length) {
914
+ const item = lineItems[0];
915
+ const { variant, quantity, product } = item;
919
916
  try {
920
917
  window.fbq("track", "AddToCart", {
921
- value: variant?.compareAtPrice?.amount ?? (variant?.price?.amount || variant?.price || 0),
918
+ value: variant.listPrice || variant.price,
922
919
  num_items: quantity,
923
- currency: variant?.price?.currencyCode,
924
- content_name: variant?.product?.title,
920
+ currency: product?.price?.currencyCode,
921
+ content_name: product?.title,
925
922
  content_type: "product_group",
926
- content_ids: String(variant?.id),
927
- content_category: variant?.product?.metafields?.global?.trafficType || "public"
923
+ content_ids: String(variant.id),
924
+ content_category: product?.metafields?.global?.trafficType || "public"
928
925
  });
929
926
  } catch (error) {
930
927
  console.error("FBQ tracking error:", error);
@@ -1040,13 +1037,14 @@ var initSameLinesAttributes = ({
1040
1037
  var initDiscountAttributes = ({ line }) => {
1041
1038
  let itemAttributes = line.attributes || [];
1042
1039
  const functionEnvAttribute = itemAttributes.find((attr) => attr.key === CUSTOMER_ATTRIBUTE_KEY);
1043
- if (!functionEnvAttribute) {
1040
+ const priceAmount = line.variant?.finalPrice?.amount ?? line.variant?.price?.amount;
1041
+ if (!functionEnvAttribute && priceAmount !== void 0 && priceAmount !== null) {
1044
1042
  itemAttributes = itemAttributes.concat([
1045
1043
  {
1046
1044
  key: CUSTOMER_ATTRIBUTE_KEY,
1047
1045
  value: JSON.stringify({
1048
1046
  is_gift: false,
1049
- discounted_amount: line.variant?.finalPrice?.amount === void 0 ? Number(line.variant?.price?.amount) * (line.quantity || 1) : Number(line.variant?.finalPrice?.amount) * (line.quantity || 1)
1047
+ discounted_amount: new Decimal2__default.default(priceAmount).times(line.quantity || 1).toNumber()
1050
1048
  })
1051
1049
  }
1052
1050
  ]);
@@ -2385,12 +2383,25 @@ function useAddToCart({ withTrack = true } = {}, swrOptions) {
2385
2383
  addCustomAttributes(customAttributes);
2386
2384
  }
2387
2385
  }
2388
- if (withTrack) {
2386
+ if (withTrack && resultCart) {
2387
+ const trackingLineItems = lineItems.map((inputLine) => {
2388
+ const cartLine = resultCart.lineItems.find(
2389
+ (line) => line.variant.id === inputLine.variant?.id
2390
+ );
2391
+ if (!cartLine) {
2392
+ return null;
2393
+ }
2394
+ return {
2395
+ ...cartLine,
2396
+ quantity: inputLine.quantity,
2397
+ gtmParams: inputLine.gtmParams
2398
+ };
2399
+ }).filter(Boolean);
2389
2400
  trackAddToCartGA({
2390
- lineItems,
2401
+ lineItems: trackingLineItems,
2391
2402
  gtmParams: { ...gtmParams, brand: config.getBrand() }
2392
2403
  });
2393
- trackAddToCartFBQ({ lineItems });
2404
+ trackAddToCartFBQ({ lineItems: trackingLineItems });
2394
2405
  }
2395
2406
  performanceAdapter?.addToCartEnd();
2396
2407
  return resultCart;