Connectez votre boutique
Shopify à GSE-Web
Votre catalogue et votre stock disponible partent vers la boutique. Les commandes payées arrivent dans GSE-Web en bons de sortie confirmés, stock réservé.
En bref
Le connecteur Shopify relie une boutique Shopify à un magasin de GSE-Web. GSE-Web publie le stock dans un emplacement de la boutique, la boutique envoie ses commandes. Il se configure par un administrateur de l'organisation, dans le menu ADMIN › « Intégrations ».
- Ce qui part vers la boutique : les fiches des produits simples, des kits et des produits à déclinaisons (nom, référence, prix, code-barres), si vous le demandez, et le stock disponible du magasin publié, posé dans l'emplacement Shopify que vous choisissez.
- Ce qui arrive dans GSE-Web : chaque commande payée (ou aux statuts de paiement que vous choisissez) devient un bon de sortie confirmé, stock réservé ; l'acheteur devient un client « particulier ». Si vous le demandez, la description et les photos des produits reliés sont aussi reprises de la boutique.
- Quand : le stock part vers la boutique quelques secondes après chaque changement dans GSE-Web, et une commande arrive aussitôt par webhook. Un passage complet a lieu toutes les 5 minutes et rattrape ce qui aurait manqué.
- Ce qui n'est jamais fait : rien n'est supprimé en boutique, GSE-Web n'écrit jamais les lignes d'une commande et n'émet jamais de remboursement. Il exécute ou annule seulement la commande, si vous le demandez.
- Coupure : pause, déconnexion ou fermeture du module à tout moment, sans rien perdre ; à la reprise, les commandes passées entre-temps sont rattrapées.
Prérequis
Vérifiez ces points avant d'ouvrir l'écran du connecteur : le test de connexion les contrôle et refuse en clair ce qui ne convient pas.
Le domaine myshopify.com de la boutique
Le connecteur se branche sur le domaine d'administration de la boutique, de la forme ma-boutique.myshopify.com, jamais sur son adresse publique.
Une app dans le Dev Dashboard
Créée dans l'organisation propriétaire de la boutique, avec ces droits : read_products, write_products, read_inventory, write_inventory, read_locations, read_orders, write_orders, write_merchant_managed_fulfillment_orders, read_publications, write_publications. Publiez une version, installez l'app sur la boutique, puis notez l'ID client et le secret. Une boutique qui a encore une app personnalisée historique utilise son jeton Admin (shpat_…) et son secret API.
Les données client protégées déclarées
Nom, e-mail et adresse des acheteurs sont des « données client protégées » de Shopify : déclarez leur usage dans le Dev Dashboard. Sans cela, les commandes arrivent sans acheteur et deviennent des points à traiter.
Les modules ouverts pour votre organisation
« Intégrations », puis « Shopify ». Leur ouverture se demande à KLS-Concept. Sans « Intégrations », l'entrée du menu n'apparaît pas ; sans « Shopify », sa carte indique « Non disponible pour votre organisation ».
Un compte ADMIN avec double authentification
La saisie des identifiants de la boutique est refusée tant que la double authentification n'est pas activée sur votre compte, dans « Mes informations ».
Un magasin réel
Son stock disponible est publié en boutique et les commandes y deviennent des bons de sortie. Un magasin d'exercice est refusé.
La même devise et le même régime de prix
La devise de la boutique doit être celle de votre organisation, et « Prix publiés » (HT ou TTC) doit correspondre au réglage « Inclure les taxes dans les prix » de la boutique (Paramètres › Taxes et droits de douane).
Configuration pas à pas
Six étapes, dans l'ordre de l'écran.
Ouvrir l'écran du connecteur
Menu ADMIN › « Intégrations ». La carte Shopify se trouve dans la catégorie « E-commerce ». Cliquez sur « Configurer » (le bouton devient « Gérer » une fois la boutique enregistrée).
Carte « Boutique »
Choisissez le « Type d'app » : « App du Dev Dashboard (ID client et secret) », ou « App personnalisée historique (jeton Admin et secret API) ». Renseignez le « Domaine de la boutique » (…myshopify.com), puis l'« ID client de l'app » et le « Secret de l'app » (ou le « Jeton d'accès Admin » et le secret), et choisissez le « Magasin publié ». La carte rappelle les droits à cocher sur l'app.
Les identifiants sont en écriture seule : une fois enregistrés, ils ne sont plus jamais réaffichés. L'écran montre seulement quelques caractères pour les reconnaître. Pour les conserver, laissez les champs vides ; pour les remplacer, saisissez le secret ET l'ID client (ou le jeton). Avec une app du Dev Dashboard, GSE-Web obtient lui-même le jeton d'accès, valable 24 heures, et le renouvelle.
Carte « Réglages »
Chaque réglage a une valeur par défaut :
- « Prix publiés » : « Hors taxes (HT) » par défaut, ou « Toutes taxes comprises (TTC) ».
- « Créer et mettre à jour les fiches produits en boutique » : décoché par défaut. Décoché, GSE-Web ne crée aucune fiche : il relie seulement les produits déjà présents en boutique avec la même référence (SKU), sans tenir compte des majuscules.
- « Publier le stock disponible » : coché par défaut. Décoché, une fiche créée par GSE-Web n'a pas son stock suivi par Shopify.
- « Recevoir les commandes » : coché par défaut.
- « Remonter les livraisons et annulations à la boutique » : coché par défaut. Bon livré : commande exécutée en boutique, avec transporteur et n° de suivi — Shopify prévient le client par son e-mail d'expédition. Bon annulé dans GSE-Web : commande annulée en boutique, sans remboursement.
- « Statuts de paiement importés » : « Payée » par défaut. Vous pouvez ajouter « Paiement en attente », « Paiement autorisé » et « Partiellement payée » (paiement à la livraison, virement).
- « Âge maximal d'une commande rattrapée (jours) » : 30 par défaut, de 1 à 90. Sans le droit
read_all_orders, Shopify ne rend que les commandes des 60 derniers jours : le rattrapage ne remonte pas plus loin. - « Reprendre la description et les photos de la boutique » : décoché par défaut. La boutique reste maîtresse de la description et des photos, que GSE-Web ne lui envoie jamais ; coché, elles sont recopiées sur la fiche du produit relié. Une description vide en boutique n'efface jamais celle de GSE-Web, et une photo ajoutée dans GSE-Web n'est jamais retirée.
Enregistrer
Cliquez sur « Enregistrer ». « Tester la connexion » et « Activer » agissent sur la configuration enregistrée : tant qu'une modification n'est pas enregistrée, l'écran le rappelle et ces deux boutons attendent.
Tester la connexion, puis choisir l'emplacement
« Tester la connexion » interroge la boutique et vérifie que les identifiants sont bien ceux de ce domaine, que l'app a tous ses droits, que la devise et le régime de prix correspondent. Il charge aussi la liste des emplacements actifs de la boutique : choisissez l'« Emplacement de la boutique » qui reçoit le stock, puis « Enregistrer ». Même refusé, le test affiche les droits manquants et les emplacements, pour que vous puissiez corriger.
Activer
« Activer » refait le test (un emplacement est alors exigé), puis crée quatre abonnements de webhook dans la boutique : commande créée, modifiée, annulée et supprimée. L'état passe à « Active — stock envoyé dès qu'il change, synchronisation complète toutes les 5 minutes » (« Active — synchronisation toutes les 5 minutes » si le stock n'est pas publié). Les commandes reçues avant l'activation ne sont pas importées.
Ce qui se synchronise, et qui fait foi
Chaque champ a un seul maître. Dans une commande de la boutique, GSE-Web n'écrit que son exécution ou son annulation, jamais ses lignes.
📦 GSE-Web fait foi
- ✓Nom du produit
- ✓Référence (SKU en boutique)
- ✓Prix de vente, HT ou TTC selon le réglage
- ✓Code-barres
- ✓Mise en vente ou brouillon
- ✓Stock, dans l'emplacement choisi
🛒 La boutique fait foi
- ✓Description (reprise dans GSE-Web en option)
- ✓Photos (reprises dans GSE-Web en option)
- ✓Collections et balises
- ✓Taxes
- ✓Commandes
- ✓Remboursements
Les règles
- Produits simples, kits et produits à déclinaisons. Un produit simple est publié comme un produit Shopify à une seule variante. Un kit aussi, avec pour stock le nombre de kits montables avec les composants du magasin publié. Un produit à déclinaisons est publié comme un produit à options (trois axes au plus, limite de Shopify), sans prix ni stock propres ; chaque déclinaison en est une variante, avec sa référence, son prix et son stock.
- Un produit retiré de la vente dans GSE-Web passe en brouillon dans la boutique ; il n'y est jamais supprimé. Shopify n'ayant pas de statut par variante, une déclinaison retirée de la vente est mise à stock 0. Les produits créés par GSE-Web sont publiés sur la boutique en ligne ; une fiche existante n'est jamais republiée, pour respecter votre choix si vous la retirez d'un canal.
- Une fiche modifiée en boutique sur un champ dont GSE-Web fait foi est réécrite au prochain changement du produit dans GSE-Web. Le suivi du stock d'une variante existante, lui, n'est jamais modifié.
- Stock publié = stock disponible du magasin publié (physique moins réservé), arrondi à l'unité inférieure, jamais négatif, posé dans l'emplacement choisi — les autres emplacements de la boutique ne sont pas touchés. Il part vers la boutique quelques secondes après chaque changement : entrée, sortie, transfert, inventaire, réservation posée ou libérée sur un bon. Le passage complet le relit aussi toutes les 5 minutes.
- Une commande = un bon de sortie confirmé du magasin publié, case « Réserver les produits pour ce bon » cochée : toute la quantité commandée est réservée, même au-delà du stock (le manque se lit « En attente de réception » sur le bon), et le stock publié en boutique baisse aussitôt. L'adresse de livraison est reprise. Jamais de bon partiel : si une ligne pose problème (produit inconnu, variante inconnue, kit non publiable, acheteur illisible, autre devise), aucun bon n'est créé et un point à traiter l'explique.
- Jamais importées : les commandes de test et celles dont le statut de paiement est inconnu. Une commande déjà exécutée dans Shopify quand elle arrive — vente en caisse (Shopify POS), expédition faite depuis l'administration Shopify — ne donne pas de bon : il ferait sortir la marchandise une seconde fois. Un point à traiter vous demande de saisir sa sortie de stock dans GSE-Web.
- Un acheteur = un client « particulier », retrouvé par son e-mail d'une commande à l'autre (code commençant par WEB-). Un tiers déjà présent dans GSE-Web n'est pas rapproché : un client « particulier » est créé.
- Commande annulée en boutique (annulée, supprimée, remboursée ou paiement annulé) : le bon est annulé et ses réservations libérées, sauf s'il est déjà pris en charge par quelqu'un. Dans ce cas, un point à traiter laisse la décision à l'équipe. Une commande que Shopify ne rend plus (plus de 60 jours sans
read_all_orders) n'est jamais prise pour une commande supprimée. - Commande modifiée en boutique après import : la modification n'est pas reportée sur le bon ; un point à traiter vous invite à le vérifier.
- Une commande de kit devient un bon de sortie sur ses composants (quantité × nombre de kits) ; la note du bon cite le kit. Une commande d'une variante donne un bon sur la déclinaison, comme pour tout produit.
- Remontée des livraisons et annulations (réglage coché par défaut) : un bon livré ou clôturé exécute sa commande en boutique ; s'il est parti dans une expédition, le transporteur et le n° de suivi sont transmis, et Shopify prévient le client par son e-mail d'expédition. Un bon annulé dans GSE-Web annule sa commande en boutique et remet le stock en vente, sans remboursement ni e-mail au client : le remboursement se fait dans Shopify. Une commande que la boutique a déjà exécutée n'est pas défaite, et une exécution restée partielle côté Shopify n'est pas tenue pour faite : un point à traiter le signale. Livré partiel ou en préparation : rien tant que le bon n'est pas complet.
- Reprise de la description et des photos (réglage décoché par défaut) : à chaque passage, pour chaque produit relié, la description de la boutique est recopiée en texte brut sur la fiche ; les photos sont ajoutées dans l'ordre de la boutique, la première étant la principale, et retirées quand elles disparaissent de la boutique. Au plus 20 photos par produit. Ne sont pas repris : les collections, les balises, les taxes, la description et les photos propres à chaque déclinaison, ni les noms, prix et codes-barres modifiés en boutique.
Au quotidien
L'écran du connecteur se lit de haut en bas : l'état, la boutique, les réglages, les boutons, puis les points à traiter et le journal.
La carte « État »
Elle dit où en est la connexion, le nom et la devise de la boutique, la date de la dernière synchronisation, la dernière erreur et le nombre de points à traiter. Sur la carte de la page « Intégrations », l'état tient en une puce.
- À activer « Configurée, pas encore activée ».
- Connecté « Active — stock envoyé dès qu'il change, synchronisation complète toutes les 5 minutes ». Si le stock n'est pas publié : « Active — synchronisation toutes les 5 minutes ».
- En pause « En pause — rien n'est envoyé ni importé ».
- Arrêté — à vérifier « Arrêtée par le serveur — vérifiez les identifiants et testez ».
« Synchroniser maintenant »
Le stock est envoyé automatiquement à la boutique, quelques secondes après chaque changement, et les commandes arrivent dès qu'elles sont passées : l'écran le rappelle sous le bouton. Ce bouton sert seulement à lancer tout de suite la synchronisation complète (fiches produits, commandes manquées, livraisons), qui se fait sinon toutes les 5 minutes. Le message dit si le passage est terminé, s'il a relevé des points à traiter, ou pourquoi il n'a pas été lancé.
La carte « Ce qui passe entre GSE-Web et la boutique »
Sous les réglages, une carte dit, pour chaque échange, dans quel sens il va : de GSE-Web vers la boutique (fiches, stock, déclinaisons, livraisons et annulations), de la boutique vers GSE-Web (commandes, annulations, description et photos) et ce qui ne passe jamais (lignes d'une commande, remboursements, collections, balises et taxes, noms, prix et codes-barres modifiés en boutique). Une ligne liée à un réglage décoché est marquée « Désactivé ».
Le « Journal »
Chaque passage y figure avec son type et son résultat. Types : « Fiches produits », « Stock », « Stock en direct » (envoi dès qu'un stock change, inscrit seulement si une quantité a changé), « Reprise depuis la boutique », « Rattrapage des commandes », « Remontée des bons », « Commande reçue », « Contrôle des webhooks », « Test de connexion ». Résultats : « Réussi », « Partiel », « Échec », « En cours », « Interrompu ». Un clic sur un passage ouvre son détail, élément par élément : produit créé ou mis à jour, stock publié, commande importée, exécutée ou annulée, photo reprise, webhook recréé… (200 éléments au plus par passage). Les passages qui n'ont rien changé peuvent être masqués.
Les « Points à traiter »
Une ligne qui ne passe pas ne bloque jamais la synchronisation : elle devient un point à traiter et le reste continue. Les points des fiches et du stock disparaissent d'eux-mêmes quand leur cause est corrigée. Les points des commandes portent deux boutons.
- « Rejouer » relit la commande dans la boutique et retente l'import, quel que soit son âge. Il n'est pas proposé pour les points de remontée (exécution, annulation en boutique) : le passage suivant les retente de lui-même.
- « Ignorer » range le point : un point ignoré ne revient pas dans la liste. « Tout ignorer », en tête de la liste, range d'un coup tous les points ouverts, y compris ceux qui ne sont pas affichés, après confirmation.
Fiches produits
- Cause
- Ce produit est d'un type que le connecteur ne publie pas. Les produits simples, les kits et les produits à déclinaisons sont publiés.
- Que faire
- Rien à faire dans GSE-Web. Gérez ce produit directement dans la boutique.
- Cause
- Le produit n'a pas de prix de vente dans GSE-Web.
- Que faire
- Renseignez son prix de vente. Le point disparaît au passage suivant.
- Cause
- Les prix sont publiés TTC et le produit n'a pas de taux de TVA.
- Que faire
- Renseignez le taux de TVA du produit.
- Cause
- La variante de la boutique qui porte cette référence est déjà reliée à un autre produit de GSE-Web, appartient à un produit à plusieurs variantes alors que celui de GSE-Web est simple (ou l'inverse), ou la boutique porte la même référence sur plusieurs variantes. Une référence qui contient une virgule ne peut pas non plus être recherchée en boutique.
- Que faire
- Faites en sorte qu'une référence désigne un seul produit, des deux côtés.
- Cause
- Shopify a refusé la fiche ; son code de refus est affiché.
- Que faire
- Vérifiez le produit dans la boutique à partir de ce code.
- Cause
- La fiche existe dans Shopify, mais n'a pas pu être publiée au canal « Boutique en ligne » : aucun client ne peut l'acheter.
- Que faire
- Publiez le produit sur la boutique en ligne dans Shopify, puis « Ignorer ». Vérifiez aussi les droits de publication de l'app (
read_publications,write_publications). Ce point ne disparaît pas seul : GSE-Web ne republie jamais une fiche existante.
- Cause
- Le produit relié n'existe plus dans la boutique.
- Que faire
- Recréez-le dans la boutique avec la même référence. S'il ne doit plus y figurer, écrivez-nous.
- Cause
- Le produit est passé de simple à « à déclinaisons » (ou l'inverse) : la fiche Shopify de l'ancien type ne lui correspond plus. Le lien a été retiré ; la nouvelle fiche suit le type actuel.
- Que faire
- Supprimez ou archivez l'ancienne fiche dans Shopify, puis « Ignorer ».
- Cause
- Le kit n'a aucun composant, l'un d'eux est archivé ou inactif, ou la quantité d'un composant est saisie dans une autre unité que son unité de base. Le kit n'est pas mis en vente.
- Que faire
- Corrigez la nomenclature du kit. Le point disparaît au passage suivant.
- Cause
- Un produit à déclinaisons se vend par ses déclinaisons : sans déclinaison active, il n'est pas mis en vente.
- Que faire
- Créez une déclinaison, ou réactivez-en une. Le point disparaît au passage suivant.
- Cause
- La déclinaison ne peut pas être publiée : son produit parent est introuvable, archivé ou pas encore publié en boutique, ou ses axes et valeurs sont invalides (Shopify accepte trois axes au plus). Le motif est affiché entre parenthèses.
- Que faire
- Corrigez la cause indiquée, sur le produit parent ou sur la déclinaison. Le point disparaît au passage suivant.
- Cause
- Une photo de la boutique n'a pas pu être recopiée sur la fiche. Motifs possibles : image introuvable, format non pris en charge (JPEG, PNG, WebP et GIF sont acceptés), plus de 5 Mo ou illisible, boutique injoignable (nouvel essai au passage suivant), adresse d'image non sûre (HTTPS public exigé), plus de 20 photos (les suivantes ne sont pas reprises).
- Que faire
- Vérifiez la photo dans les médias du produit en boutique. Le point disparaît quand tout est importé ; le reste du produit est repris quand même.
Stock
- Cause
- Le stock disponible porte des décimales ; la boutique ne vend que des unités entières.
- Que faire
- Information seulement : la boutique affiche l'unité inférieure.
- Cause
- Shopify a refusé la quantité ; son code de refus est affiché.
- Que faire
- Vérifiez la fiche du produit dans la boutique à partir de ce code.
- Cause
- Le stock ne peut pas être envoyé : aucun emplacement n'a été choisi, ou la boutique refuse celui qui l'a été (supprimé, désactivé, droit manquant). GSE-Web ne se replie jamais sur un autre emplacement.
- Que faire
- Choisissez un emplacement actif dans la configuration (mettez la connexion en pause pour le changer), « Enregistrer », « Tester la connexion », puis « Reprendre ».
Commandes
- Cause
- Une ligne de la commande porte une référence absente de GSE-Web.
- Que faire
- Créez le produit avec la même référence, puis « Rejouer ».
- Cause
- Une ligne désigne une variante que GSE-Web ne connaît pas, ou la référence d'un produit à déclinaisons lui-même, sans sa déclinaison.
- Que faire
- Variante inconnue : créez la déclinaison avec la même référence que la variante, puis « Rejouer ». Référence du produit parent commandée sans déclinaison : traitez la commande à la main.
- Cause
- Sans e-mail, l'acheteur ne peut pas être retrouvé ni créé comme client.
- Que faire
- Ajoutez l'e-mail du client à la commande dans la boutique, puis « Rejouer ». Si l'e-mail y figure déjà, vérifiez l'accès de l'app aux données client protégées.
- Cause
- Shopify ne communique ni le nom, ni l'e-mail, ni l'adresse de l'acheteur à l'app tant qu'elle n'a pas déclaré l'usage des données client protégées.
- Que faire
- Dans le Dev Dashboard, déclarez l'accès aux données client protégées (nom, e-mail, adresse), publiez une version de l'app, puis « Rejouer ».
- Cause
- Le client qui correspond à cet acheteur a été archivé.
- Que faire
- Aucun bon n'est créé. Traitez cette commande à la main.
- Cause
- La commande est dans une autre devise que votre organisation.
- Que faire
- Traitez cette commande à la main.
- Cause
- Au rattrapage, la commande dépasse l'« Âge maximal d'une commande rattrapée ».
- Que faire
- « Rejouer » l'importe quand même.
- Cause
- La commande était déjà exécutée (en tout ou partie) dans Shopify quand elle est arrivée : vente en caisse (Shopify POS) ou expédition faite depuis l'administration Shopify. Un bon la ferait sortir une seconde fois ; sa sortie de stock n'est donc pas enregistrée dans GSE-Web.
- Que faire
- Saisissez la sortie de stock correspondante dans GSE-Web (sinon GSE-Web republiera son ancien disponible en boutique), puis « Ignorer ».
- Cause
- Le bon est déjà en préparation : GSE-Web ne l'annule pas tout seul.
- Que faire
- Décidez avec l'équipe. Si le bon doit être annulé, libérez-le, puis « Rejouer ».
- Cause
- La commande a changé dans la boutique après la création du bon ; la modification n'est pas reportée.
- Que faire
- Comparez la commande et le bon, et corrigez le bon si besoin.
- Cause
- L'import a échoué ; le motif est affiché entre parenthèses.
- Que faire
- Corrigez la cause indiquée, puis « Rejouer ».
- Cause
- La commande contient un kit dont la nomenclature ne tient pas : aucun composant, composant archivé ou inactif, ou unité différente de l'unité de base. Aucun bon n'est créé.
- Que faire
- Corrigez la nomenclature du kit, puis « Rejouer ».
- Cause
- Shopify a refusé d'exécuter ou d'annuler la commande, ne l'a pas trouvée, ou en garde une partie en attente (ordre d'exécution suspendu ou planifié) ; le message le précise.
- Que faire
- Vérifiez la commande dans la boutique et exécutez-la ou annulez-la à la main si besoin : le passage suivant retente de lui-même tant que le bon l'appelle.
- Cause
- Le bon a été annulé dans GSE-Web, mais la boutique avait déjà exécuté ou clos la commande : GSE-Web ne la défait pas.
- Que faire
- Réglez la situation avec le client (remboursement, retour) directement dans la boutique.
Webhooks
- Cause
- Shopify supprime un abonnement de webhook après plusieurs échecs de livraison, ou un abonnement de l'app a été supprimé dans la boutique.
- Que faire
- Rien à faire : le contrôle des webhooks, toutes les 6 heures, les recrée et rattrape les commandes.
Pause, reprise et changements
Le connecteur se coupe et se rouvre à tout moment. Certains changements ont une règle, que l'écran rappelle et que le serveur fait respecter.
« Mettre en pause »
Plus rien n'est envoyé ni importé, et rien n'est perdu. Le stock affiché en boutique reste celui du dernier envoi.
« Reprendre »
La boutique est de nouveau vérifiée (identifiants, droits, devise, régime de prix, emplacement), puis le rattrapage est lancé : les commandes passées pendant la pause sont importées si elles ont moins de N jours (« Âge maximal d'une commande rattrapée », 30 par défaut) et si Shopify les rend encore. Plus anciennes, elles deviennent des points à traiter.
Changer d'identifiants, de régime HT/TTC ou d'emplacement
Sous une connexion active, le domaine, les identifiants, « Prix publiés » et l'emplacement sont verrouillés. Suivez cet ordre : « Mettre en pause », modifier, « Enregistrer », « Tester la connexion », « Reprendre ». Un nouvel emplacement reçoit tout le stock ; l'ancien n'est pas remis à zéro — faites-le dans Shopify, la boutique additionnant les emplacements.
Changer de boutique
« Déconnecter » d'abord : les abonnements de webhook de l'ancienne boutique sont retirés. Saisissez ensuite la nouvelle boutique ; l'emplacement est à choisir de nouveau.
Reconnecter la même boutique
Les produits, les commandes et les clients déjà reliés sont retrouvés : aucun second bon n'est créé pour une commande déjà importée, et tout le stock est renvoyé.
Changer un réglage de fiche
Après un changement de « Prix publiés » ou de « Créer et mettre à jour les fiches produits en boutique », le passage suivant relit tout le catalogue. Un changement de « Magasin publié » renvoie tout le stock.
« Déconnecter »
Les abonnements de webhook sont retirés de la boutique et les identifiants effacés. Rien n'est supprimé en boutique ni dans GSE-Web : les bons et les clients déjà importés restent. Si la boutique ne répond pas, l'écran vous demande de supprimer vous-même les abonnements de l'app depuis Shopify.
Fermeture du module
Si KLS-Concept ferme le module pour votre organisation, tout s'arrête sans rien supprimer. À la réouverture, le passage suivant rattrape les commandes et republie le stock.
Sécurité et données
Ce que le connecteur garde, et comment.
Identifiants chiffrés
Le secret de l'app, l'ID client ou le jeton Admin sont chiffrés sur le serveur (AES-256-GCM). Ils ne sont jamais réaffichés, ni inscrits dans les journaux. Le jeton de 24 heures d'une app du Dev Dashboard n'est jamais enregistré.
Double authentification
Elle est exigée pour saisir ou remplacer les identifiants d'une boutique.
Domaine Shopify seulement
Le connecteur n'appelle que le domaine …myshopify.com saisi, en HTTPS ; aucune redirection n'est suivie. Les photos reprises ne sont téléchargées que depuis une adresse HTTPS publique, sans jamais transmettre le jeton.
Webhooks signés
Chaque webhook reçu est signé avec le secret de l'app, et sa signature est vérifiée avant tout traitement. Il ne sert que de signal : la commande est relue auprès de Shopify, et son contenu n'est pas conservé.
Données de l'acheteur
Ses coordonnées sont reprises dans sa fiche client et l'adresse de livraison sur le bon. Le lien avec la boutique ne garde qu'une empreinte de son e-mail.
Rien dans l'export
Les identifiants chiffrés ne figurent pas dans l'export de portabilité de l'organisation.
Dépannage
Le message affiché par l'écran, sa cause et ce qu'il faut faire. Le code entre crochets aide le support à retrouver le cas.
« Arrêtée par le serveur — vérifiez les identifiants et testez »
Après cinq refus d'authentification d'affilée (app désinstallée, secret régénéré, jeton révoqué), le serveur arrête la connexion pour ne pas insister. Vérifiez l'app dans Shopify, saisissez de nouveaux identifiants si besoin, « Enregistrer », « Tester la connexion », puis « Activer ».
- Que faire
- Saisissez le domaine d'administration de la boutique (…myshopify.com), pas son adresse publique. L'adresse d'administration collée depuis le navigateur est acceptée.
[SHOPIFY_SHOP_DOMAIN_INVALID]
- Que faire
- Vérifiez l'ID client et le secret dans les paramètres de l'app (Dev Dashboard), que l'app est bien installée sur cette boutique, et que l'app et la boutique sont dans la même organisation.
[SHOPIFY_SHOP_AUTH_FAILED]
- Que faire
- Les identifiants appartiennent à une autre boutique : corrigez le domaine, ou saisissez les identifiants de l'app installée sur cette boutique.
[SHOPIFY_SHOP_DOMAIN_MISMATCH]
- Que faire
- Dans le Dev Dashboard, cochez les droits manquants, publiez une nouvelle version et réinstallez l'app sur la boutique, puis testez à nouveau. L'écran affiche la liste des droits manquants.
[SHOPIFY_SHOP_SCOPES_MISSING]
- Que faire
- Le connecteur ne relie qu'une boutique dans la devise de votre organisation.
[SHOPIFY_SHOP_CURRENCY_MISMATCH]
- Que faire
- Dans « Réglages », choisissez pour « Prix publiés » le régime de la boutique (« Inclure les taxes dans les prix », dans Paramètres › Taxes et droits de douane). Mettez d'abord la connexion en pause si elle est active, enregistrez, puis testez.
[SHOPIFY_SHOP_PRICE_MODE_MISMATCH]
- Que faire
- « Tester la connexion », choisissez l'« Emplacement de la boutique », « Enregistrer », puis « Activer ».
[SHOPIFY_LOCATION_REQUIRED]
- Que faire
- Mettez la connexion en pause, « Tester la connexion » (la liste des emplacements est rechargée), choisissez un emplacement actif, « Enregistrer », puis « Reprendre ».
[SHOPIFY_LOCATION_NOT_FOUND]
- Que faire
- Réglez la situation de la boutique avec Shopify (abonnement, paiement) ; la synchronisation reprend ensuite d'elle-même.
[SHOPIFY_SHOP_UNAVAILABLE]
- Que faire
- Vérifiez que la boutique répond, puis réessayez.
[SHOPIFY_SHOP_UNREACHABLE]
- Que faire
- Réessayez un peu plus tard.
[SHOPIFY_SHOP_TIMEOUT]
- Que faire
- Patientez : le passage suivant reprend de lui-même.
[SHOPIFY_SHOP_RATE_LIMITED]
- Que faire
- Réessayez ; si le message revient, écrivez-nous avec le code ci-dessous.
[SHOPIFY_SHOP_RESPONSE_INVALID]
- Que faire
- « Mettre en pause », modifier, « Enregistrer », « Tester la connexion », « Reprendre ».
[SHOPIFY_CONNECTION_ACTIVE_CHANGE_REFUSED]
- Que faire
- « Déconnecter », puis saisissez la nouvelle boutique.
[SHOPIFY_SHOP_CHANGE_REQUIRES_DISCONNECT]
- Que faire
- Suivez cet ordre : « Mettre en pause », modifiez « Prix publiés », enregistrez, testez, puis « Reprendre ». Le régime est vérifié contre la boutique au test et à la reprise.
[SHOPIFY_PRICE_MODE_CHANGE_REQUIRES_PAUSE]
- Que faire
- Saisissez le secret avec l'ID client (ou avec le jeton Admin), ou laissez tout vide pour garder les identifiants enregistrés.
[SHOPIFY_CREDENTIALS_REQUIRED]
- Que faire
- Activez-la dans « Mes informations » (l'écran propose « Ouvrir « Mes informations » »), puis enregistrez de nouveau.
[SHOPIFY_CONNECTION_TWO_FACTOR_REQUIRED]
- Que faire
- Choisissez un magasin réel comme « Magasin publié ».
[SHOPIFY_WAREHOUSE_EXERCISE_REFUSED]
- Que faire
- Saisissez de nouveau le secret et l'ID client (ou le jeton), testez, puis activez.
[INTEGRATIONS_CREDENTIALS_UNREADABLE]
- Que faire
- Attendez la fin du passage en cours.
[INTEGRATIONS_CONNECTION_BUSY]
Questions fréquentes
Les produits à variantes sont-ils pris en charge ?
Oui. Un produit à déclinaisons est publié comme un produit à options, et chacune de ses déclinaisons comme une variante, avec sa référence, son prix et son stock. Shopify accepte trois axes au plus (taille, couleur, matière…). Une commande d'une variante donne un bon sur la déclinaison.
Peut-on relier plusieurs boutiques ou plusieurs emplacements ?
Non. Une organisation relie une boutique, et un magasin de GSE-Web, le « Magasin publié », alimente un seul emplacement de la boutique. Les autres emplacements Shopify ne sont pas touchés.
Les livraisons sont-elles renvoyées à la boutique ?
Oui, si « Remonter les livraisons et annulations à la boutique » est coché, ce qui est le cas par défaut. Un bon livré exécute sa commande en boutique ; s'il est parti dans une expédition, le transporteur et le n° de suivi sont transmis, et Shopify envoie au client son e-mail d'expédition. Un bon annulé dans GSE-Web annule sa commande en boutique, sans remboursement. GSE-Web n'écrit jamais les lignes d'une commande.
Les images et la description des produits sont-elles échangées ?
Elles ne partent jamais de GSE-Web : photos et description se gèrent dans Shopify. En revanche, si vous cochez « Reprendre la description et les photos de la boutique », elles sont recopiées dans GSE-Web sur les produits reliés. Les photos et la description propres à chaque déclinaison ne sont pas reprises.
Les collections, les balises et les taxes de la boutique sont-elles reprises ?
Non. Elles restent gérées dans Shopify, et GSE-Web ne les reprend pas.
Et les ventes en caisse (Shopify POS) ?
Une commande déjà exécutée dans Shopify quand elle arrive, comme une vente en caisse, ne devient pas un bon : la marchandise est déjà partie. Un point à traiter vous demande d'en saisir la sortie de stock dans GSE-Web ; sinon, GSE-Web republierait son ancien disponible en boutique.
Que se passe-t-il si je mets en pause ou si le module est fermé ?
Rien n'est envoyé ni importé, et rien n'est supprimé. Le stock en boutique reste celui du dernier envoi. À la reprise, les commandes passées entre-temps sont rattrapées si elles ont moins de 30 jours (réglable de 1 à 90, et 60 jours au plus sans le droit read_all_orders).
Au bout de combien de temps une commande apparaît-elle dans GSE-Web ?
Aussitôt, par webhook. Si un webhook se perd, le passage suivant, toutes les 5 minutes, rattrape la commande.
Peut-on vendre en boutique un produit qui n'est plus en stock ?
Le risque est réduit à quelques secondes, sans disparaître. Le stock part vers la boutique quelques secondes après chaque sortie, entrée ou réservation faite dans GSE-Web, et chaque commande de la boutique réserve aussitôt toute sa quantité. Une vente en boutique au moment précis d'une sortie au magasin reste possible : elle devient un bon dont le manque se lit « En attente de réception ».
Un acheteur déjà présent dans mes tiers est-il reconnu ?
Non. Le connecteur crée un client « particulier » par acheteur et le retrouve par son e-mail aux commandes suivantes, mais il ne le rapproche pas d'un tiers déjà saisi dans GSE-Web.
Les commandes passées avant l'activation sont-elles importées ?
Non. Seules les commandes reçues après l'activation sont importées.
Comment obtenir le connecteur ?
Les modules « Intégrations » et « Shopify » sont ouverts organisation par organisation par KLS-Concept. Écrivez-nous depuis la page de contact.
Relier votre boutique Shopify
Demandez l'ouverture du connecteur pour votre organisation, ou posez-nous vos questions sur votre cas.