Pengalihan 301 otomatis untuk produk yang dinonaktifkan

14

Saya mencoba menambahkan pengalihan otomatis untuk Jenis Produk (Acara) khusus di Magento 1.7. Ketika tanggal acara telah berlalu, saya menandai produk sebagai dinonaktifkan sehingga pengguna tidak pergi ke halaman yang salah, dan saya juga ingin mengarahkan ulang ke daftar kelas masa depan jadi saya tidak memiliki banyak kesalahan 404 pada saya situs

Apakah ada cara untuk mendengarkan suatu acara untuk mendapatkan produk di mana 404 akan dibuang, atau haruskah saya mencari ekstensi gratis untuk ini di suatu tempat? Saya telah mencari sebentar dan belum melihat ekstensi yang berfungsi dengan baik.

Kayluhb
sumber

Jawaban:

17

Selamat datang di Magento.StackExchange!

Sayangnya, tidak ada modul out-of-box yang akan melakukan ini untuk Anda.

Saya sangat mendorong Anda untuk mempertimbangkan kembali ini sebagai opsi. Pengguna Anda tidak bodoh (tidak peduli seberapa bodohnya mereka berperilaku) - bertahun-tahun analisis eCommerce telah menunjukkan kepada saya bahwa, hampir 80% dari waktu, pengguna yang mencapai 404 akan mencapai bilah pencarian situs dalam hitungan detik. Berusahalah memperbaiki pencarian situs Anda dengan kategorisasi yang lebih baik (baca: isian kata kunci).

Indeks Google tidak selamanya. Jika Anda takut 404s, pertimbangkan untuk meningkatkan halaman 404 Anda sendiri. Tingkatkan potensi konversi Anda dengan menawarkan kupon diskon 5-10% untuk mereka yang tidak nyaman dengan menekan 404. Atau, lebih baik lagi, jangan nonaktifkan halaman produk. Alih-alih, nonaktifkan kemampuan untuk membeli (mis. Persediaan habis) dan menyediakan blok / tautan statis yang menghubungkan ke halaman / kategori yang relevan.

Saya tidak peduli, cukup beri saya kode karena internet:

Itu paling sederhana pengkodean modul dengan pengamat yang akan menangani ini untuk Anda adalah sepele:

Penunjukan acara di 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() */);
        }
    }
}
Philwinkle
sumber
1
Terima kasih philwinkle. Saya akan mencoba dan meyakinkan klien untuk pergi dengan saran pertama Anda. Saya setuju bahwa itu mungkin bentuk yang buruk untuk membajak 404.
kayluhb