HostCMS
Выдано 65 986 лицензий.
На главную страницу Карта сайта

Сортировка товаров на сайте. Товары с нулевой ценой - в конец.

Список форумовОбщие вопросы по системе управления сайтом HostCMS

Сортировка товаров на сайте. Товары с нулевой ценой - в конец.
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

Авторизация
Логин: Пароль:  

Список форумовОбщие вопросы по системе управления сайтом HostCMS

О нас говорят!

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

Ярослав Шевченко
г. Киев

Акции партнеров

Обработка прайс-листов поставщиков

Скидка 10% на программы обработки прайс-листов при покупке HostCMS в ElbuzGroup.

Скидка 10% при покупке программы для автоматизации обработки
прайс-листов поставщиков E-Trade PriceList Importer редакции Professional, при покупке любой редакции HostCMS в компании ElbuzGroup.

Рекомендуем хостинг

SPRINTHOST.RU

Тариф «HostCMS.Mini» за 70 руб./мес., Тариф «HostCMS» за 250 руб./мес.

Создаете сайты?

У нас есть партнерское предложение по поставке системы управления сайтом:

О HostCMS
Редакции HostCMS
Возможности
Поддержка
Области применения
Партнерская программа
Заказать сайт