Documentation menu

Shopify

Connectez une boutique Shopify pour synchroniser ses clients dans une liste de contacts MailInApp, déclencher des parcours à partir d'événements réels de la boutique, et voir le revenu se rattacher à une campagne ou une variante.

Connectez votre boutique

Les boutiques Shopify se connectent depuis Shopify, pas depuis MailInApp : dans votre administration Shopify, installez MailInApp depuis le Shopify App Store (ou, si elle est déjà installée, ouvrez-la depuis Applications) et approuvez l'accès sur l'écran OAuth propre à Shopify. MailInApp demande read_customers, read_orders et read_products (tous en lecture seule), ainsi que write_discounts afin de pouvoir générer les codes de réduction à usage unique décrits ci-dessous — il ne demande jamais d'accès en écriture aux produits, commandes ou clients de votre boutique eux-mêmes. Une fois approuvé, MailInApp crée une liste de contacts dédiée pour la boutique et démarre en arrière-plan une récupération initiale des clients, plafonnée à 5 000 clients par connexion. Une boutique comptant plus de clients que cela continue de faire croître sa liste à partir de là via les propres webhooks de Shopify, simplement sans récupération ponctuelle au-delà du plafond.

Shopify vous redirige ensuite vers MailInApp pour vous connecter à votre compte existant ou en créer un gratuitement — la boutique est reliée au compte avec lequel vous vous connectez, et vous revenez dans l'application MailInApp de votre administration Shopify. Le tableau de bord MailInApp ne propose aucun formulaire de saisie du domaine myshopify.com : Settings → Integrations affiche la boutique connectée, son état de synchronisation et Disconnect.

Connecter Shopify est gratuit sur tous les forfaits, y compris Free. Votre forfait MailInApp lui-même est géré et facturé entièrement via Shopify, depuis l'application MailInApp de votre administration Shopify — vous ne passez pas par le paiement par carte ou PayPal de MailInApp.

Ce que ça fait

  • Synchronisation des clients — les clients Shopify arrivent dans une liste de contacts propre à cette intégration, tenue à jour ensuite par les propres webhooks de Shopify (customers/create, plus checkouts/create et orders/paid pour les déclencheurs ci-dessous) plutôt que par une nouvelle interrogation périodique.
  • Déclencheurs de parcours — une boutique connectée peut activer le déclencheur panier abandonné d'un parcours (un paiement commencé mais non terminé) et son déclencheur achat (une commande payée), afin qu'une automatisation de série de bienvenue ou de panier abandonné puisse fonctionner à partir de l'activité réelle de Shopify plutôt qu'uniquement du paiement du bloc produit propre à MailInApp. Voir Parcours.
  • Attribution du revenu — la campagne/variante propre à une commande, lorsqu'elle est identifiable, s'intègre aux mêmes chiffres de revenu de réponse et de test A/B que produit déjà une commande passée via le paiement natif.
  • Segments d'historique d'achat et offres de réduction — les lignes de commande se synchronisent en même temps que les clients, de sorte qu'un filtre d'audience peut correspondre à « a acheté le produit X entre la date A et B » (voir Historique d'achat), et un projet peut générer un code de réduction Shopify à usage unique par destinataire correspondant, à utiliser sur le paiement de votre propre boutique (voir Offre de réduction). Les commandes en cours se synchronisent automatiquement via le webhook orders/paid ; une boutique connectée avant la sortie de cette fonctionnalité, ou avec un historique plus ancien, nécessite une récupération ponctuelle Backfill order history depuis Settings → Integrations — plafonnée à environ les 60 derniers jours, sauf si Shopify a séparément approuvé cette application pour l'historique complet des commandes sur votre boutique. Un bloc Produit importé depuis votre catalogue peut générer indépendamment sa propre réduction par produit — limitée à ce seul article, sans besoin de filtre d'audience — voir Réductions natives à la boutique et Codes de réduction produit Shopify.
  • Catalogue de produits pour le studio — les propres fiches actives de votre boutique se synchronisent aussi dans MailInApp, actualisées automatiquement selon la même cadence que les clients (pas de bouton séparé). Le sélecteur Importer depuis la boutique du bloc Produit recherche dans ce catalogue synchronisé et remplit le nom, la description, l'image et le prix d'un bloc à partir d'un produit réel — une copie ponctuelle, pas un lien en direct, de sorte que rien dans un email envoyé ne puisse dériver de ce que vous avez vérifié. Il synchronise aussi la propre page de chaque produit (à partir de son handle Shopify) et, lorsque c'est disponible, règle le bloc sur Lien vers le paiement externe de la boutique pointant directement vers elle — un produit importé est ainsi prêt à être vendu sur votre boutique Shopify sans rien de plus à configurer ; repassez-le manuellement sur Paiement MailInApp si vous préférez plutôt encaisser le paiement via votre compte Stripe connecté. Une boutique connectée avant la sortie de cette fonctionnalité nécessite un rapide Disconnect dans Settings → Integrations, puis de rouvrir MailInApp depuis votre administration Shopify, pour accorder la nouvelle permission read_products exigée par Shopify — le sélecteur n'affiche simplement rien tant que ce n'est pas fait.

État de la connexion et reconnexion

Shopify délivre à MailInApp un jeton d'accès de courte durée (valable environ une heure) accompagné d'un refresh token rotatif, et MailInApp renouvelle automatiquement cette paire en arrière-plan — la synchronisation des clients, les déclencheurs de parcours et la génération de réductions continuent de fonctionner sans aucune action de votre part en usage normal.

Si Shopify venait à révoquer ou invalider ce refresh token — par exemple parce que l'application a été désinstallée puis réinstallée en dehors de MailInApp, que l'accès a été révoqué manuellement depuis votre administration Shopify, ou que le jeton a simplement expiré après une longue période d'inactivité —, MailInApp s'arrête délibérément plutôt que de réessayer silencieusement avec des identifiants périmés, et Settings → Integrations affiche alors le statut de la boutique comme Reconnect required. Il s'agit d'une mesure de sécurité, pas d'un bug : MailInApp ne se réauthentifie jamais en votre nom sans que vous approuviez une nouvelle autorisation OAuth via l'écran propre à Shopify.

Si vous voyez ce statut, cliquez sur Disconnect dans Settings → Integrations, puis rouvrez MailInApp depuis votre administration Shopify et approuvez l'écran de Shopify pour obtenir une nouvelle paire de jetons propre. Cela ne prend que quelques secondes, ne coûte rien, et ne touche ni aux contacts ni aux commandes déjà synchronisés — la synchronisation reprend simplement une fois la nouvelle connexion approuvée.

Déconnexion

Disconnect dans Settings arrête immédiatement la synchronisation et tout traitement ultérieur des webhooks. Les clients déjà synchronisés restent dans leur liste de contacts — déconnecter une intégration ne supprime jamais les contacts, car ils peuvent déjà servir d'audience d'envoi pour d'autres projets. Désinstaller l'application depuis Shopify fonctionne de la même façon dans un premier temps. Environ 48 heures plus tard, une fois que le propre webhook de suppression de données de Shopify se déclenche, cela efface aussi complètement les contacts et enregistrements de panier synchronisés — le délai de grâce standard que toute application Shopify doit respecter.