cXML in un minuto
cXML è stato creato alla fine degli anni Novanta, originariamente da Ariba, per consentire ai sistemi di acquisto e ai fornitori di scambiare documenti commerciali in un formato comune. È pubblicato su cxml.org come insieme di tipi di documenti XML con una DTD pubblica ed è ancora oggi il linguaggio usato dalla maggior parte dei sistemi di acquisto cloud.
Ogni documento cXML ha la stessa struttura: una busta con un payloadID e una marca temporale, un Header che indica chi invia il documento, a chi e con quali credenziali, e poi un elemento Request, Response o Message con il contenuto commerciale.
cXML e XML a confronto
| XML | cXML | |
|---|---|---|
| Cos’è | Un formato generale per dati strutturati | Un insieme specifico di documenti XML per gli acquisti |
| Regole | Qualsiasi schema definito da te | DTD fissa pubblicata su cxml.org |
| Usato per | Qualsiasi ambito | PunchOut, ordini, conferme, avvisi di spedizione, fatture |
I messaggi cXML ricevuti da un fornitore
| Messaggio | Cosa fa | In PunchOut Rocket |
|---|---|---|
| PunchOutSetupRequest | Il cliente apre il tuo e-commerce | Sì |
| PunchOutOrderMessage | Il carrello torna al cliente | Sì |
| OrderRequest | Ordine d’acquisto approvato | Piano Premium |
| ConfirmationRequest | Conferma d’ordine | Opzione OC & ASN |
| ShipNoticeRequest | Avviso di spedizione (ASN) | Opzione OC & ASN |
| InvoiceDetailRequest | Fattura | Su richiesta |
Per PunchOut contano i primi tre: aprono la sessione, restituiscono il carrello e consegnano l’ordine. Conferme, avvisi di spedizione e fatture sono flussi separati che alcuni clienti richiedono dopo la messa online: PunchOut Rocket importa gli ordini d’acquisto con il piano Premium, invia conferme e avvisi di spedizione con la relativa opzione OC & ASN e quota le fatture su richiesta.
Esempio · PunchOutSetupRequest (abbreviato)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="1729332000.4711@buyer.example.com" timestamp="2026-10-19T10:00:00+02:00">
<Header>
<From><Credential domain="NetworkID"><Identity>AN01000000001</Identity></Credential></From>
<To><Credential domain="NetworkID"><Identity>AN01000000002</Identity></Credential></To>
<Sender>
<Credential domain="NetworkID">
<Identity>AN01000000001</Identity>
<SharedSecret>••••••••</SharedSecret>
</Credential>
<UserAgent>Buyer procurement system</UserAgent>
</Sender>
</Header>
<Request>
<PunchOutSetupRequest operation="create">
<BuyerCookie>8f2c41d0a9</BuyerCookie>
<BrowserFormPost><URL>https://buyer.example.com/punchout/return</URL></BrowserFormPost>
<SupplierSetup><URL>https://gateway.example.com/setup</URL></SupplierSetup>
</PunchOutSetupRequest>
</Request>
</cXML>Credenziali e shared secret
Ogni documento cXML contiene tre credenziali nell’header: From (da chi proviene il documento), To (a chi è destinato) e Sender (il sistema che lo invia effettivamente, con uno SharedSecret). Su SAP Business Network le identità sono Ariba Network ID (ANID); altri sistemi usano numeri DUNS o identificativi propri. Lo shared secret viene concordato con il cliente e non deve mai comparire in email o schermate.
Cos’è un catalogo cXML?
Il termine viene usato per due cose diverse:
Catalogo statico (CIF o indice cXML)
Un file da caricare nel sistema del cliente. Prezzi e articoli restano fermi fino al caricamento successivo.
Catalogo PunchOut
Il cliente apre il tuo e-commerce in tempo reale tramite cXML. Prezzi, disponibilità e configurazioni sono sempre aggiornati.
Prossimo approfondimento: confronto tra cXML e OCI di SAP.
PunchOut sull’e-commerce che hai già
PunchOut Rocket collega WooCommerce, Magento, PrestaShop e nopCommerce a SAP Ariba, Coupa e SAP tramite cXML o OCI. Da 163 €/mese per sito, prova gratuita di 30 giorni.