Shopify dans Social Stream Ninja
Présentez des produits publics avec des images, des prix, des liens lisibles et des codes QR. Recevez les notifications signées de commandes payées sous forme d’alertes achat dans le fil d’activité, Multi Alerts et Event Flow. La promotion de produits fonctionne indépendamment des alertes de paiement.
Connecter les achats · Importer des produits · Incrustations OBS · Tester en toute sécurité · Limites et dépannage
Disponibilité : les alertes automatiques nécessitent que le point de réception Shopify soit déployé et activé sur l’API SSN. S’il est indisponible, Enregistrer la configuration affiche une erreur et n’active pas Shopify. L’importation de produits publics et la promotion manuelle fonctionnent indépendamment. Ce guide décrit le code de l’intégration ; un test avec un véritable marchand reste nécessaire avant de considérer le service en direct comme validé.
Connecter les achats payés
- Dans Shopify, ouvrez Paramètres → Notifications → Webhooks (Settings → Notifications → Webhooks). Repérez le secret de signature affiché pour les webhooks créés manuellement. Il est différent d’un jeton Storefront.
- Dans SSN, ouvrez Monétisation → Achats Shopify → Configuration (Monetization → Shopify purchases → Setup). Saisissez votre domaine permanent
your-store.myshopify.comet le secret de signature du webhook. Activez les achats Shopify, puis cliquez sur Enregistrer la configuration. - Cliquez sur Copier l’URL de réception (Copy receiver URL). Dans Shopify, créez un webhook avec l’événement Paiement de commande (Order payment), au format JSON, et cette URL de réception. Sélectionnez une version stable prise en charge de l’API des webhooks ; cette intégration a été développée selon le contrat des commandes 2026-07.
- Enregistrez le webhook Shopify. Laissez SSN ouvert pour traiter les achats. Le point de réception vérifie le HMAC du corps brut et la correspondance de la boutique avant d’accepter les données de commande.

Le secret de signature est chiffré sur le point de réception SSN et effacé du champ après l’enregistrement. Une clé privée de lecture distincte reste sur cet appareil. Aucun des deux ne figure dans les liens OBS ou les codes QR destinés aux spectateurs. Shopify utilise son point de réception dédié ; l’ancienne option de contrôle distant par API n’est pas nécessaire.
Une URL générée indique que la configuration a été enregistrée, pas que Shopify a transmis quoi que ce soit. L’état distingue l’attente, un test vérifié, un événement ignoré et un achat reçu. Pour changer de boutique, utilisez d’abord Déconnecter. Désactiver Shopify suspend le traitement local ; Déconnecter supprime son point de réception et les événements en attente. Supprimez le webhook Shopify correspondant lors de la déconnexion.
Shopify : créer des webhooks manuellement · Shopify : vérifier les transmissions
Importer un produit public
- Saisissez votre
myshopify.comdans la configuration Shopify. Il n’est pas nécessaire d’activer les alertes d’achat ni de saisir un secret de signature pour importer des produits. - Développez Importer un produit, collez l’URL publique d’un produit et cliquez sur Charger les détails du produit.
- Si l’accès sans jeton n’expose pas le produit, fournissez un jeton Storefront public. Le canal Headless de Shopify permet d’en créer un. Publiez le produit dans cette vitrine et dans la boutique en ligne. Ne collez pas de jeton Admin API ni de jeton Storefront privé.
- SSN ouvre l’éditeur existant Produits et liens de soutien avec le titre, l’image, le prix et le lien public canonique renvoyés par Shopify. Vérifiez-les, cliquez sur Ajouter un produit ou un lien, activez le catalogue et Enregistrer la configuration.

L’importation lit un produit à la fois via l’API Storefront. Le jeton est facultatif, utilisé uniquement pour cette requête, puis effacé. L’URL canonique de la boutique en ligne fournie par Shopify devient le lien public, avec un domaine personnalisé lorsque Shopify en renvoie un. Les produits indisponibles et ceux sans lien public de boutique en ligne sont exclus.
Un prix est renseigné uniquement si les prix minimum et maximum des variantes du produit sont identiques. Sinon, le champ reste vide ; indiquez vous-même un prix précis uniquement s’il décrit fidèlement l’offre. Les informations importées sont un instantané, sans synchronisation continue des stocks ni des prix. Vérifiez-les lorsque votre boutique change. Vous pouvez toujours saisir les produits manuellement.
Authentification Shopify Storefront · Requête de produit · Créer un jeton public avec Headless
Utiliser les incrustations existantes
Sous Lien d’incrustation pour, choisissez Produits et liens de soutien. Utilisez Présentation de produits uniquement pour les images, les prix et les codes QR, Carte de soutien uniquement pour un petit lien permanent ou périodique vers la boutique, ou Alertes d’activité uniquement pour les achats. Copiez chaque lien OBS souhaité dans une source Navigateur distincte, en commençant par 800 × 600.
Définissez le filtre facultatif de source des alertes sur shopify pour n’afficher que l’activité Shopify dans l’incrustation générique de monétisation. Activez Produits et liens de soutien pour cette vue générique. Multi Alerts et le fil d’activité existants reçoivent les achats Shopify indépendamment du catalogue de produits.

Les fiches produit renvoient vers les pages publiques des produits. Utilisez Copier le lien public pour partager l’adresse cliquable dans le chat et testez le code QR avec un téléphone à la taille finale de votre diffusion. Une alerte d’achat n’emprunte jamais le code QR ou l’image d’un autre produit en rotation. Les webhooks de commande ne fournissent pas d’URL fiables pour les images des produits ; les alertes d’achat utilisent donc du texte, tandis que les fiches promotionnelles importées peuvent afficher des images.
Dans Event Flow, choisissez le type d’événement (Event Type) purchase et filtrez la source/le type sur shopify. Comparez meta.commerce.orderTotal pour les règles fondées sur la valeur de la commande et vérifiez meta.commerce.currency avant de comparer les montants. Il s’agit d’achats : aucun hasDonation ou donoValue n’est émis et les objectifs de dons n’augmentent pas. Une fiche promotionnelle étiquetée Cadeau ne modifie pas la classification des événements de commande. Une livraison à une autre personne ne prouve pas qu’il s’agit d’un cadeau au créateur.
Prévisualiser et tester en toute sécurité
Prévisualiser un exemple (Preview sample) ouvre une incrustation d’exemple isolée, sans connexion à une session. Elle ne déclenche jamais Event Flow, ne modifie pas les totaux et ne vérifie aucun paiement.
Les commandes Shopify explicitement marquées test: true sont acquittées et affichées comme tests dans l’état du point de réception, sans alerte ni action d’achat. L’absence d’indicateur de test, les commandes impayées ou partiellement payées, les commandes annulées, les totaux nuls et les horodatages anciens ou invalides entraînent également l’exclusion. Utilisez une boutique de développement pour les tests de bout en bout. Un exemple d’administration sans indicateur de test fiable ne doit pas être envoyé dans un processus actif de récompenses ; l’aperçu SSN permet de vérifier l’apparence sans risque.
Vérifications effectuées sans boutique
Des tests isolés couvrent une transmission HTTP réelle avec du JSON Unicode signé, les signatures altérées, les transmissions en double, l’isolation des commandes de test, la précision monétaire, les requêtes trop volumineuses, la suppression des données client privées et la récupération après déconnexion via l’environnement SSApp réel. Ces vérifications ne passent pas de commande et ne nécessitent aucun compte marchand.
Le point de réception Shopify de production reste désactivé dans l’attente d’un test de transmission depuis une véritable boutique. La promotion manuelle de produits fonctionne indépendamment. Les exemples de webhooks Shopify CLI peuvent aider à tester le traitement des données, mais ne valident ni les abonnements ni les nouvelles tentatives et nécessitent toujours les identifiants d’une application. Consultez Limites des tests de webhooks avec Shopify CLI.
Limites de transmission et dépannage
- Point de réception indisponible : l’opérateur de l’API SSN doit déployer et activer le point de réception Shopify. Consultez la configuration du serveur. N’utilisez pas l’ancienne URL de webhook de session non signé à sa place.
- En attente d’un événement : vérifiez Paiement de commande, JSON, l’URL exacte de réception, la correspondance du domaine permanent de la boutique et le secret de signature de ce webhook. Le webhook d’une application personnalisée utilise le secret de signature de cette application, et non le secret des notifications manuelles.
- Événement signé ignoré : cette intégration exige une commande entièrement payée d’un montant positif,
test: falseet un corps signéupdated_atau cours des sept derniers jours (avec une tolérance de cinq minutes pour une horloge en avance). Elle ne déduit pas le paiement de la création de commande, de son traitement ou du stock. - SSN était hors ligne : les événements acceptés sont conservés jusqu’à sept jours dans la file d’attente. Redémarrez SSN pour reprendre. L’état et les tâches en attente survivent au redémarrage du point de réception. Le service possède un stockage limité et demande à Shopify de réessayer lorsqu’il ne peut pas conserver durablement une tâche.
- Doublons : le point de réception élimine les doublons par boutique/commande, même si les identifiants de transmission Shopify diffèrent. Les données de déduplication sont conservées sept jours. SSN enregistre durablement les identifiants traités avant l’acquittement. Un plantage entre une action externe et cet enregistrement peut tout de même répéter l’action ; utilisez votre propre protection d’idempotence pour les automatisations aux conséquences importantes.
- Nom de l’acheteur absent : c’est volontaire. SSN exclut les noms, e-mails et adresses des clients, les notes de commande, les propriétés personnalisées des articles, les URL de paiement et les identifiants bruts de commande. Les titres publics des produits restent du texte brut.
- Remboursements ou modifications de commandes : il s’agit d’un flux d’alertes en direct, pas d’un système de comptabilité ou de traitement des commandes. Les remboursements, annulations et modifications de totaux n’annulent pas les alertes précédentes. Aucun rapprochement de l’historique des commandes ni retrait automatique de produits n’est inclus.
Consultez : Contrat des événements Shopify et guide des produits partagés et des codes QR.