@amboras-dev/omnisend
v1.0.1
Published
Omnisend browser events + slot components for Amboras storefronts
Keywords
Readme
@amboras-dev/omnisend
Omnisend browser events + slot components for Amboras storefronts.
This package follows the slot-based (Class A) plugin convention: its
components are bound to named storefront plugin slots via the catalog manifest
and compiled into the storefront's generated registry. It mirrors
@amboras-dev/pinterest.
Exports
| Entry | Purpose | Runtime |
| --- | --- | --- |
| . | Public types + getOmnisendConfig + low-level track / identifyContact accessors | server-safe |
| ./slot-components | OmnisendProvider, OmnisendViewItem, OmnisendAddToCart | client ("use client") |
| ./get-config | getOmnisendConfig() on its own | server-safe |
Slot components
OmnisendProvider — rootProviders slot
Props (via propsFromConfig): { brandID?: string }.
Renders
nullwhen nobrandID(Omnisend disabled).Injects the bootstrap snippet once via an inline
next/script(id="omnisend-bootstrap"), consent-gated onamboras_consentand re-checked onamboras-consent-changed:window.omnisend = window.omnisend || []; omnisend.push(["brandID","<brandID>"]); omnisend.push(["track","$pageViewed"]); !function(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://omnisnippet1.com/inshop/launcher-v2.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}();Fetches the authenticated customer (on mount +
amboras-auth-changed) and callsidentifyContact({ email, phone }). Omnisend rejects events from anonymous visitors, so the identify is what makes the other slots' events land.
OmnisendViewItem — pdpAnalytics slot
Props (via propsFromContext): { productId?, productName?, sku?, price?, currency?, imageUrl?, url?, categories? }.
Fires viewed product (eventVersion:"v4", origin:"api") once per
productId. Money: price is passed through unchanged — Medusa minor
units (cents) == Omnisend viewed-product cents.
OmnisendAddToCart — cartUpdate slot
Props (via propsFromContext): { cartId?, itemCount?, total?, currency? }.
Fires added product to cart (origin:"api", eventVersion:"") when the
cart signature changes. Money: value = toMajorUnits(total, currency)
(decimal major units) — unlike the viewed-product event. The cart slot only
exposes cart-level context, so the event carries cart value, not per-product
detail.
Config
getOmnisendConfig() reads the generic /store/integrations/active route
(with x-publishable-api-key + optional X-Store-Environment-ID) and returns
{ enabled, brandID } | null from the response's omnisend key. Fail-closed
null on any error. The Omnisend secret API key never leaves the Medusa side.
