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. You may pass in either an object with the required data, or an array of objects. If an array is passed in the response will be an object mapped on variant id.

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;
}

type UseIgPricesInput = UseIgPricesProps | UseIgPricesProps[];

export type UseIgPricesOutput<T extends UseIgPricesInput> =
  T extends UseIgPricesProps[]
    ? Record<string, UseIgPricesReturn>
    : UseIgPricesReturn;

const useIgPrices =  <T extends UseIgPricesInput> (props: UseIgPricesInput) => UseIgPricesOutput

useIgStyles

Useful for manually styling components for integration mode.

const igStyles = useIgStyles();

Last updated