Zum Hauptinhalt springen

Übersicht

OCI 5.0 unterstützt sogenannte Function Calls: Anfragen, bei denen das Procurement-System nicht nur einloggt, sondern eine bestimmte Aktion ausführen möchte – z. B. direkt ein Produkt validieren, in eine Suchergebnisseite navigieren oder den Katalog als JSON abrufen.


OciFunctionDispatcher

Der OciFunctionDispatcher ist der zentrale Einstiegspunkt. Er erhält den function-Parameter, normalisiert ihn mit strtoupper() und routet ihn per match an den passenden Controller:

// OciFunctionDispatcher::dispatch()
return match (strtoupper($function)) {
'DETAIL' => $this->ociDetailController->handle(...),
'VALIDATE' => $this->ociValidateController->handle(...),
'SOURCING' => $this->ociSourcingController->handle(...),
'BACKGROUND_SEARCH' => $this->ociBackgroundSearchController->handle(...),
'DOWNLOADJSON' => $this->ociDownloadJsonController->handle(...),
'QUANTITYCHECK' => $this->ociQuantityCheckController->handle(...),
default => $this->ociUndefinedFunctionController->handle($function, $params),
};

Der function-Parameter ist case-insensitiv: detail, Detail und DETAIL führen alle zum gleichen Controller.


Zwei SalesChannelContexts

Alle Function-Controller erhalten zwei separate SalesChannelContexts:

ParameterBedeutung
$dataFeedContextFür Produktabfragen und DataField-Auflösung; nutzt den konfigurierten Datenfeed-SalesChannel des OCI-Systems
$cartContextFür Cart-Operationen (Produkt hinzufügen); nutzt den SalesChannel des eingeloggten Käufers

Diese Trennung ermöglicht z. B. unterschiedliche Preisgruppen: Produktdaten (und OCI-Feldauflösung) laufen über den Datenfeed-Kontext, Warenkorboperationen über den Käufer-Kontext.


Unterstützte Funktionen

function-WertController-KlassePflicht-ParameterResponse-Typ
DETAILOciDetailControllerproductidRedirect zur Produktdetailseite
VALIDATEOciValidateControllerproductid, quantityOCI-Form HTML
SOURCINGOciSourcingControllersearchstringRedirect zur Suchergebnisseite
BACKGROUND_SEARCHOciBackgroundSearchControllersearchstringOCI-Form HTML
DOWNLOADJSONOciDownloadJsonControllerJSON-Produktkatalog
QUANTITYCHECKOciQuantityCheckControllerproductidJSON-Verfügbarkeit
(unbekannt)OciUndefinedFunctionControllerFlash-Meldung + Redirect Startseite

Fallback: Unbekannte Funktionen

Unbekannte function-Werte landen im OciUndefinedFunctionController. Er gibt eine Flash-Warnung aus und leitet zur Shopware-Startseite weiter:

OCI function "UNKNOWN_FUNCTION" is not supported.

Session-Verhalten

Nicht alle Funktionen behalten die ConnectorSession:

FunktionSession nach Aufruf
DETAILAktiv (Käufer bleibt eingeloggt)
SOURCINGAktiv (Käufer bleibt eingeloggt)
VALIDATEGelöscht
BACKGROUND_SEARCHGelöscht
DOWNLOADJSONGelöscht
QUANTITYCHECKGelöscht