Speichert man Produkte oder Kategorien im Backend und gibt keinen URL-Key an, dann erzeugt Magento diesen automatisch. Allerdings reagiert Magento bei Umlauten und Sonderzeichen nicht so, wie man sich das erwartet.
Aus einem „ä“ wird ein „a“, aus einem „ö“ ein „o“ und aus einem „ü“ ein „u“. Dasselbe gilt für die Großbuchstaben.
Die Lösung
Man kann das mit einer kleinen Extension beheben. Sie funktioniert in Magento CE 1.8 und 1.9 für Produkte und Kategorien, darunter nur für Produkte.
Dazu erstellt man die Aktivierungs-Datei app/etc/modules/Emzee_Umlaut.xml:
<?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Emzee_Umlaut> <active>true</active> <codePool>local</codePool> <depends> <Mage_Catalog /> </depends> </Emzee_Umlaut> </modules> </config>
Und erstellt in der Konfigurations-Datei der Extension ein Mapping der Umlaute in der Node default>url>convert:
<?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> </convert> </url> </default> </config>
URLs bestehender Produkte / Kategorien
Hat man bereits ein Produkt / eine Kategorie mit falscher URL angelegt, dann bringt das einfache Laden und Speichern nichts. Stattdessen muss man beim Bearbeiten des Datensatzes entweder den URL-Key im entsprechenden Eingabefeld selbst anpassen oder den Inhalt des Eingabefelds löschen, damit Magento selbst die Umwandlung vornimmt.
Hallo Theo, richtig in die Datei müsste es hinein!
wo genau soll „Und erstellt in der Konfigurations-Datei der Extension ein Mapping der Umlaute in der Node default>url>convert:“
dieser Teil abgespeichert werden und als was?
Ich hatte jetzt gedacht in
app\code\local\Emzee\Umlaut\etc\
als config.xml
ist das richtig, wenn ja geht es bei mir leider nicht ?