Si le punchout est un sujet nouveau pour vous, commencez par consulter comment fonctionne le punchout. Cette page s'adresse aux équipes qui connaissent le cycle de base et souhaitent savoir quel protocole mettre en place. En résumé : ce sont vos acheteurs qui décident. SAP Ariba, Coupa, Jaggaer, Oracle et Workday utilisent cXML. SAP SRM, S/4HANA et une large part des grands comptes européens utilisent OCI. Voici ce que chaque choix implique concrètement.
De quel protocole avez-vous besoin ?
- Grands comptes nord-américains et mondiaux (Ariba, Coupa, Oracle) : Vous avez besoin de cXML. Le cycle complet avec bon de commande électronique est la norme.
- Acheteurs SAP européens (SRM, ECC, S/4HANA) : Vous avez besoin d'OCI. Transfert de panier par formulaire HTML ; canal de bon de commande à valider en amont.
- Fournisseurs internationaux : Vous aurez inévitablement besoin des deux. Les piloter depuis un catalogue Shopify unifié évite les doublons et les écarts de tarifs.
Deux approches d'un même besoin
cXML repose sur des documents. Chaque étape est un document XML typé et validable : PunchOutSetupRequest pour ouvrir la session, PunchOutOrderMessage pour renvoyer le panier et OrderRequest pour recevoir le bon de commande. Les données sont structurées : codes UNSPSC, unités de mesure ISO, taxes et imputation analytique.
OCI (Open Catalog Interface) repose sur un formulaire HTML. L'ERP de l'acheteur appelle l'URL de votre boutique avec un paramètre HOOK_URL. Lorsque l'utilisateur valide son panier, votre boutique renvoie un formulaire HTML invisible contenant des champsNEW_ITEM-*. Sans schéma formel, OCI est rapide à déployer mais montre ses limites dès qu'il s'agit de transmettre des attributs sur mesure.
| Critère | cXML (Commerce XML) | OCI (Open Catalog Interface) |
|---|---|---|
| Architecture | Échange de documents XML via HTTP POST | Soumission de formulaire HTML via navigateur (HOOK_URL) |
| Transfert Panier | PunchOutOrderMessage (cxml-urlencoded ou cxml-base64) | Formulaire HTML auto-soumis avec champs indexés NEW_ITEM-* |
| Retour Commande (PO) | Document cXML OrderRequest direct vers l'endpoint | Panier uniquement. Commande envoyée par canal séparé (EDI, email, cXML) |
| Validation Schéma | Validation stricte DTD/XSD des deux côtés | Aucune. Noms de champs et formats variables selon l'ERP |
| UNSPSC et Unités | Éléments XML obligatoires pour UnitOfMeasure et classification | Champs optionnels NEW_ITEM-MATGROUP et NEW_ITEM-UNIT |
| Systèmes dominants | SAP Ariba, Coupa, Jaggaer, Oracle, Workday | SAP SRM, SAP ERP (ECC, S/4HANA), industrie européenne |
| Pièges fréquents | Unités non mappées (PCE vs EA), suppression de l'identifiant auxiliaire | Session perdue dans l'iframe (nécessite returntarget), GET avec identifiants |
Le bon de commande : la véritable divergence
Avec cXML, les bons de commande sont réceptionnés durablement, rapprochés du panier initial et déposés dans la boîte de réception « Purchase orders » de l'application PunchRelay. Rien n'est créé dans Shopify tant qu'une personne de votre équipe n'a pas vérifié le bon de commande et cliqué sur « Create Shopify order ». La commande est alors créée non payée, avec paiement en attente, prête à être expédiée. OCI ne standardise que le transfert du panier ; le canal de réception de la commande doit être convenu pour chaque client.
L'absence de retour commande standard en OCI
Faute de standard de commande dans OCI, de nombreux connecteurs historiques s'arrêtent au panier. Le marchand doit alors ressaisir manuellement les commandes reçues par PDF. Avec PunchRelay, cXML OrderRequest est natif. Les acheteurs OCI capables d'émettre des commandes cXML suivent le même chemin : le bon de commande arrive dans votre boîte de réception, et votre équipe crée la commande Shopify.
Les difficultés du terrain
- Le transfert de panier cXML utilise
cxml-urlencodedpour un client etcxml-base64pour un autre ; chaque connexion doit pouvoir être paramétrée. - cXML impose des unités ISO et une classification UNSPSC ; une table de correspondance est indispensable avant la première session de test.
- cXML n'a pas de champ universel pour lier la commande au panier ; la corrélation s'appuie souvent sur
SupplierPartAuxiliaryID, sous réserve que l'ERP le renvoie fidèlement. - OCI ne dispose d'aucun champ de corrélation par défaut ; OCI 4.0 propose les champs
NEW_ITEM-CUST_FIELD1à 5, dont la persistance dépend de chaque configuration SAP. - SAP intègre fréquemment le catalogue dans une iframe ; le formulaire de retour doit respecter le paramètre
returntargetsous peine de bloquer la navigation. - Les appels OCI initiaux arrivent parfois en méthode GET, exposant les identifiants dans l'URL ; vos logs doivent être masqués et l'acheteur invité à privilégier POST.
Commençons par votre marché, prévoyons les deux
En Amérique du Nord et sur les grands comptes globaux, cXML est incontournable (Ariba, Coupa, Oracle). En Europe, OCI demeure le standard dès lors que SAP gère les achats.
PunchRelay prend en charge les deux protocoles sur votre boutique Shopify. Consultez nos pages dédiées : SAP Ariba, Coupa ou OCI pour SAP.