Переадресация на нужную витрину по типу товара
Нам нужно сделать переадресацию по типу товара.
Продаем мы 3 вида товаров: велосипеды, запчасти для велосипедов, самокаты.
Как у нас все устроено:
Сейчас у нас 3 витрины с одним шаблоном, все товары доступны на каждой из них, но категории для каждой витрины свои.
Таким образом, мы сможем рекомендовать самокаты на витрине велосипедов, в товаре велосипед.
Теперь нам нужно чтобы, при переходе на товар Велосипед, из витрины запчасти или из витрины самокаты была переадресация на соответсвующую витрину и соответсвующий товар.
Мы решили задачу таким образом:
В трёх витринах выставили глобальный параметр www который равен поддомену. Создали невидимую характеристику для товара _re которая может иметь значения: velosiped или zapchasty или samokat Если мы хотим переадресовать не по типу товара Сделали условие для выключение переадресации на нескольких товарах. Если доп параметр товара re=0 то выключена. {if $product.params.re != '0'} {*Если не выключено*} {if $product.features['_re']} {if $product.features['_re'] != $wa->globals("www")}{*Если установленная характеристика _re не равна 'WA->GLOBAL' *} <!--$product.features['_re'] --> <meta http-equiv="refresh" content="0;url=http://{$product.features['_re']}.velo*******.ru{$wa->shop->productUrl($product)}" /> <link rel="canonical" href="http://{$product.features['_re']}.velo*******.ru{$wa->shop->productUrl($product)}"/> {/if} {else}{*Переадресация автоматически по типу товара если ничего не указанно *} {if $product.type_id == '10'} {if $wa->globals("www") != zapchasty} {*Если домен неправильный то выводить*} <!--$product.type_id = 10 --> <meta http-equiv="refresh" content="0;url=http://zapchasty.velo*******.ru{$wa->shop->productUrl($product)}" /> <link rel="canonical" href="http://zapchasty.velo*******.ru{$wa->shop->productUrl($product)}"/> {/if} {elseif $product.type_id == '15'} {if $wa->globals("www") != samokat} <!--$product.type_id = 15 --> <meta http-equiv="refresh" content="0;url=http://samokat.velo*******.ru{$wa->shop->productUrl($product)}" /> <link rel="canonical" href="http://samokat.velo*******.ru{$wa->shop->productUrl($product)}"/> {/if} {elseif $product.type_id == '4'} {if $wa->globals("www") != velosiped} <!--$product.type_id = 4 --> <meta http-equiv="refresh" content="0;url=http://velosiped.velo*******.ru{$wa->shop->productUrl($product)}" /> <link rel="canonical" href="http://velosiped.velo*******.ru{$wa->shop->productUrl($product)}"/> {/if} {/if} {/if} {/if}
Есть огромный минус этого решения, загружается сначала первая страница, потом перенаправляется на вторую.
Думали может для таких товаров сделать в шаблоне условие, чтобы была только одна строка с мета refresh/
Вопрос в общем такой. Каким образом в шаблоне используя смарти делать сразу 301 редирект без загрузки страницы, возможно ли это вообще? То есть, вместо этих строк:
<meta http-equiv="refresh" content="0;url=http://velosiped.velo*******.ru{$wa->shop->productUrl($product)}" /> <link rel="canonical" href="http://velosiped.velo*******.ru{$wa->shop->productUrl($product)}"/>
Добавить что-то типа:
{wa->redirect->('http://{$product.features['_re']}.velo*******.ru{$wa->shop->productUrl($product)}')}
1 ответ
Для получения поддержки по внесению изменений в исходный код программных продуктов можно обратиться к экспертам Webasyst.