Benvenuto in Magento.StackExchange!
Sfortunatamente, non esiste un modulo out-of-box che lo farà per te.
Ti incoraggio vivamente a riconsiderare questo come un'opzione. I tuoi utenti non sono stupidi (non importa quanto stupidamente si comportino) - molti, molti anni di analisi e-commerce mi hanno mostrato che, quasi l'80% delle volte, gli utenti che raggiungono un 404 colpiranno la barra di ricerca in loco in pochi secondi. Sforzati di sistemare la ricerca del tuo sito con una migliore categorizzazione (leggi: riempimento di parole chiave).
Gli indici di Google non sono per sempre. Se hai paura dei 404, prendi in considerazione di creare la tua stessa pagina 404. Aumenta il tuo potenziale di conversione offrendo un buono sconto del 5-10% a coloro che sono stati colpiti colpendo un 404. O, meglio ancora, non disabilitare le pagine dei prodotti. Piuttosto, disabilita la possibilità di acquistare (ad esempio impostato come esaurito) e fornire un blocco / collegamento statico che si collega alla pagina / categoria pertinente.
Non mi interessa, dammi solo i codici perché internet:
È semplicissimo codificare un modulo con un osservatore che lo gestirà per te è banale:
Designazione dell'evento 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 / nomemodulo / Modello / 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() */);
}
}
}