Shopware Shorty | Kategorie Url mit Context generieren

Wenn Ihr mal ein Feature im Bezug auf SEO für Multishops umsetzen müsst, kommt Ihr um dieses Feature eigentlich nicht herum. Aktuell können nur Sprachshops mit einem hreflang Tag versehen werden. Habt Ihr nun aus verschiedenen Gründen einen Subshop laufen müsst Ihr euch selbst was bauen.

Url genieren

Ich nutzen in meinem Basis Plugin dafür eine Methode generateUrl() welche 2 Parameter enthält: shopId, query

Per DI habe ich mir den Router in den Subscriber geladen, diesen nutze ich dann wie folgt:

$shopContext = Context::createFromShop($temporaryShop, $this->config);
$url = $this->router->assemble($query, $shopContext);

Der Beitrag ist eigentlich auch nur entstanden, da ich als erstes „listing“ als controller stehen hatte. Auch wenn der Kategorie Controller „listing“ heißt, wird dieser im RewriteGenerator (getOrgQueryArray) mit „cat“ in einem switch case abgefragt. Also nicht wundern wenn Ihr mit „listing“ keine SEO Url erhaltet (http://local.test.de/listing/index/sCategory/13045)

$query = [
                'controller' => 'cat',
                'module' => 'frontend',
                'action' => 'index',
                'sCategory' => $catId,
            ];

Für die Detailseite würde das ganze dann so aussehen:

$query = [
            'controller' => 'detail',
            'module' => 'frontend',
            'action' => 'index',
            'sArticle' => $articleID,
        ];

Sinn und Zweck?

Wie bereits erwähnt bietet Shopware von Haus aus nur die Verknüpfung zum Sprachshop. Wir möchten aber alleine schon wegen der URL die Shops trennen (Sprachshops können keine unterschiedlichen TLDs).

Kommt nun der neue Subshop mit den Produkten/Listings ins Interwebs, würde der Inhalt als Duplicate Content getaggt werden und in der Suche nicht ordentlich indexiert werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert