Formular Baukasten

Store API

Das Formular-Werkzeug ist vollständig headless-kompatibel. Alle Storefront-Funktionen — Formular einreichen, Bestätigungs-Logik, Validierung — sind über die Shopware Store API erreichbar.

Diese Seite richtet sich an Entwickler:innen, die eigene Frontends, mobile Apps oder integrierende Drittsysteme anbinden.

Basis-URL & Headers

Header Wert
Content-Type multipart/form-data (mit Datei-Upload) oder application/x-www-form-urlencoded
sw-access-key Storefront-Access-Key des Verkaufskanals
sw-language-id optional, UUID-Hex der Sprache
sw-context-token optional, für eingeloggte Kund:innen

Basis-URL: https://<shop>/store-api

Endpoint: Formular absenden

POST /store-api/prems/form/submit

Felder im Body

Feld Pflicht Beschreibung
form_id ja UUID des Formulars
<identifier> je nach Definition je Formularfeld der Wert (Key = Technischer Name)
<identifier>[] je nach Definition Checkbox-Gruppen senden ein Array
shopware_basic_captcha_confirm je nach Captcha-Config Captcha-Antwort (BasicCaptcha)
g-recaptcha-response je nach Captcha-Config Captcha-Token (reCAPTCHA)

Hidden-Inputs bei der Produkt-Anfrage

Feld Bedeutung
__prems_product_id Produkt-UUID
__prems_product_number Produktnummer
__prems_product_name Anzeigename
__prems_product_price Formatierter Preis
__prems_product_url Kanonische URL

Antwort

Bei Erfolg (HTTP 200) liefert der Endpoint ein JSON-Objekt vom Typ FormSubmitRouteResponse mit dem Ergebnis:

{
    "result": {
        "entryId": "01H...HEX",
        "responseType": "success-notice",
        "responseMessage": "Vielen Dank! Ihre Nachricht wurde übermittelt.",
        "redirectUrl": null,
        "redirectDelay": null
    }
}

Bei Validierungsfehlern (HTTP 400) erhalten Sie eine ConstraintViolationException im Shopware-Standard:

{
    "errors": [
        {
            "code": "VIOLATION::IS_BLANK_ERROR",
            "status": "400",
            "title": "Constraint violation error",
            "detail": "This value should not be blank.",
            "source": { "pointer": "/firstName" },
            "meta": { "parameters": [] }
        }
    ]
}

Bei Captcha-Fehlern (HTTP 403) liefert Shopware Core eine CaptchaException.

Bei deaktiviertem Plugin (HTTP 403) oder unbekannter Formular-ID (HTTP 404) wird eine FormSubmitException zurückgegeben.

Felder eines Formulars laden

Für das Bauen eines eigenen Frontends benötigen Sie die Definition des Formulars (Felder, Reihenfolge, Pflichtfeld-Flag, Optionen). Sie laden sie über den DAL-Search-Endpoint:

POST /store-api/search/prems-form

Body:

{
    "filter": [
        { "type": "equals", "field": "id", "value": "<formId>" },
        { "type": "equals", "field": "active", "value": true }
    ],
    "associations": {
        "fields": { "sort": [{ "field": "sortOrder" }] }
    }
}

Die Antwort enthält das Formular mit allen Feldern, ihren Übersetzungen und Sichtbarkeits-Bedingungen.

Entity-Aliase

Alias Inhalt
prems_form Formular
prems_form_field einzelnes Feld / Strukturelement
prems_form_field_translation übersetzbare Eigenschaften pro Sprache
prems_form_entry Einsendung
prems_form_mail_route Mail-Route

Events (für eigene Backend-Erweiterungen)

Event Klasse Wann ausgelöst
prems_form.submitted Prems\Plugin\PremsForm\Core\Event\PremsFormSubmittedEvent nach erfolgreicher Einsendung (auch über die Store API)

Sie können sich an dieses Event hängen, um eigene Aktionen anzustoßen oder Daten an Drittsysteme weiterzuleiten.