Set of methods that allow Eitri shopping apps to interact with Insider SDK.

Methods

  • Logs an event with Insider SDK, where each parameter of the event is defined as a key-value pair within the data object.

    Example:

    const modules = await Eitri.modules();
    const logEvent = modules?.insider?.logEvent;
    if (!logEvent) return;

    await logEvent({
    eventName: "product_view",
    data: {
    product_id: "12345",
    category: "electronics",
    price: 99.99
    }
    })

    Parameters

    • param: { eventName: string; data: Record<string, any> }

      Object describing the event.

      • eventName: string

        Name of the event.

      • data: Record<string, any>

        Object describing the event's data.

    Returns Promise<undefined>

  • Starts geofence tracking for location-based marketing campaigns.

    Requires location permissions to be granted by the user to call this.

    You must call it once per app app launch, ideally on app start and after permissions handling.

    Users must allow "Always" and "Precise Location" permissions for geofencing to work correctly.

    Example:

    // Ensure that the methods exist
    const modules = await Eitri.modules();
    const upgradeToBackgroundPermission = modules?.geolocation?.upgradeToBackgroundPermission;
    const startGeofenceTracking = modules?.insider?.startGeofenceTracking

    if (!upgradeToBackgroundPermission) {
    console.log("upgradeToBackgroundPermission is not available");
    return;
    }

    if (!startGeofenceTracking) {
    console.log("startGeofenceTracking is not available");
    return;
    }

    // Check and request location permissions

    // First ensure foreground permission
    const foreground = await modules.geolocation.requestPermission({precision: "precise"});
    if (foreground.status != "GRANTED") {
    console.log("Location permission not granted");
    return;
    }

    // Explain to the user why background permission is needed, then request it

    // Try upgrade to background
    const background = await upgradeToBackgroundPermission();

    // Then start geofence tracking
    await startGeofenceTracking()

    Returns Promise<undefined>

  • Tracks homepage visits.

    Example:

    const modules = await Eitri.modules();
    const visitHomepage = modules?.insider?.visitHomepage;
    if (!visitHomepage) return;
    await visitHomepage()

    Returns Promise<undefined>

  • Tracks listing/category page visits.

    Example:

    const modules = await Eitri.modules();
    const visitListingPage = modules?.insider?.visitListingPage;
    if (!visitListingPage) return;
    await visitListingPage({
    taxonomy: ["electronics", "smartphones"]
    })

    Parameters

    • param: { taxonomy: string[] }

      Object containing taxonomy information.

      • taxonomy: string[]

        Array of category strings.

    Returns Promise<undefined>

  • Tracks product detail page visits.

    Example:

    const modules = await Eitri.modules();
    const visitProductDetailPage = modules?.insider?.visitProductDetailPage;
    if (!visitProductDetailPage) return;
    await visitProductDetailPage({
    product: {
    productID: "12345",
    name: "iPhone 15",
    taxonomy: ["electronics", "smartphones"],
    imageURL: "https://example.com/iphone15.jpg",
    price: 999.99,
    currency: "USD"
    }
    })

    Parameters

    Returns Promise<undefined>

  • Tracks cart page visits.

    Example:

    const modules = await Eitri.modules();
    const visitCartPage = modules?.insider?.visitCartPage;
    if (!visitCartPage) return;
    await visitCartPage({
    products: [{
    productID: "12345",
    name: "iPhone 15",
    taxonomy: ["electronics", "smartphones"],
    imageURL: "https://example.com/iphone15.jpg",
    price: 999.99,
    currency: "USD"
    }]
    })

    Parameters

    Returns Promise<undefined>

  • Tracks wishlist page visits.

    Example:

    const modules = await Eitri.modules();
    const visitWishlistPage = modules?.insider?.visitWishlistPage;
    if (!visitWishlistPage) return;
    await visitWishlistPage({
    products: [{
    productID: "12345",
    name: "iPhone 15",
    taxonomy: ["electronics", "smartphones"],
    imageURL: "https://example.com/iphone15.jpg",
    price: 999.99,
    currency: "USD"
    }]
    })

    Parameters

    Returns Promise<undefined>

  • Tracks completed purchases.

    Example:

    const modules = await Eitri.modules();
    const itemPurchased = modules?.insider?.itemPurchased;
    if (!itemPurchased) return;
    await itemPurchased({
    saleID: "order_12345",
    product: {
    productID: "12345",
    name: "iPhone 15",
    taxonomy: ["electronics", "smartphones"],
    imageURL: "https://example.com/iphone15.jpg",
    price: 999.99,
    currency: "USD"
    }
    })

    Parameters

    • param: { saleID: string; product: InsiderProduct }

      Object containing sale and product information.

      • saleID: string

        Unique sale identifier.

      • product: InsiderProduct

        Product object.

    Returns Promise<undefined>

  • Tracks user sign-up confirmations.

    Example:

    const modules = await Eitri.modules();
    const signUpConfirmation = modules?.insider?.signUpConfirmation;
    if (!signUpConfirmation) return;
    await signUpConfirmation()

    Returns Promise<undefined>

  • Tracks items added to cart.

    Example:

    const modules = await Eitri.modules();
    const itemAddedToCart = modules?.insider?.itemAddedToCart;
    if (!itemAddedToCart) return;
    await itemAddedToCart({
    product: {
    productID: "12345",
    name: "iPhone 15",
    taxonomy: ["electronics", "smartphones"],
    imageURL: "https://example.com/iphone15.jpg",
    price: 999.99,
    currency: "USD"
    }
    })

    Parameters

    Returns Promise<undefined>

  • Tracks items removed from cart.

    Example:

    const modules = await Eitri.modules();
    const itemRemovedFromCart = modules?.insider?.itemRemovedFromCart;
    if (!itemRemovedFromCart) return;
    await itemRemovedFromCart({
    productID: "12345"
    })

    Parameters

    • param: { productID: string }

      Object containing product ID.

      • productID: string

        Product identifier.

    Returns Promise<undefined>

  • Tracks when cart is cleared.

    Example:

    const modules = await Eitri.modules();
    const cartCleared = modules?.insider?.cartCleared;
    if (!cartCleared) return;
    await cartCleared()

    Returns Promise<undefined>

  • Tracks items added to wishlist.

    Example:

    const modules = await Eitri.modules();
    const itemAddedToWishlist = modules?.insider?.itemAddedToWishlist;
    if (!itemAddedToWishlist) return;
    await itemAddedToWishlist({
    product: {
    productID: "12345",
    name: "iPhone 15",
    taxonomy: ["electronics", "smartphones"],
    imageURL: "https://example.com/iphone15.jpg",
    price: 999.99,
    currency: "USD"
    }
    })

    Parameters

    Returns Promise<undefined>

  • Tracks items removed from wishlist.

    Example:

    const modules = await Eitri.modules();
    const itemRemovedFromWishlist = modules?.insider?.itemRemovedFromWishlist;
    if (!itemRemovedFromWishlist) return;
    await itemRemovedFromWishlist({
    productID: "12345"
    })

    Parameters

    • param: { productID: string }

      Object containing product ID.

      • productID: string

        Product identifier.

    Returns Promise<undefined>

  • Tracks when wishlist is cleared.

    Example:

    const modules = await Eitri.modules();
    const wishlistCleared = modules?.insider?.wishlistCleared;
    if (!wishlistCleared) return;
    await wishlistCleared()

    Returns Promise<undefined>