1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Loading ... Loading ...

Готовы два решения «Бренды» и «Фильтры»

Сначала о первом. Может это решение не самое лучшее и не универсальное, но сделать это можно стандартными средствами скрипта Webasyst Shop-Script

1. Создаем категория товаров Бренды (производители, поставщики и т.д.)  и запоминаем ее ID

Каждый бренд – это подкатегория категории Бренды.
При создании Бренда (как и в любой категории) можно загрузить логотип, написать описание.

Теперь при создании товара в обычной категории на вкладке «Дополнительно»  в строке «Дополнительные родительские категории» нажимаем «Добавить» и выбираем категорию нужного нам Бренда.

2. Скрываем категорию Бренды в дереве каталога и на главной странице:

в файле /published/SC/html/scripts/templates/frontend/category_tree.html

код

{section name=i loop=$categories_tree}  {if $categories_tree[i].categoryID != 1}

меняем на

{section name=i loop=$categories_tree}  {if $categories_tree[i].categoryID != 1 && $categories_tree[i].categoryID != 558}

где 558 – ID категории Бренды

в файле /published/SC/html/scripts/templates/frontend/root_categories.html

код

{foreach from=$root_categories item=_cat name=_fr}

меняем на

{foreach from=$root_categories item=_cat name=_fr}{if $_cat.categoryID!=558}

где 558 – ID категории Бренды

в этом же файле внизу перед последним {/foreach}
добавляем {/if}
то есть получится

{/if}{/foreach}

Для удобства поиска можно дублировать имя бренда в поле Тэг. И тогда можно в сайдбаре вывести «фильтр» по брендам в этой категории.

Плагин собирает теги(в нашем случае бренды) всех товаров этой категории и выводит их в виде списка ссылок. При нажатии на ссылку, пользователь видит все товары с этим тэгом.

Листинг плагина function.brands.php

<?php

function smarty_function_brands( $params, &$smarty )

  {

  $disp='';

  if($params['type']=='menu'){

  if($_GET['categoryID'] && $_GET['categoryID']!=1){

  $where=' WHERE categoryID='.$_GET['categoryID'];

  } else {

  $where='';

  }

  $sql='SELECT tag_id FROM SC_tagged_objects WHERE object_type="product" AND language_id=1 AND object_id IN 

  (SELECT productID FROM SC_products '.$where.' )';

  //echo $sql;

  if($r=mysql_query($sql)){

  $sql2='SELECT DISTINCT(name) FROM SC_tags WHERE id IN(';

  $i=0;

  while($res=mysql_fetch_assoc($r)){

  if($i!=0) $sql2.=',';

  $sql2.=$res['tag_id'];

  $i++;

  }

  $sql2.=')';

  //echo $sql2;

  if($r2=mysql_query($sql2)){

  $disp.='<div class="side_box">

  <h2>Бренды</h2>

  <ul class="smenu">';

  while($res2=mysql_fetch_assoc($r2)){

  $disp.='<li><a href="/search/?searchstring='.$res2['name'].'">'.$res2['name'].'</a></li>';

  }

  $disp.='</ul></div>'; 

  }

  }

  }

  return $disp;

}

?>

Вызывать его нужно так {brands type=’menu’}
Еще один способ: вместо тегов сделать доп. характеристику и фильтр. Тогда будет фильтровать по бренду внутри категории.
Про фильтры напишу через пару дней. Тоже буде готовое решение.


RSS