Hallo, wir haben diese Komponente gefunden Homepage - Shopware Component library und möchten diese einsetzen. Leider gibt es keinerlei Dokumentation zu dieser Komponente. Sie wird uns zwar angezeigt, es werden aber keine Kategorien angezeigt, obwohl welche über die API gefunden werden. Hat jemand einen Hinweis, wie man diese Komponente initialisieren muss?
<sw-category-tree-field placeholder="Kategorien"
:categoriesCollection="categories ? categories : []"
</sw-category-tree-field>
categories sind die gewählten Kategorien. Leider kommt immer die Anzeige „Keine Kategorien gefunden“.
Danke.
Ok, durch reverse engineering haben wir es gelöst - categories muss eine EntityCollection sein, diese wird über die Repo-Factory angelegt:
In unserem Fall:
let categoryRepo = this.repositoryFactory.create('category');
this.categories = new EntityCollection(
categoryRepo.route,
categoryRepo.entityName,
Shopware.Context.api,
null,
this.categories
);
Da ich das nicht zum ersten mal suche, hier ein Ansatz für Shopware 6.5 aufwärts:
<sw-category-tree-field
:categories-collection="emptyCategoryCollection"
:criteria="categoryCriteria"
:disabled="!shopwareProductSettings.updateProductCategories"
placeholder=""
></sw-category-tree-field>
In der index.js löse ich das dann so:
computed: {
categoryRepository() {
return this.repositoryFactory.create('category');
},
categoryCriteria() {
const criteria = new Criteria(1, 500);
return criteria;
},
// Die leere EntityCollection muss erstellt werden, damit im Kategorie-Auswahl-Tree überhaupt
// eine Kategorie ausgewählt werden kann.
// Es ist wirklich nicht schön gelöst von Shopware -
// denn eigentlich soll man da wohl auch ein Array übergeben können.
// Aber wenn man da ein leeres Array übergibt, ist der Kategorie-Baum im Auswahl-Feld dann einfach leer.
// So hier gehts jedenfalls.
emptyCategoryCollection() {
return new Shopware.Data.EntityCollection('collection', 'collection', {}, null, []);
}
},
So funktioniert es zumindest soweit, dass die Kategorien nicht vorausgewählt sind.
Ich werde das sicher in Kürze hier nochmal aktualisieren - da jetzt die Ausgabe leer bleibt, wenn man etwas auswählt.
Falls nicht - es kommt in einem kostenfreien Plugin von mir hier zum Einsatz: