SW 5.2 eigenes Einkaufswelten Element Kategorien/Artikel Combo Box

Hallo zusammen

Zuerst einmal meine Ausgangslage.

Ich möchte ein eigenes Einkaufswelten Element erstellen, ähnlich wie das Kategorie-Teaser Element. Es wäre gedacht, dass man in dem Element ein Bild, ein Produkt oder eine Kategorie und einen Text wie z.B. „Mehr erfahren“, oder „Jetzt Grösse auswählen“ angeben kann. Das Element würde dann jeweils auf das Produkt oder die Kategorie Seite verlinken.

Hier Custom shopping world elements gibt es ja einen Guide mit einem Beispiel Element. Die createTextField und createMediaField Elemente funktionieren. Mein Problem liegt beim createComboBoxField Element.
Ich habe im Edit Modals beim Klick auf das select Element den JS Error „Uncaught TypeError: Cannot read property ‚type‘ of undefined“ und habe keien Plan, woran das liegen könnte.

Ich bin mir auch nicht ganz sicher, ob der Store den ich für die Kategorien verwende ‚Shopware.apps.Base.store.Category‘ überhaupt die gleiche Ausgabe wie beim Kategorie-Teaser Element ausgeben würde, da es im Ajax Request nicht danach aussah.

Könnte mir da jemand weiterhelfen?

Habe hier auch noch die install Methode des Plugins.

public function install(InstallContext $context)
{
    $installer = $this->container->get('shopware.emotion_component_installer');

    $teaserElement = $installer->createOrUpdate(
        $this->getName(),
        'Hofer Teaser',
        [
            'name' => 'Hofer Teaser',
            'template' => 'emotion_teaser',
            'description' => 'Bild Teaser für Startseite'
        ]
    );

    $teaserElement->createMediaField(
        [
            'name' => 'teaser_image',
            'fieldLabel' => 'Teaser Bild',
            'allowBlank' => false
        ]
    );
    $teaserElement->createComboBoxField(
        [
            'name' => 'teaser_article_selection',
            'fieldLabel' => 'Artikel-Auswahl',
            'allowBlank' => true,
            'store' => 'Shopware.apps.Base.store.Article',
            'valueField' => 'teaser_article'
        ]
    );
    $teaserElement->createComboBoxField(
        [
            'name' => 'teaser_category_selection',
            'fieldLabel' => 'Kategorie-Auswahl',
            'allowBlank' => true,
            'store' => 'Shopware.apps.Base.store.Category',
            'valueField' => 'teaser_value'
        ]
    );
    $teaserElement->createTextField(
        [
            'name' => 'teaser_link_text',
            'fieldLabel' => 'Link Text',
            'supportText' => 'Der Text unter dem Bild',
            'allowBlank' => true
        ]
    );
}

Vielen Dank.

Hi olai,

wenn ich dich richtig verstehe, stand ich vor dem selben Problem. Ich konnte es damit Lösen:

'valueField' => 'id',
'displayField' => 'name',
'store' => 'Shopware.apps.Category.store.CategoryPath'

das hat mir die Kategorien die der Category teaser zurückgegeben.
Hoffe es hilft.

$teaserElement->createComboBoxField([
            'name' => 'category_selection',
            'fieldLabel' => 'Kategorie-Auswahl',
            'allowBlank' => true,
            'valueField' => 'id',
            'displayField' => 'name',
            'store' => 'Shopware.apps.Emotion.store.CategoryPath',
        ]);