# Wie erstellt man SEO Urls?

**URL:** <https://forum.shopware.com/t/wie-erstellt-man-seo-urls/66294>\
**Category:** Programmierung\
**Created:** [16. April 2020 um 07:51 UTC](https://forum.shopware.com/t/wie-erstellt-man-seo-urls/66294 "2020-04-16T07:51:35Z")\
**Posts on this page:** 4\
**Page:** 1

<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:** [16. April 2020 um 07:51 UTC](https://forum.shopware.com/t/wie-erstellt-man-seo-urls/66294/1 "2020-04-16T07:51:35Z")

</div>

Moin, ich möchte nun für mein custom Storefront controller SEO Urls generieren. Leider finde ich nichts passendes in der Doku… Hat hier jemand einen Tip für mich?

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/9/939b563272ed4d3ab29765188a09e9a99b988e8c.jpeg)

VG Philipp

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [16. April 2020 um 08:36 UTC](https://forum.shopware.com/t/wie-erstellt-man-seo-urls/66294/2 "2020-04-16T08:36:03Z")

</div>

Ich habe letztens Seo Urls in unseren Covid-19 Projekt eingefügt. Kannst gern da abschauen:&nbsp;[https://github.com/shopwareDowntown/downtown/commit/485078103f9bf75c2ed269e7e886abc997fc012f](https://github.com/shopwareDowntown/downtown/commit/485078103f9bf75c2ed269e7e886abc997fc012f)

&nbsp;

Brauchst nur die SeoRoute Klasse und die jeweilige Config für das Admin

---

<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:** [16. April 2020 um 09:56 UTC](https://forum.shopware.com/t/wie-erstellt-man-seo-urls/66294/3 "2020-04-16T09:56:46Z")

</div>

Okay danke soweit 🙂

Nun habe ich die Klassen angelegt und die Config in der Datenbank, jedoch scheint er hier Probleme mit der Validierung zu haben:

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/2/2f87a54776a2e02236eda75dbc5d681d59527d0a.jpeg)

Woran könnte das liegen?

Die Entity ist: `cogi_glossary` --\> In den Beispielen habe ich aber nur Entities ohne Unterstich

Der Route-Name lautet: `cogi-glossary.entry` --\> vllt mag er den Bindestrich nicht?

```
glossaryDefinition = $glossaryDefinition;
        $this->repository = $repository;
    }

    public function getConfig(): SeoUrlRouteConfig
    {
        return new SeoUrlRouteConfig(
            $this->glossaryDefinition,
            self::ROUTE_NAME,
            self::DEFAULT_TEMPLATE
        );
    }

    public function getMapping(Entity $glossary, ?SalesChannelEntity $salesChannel): SeoUrlMapping
    {
        if (!$glossary instanceof GlossaryEntity) {
            throw new \InvalidArgumentException('Expected GlossaryEntity');
        }

        return new SeoUrlMapping(
            $glossary,
            ['glossaryId' => $glossary->getId()],
            [
                'glossary' => $glossary->jsonSerialize(),
            ]
        );
    }

    public function extractIdsToUpdate(EntityWrittenContainerEvent $event): SeoUrlExtractIdResult
    {
        $ids = [];

        // check if a glossary was written. If this is the case, its Seo Url must be updated.
        $glossaryEvent = $event->getEventByEntityName(GlossaryDefinition::ENTITY_NAME);
        if ($glossaryEvent) {
            $ids = $glossaryEvent->getIds();
        }

        return new SeoUrlExtractIdResult($ids);
    }

    public function prepareCriteria(Criteria $criteria): void
    {
    }

    public function getSeoVariables(): array
    {
        return [];
    }

}

```

&nbsp;

&nbsp;

---

<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:** [16. April 2020 um 10:03 UTC](https://forum.shopware.com/t/wie-erstellt-man-seo-urls/66294/4 "2020-04-16T10:03:27Z")

</div>

Ahh okay, ich glaube ich weiß was es ist…

```
Some mandatory parameters are missing ("char", "cogiGlossaryId") to generate a URL for route "cogi-glossary.entry".

```

Im Controller muss `firstChar` stehen, dann sollte es gehen.
