Переадресация на нужную витрину по типу товара

Нам нужно сделать переадресацию по типу товара.

Продаем мы 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 ответ

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите