Zum Hauptinhalt springen

Übersicht

Was ist ein Response Generator?​

Ein Response Generator wandelt den aktuellen Shopware-Warenkorb in das protokollspezifische Datenformat um, das ans Procurement-System zurückgesendet wird. Er ist das Bindeglied zwischen dem Shopware-Datensystem (DataFields) und der eigentlichen Übertragung.

GeneratorKlasseProtokoll
OciConnectorResponseGeneratorAgiqonConnector\Connector\System\OCI\ServiceOCI (HTML-Formular)
CxmlConnectorResponseGeneratorAgiqonConnector\Connector\System\Cxml\ServicecXML (XML-Dokument)

Wann wird er aufgerufen?​

ZeitpunktOCIcXML
Warenkorb-Seite rendernbuildForm() baut die OCI-Formulardaten auf (Vorschau + Submit-Button)generateCxmlPunchOutOrderMessage() generiert den PunchOutOrderMessage-Body
Login-Response—generatePunchoutSetupResponse() gibt die StartPage-URL zurück

Gemeinsame Konzepte​

Fallback-Kette​

Für jedes konfigurierte Feld wird der Wert nach folgendem Schema ermittelt:

Primary DataField
→ Fallback DataField 1
→ Fallback DataField 2
→ Fallback DataField 3
→ Static Value (hardcodierter Wert)
→ leer ("")

Sobald ein Slot einen nicht-leeren Wert liefert, werden die weiteren Fallbacks nicht mehr geprüft.

Automatische Bereinigung​

Alle aufgelösten Werte werden automatisch bereinigt:

  • HTML-Tags werden entfernt (strip_tags)
  • Whitespace wird am Anfang und Ende abgeschnitten (trim)

LineItemContextResolver​

Für jede Warenkorbposition durchsucht der Generator alle registrierten LineItemContextResolver nach dem ersten, dessen supports()-Methode true zurückgibt. Dieser baut den DataFieldResolutionContext auf. Findet sich kein passender Resolver, wird die Position übersprungen.

→ Mehr dazu: LineItemContextResolver