Перейти к содержанию
Форум поддержки пользователей VamShop

Реально ли переделать навигацию по товару?


Рекомендуемые сообщения

Стоит задача сделать кольцевую перелинковку товаров внутри категории. Т.е. есть 10 товаров, мне нужно сделать, чтобы товар 1 ссылался на товар 2, 3, 4, 5. Товар 2 ссылался на 3,4,5,6. Товар 3 на 4,5,6,7 и т.д. Товар 10 ссылался на 1,2,3,4.

Сейчас если включить навигацию по товару там проставляются ссылки на первый, предыдущий, следующий, последний. Реально ли переделать, чтобы внизу карточки товара выводились 4 товара (как я описал) по типу "рекомендованных товаров" или "с этим товаром также покупают". Т.е. выводить товар как в списке категории - Название, краткое описание, картинка.

Ссылка на сообщение
Поделиться на другие сайты

Ну так наверное и нужно использовать сопутствующие товары.

В Админке - Каталог выбираете товар и справа будет кнопка Сопутствующие.

Ещё в Админке - Настройки - Разное включите опцию Обратные перекрёстные ссылки.

Ссылка на сообщение
Поделиться на другие сайты

Это немного не то. У меня в каталоге уже более 1000 товаров. Сколько уйдет времени, чтобы проставить для каждой позиции сопутствующий товар? К тому же при включении перекрестных ссылок перелинковка получится не замкнутой в кольцо...

Ссылка на сообщение
Поделиться на другие сайты
  • 2 weeks later...

Пытаюсь сделать, что описал в первом сообщении. Решил делать на основе рекомендованных товаров.

Разобрался, что эта функция делает выборку рекомендованных товаров из базы

function getCrossSells() {

global $vamPrice;

$cs_groups = "SELECT products_xsell_grp_name_id FROM ".TABLE_PRODUCTS_XSELL." WHERE products_id = '".$this->pID."' GROUP BY products_xsell_grp_name_id";

$cs_groups = vamDBquery($cs_groups);

$cross_sell_data = array ();

if (vam_db_num_rows($cs_groups, true)>0) {

while ($cross_sells = vam_db_fetch_array($cs_groups, true)) {

$fsk_lock = '';

if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {

$fsk_lock = ' and p.products_fsk18!=1';

}

$group_check = "";

if (GROUP_CHECK == 'true') {

$group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";

}

$cross_query = "select p.products_fsk18,                                 p.products_tax_class_id,

                                p.products_id,

                                p.products_image,

                                pd.products_name,

                                pd.products_short_description,

p.products_quantity,

                                p.products_fsk18,p.products_price,p.products_vpe,

                p.products_vpe_status,

                                p.products_vpe_value,

                                                xp.sort_order from ".TABLE_PRODUCTS_XSELL." xp, ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd

                                            where xp.products_id = '".$this->pID."' and xp.xsell_id = p.products_id ".$fsk_lock.$group_check."

                                            and p.products_id = pd.products_id and xp.products_xsell_grp_name_id='".$cross_sells['products_xsell_grp_name_id']."'

                                            and pd.language_id = '".$_SESSION['languages_id']."'

                                            and p.products_status = '1'

                                            order by xp.sort_order asc";

$cross_query = vamDBquery($cross_query);

if (vam_db_num_rows($cross_query, true) > 0)

$cross_sell_data[$cross_sells['products_xsell_grp_name_id']] = array ('GROUP' => vam_get_cross_sell_name($cross_sells['products_xsell_grp_name_id']), 'PRODUCTS' => array ());

while ($xsell = vam_db_fetch_array($cross_query, true)) {

$cross_sell_data[$cross_sells['products_xsell_grp_name_id']]['PRODUCTS'][] = $this->buildDataArray($xsell);

}

}

return $cross_sell_data;

}

}

В принципе в этом коде мне понятно, что делается, но вот переделать, не получается.

Выбрать товары одной категории из базы понятно. Но дальше моих скудных знаний php не хватает.

Может поможете написать код? Наверняка не мне одному нужна кольцевая перелинковка товаров для продвижения НЧ запросов.

Как я представляю, нужно:

1. Делаем выборку из базы всех товаров одной категории

2. Запихиваем все это в массив, таким образом, чтобы ID товаров стояли от меньшего к большему, например:

    3, 8, 25, 56, 1234, 4567, 5677 и т.д.

3. Дальше нужно из массива выбрать товары с ID большим чем ID к которому мы обратились. Например, заходим в карточку товара с ID = 8, соответсвенно нам на карточке товара нужно выдать товары с ID 25, 56, 1234, 4567

4. Дальше задача усложняется =) Надо как-то понять, что если это если это последний ID в массиве, то выдавать товары с первыми 4 ID, т.е, если мы обратились к товару с ID 5677, то выдавать нужно 3,8,25,56

есть варианты решения?

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...