Événements du SDK JavaScript

Afin d'écouter les événements Snipcart, vous pouvez utiliser la méthode on :

Snipcart.events.on('{eventName}', callback);

Pour vous délier d'un événement, vous pouvez appeler la fonction retournée par la méthode on :

const unsubscribe = Snipcart.events.on('{eventName}', callback);
unsubscribe();

Événements publics

Plusieurs de ces événements sont utiles pour afficher un avis particulier à vos clients ou pour s'intégrer à des outils d'analyse tiers.

item.adding

Avant qu'un article soit ajouté au panier, un événement item.adding est déclenché. La fonction de rappel reçoit le ParsedCartItem comme argument.

Snipcart.events.on('item.adding', (parsedCartItem) => {
    console.log(parsedCartItem);
});

item.added

Après l'ajout d'un article au panier, un événement item.added est déclenché. La fonction de rappel reçoit le CartItem ajouté comme argument.

Snipcart.events.on('item.added', (cartItem) => {
    console.log(cartItem);
});

item.updated

Lorsqu'un article du panier est mis à jour, un événement item.updated est déclenché. La fonction de rappel reçoit le CartItem mis à jour comme argument.

Snipcart.events.on('item.updated', (cartItem) => {
    console.log(cartItem);
});

item.removed

Lorsqu'un article est retiré du panier, un événement item.removed est déclenché. La fonction de rappel reçoit le CartItem retiré comme argument.

Snipcart.events.on('item.removed', (cartItem) => {
    console.log(cartItem);
});

cart.created

Lorsqu'un panier est créé (par exemple, lorsqu'un article est ajouté pour la première fois), un événement cart.created est déclenché. La fonction de rappel reçoit le CartState créé comme argument.

Snipcart.events.on('cart.created', (cartState) => {
    console.log(cartState);
});

cart.confirmed

Lorsqu'une commande est passée et que le panier est confirmé avec succès, un événement cart.confirmed est déclenché. La fonction de rappel reçoit le CartState confirmé comme argument.

Snipcart.events.on('cart.confirmed', (cartConfirmResponse) => {
    console.log(cartConfirmResponse);
});

cart.confirm.error

Lorsqu'une commande est passée mais que sa confirmation échoue, un événement cart.confirm.error est déclenché. La fonction de rappel reçoit le BaseCartConfirmError comme argument.

Snipcart.events.on('cart.confirm.error', (confirmError) => {
    console.log(confirmError);
});

cart.reset

Lorsque le panier est réinitialisé avec succès, un événement cart.reset est déclenché. La fonction de rappel reçoit le CartState confirmé comme argument.

Snipcart.events.on('cart.reset', (cartState) => {
    console.log(cartState);
});

payment.failed

Lorsqu'une commande est rejetée en raison d'une erreur de paiement, un événement payment.failed est déclenché. La fonction de rappel reçoit le BaseCartConfirmError comme argument.

Snipcart.events.on('payment.failed', (paymentError) => {
    console.log(paymentError);
});

discount.applied

Lorsqu'un rabais est appliqué au panier, un événement discount.applied est déclenché. La fonction de rappel reçoit le Discount appliqué comme argument.

Snipcart.events.on('discount.applied', (discount) => {
    console.log(discount);
});

shipping.selected

Lorsqu'une méthode de livraison est sélectionnée dans le panier, un événement shipping.selected est déclenché. La fonction de rappel reçoit la ShippingMethod sélectionnée comme argument.

Snipcart.events.on('shipping.selected', (shippingMethod) => {
    console.log(shippingMethod);
});

language.updated

Lorsque la langue du panier est mise à jour, un événement language.updated est déclenché. La fonction de rappel reçoit un objet contenant le code de langue mis à jour, ainsi que les éventuelles modifications spécifiées ({lang: string, overrides: {[key: string]: string}}).

Snipcart.events.on('discount.applied', (languageUpdatedResponse) => {
    console.log(`Language was changed to ${languageUpdatedResponse.lang}`);
});

customer.registered

Lorsque les clients créent un compte pour pouvoir accéder à leur tableau de bord client, un événement customer.registered est déclenché. La fonction de rappel reçoit le Customer comme argument.

Snipcart.events.on('customer.registered', (customer) => {
    console.log(`Customer ${customer.email} just created an account.`);
});

customer.signedin

Lorsqu'un client se connecte à son tableau de bord client, un événement customer.signedin est déclenché. La fonction de rappel reçoit le Customer comme argument.

Snipcart.events.on('customer.signedin', (customer) => {
    console.log(`Customer ${customer.email} just signed in.`);
});

customer.signedout

Lorsqu'un client se déconnecte, un événement customer.signedout est déclenché. La fonction de rappel ne reçoit pas de paramètres.

Snipcart.events.on('customer.signedout', () => {
    console.log('Customer signed out');
});

snipcart.initialized

Lorsque Snipcart a terminé son initialisation, un événement snipcart.initialized est déclenché. La fonction de rappel prend le SnipcartState comme argument.

Snipcart.events.on('snipcart.initialized', (snipcartState) => {
    console.log(snipcartState);
});

snipcart.initialization.error

Lorsque Snipcart ne parvient pas à s'initialiser, un événement snipcart.initialization.error est déclenché. Dans ce cas, la fonction de rappel ne prend aucun argument.

Snipcart.events.on('snipcart.initialization.error', () => {
    console.log('Failed to initialize Snipcart');
});

Événements liés au thème

theme.routechanged

Après la modification d'une route dans le panier, un événement theme.routechanged est déclenché. La fonction de rappel reçoit un objet contenant le chemin de la route précédente et actuelle comme argument ({from: string, to: string}).

Cet événement peut être utile si vous souhaitez effectuer des manipulations DOM à l'intérieur du panier.

Snipcart.events.on('theme.routechanged', (routesChange) => {
    if (routesChange.from === "/" && routesChange.to !== "/") {
        console.log('cart opened');
    }

    if (routesChange.from !== "/" && routesChange.to === "/") {
        console.log('cart closed');
    }
})

Événements liés au contexte du navigateur

summary.checkout_clicked

Lorsqu'un client clique sur un bouton Afficher le panier, un événement summary.checkout_clicked est déclenché. Dans ce cas, la fonction de rappel ne prend aucun argument.

Snipcart.events.on('summary.checkout_clicked', () => {
    console.log('checkout clicked')
});