Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Сортировка stock_status_id


Palladin

Recommended Posts

Здравтсвуйте. Просьба к знатокам.

Сделайте пожалуйста сортировку(выложите код) по полю stock_status_id в таблице product, в файле catalog/model/catalog/product.php

всего одно условие - чтобы товары при отображении в магазине показывались вначале те что есть на складе, а потмо уже те которых нет в наличии.

Спасибо

Надіслати
Поділитися на інших сайтах


  • 4 months later...

попробуйте следующее

catalog/model/catalog/product.php блок с 128 по 136 строки заменить на

$sql .= " ORDER BY `quantity` DESC";
			if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
				if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
					$sql .= ", LCASE(" . $data['sort'] . ")";
				} else {
					$sql .= ", " . $data['sort'];
				}
			} else {
				$sql .= ", p.sort_order";	
			}
Надіслати
Поділитися на інших сайтах

  • 3 weeks later...
  • 2 weeks later...

у меня такое реализовано http://mosest.com.ua

вот МОД для vqmod

<modification>
		<id>change sort to sort by quantity</id>
		<version>1.0</version>
		<vqmver>2.1.2</vqmver>
		<author>farmukanx</author>

  <file name="/catalog/model/catalog/product.php">
   <operation>
	<search position="replace"><![CDATA[$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";]]></search>
	<add><![CDATA[$sql .= " ORDER BY p.quantity DESC, LCASE(" . $data['sort'] . ")";]]></add>
   </operation>
   <operation>
	<search position="replace" index="1"><![CDATA[$sql .= " ORDER BY " . $data['sort'];]]></search>
	<add><![CDATA[
	 if ($data['sort'] == "p.date_added") $sql .= " ORDER BY " . $data['sort'];
	 else
	 $sql .= " ORDER BY p.quantity DESC," . $data['sort'];
]]></add>
   </operation>
  
  </file>

  <file name="/catalog/model/catalog/productall.php">
   <operation>
	<search position="replace"><![CDATA[$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";]]></search>
	<add><![CDATA[$sql .= " ORDER BY p.quantity DESC, LCASE(" . $data['sort'] . ")";]]></add>
   </operation>
   <operation>
	<search position="replace" index="1"><![CDATA[$sql .= " ORDER BY " . $data['sort'];]]></search>
	<add><![CDATA[
	 if ($data['sort'] == "p.date_added") $sql .= " ORDER BY " . $data['sort'];
	 else
	 $sql .= " ORDER BY p.quantity DESC," . $data['sort'];
]]></add>
   </operation>
  
  </file>

</modification>

change_sort.xml

Надіслати
Поділитися на інших сайтах


Для 1.5 работает, товар при 0 уходит вниз, но теперь не могу понять как стала работать сортировка по умолчанию. Товар не сортируется по заданному числу.

...

В этих вариантах проблема в том что зависят от кол-ва. Стало на 1 меньше кол-ва товара и будет ниже остальных независимо от sort_order.

тогда так

	   	 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
				if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
					$sql .= " ORDER BY `quantity`=0, LCASE(" . $data['sort'] . ")";
				} else {
					$sql .= " ORDER BY `quantity`=0, " . $data['sort'];
				}
			} else {
				$sql .= " ORDER BY `quantity`=0, `p.sort_order";	
			}
			
			if (isset($data['order']) && ($data['order'] == 'DESC')) {
				$sql .= " DESC";
			} else {
				$sql .= " ASC";
			}
Надіслати
Поділитися на інших сайтах

  • 1 year later...

Доброго дня, коллеги!

Прошу подсказки на основании чего формирует номер stock_status_id. Почему-то по умолчанию ставится 7 (это показывает форма при экспорте, и сортировка товара работает нормально), но стоит поменять stock_status_id на 0 или другое число, сортировка сбивается.Где меняется этот парамерт. Спасибо!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.