Engelli ürünler için otomatik 301 yönlendirmeleri


14

Magento 1.7 özel bir ürün türü (olay) için otomatik yönlendirmeler eklemek çalışıyorum. Bir etkinlik tarihi geçtiğinde, ürünü devre dışı olarak işaretliyorum, böylece kullanıcılar yanlış sayfaya gitmiyor ve ayrıca gelecekteki sınıflar listesine de yönlendirmek istiyorum, bu nedenle bir site.

404'ün atılacağı ürünü almak için bir olay dinlemenin bir yolu var mı, yoksa bunun için bir yerde ücretsiz bir uzantı mı aramalıyım? Bir süredir araştırıyorum ve iyi çalışan herhangi bir uzantı görmedim.

Yanıtlar:


17

Magento.StackExchange'e hoş geldiniz!

Ne yazık ki, bunu sizin için yapacak hazır bir modül yok.

Bunu bir seçenek olarak tekrar düşünmenizi şiddetle tavsiye ederim. Kullanıcılarınız aptal değil (ne kadar aptalca davranırlarsa davransınlar) - uzun yıllar süren e-Ticaret analizi bana yaklaşık% 80'inin 404'e ulaşan kullanıcıların site içi arama çubuğuna birkaç saniye içinde vuracağını gösterdi. Daha iyi kategorilere ayırma (okuma: anahtar kelime doldurma) ile site aramanızı düzeltmeye çalışın.

Google dizinleri sonsuza kadar değil. 404'lerden korkuyorsanız, 404 sayfanızı geliştirmeyi düşünün. 404'e basarak rahatsızlık verenlere% 5-10 indirim kuponu sunarak dönüşüm potansiyelinizi artırın. Ya da daha iyisi, ürün sayfalarını devre dışı bırakmayın. Bunun yerine, satın alma yeteneğini devre dışı bırakın (örn. Stokta yok olarak ayarlayın) ve ilgili sayfaya / kategoriye bağlantı veren statik bir blok / bağlantı sağlayın.

Umurumda değil, sadece kodları verin çünkü internets:

En basit haliyle, bunu sizin için halledecek bir gözlemciye sahip bir modülü kodlamak önemsizdir:

Config.xml dosyasında olay ataması:

<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>

Uygulamanın / kod / yerel / sirketiniz / 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
Teşekkürler philwinkle. Müşteriyi ilk önerilerinize uymaya ikna edeceğim. Bir 404 kaçırmak için muhtemelen kötü bir form olduğunu kabul ediyorum.
kayluhb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.