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