# Kategorie-Stamm kopieren/duplizieren

**URL:** https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272
**Category:** Shopware 6 (German)
**Created:** [6. Mai 2022 um 11:27 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272 "2022-05-06T11:27:45Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![\_MikeB](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/_mikeb/32/7856_2.png) [@\_MikeB](https://forum.shopware.com/u/_MikeB)
#### Post date: [6. Mai 2022 um 11:27 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/1 "2022-05-06T11:27:45Z")

</div>

Hallo.

Gibt es eine Möglichkeit wie ich einen kompletten Kategorie-Stamm duplizieren kann? Ein Ticket diesbezüglich gibt es bei Shopware wohl schon aber leider noch keine Lösung. Vielleicht hat hier schon mal jemand eine Lösung entwickelt und kann anleiten? Habe schon mit der Entwicklung begonnen und Ermittle auch schon den kompletten Tree. Leider weiß ich aktuell noch nicht wie ich mit diesen Daten den Stamm neu anlegen kann. Müsste ja aller IDs tauschen. Weiter müssten alle Produkte mit den neuen IDs versorgt werden damit diese auch in dem neuen Stamm erscheinen.

Hintergrund:  
Es sollen mehrere Verkaufskanäle mit annähernd den gleichen Kategorien und Produkten geben. Kategorie und Produkte sollen pro VK aktiviert/deaktiviert werden können. Bei Produkten kann das über die Sichtbarkeit geregelt werden. Bei den Kategorien gibt es dies leider nicht.

Zudem haben die ganzen Content-Seiten einen unterschiedlichen Inhalt. Dies lässt sich ja auch nur mit unterschiedlichen Kategorien bewerkstelligen da die Inhalte je VK nicht gesteuert werden können oder?

Beste Grüße  
Mike

---

<div class="post-metadata">

### Author: ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)
#### Post date: [7. Mai 2022 um 03:08 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/2 "2022-05-07T03:08:34Z")

</div>

Hallo,  
technisch gesehen ist eine Möglichkeit im Core Vorhanden um den Kategorie-Baum rekursiv zu duplizieren. Wurde wahrscheinlich nur nicht aktiviert, weil man sich damit auch leicht den Shop zerschießen kann. Außerdem würden die SEO Urls Probleme bereiten.  
Ich habe einen ähnlichen Fall vor ca. einem Jahr bei einem meiner Kunden. Ich denke man könnte Stand jetzt ein Plugin bauen um die Sichtbarkeit und eine CMS Page Zuweisung pro Verkaufskanal zu steuern. Würde aus meiner Sicht mehr Sinn machen. Nur was darf sowas kosten? Ich denke 2-3 Tage muss man dafür einplanen.

Dazu wäre mein Ansatz eine Relationstabelle anlegen und die navigationRoute neu dekorieren. Dort die Criteara mit der Relationstabelle + SalesChannel-spezifische Filter anreichern. Anschließend das sales\_channel.category.loaded Event abfangen und dort die ID der CMS Page überschreiben…

Oder wenn du doch nur die Kategorien klonen willst:

Folgende Stellen sind relevant:

```auto
src/Administration/Resources/app/administration/src/module/sw-category/component/sw-category-tree/sw-category-tree.html.twig
:allow-duplicate="true"

src/Administration/Resources/app/administration/src/module/sw-category/component/sw-category-tree/index.js (Methode einbauen)
async duplicateElement(contextItem) {
    const behavior = {
        cloneChildren: true,
        overwrites: {
            name: `${contextItem.data.name} ${this.$tc('global.default.copy')}`
        }
    };

    await this.categoryRepository.clone(contextItem.id, Shopware.Context.api, behavior);
}

```

VG  
Philipp

---

<div class="post-metadata">

### Author: ![\_MikeB](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/_mikeb/32/7856_2.png) [@\_MikeB](https://forum.shopware.com/u/_MikeB)
#### Post date: [9. Mai 2022 um 07:59 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/3 "2022-05-09T07:59:46Z")

</div>

Hi Philipp.

Danke für dein Feedback! Die beschriebenen Stellen schaue ich mir mal an. Bzgl. SEO Urls. In wie fern würden diese Probleme verursachen? Die Toplevel Domain ist ja eine unterschiedliche. Habe das mal rudimentär mit gleichen Kategorienamen bzw. SEO Urls in unterschiedlichen SCs getestet. Scheint keine Probleme zu geben. Übersehe ich etwas?

Das mit der Sichtbarkeit je Kategorie und CMS Seite finde ich auch interessant. Hatte auch schon die Gedanken. Wobei ich dann aber auch denke das es schnell unübersichtlich werden könnte wenn du ein großen Kategoriebaum hast. Da verliert man bestimmt schnell den Überblick welche Kategorie zu welchem SC gehört. Alles in allem kein leichtes Thema ☹

Gruß

---

<div class="post-metadata">

### Author: ![\_MikeB](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/_mikeb/32/7856_2.png) [@\_MikeB](https://forum.shopware.com/u/_MikeB)
#### Post date: [9. Mai 2022 um 09:07 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/4 "2022-05-09T09:07:02Z")

</div>

So habe es jetzt mal implementiert. Funktioniert wunderbar. Nochmal ein dickes DANKE!!! Wie gesagt das mit den SEO Urls bedarf noch Klärung aber da es sich um unterschiedliche SCs handelt, sollte es da eigentlich keine Problem geben.

Für alle die das auch mal benötigen. Habe die duplicateElement Methode noch etwas erweitert damit nach dem Klonen der Kategoriebaum aktualisiert wird und die neuen Kategorien direkt angezeigt werden.

```auto
async duplicateElement(contextItem) {
            const behavior = {
                cloneChildren: true,
                overwrites: {
                    name: `${contextItem.data.name} ${this.$tc('global.default.copy')}`
                }
            };

            await this.categoryRepository.clone(contextItem.id, Shopware.Context.api, behavior).then((clone) => {
                const criteria = new Criteria();
                criteria.setIds([clone.id]);
                this.categoryRepository.search(criteria).then((categories) => {
                    this.addCategories(categories);
                });
            }).catch(() => {
                this.createNotificationError({
                    message: this.$tc('global.notification.unspecifiedSaveErrorMessage'),
                });
            });
        }

```

---

<div class="post-metadata">

### Author: ![\_MikeB](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/_mikeb/32/7856_2.png) [@\_MikeB](https://forum.shopware.com/u/_MikeB)
#### Post date: [11. Mai 2022 um 11:39 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/5 "2022-05-11T11:39:27Z")

</div>

Leider doch zu früh gefreut. Er legt die kopierten Kategorien zwar in der Datenbank an, aber fehlen Infos wie das Feld **breadcrump** und vermutlich noch ein paar andere Infos.  
Hat zur Folge, dass ich die Kategorien ab Ebene 2 im Admin nicht sehe. Kategorien sind nicht „aufklappbar“ da vermutlich die entsprechende Verknüpfung fehlt. Obwohl parentId korrekt versorgt wird.

Vermutlich doch alles komplizierter und deshalb im Core deaktiviert ☹

---

<div class="post-metadata">

### Author: ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)
#### Post date: [11. Mai 2022 um 18:04 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/6 "2022-05-11T18:04:30Z")

</div>

Kein Problem, hab bereits an einem Plugin gebastelt. Wenn du mir deine Mail per PM senden könntest, sende ich dir das gerne mal zu. Store Veröffentlichung dauert wahrscheinlich noch etwas. Hab aktuell 8 Plugins in der Pipeline.

[https://docs.moori.net/MoorlExtCat/](https://docs.moori.net/MoorlExtCat/)

---

<div class="post-metadata">

### Author: ![aleximi](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/aleximi/32/13313_2.png) [@aleximi](https://forum.shopware.com/u/aleximi)
#### Post date: [24. Oktober 2022 um 10:59 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/7 "2022-10-24T10:59:26Z")

</div>

Ich glaube das Modul von Moorleiche bietet keine Kopierfunktion sondern geht den anderen Ansatz, mit einem Kategoriebaum?

Falls dem so ist, versuche ich gerade die snippets oben in ein FOSS-Modul zu packen.

@_MikeB: Ich kann in meinen ersten Versuchen die Subkategorien aufklappen (6.4.16.0)

breadcrumb fehlt aber scheinbar auch hier.  
Außerdem ist mir aufgefallen, dass die Untermenüs nicht mehr in der ursprünglichen Sortierung vorliegen.

---

<div class="post-metadata">

### Author: ![aleximi](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/aleximi/32/13313_2.png) [@aleximi](https://forum.shopware.com/u/aleximi)
#### Post date: [25. Oktober 2022 um 15:33 UTC](https://forum.shopware.com/t/kategorie-stamm-kopieren-duplizieren/94272/8 "2022-10-25T15:33:22Z")

</div>

Für die Kopierfunktion haben wir ein Modul erstellt:

> **[GitHub - iMi-digital/shopware6-category-duplicator: Duplicates a full...](https://github.com/iMi-digital/shopware6-category-duplicator/)**
>
> Duplicates a full category subtree. Contribute to iMi-digital/shopware6-category-duplicator development by creating an account on GitHub.
