cXML w minutę
cXML powstał pod koniec lat dziewięćdziesiątych XX wieku, pierwotnie w Ariba, aby systemy zakupowe i dostawcy mogli wymieniać dokumenty handlowe we wspólnym formacie. Jest publikowany na cxml.org jako zestaw typów dokumentów XML z publiczną DTD i nadal jest językiem większości chmurowych systemów zakupowych.
Każdy dokument cXML ma tę samą strukturę: kopertę z payloadID i znacznikiem czasu, Header określający nadawcę, odbiorcę i dane uwierzytelniające, a następnie Request, Response lub Message z treścią biznesową.
cXML a XML
| XML | cXML | |
|---|---|---|
| Co to jest | Ogólny format danych strukturalnych | Konkretny zestaw dokumentów XML dla zakupów |
| Reguły | Dowolny zdefiniowany schemat | Stała DTD opublikowana na cxml.org |
| Zastosowanie | Dowolne | PunchOut, zamówienia, potwierdzenia, awiza wysyłki, faktury |
Komunikaty cXML odbierane przez dostawcę
| Komunikat | Funkcja | W PunchOut Rocket |
|---|---|---|
| PunchOutSetupRequest | Klient otwiera sklep | Tak |
| PunchOutOrderMessage | Koszyk wraca do klienta | Tak |
| OrderRequest | Zatwierdzone zamówienie zakupu | Plan Premium |
| ConfirmationRequest | Potwierdzenie zamówienia | Opcja OC & ASN |
| ShipNoticeRequest | Awizo wysyłki (ASN) | Opcja OC & ASN |
| InvoiceDetailRequest | Faktura | Na życzenie |
Dla PunchOut kluczowe są pierwsze trzy: otwierają sesję, zwracają koszyk i dostarczają zamówienie. Potwierdzenia, awiza i faktury to osobne przepływy, których niektórzy klienci wymagają po uruchomieniu: PunchOut Rocket importuje zamówienia zakupu w planie Premium, wysyła potwierdzenia i awiza z opcją OC & ASN, a faktury wycenia na życzenie.
Przykład · PunchOutSetupRequest (skrócony)
<?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>Dane uwierzytelniające i shared secrets
Każdy dokument cXML zawiera trzy dane uwierzytelniające w nagłówku: From (od kogo pochodzi), To (do kogo jest adresowany) i Sender (system, który faktycznie go wysyła, z SharedSecret). W SAP Business Network tożsamości to Ariba Network ID (ANID); inne systemy używają numerów DUNS lub własnych identyfikatorów. Shared secret jest uzgadniany z klientem i nigdy nie powinien pojawiać się w emailach ani na zrzutach ekranu.
Czym jest katalog cXML?
Pojęcie jest używane w dwóch znaczeniach:
Katalog statyczny (CIF lub indeks cXML)
Plik przesyłany do systemu klienta. Ceny i artykuły nie zmieniają się do kolejnego przesłania.
Katalog PunchOut
Klient otwiera sklep na żywo przez cXML. Ceny, stany magazynowe i konfiguracje są zawsze aktualne.
Dalej: porównanie cXML z OCI firmy SAP.
PunchOut w obecnym sklepie
PunchOut Rocket łączy WooCommerce, Magento, PrestaShop i nopCommerce z SAP Ariba, Coupa i SAP przez cXML lub OCI. Od 163 €/mies. za witrynę, 30-dniowy bezpłatny okres próbny.