Aller au contenu
Gatebold

Publié le

cXML vs OCI : quelle différence et lequel choisir ?

cXML et OCI sont les deux formats dominants en PunchOut B2B. Leurs origines, leurs mécanismes techniques et leurs cas d'usage sont très différents. Ce guide vous aide à comprendre lequel vous allez rencontrer et comment les gérer.

Comparaison des protocoles cXML et OCI

Quand on démarre un projet PunchOut, une question revient rapidement : cXML ou OCI ? Ce sont les deux formats d’échange dominants en e-procurement B2B. Ils font globalement la même chose - permettre à un prescripteur de naviguer sur un catalogue fournisseur et de renvoyer un panier - mais avec des mécanismes très différents.

Origines

cXML (commerce XML) a été créé par Ariba à la fin des années 1990. C’est un format XML complet avec un ensemble de messages standardisés. Il est devenu le standard de fait pour les systèmes d’achats comme SAP Ariba, Coupa, Jaggaer et Oracle Procurement.

OCI (Open Catalog Interface) a été créé par SAP pour connecter ses systèmes (SAP SRM, SAP S/4HANA) à des catalogues fournisseurs externes. C’est un mécanisme plus simple, basé sur des paramètres URL et des formulaires HTML.

Comparaison technique

cXML OCI
Format XML structuré Paramètres URL / formulaire HTML
Créateur Ariba (SAP) SAP
Ouverture de session PunchOutSetupRequest (XML POST) URL avec paramètres (HOOK_URL)
Retour panier PunchOutOrderMessage (XML POST) Formulaire HTML POST vers HOOK_URL
Authentification SharedSecret dans le XML Paramètres URL ou header
Complexité Élevée (DTD, validation) Faible (clé=valeur)
Systèmes Ariba, Coupa, Jaggaer, Oracle SAP SRM, SAP S/4HANA
Mapping Riche (ItemIn, Extrinsic, UOM...) Simplifié (NEW_ITEM-DESCRIPTION...)

Le flux cXML

1

Système d'achats

Envoie un PunchOutSetupRequest (document XML complet avec credentials)

Acheteur → Fournisseur
2

Fournisseur

Répond avec un PunchOutSetupResponse contenant l'URL de session

Fournisseur → Acheteur
3

Prescripteur

Navigue sur le catalogue, constitue son panier

Prescripteur → Catalogue
4

Fournisseur

Envoie le PunchOutOrderMessage (XML) vers le BrowserFormPost

Fournisseur → Acheteur

Le cXML échange des documents XML complets à chaque étape. L’authentification, les données produit, les prix, les taxes - tout est structuré dans le XML.

Le flux OCI

1

SAP (acheteur)

Redirige le prescripteur avec une URL contenant HOOK_URL et OCI_VERSION

SAP → Fournisseur
2

Prescripteur

Navigue sur le catalogue, constitue son panier

Prescripteur → Catalogue
3

Fournisseur

Poste un formulaire HTML vers HOOK_URL avec les champs NEW_ITEM-*

Fournisseur → SAP

L’OCI est plus simple : pas de XML, pas de DTD, pas de PunchOutSetupRequest. Le système d’achats redirige le prescripteur avec une URL contenant un HOOK_URL (l’adresse de retour). Le fournisseur renvoie le panier via un formulaire HTML standard.

Quand utiliser lequel ?

Vous ne choisissez pas - c’est l’acheteur qui impose le format.

  • Si votre client utilise SAP Ariba, Coupa, Jaggaer, Oracle → il demandera du cXML
  • Si votre client utilise SAP SRM ou SAP S/4HANA directement → il demandera de l’OCI
  • Certains clients SAP utilisent Ariba comme couche intermédiaire → dans ce cas c’est du cXML même si le backend est SAP

En pratique, si vous vendez à plusieurs grands comptes, vous aurez besoin des deux formats.

Les différences qui comptent en intégration

Complexité du mapping

En cXML, le PunchOutOrderMessage est un document XML riche avec des nœuds imbriqués (ItemIn, ItemDetail, UnitPrice, Classification, Extrinsic). Le mapping est puissant mais complexe.

En OCI, le retour panier est un ensemble de paires clé=valeur plates. Plus simple à construire, mais moins expressif.

Validation

Le cXML a un DTD officiel. Chaque message peut (et devrait) être validé contre ce DTD. Les erreurs de structure sont détectables automatiquement.

L’OCI n’a pas de schéma formel. Les erreurs sont détectées côté SAP à la réception, souvent sans message explicite.

Sécurité

Le cXML intègre l’authentification dans le message lui-même (SharedSecret). L’OCI passe l’authentification via l’URL ou des headers HTTP - moins structuré mais fonctionnel.

Comment Gatebold gère les deux

Gatebold supporte cXML et OCI nativement. La configuration se fait par acheteur :

  • Un acheteur Ariba → connexion cXML avec son shared secret et son mapping
  • Un acheteur SAP SRM → connexion OCI avec son HOOK_URL et ses champs
  • Les deux coexistent dans la même plateforme, avec le même connecteur Magento

Le mapping est adapté au format de chaque acheteur. L’observabilité trace les échanges quel que soit le protocole.

En résumé

cXML OCI
Quand Ariba, Coupa, Jaggaer, Oracle SAP SRM, SAP S/4HANA
Comment XML structuré, DTD URL + formulaire HTML
Complexité Élevée Faible
Expressivité Riche Basique

La question n’est pas “lequel choisir” mais “lequel votre acheteur utilise”. Et si vous avez plusieurs acheteurs, vous aurez besoin des deux.

Si vous avez un projet multi-acheteurs sur Magento, parlons-en.