Skip to main content

PunchOut-Grundlagen

Was ist PunchOut?

PunchOut ist eine B2B-E-Commerce-Technologie, die es Einkäufern ermöglicht, direkt aus ihrem Beschaffungssystem (ERP, eProcurement) heraus auf den Katalog eines Lieferanten zuzugreifen und Bestellungen zu tätigen.

graph LR
A[ERP-System] --> B[PunchOut-Session]
B --> C[Lieferanten-Shop]
C --> D[Warenkorb]
D --> E[Transfer zurück]
E --> A

Warum PunchOut?

Traditioneller B2B-Einkauf

❌ Manuelle Bestellprozesse
❌ Doppelte Dateneingabe
❌ Fehleranfällig
❌ Keine Echtzeit-Preise
❌ Komplexe Freigabeprozesse

Mit PunchOut

✅ Automatisierte Prozesse
✅ Single Source of Truth
✅ Fehlerminimierung
✅ Live-Preise & Verfügbarkeit
✅ Integrierte Freigaben

Kernkonzepte

1. Session-basiert

PunchOut arbeitet mit temporären Sessions:

  • Initiierung: ERP startet Session beim Lieferanten
  • Shopping: Käufer browst und wählt Produkte
  • Transfer: Warenkorb wird ans ERP zurückgesendet
  • Abschluss: Session wird beendet

2. Round-Trip-Prinzip

ERPShopERP

Der komplette Einkaufsprozess ist ein geschlossener Kreislauf.

3. Protokoll-agnostisch

PunchOut unterstützt verschiedene Standards:

  • cXML (Commerce eXtensible Markup Language)
  • OCI (Open Catalog Interface)
  • Proprietary (Kundenspezifisch)

Der PunchOut-Workflow

Schritt 1: Setup Request

Das ERP-System sendet eine Anfrage zur Session-Initialisierung:

<PunchOutSetupRequest operation="create">
<BuyerCookie>UNIQUE_SESSION_ID</BuyerCookie>
<BrowserFormPost>
<URL>https://erp.company.com/return</URL>
</BrowserFormPost>
</PunchOutSetupRequest>

Schritt 2: Setup Response

Der Shop antwortet mit einer Session-URL:

<PunchOutSetupResponse>
<StartPage>
<URL>https://shop.vendor.com/punchout/session/ABC123</URL>
</StartPage>
</PunchOutSetupResponse>

Schritt 3: Shopping Experience

Der Käufer wird zum Shop weitergeleitet und kann:

  • Produkte suchen und filtern
  • Artikel in den Warenkorb legen
  • Konfigurationen vornehmen
  • Preise einsehen (kundenspezifisch)

Schritt 4: Cart Transfer

Nach Abschluss wird der Warenkorb zurückübertragen:

<PunchOutOrderMessage>
<ItemIn quantity="5">
<ItemID>
<SupplierPartID>WIDGET-001</SupplierPartID>
</ItemID>
<ItemDetail>
<UnitPrice>
<Money currency="EUR">99.99</Money>
</UnitPrice>
<Description>Premium Widget</Description>
</ItemDetail>
</ItemIn>
</PunchOutOrderMessage>

PunchOut vs. Alternativen

PunchOut vs. EDI

AspektPunchOutEDI
Interaktivität✅ Voll interaktiv❌ Batch-basiert
Produktauswahl✅ Live-Browsing❌ Vordefinierte Artikel
Implementierung✅ Schnell (Tage)❌ Aufwendig (Wochen)
Flexibilität✅ Hoch❌ Starr
Kosten✅ Niedrig❌ Hoch

PunchOut vs. Katalog-Upload

AspektPunchOutKatalog-Upload
Aktualität✅ Echtzeit❌ Periodisch
Wartung✅ Automatisch❌ Manuell
Preise✅ Kundenspezifisch❌ Statisch
Konfiguration✅ Möglich❌ Limitiert
Multimedia✅ Vollständig❌ Begrenzt

Technische Standards

cXML (Commerce XML)

  • Version: 1.2.014 (aktuell)
  • Entwickler: Ariba (SAP)
  • Verbreitung: Global, besonders USA
  • Format: XML-basiert

cXML-Struktur

<cXML>
<Header>
<From><!-- Absender --></From>
<To><!-- Empfänger --></To>
<Sender><!-- Authentifizierung --></Sender>
</Header>
<Request>
<!-- Request-Payload -->
</Request>
</cXML>

OCI (Open Catalog Interface)

  • Version: 5.0
  • Entwickler: SAP
  • Verbreitung: Europa, besonders DACH
  • Format: URL-Parameter / Form-Post

OCI-Parameter

HOOK_URL=https://erp.com/return
NEW_ITEM-DESCRIPTION[1]=Product Name
NEW_ITEM-QUANTITY[1]=5
NEW_ITEM-UNIT[1]=PCE
NEW_ITEM-PRICE[1]=99.99
NEW_ITEM-CURRENCY[1]=EUR

Authentifizierung & Sicherheit

Shared Secret

Beide Parteien teilen ein gemeinsames Geheimnis:

<SharedSecret>SecurePassword123</SharedSecret>

Digital Signatures

Nachrichten können digital signiert werden:

<ds:Signature>
<ds:SignedInfo>
<ds:SignatureMethod Algorithm="SHA256"/>
</ds:SignedInfo>
<ds:SignatureValue>...</ds:SignatureValue>
</ds:Signature>

Session-Token

Temporäre Token für Session-Management:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Datenfelder & Mapping

Pflichtfelder

  • Artikelnummer (SupplierPartID)
  • Beschreibung (Description)
  • Menge (Quantity)
  • Preis (UnitPrice)
  • Währung (Currency)

Optionale Felder

  • Herstellernummer (ManufacturerPartID)
  • UNSPSC-Code (Classification)
  • Lieferzeit (LeadTime)
  • Mindestbestellmenge (MinQuantity)
  • Verpackungseinheit (PackageQuantity)

Custom Fields (Extrinsics)

<Extrinsic name="ProjectCode">PR-2024-001</Extrinsic>
<Extrinsic name="CostCenter">IT-Department</Extrinsic>
<Extrinsic name="DeliveryLocation">Building A</Extrinsic>

Fehlerbehandlung

HTTP Status Codes

  • 200: Erfolgreiche Verarbeitung
  • 400: Ungültige Anfrage
  • 401: Authentifizierung fehlgeschlagen
  • 500: Serverfehler

cXML Status Codes

<Status code="200" text="Success"/>
<Status code="401" text="Invalid Credentials"/>
<Status code="406" text="Not Acceptable"/>

Retry-Strategie

const retryWithBackoff = async (fn, retries = 3) => {
try {
return await fn();
} catch (error) {
if (retries === 0) throw error;
await new Promise(r => setTimeout(r, 2 ** (3 - retries) * 1000));
return retryWithBackoff(fn, retries - 1);
}
};

Best Practices

1. Session-Management

  • Timeout: 30-60 Minuten Standard
  • Verlängerung: Bei Aktivität automatisch
  • Cleanup: Alte Sessions regelmäßig löschen

2. Caching

  • Produktdaten: 5-15 Minuten
  • Preise: Nicht cachen (kundenspezifisch)
  • Kategorien: 1 Stunde

3. Logging

// Vollständiges Request/Response Logging
logger.info('PunchOut Request', {
session_id: session.id,
protocol: 'cxml',
operation: 'create',
buyer: buyer_email,
timestamp: new Date().toISOString(),
request_body: sanitize(request)
});

4. Validierung

  • XML-Schema-Validierung für cXML
  • Parameter-Prüfung für OCI
  • Business-Logik-Validierung

Häufige Use Cases

1. Direktkauf

Käufer bestellt direkt aus dem ERP:

ERPShopWarenkorbERPBestellung

2. Angebotsanfrage

Käufer erstellt Angebotsanfrage:

ERPShopWarenkorbERPRFQ

3. Rahmenvertrag

Vorverhandelte Preise und Konditionen:

ERPShop (mit Contract-ID)SpezialpreiseERP

Integration in bestehende Systeme

ERP-Systeme

  • SAP Ariba
  • SAP SRM
  • Oracle iProcurement
  • Coupa
  • JAGGAER

Shop-Systeme

  • Shopware
  • WooCommerce
  • Magento
  • Shopify
  • PrestaShop

Middleware

  • PunchFlow (unsere Lösung)
  • Tradecentric
  • Vurbis
  • PunchOut2Go

Metriken & KPIs

Performance

  • Session-Erstellung: < 2 Sekunden
  • Seitenladezeit: < 3 Sekunden
  • Transfer-Zeit: < 5 Sekunden

Business

  • Conversion Rate: Sessions zu Bestellungen
  • Average Order Value: Durchschnittlicher Warenwert
  • Cart Abandonment: Abgebrochene Sessions

Technisch

  • Uptime: > 99.9%
  • Error Rate: < 0.1%
  • Response Time: P95 < 1 Sekunde

Zukunft von PunchOut

Level 2 PunchOut

  • Erweiterte Konfiguration
  • Komplexe Produkte
  • Service-Integration

API-First Ansatz

  • RESTful APIs statt XML
  • GraphQL für flexible Queries
  • WebSockets für Echtzeit-Updates

AI & Automation

  • Intelligente Produktvorschläge
  • Automatische Nachbestellungen
  • Predictive Ordering

Glossar

BegriffDefinition
BuyerCookieEindeutige Session-ID vom ERP
SupplierPartIDArtikelnummer des Lieferanten
UNSPSCUnited Nations Standard Products and Services Code
ExtrinsicKundenspezifisches Datenfeld
Round-TripVollständiger PunchOut-Zyklus
cXMLCommerce eXtensible Markup Language
OCIOpen Catalog Interface

Weiterführende Ressourcen