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

content_listing Товары, двойная сортировка


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

Крутил я так и всяк, а как по умолчанию сделать так, чтобы товары сортировали по ручной сортировке, но товары не в наличии (сток меньше или равно нулю) уходили назад? Может кто прикрутил такую сортировку, подскажите пожалуйста

А то я пока не могу в голове даже разобрать такой запрос, на ум приходит только сортировка уже после получения списка, отсортировать их вручную методом перебора

Но проблема ( он бьет по страницам

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

Было решено все же вручную сделать, знаю что не по феншуйски это, но другого выхода я пока не придумал, позже может чет умнее придет в голову. Просто добавил параметр "sort_stock", и разбил на страницы массив всех товаров

 

Замена function.content_listing.php

	} else {

				if (!isset($params['limit']))
					$params['limit'] = $config['PRODUCTS_PER_PAGE'];
				$content_list_data = $Content->find('all', array('conditions' => $content_list_data_conditions, 'limit' => $params['limit'], 'page' => $params['page'], 'order' => array($params['order_column'])));
				$content_total = $Content->find('count', array('conditions' => $content_list_data_conditions));
			}


На

			} else {

				if (!isset($params['limit']))
				$params['limit'] = $config['PRODUCTS_PER_PAGE'];

				if (isset($params['sort_stock'])) {
					$content_list_data = $Content->find('all', array('conditions' => $content_list_data_conditions, 'order' => array($params['order_column'])));
					$sort_first = $sort_second = array();
					foreach($content_list_data as $stock){
						($stock['ContentProduct']['stock'] <= 0) ? $sort_second[] = $stock : $sort_first[] = $stock;
					}
					$content_list_data = array_merge($sort_first,$sort_second);

					$offset = ($params['page'] == 1) ? 0 :($params['page'] - 1) * $params['limit']; 
					$content_list_data = array_slice($content_list_data, $offset, $params['limit']);
					$content_total = $Content->find('count', array('conditions' => $content_list_data_conditions));
				}else{
					$content_list_data = $Content->find('all', array('conditions' => $content_list_data_conditions, 'limit' => $params['limit'], 'page' => $params['page'], 'order' => array($params['order_column'])));
					$content_total = $Content->find('count', array('conditions' => $content_list_data_conditions));
				}
			}

 

добавить в листинг шаблона Категории параметр

 

  {content_listing parent={$content_id} page={$page} type="product,downloadable" current_order={$current_order} order="order" sort_stock="1" }

 

Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, SHKEd сказал:

Крутил я так и всяк, а как по умолчанию сделать так, чтобы товары сортировали по ручной сортировке, но товары не в наличии (сток меньше или равно нулю) уходили назад? Может кто прикрутил такую сортировку, подскажите пожалуйста

А то я пока не могу в голове даже разобрать такой запрос, на ум приходит только сортировка уже после получения списка, отсортировать их вручную методом перебора

Но проблема ( он бьет по страницам

Вроде как в sql просто задаётся order by sort order asc, quantity desc

Как-то так, надо экспериментировать.

Ссылка на сообщение
Поделиться на другие сайты
20 минут назад, support сказал:

Не заметил второго сообщения.

Ну да, примерно так и сделали я так понял, задав order by

Неее, не так... (остались в коде неудаляшки). Получил все и отсеял, если задан параметр - сортировать по стоку. Таким образом все товары, которые не в наличии - уходят назад страниц. Впереди уже получается та сортировка,которую задает пользователь: по имени, по цене и т.д.

https://akvagrim-studio.ru/category/Reguljarnye-cveta.html

Ссылка на сообщение
Поделиться на другие сайты
39 минут назад, SHKEd сказал:

Неее, не так... (остались в коде неудаляшки). Получил все и отсеял, если задан параметр - сортировать по стоку. Таким образом все товары, которые не в наличии - уходят назад страниц. Впереди уже получается та сортировка,которую задает пользователь: по имени, по цене и т.д.

https://akvagrim-studio.ru/category/Reguljarnye-cveta.html

Понятно.

Так а я хотел спросить, вот в git код который лежит, он же уже с новым модулем оформления, модули доставки, оплаты тоже исправлены там?!

База данных где-то тоже есть исправленная, дамп базы?!

или там правки только в файлах?!

Ссылка на сообщение
Поделиться на другие сайты
16 часов назад, support сказал:

Так а я хотел спросить, вот в git код который лежит, он же уже с новым модулем оформления, модули доставки, оплаты тоже исправлены там?!

Нет, он там пересобран, дополнен. Пока собираю специально для вамшопа, чтобы уже был для движка, а не заточен под определенный сайт. Потому что сами модули доставки отличаются, и логика.
Я как и обещал выдам код, когда он будет протестирован и проверен. Это уже более глобальный уровень, нежели делать для сайта)

Ссылка на сообщение
Поделиться на другие сайты
51 минуту назад, SHKEd сказал:

Нет, он там пересобран, дополнен. Пока собираю специально для вамшопа, чтобы уже был для движка, а не заточен под определенный сайт. Потому что сами модули доставки отличаются, и логика.
Я как и обещал выдам код, когда он будет протестирован и проверен. Это уже более глобальный уровень, нежели делать для сайта)

Хорошо, спасибо.

Тогда жду.

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

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

В Вамшопе уже работает такой функционал?

Чтобы товары не в наличии (сток меньше или равно нулю) были в конце списка товаров?

Ссылка на сообщение
Поделиться на другие сайты
44 минуты назад, vitaly сказал:

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

В Вамшопе уже работает такой функционал?

Чтобы товары не в наличии (сток меньше или равно нулю) были в конце списка товаров?

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

В VamShop 1 есть опция при редактировании категории в админке.

Опция сортировка.

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