Приветствую)
Подскажите, пожалуйста, как сделать автоматический 301 редирект для товаров, которые имеют статус Скрыто на страницу родительской категории.
А не думали, что может быть корректнее будет там инфу разместить о том, что товар выведен из оборота и вот посмотрите другие? У страницы же трафик может быть, а 301 редирект укажет системе что страница перемещена, а там контент другой и ваше сео относительно этой страницы полететь может
Это нужно только для старых товаров, у которых уже нет трафика, проверяю кроме Статуса еще один статус (собственная доработка)
В модуле Мои изменения
if (AREA == ‘C’ && $product_data[‘status_1c’] == ‘R’ && $product_data[‘status’] == ‘H’) {
if (!empty($product_data[‘category_ids’])) {
foreach ($product_data[‘category_ids’] as $dop_category_id) {
fn_redirect(fn_url(“categories.view&category_id=” . $product_data[‘main_category’], “C”, fn_get_storefront_protocol(), $lang_code), false, true);
}
}
}
Но при таком подходе - не работает штатный обмен с 1С, как только встречается первый такой товар - импорт сбоит.
Подскажите, пожалуйста, как болле грамотно реализовать.
Спасибо!
Это вы хук какой-то используете?
Делайте в контроллере products.post.php
Что-то типа такого
<?php
use Tygh\Registry;
if (!defined('BOOTSTRAP')) { die('Access denied'); }
if ($mode == 'view') {
$product_data = Tygh::$app['view']->getTemplateVars('product');
if (AREA == 'C' && $product_data['status_1c'] == ‘R’ && $product_data['status'] == 'H') {
if (!empty($product_data['category_ids'])) {
foreach ($product_data['category_ids'] as $dop_category_id) {
fn_redirect(fn_url("categories.view&category_id=" . $product_data['main_category'], "C",
fn_get_storefront_protocol(), $lang_code), false, true);
}
}
}
}
Спасибо большое!