Zum Hauptinhalt springen

DETAIL & VALIDATE

DETAIL

Klasse: OciDetailController
Zweck: Leitet den Käufer direkt zur Shopware-Produktdetailseite eines Produkts weiter – anhand der Produktnummer.

Ablauf

  1. productid-Parameter prüfen (Pflichtfeld)
  2. OciProductService::getProductByProductNumber() → Produktsuche per productNumber im $dataFeedContext
  3. Redirect zu frontend.detail.page mit der internen Shopware-Produkt-UUID

Parameter

ParameterPflichtBeschreibung
productid✅ JaProduktnummer (z. B. SW-1234)

Response

HTTP 302 Redirect
Location: /detail/{shopwareProductId}

Fehlerverhalten

FehlerException
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

  1. productid und quantity prüfen (beide Pflichtfeld)
  2. Produkt per productNumber laden ($dataFeedContext)
  3. Menge auf minPurchase erhöhen, falls kleiner (Mindestbestellmenge)
  4. Produkt mit quantity in $cartContext in den Warenkorb legen (OciProductService::addProductToCart())
  5. OCI-Formular aufbauen: OciConnectorResponseGenerator::buildForm() (mit $dataFeedContext)
  6. Session löschen (ConnectorSessionService::clear())
  7. Twig-Template rendern

Parameter

ParameterPflichtBeschreibung
productid✅ JaProduktnummer
quantity✅ JaMenge; wird automatisch auf minPurchase hochgesetzt, wenn zu niedrig

Response

@AgiqonConnector/storefront/plugin/oci-validate.html.twig

Template-Variablen:

VariableTypBeschreibung
ociFormOciFormDataVollständige OCI-Formular-Daten
AgiqonOciStartIndexintKonfigurierter Start-Index des Systems (OciSystemEntity::getIndexStart())

Fehlerverhalten

FehlerException
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.