Skip to main content
Semji se connecte à Shopify via la GraphQL Admin API, avec une app que vous créez pour Semji dans le Shopify Dev Dashboard de votre boutique. Vous donnez à Semji le Client ID et le Client secret de l’app. Semji les échange contre un jeton d’accès à l’Admin API valable 24 heures (le client credentials grant de Shopify) et le renouvelle seul. Une fois connectés, les agents IA de Semji peuvent travailler sur les articles de blog, les pages, les descriptions de collections et les fiches produits, dans toutes les langues activées sur votre boutique. Compatible avec tous les plans Shopify.

Prérequis

  • Le domaine myshopify.com de votre boutique (par exemple your-store.myshopify.com). Semji accepte aussi le handle seul (your-store) ou l’URL de votre admin (https://admin.shopify.com/store/your-store). Votre domaine public (www.your-store.com) n’est pas accepté.
  • Un accès à votre admin Shopify en tant que propriétaire de la boutique, ou comme membre du staff autorisé à développer des apps. Les comptes collaborateur ne peuvent pas ouvrir le Dev Dashboard.
  • Une app créée pour Semji depuis l’admin Shopify de votre propre boutique, voir l’étape 1. Shopify n’autorise une app à demander des jetons que pour les boutiques de sa propre organisation. Une app créée dans l’organisation d’une agence ou d’un partenaire ne peut donc pas être utilisée.
  • Vous êtes propriétaire du workspace dans Semji. La connexion est partagée avec tout le workspace, et un workspace connecte une seule boutique Shopify.
La disponibilité de l’intégration Shopify dépend de votre plan Semji. Si l’intégration n’apparaît pas dans Settings → Integrations, ou ouvre une fenêtre d’upgrade à la place du formulaire de connexion, contactez votre account manager.
Depuis le 1er janvier 2026, Shopify ne permet plus de créer des custom apps directement dans l’admin Shopify, et Semji n’accepte pas de jeton d’accès Admin API statique (shpat_…). Créez l’app dans le Dev Dashboard comme décrit ci-dessous, même si votre boutique a encore une ancienne custom app.

Étape 1 : créer l’app Semji dans le Dev Dashboard

1

Ouvrir le Dev Dashboard depuis votre boutique

Dans votre admin Shopify, allez dans Settings → Apps → Develop apps et cliquez sur Build apps in Dev Dashboard. Shopify documente ce chemin pour les apps utilisées sur votre propre boutique. La connexion exige que l’app et la boutique appartiennent à la même organisation Shopify.
2

Créer l'app

Dans le Dev Dashboard, ouvrez Apps et cliquez sur Create app. Dans la section Start from Dev Dashboard, donnez-lui un nom reconnaissable (par exemple Semji), puis cliquez sur Create.
3

Définir les scopes d'accès et publier la version

Sur la page Versions de l’app :
  • Scopes (dans la section Access) : saisissez les sept scopes listés dans Scopes d’accès de l’app :
  • App URL : Semji ne l’utilise pas. Si le champ est vide, saisissez https://shopify.dev/apps/default-app-home.
  • Webhooks API version : n’importe quelle version (Semji n’utilise aucun webhook).
Cliquez sur Release, puis de nouveau sur Release pour confirmer (le nom et le message de la version sont facultatifs). Les scopes ne s’appliquent qu’une fois la version publiée.
4

Installer l'app sur votre boutique

Ouvrez la carte Installs de l’app, cliquez sur Install app, sélectionnez votre boutique, puis cliquez sur Install.
5

Copier le Client ID et le Client secret

Ouvrez les Settings de l’app et copiez le Client ID et le Client secret depuis la section Credentials. Traitez le secret comme un mot de passe : ne le partagez que via le formulaire de connexion Semji.
Shopify n’affiche jamais de jeton d’accès Admin API pour une app du Dev Dashboard. Il n’y a rien d’autre à copier : Semji demande son propre jeton avec le Client ID et le Client secret.

Scopes d’accès de l’app

Saisissez tous les scopes suivants sur la version de l’app :
Les sept scopes sont tous requis, même si vous comptez désactiver certains outils. Semji vérifie les scopes accordés à l’app au moment de la connexion et refuse la connexion s’il en manque un.
Modifier les scopes plus tard : ajoutez-les à une nouvelle version de l’app et publiez-la. Pour une boutique de votre propre organisation, la publication de la version valide le changement. Si l’erreur persiste, réinstallez l’app sur la boutique depuis sa carte Installs, puis réessayez.

Étape 2 : connecter depuis Semji

1

Ouvrir les intégrations CMS

Dans Semji, allez dans Settings → Integrations, trouvez Shopify parmi les intégrations CMS et cliquez sur Enable. Si Semji ouvre d’abord la page Shopify, cliquez sur Enable à cet endroit.
2

Saisir les identifiants de votre boutique

Remplissez les trois champs :
  • Store domain : votre domaine myshopify.com, par exemple your-store.myshopify.com (le handle seul ou l’URL de votre admin fonctionnent aussi, pas votre domaine public).
  • Client ID : copié à l’étape 1.
  • Client secret : copié à l’étape 1.
Cliquez sur Next. Semji teste la connexion en direct : il demande un jeton d’accès à votre boutique avec le Client ID et le Client secret, vérifie les scopes accordés à l’app, puis lit le nom et le domaine principal de votre boutique. Rien n’est écrit dans votre boutique.
3

Choisir les outils Shopify

Choisissez ce que les agents IA peuvent faire sur votre boutique. Tous les outils sont activés par défaut, et vous pouvez désactiver ceux que vous voulez :
  • Describe content model : inspecter les langues et les champs modifiables des pages, collections et produits.
  • List contents : parcourir et rechercher les pages, collections et produits.
  • Read content : récupérer une page, une collection ou un produit et son contenu.
  • Create & update content : créer et modifier des pages et des produits, modifier le contenu des collections.
  • Delete content : supprimer des pages (destructif).
  • Describe blog model : inspecter les blogs, les tags, les langues et les champs modifiables des articles de blog.
  • List blog posts : parcourir et rechercher les articles de blog.
  • Read blog post : récupérer un article de blog et son contenu.
  • Create & update blog posts : créer et modifier des articles de blog (en brouillon par défaut).
  • Delete blog post : supprimer des articles de blog (destructif).
  • Register translations : enregistrer la traduction d’une entrée pour une langue de la boutique.
4

Connecter

Cliquez sur Connect. Semji vérifie les identifiants une dernière fois, puis enregistre la connexion. Shopify apparaît alors comme Enabled.

Ce que Semji peut faire une fois connecté

Quelques garanties intégrées au connecteur :
  • Les collections ne sont jamais créées ni supprimées, et les produits ne sont jamais supprimés. Un produit créé par Semji est un brouillon qui contient uniquement son titre, sa description, son handle et son aperçu dans les moteurs de recherche. Définissez son prix, son stock, ses variantes et ses canaux de vente dans Shopify avant de l’activer.
  • Le prix, le stock, les tags et le vendor d’un produit ne sont jamais écrits, et son statut n’est jamais modifié.
  • Les nouveaux articles de blog et les nouvelles pages restent en brouillon tant que vous ne demandez pas à un agent de les publier, et un article ou une page déjà publié ne repasse jamais en brouillon.
  • Certaines modifications sont visibles immédiatement : toute modification d’un produit actif, d’une collection, d’un article de blog ou d’une page déjà publié (Shopify ne garde aucune révision brouillon), et toute traduction dans une langue publiée. L’agent CMS Publisher vous prévient que le changement sera visible tout de suite et attend votre approbation explicite avant d’écrire.
  • Les modifications sont partielles : seuls les champs que l’agent change sont écrits, tout le reste garde sa valeur actuelle.
  • Changer un handle redirige l’ancienne URL vers la nouvelle.
  • La suppression est limitée aux articles de blog et aux pages, et les agents demandent votre confirmation explicite de l’entrée exacte avant de supprimer.

Langues et traductions

  • Les traductions sont enregistrées sur l’entrée d’origine, pour l’une des langues activées sur votre boutique (Settings → Languages dans Shopify), jamais comme une copie séparée par langue. Semji écrit les traductions via l’Admin API de Shopify.
  • La langue cible doit être activée sur votre boutique et ne peut pas être sa langue principale.
  • Une traduction dans une langue publiée est visible immédiatement. Dans une langue activée mais pas encore publiée, elle reste invisible pour les acheteurs jusqu’à la publication de la langue.
  • Champs traduisibles : titre, contenu, extrait (articles de blog), titre et description SEO, et handle.
  • Quand l’entrée d’origine change, Shopify marque ses traductions comme obsolètes. Les agents voient ce marqueur quand ils lisent l’entrée.

Gérer ou déconnecter

Dans Settings → Integrations, ouvrez Shopify :
  • Manage tools : activer ou désactiver chaque outil individuellement.
  • Disable : supprime la connexion pour tout le workspace. Cela ne désinstalle pas l’app de votre boutique. Désinstallez-la depuis votre admin Shopify (Settings → Apps) si vous n’en avez plus besoin.
Le domaine de la boutique, le Client ID et le Client secret ne peuvent pas être modifiés dans Semji. Pour connecter une autre boutique ou changer les identifiants, désactivez l’intégration et reconnectez-la (la sélection des outils est réinitialisée).
Faire tourner le Client secret : dans le Dev Dashboard, ouvrez les Settings de l’app, cliquez sur Rotate à côté du Client secret et générez un nouveau secret. Désactivez l’intégration Shopify dans Semji et reconnectez-la avec le nouveau secret (choisissez à nouveau les outils : la sélection n’est pas conservée), puis révoquez l’ancien secret dans le Dev Dashboard. Révoquer l’ancien secret en premier coupe la connexion jusqu’à ce que vous reconnectiez.

Réseau et pare-feu

Semji appelle uniquement l’Admin API de Shopify sur le domaine myshopify.com de votre boutique, hébergé par Shopify. Le domaine public de votre storefront n’est jamais appelé (Semji s’en sert seulement pour construire les liens vers vos contenus). Un pare-feu, un WAF ou une règle Cloudflare devant votre storefront n’affecte donc pas la connexion, et il n’y a aucune adresse IP à autoriser.

Dépannage

Shopify a refusé de délivrer un jeton d’accès. Vérifiez, dans l’ordre :
  1. Le Client ID ou le Client secret est incorrect : copiez-les de nouveau depuis les Settings de l’app dans le Dev Dashboard. Si le secret a été renouvelé, utilisez le nouveau.
  2. L’app n’est pas installée sur la boutique : ouvrez la carte Installs de l’app dans le Dev Dashboard et installez-la sur votre boutique.
  3. L’app appartient à une autre organisation : une app créée dans l’organisation d’une agence ou d’un partenaire ne peut pas demander de jetons pour votre boutique. Créez l’app depuis votre propre admin Shopify (Settings → Apps → Develop apps → Build apps in Dev Dashboard) comme décrit à l’étape 1.
La version publiée de l’app n’a pas au moins un des sept scopes. Ajoutez les scopes manquants à une nouvelle version de l’app, publiez-la, puis réessayez. Si l’erreur persiste, réinstallez l’app sur la boutique depuis sa carte Installs. Voir Scopes d’accès de l’app.
  • Le domaine de la boutique est votre domaine public (par exemple www.your-store.com) : saisissez plutôt votre domaine your-store.myshopify.com.
  • Le domaine de la boutique est mal formé : un handle de boutique ne contient que des lettres minuscules, des chiffres et des tirets.
  • Shopify a renvoyé une erreur temporaire : attendez une minute et réessayez.
Aucune boutique n’existe avec ce handle. Vérifiez l’orthographe de votre domaine myshopify.com : il peut différer du nom de votre boutique ou de son domaine public.
Shopify a répondu que la boutique ne peut pas traiter de requêtes API, par exemple une boutique gelée pour une facture impayée, ou une boutique verrouillée. Vérifiez le statut de la boutique dans votre admin Shopify, puis réessayez.
La requête n’a pas atteint Shopify (domaine inconnu, erreur réseau ou timeout). Vérifiez le domaine de la boutique et réessayez un peu plus tard.
Un workspace ne connecte qu’une seule boutique Shopify. Désactivez d’abord l’intégration Shopify actuelle, puis connectez la nouvelle boutique.
Si vous venez de réinstaller l’app ou de publier une nouvelle version, redemandez à l’agent : Semji demande un nouveau jeton après la première requête refusée. Sinon, la connexion a fonctionné mais Shopify refuse désormais les requêtes. Causes fréquentes : l’app a été désinstallée de la boutique, son Client secret a été renouvelé ou révoqué, ou ses scopes ont changé. Réinstallez l’app ou publiez les scopes manquants. Si le secret a changé, désactivez l’intégration et reconnectez-la avec le nouveau secret.
Les traductions ne peuvent cibler qu’une langue activée sur votre boutique. Ajoutez la langue dans Settings → Languages de votre admin Shopify, puis redemandez à l’agent.
C’est le comportement de Shopify, pas un bug : les collections, les produits actifs, ainsi que les articles de blog et les pages publiés n’ont pas de révision brouillon, donc chaque modification est en ligne sur le storefront. C’est pourquoi l’agent CMS Publisher de Semji vous prévient et demande votre approbation avant une telle écriture. Les nouveaux articles de blog, pages et produits, eux, sont créés en brouillon, et un produit en brouillon reste masqué jusqu’à ce que vous l’activiez.

Voir aussi