in sw-entity-many-to-many-select in eigenem Adminmodul sind Produktvarianten ohne Namen sichtbar

Hallo miteinander,

nutzt irgendjemand  sw-entity-many-to-many-select  in seinem eigenen Adminmodul, genauso wie im Bundle Example - Plugin ( Shopware 6: Step 7: New module in the administration ) ?

Speziell:

Wenn ich es bei mir nutze (der gleiche Effekt taucht auch beim Bundle Example - Plugin auf), sehe ich die Produktvarianten, aber nicht die Namen dieser. Nur bei den jeweiligen “Hauptprodukten” wird der Name angezeigt. Im entsprechenden Request kommt als Name bei den Produktvarianten “null” zurück.

Zu sehen ist es hier:

Wir erwähnt tritt im verlinkten Bundle Example - Plugin der gleiche Effekt auf. Ist es irgendwie möglich, die Namen der Produktvarianten ebenfalls zu erhalten oder die Produktvarianten auszuschließen und nur “Hauptprodukte” auswählbar zu machen?

Die Shopware - Demodaten in der aktuellen Shopware Version 6.3.3.1 sind im Einsatz.

Stackoverflow - Frage: https://stackoverflow.com/questions/64833377/in-sw-entity-many-to-many-select-in-a-own-admin-module-product-variants-without .

Grüße

Sebastian

Du musst im Shopware.Context.Api einen inheritance wert übergeben

        searchContext() {
            return {
                ...Context.api,
                inheritance: true
            };
        },

Alternative die ich gerne nutze: als labelProperty einfach die Produkt-Nummer nutzen.

1 „Gefällt mir“

Hallo Moorleiche,

vielen Dank erst einmal für deine Antwort.

Meinst du in etwa so:

Das funktioniert bei mir leider nicht, er findet die productNumber nicht ( ReferenceError: productNumber is not defined ).

Wenn ich unter  swag-bundle-detail  (oder auch in der swag-bundle-lis t) in der index.js folgendes mit einfüge:

 

computed: {
     searchContext() {
          return { ...Shopware.Context.api, inheritance: true };
     }
}

hat dies leider auch keinen anderen Effekt als auf dem Bild oben. Auch nicht, wenn ich den many-to-many-select folgendermaßen ergänze:

Orientiert habe ich mich am Bundle - Plugin ( Shopware 6: Step 7: New module in the administration ).

Es ändert auch nichts, wenn ich wie hier https://forum.shopware.com/discussion/comment/282331/#Comment_282331 angesprochen entityCollection durch v-model ersetze.

Viele Grüße

Sebastian

Der Context sollte dann hier einbezogen werden.

Aber wie gesagt bin ich mir nicht ganz sicher ob die Namen der Varianten auch wirklich vom Parent Produkt vererbt werden. Mein obiges Bsp ist bei einem sw-entity-single select auf die Entity ‘products’ - da funktioniert es.

Ich selbst nutze halt einfach nur die Produkt Nummer

 

Hallo,

wie müsste dann die Stelle:

.get(this.$route.params.id, Shopware.Context.api)

genau lauten?

.get(this.$route.params.id, Shopware.Context.api, inheritance: true)

akzeptiert er ja logischerweise nicht. Oder war mein Weg schon korrekt, nur scheint es den Produktnamen nicht weiter zu vererben?

Über:

klappt es nun doch, vielleicht lag es am Doppelpunkt vor labelPropety, wer weiß. Dies wäre aber natürlich nur ein Workaround, da man ja so natürlich nicht die Namen der Produkte sieht.

Grüße

Sebastian

.get(this.$route.params.id, { ...Shopware.Context.api, inheritance: true })

// oder

.get(this.$route.params.id, this.searchContext)

so sollte es lauten, ob es funktioniert kann ich nicht sagen. In meinem Falle bei einem entity single select geht es.

 

Hallo Moorleiche,

danke für die Antwort. Du hast natürlich recht, die Syntax:

.get(this.$route.params.id, { ...Shopware.Context.api, inheritance: true })

wäre in dem Fall korrekt gewesen. Leider klappt es auch damit nicht, es werden weiterhin bei den Varianten die Namen nicht angezeigt oder ausgeliefert. Wahrscheinlich wird es wie von dir vermutet so sein, das Sie nicht weitervererbt werden. Danke trotzdem, die productNumber - Lösung ist ja auch erstmal praktikabel.

Grüße

Sebastian

Ich möchte mich dem alten Beitrag mal anschließen.

{ …Shopware.Context.api, inheritance: true } in Kontext von

this.orderRepository.search(criteria, { ...Shopware.Context.api, inheritance: true });

bezieht sich meinem Verständnis nach leider nur auf das orderRepository.

Ist es möglich dies auf addAssociation zu erweitern, so dass man für vererbte Felder beim Produkt das des Parent erhält?

criteria.addAssociation('lineItems.product');