Aide · Produits et gamme · Interfaces et gestion des stocks

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-ilEmplacement dans le backendSection
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 encoreOutils → Clients OAuth2 xoPortAPI REST
Interface XML (xoPort)Connexions existantes à des systèmes de gestion des stocks échangeant des fichiers XMLParamètres → Interfaces → Systèmes de gestion des stocks/ERP/Comptabilité → Interface de données xoPortInterface XML
CSV-PorterFichiers que vous modifiez vous-même, portails de prix, synchronisations simples via un lienOutils → Gestionnaire d’import/export CSV xoPortGuide d'importation et d'exportation
JTL-WawiArticles, prix et stocks depuis JTL-Wawi, commandes et clients vers JTL-WawiParamètres → Interfaces → Gestion des stocks/ERP/Comptabilité → JTLJTL-Wawi
BillbeeEnvoyer des commandes vers Billbee ou importer des commandes depuis BillbeeParamètres → Interfaces → Gestion des stocks/ERP/Comptabilité → BillBee, Outils → BillBee (Synchro)Billbee
OpenXEArticles, stocks, clients et numéros d'expédition depuis OpenXE, commandes sous forme de fichierParamètres → Interfaces → Gestion des stocks/ERP/Comptabilité → OpenXEOpenXE
DATEV Online, Lexware OfficeTransfert des factures vers la comptabilitéParamètres → Interfaces → Gestion des stocks/ERP/Comptabilité → DATEV Online ou → Lexware OfficeComptabilité
n8n, Webhooks, SlackNotifier d'autres services en cas d'événements, par exemple lors d'une nouvelle commandeParamètres → Interfaces → Intelligence artificielle → n8n, Paramètres → Interfaces → Outils de chat → SlackAutomatisation
Menu « Paramètres » du backend ouvert : Interfaces → Gestion des stocks/ERP/Comptabilité avec les entrées Afterbuy, Bechlem API, BillBee, BlueBerry, BuchhaltungsButler, DATEV Online, DEAR, Dreamrobot, EasyBill, JTL, Lexware Office, OpenXE, PromailAG CH, Promo ERP, TM3, Tricoma, l'interface de données xoPort et xoScan

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

  1. Ouvrez Outils → Clients OAuth2 xoPort et cliquez sur « Créer un nouveau client ».
  2. Saisissez un « Nom du client », par exemple le nom du programme ou du prestataire de services.
  3. Sous « Autorisations », sélectionnez « Lecture », « Écriture » ou « Suppression » pour chaque domaine. Au moins une autorisation est obligatoire.
  4. Facultatif : « Limite de débit (requêtes/heure) » et « Notes », par exemple pour indiquer qui utilise cet accès.
  5. 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.
Boîte de dialogue « Créer un nouveau client OAuth2 » avec le nom de client « Analyse des prix de la boutique modèle », limite de requêtes de 5 000 et la mention « Valeur par défaut et valeur maximale : 5 000 » ; en dessous, les autorisations classées par domaine, avec pour chacune les droits de lecture, d'écriture et de suppression ; pour le domaine « Produits » uniquement, le droit de lecture est « Actif » ; en bas, les notes et le bouton « Créer un nouveau client »

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.

Boîte de dialogue « Modifier les autorisations » d'un accès : vignettes par domaine avec les boutons « Lecture », « Écriture » et « Suppression » ; pour les catégories, les fabricants et les produits, les options « Lecture » et « Écriture » sont sur « Actif », toutes les autres sur « Verrouillé » ; en bas, les boutons « Enregistrer » et « Annuler »

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égrationAutorisations
Analyse des prix, comparaison des prixProduits : lecture
Le système de gestion des stocks synchronise les articlesProduits, catégories, fabricants : lecture et écriture
Exécution des commandes, prestataires de services d'expéditionCommandes : lecture et écriture
Outil de newsletter ou de CRMClients ou abonnés à la newsletter : lecture
Workflow n8nuniquement 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âcheMéthode et adresse
Récupérer le jetonPOST https://ihr-shop.example/xpanel/xoport/oauth/token
Lire les donnéesGET https://ihr-shop.example/xpanel/xoport/export/json/products
Lire un enregistrementGET …/xpanel/xoport/export/json/product/42
Lire une plageGET …/xpanel/xoport/export/json/orders/1000:1100
Créer un nouvel enregistrementPOST …/xpanel/xoport/import/json/products
ModifierPUT …/xpanel/xoport/import/json/products
supprimerDELETE …/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 : POST ne 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à. PUT ne modifie que les enregistrements existants.
Page « Modifier le client : Magasin de prêt-à-porter - Gestion des stocks » avec les champs Nom du client et Notes, le champ « Limite de débit (requêtes/heure) » avec la valeur 5 000 et la remarque « Valeur par défaut et valeur maximale : 5 000. Toute valeur supérieure doit être validée par XONIC. », suivie de l’ID du client, de la date de création, du statut et du bouton Enregistrer

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

Pour les développeurs : toutes les sections, tous les champs, tous les filtres et tous les exemples sont disponibles dans la documentation de l'API.

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.

Statistiques d'utilisation du client « Analyse des prix de Musterladen » : vignettes « 24 dernières heures » 5, « 7 derniers jours » 6, « 30 derniers jours » 6, temps de réponse moyen 116,3 ms, jetons actifs 1, taux de réussite 83,3 %, dont les filtres et la liste des requêtes avec l'heure, le point de terminaison, le statut 200 ou 403, le temps de réponse, le nombre d'enregistrements et l'adresse IP 203.0.113.25

« 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 :

  1. Sous « Modifier les autorisations », désactivez la section concernée et enregistrez.
  2. 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
  3. 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.
Liste des clients OAuth2 xoPort disposant des accès « Analyse des prix de Musterladen » et « Gestion des stocks de Musterladen » ; pour le second, le menu d'actions est ouvert et propose les options suivantes : Modifier les autorisations, Afficher l'utilisation, Renouveler la clé secrète, Révoquer les jetons, Désactiver et Supprimer définitivement

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/24 ne 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_ALLOWED indique 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ètres'applique àFormat
… → Interface de données xoPort → API xoPort : restriction IP (JSON/REST)API REST, en plus du jetonadresses individuelles, séparées par une virgule
… → Interface de données xoPort → xoPort : filtre IPInterface 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 IPExportations Porter protégéesAdresses 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 avec false, les boutiques existantes conservent true. Sur false, 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 via https://.
  • 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. Sur false, 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 ».
Liste des paramètres de l'interface de données xoPort comportant 13 lignes : ancienne interface XML utilisable false, authentification requise true, dernier numéro de commande exporté 0, modèle XSL personnalisé, partager les paramètres de l'interface, filtres IP et limitation IP (JSON/REST) : vide, filtre AppKey avec valeur masquée, durée d’archivage : 14 jours, e-mail aux nouveaux clients : false, paramètres d’importation des produits et des fabricants, limite d’importation en masse : 50

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 parAdresse qui lance l’importationEffet
Products/xpanel/xoport/import_products.phpCréer et modifier des articles
Storage/xpanel/xoport/update_products.phpStock, statut et famille de produits des articles existants, identifiés par leur référence
Categories/xpanel/xoport/import_categories.phpCatégories
Manufacturers/xpanel/xoport/import_manufacturers.phpFabricants
Customers/xpanel/xoport/import_customers.phpClients, identifiés à l'aide du numéro de client du système de gestion des stocks
Orders/xpanel/xoport/update_orders.phpStatut, commentaire et numéros d'expédition des commandes existantes
ImportOrders/xpanel/xoport/import_orders.phpCréer des commandes dans la boutique à partir du système de gestion des stocks
Gutschein/xpanel/xoport/import_vouchers.phpBons 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émentChamp 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/categoryIdentifiants de catégorie, un par élément
groups/group avec id, price et prices/priceprix par groupe de clients avec des tarifs dégressifs
groups/customers/customer avec id ou external et priceprix client ; external correspond au numéro de client du système de gestion des stocks
features/feature avec name, value, quantity, price, model, eancaracté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.

  1. Le système de gestion des stocks ou une tâche Cron appelle https://ihr-shop.example/xpanel/xoport/export_orders.php?key=<AppKey>.
  2. 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>.xml dans le dossier xoport/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.
  3. 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/.
  4. 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ètreEffet
« 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égrationRemarque
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 ».
SelectLinefonctionne via l’interface XML ; des modèles spécifiques sont fournis pour l’exportation.
Autres systèmes de gestion des stocks et servicesSous 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

  1. Créez une application sur le portail des développeurs DATEV et notez l’ID client et la clé secrète.
  2. 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 » : sandbox pour les tests, production pour la production.
  3. La page affiche l'URL de redirection vers l'application DATEV (bouton « Copier »). Sélectionnez ensuite « Se connecter » et connectez-vous à DATEV.
  4. « É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 » :

  1. 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 ».
  2. 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-Signature afin que n8n puisse reconnaître les messages authentiques.
  3. 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.
  4. « 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à.

Page n8n, onglet « Paramètres » : section « Webhook sortant » avec « Activer les webhooks » réglé sur « Actif », URL du webhook https://n8n.example/webhook/musterladen, secret du webhook vide avec la case « Générer un nouveau secret » cochée et le bouton « Envoyer un événement test » ; en dessous, la configuration des événements avec « Nouvelle commande » et « Statut de la commande modifié » réglés sur « Actif », « Nouveau client », « Stock modifié », « Inscription à la newsletter » et « Actualités publiées » réglés sur « Inactif »

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énementest 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.

GroupeCommutateurs 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

Fiche article « Carnet de magasin de modèles », onglet « Interface de données xoPort / xoPort CSV » avec le chiffre 2 et la remarque « Vous définissez ici les champs de cet article qui peuvent être écrasés lors de l'importation » ; groupes : Textes, Prix, Taxe et Autres. Les options « Mettre à jour le prix principal », « Mettre à jour le prix de vente conseillé » et « Mettre à jour la classe fiscale » sont désactivées ; tous les autres boutons sont activés.

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_modeEffet
mergeapplique les verrous mentionnés en plus, n’en supprime aucun
removelève exactement les verrous mentionnés
replacesynchronise 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 indicationcomme 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.

ConnexionComportementSolution
JTL-WawiChaque 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 XMLreprend 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.
OpenXELes 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é.

ObservationCauseSolution
L'API REST répond LICENSE_REQUIREDL'interface de données n'est pas activée ou a été désactivée en raison d'un problème de licencenous contacter
L'API REST renvoie le code 401Le 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_PERMISSIONSL'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 autorisationsun 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éessaisir l'adresse mentionnée dans la réponse
L'API REST renvoie le code 429Limite de requêtes atteinteRegrouper 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 manquePUT 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 dossierLe 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’importationVé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ésSaisir l’un des deux
Le fichier XML se retrouve dans error/Fichier illisible, par exemple en raison d’un encodage de caractères incorrectEnregistrer le fichier au format UTF-8, vérifier la ligne figurant dans la réponse
L'importation XML ne crée pas de nouveaux articlesmodel manquant, ou les paramètres « node_categories » ou « node_languages » sont réglés sur « Non » ; « Storage…xml » ne crée jamais de nouveaux articlesVé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 transmiseChamp désactivé dans les paramètres d’importation des produits ou blocage d’importation sur l’articleVé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 à jourVerrouillage antérieur sur l'article, pris en compte par l'importation à partir de la version 4.9.168Vé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 RESTjusqu’à la version 4.9.167 de la boutique, un appel avec un verrou inconnu supprimait les autresverrouillages, envoyer le programme avec import_blocks_mode
Nouveaux statuts de commande en double après la confirmationLe système de gestion des stocks signale un nom de statut que la boutique ne reconnaît pasHarmoniser les noms de statuts, supprimer les statuts en double
Les trémas sont incorrects dans un fichier CSVJeu de caractères du fichiervoir « 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 ?

Oui. L’API REST, l’interface XML, le connecteur JTL, Billbee (Sync) et Tricoma nécessitent le module supplémentaire XONIC Premium : interface de données xoPort. Sans celui-ci, l’API REST renvoie la réponse « LICENSE_REQUIRED », voir l’aperçu.

Où puis-je trouver la clé API de la boutique ?

Il n’existe pas de clé commune pour l’API REST. Vous devez créer un accès pour chaque programme sous Outils → Clients xoPort OAuth2 et vous recevrez alors un ID client et un secret client. L’interface XML utilise la clé issue de « xoPort : filtre AppKey », voir API REST.

Quelle adresse et quelles identifiants dois-je utiliser pour l’API REST ?

Vous récupérez le jeton via 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 ?

En utilisant ?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 ?

Cela dépend du domaine ; la liste complète figure dans la documentation de l’API. Les champs Google, tels que la catégorie de produit, sont des champs supplémentaires : envoyez-les dans le champ 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 ?

Avec un accès « Commandes : lecture » via 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 ?

Pour l’API REST, saisissez les adresses fixes dans « xoPort API : restriction IP (JSON/REST) » ; pour l’interface XML, dans « xoPort : filtre IP ». Les deux ne prennent en charge que des adresses uniques, séparées par des virgules si elles sont multiples. Les plages telles que 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 ?

Dans les deux sens : la boutique signale des événements à un nœud Webhook dans n8n, configuré sous Paramètres → Interfaces → Intelligence artificielle → n8n. n8n lit et écrit les données via l’API REST avec son propre accès, voir Automatisation.

Comment doit s'intituler le fichier d'importation XML ?

Il commence par le nom de son type, par exemple 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 ?

Oui. La valeur « 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 ?

Le prix de vente conseillé se trouve dans 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 ?

Les prix de groupe se trouvent à l'adresse 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 ?

Non. Le fichier est généré une seule fois lors de l’exportation. L’état actuel d’une commande est disponible à l’adresse /xpanel/xoport/export/xml/order/<Bestellnummer>, voir Exportation des commandes.

Comment puis-je préparer à nouveau une commande pour l’exportation ?

Pour l’exportation XML, définissez « xoPort : dernier numéro de commande exporté » sur le numéro précédent ; toutes les commandes ultérieures seront alors réimportées. Pour OpenXE et Tricoma, remettez la commande au statut « à exporter » ou « à récupérer ». Pour le CSV-Porter, voir Exporter les commandes et les clients.

Pourquoi les champs de prénom diffèrent-ils dans le fichier XML des commandes ?

Chaque commande comporte trois adresses : 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 ?

Non. Chaque installation de boutique dispose de son propre connecteur à l'adresse /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 ?

JTL-Wawi fournit les articles avec leurs prix, leurs stocks, leurs caractéristiques, leurs images, leurs catégories et leurs fabricants, ainsi que les statuts « expédié » et « annulé ». La boutique transmet les commandes, les comptes clients et les paiements à JTL-Wawi. Le connecteur ne prend pas en charge les numéros de suivi, voir JTL-Wawi.

Puis-je connecter un prestataire de services de logistique via l’API ou via Billbee ?

Oui, via l’API REST avec les fonctions « Commandes : lecture » et « écriture », via des fichiers XML ou via le connecteur de boutique Billbee. La section « Logistique » compare ces différentes méthodes.

Comment connecter la boutique à DATEV ?

Via DATEV Online : créez une application sur le portail des développeurs DATEV, saisissez vos identifiants d’accès ainsi que le numéro de conseiller et le mandant dans Paramètres → Interfaces → Gestion des stocks/ERP/Comptabilité → DATEV Online, puis sélectionnez « Se connecter », voir Comptabilité.

Comment afficher le numéro de client de la gestion des marchandises à la place de l’ID de la boutique sur les documents ?

Saisissez le numéro dans le compte client sous « Numéro client individuel (externe) » et laissez l’option « Utiliser le numéro client externe comme numéro client propre » sur « true ». Vous pouvez modifier cette attribution dans le même champ, voir Numéro client.

Pourquoi les catégories redeviennent-elles actives après la synchronisation avec le système de gestion des marchandises ?

Parce que le système de gestion des stocks fournit le statut : JTL-Wawi reprend les statuts « Actif »/« Inactif » du système de gestion des stocks, tandis que l’importation XML définit comme « Actif » les catégories sans statut dans le fichier. Désactivez la catégorie dans le système de gestion des stocks, voir Catégories.

Pourquoi un programme a-t-il encore accès après le retrait d’une autorisation ?

Parce que son jeton contient les autorisations qui étaient en vigueur au moment de son émission et reste valable jusqu’à une heure. Après la modification, sélectionnez « Révoquer le jeton » dans le menu d’actions de l’accès ; le programme récupérera alors un nouveau jeton avec les nouveaux droits. Dans les boutiques plus anciennes ne disposant pas de cette option, désactivez l’accès puis réactivez-le immédiatement, voir Révoquer les jetons.

Comment définir ou supprimer des blocages d’importation via l’API REST ?

À l’aide du champ « 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 ?

Dans l’onglet « Interface de données xoPort », vous définissez les champs que l’importation est autorisée à écraser pour cet article. Le champ « Filtre xoPort » dans l’onglet « Divers » associe quant à lui l’article à des exportations, voir Blocages d’importation.

Pourquoi la synchronisation remplace-t-elle une valeur que j’ai saisie dans la boutique ?

Parce que le système de gestion des stocks fournit ce champ. Modifiez la valeur à cet endroit ou supprimez le champ de la synchronisation : pour tous les articles dans les paramètres d’importation des produits, pour des articles individuels à l’aide d’un blocage d’importation, ou via le CSV-Porter avec skip.

Les identifiants d'accès à l'API changent-ils lors de la mise en production ?

Les identifiants OAuth2, l'AppKey et les paramètres d'interface se trouvent dans la base de données de la boutique et sont transférés avec celle-ci. Si le domaine change, saisissez la nouvelle adresse de la boutique dans chaque programme et vérifiez les listes d’adresses IP. Les identifiants FTP et SFTP ne font pas partie des paramètres de la boutique ; veuillez nous contacter pour savoir s’ils changent.

Comment indiquer correctement les identifiants d’accès dans une adresse d’exportation ?

Sous la forme 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 ?

Les fichiers tels que 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 ?

Via l’API REST avec un accès en lecture seule limité à ce dont l’analyse a besoin. Chaque accès est soumis aux autorisations, à la limite de requêtes et au journal disponibles sous « Afficher l’utilisation ». Pour les fichiers à modifier dans Excel, utilisez le CSV-Porter.

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