Reindirizzamenti automatici 301 per prodotti disabilitati


14

Sto cercando di aggiungere reindirizzamenti automatici per un tipo di prodotto (evento) personalizzato in Magento 1.7. Quando è trascorsa la data di un evento, sto contrassegnando il prodotto come disabilitato in modo che gli utenti non vadano alla pagina sbagliata e voglio anche reindirizzare all'elenco delle classi future in modo da non avere una pletora di 404 errori sul mio luogo.

C'è un modo per ascoltare un evento per ottenere il prodotto in cui il 404 verrebbe lanciato, o dovrei cercare un'estensione gratuita per questo da qualche parte? Sto cercando da un po 'e non ho visto nessuna estensione che funzioni bene.

Risposte:


17

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() */);
        }
    }
}

1
Grazie rammollimento. Proverò a convincere il cliente a seguire i tuoi primi suggerimenti. Concordo sul fatto che probabilmente è una cattiva forma dirottare un 404.
kayluhb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.