Methods
window.Giftie(config) returns one SDK instance.
const giftie = window.Giftie({
domain: window.location.hostname,
})
Instance surface
| Member | Signature | Behavior |
|---|---|---|
open | (openConfig?: object) => void | Creates the modal and iframe. Does nothing when already open. |
close | () => void | Starts closing unless upload protection blocks the first attempt. |
isOpen | () => boolean | Returns the loader's current open state. |
isLoaded | () => boolean | Returns true after the current iframe's load event and resets on close. |
updateConfig | (newConfig: object) => void | Shallow-merges configuration for the next open. It does not update an iframe that is already open. |
getConfig | () => object | Returns a shallow copy of current configuration. |
Internal Shopify callback hook
The released Shopify theme controller assigns a mutable onVideoSave property
to the SDK instance. That property is an internal integration hook, not part of
the documented browser surface. Do not set it from direct integrations or
reuse a theme-owned instance: for one save, the loader invokes the
configuration callback and then the instance callback without awaiting either
return value. It begins automatic close after both calls return normally.
Per-open configuration
open({ mode: 'audio' }) can override a documented configuration field for
that open and later opens. Non-mode fields passed to open() are also
transported as view_* context by the current implementation.
giftie.open({ mode: 'audio' })
Arbitrary per-open context is observed implementation behavior, not an approved typed surface. Agree any custom field names with Giftie, and never pass sensitive data because values appear in the iframe URL.
One instance per page
The current loader keeps modal, configuration, and lifecycle state in shared module-level variables. Multiple instances are not isolated; the most recently created instance receives instance-level save callbacks. Create one instance per page and reuse it.
The legacy window.giftTagg alias is deprecated and is outside the current
browser integration surface. Use window.Giftie.
