{"id":3222,"date":"2026-03-05T13:08:40","date_gmt":"2026-03-05T12:08:40","guid":{"rendered":"https:\/\/punchoutrocket.com\/niestandardowa-integracja-e-commerce\/"},"modified":"2026-04-24T15:42:56","modified_gmt":"2026-04-24T13:42:56","slug":"niestandardowa-integracja-e-commerce","status":"publish","type":"page","link":"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/","title":{"rendered":"Niestandardowa integracja e-commerce"},"content":{"rendered":"<\/p>\n<div  id=\"introduction\"  class='flex_column av-22n5q5-72024669ccc0586c479509a86d02867e av_one_full  avia-builder-el-0  avia-builder-el-no-sibling  first flex_column_div  '     ><p>\n<style type=\"text\/css\" data-created_by=\"avia_inline_auto\" id=\"style-css-av-mhj33pbb-4c7812aaf585170cb161960a228cb58e\">\n#top .av-special-heading.av-mhj33pbb-4c7812aaf585170cb161960a228cb58e{\npadding-bottom:10px;\n}\nbody .av-special-heading.av-mhj33pbb-4c7812aaf585170cb161960a228cb58e .av-special-heading-tag .heading-char{\nfont-size:25px;\n}\n.av-special-heading.av-mhj33pbb-4c7812aaf585170cb161960a228cb58e .av-subheading{\nfont-size:15px;\n}\n<\/style>\n<div  class='av-special-heading av-mhj33pbb-4c7812aaf585170cb161960a228cb58e av-special-heading-h2 blockquote modern-quote  avia-builder-el-1  el_before_av_textblock  avia-builder-el-first '><h2 class='av-special-heading-tag '  itemprop=\"headline\"  >Specyfikacja API REST dla niestandardowego e-commerce<\/h2><div class='av-subheading av-subheading_below'><p>Ta dokumentacja techniczna przedstawia punkty ko\u0144cowe, webhooki, zachowania SSO oraz \u0142adunki JSON wymagane do po\u0142\u0105czenia w\u0142asno\u015bciowej lub bezg\u0142owej platformy e-commerce z oprogramowaniem po\u015brednicz\u0105cym PunchOut Rocket.<\/p>\n<\/div><div class=\"special-heading-border\"><div class=\"special-heading-inner-border\"><\/div><\/div><\/div><br \/>\n<section  class='av_textblock_section av-mmdf8kgq-0e979a6b7f851c50b218992ffaba6a19 '   itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/CreativeWork\" ><div class='avia_textblock'  itemprop=\"text\" ><p>Niniejszy dokument opisuje, co musi zapewni\u0107 niestandardowa implementacja e-commerce, aby mog\u0142a by\u0107 skonfigurowana w polach administracyjnych:<\/p>\n<ul>\n<li>\u201eNiestandardowy punkt ko\u0144cowy klonowania\u201d<\/li>\n<li>\u201eNiestandardowy punkt ko\u0144cowy kategorii\u201d<\/li>\n<\/ul>\n<p>Ponadto opisuje:<\/p>\n<ul>\n<li>Zachowanie automatycznego logowania \/ SSO<\/li>\n<li>Formularz automatycznego wysy\u0142ania (ponowne wys\u0142anie koszyka do oprogramowania po\u015brednicz\u0105cego)<\/li>\n<\/ul>\n<p>Zawiera wymagane czasowniki HTTP, parametry, znaczenia parametr\u00f3w i mo\u017cliwe warto\u015bci, oczekiwane odpowiedzi (sukces i b\u0142\u0105d) oraz konkretne przyk\u0142ady.<\/p>\n<p>1) Niestandardowy punkt ko\u0144cowy klonowania<br \/>\nU\u017cywany przez oprogramowanie po\u015brednicz\u0105ce do:<\/p>\n<ul>\n<li>Tworzenia nowego zam\u00f3wienia\/sesji w zdalnym sklepie (przep\u0142yw \u201etworzenia\u201d) lub<\/li>\n<li>Edycji\/wype\u0142niania istniej\u0105cego zam\u00f3wienia\/koszyka (przep\u0142yw EDYCJI). Punkt ko\u0144cowy musi zwr\u00f3ci\u0107:<\/li>\n<li>Adres URL SSO, kt\u00f3ry loguje kupuj\u0105cego za pomoc\u0105 jednorazowego tokena do zdalnej witryny, gdzie u\u017cytkownik mo\u017ce zosta\u0107 przekierowany do koszyka, je\u015bli jest to przep\u0142yw EDYCJI i koszyk jest wype\u0142niony, mo\u017ce zosta\u0107 przekierowany do wybranego produktu (w przypadku, gdy jest to komunikowane podczas przep\u0142ywu \u201etworzenia\u201d), w przeciwnym razie jest przekierowywany na stron\u0119 g\u0142\u00f3wn\u0105<\/li>\n<\/ul>\n<p>Zalecana \u015bcie\u017cka URL (przyk\u0142ad):<\/p>\n<ul>\n<li>POST https:\/\/your-store.example.com\/api\/punchout\/clone<\/li>\n<\/ul>\n<p>Czasownik HTTP<\/p>\n<ul>\n<li>POST (obowi\u0105zkowe). U\u017cyj tre\u015bci JSON (application\/json). Oprogramowanie po\u015brednicz\u0105ce wywo\u0142a POST.  <\/li>\n<\/ul>\n<p>Tre\u015b\u0107 \u017c\u0105dania (JSON)<br \/>\nPola podstawowe (zawsze obecne)<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>username (string) \u2014 nazwa u\u017cytkownika w e-commerce u\u017cytkownika do sklonowania w celu wygenerowania nowego u\u017cytkownika powi\u0105zanego z sesj\u0105 punchout.<\/li>\n<li>api_key (string) \u2014 klucz API, kt\u00f3ry powinien odpowiada\u0107 kluczowi ustawionemu w Punchout Rocket dla bie\u017c\u0105cego e-commerce<\/li>\n<li>end_customer_id (integer) \u2014 identyfikator klienta ko\u0144cowego w oprogramowaniu po\u015brednicz\u0105cym Punchout Rocket dla e-commerce dla bie\u017c\u0105cego \u017c\u0105dania punchout<\/li>\n<li>session_token (string) \u2014 unikalny plik cookie kupuj\u0105cego w przypadku CXML lub unikalny UUID lub podobny w przypadku OCI<\/li>\n<li>operation (string) \u2014 \u201ecreate\u201d lub \u201eedit\u201d lub \u201einspect\u201d w przypadku CXML, \u201ecreate\u201d w przypadku OCI. W przypadku \u201eedit\u201d lub \u201einspect\u201d mo\u017ce zosta\u0107 przekazana lista pozycji koszyka <\/li>\n<li>gateway_base_url (string) \u2014 adres URL oprogramowania po\u015brednicz\u0105cego, do kt\u00f3rego koszyk powinien zosta\u0107 p\u00f3\u017aniej wys\u0142any<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Dodatki specyficzne dla protoko\u0142u<\/p>\n<ul>\n<li>Je\u015bli rozstrzygni\u0119ty protok\u00f3\u0142 to CXML, mog\u0105 zosta\u0107 dodane nast\u0119puj\u0105ce dodatkowe pola:<\/li>\n<\/ul>\n<p>selected_item (object) \u2014 identyfikacja produktu, do kt\u00f3rego u\u017cytkownik powinien zosta\u0107 przekierowany, opcjonalna w przypadku operacji \u201ecreate\u201d:<\/p>\n<ul>\n<li>supplier_part_id (string) \u2014 identyfikator SKU (kodu produktu) w e-commerce (je\u015bli istnieje)<\/li>\n<li>supplier_part_auxiliary_id (string) \u2014 identyfikator produktu w e-commerce (je\u015bli istnieje)<\/li>\n<\/ul>\n<p>Przyk\u0142ad: json<\/p>\n<pre>{  \n  \u201eselected_item\u201d:  \n  {  \n  \u201esupplier_part_id\u201d: \u201eABC-001\u201d,  \n  \u201esupplier_part_auxiliary_id\u201d: \u201e19852\u201d  \n  }  \n}\n<\/pre>\n<p>cart_items (array) \u2014 lista pozycji koszyka do ponownego dodania do koszyka bie\u017c\u0105cej sesji. Ka\u017cda pozycja w cart_items zazwyczaj zawiera:<\/p>\n<ul>\n<li>sku (string) \u2014 identyfikator SKU (kodu produktu) w e-commerce (je\u015bli istnieje)<\/li>\n<li>product_id (string) \u2014 identyfikator produktu w e-commerce (je\u015bli istnieje)<\/li>\n<li>quantity (integer) \u2014 ilo\u015b\u0107 pozycji w koszyku<\/li>\n<li>price (decimal number with dot as decimal separator) \u2014 cena jednostkowa pozycji w koszyku. Nale\u017cy pami\u0119ta\u0107, \u017ce zostanie ona zaktualizowana do bie\u017c\u0105cej ceny, gdy u\u017cytkownik zostanie przekierowany do koszyka <\/li>\n<li>description (string) \u2014 opis produktu<\/li>\n<li>currency (string) \u2014 kod waluty ISO 4217<\/li>\n<\/ul>\n<p>Przyk\u0142adowy \u0142adunek (tworzenie, CXML, wybrana pozycja obecna)<\/p>\n<pre>{\n  \u201eusername\u201d: \u201ebuyer123\u201d,\n  \u201eapi_key\u201d: \u201esite-api-key-abc\u201d,\n  \u201esession_token\u201d: \u201esess-012345\u201d,\n  \u201eoperation\u201d: \u201ecreate\u201d,\n  \u201eend_customer_id\u201d : 2,\n  \u201egateway_base_url\u201d: \u201ehttps:\/\/middleware.example.com\u201d,\n  \u201eselected_item\u201d: {\n  \u201esupplier_part_id\u201d: \u201eX-100\u201d,\n  \u201esupplier_part_auxiliary_id\u201d: \u201e19853\u201d\n  }\n}\n<\/pre>\n<p>Przyk\u0142adowy \u0142adunek (edycja, CXML, koszyk wype\u0142niony)<\/p>\n<pre>{\n  \u201eusername\u201d: \u201ebuyer123\u201d,\n  \u201eapi_key\u201d: \u201esite-api-key-abc\u201d,\n  \u201esession_token\u201d: \u201esess-67890\u201d,\n  \u201eoperation\u201d: \u201eedit\u201d,\n  \u201eend_customer_id\u201d : 2,\n  \u201egateway_base_url\u201d: \u201ehttps:\/\/middleware.example.com\u201d,\n  \u201ecart_items\u201d: [\n  {\n  \u201esku\u201d: \u201eABC-001\u201d,\n  \u201eproduct_id\u201d: \u201e19852\u201d,\n  \u201equantity\u201d: 2,\n  \u201eprice\u201d: 15.95,\n  \u201edescription\u201d : \u201ePrzyk\u0142adowy opis\u201d,\n  \u201ecurrency\u201d: \u201eEUR\u201d\n  },\n  {\n  \u201esku\u201d: \u201eXYZ-002\u201d,\n  \u201eproduct_id\u201d: \u201e19854\u201d,\n  \u201equantity\u201d: 1,\n  \u201eprice\u201d: 249.00,\n  \u201edescription\u201d : \u201eInny przyk\u0142adowy opis\u201d,\n  \u201ecurrency\u201d: \u201eEUR\u201d\n  }\n  ]\n}\n<\/pre>\n<p>Pomy\u015blne odpowiedzi<br \/>\nOpcja A \u2014 Podaj bezpo\u015bredni adres URL SSO (JSON) &#8211; HTTP 200 &#8211; Content-Type: application\/json &#8211; Tre\u015b\u0107:<\/p>\n<pre>{\n  \u201estatus\u201d: \u201eok\u201d,\n  \u201esso_url\u201d: \u201ehttps:\/\/your-store.example.com\/sso?token=eyJ\u2026\u201d\n}\n<\/pre>\n<p>Zachowanie: Oprogramowanie po\u015brednicz\u0105ce przekieruje kupuj\u0105cego na sso_url (GET), ode\u015ble go do platformy zakupowej w przypadku CXML lub bezpo\u015brednio w przypadku OCI. Zdalny sklep musi wykorzysta\u0107 token, zalogowa\u0107 u\u017cytkownika, a nast\u0119pnie: <\/p>\n<ul>\n<li>Je\u015bli akcja to \u201eedit\u201d lub \u201einspect\u201d: zdalna witryna powinna odczyta\u0107 informacje o koszyku i wype\u0142ni\u0107 koszyk tak, aby u\u017cytkownik wyl\u0105dowa\u0142 na stronie koszyka w sklepie z ju\u017c dodanymi pozycjami odpowiadaj\u0105cymi ilo\u015bciom.<\/li>\n<li>Je\u015bli akcja to \u201ecreate\u201d: zdalna witryna powinna przekierowa\u0107 do wybranej pozycji, je\u015bli zosta\u0142a przekazana i znaleziona, w przeciwnym razie po prostu wyl\u0105dowa\u0107 na stronie g\u0142\u00f3wnej sklepu<\/li>\n<\/ul>\n<p>Odpowiedzi o b\u0142\u0119dach<br \/>\nHTTP 400 \u2014 Nieprawid\u0142owe \u017c\u0105danie (brak wymaganych p\u00f3l) json<\/p>\n<pre>{  \n  \u201estatus\u201d: \u201eerror\u201d,  \n  \u201eerror_code\u201d: \u201einvalid_request\u201d,  \n  \u201emessage\u201d: \u201eBrakuj\u0105ce pole: action\u201d  \n}<\/pre>\n<p>HTTP 422 \u2014 Nie mo\u017cna zbudowa\u0107 SSO (np. brak identyfikatora kupuj\u0105cego) json<\/p>\n<pre>{  \n  \u201estatus\u201d: \u201eerror\u201d,  \n  \u201eerror_code\u201d: \u201esso_unavailable\u201d,  \n  \u201emessage\u201d: \u201eNie mo\u017cna wygenerowa\u0107 tokena SSO dla tego u\u017cytkownika\u201d  \n}\n<\/pre>\n<p>HTTP 500 \u2014 B\u0142\u0105d wewn\u0119trzny json<\/p>\n<pre>{  \n  \u201estatus\u201d: \u201eerror\u201d,  \n  \u201eerror_code\u201d: \u201einternal_error\u201d  \n}\n<\/pre>\n<p>2) Przep\u0142yw pracy Autologin i SSO (jak zalogowa\u0107 kupuj\u0105cego i wype\u0142ni\u0107 koszyk)<br \/>\nOdpowiadaj\u0105c adresem sso_url, sklep powinien:<\/p>\n<ul>\n<li>Wykorzysta\u0107 token (aby nie m\u00f3g\u0142 by\u0107 u\u017cyty dwukrotnie) i zalogowa\u0107 kupuj\u0105cego za pomoc\u0105 sklonowanego u\u017cytkownika.<\/li>\n<li>Po zalogowaniu:\n<ul>\n<li>Je\u015bli akcja to \u201eedit\u201d:\n<ul>\n<li>Wype\u0142ni\u0107 koszyk u\u017cytkownika dok\u0142adnie takimi produktami i ilo\u015bciami, jakie zosta\u0142y podane jako pozycje koszyka.<\/li>\n<li>Przekierowa\u0107 u\u017cytkownika na stron\u0119 koszyka\/kasy, gdzie mo\u017ce edytowa\u0107 przed finalizacj\u0105 zam\u00f3wienia.<\/li>\n<\/ul>\n<\/li>\n<li>Je\u015bli akcja to \u201ecreate\u201d:\n<ul>\n<li>Opcjonalnie przekierowa\u0107 do produktu okre\u015blonego jako wybrana pozycja. Je\u015bli oprogramowanie po\u015brednicz\u0105ce nie poda\u0142o wybranej pozycji lub je\u015bli nie ma jej ju\u017c w e-commerce, przekierowa\u0107 u\u017cytkownika na stron\u0119 g\u0142\u00f3wn\u0105 sklepu. <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Bezpiecze\u0144stwo:<\/p>\n<ul>\n<li>U\u017cywaj tylko HTTPS.<\/li>\n<li>Tokeny musz\u0105 by\u0107 jednorazowe.<\/li>\n<\/ul>\n<p>3) Formularz automatycznego wysy\u0142ania (przeniesienie koszyka)<br \/>\nGdy sklep musi odes\u0142a\u0107 koszyk\/potwierdzenie koszyka do oprogramowania po\u015brednicz\u0105cego (po zalogowaniu SSO, dodaniu produkt\u00f3w do koszyka lub edycji), gdy u\u017cytkownik kliknie przycisk (zazwyczaj w koszyku), kt\u00f3ry powinien zainicjowa\u0107 finalizacj\u0119 zam\u00f3wienia, a zamiast tego w przypadku sklonowanych u\u017cytkownik\u00f3w sesji punchout powinien wys\u0142a\u0107 formularz (content-type: application\/x-www-form-urlencoded) na adres URL oprogramowania po\u015brednicz\u0105cego przekazany w \u017c\u0105daniu do punktu ko\u0144cowego klonowania w wzgl\u0119dnej \u015bcie\u017cce \u201e\/start-sso-checkout\u201d. Preferowane UX: sklep wy\u015bwietla stron\u0119 HTML pokazuj\u0105c\u0105 \u0142adowark\u0119, kt\u00f3ra automatycznie wysy\u0142a ukryty formularz do punktu ko\u0144cowego oprogramowania po\u015brednicz\u0105cego (co sprawia, \u017ce SSO jest p\u0142ynne). <\/p>\n<p>Pola formularza oczekiwane przez oprogramowanie po\u015brednicz\u0105ce:<\/p>\n<ul>\n<li>session_token (string) \u2014 token sesji otrzymany przez e-commerce podczas \u017c\u0105dania klonowania<\/li>\n<li>end_customer_id (integer) \u2014 identyfikacja klienta ko\u0144cowego otrzymana przez e-commerce podczas \u017c\u0105dania klonowania<\/li>\n<li>Dla ka\u017cdego elementu koszyka powinni\u015bmy mie\u0107 dane formularza o zerowym indeksie, na przyk\u0142ad z kluczem products[0][product_id] dla identyfikatora produktu pierwszego elementu w koszyku. Dla ka\u017cdego elementu w koszyku lista p\u00f3l to\n<ul>\n<li>sku (string) \u2014 identyfikator SKU (kodu produktu) w e-commerce (je\u015bli istnieje)<\/li>\n<li>product_id (string) \u2014 identyfikator produktu w e-commerce (je\u015bli istnieje)<\/li>\n<li>description (string) \u2014 opis produktu<\/li>\n<li>quantity (integer) \u2014 ilo\u015b\u0107 produktu w koszyku<\/li>\n<li>price (decimal number with dot as decimal separator) \u2014 cena jednostkowa<\/li>\n<li>currency (string) \u2014 kod waluty ISO 4217<\/li>\n<li>manufacturer_name (string) \u2014 nazwa producenta produktu<\/li>\n<li>category_ids (string) \u2014 lista, oddzielona przecinkami, identyfikator\u00f3w kategorii (liczby ca\u0142kowite) w e-commerce, do kt\u00f3rych produkt nale\u017cy bezpo\u015brednio (zazwyczaj li\u015b\u0107 w strukturze drzewa kategorii)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Przyk\u0142adowy formularz HTML do automatycznego wysy\u0142ania (sklep zwraca go do przegl\u0105darki u\u017cytkownika i automatycznie wysy\u0142a z powrotem do oprogramowania po\u015brednicz\u0105cego):<\/p>\n<pre><!-- Example auto-post form -->\n\n<input name=\"api_key\" type=\"hidden\" value=\"site-api-key-abc\">\n<input name=\"session_token\" type=\"hidden\" value=\"session_token\">\n<input name=\"products&#091;0&#093;&#091;sku&#093;\" type=\"hidden\" value=\"ABC-001\">\n<input name=\"products&#091;0&#093;&#091;product_id&#093;\" type=\"hidden\" value=\"19852\">\n<input name=\"products&#091;0&#093;&#091;description&#093;\" type=\"hidden\" value=\"Example description\">\n<input name=\"products&#091;0&#093;&#091;quantity&#093;\" type=\"hidden\" value=\"2\">\n<input name=\"products&#091;0&#093;&#091;price&#093;\" type=\"hidden\" value=\"31.90\">\n<input name=\"products&#091;0&#093;&#091;currency&#093;\" type=\"hidden\" value=\"EUR\">\n<input name=\"products&#091;0&#093;&#091;manufacturer_name&#093;\" type=\"hidden\" value=\"3M\">\n<input name=\"products&#091;0&#093;&#091;category_ids&#093;\" type=\"hidden\" value=\"1145,3398\">\n<input name=\"products&#091;1&#093;&#091;sku&#093;\" type=\"hidden\" value=\"XYZ-002\">\n<input name=\"products&#091;1&#093;&#091;product_id&#093;\" type=\"hidden\" value=\"19854\">\n<input name=\"products&#091;1&#093;&#091;description&#093;\" type=\"hidden\" value=\"Another example description\">\n<input name=\"products&#091;1&#093;&#091;quantity&#093;\" type=\"hidden\" value=\"4\">\n<input name=\"products&#091;1&#093;&#091;price&#093;\" type=\"hidden\" value=\"10.90\">\n<input name=\"products&#091;1&#093;&#091;currency&#093;\" type=\"hidden\" value=\"EUR\">\n<input name=\"products&#091;1&#093;&#091;manufacturer_name&#093;\" type=\"hidden\" value=\"DEWALT\">\n<input name=\"products&#091;1&#093;&#091;category_ids&#093;\" type=\"hidden\" value=\"2146,3134\">\n\n<script>document.getElementById('punchout_repost').submit();<\/script>\n<\/pre>\n<p>Zachowanie:<\/p>\n<ul>\n<li>Przegl\u0105darka automatycznie wysy\u0142a dane do middleware_callback.<\/li>\n<li>Oprogramowanie po\u015brednicz\u0105ce odbiera koszyk i kontynuuje sw\u00f3j przep\u0142yw pracy, dodaj\u0105c kody kategorii (np. UNSPSC) obliczone poprzez dopasowanie kategorii e-commerce do ponownie przypisanych kod\u00f3w kategorii.<\/li>\n<\/ul>\n<p>4) Niestandardowy punkt ko\u0144cowy kategorii<br \/>\nU\u017cywany przez oprogramowanie po\u015brednicz\u0105ce\/administratora do pobierania kategorii ze zdalnego sklepu, aby umo\u017cliwi\u0107 mapowanie ze standardowymi kodami kategorii (np. UNSPSC).<\/p>\n<p>Zalecana \u015bcie\u017cka URL (przyk\u0142ad):<\/p>\n<ul>\n<li>POST https:\/\/your-store.example.com\/api\/punchout\/categories<\/li>\n<\/ul>\n<p>Czasownik HTTP<\/p>\n<ul>\n<li>POST (obowi\u0105zkowe). Dozwolone s\u0105 opcjonalne parametry zapytania (patrz poni\u017cej). <\/li>\n<\/ul>\n<p>Parametry zapytania<\/p>\n<ul>\n<li>api_key (string) \u2014 klucz API, kt\u00f3ry powinien odpowiada\u0107 kluczowi ustawionemu w Punchout Rocket dla bie\u017c\u0105cego e-commerce<\/li>\n<\/ul>\n<p>Pomy\u015blna odpowied\u017a<br \/>\nHTTP 200<br \/>\nContent-Type: application\/json<br \/>\nBody:<\/p>\n<pre>{\n  \u201estatus\u201d: \u201eok\u201d,\n  \u201ecategories\u201d:[\n  {\"id\":1345,\"name\":\"Office Supplies\",\"parent_id\":0},\n  {\"id\":1847,\"name\":\"Pens\",\"parent_id\":1345},\n     {\"id\":2345,\"name\":\"Electronics\",\"parent_id\":0}\n  ]\n}\n<\/pre>\n<p>Semantyka:<\/p>\n<ul>\n<li>id (integer) \u2014 unikalny identyfikator (zazwyczaj identyfikator liczby ca\u0142kowitej kategorii w tabeli kategorii w e-commerce) kategorii, kt\u00f3ry p\u00f3\u017aniej oprogramowanie po\u015brednicz\u0105ce wykorzysta podczas wysy\u0142ania koszyka do systemu zakupowego z ponownie przypisanymi kategoriami (np. kod UNSPSC).<\/li>\n<li>name (string) \u2014 nazwa wy\u015bwietlana<\/li>\n<li>parent_id (integer) \u2014 unikalny identyfikator (zazwyczaj identyfikator liczby ca\u0142kowitej kategorii w tabeli kategorii w e-commerce) kategorii nadrz\u0119dnej bie\u017c\u0105cej kategorii. Zazwyczaj \u201e0\u201d, je\u015bli nie ma nadrz\u0119dnej <\/li>\n<\/ul>\n<p>Odpowiedzi o b\u0142\u0119dach:<\/p>\n<ul>\n<li>HTTP 400 \u2014 nieprawid\u0142owe zapytanie<\/li>\n<li>HTTP 500 \u2014 b\u0142\u0105d wewn\u0119trzny<\/li>\n<\/ul>\n<p>Przyk\u0142adowe \u017c\u0105danie: GET \/api\/punchout\/categories?api_key=site-api-key-abc<\/p>\n<p>Przyk\u0142adowa odpowied\u017a:<\/p>\n<pre>{\n  \u201estatus\u201d: \u201eok\u201d,\n  \u201ecategories\u201d:[\n  {\"id\":1345,\"name\":\"Office Supplies\",\"parent_id\":0},\n  {\"id\":1847,\"name\":\"Pens\",\"parent_id\":1345},\n     {\"id\":2345,\"name\":\"Electronics\",\"parent_id\":0}\n  ]\n}\n<\/pre>\n<p>5) Uwagi dotycz\u0105ce implementacji<\/p>\n<ul>\n<li>Zawsze u\u017cywaj HTTPS.<\/li>\n<li>U\u017cywaj jednorazowych token\u00f3w SSO.<\/li>\n<li>Podczas wysy\u0142ania pozycji koszyka zachowaj kolejno\u015b\u0107 indeks\u00f3w (sku[], product_id[], quantity[], unit_price[], extended_price[], categories[]). Oprogramowanie po\u015brednicz\u0105ce b\u0119dzie parowa\u0107 pozycje wed\u0142ug indeksu. <\/li>\n<\/ul>\n<\/div><\/section><\/p><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3222","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>API PunchOut dla e-commerce | PunchOut Rocket<\/title>\n<meta name=\"description\" content=\"Dokumentacja API REST do integracji platform e-commerce z PunchOut Rocket, umo\u017cliwiaj\u0105ca konfiguracj\u0119 i po\u0142\u0105czenie z systemem PunchOut.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"API PunchOut dla e-commerce | PunchOut Rocket\" \/>\n<meta property=\"og:description\" content=\"Dokumentacja API REST do integracji platform e-commerce z PunchOut Rocket, umo\u017cliwiaj\u0105ca konfiguracj\u0119 i po\u0142\u0105czenie z systemem PunchOut.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/\" \/>\n<meta property=\"og:site_name\" content=\"Punchout Rocket plugin\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T13:42:56+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/niestandardowa-integracja-e-commerce\\\/\",\"url\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/niestandardowa-integracja-e-commerce\\\/\",\"name\":\"API PunchOut dla e-commerce | PunchOut Rocket\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/#website\"},\"datePublished\":\"2026-03-05T12:08:40+00:00\",\"dateModified\":\"2026-04-24T13:42:56+00:00\",\"description\":\"Dokumentacja API REST do integracji platform e-commerce z PunchOut Rocket, umo\u017cliwiaj\u0105ca konfiguracj\u0119 i po\u0142\u0105czenie z systemem PunchOut.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/niestandardowa-integracja-e-commerce\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/niestandardowa-integracja-e-commerce\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/niestandardowa-integracja-e-commerce\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Niestandardowa integracja e-commerce\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/#website\",\"url\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/\",\"name\":\"Punchout Rocket plugin\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/#organization\",\"name\":\"Punchout Rocket plugin\",\"url\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/punchoutrocket.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/punchoutrocket.png\",\"contentUrl\":\"https:\\\/\\\/punchoutrocket.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/punchoutrocket.png\",\"width\":552,\"height\":184,\"caption\":\"Punchout Rocket plugin\"},\"image\":{\"@id\":\"https:\\\/\\\/punchoutrocket.com\\\/pl\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"API PunchOut dla e-commerce | PunchOut Rocket","description":"Dokumentacja API REST do integracji platform e-commerce z PunchOut Rocket, umo\u017cliwiaj\u0105ca konfiguracj\u0119 i po\u0142\u0105czenie z systemem PunchOut.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/","og_locale":"pl_PL","og_type":"article","og_title":"API PunchOut dla e-commerce | PunchOut Rocket","og_description":"Dokumentacja API REST do integracji platform e-commerce z PunchOut Rocket, umo\u017cliwiaj\u0105ca konfiguracj\u0119 i po\u0142\u0105czenie z systemem PunchOut.","og_url":"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/","og_site_name":"Punchout Rocket plugin","article_modified_time":"2026-04-24T13:42:56+00:00","twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"5 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/","url":"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/","name":"API PunchOut dla e-commerce | PunchOut Rocket","isPartOf":{"@id":"https:\/\/punchoutrocket.com\/pl\/#website"},"datePublished":"2026-03-05T12:08:40+00:00","dateModified":"2026-04-24T13:42:56+00:00","description":"Dokumentacja API REST do integracji platform e-commerce z PunchOut Rocket, umo\u017cliwiaj\u0105ca konfiguracj\u0119 i po\u0142\u0105czenie z systemem PunchOut.","breadcrumb":{"@id":"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/punchoutrocket.com\/pl\/niestandardowa-integracja-e-commerce\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/punchoutrocket.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Niestandardowa integracja e-commerce"}]},{"@type":"WebSite","@id":"https:\/\/punchoutrocket.com\/pl\/#website","url":"https:\/\/punchoutrocket.com\/pl\/","name":"Punchout Rocket plugin","description":"","publisher":{"@id":"https:\/\/punchoutrocket.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/punchoutrocket.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/punchoutrocket.com\/pl\/#organization","name":"Punchout Rocket plugin","url":"https:\/\/punchoutrocket.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/punchoutrocket.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/punchoutrocket.com\/wp-content\/uploads\/2025\/10\/punchoutrocket.png","contentUrl":"https:\/\/punchoutrocket.com\/wp-content\/uploads\/2025\/10\/punchoutrocket.png","width":552,"height":184,"caption":"Punchout Rocket plugin"},"image":{"@id":"https:\/\/punchoutrocket.com\/pl\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/pages\/3222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/comments?post=3222"}],"version-history":[{"count":10,"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/pages\/3222\/revisions"}],"predecessor-version":[{"id":5278,"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/pages\/3222\/revisions\/5278"}],"wp:attachment":[{"href":"https:\/\/punchoutrocket.com\/pl\/wp-json\/wp\/v2\/media?parent=3222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}