Aller au contenu
Gatebold

Exemples OCI

Payloads OCI PunchOut prêts à copier.

7 exemples curés - cart return et setup request - illustrant à la fois les configurations propres (OCI 4.0, OCI 5.0 attachments) et les pièges classiques (PRICEUNIT x1000, index [0], ~Target=_self, etc.). Copier, télécharger ou tester directement dans le validateur.

Données fictives - usage de test uniquement.

Toutes les valeurs (VENDOR, VENDORMAT, codes produit, HOOK_URL, credentials) sont inventées. À ne jamais envoyer en production - utilisez ces exemples comme structure de référence puis remplacez chaque valeur par les vôtres.

Setup request

URL d'ouverture de session OCI - construite par l'acheteur (SAP SRM, S/4HANA, etc.) pour entrer dans le catalogue supplier. Paramètres USERNAME, PASSWORD, HOOK_URL, ~OkCode, ~Target, etc.

Setup request propre - HTTPS, ~Target=_top, ~OkCode=ADDI

La configuration recommandée pour un appel OCI vers un catalogue supplier en production.

Setup Request Clean

URL d'ouverture de session OCI conforme aux bonnes pratiques : HTTPS pour le tunnel, USERNAME et PASSWORD distincts, HOOK_URL absolu en HTTPS, ~OkCode=ADDI (ajout au shopping cart courant côté SAP), ~Target=_top (échappe toutes les iframes pour que le retour panier remonte au niveau de la fenêtre SRM), ~Caller=CTLG, et LANGU=FR pour servir le catalogue en français. C'est exactement le pattern qu'un acheteur SAP SRM configure côté supplier dans la table de connexion OCI.

URL de setup 181 car.
https://catalogue.example.com/punchout?USERNAME=buyer-acme&PASSWORD=demoSecret&HOOK_URL=https%3A%2F%2Fsrm.acme.fr%2Fpunchout%2Freturn&~OkCode=ADDI&~Target=_top&~Caller=CTLG&LANGU=FR

Setup request avec warnings - frame trap, HTTP, PASSWORD en query

Trois mauvaises pratiques fréquentes qui font échouer un punchout en production sans erreur explicite.

Setup Request Warnings

Trois pièges à éviter, tous présents dans cette URL : (1) HOOK_URL en HTTP - bloqué silencieusement par Chrome en mixed-content depuis un catalogue HTTPS. (2) ~Target=_self qui piège le formulaire de retour dans la frame courante (cas classique SRM derrière reverse proxy : le HOOK_URL n'est jamais déclenché). (3) PASSWORD passé en query string GET au lieu d'un POST form-urlencoded - le mot de passe se retrouve dans tous les logs de reverse proxy et historique navigateur. Le validateur Gatebold lève un warning sur chacun de ces points sans bloquer la validation.

URL de setup 172 car.
https://catalogue.example.com/punchout?USERNAME=buyer-acme&PASSWORD=demoSecret&HOOK_URL=http%3A%2F%2Fsrm.acme.fr%2Fpunchout%2Freturn&~OkCode=ADDI&~Target=_self&~Caller=CTLG

Retour panier (cart return)

Body application/x-www-form-urlencoded POSTé par le catalogue fournisseur sur le HOOK_URL de l'acheteur, contenant les lignes NEW_ITEM-*[i].

Retour panier minimal - 1 ligne, obligatoires uniquement

Le plus petit retour OCI valide qui passe sans erreur ni warning.

Cart Return OCI 4.0 Minimal

Le retour panier minimum techniquement valide selon OCI 4.0 : une seule ligne avec les cinq champs obligatoires (DESCRIPTION, QUANTITY, UNIT, PRICE, CURRENCY). Pas de VENDOR, pas de MATGROUP, pas de DELIVERYDATE. Utile pour démarrer une intégration depuis zéro et vérifier que le tunnel HOOK_URL fonctionne avant d'enrichir le mapping. À noter : sans MATGROUP (UNSPSC), de nombreux acheteurs SAP recatégoriseront la ligne dans un groupe par défaut - c'est volontairement absent ici pour montrer le strict minimum.

Body form-urlencoded 144 car.
NEW_ITEM-DESCRIPTION[1]=Crayon%20HB%20lot%20de%2012&NEW_ITEM-QUANTITY[1]=10&NEW_ITEM-UNIT[1]=PCE&NEW_ITEM-PRICE[1]=1.50&NEW_ITEM-CURRENCY[1]=EUR

Retour panier complet OCI 4.0 - 3 lignes mixtes

Trois lignes variées avec VENDOR, MATGROUP UNSPSC, DELIVERYDATE et une ligne de service.

Cart Return OCI 4.0 Complet

Un retour réaliste de catalogue B2B sur OCI 4.0. Trois lignes : du câble Cat6a (matériel réseau, UNSPSC 43222600), un cordon d'alimentation IEC (UNSPSC 39121600), et une prestation de service (NEW_ITEM-SERVICE=X, unité HUR = heure). Chaque ligne porte sa référence fournisseur (VENDOR + VENDORMAT), son code UNSPSC (MATGROUP) et la première ligne pousse une date de livraison souhaitée. C'est ce niveau de richesse qu'un acheteur SAP attend en production - le minimum technique ne suffit jamais en pratique au-delà du POC.

Body form-urlencoded 759 car.
NEW_ITEM-DESCRIPTION[1]=Cable%20RJ45%20Cat6a%201m%20gris&NEW_ITEM-MATNR[1]=NET-C6A-1M&NEW_ITEM-QUANTITY[1]=50&NEW_ITEM-UNIT[1]=PCE&NEW_ITEM-PRICE[1]=2.40&NEW_ITEM-CURRENCY[1]=EUR&NEW_ITEM-VENDOR[1]=ACME01&NEW_ITEM-VENDORMAT[1]=ACME-RJ45-C6A-1M&NEW_ITEM-MATGROUP[1]=43222600&NEW_ITEM-DELIVERYDATE[1]=2026-06-15&NEW_ITEM-DESCRIPTION[2]=Cordon%20alimentation%20IEC%20C13%201.8m&NEW_ITEM-QUANTITY[2]=20&NEW_ITEM-UNIT[2]=PCE&NEW_ITEM-PRICE[2]=4.20&NEW_ITEM-CURRENCY[2]=EUR&NEW_ITEM-VENDOR[2]=ACME01&NEW_ITEM-VENDORMAT[2]=ACME-PWR-C13&NEW_ITEM-MATGROUP[2]=39121600&NEW_ITEM-DESCRIPTION[3]=Service%20installation%20sur%20site&NEW_ITEM-QUANTITY[3]=2&NEW_ITEM-UNIT[3]=HUR&NEW_ITEM-PRICE[3]=85.00&NEW_ITEM-CURRENCY[3]=EUR&NEW_ITEM-SERVICE[3]=X&NEW_ITEM-VENDOR[3]=ACME01

Piège PRICEUNIT - le silent killer prix x1000

Démontre la source numéro un d'erreurs prix en intégration OCI : PRICEUNIT mal interprété par le buyer.

Cart Return OCI 4.0 Piège

Le fournisseur envoie un prix unitaire de 12,50 EUR... pour 1000 unités (PRICEUNIT=1000) sur de la visserie. Le prix réel par pièce est 0,0125 EUR. Si l'acheteur SAP ne mappe pas PRICEUNIT côté MM-PUR, il facturera 12,50 EUR par pièce - facteur 1000 d'erreur. C'est le bug le plus coûteux et le plus silencieux du protocole OCI : aucune erreur de validation, aucun warning d'encodage, juste un panier qui rentre dans SAP avec un montant astronomique. Le validateur Gatebold calcule le prix effectif et alerte explicitement sur cette ligne.

Body form-urlencoded 281 car.
NEW_ITEM-DESCRIPTION[1]=Vis%20tete%20plate%20M4x16%20(lot%201000)&NEW_ITEM-QUANTITY[1]=2500&NEW_ITEM-UNIT[1]=PCE&NEW_ITEM-PRICE[1]=12.50&NEW_ITEM-PRICEUNIT[1]=1000&NEW_ITEM-CURRENCY[1]=EUR&NEW_ITEM-VENDOR[1]=ACME01&NEW_ITEM-VENDORMAT[1]=ACME-VIS-M4-16&NEW_ITEM-MATGROUP[1]=31161700

Démo erreurs - le validateur en action

Un panier volontairement cassé pour voir ce que le validateur attrape réellement.

Cart Return Démo erreurs

Quatre lignes, quatre catégories d'erreur : (1) Une ligne sur l'index [0] interdit par la spec OCI 4.0 avec en bonus une devise inexistante (XXX). (2) Une ligne [2] où le champ obligatoire PRICE est absent. (3) Une ligne [3] avec une date de livraison invalide (2026-13-45). (4) Indices [0], [2], [3] non contigus, le validateur signalera aussi le saut d'index. C'est le payload idéal pour comprendre quels checks le validateur applique avant d'envoyer ton vrai retour panier de prod.

Body form-urlencoded 469 car.
NEW_ITEM-DESCRIPTION[0]=Article%20sur%20index%200%20-%20interdit&NEW_ITEM-QUANTITY[0]=1&NEW_ITEM-UNIT[0]=PCE&NEW_ITEM-PRICE[0]=10&NEW_ITEM-CURRENCY[0]=XXX&NEW_ITEM-DESCRIPTION[2]=PRICE%20manquant%20sur%20cette%20ligne&NEW_ITEM-QUANTITY[2]=5&NEW_ITEM-UNIT[2]=PCE&NEW_ITEM-CURRENCY[2]=EUR&NEW_ITEM-DESCRIPTION[3]=Date%20de%20livraison%20invalide&NEW_ITEM-QUANTITY[3]=1&NEW_ITEM-UNIT[3]=PCE&NEW_ITEM-PRICE[3]=15&NEW_ITEM-CURRENCY[3]=EUR&NEW_ITEM-DELIVERYDATE[3]=2026-13-45

OCI 5.0 - pièces jointes et références produit externes

Une ligne enrichie avec ATTACHMENT, EXT_PRODUCT_ID (GTIN) et EXT_CATEGORY_ID (UNSPSC), spécifiques à OCI 5.0.

Cart Return OCI 5.0

Démonstration des champs introduits par OCI 5.0 : NEW_ITEM-ATTACHMENT (URL d'une fiche technique PDF), NEW_ITEM-ATTACHMENT_TITLE + PURPOSE, NEW_ITEM-EXT_PRODUCT_ID (code GTIN/EAN), NEW_ITEM-EXT_SCHEMA_TYPE (GTIN ici), et NEW_ITEM-EXT_CATEGORY_ID/EXT_CATEGORY pour pousser une classification externe en plus du MATGROUP. Le validateur reconnaît ces champs et les marque comme OCI 5.0 dans le rapport. En pratique, peu d'acheteurs SAP accepteront ces champs sans configuration spécifique - démarrer en OCI 4.0 et négocier l'ajout avec le buyer.

Body form-urlencoded 671 car.
NEW_ITEM-DESCRIPTION[1]=Onduleur%20APC%20Smart-UPS%201500VA&NEW_ITEM-MATNR[1]=UPS-APC-1500&NEW_ITEM-QUANTITY[1]=2&NEW_ITEM-UNIT[1]=PCE&NEW_ITEM-PRICE[1]=489.00&NEW_ITEM-CURRENCY[1]=EUR&NEW_ITEM-VENDOR[1]=ACME01&NEW_ITEM-VENDORMAT[1]=APC-SMT1500IC&NEW_ITEM-MANUFACTCODE[1]=APC&NEW_ITEM-MANUFACTMAT[1]=SMT1500IC&NEW_ITEM-MATGROUP[1]=39121011&NEW_ITEM-ATTACHMENT[1]=https%3A%2F%2Fdocs.acme.fr%2Fdatasheets%2Fapc-smt1500ic.pdf&NEW_ITEM-ATTACHMENT_TITLE[1]=Fiche%20technique%20APC%20SMT1500IC&NEW_ITEM-ATTACHMENT_PURPOSE[1]=DATASHEET&NEW_ITEM-EXT_PRODUCT_ID[1]=0731304304463&NEW_ITEM-EXT_SCHEMA_TYPE[1]=GTIN&NEW_ITEM-EXT_CATEGORY_ID[1]=39121011&NEW_ITEM-EXT_CATEGORY[1]=UNSPSC

Pour aller plus loin

  • Validateur OCI - tester vos payloads OCI contre les règles documentées (PRICEUNIT, indexation, unités SAP T006, encodage, etc.).
  • Référence des champs OCI - les 38 champs documentés (cart return + setup request), avec format, longueur, version 4.0/5.0 et descriptions.
  • Validateur cXML - équivalent pour le protocole cXML 1.2.070 (DTD officielle).
  • cXML vs OCI - comparaison protocolaire complète.
  • Codes UNSPSC - le référentiel produit/service pour le champ NEW_ITEM-MATGROUP.