Jump to content

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


Recommended Posts

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

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

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

Link to post
Share on other sites

Было решено все же вручную сделать, знаю что не по феншуйски это, но другого выхода я пока не придумал, позже может чет умнее придет в голову. Просто добавил параметр "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" }

 

Link to post
Share on other sites
3 часа назад, SHKEd сказал:

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

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

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

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites
20 минут назад, support сказал:

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

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

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

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

Link to post
Share on other sites
39 минут назад, SHKEd сказал:

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

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

Понятно.

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

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

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

Link to post
Share on other sites
16 часов назад, support сказал:

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

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

Link to post
Share on other sites
51 минуту назад, SHKEd сказал:

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

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

Тогда жду.

Link to post
Share on other sites
  • 2 months later...

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

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

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

Link to post
Share on other sites
44 минуты назад, vitaly сказал:

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

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

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

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

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...