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.
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
Ouvrir le Dev Dashboard depuis votre boutique
Créer l'app
Définir les scopes d'accès et publier la version
-
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).
Installer l'app sur votre boutique
Copier 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 :Étape 2 : connecter depuis Semji
Ouvrir les intégrations CMS
Saisir les identifiants de votre boutique
- 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.
Choisir les outils Shopify
- 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.
Connecter
Ce que Semji peut faire une fois connecté
- 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.
Réseau et pare-feu
Semji appelle uniquement l’Admin API de Shopify sur le domainemyshopify.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 rejected the credentials. Check the Client ID and Client secret, and that the app is installed on this store (the app and the store must belong to the same Shopify organization)."
"Shopify rejected the credentials. Check the Client ID and Client secret, and that the app is installed on this store (the app and the store must belong to the same Shopify organization)."
- 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.
- 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.
- 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.
"The app is missing Admin API access scopes. Grant read_content, write_content, read_products, write_products, read_translations, write_translations and read_locales on its version, reinstall it, then try again."
"The app is missing Admin API access scopes. Grant read_content, write_content, read_products, write_products, read_translations, write_translations and read_locales on its version, reinstall it, then try again."
"Could not connect to the Shopify store. Check the store domain and the app credentials."
"Could not connect to the Shopify store. Check the store domain and the app credentials."
- Le domaine de la boutique est votre domaine public (par exemple
www.your-store.com) : saisissez plutôt votre domaineyour-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.
"No Shopify store answers on this domain. Check the store domain."
"No Shopify store answers on this domain. Check the store domain."
myshopify.com : il peut différer du nom de votre boutique ou de
son domaine public."The store is not reachable through its Admin API right now (frozen, locked or behind a security challenge). Check the store status in Shopify and try again."
"The store is not reachable through its Admin API right now (frozen, locked or behind a security challenge). Check the store status in Shopify and try again."
"The store cannot be reached. Check the domain and try again."
"The store cannot be reached. Check the domain and try again."
"This workspace is already connected to a Shopify store. Disconnect the existing integration before creating a new one."
"This workspace is already connected to a Shopify store. Disconnect the existing integration before creating a new one."
Un agent signale une erreur d'authentification ou de permission Shopify
Un agent signale une erreur d'authentification ou de permission Shopify
Un agent signale qu'une langue n'est pas activée sur la boutique
Un agent signale qu'une langue n'est pas activée sur la boutique
Une modification de produit ou de collection est passée en ligne immédiatement
Une modification de produit ou de collection est passée en ligne immédiatement
Voir aussi
- Synchroniser des brouillons vers votre CMS : flux de publication via l’API, si vous préférez piloter la synchronisation vous-même.