Tự động chuyển hướng 301 cho các sản phẩm khuyết tật


14

Tôi đang cố gắng thêm chuyển hướng tự động cho Loại sản phẩm (Sự kiện) tùy chỉnh trong Magento 1.7. Khi một ngày sự kiện đã trôi qua, tôi đánh dấu sản phẩm là bị vô hiệu hóa để người dùng không truy cập trang sai và tôi cũng muốn chuyển hướng đến danh sách các lớp trong tương lai vì vậy tôi không có nhiều lỗi 404 Địa điểm.

Có cách nào để nghe một sự kiện để nhận sản phẩm mà 404 sẽ bị ném hay tôi nên tìm kiếm một phần mở rộng miễn phí cho điều này ở đâu đó? Tôi đã tìm kiếm một lúc và không thấy bất kỳ tiện ích mở rộng nào hoạt động tốt.

Câu trả lời:


17

Chào mừng bạn đến với Magento.StackExchange!

Thật không may, không có mô-đun ngoài hộp nào sẽ làm điều này cho bạn.

Tôi rất khuyến khích bạn xem xét lại điều này như là một tùy chọn. Người dùng của bạn không ngu ngốc (dù họ cư xử ngu ngốc đến mức nào) - nhiều, nhiều năm phân tích Thương mại điện tử đã cho tôi thấy rằng, gần 80% thời gian, người dùng đạt 404 sẽ chạm vào thanh tìm kiếm trên trang web trong vài giây. Đặt nỗ lực của bạn vào việc sửa chữa tìm kiếm trang web của bạn với phân loại tốt hơn (đọc: nhồi từ khóa).

Google chỉ mục không phải là mãi mãi. Nếu bạn sợ 404, hãy xem xét việc tự tạo trang 404 của mình. Tăng tiềm năng chuyển đổi của bạn bằng cách cung cấp phiếu giảm giá 5-10% cho những người không có kinh nghiệm bằng cách nhấn 404. Hoặc, tốt hơn nữa, đừng vô hiệu hóa các trang sản phẩm. Thay vào đó, hãy vô hiệu hóa khả năng mua hàng (ví dụ như được đặt là hết hàng) và cung cấp một khối / liên kết tĩnh liên kết đến trang / danh mục có liên quan.

Tôi không quan tâm, chỉ cung cấp cho tôi mã bởi vì internets:

Đơn giản nhất là mã hóa một mô-đun với một người quan sát sẽ xử lý việc này cho bạn là chuyện nhỏ:

Chỉ định sự kiện trong 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>

ứng dụng / mã / cục bộ / 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
Cảm ơn philwinkle. Tôi sẽ cố gắng thuyết phục khách hàng thực hiện những gợi ý đầu tiên của bạn. Tôi đồng ý rằng đó có thể là hình thức xấu để chiếm đoạt 404.
kayluhb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.