Letzte Aktualisierung am .

Man könnte meinen das wenn man aus einfachen Artikeln einen konfigurierbaren Artikel erstellt, das dieser dann zum konfigurierbaren Artikel umleitet, dem ist aber nicht so anstatt dessen bekommt man dann bei der URL des einfachen Artikeln einen 404 Fehler.

Kürzlich hatte ich bei einem Kunden dieses Problem, Artikel die einfach und mehrfach im Shop waren aber nur mit verschiedener Füllmenge, wurden geändert zu konfigurierbaren Artikeln, damit diese nicht unnötig mehrfach gelistet werden.

Problem war das nach der Umstellung die alten URLs der einfachen Artikeln einen 404 Fehler ausgabe, dies führt zu Problemen wenn diese Artikel extern verlinkt wurden, was wiederum SEO technisch nicht gut ist.

 

Für andere mit dem gleichen Problem hier ein Lösungsweg:

Datei:

app/etc/modules/Softint_Redirect.xml

<?xml version="1.0"?>
<config>
<modules>
<Softint_Redirect>
<codePool>local</codePool>
<active>true</active>
<depends>
<Mage_Catalog />
</depends>
</Softint_Redirect>
</modules>
</config>

Datei:

app/code/local/Softint/Redirect/etc/config.xml

<?xml version="1.0"?>
<config>
<modules>
<Softint_Redirect>
<version>1.0.0</version>
</Softint_Redirect>
</modules>
<frontend>
<events>
<controller_action_predispatch_catalog_product_view>
<observers>
<softint_redirect_observer>
<class>Softint_Redirect_Model_Observer</class>
<method>redirectToParent</method>
</softint_redirect_observer>
</observers>
</controller_action_predispatch_catalog_product_view>
</events>
</frontend>
</config>

Datei:

app/code/local/Softint/Redirect/Model/Observer.php

<?php

class Softint_Redirect_Model_Observer
{
public function redirectToParent($observer)
{
$id = Mage::app()->getRequest()->getParam('id');
$product = Mage::getModel('catalog/product')->load($id);
if($product->getTypeId() == 'simple' && $product->getVisibility() == 1 && $product->getStatus()==1){
$parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
if(!empty($parentIds)){
$parentProduct = Mage::getModel('catalog/product')->load($parentIds[0]);
if(isset($parentProduct) and $parentProduct->getStatus()==1) {
Mage::app()
->getResponse()
->setRedirect($parentProduct->getProductUrl(), 301)
->sendResponse();
}
}
}
}
}
 

 

Die Extension prüft ob ein einfacher Artikel einzeln nicht sichtbar ist (sollte der Fall sein wenn es nur für einen konfigurierbaren Artikeln dient) und ob dieser aktiv ist, wenn dies der Fall ist wird geprüft ob es einen Elternartikel gibt, ist dies auch der Fall wird noch geprüft ob dieser auch aktiv ist, wenn alles zutrifft gibt es eine permamente Umleitung (301) auf den konfigurierbaren Artikel.

Zu beachten ist das ein Produkt theoretisch auch mehrere Elternartikel haben kann in diesen Fall wird es immer auf den ersten verfügbaren umgeleitet.

Pingbacks

Pingbacks sind aktiviert.

Trackbacks

  1. nap gang ho ga am #

    Magento: Einfache Artikel umleiten auf konfigurierbaren Artikel - Blog - Softint

Trackback-URL

Kommentare

Kommentare deaktiviert.