DETAIL & VALIDATE
DETAIL
Klasse: OciDetailController
Zweck: Leitet den Käufer direkt zur Shopware-Produktdetailseite eines Produkts weiter – anhand der Produktnummer.
Ablauf
productid-Parameter prüfen (Pflichtfeld)OciProductService::getProductByProductNumber()→ Produktsuche perproductNumberim$dataFeedContext- Redirect zu
frontend.detail.pagemit der internen Shopware-Produkt-UUID
Parameter
| Parameter | Pflicht | Beschreibung |
|---|---|---|
productid | ✅ Ja | Produktnummer (z. B. SW-1234) |
Response
HTTP 302 Redirect
Location: /detail/{shopwareProductId}
Fehlerverhalten
| Fehler | Exception |
|---|---|
productid fehlt | \RuntimeException: Parameter PRODUCTID is required and has not been provided. |
| Produkt nicht gefunden | \RuntimeException: Product with product number "..." was not found. |
hinweis
DETAIL lässt die ConnectorSession aktiv – der Käufer kann nach dem Redirect weiter einkaufen.
VALIDATE
Klasse: OciValidateController
Zweck: Fügt ein einzelnes Produkt in einen temporären Warenkorb ein und gibt das vollständige OCI-Formular zurück. Typisch eingesetzt, wenn das Procurement-System einen Artikel vorab validieren möchte, ohne einen interaktiven Einkauf zu starten.
Ablauf
productidundquantityprüfen (beide Pflichtfeld)- Produkt per
productNumberladen ($dataFeedContext) - Menge auf
minPurchaseerhöhen, falls kleiner (Mindestbestellmenge) - Produkt mit
quantityin$cartContextin den Warenkorb legen (OciProductService::addProductToCart()) - OCI-Formular aufbauen:
OciConnectorResponseGenerator::buildForm()(mit$dataFeedContext) - Session löschen (
ConnectorSessionService::clear()) - Twig-Template rendern
Parameter
| Parameter | Pflicht | Beschreibung |
|---|---|---|
productid | ✅ Ja | Produktnummer |
quantity | ✅ Ja | Menge; wird automatisch auf minPurchase hochgesetzt, wenn zu niedrig |
Response
@AgiqonConnector/storefront/plugin/oci-validate.html.twig
Template-Variablen:
| Variable | Typ | Beschreibung |
|---|---|---|
ociForm | OciFormData | Vollständige OCI-Formular-Daten |
AgiqonOciStartIndex | int | Konfigurierter Start-Index des Systems (OciSystemEntity::getIndexStart()) |
Fehlerverhalten
| Fehler | Exception |
|---|---|
productid oder quantity fehlt | \RuntimeException: Parameters "PRODUCTID" and "QUANTITY" are required... |
| Produkt nicht gefunden | \RuntimeException: Product with product number "..." was not found. |
hinweis
Die ConnectorSession wird nach VALIDATE gelöscht – im Gegensatz zu DETAIL und SOURCING, die die Session aktiv lassen. DataFields werden vollständig aufgelöst und stehen im ociForm-Objekt zur Verfügung.