Interfaces et gestion des stocks
Votre boutique échange des articles, des stocks, des commandes et des clients avec d’autres programmes : via l’API REST de xoPort, l’ancienne interface XML, des intégrations prêtes à l’emploi pour JTL-Wawi, Billbee et OpenXE, ainsi que votre logiciel de comptabilité. Ce guide vous indique quelle méthode choisir en fonction de vos besoins, comment créer et sécuriser des accès, comment protéger vos données contre toute modification avant la prochaine synchronisation et comment résoudre les erreurs courantes.
En bref
- Les nouvelles connexions s'effectuent via l'API REST. Chaque programme dispose de son propre accès sous Outils → Clients OAuth2 xoPort et ne peut effectuer que les opérations que vous lui autorisez.
- Module complémentaire : l’API REST, l’interface XML, le connecteur JTL, Billbee (synchronisation) et Tricoma nécessitent l’activation de l’interface de données.XONIC Premium: xoPort Datenschnittstelle
- Attribuez les droits avec parcimonie : toute personne autorisée à consulter les clients ou les commandes voit les noms, adresses postales et adresses e-mail. Un accès par programme, uniquement aux sections nécessaires.
- Protégez la gestion des données : les verrous d’importation au niveau des articles et les « Paramètres d’importation de produits xoPort » empêchent la prochaine synchronisation d’écraser vos textes ou vos prix.
- Les fichiers CSV et Excel sont décrits dans le guide Importation et exportation (CSV).
Dans ce guide
Non couvert par ce guide : les fichiers CSV et Excel avec Porter (guide Importation et exportation (CSV)), les places de marché (guides « Connexion à eBay » et « Connexion à Kaufland »), le flux de produits pour Google (guide « Google Merchant Center et flux de produits ») et les prestataires de services d'expédition tels que DHL ou GLS (guide « Expédition et livraison »).
Quelle méthode choisir pour quoi ?
Vous configurez les intégrations prêtes à l'emploi dans les paramètres. Pour vos propres programmes, automatisations et prestataires de services, utilisez l'API REST.
| Méthode | À quoi cela sert-il | Emplacement dans le backend | Section |
|---|---|---|---|
| API REST (xoPort) | Nouvelles intégrations, automatisations, prestataires de services : lecture et écriture d'articles, de catégories, de clients, de commandes, de fabricants et plus encore | Outils → Clients OAuth2 xoPort | API REST |
| Interface XML (xoPort) | Connexions existantes à des systèmes de gestion des stocks échangeant des fichiers XML | Paramètres → Interfaces → Systèmes de gestion des stocks/ERP/Comptabilité → Interface de données xoPort | Interface XML |
| CSV-Porter | Fichiers que vous modifiez vous-même, portails de prix, synchronisations simples via un lien | Outils → Gestionnaire d’import/export CSV xoPort | Guide d'importation et d'exportation |
| JTL-Wawi | Articles, prix et stocks depuis JTL-Wawi, commandes et clients vers JTL-Wawi | Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → JTL | JTL-Wawi |
| Billbee | Envoyer des commandes vers Billbee ou importer des commandes depuis Billbee | Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → BillBee, Outils → BillBee (Synchro) | Billbee |
| OpenXE | Articles, stocks, clients et numéros d'expédition depuis OpenXE, commandes sous forme de fichier | Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → OpenXE | OpenXE |
| DATEV Online, Lexware Office | Transfert des factures vers la comptabilité | Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → DATEV Online ou → Lexware Office | Comptabilité |
| n8n, Webhooks, Slack | Notifier d'autres services en cas d'événements, par exemple lors d'une nouvelle commande | Paramètres → Interfaces → Intelligence artificielle → n8n, Paramètres → Interfaces → Outils de chat → Slack | Automatisation |
Vous trouverez toutes les intégrations avec les systèmes de gestion des stocks et de comptabilité sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité. Cliquez pour agrandir.
Le module complémentaire pour l'interface de donnéesXONIC Premium: xoPort Datenschnittstelle
L’API REST, l’interface XML, le connecteur JTL, Billbee (Sync) et la connexion Tricoma ne fonctionnent que si l’interface de données est activée. Sans celle-ci, l’API REST renvoie l’erreur « LICENSE_REQUIRED », et la rubrique Outils → Clients xoPort OAuth2 affiche un message d’avertissement en rouge.
La boutique synchronise ses licences avec le serveur de licences de XONIC. Si cette synchronisation échoue pendant 30 jours, elle désactive l’interface de données et affiche le message « a été désactivée car aucune connexion au serveur d’authentification n’a pu être établie depuis 30 jours ». Dans ce cas, veuillez nous contacter.
API REST (xoPort)
L'API REST est le moyen de créer de nouvelles intégrations. Chaque programme se connecte avec ses propres identifiants (OAuth2) et n'est autorisé à lire ou modifier que les zones que vous lui autorisez.
Créer un accès
- Ouvrez Outils → Clients OAuth2 xoPort et cliquez sur « Créer un nouveau client ».
- Saisissez un « Nom du client », par exemple le nom du programme ou du prestataire de services.
- Sous « Autorisations », sélectionnez « Lecture », « Écriture » ou « Suppression » pour chaque domaine. Au moins une autorisation est obligatoire.
- Facultatif : « Limite de débit (requêtes/heure) » et « Notes », par exemple pour indiquer qui utilise cet accès.
- Créez le client en cliquant sur « Créer un nouveau client ». La boutique affiche l’« ID client » et le « secret client ». Le secret n’apparaît qu’une seule fois : copiez-le immédiatement dans le programme qui doit se connecter.
Un accès destiné à un outil d’analyse des prix ne nécessite que « Produits : lecture » ; tous les autres domaines restent verrouillés. Cliquez pour agrandir.
Choisir les autorisations adaptées
Les autorisations sont classées par rubrique, par exemple Produits, Catégories, Clients, Commandes, Fabricants, Fournisseurs, Médias, Actualités, FAQ, Pages CMS, Contrats, Tickets et Lettres d'information. Elles peuvent être modifiées ultérieurement via « Modifier les autorisations » dans le menu d'actions de l'accès.
Une modification prend effet à partir du prochain jeton. Un jeton contient les autorisations en vigueur au moment de son émission. Un domaine nouvellement débloqué n’est donc accessible au programme qu’une fois qu’il a récupéré un nouveau jeton, au plus tard au bout d’une heure. Une zone retirée reste accessible pour un jeton déjà émis jusqu’à son expiration. Si vous souhaitez y mettre fin immédiatement, sélectionnez ensuite « Révoquer les jetons », voir Retirer immédiatement les autorisations.
Un accès destiné à la synchronisation des articles permet de lire et d'écrire des produits, des catégories et des fabricants, mais ne permet ni de supprimer quoi que ce soit, ni de consulter les données clients. Cliquez pour agrandir.
| Intégration | Autorisations |
|---|---|
| Analyse des prix, comparaison des prix | Produits : lecture |
| Le système de gestion des stocks synchronise les articles | Produits, catégories, fabricants : lecture et écriture |
| Exécution des commandes, prestataires de services d'expédition | Commandes : lecture et écriture |
| Outil de newsletter ou de CRM | Clients ou abonnés à la newsletter : lecture |
| Workflow n8n | uniquement les champs que le workflow lit ou écrit effectivement |
N'attribuez l'action « Supprimer » que si un programme doit réellement supprimer des enregistrements.
Adresse et inscription
Le programme récupère un jeton d'accès à l'aide de l'ID client et de la clé secrète client. Le jeton est valable une heure, après quoi le programme en demande un nouveau. L'adresse du jeton de votre boutique se trouve dans l'encadré d'informations sous Outils → Clients xoPort OAuth2.
| Tâche | Méthode et adresse |
|---|---|
| Récupérer le jeton | POST https://ihr-shop.example/xpanel/xoport/oauth/token |
| Lire les données | GET https://ihr-shop.example/xpanel/xoport/export/json/products |
| Lire un enregistrement | GET …/xpanel/xoport/export/json/product/42 |
| Lire une plage | GET …/xpanel/xoport/export/json/orders/1000:1100 |
| Créer un nouvel enregistrement | POST …/xpanel/xoport/import/json/products |
| Modifier | PUT …/xpanel/xoport/import/json/products |
| supprimer | DELETE …/xpanel/xoport/delete/json/product/42 |
curl -X POST https://ihr-shop.example/xpanel/xoport/oauth/token \
-d "grant_type=client_credentials" \
-d "client_id=<CLIENT_ID>" \
-d "client_secret=<CLIENT_SECRET>"
curl -H "Authorization: Bearer <TOKEN>" \
https://ihr-shop.example/xpanel/xoport/export/json/products?limit=250&offset=0
Chaque adresse se compose de l'/xpanel/xoport/, de la tâche (export, import ou delete), du format json et de la zone. Si le format est différent, l'API renvoie la réponse « Unknown route ». La suppression n'est possible qu'avec la méthode DELETE.
Récupérer toutes les données page par page : avec ?limit= (valeur par défaut 50, maximum 250) et ?offset=, vous pouvez parcourir de grands ensembles de données. La réponse indique le nombre total via stats et, via has_more, précise s’il y a d’autres pages.
Limites
- Limite de requêtes : chaque compte est autorisé à effectuer 5 000 requêtes par heure par défaut ; ce sont les requêtes des 60 dernières minutes qui sont comptabilisées. Dans le champ « Rate Limit (requêtes/heure) » sous « Modifier le client », vous pouvez saisir une valeur inférieure ; celle-ci s'applique immédiatement, y compris pour les jetons en cours. Seul XONIC peut saisir une valeur supérieure à 5 000 après vérification. En cas de dépassement de la limite, le message «
429» s’affiche avec «RATE_LIMIT_EXCEEDED» ; la mention «Retry-After» dans la réponse indique le temps d’attente en secondes. 4.9.17
Si XONIC a attribué une limite de requêtes illimitée à un compte, celle-ci est conservée lors des mises à jour et des contrôles HealthCheck ; les versions antérieures la réinitialisaient à 5 000.ab 4.9.168 Dans « Modifier le client », le champ correspondant à un tel accès est vide, avec la mention « Illimité (défini par XONIC) ». Si vous enregistrez avec ce champ vide, l’accès reste illimité, même si vous modifiez le nom ou les notes ; une valeur inférieure ou égale à 5 000 le limite, et seul XONIC peut alors le rétablir à « illimité ».à partir de la version 4.9.174 Jusqu’à la version 4.9.173, le masque affichait 5 000 pour une telle entrée, et chaque enregistrement fixait la limite à 5 000, même si vous n’aviez modifié que le nom ou les remarques. C’est donc à ces niveaux que XONIC prend en compte les modifications apportées à cette entrée. - Enregistrements par importation : au maximum autant que le permettent les paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → Interface de données xoPort → xoPort API : limite d’importation en masse, 50 par défaut.
- La création et la modification sont distinctes :
POSTne crée que de nouveaux enregistrements et renvoie le message « already exists. Use PUT to update. » si un numéro d’article existe déjà.PUTne modifie que les enregistrements existants.
Vous pouvez modifier la limite de requêtes pour une entrée sous « Modifier le client » ; le masque n'accepte pas les valeurs supérieures à 5 000. Cliquez pour agrandir.
Sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → Interface de données xoPort → xoPort : valider les paramètres de l’interface, vous pouvez valider les paramètres spécifiques à la boutique pour l’API. Sans saisie, l’API n’en détecte aucune. Les identifiants d’accès, les paramètres de licence et de connexion restent toujours verrouillés.ab 4.9.54
Sécuriser l’interface
Un compte est aussi puissant que ses autorisations. Ces mesures garantissent la sécurité de l'interface, même en cas de changement de prestataire.
Un accès par programme
Chaque programme et chaque prestataire dispose de son propre client. Si une collaboration prend fin, sélectionnez « Désactiver » : le client est immédiatement invalidé et tous ses jetons sont révoqués. L'option « Supprimer définitivement » le supprime complètement.
Renouveler la clé secrète
Si un secret a été divulgué ou si une personne qui le connaissait quitte l’équipe, sélectionnez « Renouveler le secret ». L’ancien secret est immédiatement invalidé. Saisissez le nouveau dans le programme.
Vérifier l’utilisation
« Afficher l’utilisation » affiche les requêtes, le taux de réussite et le temps de réponse, ainsi que, pour chaque requête, l’heure, l’adresse, le statut et l’adresse IP, avec le contenu si vous le souhaitez. La boutique conserve les 1 000 dernières requêtes par client.
« Afficher l'utilisation » répertorie chaque requête d'un accès ; le code 403 indique une consultation en dehors des zones autorisées. Cliquez pour agrandir.
Ne figurent pas dans le journal les requêtes que la boutique rejette en raison de la limite de requêtes (429), ni les consultations qu’elle refuse avant même la requête avec un code 400, par exemple en raison d’une valeur de filtre non valide ou d’une indication de page erronée. Ces codes 400 sont néanmoins pris en compte dans le décompte de la limite de requêtes. Si vous recherchez une telle erreur, demandez au programme d’afficher la réponse de l’interface.
Retirer immédiatement les autorisations : révoquer les jetons
Un programme se connecte à l’aide d’un ID client et d’un secret client et reçoit en échange un jeton valable une heure. Si vous modifiez les autorisations d’un accès, un jeton déjà émis conserve les anciennes autorisations jusqu’à son expiration. Voici comment retirer immédiatement un droit :
- Sous « Modifier les autorisations », désactivez la section concernée et enregistrez.
- Dans le menu d’actions de l’accès (flèche à côté de « Modifier le client »), sélectionnez « Révoquer les jetons » et confirmez. Tous les jetons actifs de cet accès sont immédiatement invalidés ; l’ID client et le secret restentinchangés. 4.9.168
- Lors de la prochaine connexion, le programme récupérera automatiquement un nouveau jeton, désormais avec les autorisations modifiées. Vous n’avez rien à modifier dans le programme.
La fonction « Révoquer les jetons » met fin aux sessions en cours d'un accès sans que vous ayez à attribuer un nouveau secret. Cliquez pour agrandir.
- Cette entrée est visible par les collaborateurs autorisés à supprimer des éléments sur cette page, et uniquement pour les accès actifs. La fonction « Désactiver » nécessite le même droit.
- Si cette option n’apparaît pas parce que votre boutique est antérieure à la version 4.9.168, sélectionnez « Désactiver », puis immédiatement après « Activer ». Cela révoque également tous les jetons, tandis que la clé secrète reste inchangée.
- « Renouveler le secret » révoque également les jetons, mais le programme aura alors besoin du nouveau secret. Utilisez cette option si le secret a pu tomber entre de mauvaises mains.
Les données relatives aux clients et aux commandes sont à caractère personnel. Les utilisateurs disposant des droits « Clients : lecture » ou « Commandes : lecture » peuvent consulter les noms, adresses, adresses e-mail et numéros de téléphone. N’accordez ces droits qu’aux programmes qui en ont besoin pour remplir leur fonction. Le journal accessible sous « Afficher l’utilisation » contient les contenus transférés. Lors de la suppression d’un client, vous pouvez le supprimer en cochant « Supprimer également le journal d’accès de ce client ».
« Clients : lecture » fournit en outre les paniers, les articles consultés et les indicateurs de commande par client.ab 4.10
Limiter l’accès aux adresses IP fixes
Sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → Interface de données xoPort → API xoPort : restriction IP (JSON/REST), saisissez les adresses d’où proviennent vos programmes. Chaque requête devra alors comporter à la fois l’une de ces adresses et un jeton valide. Si ce champ reste vide, l’API REST restera accessible à toute requête accompagnée d’un jeton valide.ab 4.9.83
- Une seule adresse ou plusieurs, séparées par des virgules. Une plage telle que
203.0.113.0/24ne correspond jamais ici et bloque tous les programmes. - Si la boutique se trouve derrière un proxy ou Cloudflare, c’est l’adresse que la boutique voit qui fait foi. Si elle refuse un accès, la réponse
IP_NOT_ALLOWEDindique cette adresse, et le tableau de bord affiche le message « xoPort REST : connexion bloquée ». - La liste de l’interface XML (« xoPort : filtre IP ») ne donne pas accès à l’API REST. L’API REST exige toujours un jeton.ab 4.9.83
| Paramètre | s'applique à | Format |
|---|---|---|
| … → Interface de données xoPort → API xoPort : restriction IP (JSON/REST) | API REST, en plus du jeton | adresses individuelles, séparées par une virgule |
| … → Interface de données xoPort → xoPort : filtre IP | Interface XML, à la place de la clé | adresses individuelles, séparées par des virgules |
| Paramètres → Général → Paramètres de base → xoPort Répertoire clients et commandes Filtre IP | Exportations Porter protégées | Adresses et plages, séparées par des virgules |
N'enregistrez que des adresses fixes. Si une adresse change, supprimez immédiatement l'ancienne de la liste : le fournisseur la réattribue, et son prochain détenteur pourrait sinon y avoir accès.
Interface XML
Les anciennes intégrations de gestion des stocks placent des fichiers XML dans des dossiers fixes de la boutique, puis appellent une adresse qui les lit. Pour les nouvelles intégrations, utilisez l'API REST.
Activation et accès
Les paramètres de cette section se trouvent sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → Interface de données xoPort.
- Paramètres → Interfaces → Systèmes de gestion des stocks/ERP/Comptabilité → Interface de données xoPort → xoPort : ancienne interface XML disponible active les adresses sous
/xpanel/xoport/. Les nouvelles boutiques démarrent avecfalse, les boutiques existantes conserventtrue. Surfalse, les adresses renvoient un code 403 à chaque requête, y compris celles de la connexion Tricoma.ab 4.9.78 - Justification : le système de gestion des stocks ajoute la clé issue de « xoPort : AppKey-Filter » à l’adresse sous la forme
?key=, ou bien il effectue une requête à partir d’une adresse via « xoPort : IP-Filter ». Si votre adresse Internet change, la clé constitue la méthode la plus fiable. Accédez aux adresses uniquement viahttps://. - Ne videz pas le « xoPort : AppKey-Filter » tant que l’exportation des commandes au format XML est en cours : l’exportation accède à l’interface de votre propre boutique à l’aide de cette clé.
- Le message « xoPort API : authentification requise » reste affiché sur
true. Surfalse, l’interface XML répond à chaque requête sans vérification, et le tableau de bord signale « L’interface de données xoPort n’est pas protégée ».
Sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → Interface de données xoPort, vous trouverez les paramètres d’accès, de filtrage et d’importation de l’interface ; les nouvelles boutiques démarrent sans l’ancienne interface XML. Cliquez pour agrandir.
Fichiers et adresses
Le système de gestion des stocks place ses fichiers via FTP ou SFTP dans le dossier xoport/xml/import/. Ce n’est qu’après l’appel de l’adresse correspondante qu’ils sont lus. Le nom du fichier doit commencer exactement comme indiqué dans le tableau, en respectant la casse, et se terminer par .xml, par exemple Products_2026-10-04.xml.
| Le nom de fichier commence par | Adresse qui lance l’importation | Effet |
|---|---|---|
Products | /xpanel/xoport/import_products.php | Créer et modifier des articles |
Storage | /xpanel/xoport/update_products.php | Stock, statut et famille de produits des articles existants, identifiés par leur référence |
Categories | /xpanel/xoport/import_categories.php | Catégories |
Manufacturers | /xpanel/xoport/import_manufacturers.php | Fabricants |
Customers | /xpanel/xoport/import_customers.php | Clients, identifiés à l'aide du numéro de client du système de gestion des stocks |
Orders | /xpanel/xoport/update_orders.php | Statut, commentaire et numéros d'expédition des commandes existantes |
ImportOrders | /xpanel/xoport/import_orders.php | Créer des commandes dans la boutique à partir du système de gestion des stocks |
Gutschein | /xpanel/xoport/import_vouchers.php | Bons d'achat |
La boutique déplace les fichiers importés dans le sous-dossier archiv/. Après « xoPort : durée d'archivage en jours » (réglage d'usine : 14), l'importation des produits ou des commandes les supprime de cet emplacement.
Les fichiers qui ne peuvent pas être lus sont déplacés vers xoport/xml/import/error/ et la réponse indique la ligne concernée ainsi que la raison. La boutique supprime elle-même les caractères de contrôle non autorisés et importe ensuite le fichier.ab 4.9.65
Le fichier XML des produits
Un fichier produit contient, pour chaque article, un élément <product> sous <products>. La boutique identifie l’article via model, le numéro d’article. Les éléments les plus importants :
| Élément | Champ dans la boutique |
|---|---|
model | « Référence de l’article », obligatoire |
quantity | « Quantité de produits (en stock) » |
cost | « Prix d’achat (net) » |
evp | « Prix de vente conseillé par le fabricant (net / brut) », en valeur nette |
ean | « GTIN » |
products_eol | « Fin de série (EOL) » |
categories/category | Identifiants de catégorie, un par élément |
groups/group avec id, price et prices/price | prix par groupe de clients avec des tarifs dégressifs |
groups/customers/customer avec id ou external et price | prix client ; external correspond au numéro de client du système de gestion des stocks |
features/feature avec name, value, quantity, price, model, ean | caractéristiques avec valeur, stock et majoration par valeur |
L'importation transfère les prix tels quels dans les champs de prix de la boutique ; ceux-ci indiquent les prix nets. Si un fichier fournit des caractéristiques, l'importation remplace toutes les caractéristiques de l'article par celles fournies. S'il n'en contient aucune, les caractéristiques existantes sont conservées. 4.9.21
Vous définissez les champs et nœuds pris en charge par l’importation dans Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → Interface de données xoPort → xoPort : paramètres d’importation des produits, voir Blocages d’importation. Si votre système de gestion des stocks fournit son propre format, un modèle propre à la boutique (« xoPort : modèle XSL personnalisé ») le convertit au format de la boutique. Il est conservé lors des mises à jour.ab 4.9.21
Tous les éléments, y compris ceux relatifs aux catégories, aux fabricants, aux clients et aux commandes, sont décrits dans la documentation de l’API.
Commandes vers le système de gestion des stocks (XML)
L’interface XML met à disposition les nouvelles commandes sous forme de fichiers. Le système de gestion des stocks les récupère et renvoie le statut ainsi que les numéros d’expédition.
- Le système de gestion des stocks ou une tâche Cron appelle
https://ihr-shop.example/xpanel/xoport/export_orders.php?key=<AppKey>. - Pour chaque commande dont le numéro est supérieur à « xoPort : dernier numéro de commande exporté », la boutique crée un fichier
order-<Bestellnummer>.xmldans le dossierxoport/xml/export/. Elle définit ensuite cette valeur sur la dernière commande dont le fichier a été créé avec succès. Une commande ayant échoué sera traitée lors de la prochaine exécution. - Le système de gestion des stocks récupère les fichiers via FTP ou SFTP. Les fichiers de commande sont verrouillés sur le Web. En règle générale, il déplace les fichiers récupérés vers
xoport/xml/export/archiv/. - Elle renvoie le statut, le commentaire et les numéros d’expédition via une réponse
Orders…xml, voir Fichiers et adresses.
Dans les archives, la boutique supprime les fichiers après « xoPort : durée d’archivage en jours ». La valeur 0 signifie : ne jamais supprimer. Les fichiers contiennent des données clients ; fixez donc un délai. 4.9.116
Modification du statut et nouvelle exportation
Le fichier « order-<Nr>.xml » n’est généré qu’une seule fois. Si vous modifiez ensuite le statut dans la boutique, le fichier ne change pas. Le statut actuel d’une commande est fourni par « /xpanel/xoport/export/xml/order/<Bestellnummer> » avec la même clé.
Si l’exportation doit à nouveau fournir les commandes, définissez « xoPort : dernier numéro de commande exporté » sur le numéro précédant la première commande souhaitée. Le prochain cycle générera alors à nouveau toutes les commandes postérieures. Le système de gestion des stocks doit détecter les doublons.
Trois blocs d’adresse
Chaque commande comporte trois adresses : customers_… pour le client, billing_… pour la facturation et delivery_… pour la livraison. C’est pourquoi customers_firstname, billing_firstname et delivery_firstname peuvent par exemple être différents. Les données de paiement se trouvent dans payment_method, payment_class et payment_module.
Confirmation avec statut et numéro d'expédition
- La boutique reconnaît le statut à partir de son nom, dans sa désignation en allemand. Si elle ne reconnaît pas le nom indiqué, elle crée un nouveau statut de commande portant ce nom. Utilisez donc dans le système de gestion des stocks exactement les noms de statut en allemand de la boutique.
- C’est le champ «
customer_notified» du fichier qui détermine si le client reçoit un e-mail : «1» signifie « notifier ». - Si le système de gestion des stocks envoie le même message une deuxième fois sans qu’un autre statut ne se soit intercalé, la boutique le rejette. Si vous souhaitez signaler délibérément plusieurs fois un statut en cas de livraisons partielles, saisissez son ID sous Paramètres → Général → Paramètres de base → Importation de statuts xoPort : statuts à notifier même en cas de répétition. 4.9.66
Exportations via Porter, liens et flux
Le CSV-Porter fournit également des fichiers via un lien, par exemple pour des portails de prix ou un système de gestion des stocks qui récupère des fichiers CSV. Pour savoir comment créer et protéger ces exportations, consultez le guide Importation et exportation (CSV).
Ouvert ou protégé
Les exportations destinées aux portails de prix sont accessibles sans mot de passe tant que le Porter est activé. Les données clients et de commande se trouvent dans la zone protégée par mot de passe et filtre IP ; voir « Protéger les exportations ».
Identifiants d’accès dans le lien
La rubrique « Infos et liens » place l’identifiant et le mot de passe, tels qu’ils sont définis dans Paramètres → Général → Paramètres de base → Protéger le répertoire clients et commandes xoPort, sans modification, devant le nom de la boutique : https://benutzer:passwort@ihr-shop.example/…. Le mot de passe ne doit pas contenir les caractères # et %, car dans une adresse, ces caractères interrompent le lien. Évitez de les utiliser dans le mot de passe, ou remplacez dans le lien %23 par # et %25 par %.
Fichiers de flux
Dans le dossier « xoport/xml/export/ », vous trouverez, outre les fichiers de commande, des fichiers tels que « pp_gmc_…xml », « pp_gmc_local_…xml » et « doofinder_…xml ». Il s’agit des derniers flux de produits générés pour Google Merchant Center, l’inventaire local et Doofinder. La boutique les réécrit à chaque fois que le flux est récupéré ; voir « Adresse du flux ».
Porter exporte les commandes en deux étapes : un fichier Porter pour les données de commande, un second pour les lignes de commande. Pour savoir comment ces deux fichiers sont liés et comment réexporter des commandes, consultez la section « Exporter les commandes et les clients ».
JTL-Wawi
JTL-Wawi se connecte via le connecteur JTL de votre boutique. Il se trouve à l'adresse https://ihr-shop.example/xoport/jtlconnector/ et nécessite l'activation de l'interface de données.
Configuration
Les paramètres se trouvent sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → JTL:
| Paramètre | Effet |
|---|---|
| « JTL Token » | Mot de passe aléatoire que vous devez saisir dans JTL-Wawi comme mot de passe de connexion. Sans ce jeton, le connecteur ne répond pas. |
| « Numéro de commande minimum » | JTL-Wawi ne prend en charge que les commandes à partir de ce numéro, par exemple à partir du début de la connexion. |
| « Transférer uniquement les clients ayant passé commande » | true: uniquement les clients ayant passé commande ; false: tous les comptes clients |
| « ID de catégorie racine JTL » | Nécessaire uniquement si JTL-Wawi utilise sa propre catégorie racine ; la boutique ajoute alors ses sous-catégories en haut. |
| « Source de poids JTL » | shipping: poids d'expédition, product: poids de l'article issu de JTL-Wawi |
Ce qui est synchronisé
De JTL-Wawi vers la boutique
- Articles avec nom, descriptions, métadonnées, référence, GTIN, poids, quantité minimale et barème de quantités
- Prix par groupe de clients avec barèmes, prix spéciaux, prix d’achat et prix de vente conseillé
- Stock, gestion des stocks, statut et ventes
- Variantes sous forme d’attributs, catégories, fabricants, images et ventes croisées
- Statuts de commande « expédié » et « annulé » : la boutique attribue le premier statut via Paramètres → Général → Options des modules → Statuts de commande « expédié » ou → Statut de commande « annulé », sans envoyer d’e-mail au client. Ce groupe n’est visible que par l’administrateur principal.
De la boutique vers JTL-Wawi
- Commandes à partir du « numéro de commande minimum », jusqu’à 100 par extraction
- Comptes clients ; les clients invités n’ont pas de compte
- Paiements des commandes qui n’ont pas été réglées par prépaiement, prélèvement automatique ou facture
- Articles, catégories et fabricants que JTL-Wawi ne connaît pas encore, par exemple lors de la première synchronisation
Le connecteur ne reprend pas les numéros d'expédition ni les encaissements enregistrés provenant de JTL-Wawi. Vous gérez alors le suivi des expéditions dans la boutique, voir Suivi des expéditions. Le connecteur JTL n'évalue pas les blocages d'importation au niveau des articles.
Deux boutiques : un connecteur est associé à une seule installation de boutique, avec sa propre adresse et son propre « jeton JTL ». Deux boutiques correspondent donc à deux connexions. En revanche, plusieurs domaines d’une même installation partagent la base de données et le connecteur.
Billbee
Pour Billbee, il existe deux méthodes, selon qui gère les commandes.
Connecteur de boutique : Billbee récupère les commandes depuis la boutique
- Dans Billbee, vous créez un connecteur de boutique avec l’adresse
https://ihr-shop.example/ext/modules/billbee/hidden_trigger.php. - Vous saisissez le même mot de passe sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → BillBee → API BillBee : Mot de passe. Si le champ est vide, le connecteur de boutique est désactivé et la boutique répond aux requêtes par un code d’erreur 403.ab 4.9.131
- « API BillBee : importation des commandes X jours en arrière » définit la période sur laquelle BillBee remonte dans le temps ; par défaut, trois jours à compter de la date de création sur
P3D. - Avec « API BillBee : SetOrderState » sur
true, BillBee renvoie les changements de statut à la boutique.
Billbee (Sync) : la boutique récupère les commandes depuis Billbee
- Pour les commandes créées dans BillBee, par exemple sur d’autres canaux de vente. Nécessite l’activation de l’interface de données.
- Remplissez les champs « Billbee Sync : Actif » ainsi que « Billbee Sync : Clé API », « Billbee Sync : Utilisateur API (e-mail) » et « Billbee Sync : Mot de passe API » dans le même groupe. Ce n’est qu’alors que l’option Outils → Billbee (Sync) apparaîtra.
- Vous y trouverez : « Tester la connexion », « Récupérer les commandes », « Aperçu de l’importation » et « Importer les commandes ». La boutique attribue les lignes de commande d’abord par référence article, puis par GTIN. La page affiche également l’adresse pour l’appel Cron.ab 4.9.130
- « Billbee Sync : exécuter xo_stock_change » décompte le stock lors de l’importation, départ usine. « Billbee Sync : transférer le suivi » transmet les numéros de suivi à Billbee et y marque la commande comme « expédiée ».
- La boutique attribue le statut « Annulé » aux commandes annulées dans Billbee, tant qu’elles sont encore en cours. Si une commande en est déjà à un stade plus avancé, vous recevez une notification et un e-mail groupé.ab 4.9.127
OpenXE et autres systèmes de gestion des stocks
Pour certains systèmes de gestion des stocks, il existe des intégrations spécifiques avec leur propre page de paramètres. Nous nous ferons un plaisir de déterminer avec vous celle qui convient le mieux à votre entreprise.
OpenXE
La page Paramètres → Interfaces → Systèmes de gestion des stocks/ERP/Comptabilité → OpenXE connecte la boutique via le « Chemin d’accès à l’API OpenXE » et le « Jeton API OpenXE ». Sans ces deux éléments, aucune importation n’est effectuée.ab 4.9.106
- Onglet « Importation de données » : « Produits, niveaux de stock et catégories », « Niveaux de stock », « Clients et représentants » et « Données de suivi ». Chaque processus démarre en arrière-plan et affiche sa progression sous la ligne. Vous pouvez fermer la page, le processus se poursuit.
- Onglet « Exportation de données » : les commandes dont le « statut de commande pour l’exportation vers le système de gestion commerciale » est défini sur « Exporter les commandes » sont enregistrées sous forme de fichier dans le « répertoire de stockage des fichiers d’exportation ». Vous obtenez ensuite le « statut de commande après l’exportation ». Pour effectuer une nouvelle exportation, remettez la commande en statut « À exporter ».
- La synchronisation des catégories crée de nouvelles catégories et déplace celles qui ont été modifiées. Elle conserve le statut, l’image, le tri etl’option « Catégorie comme onglet d’en-tête » d’une catégorie existante. 4.9.135
- Si la page affiche le message « Les tâches en arrière-plan ne sont pas possibles sur ce serveur », cela signifie que la fonction PHP nécessaire fait défaut sur le serveur. Nous clarifierons cela avec votre hébergeur.
Autres intégrations
| Intégration | Remarque |
|---|---|
| Tricoma | … → Gestion des stocks/ERP/Comptabilité → Tricoma: identifiant, mot de passe, « API Tricoma : statut de la commande pour la récupération » et « … après la récupération ». Nécessite l’interface de données et l’option « xoPort : ancienne interface XML utilisable » sur true. Pour effectuer une nouvelle récupération, remettez la commande au statut « à récupérer ». |
| SelectLine | fonctionne via l’interface XML ; des modèles spécifiques sont fournis pour l’exportation. |
| Autres systèmes de gestion des stocks et services | Sous Paramètres → Interfaces → Systèmes de gestion des stocks/ERP/Comptabilité, vous trouverez d’autres intégrations. Nous déterminerons avec vous si et comment elles s’adaptent à votre système. |
Si votre système de gestion des stocks n’est pas répertorié, l’API REST est généralement la solution adaptée : de nombreux programmes et prestataires y accèdent via leur propre connexion ou un outil tel que n8n.
Comptabilité : DATEV Online et Lexware Office
Ces deux intégrations transmettent les commandes sous forme de factures à votre service de comptabilité : soit automatiquement une fois la commande finalisée, soit manuellement pour chaque commande en un clic.
DATEV Online
- Créez une application sur le portail des développeurs DATEV et notez l’ID client et la clé secrète.
- Sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → DATEV Online, saisissez le « DATEV Online Client ID », le « Client-Secret », le « numéro de conseiller-client » (format
1234567-1) et l’« environnement » :sandboxpour les tests,productionpour la production. - La page affiche l'URL de redirection vers l'application DATEV (bouton « Copier »). Sélectionnez ensuite « Se connecter » et connectez-vous à DATEV.
- « État de l’API DATEV Online » sur
true. Grâce à l’option « Transfert automatique lors du paiement », chaque nouvelle commande est immédiatement transmise à DATEV.
Chaque commande non encore transférée affiche le bouton « Transférer vers DATEV Online », par exemple pour les commandes antérieures à la connexion. Les données comptables et le PDF de la facture sont transférés. Dans l’onglet « Test de transfert », vérifiez la connexion.
Lexware Office
- Sous Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → Lexware Office, saisissez la « Clé API Lexware Office » et configurez le « Statut de l’API Lexware Office » sur
true. - L’option « Transfert automatique lors du paiement » est activée par défaut sur «
true». Les commandes non encore transférées affichent le bouton « Transférer vers Lexware Office ». L’option « Transférer à nouveau vers Lexware Office » génère une deuxième facture ; vous devez alors annuler la première dans Lexware Office. - La boutique crée le contact ou le retrouve à partir de l’adresse e-mail, reprend un numéro d’identification TVA intracommunautaire et établit la facture. « Lexware Office Print Layout ID » permet de sélectionner la mise en page du PDF.
- Pour les modes de paiement pour lesquels le client a déjà réglé, une mention remplace le délai de paiement : « Modes de paiement sans délai de paiement sur la facture » et « Insertion de la mention sur la facture». 4.10
Les guides « Statistiques et rapports » et « Traitement des commandes » décrivent l’exportation du chiffre d’affaires au format CSV et l’impression groupée des factures.
Automatisation : n8n, webhooks et Slack
La boutique signale des événements à d’autres services. Ces services récupèrent ensuite les données via l’API REST.
n8n
La page Paramètres → Interfaces → Intelligence artificielle → n8n comporte les onglets « Aperçu », « Paramètres » et « Événements » :
- Saisissez l’« URL de l’instance n8n », le « Type d’instance » (n8n Cloud ou auto-hébergée) et la « Clé API n8n », puis cliquez sur « Tester la connexion ».
- Créez un nœud Webhook dans n8n et saisissez son adresse comme « URL du Webhook ». Un « secret Webhook » signe chaque message dans l'en-tête
X-Webhook-Signatureafin que n8n puisse reconnaître les messages authentiques. - Activez l’option « Activer les webhooks » et, dans le même onglet « Paramètres », sous « Configuration des événements », sélectionnez les événements souhaités, puis cliquez sur « Enregistrer ». Par défaut, aucun n'est actif. L'onglet « Événements » affiche ensuite le statut, un exemple de charge utile et les derniers appels de webhook.
- « Envoyer un événement test » permet de vérifier le fonctionnement, tandis que « Derniers appels de webhook » affiche les résultats.
La signature ne correspond qu’au corps non modifié du message. C’est pourquoi vous devez activer l’option « Raw Body » dans le nœud Webhook sous « Options », puis calculer la signature à l’aide d’un nœud Code ou du nœud Crypto à partir de ces octets précis, et non à partir de la charge utile déjà lue. La boutique signale chaque événement immédiatement et une seule fois au maximum : elle attend généralement n8n pendant deux secondes au maximum et ne répète pas un message si n8n n’est pas accessible à ce moment-là.
Vous configurez l’URL du webhook, la clé secrète et les événements signalés dans l’onglet « Paramètres » de la page n8n, puis vous validez en cliquant sur « Enregistrer ». Cliquez pour agrandir.
| Événement | est signalé lorsque… |
|---|---|
| « Nouvelle commande » | une commande est finalisée dans la boutique |
| « Statut de la commande modifié » | le statut est modifié dans l'interface d'administration |
| « Nouveau client » | lorsqu'un client s'inscrit ou est créé dans l'interface d'administration |
| « Stock modifié » | une commande modifie le stock |
| « Inscription à la newsletter » | un abonné confirme son inscription via le double opt-in |
| « Actualité publiée » | un article d’actualité devient actif dans le backend : nouvellement créé en tant qu’article actif (y compris en tant que copie) ou basculé de l’état inactif à l’état actif, dans la fiche de l’article ou à l’aide du bouton de la liste des articles. La réenregistrement d’un article actif et les importations via l’API RESTne déclenchent aucunenotification. 4.9.168 |
La notification ne contient que quelques informations, telles que le numéro de commande, le montant et le mode de paiement ou, pour un nouveau client, le nom et l’adresse e-mail. Le workflow récupère les données supplémentaires via un accès dédié à l’API REST, voir API REST.
Webhook à partir d’un événement marketing
La réaction « Envoyer un webhook (générique / n8n / Zapier) » envoie les données client ou de commande à l’adresse de votre choix, déclenchée par les conditions d’un événement. Le modèle « Nouvelle commande vers Webhook (n8n/Zapier) » constitue un point de départ prêt à l’emploi, voir Réactions.XONIC Premium: Marketing / Automatisierungen & Künstliche Intelligenz
Slack
Sous Paramètres → Interfaces → Outils de chat → Slack, cochez « Activer les notifications Slack » et indiquez une URL de webhook pour chaque type de notification (nouvelles commandes, nouveaux tickets et autres messages) afin de les envoyer dans un canal Slack, sans avoir besoin d’un workflow spécifique.
Connecter un prestataire de services logistiques
Un prestataire a besoin des nouvelles commandes et renvoie les informations d’expédition et le numéro de suivi. Il existe trois façons de procéder.
API REST
Un accès dédié avec les autorisations « Commandes : lecture » et « écriture ». Le prestataire récupère les nouvelles commandes et renvoie via PUT le statut, les commentaires, la notification du client et le numéro de suivi. Il communique les stocks via « Produits : écriture ».
Fichiers XML
Le prestataire récupère les fichiers de commandes et renvoie les statuts et numéros d’expédition via Orders…xml ainsi que les stocks via Storage…xml, voir Exportation des commandes.
Via Billbee
Si le prestataire utilise Billbee, ce dernier récupère les commandes via le connecteur de boutique et renvoie le statut, voir Billbee.
Variante la plus simple sans programmation : une exportation des commandes via Porter et l’importation des numéros d’expédition via CSV, voir Exporter les commandes et les clients.
Protéger les champs contre la synchronisation
Si un système de gestion des stocks effectue régulièrement une synchronisation, il écrase les données qu’il fournit. Grâce à ces paramètres, les champs individuels conservent les modifications que vous avez apportées dans la boutique.
Au niveau de l’article : l’onglet de l’interface de données
Chaque article enregistré dispose d’un onglet nommé d’après les interfaces qui gèrent ses verrouillages, par exemple « Interface de données xoPort / CSV xoPort ». C’est là que vous définissez quels champs de cet article peuvent être écrasés lors de l’importation. Si un bouton est désactivé, l’importation laisse le champ tel quel. Le chiffre associé à un groupe indique le nombre de ses champs verrouillés ; celui figurant sur l’onglet indique le nombre de groupes dans lesquels un élément est verrouillé. L’importation reprend toujours intégralement les articles nouvellement créés.
| Groupe | Commutateurs pour l’importation de produits au format XML |
|---|---|
| Textes | « Mettre à jour le nom », « Mettre à jour la description », sélectionnables par langue |
| Prix | « Mettre à jour le prix principal », «Mettre à jour le prix de vente conseillé »à partir de 4.9.168, « Mettre à jour les prix échelonnés », « Mettre à jour le prix catalogue », « Mettre à jour les remises », « Mettre à jour les prix de groupe », « Mettre à jour les prix client », « Mettre à jour les prix spéciaux », « Mettre à jour le prix d'achat »à partir de 4.9.169 |
| Taxe | « Mettre à jour la classe fiscale » |
| Divers | « Mettre à jour les bonus/cadeaux », « Mettre à jour les images du produit (principales et supplémentaires) », « Mettre à jour le statut du produit » et « Mettre à jour le GTIN », lestrois derniersà partir de 4.9.168 |
Avec la connexion plusH ou winline, d’autres onglets s’ajoutent en fonction de leurs paramètres, par exemple « Mettre à jour le prix de base par unité », le groupe « Stock et logistique » (profil de feux tricolores, niveau de stock, quantité minimale, unité d’emballage) ainsi que l’affectation par catégorie, marque et label. Sans interface XML, plusH ni winline, l’onglet s’intitule « xoPort CSV » et ne contient que le nom et la description.ab 4.9.155
Un article à prix fixe en magasin : le prix principal, le prix de vente conseillé et la classe fiscale restent inchangés lors de l'importation ; le système de gestion des stocks continue de synchroniser les textes, les images et les stocks. Cliquez pour agrandir.
- Vous pouvez verrouillerles articles à prix réglementé, tels que les livres, en utilisant conjointement les options « Mettre à jour le prix principal » et « Mettre à jour la classe fiscale ». Sinon, une nouvelle classe fiscale modifie le prix brut malgré le prix net verrouillé.ab 4.9.26 Si le système de gestion des stocks fournit un prix de vente conseillé, verrouillez également « Mettre à jour le prix de vente conseillé » : si le prix de vente conseillé est supérieur au prix de vente, la boutique l’affiche sous forme de prix barré avec indication de l’économie réalisée.Source : 4.9.168 L’option « Mettre à jour le prix catalogue » protège également le prix de vente conseillé lors de l’importation XML.
- Le CSV-Porter tient compte des options « Mettre à jour le nom » et « Mettre à jour la description » ; voir « Protéger les champs ».
- L’API REST active et désactive les verrous, voir ci-dessous. Elle enregistre ce qu’elle envoie elle-même malgré le verrou ; seule l’option « Mettre à jour le bonus/cadeau » offre également une protection contre celui-ci.ab 4.9.169
- JTL-Connector, OpenXE/Xentral et Bechlem ne prennent pas en compte les verrous.
Définir des verrous via l’API REST
Votre système de gestion des stocks ou votre prestataire de services peut définir les verrous sur l’article à l’aide du champ « import_blocks ». À partir de la version 4.9.168 de Shop, l’API reconnaît tous les boutons de l’onglet, et le champ « import_blocks_mode » définit ce qu’il advient des verrous qui ne figurent pas dans la liste.ab 4.9.168
| import_blocks_mode | Effet |
|---|---|
merge | applique les verrous mentionnés en plus, n’en supprime aucun |
remove | lève exactement les verrous mentionnés |
replace | synchronise l’article avec une liste complète : ce qui manque perd son verrouillage, même s’il a été défini dans l’onglet. Si la liste contient une entrée inconnue, rien ne change. |
| Sans indication | comme auparavant : si la liste contient un blocage pour le nom, la description, un type de prix ou la classe fiscale, celle-ci remplace ces dix blocages ; ceux qui ne sont pas mentionnés sont supprimés. Elle ne fait qu’ajouter les autres blocages. Une liste vide lève les dix blocages. |
Veillez à toujours faire envoyer un mode par le programme : merge pour verrouiller, remove pour déverrouiller. La réponse indique, pour chaque article, si chaque verrouillage a bien été reçu. Les noms de champs et les exemples figurent dans la documentation de l’API.
Les blocages ont-ils disparu après une synchronisation via l’API ? Jusqu’à la version 4.9.167 de la boutique, un appel comportant un blocage que la boutique ne connaissait pas encore, par exemple uvp, pouvait supprimer tous les blocages concernant le nom, la description, les prix et la classe fiscale de l’article. La réponse ne signalait alors que l’avertissement « Unknown import block type ». À partir de la version 4.9.168, une telle liste ne supprime plus les blocages pour les champs qu’elle ne mentionne pas ; la réponse indique les blocages conservés.
Si votre programme a reçu cet avertissement, vérifiez les articles concernés dans l’onglet et redéfinissez les blocages manquants. Les programmes qui gèrent également des boutiques antérieures à la version 4.9.168 n’envoient pas de mode à cet endroit et n’indiquent que les blocages concernant le nom, la description, les prix et la classe fiscale, toujours de manière exhaustive avec tous ceux qui doivent être conservés.
Après la mise à jour vers la version 4.9.168 : les restrictions plus anciennes s’appliquent
À partir de la version 4.9.168 de la boutique, l’importation de produits au format XML prend en compte les restrictions qu’elle ignorait auparavant : prix de vente conseillé, prix catalogue, remises, statut du produit, images du produit et GTIN. Ces restrictions peuvent figurer depuis longtemps sur les articles, par exemple issues d’une ancienne connexion à plusH. Après la mise à jour, l’importation ne met plus à jour ces champs pour les articles bloqués, sans le signaler. Si le prix de vente conseillé, une image ou le statut de certains articles ne change plus, consultez d’abord l’onglet correspondant.
- Statut du produit avec plusH et winline : un verrouillage de statut s’applique désormais sans exception. Même la vérification des prix (prix de vente inférieur au prix d’achat), la masquage des articles qui ne sont plus livrés et la désactivation des articles principaux laissent un article verrouillé tel quel. La suppression d’articles qui ne sont plus livrés n’empêche pas le verrouillage.
- winline désactive les articles principaux sans variante active : à partir de la version 4.9.168, ils sont mis hors ligne à la fin du cycle ; auparavant, ils restaient actifs. Si vous souhaitez qu’un tel article reste visible, activez une variante ou désactivez l’option « Mettre à jour le statut du produit ».
- GTIN avec winline : un GTIN verrouillé reste en place, et l’exportation des commandes signale l’article portant ce numéro au système de gestion des stocks. Ne verrouillez le GTIN que si le système de gestion des stocks reconnaît l’article sous ce numéro.
Pour tous les articles : paramètres d’importation des produits
Sous Paramètres → Interfaces → Systèmes de gestion des stocks/ERP/Comptabilité → Interface de données xoPort → xoPort : paramètres d’importation des produits, chaque champ de l’article est répertorié avec son nom technique et chaque nœud du fichier (node_…) est accompagné d’un bouton « Oui/Non ». Les champs réglés sur « Non » ne sont pris en compte par l’importation XML des produits pour aucun article. Le numéro d’article et l’ID sont toujours lus.
- Si le système de gestion des stocks fournit par exemple une majoration que vous souhaitez gérer dans la boutique, désactivez le champ correspondant ici, par exemple
shipping_surcharge. - L’importation ne crée de nouveaux articles que si les options «
node_categories» et «node_languages» sont activées. Elles le sont par défaut.
Catégories
Dans le masque des catégories, l’onglet « Interface de données xoPort » comporte les boutons « Mettre à jour le nom », « Mettre à jour la description », « Mettre à jour les champs SEO » et « Mettre à jour l’image de la catégorie ». Ils s’appliquent à l’importation de catégories au format XML ; lors de la création d’une nouvelle catégorie, le système reprend toutes les données du fichier.
Le champ « Filtre xoPort »
Dans l’onglet « Divers » de l’article se trouve le champ « Filtre xoPort ». Il ne sert pas à protéger quoi que ce soit, mais à affecter l’article à des exportations : saisissez un ou plusieurs mots-clés, séparés par des points-virgules. Un « Porter » doté du même « filtre d’exportation » n’exportera alors que les articles correspondant à ce mot-clé, ce qui permet de limiter les flux de produits à certains articles ou d’en exclure d’autres.
Le numéro de client du système de gestion des stocks
Si votre système de gestion des stocks utilise ses propres numéros de client, ce numéro figure dans le compte client. La boutique l’utilise à des fins de recoupement et sur les justificatifs.
- Où : dans la fiche client, onglet « Données client », champ « Numéro client individuel (externe) », jusqu’à 64 caractères. L’interface XML et l’API REST renseignent ce champ lors de l’importation de clients ; l’importation de clients via XML identifie les comptes grâce à ce numéro.
- Sur les documents : avec Paramètres → Paiement → Détails client → Utiliser le numéro de client externe comme numéro de client propre sur
true(par défaut), la facture et les autres documents affichent ce numéro à la place de l’identifiant client. L’affichage du numéro de client sur les documents est géré via Paramètres → Design → Documents → Numéro de client. Les commandes d’invités ne comportent pas de numéro de client. - Modifier l’affectation : saisissez le nouveau numéro dans le compte client. Lors de l’enregistrement, la boutique vérifie qu’aucun autre compte ne porte déjà ce numéro et, le cas échéant, affiche le message « Le client… possède déjà ce numéro de client ! ». Les documents récupèrent le numéro du compte lors de leur création ; un document nouvellement créé affiche donc le numéro modifié.
Pour en savoir plus sur l’identifiant client et le numéro propre, consultez le guide « Gérer les clients ».
Catégories à nouveau actives après la synchronisation des catégories
Si vous désactivez une catégorie dans la boutique et qu’elle réapparaît après la synchronisation suivante, c’est le système de gestion des stocks qui détermine son statut.
| Connexion | Comportement | Solution |
|---|---|---|
| JTL-Wawi | Chaque synchronisation des catégories reprend les statuts « Actif »/« Inactif » et le tri issus de JTL-Wawi. | Désactiver la catégorie dans JTL-Wawi |
| Importation de catégories XML | reprend le statut, le tri, l’option « Catégorie comme onglet d’en-tête », les informations du plan du site et l’image à partir du fichier. Si une valeur est manquante, il attribue la valeur par défaut : actif, tri 0, pas d’onglet d’en-tête, pas dans le plan du site, pas d’image. Si la brève description, la description ou le texte SEO de la langue sont manquants, il les laisse également vides. | Fournissez toutes les valeurs et tous les textes dans le fichier ; verrouillez l’image à l’aide de « Mettre à jour l’image de catégorie ». Il n’y a pas de verrouillage pour le statut et les textes. |
| OpenXE | Les anciennes versions réactivaient chaque catégorie à chaque exécution. | Mise à jour : à partir de la version 4.9.135, le statut et les paramètres des catégories existantes sont conservés. Vous devez saisir une seule fois les paramètres perdus. |
Problèmes courants
La plupart des dysfonctionnements se manifestent par une réponse de l'interface, par un message dans le tableau de bord ou par un fichier qui reste bloqué.
| Observation | Cause | Solution |
|---|---|---|
L'API REST répond LICENSE_REQUIRED | L'interface de données n'est pas activée ou a été désactivée en raison d'un problème de licence | nous contacter |
| L'API REST renvoie le code 401 | Le jeton est manquant ou a expiré ; le client est désactivé ou le secret doit être renouvelé | Obtenir un nouveau jeton, vérifier le client et la clé secrète |
L'API REST renvoie une réponse INSUFFICIENT_PERMISSIONS | L'accès ne dispose pas des autorisations nécessaires pour cette section, ou le programme utilise encore un jeton datant d'avant la modification | « Modifier les autorisations », puis récupérer un nouveau jeton ou « Révoquer les jetons » |
| Le programme continue d’accéder malgré le retrait des autorisations | un jeton déjà émis reste valable jusqu’à une heure avec les anciennes autorisations | « Révoquer les jetons », voir Révoquer les jetons |
L’API REST renvoie « IP_NOT_ALLOWED », tableau de bord « xoPort REST : connexion bloquée » | L'adresse n'est pas incluse dans la liste des adresses IP autorisées | saisir l'adresse mentionnée dans la réponse |
| L'API REST renvoie le code 429 | Limite de requêtes atteinte | Regrouper les requêtes, réutiliser le jeton, ne renvoyer la requête qu’après l’expiration du délai indiqué sur Retry-After |
| Un nouvel article via l'API REST manque | PUT Envoyé à la place de POST, ou le numéro d'article existe déjà | Nouveaux articles avec POST, existants avec PUT |
| fichier XML reste dans le dossier | Le nom du fichier commence différemment (majuscules et minuscules), ne se termine pas par .xml, se trouve dans le mauvais dossier, ou personne n’accède à l’adresse d’importation | Vérifier les noms et les dossiers xoport/xml/import/, appeler l’adresse via une tâche cron |
| L'appel XML renvoie un code 403, le tableau de bord indique « xoPort : accès refusés » | Ancienne interface XML désactivée, clé incorrecte ou nouvelle adresse IP du système de gestion des stocks | « xoPort : ancienne interface XML utilisable », vérifier l’AppKey et les filtres IP |
| Tableau de bord « L’interface xoPort est bloquée » | Ni filtre IP ni AppKey n’ont été configurés | Saisir l’un des deux |
Le fichier XML se retrouve dans error/ | Fichier illisible, par exemple en raison d’un encodage de caractères incorrect | Enregistrer le fichier au format UTF-8, vérifier la ligne figurant dans la réponse |
| L'importation XML ne crée pas de nouveaux articles | model manquant, ou les paramètres « node_categories » ou « node_languages » sont réglés sur « Non » ; « Storage…xml » ne crée jamais de nouveaux articles | Vérifier les paramètres d’importation des produits, utiliser le fichier de produits |
| une valeur provenant du système de gestion des stocks n'est pas transmise | Champ désactivé dans les paramètres d’importation des produits ou blocage d’importation sur l’article | Vérifier le commutateur |
| L'importation XML ne modifie plus le prix de vente conseillé, les images, le statut ou le GTIN d'un article après la mise à jour | Verrouillage antérieur sur l'article, pris en compte par l'importation à partir de la version 4.9.168 | Vérifier l'onglet de l'interface de données, activer le bouton |
| Les verrous d'importation sont manquants après une synchronisation via l'API REST | jusqu’à la version 4.9.167 de la boutique, un appel avec un verrou inconnu supprimait les autres | verrouillages, envoyer le programme avec import_blocks_mode |
| Nouveaux statuts de commande en double après la confirmation | Le système de gestion des stocks signale un nom de statut que la boutique ne reconnaît pas | Harmoniser les noms de statuts, supprimer les statuts en double |
| Les trémas sont incorrects dans un fichier CSV | Jeu de caractères du fichier | voir « Préparer le fichier » |
Après une mise à jour du système de gestion des stocks, la cause réside généralement dans des noms de fichiers, des noms de statuts ou des champs modifiés, ou encore dans une nouvelle adresse Internet. Vérifiez les messages du tableau de bord, la rubrique « Afficher l'utilisation » lors de la connexion et la réponse de l'interface. Si le problème persiste, envoyez-nous l'heure et la réponse.
Questions fréquentes
Ai-je besoin d’une licence pour l’API xoPort ?
LICENSE_REQUIRED », voir l’aperçu.Où puis-je trouver la clé API de la boutique ?
Quelle adresse et quelles identifiants dois-je utiliser pour l’API REST ?
POST /xpanel/xoport/oauth/token, les données via /xpanel/xoport/export/json/<Bereich> pour la lecture et /xpanel/xoport/import/json/<Bereich> pour l’écriture, dans chaque cas avec Authorization: Bearer <Token>. Tous les formulaires se trouvent sous « Adresse et identifiants ».Comment récupérer tous les produits page par page via l’API ?
?limit=250&offset=0, puis offset=250 et ainsi de suite, jusqu’à ce que has_more renvoie false dans la réponse. L’API ne fournit pas plus de 250 enregistrements par page.Quels champs puis-je écrire via l'API ?
extra_fields, en indiquant le nom ou l’ID du champ. Si vous les utilisez comme champ propre au produit, l’API les ignore et renvoie un avertissement.Comment accéder aux commandes via l’API ?
GET /xpanel/xoport/export/json/orders; pour une commande unique, via /xpanel/xoport/export/json/order/<Bestellnummer>. Le statut, le commentaire et le numéro d’expédition sont renvoyés par un accès « Commandes : écriture » via PUT.Comment protéger l’interface xoPort par adresse IP, et quels sont les formats pris en charge ?
203.0.113.0/24 ne sont acceptées que par le filtre IP pour les exportations Porter protégées, voir Restriction IP.Comment connecter n8n à la boutique ?
Comment doit s'intituler le fichier d'importation XML ?
Products, Storage ou Orders, exactement dans cet ordre, et se termine par .xml. Il se trouve dans le dossier xoport/xml/import/, voir Fichiers et adresses.Le champ « quantity » de l’importation XML des produits est-il utilisé pour le stock ?
quantity » d’un article correspond au « Nombre de produits (stock) », à condition que l’option « products_quantity » soit activée dans les paramètres d’importation des produits. Dans features/feature, quantity correspond au stock de la valeur de caractéristique individuelle.Comment transférer le prix de vente conseillé, le prix d’achat et les caractéristiques via XML ?
evp, le prix d’achat dans cost, tous deux hors taxes. Les caractéristiques sont indiquées, pour chaque valeur, dans features/feature avec name pour la caractéristique et value pour la valeur, ainsi que le stock, la majoration, la référence et le GTIN. Si le fichier fournit des caractéristiques, celles-ci remplacent toutes celles de l’article qui figuraient auparavant.Comment transférer les prix de groupe et les prix client via XML ?
groups/group avec l'ID du groupe de clients, les prix clients à l'adresse groups/customers/customer. Un client y est associé via id ou via external, le numéro de client du système de gestion des stocks. Les remises clients sont définies par l'API REST, voir la documentation de l'API.Le fichier XML de commande est-il automatiquement mis à jour en cas de changement de statut ?
/xpanel/xoport/export/xml/order/<Bestellnummer>, voir Exportation des commandes.Comment puis-je préparer à nouveau une commande pour l’exportation ?
Pourquoi les champs de prénom diffèrent-ils dans le fichier XML des commandes ?
customers_firstname pour le client, billing_firstname pour l’adresse de facturation et delivery_firstname pour l’adresse de livraison. Si une personne passe une commande au nom d’une autre, ces adresses diffèrent.Est-il possible de connecter deux boutiques via un connecteur JTL commun ?
/xoport/jtlconnector/, avec son propre « jeton JTL ». Deux boutiques correspondent à deux connexions distinctes. Plusieurs domaines d'une même installation partagent un seul connecteur ; voir JTL-Wawi.Quelles données sont synchronisées via la connexion JTL-Wawi ?
Puis-je connecter un prestataire de services de logistique via l’API ou via Billbee ?
Comment connecter la boutique à DATEV ?
Comment afficher le numéro de client de la gestion des marchandises à la place de l’ID de la boutique sur les documents ?
Pourquoi les catégories redeviennent-elles actives après la synchronisation avec le système de gestion des marchandises ?
Pourquoi un programme a-t-il encore accès après le retrait d’une autorisation ?
Comment définir ou supprimer des blocages d’importation via l’API REST ?
import_blocks » (Restrictions d’importation) de l’article et du mode « import_blocks_mode » : « merge » permet d’ajouter des restrictions, « remove » de les supprimer, et « replace » de les synchroniser avec une liste complète. Ce mode est disponible à partir de la version 4.9.168 de la boutique, voir « Définir des restrictions via l’API REST ».Comment fonctionne le commutateur xoPort sur le produit ?
Pourquoi la synchronisation remplace-t-elle une valeur que j’ai saisie dans la boutique ?
skip.Les identifiants d'accès à l'API changent-ils lors de la mise en production ?
Comment indiquer correctement les identifiants d’accès dans une adresse d’exportation ?
https://benutzer:passwort@ihr-shop.example/…, telle qu’elle apparaît dans la rubrique « Infos et liens ». Si le mot de passe contient # ou %, saisissez respectivement %23 ou %25; sinon, l’adresse ne fonctionnera pas, voir les exportations Porter.À quoi servent les fichiers de flux dans le dossier d’exportation de l’interface ?
pp_gmc_…xml et doofinder_…xml, situés dans xoport/xml/export/, correspondent aux derniers flux de produits générés pour Google Merchant Center et Doofinder. La boutique les réécrit à chaque consultation.Comment puis-je obtenir un accès externe aux données, par exemple à des fins d’analyse ?
Guides complémentaires
Nous connectons votre système de gestion des stocks avec le vôtre
Nous déterminons avec vous la solution la plus adaptée, configurons les accès et la synchronisation, et recherchons avec vous la cause des éventuels problèmes de transfert de données.
Contacter le support dès maintenant