Price Hooks

The returned price useIgPrices() follow the following logic:

  1. If no productId or variantId is provided, the originalPrice is returned

  2. If the productId and/or variantId is part of a Test, and the Test is live, or the test and user are both in preview mode:

    1. If a productId is provided but a variantId is not, the lowest-priced variant price is returned

    2. If the currencyCode of the Experiment does not match activeCurrencyCode, originalPrice is returned

    3. If a productId and variantId is provided, the test-group variant price is returned

  3. If the productId is not in an active test, the originalPrice is returned

useIgPrices()

Returns the product price based on the user's test group. Intelligems will return the original prices if updated prices are not found.

export interface UseIgPricesProps {
  productId?: string;
  variantId?: string;
  originalPrice: number;
  originalCompareAtPrice?: number;
  currencyCode?: string;
}

export interface UseIgPricesReturn {
  igPrice: IgPriceReturn;
  igCompareAtPrice?: IgPriceReturn;
  isIgPrice: boolean;
  isReady: boolean;
}

export interface IgPriceReturn {
  value: number | null;
  currencyCode: string;
}

const useIgPrices = (props: UseIgPricesProps) => UseIgPricesReturn