Beim speichern vom Theme - Warning: Undefined array key "type"

Ich möchte ein SelectFeld in der Theme.json definieren.
Das klappt auch und wird mir richtig angezeigt.

Aber beim speichern kommt der Fehler: “Warning: Undefined array key „type““

Hier mein Code:

"wsc-template-header-spalten": {
                "type": "text",
                "label": {
                    "de-DE": "Spalten im Header",
                    "en-GB": "Header template file",
                    "fr-FR": "Fichier de modèle d'en-tête"
                },
                "helpText": {
                    "de-DE": "Einfach",
                    "en-GB": "Name",
                    "fr-FR": "Nom"
                },
                "editable": true,
                "fullWidth": true,
                "order": 200,
                "block": "templateheaderBlock",
                "section": "headerSection",
                "tab": "templatetabs",
                "value": "3",
                "custom": {
                    "componentName": "sw-single-select",
                    "options": [
                        {
                            "value": "2",
                            "label": {
                              "en-GB": "2 Columns",
                              "de-DE": "2 Spalten",
                              "fr-FR": "2 Colonnes"
                            }
                        },
                        {
                            "value": "3",
                            "label": {
                              "en-GB": "3 Columns",
                              "de-DE": "3 Spalten",
                              "fr-FR": "3 Colonnes"
                            }
                        },
                        {
                            "value": "4",
                            "label": {
                              "en-GB": "4 Columns",
                              "de-DE": "4 Spalten",
                              "fr-FR": "4 Colonnes"
                            }
                        },
                        {
                            "value": "5",
                            "label": {
                              "en-GB": "5 Columns",
                              "de-DE": "5 Spalten",
                              "fr-FR": "5 Colonnes"
                            }
                        },
                        {
                            "value": "6",
                            "label": {
                              "en-GB": "6 Columns",
                              "de-DE": "6 Spalten",
                              "fr-FR": "6 Colonnes"
                            }
                        },
                        {
                            "value": "2_3",
                            "label": {
                              "en-GB": "Layout 2/3 + 1/3",
                              "de-DE": "Layout 2/3 + 1/3",
                              "fr-FR": "Mise en page 2/3 + 1/3"
                            }
                        },
                        {
                            "value": "3_2",
                            "label": {
                              "en-GB": "Layout 1/3 + 2/3",
                              "de-DE": "Layout 1/3 + 2/3",
                              "fr-FR": "Mise en page 1/3 + 2/3"
                            }
                        }
                    ]
                }
            },

Wer kann mir sagen was da gerade falsch läuft.

Theme wird kompiliert nur beim speichern kommt der Fehler.

Ich bin kein Programmierer, aber das schreibt ChatGPT: müsste vom Typ Select sein:

Danke für den Screenshot :raising_hands:

Das Problem liegt daran, dass du in deiner theme.json ein Select-Feld definieren willst, aber im Code type: „text“ angegeben hast.

In Shopware muss das Feld für ein Auswahlfeld so aussehen:

„wsc-template-header-spalten“: {

„type“: „select“,

„label“: {

"de-DE": "Spalten im Header",

"en-GB": "Header template columns",

"fr-FR": "Fichier de modèle d’en-tête"

},

„helpText“: {

"de-DE": "Einfach",

"en-GB": "Name",

"fr-FR": "Nom"

},

„editable“: true,

„fullWidth“: true,

„order“: 200,

„block“: „templateheaderBlock“,

„section“: „headerSection“,

„tab“: „templatetabs“,

„value“: „3“,

„custom“: {

"componentName": "sw-single-select",

"options": \[

  { "value": "1", "label": { "de-DE": "1 Spalte", "en-GB": "1 column", "fr-FR": "1 colonne" } },

  { "value": "2", "label": { "de-DE": "2 Spalten", "en-GB": "2 columns", "fr-FR": "2 colonnes" } },

  { "value": "3", "label": { "de-DE": "3 Spalten", "en-GB": "3 columns", "fr-FR": "3 colonnes" } }

\]

}

}

Unterschiede zu deinem Code:

  • type muss select sein (nicht text).

  • Deine Optionsliste (options) braucht value und label – du hast nur die Labels eingetragen.

  • Der Fehler Undefined array key „type“ kommt, weil Shopware bei einem Select-Feld die Optionstypen erwartet.

:backhand_index_pointing_right: Sobald du das anpasst, sollte das Speichern ohne Fehler funktionieren.

Möchtest du, dass ich dir ein vollständiges minimales Beispiel für ein theme.json-Selectfeld erstelle, das garantiert funktioniert?

@raymond-de
danke aber das habe ich alles schon durch und auch selbst probiert.

Ich habe es gerade abgespeckt auf Text und auch die Values rausgenommen.

Aber selbst gerade als “text” bekomme ich den Fehler noch ich suche gerade woher es kommen kann.