| Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
hanckey313
 Регистрация: 30.12.2011 | Подскажите, как средствами цмс организовать сортировку товаров при выводе их на страницу, чтобы цены шли по-возрастанию, но при этом товары с ценой 0руб., например, были в самом конце?
Пример:
1
2
3
4
5
0
0
0
Просмотрел все возможные параметры к методу showshop — пока ничего не придумал для этого. |
| Профиль |
Сообщений: 6 |
Дата создания: 30.12.2011 10:11:02 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
natalya
 Регистрация: 30.11.1999 | hanckey313 писал(а):
как средствами цмс организовать сортировку товаров при выводе их на страницу, чтобы цены шли по-возрастанию, но при этом товары с ценой 0руб. — такое можно организовать средствами XSLT(но в том случае, если у вас в магазине при выводе содержимого групп нет разбиения товаров по страницам, т.е. все имеющиеся в группе товары всегда помещаются на одной странице). В коде XSL-шаблона вместо одного вызова тэмплейта для показа товаров(<xsl:apply-templates select="item" /> ) вам нужно последовательно разместить два — оба с предикатами по цене: в одном нужно указать, чтобы она была больше нуля, а в другом — что равна ему.
А в метод ShowShop нужно передать параметры для задания сортировки по цене(если они у вас все в одной валюте):
$param['items_field_order'] = 'shop_items_catalog_price';
$param['items_order'] = 'Asc'; |
| Профиль |
Сообщений: 2634 |
Дата создания: 30.12.2011 13:24:28 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
dogstudio
 Регистрация: 17.12.2008 | Можно задать товарам с нулевой ценой какую-нибудь нереально большую цену в магазине — например, 999 999 999,99. А в XSL проверять — если цена равна этому значению, то показывать ноль и не давать добавлять в корзину. Тогда и разбивка по страницам будет доступна. http://superweb.pro/ — сайты на HostCMS под ключ |
| Профиль |
Сообщений: 373 |
Дата создания: 30.12.2011 13:52:11 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
hanckey313
 Регистрация: 30.12.2011 | Спасибо за ответы. Товары нужно добавлять в корзину и разбивать по страницам, в общем то в этом и проблема… м.б. есть еще какие то варианты? |
| Профиль |
Сообщений: 6 |
Дата создания: 30.12.2011 13:58:48 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
hanckey313
 Регистрация: 30.12.2011 | Желательно их отсортировать на уровне логики еще, м.б. какой хитрый извращенный запрос через параметры сделать? |
| Профиль |
Сообщений: 6 |
Дата создания: 30.12.2011 14:05:38 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
dogstudio
 Регистрация: 17.12.2008 | Товары с нулевой ценой нужно добавлять в корзину? Если да — то все то же, проверяем цену при добавлении, если она равна этому заранее заданному очень большому значению — то в корзине тоже выводим ноль, и к общему счету плюсуем ноль. И в письмах клиенту и администратору выполняем ту же проверку и выводим ноль. http://superweb.pro/ — сайты на HostCMS под ключ |
| Профиль |
Сообщений: 373 |
Дата создания: 30.12.2011 14:20:09 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
natalya
 Регистрация: 30.11.1999 | Прежде чем пытаться сконструировать извращенский запрос через параметры, попробуйте просто на SQL-е написать запрос(например, с использованием оператора IF и псевдонима поля) к таблице shop_items_catalog_table, который будет сортировать товары нужным вам образом. После того, как вы его напишите, — обращайтесь, поможем передать его в конструктор.
|
| Профиль |
Сообщений: 2634 |
Дата создания: 30.12.2011 14:25:30 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
hanckey313
 Регистрация: 30.12.2011 | natalya,если можно — синтаксис IF'a скиньте |
| Профиль |
Сообщений: 6 |
Дата создания: 10.01.2012 10:51:25 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
hanckey313
 Регистрация: 30.12.2011 | Вот, например, такой запрос:
SELECT * FROM `shop_items_catalog_table` ORDER BY CASE WHEN `shop_items_catalog_price` = 0 THEN '999999999' END, `shop_items_catalog_price`
как его использовать? |
| Профиль |
Сообщений: 6 |
Дата создания: 02.02.2012 11:49:00 |
| Re: Сортировка товаров на сайте. Товары с нулевой ценой - в конец. | |
|
natalya
 Регистрация: 30.11.1999 | hanckey313 писал(а):
как его использовать? — попробуйте в метод ShowShop передать параметр:
$param['items_field_order'] = 'CASE WHEN shop_items_catalog_price =0 THEN 999999999 END , shop_items_catalog_price';
Но в методе по-любому произойдет еще и добавление направления сортировки(ASC, DESC или Rand()). |
| Профиль |
Сообщений: 2634 |
Дата создания: 03.02.2012 15:55:38 |