Artikel und Bindewörter aus Produkt-URLs / Kategorie-URLs entfernen

Manchmal möchten Händler bestimmte Wörter nicht in Produkt- und Kategorie-URLs stehen haben. Dazu zählen unter anderem Artikel (der, die, das) und Bindewörter (und, oder, …). Standardmäßig belässt Magento diese Worte in der URL, wenn diese automatisch generiert wird.

Die Lösung

Natürlich kann man die URL-Keys manuell erstellen bzw. bearbeiten. Das ist aber mühsam und fehleranfällig. Daher reicht man die Aufgabe lieber an Magento weiter.

Dafür benötigen wir eine kleine Erweiterung. Ich baue auf der Extension aus Umlaute in Produkt-URLs und Kategorie-URLs auf. Öffnen Sie die Konfigurationsdatei und fügen Sie folgende Einträge in der Mapping-Liste hinzu:

                <das><from><![CDATA[ das ]]></from><to><![CDATA[-]]></to></das>
                <dem><from><![CDATA[ dem ]]></from><to><![CDATA[-]]></to></dem>
                <des><from><![CDATA[ des ]]></from><to><![CDATA[-]]></to></des>
                <der><from><![CDATA[ der ]]></from><to><![CDATA[-]]></to></der>
                <die><from><![CDATA[ die ]]></from><to><![CDATA[-]]></to></die>
                <und><from><![CDATA[ und ]]></from><to><![CDATA[-]]></to></und>

Das komplette Konfigurations-XML sieht kombiniert mit Umlaut-Mapping so aus:

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<modules>
		<Emzee_Umlaut>
			<version>0.0.1</version>
		</Emzee_Umlaut>
	</modules>
	<default>
		<url>
            <convert>
            	<umlautA><from><![CDATA[Ä]]></from><to><![CDATA[ae]]></to></umlautA>
                <umlautO><from><![CDATA[Ö]]></from><to><![CDATA[oe]]></to></umlautO>
                <umlautU><from><![CDATA[Ü]]></from><to><![CDATA[ue]]></to></umlautU>
                <umlauta><from><![CDATA[ä]]></from><to><![CDATA[ae]]></to></umlauta>
                <umlauto><from><![CDATA[ö]]></from><to><![CDATA[oe]]></to></umlauto>
                <umlautu><from><![CDATA[ü]]></from><to><![CDATA[ue]]></to></umlautu>
                <das><from><![CDATA[ das ]]></from><to><![CDATA[-]]></to></das>
                <dem><from><![CDATA[ dem ]]></from><to><![CDATA[-]]></to></dem>
                <des><from><![CDATA[ des ]]></from><to><![CDATA[-]]></to></des>
                <der><from><![CDATA[ der ]]></from><to><![CDATA[-]]></to></der>
                <die><from><![CDATA[ die ]]></from><to><![CDATA[-]]></to></die>
                <und><from><![CDATA[ und ]]></from><to><![CDATA[-]]></to></und>                
            </convert>
        </url>
    </default>
</config>

Natürlich kann die Liste beliebig erweitert werden.

Kombinationen von Artikeln / Füllwörtern

Auf Probleme stößt man, wenn der Name solcherart behandelte Begriffe unmittelbar aufeinander folgend enthält. Nehmen wir an, ein Produkt heißt „Wickie und die starken Männer“. Die Ersetzungsfunktion würde “ und “ finden und ersetzen, “ die “ aber nicht mehr, weil das Leerzeichen zwischen „und“ und „die“ bereits entfernt wurde. Der URL-Key wäre „wickie-die-starken-maenner“.

Um das zu verhindern, muss man auch alle möglichen Kombinationen eintragen. Im konkreten Fall wäre das:

                <unddie><from><![CDATA[ und die ]]></from><to><![CDATA[-]]></to></unddie>

Nun wird die gewünschte URL „wickie-starken-maenner“ erzeugt.

Achtung bei Mehrsprachigkeit

Bitte beachten Sie: die Ersetzungsfunktion wird auf alle Sprachen gleichermaßen angewendet. Dadurch kann es passieren, dass in bestimmten Sprachen unerwünsche Ersetzungen stattfinden.