Форум русской поддержки Joomla!® CMS
11.12.2016, 10:03:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

[Решено] Как сортировать товар в новой версии?

 (Прочитано 9586 раз)
0 Пользователей и 1 Гость смотрят эту тему.
fotoweb
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 27


« : 06.03.2012, 20:53:19 »

Здравствуйте!

Подскажите пожалуйста как сортировать продукты в новой версии? Раньше были стрелочки, если не ошибаюсь, которыми можно было как в Joomla поднимать или опускать товар по списку и в зависимости от своего положения в этом списке, данный товар в такой же последовательности выводился на страницу.
Сейчас же у меня каждому продукту присвоено какое-то id и на странице отображаются они в порядке возрастания id и в админке ВМ я не вижу как я могу изменить последовательно или поменять этот id. Можно конечно поправить в БД, но это же не выход.

т.е. например я имею товар:
id  name
1  яблоко
2  огурец
3  морковка.

на странице выводятся так: яблоко(id=1), огурец(id=2), морковка(id=3).

Как сделать так, чтоб можно было вывести в другом порядке, например огурец (id=2), яблоко (id=1), морковка (id=3)?

И второй вопрос, не совсем по данной теме, но может подскажите ссылочку - к продукту нужно прикрепить PDF файл. Как это сделать? Я пока исхитрился и добавляю просто ссылку в кастомное поле и потом с помощью ПХП обрабатываю эту ссылку и вывожу как кликабельную иконку PDF, которая ведет к PDF файлу.
« Последнее редактирование: 21.03.2012, 23:32:29 от beagler » Записан
 
fotoweb
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 27


« Ответ #1 : 21.03.2012, 18:25:56 »

Как оказалось это баг в VM 2.0
Решение найдено:
http://forum.virtuemart.net/index.php?topic=98757.0
можно закрывать.
Записан
Polosat
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 202


Мечты - это то, из чего сделано будущее


« Ответ #2 : 21.03.2012, 22:34:51 »

лучше бы отписали здесь готовое решение.

Кстати, да. Решение рабочее после этого сортировка товаров в версии 2.0.2 оживает
« Последнее редактирование: 21.03.2012, 22:38:33 от Polosat » Записан
fotoweb
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 27


« Ответ #3 : 21.03.2012, 23:02:32 »

Polosat, я ссылочку дал на статью автора фикса.
По смыслу он добавляет новое поле в сортировку "ordering" (которую нужно выбрать в настройках сортировки) и включает сортировку в mysql запросе, а также переделал функцию сохранения сортировки.
Единственный минус еще не учтенный - после редактирования товара, данный товар получает снова значение order = 1. Приходится вручную прописывать ему предидущее значение.

Вот, что нужно сделать:

helpers/shopfunctions.php, line 1169 поменять на:

Код:
'product_unit', 'product_packaging', 'p.virtuemart_product_id','ordering');



/models/products.php, function saveorder поменять на:

   
Код:
function saveorder($cid , $orders) {
JRequest::checkToken() or jexit( 'Invalid Token' );

$virtuemart_category_id = JRequest::getInt('virtuemart_category_id', 0);

$q = 'SELECT `id`,`ordering` FROM `#__virtuemart_product_categories`
WHERE virtuemart_category_id='.(int)$virtuemart_category_id.'
ORDER BY `ordering` ASC';
$this->_db->setQuery($q);
$pkey_orders = $this->_db->loadObjectList();

$tableOrdering = array();
foreach ($pkey_orders as $order) $tableOrdering[$order->id] = $order->ordering;
// set and save new ordering
foreach  ($orders as $key => $order) $tableOrdering[$key] = $order;
asort($tableOrdering);
$i = 1 ; $ordered = 0 ;
foreach  ($tableOrdering as $key => $order) {
$this->_db->setQuery('UPDATE `#__virtuemart_product_categories`
SET `ordering` = '. $i.'
WHERE `id` = ' . (int)$key . ' ');
if (! $this->_db->query()){
vmError($this->_db->getErrorMsg());
return false;
}
$ordered ++ ;
$i++ ;
}
if ($ordered) $msg = JText::sprintf('COM_VIRTUEMART_ITEMS_MOVED', $ordered);
else $msg = JText::_('COM_VIRTUEMART_ITEMS_NOT_MOVED');
JFactory::getApplication()->redirect('index.php?option=com_virtuemart&view=product&virtuemart_category_id='.$virtuemart_category_id, $msg);

}


« Последнее редактирование: 21.03.2012, 23:06:13 от fotoweb » Записан
Polosat
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 202


Мечты - это то, из чего сделано будущее


« Ответ #4 : 23.03.2012, 00:57:45 »

Цитировать
данный товар получает снова значение order = 1.

жутко неудобная штука когда сортируешь и добавляешь новые товары, ну хоть так... всё лучше чем вообще с неживой сортировкой
Записан
fotoweb
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 27


« Ответ #5 : 23.03.2012, 01:26:20 »

жутко неудобная штука когда сортируешь и добавляешь новые товары, ну хоть так... всё лучше чем вообще с неживой сортировкой
ну, если есть время и умения писать на PHP, то можно сделать каунтер и
для нового товара id присваивать значение max_id+1,
а для редактируемого id=previous_id,
где max_id - максимальное значение id в списке продуктов данной категории
previous_id - значение id до редактирования.
Записан
Polosat
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 202


Мечты - это то, из чего сделано будущее


« Ответ #6 : 23.03.2012, 13:07:39 »

ну, если есть время и умения писать на PHP, то можно сделать каунтер и
для нового товара id присваивать значение max_id+1,

проще дождаться стабильной новой версии - там глядишь эти дела и поправят
Записан
kaprikorn
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 39


www.cleverscript.ru


« Ответ #7 : 04.09.2012, 12:59:26 »

Здравствуйте,
helpers/shopfunctions.php, line 1169 - можно плз полный путь до файла? Не понятно вадминка это или нет.
/models/products.php - я так пологаю админка, но все же.

Сделал как описано выше, (virtuemart 2.0.2) никаких изменений не заметил, как отсутствовал порядок, так и отстутствует.

Еще вызывает сомнение вот это поле которое добавляем: 'ordering' , это же поле есть только в таблице #__virtuemart_categories, а нужно ведь не категории сортировать, а ТОВАРЫ в категории.
Записан
b.carotin
Захожу иногда
**

Репутация: +2/-0
Offline Offline

Сообщений: 18


« Ответ #8 : 10.09.2012, 18:21:40 »

Если кому понадобиться. Сортировка дочерних товаров по-умолчанию: по алфавиту и нигде в админке не настраивается. Идете administrator/components/com_virtuemart/models файл product.php. Строчка 1923 (virt 2.0.10) и меняете "ordering DESC" ($q .= ' GROUP BY `virtuemart_product_id` ORDER BY ordering DESC'Wink на "virtuemart_product_id" если нужно по id, либо другую переменную, нужную Вам.
Записан
Фенест
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 6



« Ответ #9 : 19.02.2013, 09:34:16 »

Заходите в Настройки / Настройки, переходите на вкладку Настройки заказа и в поле Порядок сортировки по умолчанию выбираете Название, Дата добавления или что кому нужно. Если выбрать Артикул и каждому товару в панели его редактирования в поле Артикул присвоить порядковый номер, то товары будут отображаться в категории согласно этого номера.
Записан
Dobreff
Давно я тут
****

Репутация: +8/-4
Offline Offline

Сообщений: 212


« Ответ #10 : 18.03.2013, 13:00:43 »

Сортировка живет своей жизнью!
Сортирует (например по дате) только первый товар, дальше как попало.
Так же и по Цене, первую выводит самую большую, все, что после как попало!
Записан
rsn
Осваиваюсь на форуме
***

Репутация: +10/-0
Offline Offline

Пол: Мужской
Сообщений: 159



« Ответ #11 : 05.04.2013, 10:24:48 »

Сортировка живет своей жизнью!
Захожу в админку - товары. Вижу сортировку по id по возрастанию.
Меняю внизу кол-во строк с 20 на 50, сортировка меняется - id по убыванию ))))
Вот точно подмечено, живёт своей жизнью )))
Пипец какой-то. Это бред, но мне пришлось делать вручную вариант с артикулами, который где-то уже на форуме упоминался. Более старым товарам (которые хочу отобразить в конце) присваивать большие артикулы, а более новым (которые хочу отобразить в начале) - на убывание, а потом выставить в настройках сортировку по артикулу... нда....
И всё ради такой просто задачи отсортировать товары в категориях по дате добавления по убыванию.
Записан
rsn
Осваиваюсь на форуме
***

Репутация: +10/-0
Offline Offline

Пол: Мужской
Сообщений: 159



« Ответ #12 : 07.04.2013, 22:04:32 »

Хочу обратить внимание на интересную деталь в последней версии VirtueMart (если бы точным 2.0.20b).

Когда в админке заходим в VirtueMart - Товары, то изначально в списке нет возможности задать свой порядок сортировки.
Но если выбрать в фильтре вверху какую-нибудь категорию, то такая возможность задать порядок появляется.

Лично для меня открытие этого так скажем ньюанса сняло очень много вопросов по сортировке)))
Записан
Рома1981
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 41


« Ответ #13 : 12.04.2013, 19:47:43 »

У меня сортирует по названию странно. Имею например  товар 2.......товар 105 (у меня есть пробелы в номерах). ПОследовательность на сайте такая:  товар 10, товар 100, товар 101, товар 105, товар 11, товар 12..... товар 8.
В админке вручную задал последовательнеость, но она до лампочки.
Так же навигация Захожу в карточку первого по списку товара, товар 10, вправо переход на 100, перехожу, и все оказывается это последний пункт хотя после 100 идет 101, а  влево с 100 ведет не на 10 с которого пришли, и не на 70 который по факту идет до 100 а на 8 (последний номер в первом десятке который в списке категории идет последним).
« Последнее редактирование: 12.04.2013, 22:03:06 от Рома1981 » Записан
n4speed
Новичок
*

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 5



« Ответ #14 : 14.12.2013, 00:42:53 »

Хочу обратить внимание на интересную деталь в последней версии VirtueMart (если бы точным 2.0.20b).

Когда в админке заходим в VirtueMart - Товары, то изначально в списке нет возможности задать свой порядок сортировки.
Но если выбрать в фильтре вверху какую-нибудь категорию, то такая возможность задать порядок появляется.

Лично для меня открытие этого так скажем ньюанса сняло очень много вопросов по сортировке)))

Большое спасибо за подсказку, действительно снимает очень много вопросов связанных с сортировкой.
Записан
Фенест
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 6



« Ответ #15 : 14.12.2013, 05:10:32 »

Хочу обратить внимание на интересную деталь в последней версии VirtueMart (если бы точным 2.0.20b).

Когда в админке заходим в VirtueMart - Товары, то изначально в списке нет возможности задать свой порядок сортировки.
Но если выбрать в фильтре вверху какую-нибудь категорию, то такая возможность задать порядок появляется.

Лично для меня открытие этого так скажем ньюанса сняло очень много вопросов по сортировке)))
Спасибо!
Записан
artserge
Осваиваюсь на форуме
***

Репутация: +10/-0
Offline Offline

Пол: Мужской
Сообщений: 119



« Ответ #16 : 12.03.2014, 19:56:01 »

Нашел интересную ошибку в просмотре категории (2.0.26d). Допустим стоит у нас сортировка по умолчанию - по цене.
Но если мы отсортировали например по названию товара, и перешли в другую категорию, или зашли снова в эту же но по ссылке из меню - в селекте сортиовки выбранная слетает на "по цене" - ту что по умолчанию стоит, а вот выдача товаров продолжает сортироваться как и выбрали - по названию. Неопрятно как-то...

зашел в файл модели продукта
\administrator\components\com_virtuemart\models\product.php

Нашел в методе function getOrderByList ($virtuemart_category_id = FALSE)

$orderby = JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'));

заменил на
$orderby = $this->filter_order;   

Стало работать как надо.

Эх, для вывода товаров мы же нормально вычисляем ордеринг, а вот для нашего фильтробокса - криво сделал кто-то, через getVar 'orderby' ...
Записан
Андрюха
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline Offline

Сообщений: 50


« Ответ #17 : 13.07.2014, 17:54:21 »

Подскажите, как вместо сортировать по "Цена товара" (По цене), можно было сортировать "От дешевых к дорогим" и "От дорогих к дешевым".
Например, как тут: http://rozetka.com.ua/mobile-phones/c80003/filter/preset=smartfon/

Решившего данный вопрос ждет вознаграждение! 
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1163


желаю вам счастья


« Ответ #18 : 28.04.2016, 18:18:18 »

Здравствуйте!

Скажите, пожалуйста, у всех проблемы при использовании сортировки товаров по полю Порядок? VM 3.0.9 Кто-нибудь решал/находил решение вопроса упорядочивания товаров в рамках одной категории по столбцу Порядок для VirtueMart 3?
Записан
BHy4eK
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 113



« Ответ #19 : 11.10.2016, 15:15:33 »

Заходите в Настройки / Настройки, переходите на вкладку Настройки заказа и в поле Порядок сортировки по умолчанию выбираете Название, Дата добавления или что кому нужно. Если выбрать Артикул и каждому товару в панели его редактирования в поле Артикул присвоить порядковый номер, то товары будут отображаться в категории согласно этого номера.

Вот спасибо Azn
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet