[{"data":1,"prerenderedAt":736},["ShallowReactive",2],{"blog-b2b-punchout-cxml-oci-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":34,"cover":67,"og":68,"expertise":69,"locales":70,"lang":73,"title":74,"description":75,"coverAlt":76,"metaTitle":77,"takeaways":78,"faq":84,"toc":100,"blocks":128,"others":463},"b2b-punchout-cxml-oci","2026-10-08",8,"web",[9,10,11,12,13],"Punchout","cXML","SAP OCI","eProcurement","B2B shop",[15,16,17,18,19,20,21,22,23,24],"punchout catalog","cxml punchout","sap oci interface","oci roundtrip","punchout setup request","secure oci","level 2 punchout","eprocurement punchout integration","punchout2go tradecentric","punchout catalog integration",[26,29,31],{"name":27,"url":28},"Procurement","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProcurement",{"name":10,"url":30},"https:\u002F\u002Fcxml.org\u002F",{"name":32,"url":33},"E-procurement","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FE-procurement",[35,37,40,43,46,49,52,55,58,61,64],{"title":36,"url":30},"cXML.org (cXML 1.2.071)",{"title":38,"url":39},"PunchOutCommerce: cXML PunchOutSetupRequest","https:\u002F\u002Fpunchoutcommerce.com\u002Fguides\u002Fpunchout\u002Fcxml-punchout-setup-request\u002F",{"title":41,"url":42},"PunchOutCommerce: cXML PunchOutOrderMessage","https:\u002F\u002Fpunchoutcommerce.com\u002Fguides\u002Fpunchout\u002Fcxml-punchout-order-message\u002F",{"title":44,"url":45},"PunchOutCommerce: OCI RoundTrip","https:\u002F\u002Fpunchoutcommerce.com\u002Fguides\u002Fpunchout\u002Foci-roundtrip\u002F",{"title":47,"url":48},"SAP: Open Catalog Interface 5.0","https:\u002F\u002Fhelp.sap.com\u002Fdoc\u002Fsrm\u002F1.0\u002Fen-US\u002Fattachments\u002F3362936504\u002FOCI_50_EN20130121.pdf",{"title":50,"url":51},"SAP Help: OCI catalogs in S\u002F4HANA Plant Maintenance","https:\u002F\u002Fhelp.sap.com\u002Fdocs\u002FSAP_S4HANA_ON-PREMISE\u002F79e86803745943368f3beb4a7d0bca2a\u002F1dcfb65334e6b54ce10000000a174cb4.html",{"title":53,"url":54},"Mercateo\u002FUnite: technical information on the OCI interface","https:\u002F\u002Fwww.mercateo.com\u002Fsupport\u002Fwp-content\u002Fuploads\u002F2025\u002F02\u002FTechnical-Information-on-the-OCI-Interface-2.7-EN.pdf",{"title":56,"url":57},"Amazon Business: punchout integration instructions","https:\u002F\u002Fstatic-assets.business.amazon.com\u002Fassets\u002Fglobal\u002Fdocuments\u002Fguides\u002FAmazon-Business-Punchout-Integration-Instructions.pdf",{"title":59,"url":60},"Amazon Business: punchout","https:\u002F\u002Fbusiness.amazon.com\u002Fen\u002Fsolutions\u002Fsystems-integration\u002Fpunchout",{"title":62,"url":63},"TradeCentric: pricing","https:\u002F\u002Ftradecentric.com\u002Fpricing\u002F",{"title":65,"url":66},"OWASP: XML External Entity Prevention Cheat Sheet","https:\u002F\u002Fcheatsheetseries.owasp.org\u002Fcheatsheets\u002FXML_External_Entity_Prevention_Cheat_Sheet.html","\u002Fimages\u002Fblog\u002Fb2b-punchout-cxml-oci\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fb2b-punchout-cxml-oci\u002Fog.jpg","b2b-ecommerce-developer",[71,72,73],"en","de","hu","Punchout katalógusok: cXML, SAP OCI és az út a vevő ERP-jéig és vissza","Hogyan működnek a punchout katalógusok: cXML PunchOut, SAP OCI és Secure OCI, mit kell a beszállítói webshopnak tudnia, és mikor éri meg egy átjáró.","Egy kosár átmegy egyik épületből a másikba, és megtelve tér vissza.","Punchout katalógusok: cXML és SAP OCI · Balázs Csorba",[79,80,81,82,83],"A punchout katalógus lehetővé teszi, hogy a vevő a saját beszerzési rendszeréből vásároljon a beszállító webshopjában; a kosár beszerzési igényként tér vissza, a megrendelés csak jóváhagyás után következik.","A cXML-ben egy PunchOutSetupRequest nyitja meg a munkamenetet, a válasz egy StartPage URL-t ad, a kosár pedig PunchOutOrderMessage-ként tér vissza, amelyet a vásárló böngészője küld el.","Az SAP OCI a kosarat rejtett NEW_ITEM mezőkként, a HOOK_URL-re küldött HTML-űrlapban adja vissza, és csak a katalógust és a vásárlást fedi le, a rendeléseket és számlákat nem.","A beszállítói webshopnak munkamenetet kell kötnie, ellenőriznie és a külső entitások ellen védenie kell az XML-feldolgozást, megfelelő állapotkódokat kell adnia, és változatlanul vissza kell adnia az olyan azonosítókat, mint a SupplierPartAuxiliaryID.","2026 októberében a TradeCentric beszállítói árai évi 15 000–50 000 dollártól indulnak hároméves minimális szerződéssel, ez a viszonyítási pont a saját fejlesztés és a vásárlás közötti döntéshez.",[85,88,91,94,97],{"q":86,"a":87},"Mi a punchout katalógus?","A punchout katalógus egy beszállítói webshop, amelyet a vevő a saját beszerzési rendszeréből nyit meg. A beszerző a beszállító keresőjét, konfigurátorát és szerződéses árait használja, majd a kosarat visszaküldi a beszerzési rendszerbe, ahol beszerzési igény lesz belőle, átmegy a jóváhagyáson, és megrendelésként jut vissza a beszállítóhoz.",{"q":89,"a":90},"Mi a különbség a cXML punchout és az SAP OCI között?","A cXML punchout XML-dokumentumokat használ: szerverek közötti beállítási kérést és választ, majd egy kosarat, amely PunchOutOrderMessage-ként a böngészőn keresztül tér vissza. Az SAP OCI HTML-űrlapokat használ: a katalógust URL- vagy űrlapparaméterekkel hívják meg, a kosár pedig rejtett NEW_ITEM mezőkként tér vissza. A cXML a rendeléseket és számlákat is lefedi, az OCI csak a vásárlást.",{"q":92,"a":93},"Mi a Secure OCI?","A Secure OCI az SAP OCI 5.0 specifikációjában leírt változat, amelyben a beszerzési rendszer először szerver-szerver hívással inicializál egy munkamenetet a katalógus backendjén, és munkamenet-azonosítót kap; a böngésző indítása ezután csak ezt az azonosítót viszi, nem a felhasználónevet és a jelszót.",{"q":95,"a":96},"Mit kell egy beszállítónak megvalósítania a cXML punchouthoz?","Egy beállítási végpontot, amely hitelesíti a küldőt, rövid életű munkamenet-azonosítóval eltárolja a kérést, és StartPage URL-t ad vissza; egy ehhez a kéréshez kötött webshop-munkamenetet; egy kosár-visszaküldést, amely az eredeti BuyerCookie-val küld PunchOutOrderMessage-et; védett XML-feldolgozást; megfelelő állapotkódokat; és egy rendelési végpontot a későbbi OrderRequesthez.",{"q":98,"a":99},"Saját maga építse a punchoutot egy B2B webshop, vagy használjon átjárót?","Átjáró akkor éri meg, ha sok, különböző beszerzési rendszert használó vevőt kell gyorsan bekötni, vagy ha a tanúsítás és a támogatás fontosabb a költségnél. Saját fejlesztés akkor, ha kevés nagy vevő van ismert rendszereken, és van csapat, amely felel az XML-biztonságért, a tesztelésért és a vevőnkénti sajátosságokért. Vesse össze a publikált átjáróárakkal.",[101,104,107,110,113,116,119,122,125],{"id":102,"title":103},"what-punchout-solves","Milyen problémát old meg a punchout?",{"id":105,"title":106},"the-cxml-punchout-round-trip","Hogyan működik a cXML PunchOut körút?",{"id":108,"title":109},"sap-oci-plain-and-secure","Hogyan működik az SAP OCI, egyszerűen és biztonságosan?",{"id":111,"title":112},"what-your-shop-must-implement","Mit kell a beszállítói webshopnak megvalósítania?",{"id":114,"title":115},"who-asks-for-punchout","Ki kér punchoutot?",{"id":117,"title":118},"build-vs-buy-gateways","Saját punchout vagy megvásárolt átjáró?",{"id":120,"title":121},"when-punchout-is-wrong","Mikor rossz eszköz a punchout?",{"id":123,"title":124},"punchout-go-live-checklist","Punchout élesítési ellenőrzőlista",{"id":126,"title":127},"sources","Források",[129,138,141,144,147,150,151,159,165,168,208,211,212,221,225,227,238,249,304,305,308,335,345,359,360,366,373,374,380,383,386,387,390,403,404,420,427,428],{"type":130,"content":131},"paragraph",[132,133,137],"A ",{"tag":134,"children":135},"strong",[136],"punchout katalógus"," egy beszállító webshopja, amelyet a vevő a saját beszerzési rendszeréből nyit meg. A beszerző a beszállító keresőjét, konfigurátorát és szerződéses árait használja, majd a kosarat visszaküldi a saját rendszerébe, ahol beszerzési igény lesz belőle, átmegy a jóváhagyáson, és megrendelésként tér vissza a beszállítóhoz. A vásárlás a webshopban történik; az irányítás, a keretek és a jóváhagyások a vevőnél maradnak.",{"type":130,"content":139},[140],"Ez a cikk elmagyarázza azt a két protokollt, amely ezt a körutat hordozza, a cXML PunchOutot és az SAP Open Catalog Interface-t a Secure OCI-val együtt, hogy mit kell egy beszállítói webshopnak megvalósítania és védenie, ki kér punchoutot, mennyibe kerül egy átjáró a saját fejlesztéshez képest, mikor rossz eszköz a punchout, és ad egy élesítési ellenőrzőlistát.",{"type":142,"level":143,"id":102,"text":103},"heading",2,{"type":130,"content":145},[146],"Lehetővé teszi, hogy a nagy vevők megtartsák a beszerzési szabályaikat, miközben a beszállító webshopját használják. A beszerzési osztályok azt akarják, hogy minden vásárlás a saját rendszerükön menjen át a keretek, költséghelyek és jóváhagyások miatt, de a beszállító katalógusát, konfigurátorát és szerződéses árait nem akarják maguk karbantartani. A punchout megosztja a feladatot: a beszállító működteti a vásárlási élményt, a vevő rendszere dönt.",{"type":130,"content":148},[149],"Ezért jelenik meg a punchout gyakran szerződési feltételként a nagyvállalati és közszféra-ügyletekben. A beszállító számára megváltozik, mit jelent a „kész”: a webshop már nem a vásárlás vége, hanem egy állomás valaki más folyamatának közepén, és a visszaküldött kosár minden sorának olyannak kell lennie, amit a vevő ERP-je le tud könyvelni.",{"type":142,"level":143,"id":105,"text":106},{"type":130,"content":152},[153,154,158],"Három cXML-üzenet hordozza: egy PunchOutSetupRequest és a válasza szerver-szerver kapcsolatban nyitja meg a munkamenetet, egy PunchOutOrderMessage pedig a vásárló böngészőjén keresztül hozza vissza a kosarat. A cXML-t a cxml.org gondozza, a jelenlegi változat 2026 augusztusa óta az 1.2.071, és a katalógusokat, rendeléseket, visszaigazolásokat, szállítási értesítőket és számlákat is lefedi (",{"tag":155,"href":30,"children":156},"a",[157],"cXML.org",").",{"type":160,"src":161,"alt":162,"wide":163,"caption":164},"image","\u002Fimages\u002Fblog\u002Fb2b-punchout-cxml-oci\u002Fdiagram-7.webp","cXML PunchOut körút Hat lépés balról jobbra: a vevő beszerzési rendszere BuyerCookie-val ellátott PunchOutSetupRequestet küld; a beszállítói webshop StartPage URL-t tartalmazó PunchOutSetupResponse-szal válaszol; a vásárló egy webshop-munkamenetben böngészik; a kosár PunchOutOrderMessage-ként tér vissza, amelyet a vásárló böngészője küld a BrowserFormPost URL-re; a beszerzési igény jóváhagyáson megy át a vevő rendszerében; és csak ezután érkezik OrderRequest a beszállítóhoz. A visszaküldött kosár árajánlat, nem rendelés.",true,"A cXML PunchOut körút: a kosár a vásárló böngészőjén át árajánlatként tér vissza, a megrendelés pedig később, a vevő jóváhagyása után, külön OrderRequestként érkezik.",{"type":166,"code":167},"code","\u003CcXML payloadID=\"1760600000.4711@buyer.example\" timestamp=\"2026-10-08T09:12:00+02:00\">\n  \u003CHeader>\n    \u003CFrom>\u003CCredential domain=\"NetworkID\">\u003CIdentity>BUYER-123\u003C\u002FIdentity>\u003C\u002FCredential>\u003C\u002FFrom>\n    \u003CTo>\u003CCredential domain=\"DUNS\">\u003CIdentity>SUPPLIER-456\u003C\u002FIdentity>\u003C\u002FCredential>\u003C\u002FTo>\n    \u003CSender>\n      \u003CCredential domain=\"NetworkID\">\n        \u003CIdentity>BUYER-123\u003C\u002FIdentity>\n        \u003CSharedSecret>…\u003C\u002FSharedSecret>\n      \u003C\u002FCredential>\n      \u003CUserAgent>Procurement 2026\u003C\u002FUserAgent>\n    \u003C\u002FSender>\n  \u003C\u002FHeader>\n  \u003CRequest>\n    \u003CPunchOutSetupRequest operation=\"create\">\n      \u003CBuyerCookie>8f3c1a…\u003C\u002FBuyerCookie>\n      \u003CExtrinsic name=\"UserEmail\">p.huber@buyer.example\u003C\u002FExtrinsic>\n      \u003CBrowserFormPost>\u003CURL>https:\u002F\u002Fprocurement.buyer.example\u002Fpunchout\u002Freturn\u003C\u002FURL>\u003C\u002FBrowserFormPost>\n    \u003C\u002FPunchOutSetupRequest>\n  \u003C\u002FRequest>\n\u003C\u002FcXML>",{"type":169,"ordered":170,"items":171},"list",false,[172,192,197],[173,176,177,180,181,184,185,188,189,158],{"tag":134,"children":174},[175],"Beállítási kérés:"," tartalmazza az ",{"tag":166,"children":178},[179],"operation=\"create\"",", ",{"tag":166,"children":182},[183],"inspect"," vagy ",{"tag":166,"children":186},[187],"edit"," értéket, egy BuyerCookie-t, amellyel a vevő a visszaérkező kosarat a felhasználóhoz rendeli, és a BrowserFormPost URL-t, ahová a kosarat küldeni kell; a felhasználói adatok Extrinsic elemként vagy Contactként érkeznek, és beszerzési rendszerenként eltérnek (",{"tag":155,"href":39,"children":190},[191],"PunchOutCommerce",[193,196],{"tag":134,"children":194},[195],"Beállítási válasz:"," 200-as Status és egy StartPage URL, amely bejelentkezteti a vásárlót. Bevált minta, hogy a kérést véletlenszerű munkamenet-azonosítóval tároljuk, a vásárló érkezésekor ellenőrizzük, és a fel nem használt azonosítókat nagyjából öt perc után lejárttá tesszük.",[198,201,202,205,206,158],{"tag":134,"children":199},[200],"Kosár visszaküldése:"," a böngésző által a BrowserFormPost URL-re küldött HTML-űrlap, amelyben a cXML egy ",{"tag":166,"children":203},[204],"cXML-urlencoded"," nevű rejtett mezőben utazik. A PunchOutOrderMessage-nek vissza kell adnia a BuyerCookie-t, és minden ItemIn tartalmazza a mennyiséget, a SupplierPartID-t, az egységárat, a leírást és a mennyiségi egységet (",{"tag":155,"href":42,"children":207},[191],{"type":130,"content":209},[210],"Két részlet okozza a legtöbb éles hibát. A visszaküldött kosár árajánlat, nem rendelés; a valódi rendelés később cXML OrderRequestként érkezik, és a minden sorra tett SupplierPartAuxiliaryID-nek változatlanul vissza kell jönnie ezen a rendelésen, mert gyakran ez az egyetlen kapcsolat egy konfigurált termékhez vagy szerződéses árhoz. A BuyerCookie pedig nem hitelesítés: a beszállítón keresztül utazik, így a vevő ne bízzon kizárólag benne a visszatéréskor, a beszállító pedig soha ne tegyen bele titkot.",{"type":142,"level":143,"id":108,"text":109},{"type":130,"content":213},[214,215,218,219,158],"Az OCI HTML-űrlapokra épülő protokoll: az SAP paraméterekkel indítja a katalógus URL-jét, a katalógus pedig rejtett űrlapmezőkként egy visszatérési címre küldi vissza a kosarat. Az indítás jellemzően USERNAME és PASSWORD paramétert tartalmaz, a kötelező HOOK_URL-t, ahová a kosárnak mennie kell, valamint keretes munkamenetekhez a ",{"tag":166,"children":216},[217],"~TARGET"," űrlapcélt; a hozzáférési adatok POST-törzsbe valók, mert a GET felfedi őket az URL-ekben és a naplókban (",{"tag":155,"href":45,"children":220},[191],{"type":160,"src":222,"alt":223,"wide":163,"caption":224},"\u002Fimages\u002Fblog\u002Fb2b-punchout-cxml-oci\u002Fdiagram-13.webp","SAP OCI körút Négy lépés balról jobbra: egy SAP-gomb USERNAME, PASSWORD és HOOK_URL paraméterekkel indítja a katalógus URL-jét; a vásárló egy katalógus-munkamenetben böngészik; a kosár rejtett NEW_ITEM mezőket tartalmazó HTML-űrlapként áll össze; a böngésző pedig ezt az űrlapot a HOOK_URL-re, vissza az SAP-be küldi. A Secure OCI-ban az SAP először szerver-szerver hívással, INITIALIZE függvénnyel munkamenet-azonosítót kér a katalógus backendjétől, és a böngésző indítása csak ezt az azonosítót viszi.","Az OCI körút: a hozzáférési adatok és a visszatérési cím űrlapparaméterként utaznak, a kosár rejtett mezőkként tér vissza; a Secure OCI a hozzáférési adatokat szerver által kiadott munkamenet-azonosítóval váltja fel.",{"type":166,"code":226},"\u003Cform method=\"post\" action=\"{HOOK_URL from the launch request}\" target=\"{~TARGET}\">\n  \u003Cinput type=\"hidden\" name=\"NEW_ITEM-DESCRIPTION[1]\" value=\"Cable gland M20x1.5 IP68\">\n  \u003Cinput type=\"hidden\" name=\"NEW_ITEM-QUANTITY[1]\"    value=\"50\">\n  \u003Cinput type=\"hidden\" name=\"NEW_ITEM-UNIT[1]\"        value=\"PCE\">\n  \u003Cinput type=\"hidden\" name=\"NEW_ITEM-PRICE[1]\"       value=\"1.84\">\n  \u003Cinput type=\"hidden\" name=\"NEW_ITEM-CURRENCY[1]\"    value=\"EUR\">\n  \u003Cinput type=\"hidden\" name=\"NEW_ITEM-VENDORMAT[1]\"   value=\"70.112.04\">\n  \u003Cbutton type=\"submit\">Transfer cart\u003C\u002Fbutton>\n\u003C\u002Fform>",{"type":130,"content":228},[229,230,233,234,237],"A mezők neve ",{"tag":166,"children":231},[232],"NEW_ITEM-*",", például DESCRIPTION, QUANTITY, UNIT, PRICE, CURRENCY, VENDORMAT és MANUFACTMAT, a Unite műszaki dokumentációja szerint egyenként legfeljebb 255 karakter, az egyedi mezők legfeljebb 1000 karakter (",{"tag":155,"href":54,"children":235},[236],"Mercateo\u002FUnite","). A hatókör fontos: az OCI körút csak a katalógust és a vásárlást fedi le. Az elektronikus rendelések, visszaigazolások, szállítási értesítők és számlák nem részei a specifikációnak, és más csatornákon, például IDocként vagy EDI-n utaznak.",{"type":130,"content":239},[240,241,244,245,248],"A Secure OCI kiveszi a hozzáférési adatokat a böngészőből. Az SAP OCI 5.0 specifikációjában a beszerzési rendszer először szerver-szerver hívással fordul a katalógus backendjéhez, például SECURE_AUTH_URL paraméterrel és az INITIALIZE függvénnyel, amely SessionId-t és SessionTransmissionId-t ad vissza; a böngésző indítása ezután csak a munkamenet-azonosítót viszi (",{"tag":155,"href":48,"children":242},[243],"SAP OCI 5.0","). Két megkötés: az OCI 5.0 egy 2012-es SRM-dokumentum és a legfrissebb talált SAP OCI specifikáció, a jelenlegi S\u002F4HANA dokumentáció pedig a karbantartási katalógus-forgatókönyvnél továbbra is csak az OCI 3.0-t és a korábbiakat nevezi támogatottnak (",{"tag":155,"href":51,"children":246},[247],"SAP Help","). Kérdezze meg minden vevőtől, melyik verziót hívja a rendszere.",{"type":250,"head":251,"rows":260},"table",[252,254,256,258],[253],"Szempont",[255],"cXML PunchOut",[257],"OCI RoundTrip",[259],"Secure OCI",[261,270,279,287,295],[262,264,266,268],[263],"Átvitel",[265],"XML HTTPS-en, szerver-szerver, majd böngésző",[267],"HTML-űrlapok a böngészőn át",[269],"szerver-szerver indítás, majd böngésző",[271,273,275,277],[272],"Hitelesítés",[274],"megosztott titok vagy tanúsítvány a fejlécben",[276],"USERNAME, PASSWORD paraméterek",[278],"munkamenet-azonosító az INITIALIZE-ból",[280,282,284,286],[281],"Kosár visszaküldése",[283],"PunchOutOrderMessage rejtett mezőben",[285],"rejtett NEW_ITEM-* mezők",[285],[288,290,292,294],[289],"Rendelések, számlák",[291],"a cXML lefedi",[293],"nincs lefedve",[293],[296,298,300,302],[297],"Tipikus vevők",[299],"SAP Ariba, Coupa, Jaggaer, Oracle",[301],"SAP SRM és S\u002F4HANA",[303],"OCI 5.0-s SAP-rendszerek",{"type":142,"level":143,"id":111,"text":112},{"type":130,"content":306},[307],"Egy beállítási végpontot, egy a beállítási kéréshez kötött munkamenetet, mindkét formátumú kosár-visszaküldést, ha mindkét fajta vevőt kiszolgálja, egy rendelési végpontot a cXML-hez, és a köréjük épülő fegyelmet: validálást, hibakódokat, naplózást és adatminőséget. A munka nagy része olyan részletekben van, amelyeket a vevők csak akkor vesznek észre, amikor elromlanak.",{"type":169,"ordered":170,"items":309},[310,315,320,325,330],[311,314],{"tag":134,"children":312},[313],"Állapotkódok:"," 400 hiányzó vagy feldolgozhatatlan törzsnél, 401 érvénytelen küldőnél vagy megosztott titoknál, 500 kezeletlen hibánál, cXML Status elemként.",[316,319],{"tag":134,"children":317},[318],"Munkamenet-kötés:"," egy beállítási kérés, egy munkamenet, rövid lejárat, és a BuyerCookie szerveroldalon tárolva, hogy a kosár a megfelelő igényhez térjen vissza.",[321,324],{"tag":134,"children":322},[323],"Azonosítók:"," egyedi payloadID minden üzeneten, és olyan SupplierPartAuxiliaryID vagy VENDORMAT értékek, amelyeket a rendelésimport később fel tud oldani.",[326,329],{"tag":134,"children":327},[328],"Termékadat-minőség:"," olyan mennyiségi egységek, osztályozási kódok és szerződéses cikkek, amelyeket a vevő ERP-je elfogad. Az a sor, amelyet az ERP nem tud lekönyvelni, ügyfélszolgálati hívássá válik.",[331,334],{"tag":134,"children":332},[333],"Naplózás:"," munkamenetenként őrizzen meg minden bejövő és kimenő dokumentumot, hogy egy elbukott igény újrajátszható és megmagyarázható legyen.",{"type":336,"variant":337,"title":338,"body":339},"callout","warn","Védje az XML-feldolgozót",[340],[341,342,158],"A cXML-végpontok a cégen kívülről érkező XML-t dolgoznak fel, ezért a külső entitásos támadások klasszikus célpontjai. Kövesse az OWASP ajánlását: kapcsolja ki a DTD-ket vagy utasítson el minden DOCTYPE-ot, tiltsa a külső entitások feloldását és a külső DTD-k betöltését, és az ilyen módon nem konfigurálható feldolgozót sikertelen telepítésként kezelje (",{"tag":155,"href":66,"children":343},[344],"OWASP",{"type":130,"content":346},[347,348,353,354,358],"Több mint tízévnyi, Spryker és Pimcore alapú B2B kereskedelmi és PIM-munka során azt tapasztaltam, hogy a punchout a katalógusadatok minőségét, a mértékegységeket, cikkszámokat, szerződéses cikkeket és osztályozási kódokat olyan hibává alakítja, amelyet az ügyfél a saját ERP-jében lát. Legalább annyira PIM-kérdés, mint protokollkérdés; az adatoldalt a ",{"tag":349,"to":350,"children":351},"link","\u002Fblog\u002Fpimcore-erp-delta-sync",[352],"Pimcore ERP delta szinkron"," tárgyalja. A konfigurált termékek is gyakori punchout-esetek, a konfigurátor szabályai pedig külön problémát jelentenek, lásd ",{"tag":349,"to":355,"children":356},"\u002Fblog\u002Fheadless-product-configurator-b2b",[357],"headless termékkonfigurátorok B2B-ben",".",{"type":142,"level":143,"id":114,"text":115},{"type":130,"content":361},[362,363,158],"SAP Aribát, Coupát, Jaggaert vagy Oracle beszerzést használó nagyvállalati vevők, SRM- vagy S\u002F4HANA-katalógust használó SAP-ügyfelek, és piactereken keresztül vásárló közszféra-szereplők. Az Amazon Business jól jelzi, mennyire általános ez: több mint 200 e-beszerzési rendszerrel integrálódik, a punchoutot jellemzően az első integrációnak nevezi, és cXML- és OCI-végpontot is üzemeltet (",{"tag":155,"href":60,"children":364},[365],"Amazon Business",{"type":130,"content":367},[368,369,372],"A beszállítókra vonatkozó szabályai jó mintát adnak a sajátjaihoz: a beállítási kérésben kötelező a felhasználó e-mail-címe, a visszaadott Supplier Part Auxiliary ID-nek vissza kell jönnie a megrendelésen, a payload-azonosítóknak egyedinek kell lenniük, csak új rendelések támogatottak, és a rendelések élesítés előtt tesztmódban futnak (",{"tag":155,"href":57,"children":370},[371],"Amazon Business integrációs útmutató","). A „Level 2” punchout, amelyben a vevő rendszere kereshető indexet tart a cikkeiről, és a beállítási kérés közvetlenül egy termékoldalra viszi a vásárlót, az Ariba és a piacterek szóhasználata, nem az OCI specifikáció része.",{"type":142,"level":143,"id":117,"text":118},{"type":130,"content":375},[376,377,158],"Vásároljon, ha sok vevőt kell sok beszerzési rendszeren gyorsan bekötni; építsen, ha kevés nagy vevő van ismert rendszereken, és van csapat, amely a protokollért felel. Egy átjáró előre elkészített kapcsolatokat és a vevőnkénti sajátosságok kezelését adja el. A TradeCentric, korábban PunchOut2Go, a középvállalati szintre évi 15 000–50 000 dollártól induló beszállítói árat tesz közzé háromévi minimális szerződéssel, a nagyvállalati szint egyedi ajánlat alapján megy, és 2026 októberében több mint 220 ERP- és e-beszerzési integrációt említ (",{"tag":155,"href":63,"children":378},[379],"TradeCentric",{"type":130,"content":381},[382],"Egy saját megoldáshoz őszintén szólva kell protokollonként egy beállítási végpont, munkamenet-kezelés, kosár-szerializálás két formátumban, rendelésimport, védett XML-feldolgozás, vevőnkénti tesztfiókok, és valaki, aki válaszol, amikor egy vevő beszerzési csapata megváltoztat egy mezőleképezést. Ezt a folyamatos felelősséget a három év múlva várható, nem az idei vevőszámra vetített átjáróárral vesse össze.",{"type":130,"content":384},[385],"Bárhogy dönt, a protokollréteget tartsa külön a webshop magjától. A webshop adjon tiszta belső API-t a „munkamenet indítása ennek a vevői felhasználónak”, „ennek a kosárnak a szerializálása” és „ennek a rendelésnek az importja” műveletekhez, a cXML- vagy OCI-adapterek, illetve az átjáró pedig ezen kívül legyenek. Így egy vevő beszerzési rendszerének változása nem éri el a pénztár kódját, és a saját fejlesztés és a vásárlás közötti későbbi váltás körülhatárolt projekt lesz, nem újraírás.",{"type":142,"level":143,"id":120,"text":121},{"type":130,"content":388},[389],"Ha a vevőnek csak a cikkeire és áraira van szüksége a saját rendszerében, egy hosztolt katalógusfájl is elég lehet; ha már ismert partnerrel cserél rendeléseket, egy API- vagy EDI-kapcsolat egyszerűbb. A punchout munkamenet- és felhasználói élmény protokoll, nem adatmodell, így nem javítja meg a termékadatokat, és egy böngészős lépést ad hozzá, amelynek működnie kell a vevő környezetében, beleértve a keretes munkameneteket és azok sütikezelését a mai böngészőkben.",{"type":130,"content":391},[392,393,397,398,402],"A másik határt az ágensprotokollok jelentik. A UCP, az ACP és az AP2 olyan szoftverágenst feltételez, amely valaki nevében vásárol, más adattartalommal és irányítással; a punchout egy embert feltételez a vevő ERP-jében. A kettő megfér egymás mellett, az összevetés a ",{"tag":349,"to":394,"children":395},"\u002Fblog\u002Fagentic-commerce-protocols-ucp-acp-guide",[396],"UCP, ACP és AP2 útmutatóban"," és az ",{"tag":349,"to":399,"children":400},"\u002Fblog\u002Fprocurement-agent-buyer-side",[401],"agentic commerce felkészültség B2B webshopokban"," című cikkben található, amely a punchoutot tekinti ma a támogatott nagyvállalati útvonalnak.",{"type":142,"level":143,"id":123,"text":124},{"type":169,"ordered":163,"items":405},[406,408,410,412,414,416,418],[407],"Szerezzen tesztfiókot a vevő beszerzési rendszerében és vevőnkénti hozzáférési adatokat.",[409],"Gyűjtsön mintapayloadot a create, edit és inspect műveletekhez, és minden vevőspecifikus Extrinsic elemhez.",[411],"Tesztelje a kosár visszaküldését végponttól végpontig egy valódi böngészőben; én ezt a körutat Playwright MCP-vel szkriptelem, mert a böngészős űrlapküldés az a rész, amelyet az egységtesztek nem fednek le.",[413],"Ellenőrizze, hogy a SupplierPartAuxiliaryID vagy a VENDORMAT eljut-e a megrendelésig és a rendelésimportig.",[415],"Futtasson hibagyakorlatokat: rossz megosztott titok, lejárt munkamenet, hibás XML, DOCTYPE a payloadban.",[417],"Figyelje a beállítási késleltetést, a sikertelen kosár-visszaküldéseket és az ismeretlen cikkekre hivatkozó rendeléseket.",[419],"Zárja egy vevői átvételi teszttel, amely egy valódi igényt végigvisz a jóváhagyáson.",{"type":130,"content":421},[422,423,358],"Ha punchoutot ad egy B2B webshophoz, vagy átjáró és saját réteg között dönt, nézze meg a ",{"tag":349,"to":424,"children":425},"\u002Fexpertise\u002Fb2b-ecommerce-developer",[426],"B2B e-kereskedelmi munkámat",{"type":142,"level":143,"id":126,"text":127},{"type":169,"ordered":163,"items":429},[430,433,436,439,442,445,448,451,454,457,460],[431],{"tag":155,"href":30,"children":432},[36],[434],{"tag":155,"href":39,"children":435},[38],[437],{"tag":155,"href":42,"children":438},[41],[440],{"tag":155,"href":45,"children":441},[44],[443],{"tag":155,"href":48,"children":444},[47],[446],{"tag":155,"href":51,"children":447},[50],[449],{"tag":155,"href":54,"children":450},[53],[452],{"tag":155,"href":57,"children":453},[56],[455],{"tag":155,"href":60,"children":456},[59],[458],{"tag":155,"href":63,"children":459},[62],[461],{"tag":155,"href":66,"children":462},[65],[464,538,594,668],{"slug":465,"published":466,"minutes":467,"category":7,"tags":468,"keywords":474,"about":486,"sources":495,"cover":532,"og":533,"expertise":69,"locales":534,"lang":73,"title":535,"description":536,"coverAlt":537},"schema-org-structured-data-b2b-shop","2026-10-17",10,[469,470,471,472,473],"Schema.org","Structured data","B2B e-commerce","Technical SEO","Nuxt",[475,476,477,478,479,480,481,482,483,484,485],"schema.org b2b shop","product structured data b2b","merchant listing structured data","product snippet vs merchant listing","unitpricespecification referencequantity","productgroup variants structured data","organization schema vatid","b2b prices behind login seo","json-ld nuxt schema org","merchant return policy structured data","mpn gtin structured data",[487,489,492],{"name":469,"url":488},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSchema.org",{"name":490,"url":491},"JSON-LD","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON-LD",{"name":493,"url":494},"Business-to-business","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBusiness-to-business",[496,499,502,505,508,511,514,517,520,523,526,529],{"title":497,"url":498},"Google Search Central: Introduction to Product structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct",{"title":500,"url":501},"Google Search Central: Merchant listing (Product, Offer) structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fmerchant-listing",{"title":503,"url":504},"Google Search Central: Product snippet structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-snippet",{"title":506,"url":507},"Google Search Central: Product variant structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fproduct-variants",{"title":509,"url":510},"Google Search Central: Organization structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Forganization",{"title":512,"url":513},"Google Search Central: Merchant return policy structured data","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Freturn-policy",{"title":515,"url":516},"Google Search Central: General structured data guidelines","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fsd-policies",{"title":518,"url":519},"Google Search Central: Generate structured data with JavaScript","https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fappearance\u002Fstructured-data\u002Fgenerate-structured-data-with-javascript",{"title":521,"url":522},"Schema.org: Offer","https:\u002F\u002Fschema.org\u002FOffer",{"title":524,"url":525},"Schema.org: UnitPriceSpecification","https:\u002F\u002Fschema.org\u002FUnitPriceSpecification",{"title":527,"url":528},"Unhead: Product schema (defineProduct)","https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fschema-org\u002Fapi\u002Fschema\u002Fproduct",{"title":530,"url":531},"Nuxt SEO: Schema.org identity setup","https:\u002F\u002Fnuxtseo.com\u002Fdocs\u002Fschema-org\u002Fguides\u002Fsetup-identity","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fschema-org-structured-data-b2b-shop\u002Fog.jpg",[71,72,73],"Schema.org strukturált adatok B2B webshopokhoz: bejelentkezés mögötti árak, egységek és változatok","Termék-markup B2B shopokhoz: snippet vagy kereskedői lista, melyik ár, cikkszámok, egységárak, változatok, Organization és SSR Nuxtban.","Terméktéglalap vékony kerettel, alsó kis mezőjét alacsony fal takarja el.",{"slug":539,"published":466,"minutes":540,"category":7,"tags":541,"keywords":546,"about":558,"sources":566,"cover":588,"og":589,"expertise":69,"locales":590,"lang":73,"title":591,"description":592,"coverAlt":593},"ai-assistant-b2b-shop-customer-support",9,[471,542,543,544,545],"AI assistant","Customer support","LLM agents","EU AI Act",[547,548,549,550,551,552,553,554,555,556,557],"ai assistant b2b shop","ai customer support b2b ecommerce","llm chatbot order status","ai agent customer service tools","chatbot liability air canada","klarna ai assistant results","human handoff chatbot design","eu ai act chatbot disclosure","owasp excessive agency","ai support resolution rate","b2b customer portal chatbot",[559,562,565],{"name":560,"url":561},"Customer service","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCustomer_service",{"name":563,"url":564},"Chatbot","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FChatbot",{"name":493,"url":494},[567,570,573,576,579,582,585],{"title":568,"url":569},"Klarna: AI assistant handles two-thirds of customer service chats in its first month (press release, 2024)","https:\u002F\u002Fwww.klarna.com\u002Finternational\u002Fpress\u002Fklarna-ai-assistant-handles-two-thirds-of-customer-service-chats-in-its-first-month\u002F",{"title":571,"url":572},"Entrepreneur: Klarna is hiring customer service agents again, according to its CEO (May 2025)","https:\u002F\u002Fwww.entrepreneur.com\u002Fbusiness-news\u002Fklarna-ceo-reverses-course-by-hiring-more-humans-not-ai\u002F491396",{"title":574,"url":575},"ABA Business Law Today: BC tribunal confirms companies remain liable for information provided by AI chatbot","https:\u002F\u002Fwww.americanbar.org\u002Fgroups\u002Fbusiness_law\u002Fresources\u002Fbusiness-law-today\u002F2024-february\u002Fbc-tribunal-confirms-companies-remain-liable-information-provided-ai-chatbot\u002F",{"title":577,"url":578},"OWASP GenAI Security Project: LLM06:2025 Excessive Agency","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm062025-excessive-agency\u002F",{"title":580,"url":581},"OWASP GenAI Security Project: LLM05:2025 Improper Output Handling","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm052025-improper-output-handling\u002F",{"title":583,"url":584},"EU AI Act, Article 50: Transparency obligations","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":586,"url":587},"Intercom: Fin pricing and billable outcomes","https:\u002F\u002Ffin.ai\u002Fpricing","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-assistant-b2b-shop-customer-support\u002Fog.jpg",[71,72,73],"AI-asszisztens a B2B webshop ügyfélszolgálatához: eszközök, jogosultságok és átadás embernek","Hogyan építs AI ügyfélszolgálati asszisztenst B2B shophoz: mit automatizálj, eszközök ügyfélkontextusban, átadás embernek, AI Act és mérőszámok.","Magas fal keskeny réssel: nyíl halad át rajta a három négyzetből álló bekerített mezőbe, egy másik lefelé, egy tálca felé mutat.",{"slug":595,"published":466,"minutes":596,"category":7,"tags":597,"keywords":602,"about":614,"sources":624,"cover":661,"og":662,"expertise":663,"locales":664,"lang":73,"title":665,"description":666,"coverAlt":667},"vue-ai-chat-ui-streaming-accessibility",11,[598,473,599,600,601],"Vue","Accessibility","Streaming","AI chat",[603,604,605,606,607,608,609,610,611,612,613],"vue ai chat ui","nuxt llm streaming","sse vs fetch streaming","aria-live streaming text","accessible chat interface","abort fetch stream vue","dompurify markdown llm","role log chat","reduced motion chat ui","wcag 2.2 chat","screen reader streaming",[615,618,621],{"name":616,"url":617},"Web accessibility","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWeb_accessibility",{"name":619,"url":620},"Server-sent events","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-sent_events",{"name":622,"url":623},"Vue.js","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVue.js",[625,628,631,634,637,640,643,646,649,652,655,658],{"title":626,"url":627},"MDN: Using server-sent events","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FServer-sent_events\u002FUsing_server-sent_events",{"title":629,"url":630},"MDN: AbortController","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FAbortController",{"title":632,"url":633},"MDN: ReadableStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FReadableStream",{"title":635,"url":636},"MDN: TextDecoderStream","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FTextDecoderStream",{"title":638,"url":639},"MDN: ARIA log role","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FRoles\u002Flog_role",{"title":641,"url":642},"W3C: Understanding SC 4.1.3 Status Messages","https:\u002F\u002Fwww.w3.org\u002FWAI\u002FWCAG22\u002FUnderstanding\u002Fstatus-messages.html",{"title":644,"url":645},"W3C WAI: What's new in WCAG 2.2","https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fstandards-guidelines\u002Fwcag\u002Fnew-in-22\u002F",{"title":647,"url":648},"MDN: prefers-reduced-motion","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002F@media\u002Fprefers-reduced-motion",{"title":650,"url":651},"DOMPurify README","https:\u002F\u002Fgithub.com\u002Fcure53\u002FDOMPurify",{"title":653,"url":654},"markdown-it README","https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it",{"title":656,"url":657},"AI SDK docs: useChat","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-ui\u002Fchatbot",{"title":659,"url":660},"Vue docs: nextTick","https:\u002F\u002Fvuejs.org\u002Fapi\u002Fgeneral.html#nexttick","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fvue-ai-chat-ui-streaming-accessibility\u002Fog.jpg","vue-nuxt-developer",[71,72,73],"AI-csevegő UI Vue-ban és Nuxtban: akadálymentes streaming","AI-csevegő Vue-ban vagy Nuxtban: fetch-stream, megszakítás és újrapróbálás, biztonságos markdown, aria-live bejelentések, billentyűzet és reduced motion.","Üzenetkártya villogó kurzorral, pontozott vonal hullámokká nyílik, mellette pipa.",{"slug":669,"published":466,"minutes":540,"category":7,"tags":670,"keywords":675,"about":687,"sources":697,"cover":730,"og":731,"expertise":663,"locales":732,"lang":73,"title":733,"description":734,"coverAlt":735},"llm-translation-pipeline-i18n",[671,672,673,598,674],"Translation","i18n","LLM","Localization",[676,677,678,679,680,681,682,683,684,685,686],"llm translation pipeline","icu messageformat placeholders","vue i18n llm translation","translation memory llm","glossary enforcement translation","german informal sie du","hungarian translation quality llm","structured output json translation","machine translation post-editing","locale file validation","cldr plural categories",[688,691,694],{"name":689,"url":690},"Internationalization and localization","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternationalization_and_localization",{"name":692,"url":693},"ICU MessageFormat","https:\u002F\u002Funicode-org.github.io\u002Ficu\u002Fuserguide\u002Fformat_parse\u002Fmessages\u002F",{"name":695,"url":696},"Vue I18n","https:\u002F\u002Fvue-i18n.intlify.dev\u002F",[698,700,703,706,709,712,715,718,721,724,727],{"title":699,"url":693},"Unicode ICU User Guide: Formatting Messages",{"title":701,"url":702},"Vue I18n: Message Format Syntax","https:\u002F\u002Fvue-i18n.intlify.dev\u002Fguide\u002Fessentials\u002Fsyntax",{"title":704,"url":705},"Nuxt i18n: Getting started","https:\u002F\u002Fi18n.nuxtjs.org\u002Fdocs\u002Fgetting-started",{"title":707,"url":708},"Unicode CLDR: Plural rules","https:\u002F\u002Fcldr.unicode.org\u002Findex\u002Fcldr-spec\u002Fplural-rules",{"title":710,"url":711},"OpenAI: Structured outputs","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fstructured-outputs",{"title":713,"url":714},"DeepL API: Glossaries","https:\u002F\u002Fdevelopers.deepl.com\u002Fdocs\u002Fapi-reference\u002Fglossaries",{"title":716,"url":717},"W3C: Localization vs. internationalization","https:\u002F\u002Fwww.w3.org\u002FInternational\u002Fquestions\u002Fqa-i18n",{"title":719,"url":720},"GNU gettext manual","https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002Fmanual\u002Fgettext.html",{"title":722,"url":723},"RFC 5646: Tags for Identifying Languages","https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc5646",{"title":725,"url":726},"Rat für deutsche Rechtschreibung","https:\u002F\u002Fwww.rechtschreibrat.com\u002F",{"title":728,"url":729},"Microsoft Writing Style Guide","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fstyle-guide\u002Fwelcome\u002F","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-translation-pipeline-i18n\u002Fog.jpg",[71,72,73],"LLM-fordítási pipeline i18n-hez: glosszárium, helyőrzők és review","Termék- és weboldalszövegek fordítása LLM-mel úgy, hogy a helyőrzők, a többes szám és a hangnem épen maradjon: glosszárium, ICU üzenetek, QA-ellenőrzések.","Három forráskártya, egy lefordított kártya glosszárium-szalaggal, majd ellenőrzött tábla.",1792337025458]