無効な製品の自動301リダイレクト


14

Magento 1.7でカスタム製品タイプ(イベント)の自動リダイレクトを追加しようとしています。イベントの日付が過ぎると、ユーザーが間違ったページに移動しないように製品を無効としてマークします。また、将来のクラスのリストにリダイレクトして、404エラーが大量に発生しないようにします。地点。

404がスローされる製品を取得するためのイベントをリッスンする方法はありますか、またはこのための無料の拡張機能をどこかで探す必要がありますか?私はしばらく探していましたが、うまく機能する拡張機能を見ていません。

回答:


17

Magento.StackExchangeへようこそ!

残念ながら、これを行うためのすぐに使用できるモジュールはありません。

これをオプションとして再考することを強くお勧めします。ユーザーは愚かではありません(どんなに愚かな振る舞いでも)-長年のeコマース分析により、ほぼ80%の時間で404に達するユーザーは数秒以内にオンサイト検索バーに到達することがわかりました。より良い分類でサイト検索を修正するように努力してください(キーワードスタッフィングを読んでください)。

Googleインデックスは永遠ではありません。404が怖い場合は、404ページ自体を整理することを検討してください。404を押して不便な人に5〜10%の割引クーポンを提供することで、コンバージョンの可能性を高めます。または、さらに良いことに、製品ページを無効にしないでください。むしろ、購入する機能を無効にし(在庫切れとして設定するなど)、関連するページ/カテゴリにリンクする静的ブロック/リンクを提供します。

インターネットは以下の理由でコードを提供するだけです。

最も簡単なのは、これを処理するオブザーバーを使用してモジュールをコーディングすることです。

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
philwinkleに感謝します。私はあなたの最初の提案で行くようにクライアントを説得しようとします。私はそれが404をハイジャックするためにおそらく悪い形だということに同意
kayluhb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.