Aller au contenu
Gatebold

Publié le

PunchOut Oracle Procurement : spécificités et intégration Magento

Oracle Procurement Cloud a ses propres conventions cXML. Ce guide couvre les spécificités Oracle, les différences avec Ariba et Coupa, et l'approche recommandée pour Magento et Adobe Commerce.

Oracle Procurement Cloud avec requisition PunchOut

Oracle Procurement Cloud est le troisième système d’achats le plus rencontré dans les projets PunchOut, après SAP Ariba et Coupa. Utilisé par les grands groupes qui ont déjà un écosystème Oracle (ERP Cloud, Fusion), il a ses propres conventions en matière de cXML.

Oracle Procurement dans le paysage e-procurement

SystèmePart estimée des demandes PunchOut
SAP Ariba~50%
Coupa~25%
Oracle Procurement~15%
Jaggaer, autres~10%

Si votre client est un grand groupe avec Oracle comme ERP, il utilisera probablement Oracle Procurement Cloud (anciennement Oracle iProcurement) pour ses achats. Et il vous demandera une connexion PunchOut en cXML.

Le flux PunchOut avec Oracle

Le flux est standard cXML, mais Oracle a quelques particularités :

1

Oracle

Envoie un PunchOutSetupRequest (cXML, identifiants Oracle)

Oracle → Fournisseur
2

Fournisseur

Valide les credentials, crée une session

Fournisseur → Catalogue
3

Fournisseur

Renvoie l'URL de session

Fournisseur → Oracle
4

Prescripteur

Navigue sur le catalogue, constitue son panier

Prescripteur → Catalogue
5

Catalogue

Envoie le panier via le connecteur

Catalogue → Fournisseur
6

Fournisseur

Construit le PunchOutOrderMessage et l'envoie

Fournisseur → Oracle
7

Oracle

Crée une réquisition interne pour validation

Oracle (interne)

Différences avec Ariba et Coupa

SAP AribaCoupaOracle
CredentialsANCI + SharedSecretSharedSecretIdentity + SharedSecret
BuyerCookieStandardStandardSouvent enrichi
ExtrinsicVariablesVariablesSpécifiques Oracle
Mode EditSupportéTrès utiliséSupporté
SandboxVia invitationCSP intégréVia Oracle Cloud
DTDStandardStandardStandard + extensions

Les credentials Oracle

Oracle utilise le même mécanisme de credentials cXML (From, To, Sender) mais les identifiants sont souvent structurés différemment :

  • Le From > Identity contient l’identifiant Oracle du client (pas un ANCI Ariba)
  • Le To > Identity contient votre identifiant fournisseur tel que configuré dans Oracle
  • Le SharedSecret est défini dans l’administration Oracle Procurement

Le BuyerCookie enrichi

Oracle a tendance à inclure plus d’informations dans le BuyerCookie que les autres systèmes. Ce cookie - que vous devez renvoyer tel quel dans le PunchOutOrderMessage - peut contenir des identifiants de réquisition, des codes de suivi, et des métadonnées Oracle.

Ne modifiez jamais le BuyerCookie. Renvoyez-le exactement comme reçu.

Les champs Extrinsic Oracle

Oracle s’attend à des champs Extrinsic spécifiques dans le PunchOutOrderMessage qui n’existent pas chez Ariba ou Coupa :

  • UniqueName - identifiant interne Oracle pour le produit
  • IsAdHoc - indique si l’article est hors catalogue
  • Codes analytiques et centres de coûts propres à Oracle

Ces champs doivent être configurés dans le mapping par acheteur.

Les pièges spécifiques Oracle

1. Le format des montants

Oracle peut être strict sur le nombre de décimales et le séparateur. Un prix 45.5 au lieu de 45.5000 peut poser problème selon la configuration du client.

2. L’encodage des caractères

Oracle Procurement Cloud est sensible à l’encodage UTF-8 des descriptions produit. Les caractères spéciaux français (accents, cédilles) doivent être correctement encodés dans le XML.

3. La gestion du catalogue vs hors catalogue

Oracle distingue les articles “catalogue” (référencés dans Oracle) et “ad hoc” (non référencés). Le PunchOutOrderMessage doit indiquer si l’article est de l’un ou l’autre type via les Extrinsic.

4. Les timeouts plus courts

Oracle Procurement impose souvent des timeouts de session plus courts qu’Ariba. Un prescripteur qui hésite trop longtemps sur votre boutique perd sa session.

Tester avec Oracle Procurement

Le test se fait généralement dans l’environnement Oracle Cloud de votre client :

  1. Le client vous crée un accès fournisseur dans son Oracle Procurement de test
  2. Vous configurez vos credentials (Identity, SharedSecret)
  3. Le client ou vous-même déclenchez un PunchOut de test
  4. Vous validez la session et le retour panier
  5. Le client vérifie la réquisition créée dans Oracle

L’observabilité des échanges est critique : Oracle ne donne pas toujours des messages d’erreur explicites. Voir le payload cXML exact échangé permet de diagnostiquer rapidement.

Comment Gatebold gère Oracle

Gatebold supporte Oracle Procurement Cloud avec :

  • Credentials Oracle : validation des identifiants spécifiques Oracle
  • BuyerCookie : préservation intégrale, aucune modification
  • Extrinsic Oracle : configurables dans le mapping par acheteur
  • Encodage UTF-8 : garanti sur tous les payloads sortants
  • Précision des montants : configurable par connexion

Le même connecteur Magento sert pour Oracle, Ariba et Coupa - la différence est dans la configuration de la connexion dans Gatebold, pas dans le code.

En résumé

Oracle Procurement Cloud est le troisième acteur majeur en PunchOut. Ses spécificités (credentials, Extrinsic, BuyerCookie enrichi) demandent une configuration dédiée par acheteur, mais le flux reste du cXML standard. Si votre client est sur Oracle, l’intégration est tout à fait faisable - à condition d’anticiper les conventions Oracle dès le début.

Si vous avez un client Oracle qui vous demande le PunchOut sur Magento, parlons-en.