Automatische 301-Weiterleitungen für deaktivierte Produkte


14

Ich versuche, automatische Weiterleitungen für einen benutzerdefinierten Produkttyp (Ereignis) in Magento 1.7 hinzuzufügen. Wenn ein Ereignisdatum verstrichen ist, markiere ich das Produkt als deaktiviert, damit die Benutzer nicht auf die falsche Seite wechseln. Außerdem möchte ich zur Liste der zukünftigen Klassen umleiten, damit ich nicht über eine Vielzahl von 404-Fehlern auf meinem Computer verfüge Seite? ˅.

Gibt es eine Möglichkeit, ein Ereignis anzuhören, um das Produkt zu erhalten, in das der 404 geworfen werden würde, oder sollte ich irgendwo eine kostenlose Erweiterung dafür suchen? Ich habe eine Weile gesucht und keine Erweiterungen gesehen, die gut funktionieren.

Antworten:


17

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

1
Danke philwinkle Ich werde versuchen, den Kunden von Ihren ersten Vorschlägen zu überzeugen. Ich bin damit einverstanden, dass es wahrscheinlich eine schlechte Form ist, einen 404 zu entführen.
kayluhb
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.