Eigenes Shoppingwelt Element Artikel Combobox

Sehr geehrte Community,

ich habe ein Problem beim erstellen eines Shoppingwelt-Elements. Ich habe es bereits geschafft mithilfe des bereits vordefinierten Stores eine Combobox mit allen angelegten Kategorien zu erhalten. Dafür habe ich folgenden Code in meiner „EmotionElementInstaller.php“ Datei verwendet:

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

Das funktioniert auch wunderbar. Gibt es einen „Store“ der mir die selbe Funktionalität nur mit allen Produkten in meinem Shop bietet ?

Oder ist es möglich in der EmotionElementInstaller.php einen eigenen Store anzulegen? Dann könnte ich diesen mit den Produktinhalten füllen und dann meinen eigenen Store dort auslesen lassen.

Eine Alternative wäre so ein Produkt Suchfeld, wie es beim Artikel Emotion implementiert ist.

 

Ich bin dankbar für jede Antwort.

 

Mit freundlichen Grüßen,

Pbnr1.

Es gibt ja bereits ein Element mit dem Namen “Artikel” das genau meine gewünschte Aufgabe erfüllt. Ich schaffe es aber leider nicht den Codeteil zu finden, der dafür zuständig ist. Es müsste doch theoretisch in der “erzeugnungsmethode” der COmbobox zu finden sein, oder irre ich da?

Sehr geehrtes pbnr1,

ein Einkaufsweltelement legst du ja wie folgt an: https://developers.shopware.com/developers-guide/custom-shopping-world-elements

$yourElement->createField([
    'name' => 'dein_feld_name',
    'fieldLabel' => 'Artikel suchen',
    'xtype' => 'emotion-components-fields-article',
    'supportText' => 'Hier kann man einen Artikel auswählen.',
    'allowBlank' => false // Pflichtfeld ?
]);

Wie kommt man da drauf? Die Methode createXXXField schreibt die Konfiguration in die Datenbank. Shopware generiert dann das Feld. Auch das Artikel-Element steht in der Datenbank. Dessen Felder findest du in der Tabelle s_library_component_field . Dort sieht man, dass die Artikelsuche vom xtype ‘emotion-components-fields-article’ ist. Also kann man diese auch wie oben beschrieben im eigenen Element hinzufügen.

Viele Grüße

P.S. später steht dann die Artikel-ID in dein_feld_name drin. (Wenn du die Daten ausliest)

P.S. später steht dann die Artikel-ID in dein_feld_name drin. (Wenn du die Daten ausliest)

Ich muss das hier leider noch mal aufgreifen. Bei mir ist leider in dem Feld beim Auslesen die Artikelnummer und nicht die ID drin. Dadurch bin ich aktuell leider hilflos im Template eine Verlinkung zu generieren. Ich würde eigentlich

{url controller="detail" sArticle=$Data.variablenname}

nutzen, dabei wird aber der Link https://domain.tld/detail/index/sArticle/SW10003 generiert. Das ist natürlich falsch. Hat jemand eine Idee wie ich nun den Link generieren kann?