Willkommen bei Magento.StackExchange!
Leider gibt es kein Standardmodul, das dies für Sie erledigt.
Ich würde Sie sehr ermutigen, dies als Option zu überdenken. Ihre Benutzer sind nicht dumm (egal wie dumm sie sich verhalten) - viele, viele Jahre der E-Commerce-Analyse haben mir gezeigt, dass Benutzer, die eine 404 erreichen, in fast 80% der Fälle innerhalb von Sekunden auf die Suchleiste vor Ort gelangen. Geben Sie sich Mühe, Ihre Website-Suche durch eine bessere Kategorisierung zu verbessern (siehe: Keyword-Füllung).
Google-Indizes sind nicht für immer. Wenn Sie Angst vor 404s haben, sollten Sie Ihre 404-Seite selbst aufpeppen. Erhöhen Sie Ihr Conversion-Potenzial, indem Sie einen Rabatt-Coupon von 5 bis 10% für diejenigen anbieten, die einen 404-Code nicht erreichen. Oder, noch besser, deaktivieren Sie keine Produktseiten. Deaktivieren Sie stattdessen die Möglichkeit zum Kauf (z. B. als nicht vorrätig festgelegt) und stellen Sie einen statischen Block / Link zur Verfügung, der auf die entsprechende Seite / Kategorie verweist.
Es ist mir egal, gib mir nur Codes, weil internets:
Im einfachsten Fall ist das Codieren eines Moduls mit einem Beobachter, der dies für Sie erledigt, trivial:
Ereignisbezeichnung in config.xml:
<global>
<events>
<controller_action_postdispatch_catalog_product_view>
<observers>
<yourmodule_capcpv>
<class>YourCompany_YourModule_Model_Observer</class>
<method>catalogProductViewPostdispatch</method>
</yourmodule_capcpv>
</observers>
</controller_action_postdispatch_catalog_product_view>
</events>
</global>
app / code / local / YourCompany / YourModule / Model / Observer.php:
<?php
class YourCompany_YourModule_Model_Observer
{
public function catalogProductViewPostdispatch($observer)
{
$controller = $observer->getEvent()->getControllerAction();
$product = Mage::registry('current_product');
if($product->getStatus()!=Mage_Catalog_Model_Product_Status::STATUS_ENABLED){
$action->getResponse()->setRedirect(/* your redirect URL here with Mage::getUrl() */);
}
}
}