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"
}
})
Object containing product information.
Product object.
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"
}
})
Object containing product information.
Product object.
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"
}
})
Object containing sale and product information.
Product object.
Unique sale identifier.
Tracks items removed from cart.
Example:
const modules = await Eitri.modules();
const itemRemovedFromCart = modules?.insider?.itemRemovedFromCart;
if (!itemRemovedFromCart) return;
await itemRemovedFromCart({
productID: "12345"
})
Object containing product ID.
Product identifier.
Tracks items removed from wishlist.
Example:
const modules = await Eitri.modules();
const itemRemovedFromWishlist = modules?.insider?.itemRemovedFromWishlist;
if (!itemRemovedFromWishlist) return;
await itemRemovedFromWishlist({
productID: "12345"
})
Object containing product ID.
Product identifier.
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
}
})
Object describing the event.
Object describing the event's data.
Name of the event.
Sets user opt-in preferences for Insider communication channels.
Only the fields provided in the parameter object will be updated. Omitted fields will NOT be modified, allowing partial updates.
Note: Push opt-in is automatically set to true during SDK initialization
and user login. Location opt-in is automatically set to true when
startGeofenceTracking() is called. Use this method to explicitly
override those defaults or to set email/SMS/WhatsApp opt-ins.
Example:
const modules = await Eitri.modules();
const setUserOptins = modules?.insider?.setUserOptins;
if (!setUserOptins) return;
// Set multiple opt-ins at once
await setUserOptins({
email: true,
sms: true,
whatsapp: false
})
// Or set a single opt-in
await setUserOptins({ email: false })
Object containing opt-in preferences. Only provided fields will be updated.
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()
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"
}]
})
Object containing products array.
Array of product objects.
Tracks listing/category page visits.
Example:
const modules = await Eitri.modules();
const visitListingPage = modules?.insider?.visitListingPage;
if (!visitListingPage) return;
await visitListingPage({
taxonomy: ["electronics", "smartphones"]
})
Object containing taxonomy information.
Array of category strings.
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"
}
})
Object containing product information.
Product object.
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"
}]
})
Object containing products array.
Array of product objects.
Set of methods that allow Eitri shopping apps to interact with Insider SDK.