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-ResponsegeneratePunchoutSetupResponse() 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