Skip to main content

En un coup d’œil

  • Ce que vous pouvez faire : donner aux agents Semji un accès contrôlé aux pages CMS, blocs CMS, contenus produits et contenus catégories de votre boutique Magento.
  • Pour qui : propriétaires de l’espace de travail et administrateurs Magento.
  • Compatibilité : Magento 2.4, Open Source et Adobe Commerce, auto-hébergé ou sur l’infrastructure cloud d’Adobe Commerce (PaaS).
Semji se connecte à Magento via la REST Admin API, en authentifiant chaque requête avec un token d’accès d’Intégration envoyé comme identifiant Bearer.

Prérequis

  • Magento 2.4.x, Open Source ou Adobe Commerce, servi en HTTPS avec un certificat émis par une autorité publiquement reconnue, et accessible depuis l’internet public. Les noms d’hôte privés, les certificats auto-signés et le HTTP simple sont refusés.
  • Une Intégration dédiée créée pour Semji — jamais le token d’un compte administrateur personnel.
  • Les autorisations API (Resource Access) de l’Intégration accordées telles que listées dans Autorisations API de l’Intégration ci-dessous.
  • Sur Magento 2.4.4 et versions suivantes : le réglage « Allow OAuth Access Tokens to be used as standalone Bearer tokens » activé. Sans cela, chaque requête renvoie une erreur 401, même avec un token valide.
  • Si un pare-feu, un WAF ou une protection anti-bot (Fastly, Cloudflare, Akamai, …) se trouve devant votre boutique, il doit autoriser les adresses IP de Semji sur le chemin de l’API REST — voir Pare-feu et autorisation d’IP.
  • Vous êtes propriétaire de l’espace de travail dans Semji, car la connexion vaut pour toute l’équipe.
  • La disponibilité de l’intégration Magento dépend de votre plan Semji. Si le bouton Connecter ouvre une fenêtre de mise à niveau au lieu du formulaire de connexion, contactez votre account manager.
Adobe Commerce as a Cloud Service — la nouvelle offre SaaS qui s’authentifie via Adobe IMS OAuth — n’est pas prise en charge. Le connecteur s’authentifie exclusivement avec un token d’accès d’Intégration utilisé comme identifiant Bearer.

Autorisations API de l’Intégration

Sur l’onglet API de l’Intégration, avec Resource Access réglé sur Custom, cochez les cases suivantes (les libellés sont ceux affichés dans l’interface d’administration Magento) :
La case des attributs produit se trouve sous Stores, pas sous Catalog. Stores → Attributes → Product et Catalog → Inventory → Products sont deux branches distinctes de l’arbre des permissions malgré des noms proches. Cocher celle de Catalog sans celle de Stores casse la découverte du modèle de contenu pour les produits.
Save Page est une autorisation distincte de Pages. Lire les pages et écrire les pages sont deux ressources ACL différentes chez Magento. Cocher la case parente Pages sélectionne automatiquement ses enfants, mais si vous composez la sélection case par case, n’oubliez pas Save Page — les lectures fonctionneront mais chaque création ou mise à jour échouera avec une erreur 401.
Si les autorisations semblent correctes mais que les requêtes renvoient toujours une erreur 401, rouvrez l’Intégration, re-sélectionnez les ressources et enregistrez à nouveau. Une sélection personnalisée partiellement enregistrée peut laisser les autorisations dans un état incohérent, et un nouvel enregistrement propre corrige le problème.

Comment connecter votre boutique Magento

1

Créer une Intégration dédiée dans Magento

Dans l’administration Magento, allez dans System → Extensions → Integrations (Système → Extensions → Intégrations) et cliquez sur Add New Integration. Donnez-lui un nom reconnaissable, par exemple Semji.Ne réutilisez pas le token d’un compte administrateur personnel : une Intégration dédiée peut être limitée exactement aux autorisations dont Semji a besoin, continue de fonctionner même en cas de changement ou de départ d’un administrateur, et peut être révoquée seule sans affecter aucun utilisateur.
2

Accorder les autorisations API

Sur l’onglet API de l’Intégration, réglez Resource Access sur Custom et cochez toutes les cases listées dans Autorisations API de l’Intégration ci-dessus. Régler Resource Access sur All fonctionne aussi si votre politique de sécurité le permet — vous pourrez restreindre plus tard.
3

Activer l'Intégration et copier le token d'accès

Enregistrez, puis cliquez sur Activate sur la ligne de l’Intégration et approuvez le récapitulatif des autorisations. Magento affiche quatre identifiants — Semji n’a besoin que de l’Access Token. Copiez-le.
4

Sur Magento 2.4.4+, autoriser le token comme Bearer token autonome

Depuis Magento 2.4.4, la REST Admin API refuse les tokens d’accès d’Intégration utilisés comme simples Bearer tokens, sauf si la boutique l’autorise explicitement. Activez le réglage sous Stores → Configuration → Services → OAuth → Consumer Settings → « Allow OAuth Access Tokens to be used as standalone Bearer tokens », ou via la CLI :
Un vidage du cache peut être nécessaire pour que le changement prenne effet.
5

Connecter depuis Semji

Vous devez être propriétaire du workspace, car la connexion vaut pour toute l’équipe. Dans Semji, ouvrez Paramètres → Intégrations, allez dans l’onglet CMS et cliquez sur Connecter sur la ligne Magento.Remplissez les deux champs :
  • URL de la boutique : l’adresse HTTPS canonique de votre boutique, par exemple https://votre-boutique.com. Semji ne suit pas les redirections, saisissez donc l’URL exacte vers laquelle votre boutique résout — www ou non-www, cela compte.
  • Token d’accès de l’Intégration : l’Access Token copié à l’étape précédente.
Cliquez sur Suivant. Semji teste aussitôt la connexion sur votre boutique.
6

Choisir les outils Magento

Décidez ce que les agents IA peuvent faire sur votre boutique. Tous les outils sont activés par défaut ; vous pouvez en désactiver n’importe lequel :
  • Lister les vues de magasin : lire les vues de magasin et leurs URL de base.
  • Décrire le modèle de contenu : inspecter les champs modifiables des pages, blocs, produits et catégories.
  • Lister les contenus : parcourir et rechercher les pages CMS, blocs, produits et catégories.
  • Lire les contenus : récupérer une page, un bloc, un produit ou une catégorie et son contenu.
  • Créer et mettre à jour du contenu : créer et mettre à jour les pages et blocs CMS, mettre à jour les contenus produits et catégories.
  • Supprimer du contenu : supprimer des pages et blocs CMS.
7

Activer

Cliquez sur Activate. La ligne Magento s’affiche désormais comme connectée.

Ce que Semji peut faire une fois connecté

Quelques garanties intégrées au connecteur :
  • Les produits et catégories ne sont jamais créés ni supprimés — Semji ne fait que mettre à jour les champs de contenu d’entités déjà existantes.
  • Les modifications de produits et catégories sont mises en ligne immédiatement (Magento n’a pas d’état brouillon pour eux), donc les agents montrent le changement exact champ par champ et attendent votre validation explicite avant d’écrire.
  • Les mises à jour de pages et blocs sont sans perte. Les endpoints de sauvegarde de Magento remplacent l’entité entière, donc Semji lit l’entité actuelle, fusionne uniquement les champs modifiés par l’agent, puis réécrit l’ensemble — tout ce que l’agent n’a pas touché est conservé.
  • La suppression n’est jamais exposée aux agents de publication. Même avec l’outil Suppression activé, l’agent CMS Publisher de Semji n’y a volontairement pas accès.

Blog Magento

Si votre boutique dispose de la fonctionnalité blog, Semji la détecte automatiquement et propose un ensemble d’outils dédié au contenu de blog, en plus des outils pages CMS, blocs, produits et catégories ci-dessus :
  • Lister les articles et taxonomies du blog : parcourir les articles, catégories et tags existants.
  • Lire un article de blog : récupérer son contenu.
  • Créer et mettre à jour des articles de blog : rédiger de nouveaux articles en brouillon, ou mettre à jour des articles existants.
  • Supprimer un article de blog : uniquement si vous activez l’outil Suppression.
Les articles de blog suivent le même comportement brouillon par défaut que les pages CMS : les agents les créent et les modifient en brouillon, et la publication sur votre site nécessite une instruction explicite. Si votre boutique ne dispose pas de la fonctionnalité blog, ces outils n’apparaissent tout simplement pas — rien d’autre ne change dans la connexion.
Le contenu Magento est propre à chaque vue de magasin : une même page, un même produit ou une même catégorie peut porter un contenu différent sur chaque vue. Les agents lisent d’abord vos vues de magasin et ciblent une vue explicite quand vous nommez un magasin, une langue ou une locale précise, et les écritures sur les produits et catégories ne visent jamais le scope partagé « all » de Magento — un problème connu de Magento peut réassigner silencieusement les associations de site lors d’écritures sur ce scope.

Gérer ou déconnecter

Depuis Paramètres → Intégrations → CMS, la ligne Magento propose :
  • Gérer les outils : activer ou désactiver chaque outil individuellement.
  • Déconnecter : retirer l’intégration pour tout le workspace.

Pare-feu et autorisation d’IP

Les serveurs de Semji appellent directement la REST Admin API de votre boutique. Si votre boutique se trouve derrière Fastly, Cloudflare ou un autre WAF, celui-ci doit laisser passer ces appels, sinon la connexion échoue. Semji’s servers reach the internet through a fixed set of outbound IP addresses. If a firewall, WAF, or anti-bot protection (Cloudflare, Akamai, Sucuri, …) sits in front of your site, it can block Semji’s requests — typically with a 403 Forbidden — before they ever reach your CMS, even when your credentials are correct. Allow the following Semji IP addresses:
Autorisez ces adresses sur le chemin de l’API REST (/rest/*). Sur les boutiques où la couche périphérique limite le débit ou challenge le trafic API, exemptez aussi les adresses de Semji de ces règles.
Un WAF qui répond avec une page de challenge HTML ou une erreur 403 sur /rest/* fait apparaître chez Semji une erreur de couche de sécurité, même si votre token et vos autorisations sont corrects. Si les identifiants vous semblent corrects, vérifiez d’abord le pare-feu.

Dépannage

Magento renvoie le même statut 401 pour trois problèmes différents — vérifiez-les dans l’ordre :
  1. La valeur du token est incorrecte. Recopiez l’Access Token depuis l’Intégration (System → Extensions → Integrations). Recréer ou réautoriser une Intégration génère un nouveau token.
  2. Sur Magento 2.4.4+, le réglage Bearer est désactivé. Activez « Allow OAuth Access Tokens to be used as standalone Bearer tokens » et videz le cache.
  3. L’Intégration n’a pas les autorisations API. Magento répond 401 avec « The consumer isn’t authorized to access %resources », en nommant la ressource ACL manquante. Accordez toutes les cases de Autorisations API de l’Intégration, enregistrez à nouveau, puis réessayez.
Un moyen rapide de distinguer les cas 1-2 du cas 3 : si certains endpoints REST répondent avec le token pendant que d’autres renvoient 401, le token et le réglage Bearer sont corrects — les 401 restants sont des autorisations manquantes.
GET /rest/all/V1/store/websites a renvoyé une erreur 404. Causes fréquentes :
  • L’URL de la boutique est incorrecte ou pointe vers un chemin de vue de magasin spécifique. Saisissez l’URL de base nue de la boutique.
  • L’URL redirige. Semji ne suit aucune redirection : si https://exemple.com redirige vers https://www.exemple.com, saisissez la version www.
  • Un reverse proxy devant Magento bloque ou supprime le chemin /rest.
La réponse provient d’une couche WAF ou anti-bot (une erreur 403, ou une page de challenge non-JSON) plutôt que de Magento. Autorisez les adresses IP de Semji sur /rest/* — voir Pare-feu et autorisation d’IP.
  • Panne DNS ou hôte hors service.
  • La boutique est trop lente — les réponses doivent arriver en moins de 10 secondes.
  • L’URL pointe vers une adresse privée ou réservée — les hôtes locaux et de réseau privé sont refusés, la boutique doit être accessible publiquement.
Le token s’authentifie, mais l’Intégration n’a pas la ressource ACL pour cette action précise — par exemple, les pages peuvent être lues mais pas enregistrées (Save Page manquant), ou les produits ne peuvent pas être listés (Catalog → Inventory → Products manquant). Accordez la case correspondante dans Autorisations API de l’Intégration et enregistrez à nouveau l’Intégration.
C’est le comportement normal de Magento, pas un bug : les produits et catégories n’ont pas d’état brouillon, donc chaque écriture est immédiatement visible sur le site. Les agents de Semji montrent le diff exact et exigent votre validation explicite avant chaque écriture de produit ou catégorie pour cette raison. Les pages et blocs CMS, à l’inverse, sont créés en brouillon.
  • « Please enter a valid URL. » : la valeur saisie ne correspond pas à une URL.
  • « The store URL must start with https://. » : les boutiques en HTTP ne peuvent pas être connectées.
  • « The store URL points to a private or reserved address, which is not allowed. » : la boutique doit être accessible publiquement.

Articles liés