PunchOut (OCI, cXML) - co to i jak działa
**PunchOut** to mechanizm, który pozwala kupującemu pozostać w swoim systemie zakupowym (np. SAP Ariba, Coupa, Jaggaer) i jednocześnie przeglądać katalog dostawcy w jego sklepie internetowym. Klient klika „przeglądaj katalog dostawcy X" → otwiera się sklep dostawcy z jego zalogowaniem i cennikiem → wybiera produkty → koszyk wraca jako ustrukturyzowany dokument (XML) do systemu zakupowego klienta, który tworzy zamówienie.
Spis treści (7)
Po co istnieje PunchOut
Klienci korporacyjni używają systemów zakupowych (e-procurement) do kontrolowanego kupowania. Każdy zakup w korporacji musi przejść przez ich procesy: kontrolę budżetu, akceptację, kategoryzację. Bezpośrednie kupowanie w sklepie dostawcy obejście tych procesów.
Dwie opcje:
- Hosted catalog - dostawca wysyła klientowi plik katalogu (CSV, XML), klient ładuje do swojego systemu. Statyczne, działa dla produktów o niezmiennej cenie.
- PunchOut - klient w czasie rzeczywistym wchodzi do sklepu dostawcy. Ceny dynamiczne, kontekstowy katalog (tylko produkty kontraktowe), aktualne stany.
PunchOut jest preferowany dla większych kontraktów i nietrywialnych asortymentów.
Jak PunchOut wygląda krok po kroku
- Klient w swoim systemie zakupowym (np. SAP Ariba) klika „Procure from Supplier X"
- Ariba wysyła PunchOutSetupRequest (cXML) do endpointa dostawcy
- Sklep dostawcy odbiera request, autoryzuje, tworzy sesję dla klienta, zwraca URL
- Klient zostaje przekierowany do tego URL - wchodzi do sklepu dostawcy z auto-loginem
- Klient przegląda katalog (widzi swoje produkty kontraktowe, swoje ceny)
- Klient klika „Transfer to Cart" - sklep wysyła
cXML PunchOutOrderMessagez listą produktów do systemu Ariby - Ariba odbiera koszyk, tworzy „requisition" (zapotrzebowanie)
- Workflow zatwierdzania po stronie klienta (kierownik, budżet, etc.)
- Po zatwierdzeniu Ariba wysyła
PurchaseOrder(cXML) do sklepu dostawcy - to jest właściwe zamówienie
Cały przepływ trwa 30 sekund w dobrym scenariuszu, 5 minut w korporacyjnym workflow zatwierdzania.
OCI vs. cXML - dwa protokoły PunchOut
OCI (Open Catalog Interface). Stary standard SAP-owy, od końca lat 90. Działa przez HTML form z polami NEW_ITEM-DESCRIPTION[1], NEW_ITEM-PRICE[1] etc. Wciąż używany przez SAP-owe systemy zakupowe (klasyczna integracja z SRM).
cXML (commerce XML). Standard otwarty, używany przez Aribę, Coupa, Jaggaer. Modern XML, bogatszy. Działa przez POST XML do endpointa, response XML z URL przekierowania.
Większość nowych integracji to cXML. OCI wciąż obecne w starszych SAP-owych klientach.
Architektura wdrożenia PunchOut
Po stronie sklepu B2B trzeba zbudować:
- Endpoint setup (
/punchout/setup) - odbiera PunchOutSetupRequest, parsuje cXML, weryfikuje credentials klienta - Sesja PunchOut - sklep tworzy specjalną sesję, oznaczoną jako PunchOut, z kontekstem klienta i systemu zakupowego
- Customizacja UI - w trybie PunchOut sklep pokazuje przycisk „Transfer to Cart" zamiast „Złóż zamówienie"
- Endpoint transfer - gdy klient klika „Transfer", sklep generuje cXML PunchOutOrderMessage i przekierowuje
- Endpoint PurchaseOrder (
/punchout/po) - odbiera właściwe zamówienie z Ariby, tworzy zamówienie w sklepie/ERP
Magento Adobe Commerce ma to po części wbudowane. Shopware Enterprise B2B Suite - częściowo. Custom - pisze się.
Kiedy potrzebujesz PunchOut
- Sprzedajesz do korporacji z SAP Aribą / Coupa / Jaggaer - bez PunchOut nie jesteś dla nich realnym dostawcą
- Klient kontraktowy o dużym wolumenie (od ~500 tys. zł rocznie) i nieoczywistym katalogu (>1000 SKU, dynamiczne ceny)
NIE potrzebujesz PunchOut gdy:
- Sprzedajesz B2C lub do małych B2B
- Twoi klienci nie używają systemów e-procurement
- Twój asortyment jest stały (wystarczy hosted catalog)
PunchOut - pułapki wdrożenia
- PunchOut to nie EDI. EDI to wymiana dokumentów między systemami. PunchOut to interaktywne przeglądanie katalogu.
- Klient nie loguje się w klasyczny sposób - autentykacja jest przez
From/To/Senderw cXML, podpisana shared secretem. - Testowanie z Aribą może trwać tygodnie. Klient korporacyjny ma własne procedury, certyfikacje.
- Każdy klient PunchOut może mieć inny katalog (Shared Catalog w Adobe Commerce, Individual Catalog w Shopware). Wymaga to integracji z systemem cenników.
- Cena za wdrożenie PunchOut dla średniego scope: 30-80 tys. zł. Sam protokół jest udokumentowany, ale integracja z workflow klienta jest pracochłonna.
Pokrewne pojęcia
O autorze
Jakub Owsianka
Architekt rozwiązania w WiseB2B - silniku platform B2B. Zaczynał po stronie biznesu (własne sklepy), potem deweloper, dziś projektuje wdrożenia dla sklepów z katalogami w dziesiątkach tysięcy SKU. W ostatnich latach wdrożył AI-development w zespole i funkcjonalności oparte o AI bezpośrednio w silniku sklepu.
Czytaj dalej w temacie wydajności
Wszystkie wpisyMasz pytanie do tego artykułu?
Dodatkowy kontekst, problem z własnym wdrożeniem, druga opinia - napisz wprost. Odpowiadam osobiście w 1-2 dni robocze.