SophiTracker API
After the bundle loads, window.SophiTracker exposes the public imperative API. Use it for SPAs, batched updates, login/logout, and multi-object events (e.g. add_to_cart with both product and basket).
SophiTracker.push(partial)
- Merges every key in
partialintowindow.sophi_object. - Processes the update once per watched key present in
partial(page,user,product,basket,listing,transaction), which may produce one event per key. - If
partial.event_typeis set, it overrides the defaultevent_typefor all triggers in that singlepushcall. - If called before the SDK has finished starting, it no-ops and warns.
Typical use: route changes, add-to-cart, or syncing several objects atomically.
SophiTracker.updateUser(userId)
- Clears the current session (cookies and local session state).
- Sets
config.userIdto the new value (or clears it whenundefined/ empty). - Establishes a new session with Sophi so subsequent events use fresh credentials.
Call after your auth layer confirms login (pass stable external id) or logout (pass undefined for an anonymous session).
SophiTracker.getSession()
Returns a promise for the SDK’s active session object. Intended for debugging or advanced integrations; normal storefront tracking does not require calling this.
Related
- Configuration — how
userIdparticipates in session creation - Integration patterns — login and SPA examples
- Data and auth flows