Я объединяю некоторые простые продукты в нашем каталоге в сгруппированные продукты. Мне нужно создать переадресацию 301 с текущих простых страниц продукта на новую сгруппированную страницу продукта.
Вот пример того, что у меня есть:
- Товары a, b и c – это похожие простые товары, у каждого из которых есть собственный URL.
- Сгруппированный продукт z имеет связанные с ним a, b и c.
- Видимость для a, b и c изменена на «невидима по отдельности».
- Посещение старой ссылки для продукта c приводит к ошибке «404 Not Found».
Я хочу, чтобы на шаге 4 отображалось сообщение «301 перемещено навсегда» с URL-адресом сгруппированного продукта. Я знаю, что могу изменить записи в списке перезаписи URL-адресов вручную, но я ищу более автоматизированный подход.
Может ли кто-нибудь помочь указать мне правильное направление?
ОБНОВЛЕНИЕ:
Я обновил файл app/code/local/Mage/Catalog/controllers/ProductController.php следующим образом:
protected function _initProduct()
{
$categoryId = (int) $this->getRequest()->getParam('category', false);
$productId = (int) $this->getRequest()->getParam('id');
$params = new Varien_Object();
$params->setCategoryId($categoryId);
$parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($productId);
if(isset($parentIds[0])){
$parent = Mage::getModel('catalog/product')->load($parentIds[0]);
die($parent->getProductUrl());
}
return Mage::helper('catalog/product')->initProduct($productId, $this, $params);
}
Я бы ожидал, что это убьет любой простой просмотр страницы продукта, но это не так. Похоже, что контроллер продукта не вызывается для продуктов, установленных как невидимые. Это правильно?
ОБНОВЛЕНИЕ 2:
Если я изменю «основной» файл вместо «локальной» версии, это сработает. Любые идеи о том, почему это так?