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

Сортировка товара в списке товаров. Как сделать?


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

А вот это не знаю, к сожалению.

Видел ссылку где польский пользовательно VaM Shop сделал такое, но как он делал, я не знаю.

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

Да я ссылку уже не помню ведь, не записал тогда.

Можно вообще взять за основу тему про сортировку по алфавиту на forum.oscommerce.ru

Но конечно только за основу, это не готовый вариант.

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

Это конечно вряд ли поможет, но вот нашёл ссылку польского пользователя VaM Shop, он у себя сделал сортировку.

Вот - http://www.e-sprzedawca.com.pl/index.php/cat/c151_GamePad-y.html

и вот более ранний вариант - http://razdwatrzy.nazwa.pl/shop2/index.php/cat/c5_Testowa.html

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

Саша, а реально сделать сортировку товара по промотрам, то есть чем чаще просматривается товар тем выше в списке товаров в магазине? Есть по цене, порядок, имя и тд, можно один из этих пунктов переименовать и в коде переписать переменные? По аналогии в админке Статистика - Статистика товаров. Насколько это тяжело выполнимо?

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

Элементарно.

admin/includes/modules/new_category.php

Ищешь:

<?php
$order_array='';
$order_array=array(array('id' => 'p.products_price','text'=>TXT_PRICES),
                  array('id' => 'pd.products_name','text'=>TXT_NAME),
                  array('id' => 'p.products_ordered','text'=>TXT_ORDERED),
                  array('id' => 'p.products_sort','text'=>TXT_SORT),
                  array('id' => 'p.products_weight','text'=>TXT_WEIGHT),
                  array('id' => 'p.products_quantity','text'=>TXT_QTY));
$default_value='pd.products_name';
?>[/code] Добавляешь туда новое поле:
[code]<?php
$order_array='';
$order_array=array(array('id' => 'p.products_price','text'=>TXT_PRICES),
                  array('id' => 'pd.products_name','text'=>TXT_NAME),
                  array('id' => 'p.products_ordered','text'=>TXT_ORDERED),
                  array('id' => 'pd.products_viewed','text'=>TXT_VIEWED),
                  array('id' => 'p.products_sort','text'=>TXT_SORT),
                  array('id' => 'p.products_weight','text'=>TXT_WEIGHT),
                  array('id' => 'p.products_quantity','text'=>TXT_QTY));
$default_value='pd.products_name';
?>

И соответственно определяешь константу TXT_VIEWED.

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

Про сортировку Андрей уже ответил, спасибо!

Я только чуть добавлю.

Ты можешь при создании категории в админке выбирать, как будет сортироваться товар в этой категории.

Вот Андрей привёл вариант, как добавить новую опцию в Сортирока товара.

TXT_VIEWED нужно добавить в /lang/russian/admin/categories.php, т.е. внизу, до ?>, нужно добавить:


define('TXT_VIEWED','Просмотры');
[/code]

А вот по поводу статистики не совсем ясно.

Какая именно стататика имеется в виду?

Ведь уже есть отчёт - Админка - Разное - Статистика - Просмотренные товары.

Вот здесь как раз и расположен список товаров, отсортированных по просмотрам.

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

ABerezin, спасибо!

Но маленькое но - получилось так что наиболее просматриваемые товары получились в конце списка, а наименее просматриваемые - в начале. Идея очень классная, например в нашем магазине есть товары просматриваемые 10-20 раз, а есть 100-200-300. В приведенном выше примере наименее просматриваемые товары находятся вначале и при увеличении просмотров продвигаются вниз.

Но если есть еще идея (нужна немного под другой проект) что-бы посортировать наоборот буду премного благодарен! Как туда можно правильно забить ASC или DESC как в статистике просмотренных товаров?

VaM, благодарю, разобрался!

А я по поводу статистики поисковых запросов, что ищут поиском по магазину посетители, что-бы вывести их непосредственно на страницы магазина для всеобщего обозрения. Если это очень сложно, то сделаю отдельную страницу в Информационных страницах и вручную пропишу.

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

Как туда можно правильно забить ASC или DESC как в статистике просмотренных товаров?

Там (в меню) два поля сортировки: по чему сортировать и как сортировать (ASC/DESC).

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

ABerezin, Вы немного не так поняли.

Я добавил поле

array('id' => 'pd.products_viewed','text'=>TXT_VIEWED),

но оно сортирует не по уменьшению просмотров, а наоборот: вначале раздела может идти товар с 1 просмотром, а вконце с 2000 просмотров, а я не знаю как сделать наоборот.

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

ABerezin и VaM, прошу прощения, сразу не рассмотрел! Наверное еще не совсем проснулся!

Всем большое спасибо за помощь!

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

Не создавая новую тему спрошу здесь по сортировкам:

Как добавить в сортировку по порядку кроме того что есть ASC еще и rand()  - что-бы товары с одинаковой сортировкой постоянно рандомно менялись

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

У меня тоже вопрос по сортировке. Допустим, в настройках категории можно выбрать сортировать по кол-ву на складе. Нужно сделать, чтобы сортировка была по кол-ву на складе и по цене. Т.е. чтобы вначале отображались товары которые есть в наличии и по цене от меньшей к большей. Это возможно?

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

Только править /includes/modules/default.php

Менять например:


    $sorting = ' ORDER BY '.$sorting_data['products_sorting'].' '.$sorting_data['products_sorting2'].' ';
[/code] на:
[code]
    $sorting = ' ORDER BY p.products_quantity, p.products_price';

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

Я попроще сделал и старые сортировки не потерял. Если кому надо

admin/includes/modules/new_category.php

Ищешь:

<?php
$order_array='';
$order_array=array(array('id' => 'p.products_price','text'=>TXT_PRICES),
                  array('id' => 'pd.products_name','text'=>TXT_NAME),
                  array('id' => 'p.products_ordered','text'=>TXT_ORDERED),
                  array('id' => 'p.products_sort','text'=>TXT_SORT),
                  array('id' => 'p.products_weight','text'=>TXT_WEIGHT),
                  array('id' => 'p.products_quantity','text'=>TXT_QTY));
$default_value='pd.products_name';
?>[/code] Добавляешь туда новое поле:
[code]<?php
$order_array='';
$order_array=array(array('id' => 'p.products_price','text'=>TXT_PRICES),
                  array('id' => 'pd.products_name','text'=>TXT_NAME),
                  array('id' => 'p.products_ordered','text'=>TXT_ORDERED),
                  array('id' => 'p.products_sort','text'=>TXT_SORT),
                  array('id' => 'p.products_weight','text'=>TXT_WEIGHT),
                  array('id' => 'case when p.products_quantity <= 0 then 0 else 1 end desc, p.products_price','text'=>TXT_QTYPRICES),
                  array('id' => 'p.products_quantity','text'=>TXT_QTY));
$default_value='pd.products_name';
?>

И соответственно определяешь константу TXT_QTYPRICES.

У меня отлично работает...

Подскажите еще, где настроить сортировку, которая открыта для пользователя

Сортировка: имя (по возрастанию) | имя (по убыванию) | цена (по возрастанию) | цена (по убыванию)

Где именно идет сортировка? Хочу убрать сортировку по имени и сделать по наличию...

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

Да, так конечно правильнее даже.

В /includes/modules/default.php надо копаться.

Ну и затем в шаблоне /templates/шаблон/module/product_listing/

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

Смотрел этот файл, только так и не понял в каком именно месте там сортировка идет. Ссылки формируются в файле product_listing.php, а дальше я так и не нашел...

Шаблон естественно поправил.

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

И соответственно определяешь константу TXT_QTYPRICES.

У меня отлично работает...

Не получается.

Определяешь константу- это так:

добавить в /lang/russian/admin/categories.php, т.е. внизу, до ?>,

define('TXT_QTYPRICES','По наличию'); ?

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