Heute hatte ich die kleine Herausforderung in Shopware 5 URL's per Freitextfeld-Attribut (z.B. attr20) SEO-URLs diverser Seitentypen manuell zu übersteuern. Dies erfolgt über die Einstellungen > Grundeinstellungen > SEO/Router-Einstellungen. Die entsprechenden Freitextfeld-Attribute legt ihr über Einstellungen > Freitextfeld-Verwaltung > [Auswahl der Tabelle des jeweiligen Typs] > Hinzufügen an. Ich habe hier attr20 verwendet. Eine gute Übersicht über die dazu verfügbaren Array-Strukturen bietet diese Seite in der Shopware Dokumentation: https://docs.shopware.com/de/shopware-5-de/einstellungen/seo#erweiterun… Hier lässt sich via Smarty einfach eine Übersteuerung einrichten:
SEO-Urls Artikel-Template übersteuern aus Freitextfeld:
``` {if !empty($sArticle.attr20)}{$sArticle.attr20}{else}{sCategoryPath articleID=$sArticle.id}/{$sArticle.name}-{$sArticle.id}{/if} ```
SEO-Urls Kategorie-Template übersteuern aus Freitextfeld:
{if !empty($sCategory.attribute.attr20)}{$sCategory.attribute.attr20}{else}{sCategoryPath categoryID=$sCategory.id}{/if}
SEO-Urls Hersteller-Template übersteuern aus Freitextfeld:
{if !empty($sSupplier.attributes.core.attr20)}{$sSupplier.attributes.core.attr20}{else}marken/{createSupplierPath supplierID=$sSupplier.id}{/if}
SEO-Urls Shopseiten-Template übersteuern aus Freitextfeld:
{if !empty($site.attributes.core.attr20)}{$site.attributes.core.attr20}{else}{$site.description}{/if}
SEO-Urls Formular-Template übersteuern aus Freitextfeld:
{if !empty($form.attribute.attr20)}{$form.attribute.attr20}{else}{$form.name}{/if}
Leider KEINE Lösung für Einkaufswelten (Ticket)
Für Landingpages / Einkaufswelten klappt es nicht! Hierzu habe ich keine Lösung gefunden und daher ein Ticket erstellt: https://issues.shopware.com/issues/SW-24076 Wichtig: Nachdem ihr diese Einstellungen geändert habt und evtl. auch nach manuellen URL-Übersteuerungen müsst ihr ggf. den SEO Cache neu aufbauen lassen. Wie das funktioniert, seht ihr hier: https://docs.shopware.com/de/shopware-5-de/einstellungen/cache-performa…