Aufgeblähte Magento URL-Rewrites

Es kommt vor, dass Magentos URL-Rewirtes-Tabelle sich unglaublich aufbläht. Das merkt man vor allem bei Shops mit mehr als 10.000 Artikeln. Hinzu kommt, dass Google immer mehr 404-Fehler meldet. In einem solchen Fall ist vermutlich der Indexer schuld – wenn man mal von einem fehlenden Geschäfftsprozess vorher absieht, der das Problem auch lösen könnte 😉

Genau genommen geht es darum, dass die CSV-Dateien der Lieferanten unkontrolliert, bzw. beinahe roh in die Magento-DB übertragen wird. Wenn es nun zwei Produkte gibt, die den gleichen Namen tragen, beginnt das Problem. Magento macht aus „Stuhl“ und „Stuhl“ einmal die URL „/stuhl“ und ein mal „/stuhl-1“.

Beim nächsten Update prüft Magento auf das vorhandensein der URL und inkrementiert einfach das „-1“ zu einem „-2“. Hintergrund ist, dass die URL aus dem Namen abgeleitet wird und nicht in der CSV-Datei des Lieferanten liegt. Die Software geht also davon aus, dass ein neues Produkt „Stuhl“ ist.

Die Lösung ist schnell geschrieben:

Man kopiere die Datei /app/core/Mage/Catalog/Model/Url.php nach /app/local/Mage/Catalog/Model/Url.php und ändere den folgenden Eintrag irgendwo um Zeile 810

if ($product->getUrlKey() == '' && !empty($requestPath) && strpos($existingRequestPath, $requestPath) === 0)

in

if (!empty($requestPath) && strpos($existingRequestPath, $requestPath) === 0)

Magento setzt nun einfach den URL-Key so wie beim ersten mal und legt kein neues Rewrite an. Zumindest nicht beim nächsten Update des Indexers.

Gefunden hab ichs hier.

 

Schreibe einen Kommentar

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