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

[Решено] Сортировка товаров по цене(по умолчанию)


st1tch

Recommended Posts

  • 1 month later...

Может кто подскажет как реализовать сортировку по наличию товара на складе? Буду очень признателен.

в поиск. среди моих ответов точно есть
Надіслати
Поділитися на інших сайтах

  • 4 weeks later...
  • 10 months later...

Подниму старую тему..помогите сделать сортировку по умолчанию по модели товара. Смысл в том чтоб товар по разному расфасованый но одной модели находился рядом.

opencart

1.4.9.3

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


  • 2 months later...

Добавить код в файл catalog/controller/product/category.php у меня 206 строка.

$this->data['sorts'][] = array(
					'text'  => 'Дате поступления',
					'value' => 'date_available-DESC',
					'href'  => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=date_available&order=DESC')
				);
Изменить это (64 строка):

			if (isset($this->request->get['sort'])) {
				$sort = $this->request->get['sort'];
			} else {
				$sort = 'pd.name';
			}

			if (isset($this->request->get['order'])) {
				$order = $this->request->get['order'];
			} else {
				$order = 'ASC';
			}

на это:

			if (isset($this->request->get['sort'])) {
				$sort = $this->request->get['sort'];
			} else {
				$sort = 'date_available';
			}

			if (isset($this->request->get['order'])) {
				$order = $this->request->get['order'];
			} else {
				$order = 'DESC';
			}

А если без seo_URL?

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


  • 1 month later...

Как реализовать следующее:

Товары добавляются по новизне (date_added  или  date_available ) 

Например товар закончился и я ставлю на него метку  - нет в наличии - он должен уходить в конец всего списка товаров - как именно реализовать данный тип сортировки?

Что я предпринял:

/catalog/controller/product/category.php

добавил

$sort = $this->request->get['sort'];
} else {
$sort = 'p.date_available';
//$sort = 'p.sort_order';
}
$this->data['sorts'][] = array(
  'text'  => $this->language->get('text_default'),
  'value' => 'p.date_available-ASC',
  'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_available&order=ASC' . $url)
			);
$sort_data = array(
  'pd.name',
  'p.model',
  'p.quantity',
  'p.price',
  'rating',
  'p.sort_order',
  'p.date_added',
  'p.date_available'
); 

 

/catalog/model/catalog/product.php

Но сейчас сортирует почему то по алфавиту....

 

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


Делаем, товар которого нет в наличии в конце списка при просмотре в категориях. На основе этого можете сделать отображение в поиске, в производителях и т.д

 

Для того чтобы товар которого нет в наличии был в конце списка, нам нужно поменять сортировку по умолчанию.

 

Открываем catalog/controller/product/category.php

 

Ищем строки и делаем как ниже указано:

 

if (isset($this->request->get['sort'])) {

 $sort = $this->request->get['sort'];

} else {

 //$sort = 'p.sort_order';

 $sort = 'p.quantity';

}

 

if (isset($this->request->get['order'])) {

 $order = $this->request->get['order'];

} else {

 //$order = 'ASC';

  $order = 'DESC';

}
  • +1 2
Надіслати
Поділитися на інших сайтах

Делаем, товар которого нет в наличии в конце списка при просмотре в категориях. На основе этого можете сделать отображение в поиске, в производителях и т.д
 
Для того чтобы товар которого нет в наличии был в конце списка, нам нужно поменять сортировку по умолчанию.
 
Открываем catalog/controller/product/category.php
 
Ищем строки и делаем как ниже указано:
 
if (isset($this->request->get['sort'])) {
 $sort = $this->request->get['sort'];
} else {
 //$sort = 'p.sort_order';
 $sort = 'p.quantity';
}
 
if (isset($this->request->get['order'])) {
 $order = $this->request->get['order'];
} else {
 //$order = 'ASC';
  $order = 'DESC';
}

Главное, чтобы свеже добавленные товары отображались первыми - при таком варианте такое как я понимаю не будет работать?

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


Всем привет! Очень нужна помощь по сортировке товара по дате поступления на склад date_modified или date_available

 

Суть сортировки, когда товар поступает на склад он становится первым.

Сайт на сборке MaxyStore на основе OpenCart v.1.5.4.1


в файле catalog/controller/product/category.php изменил код на:

 

12. if (isset($this->request->get['sort'])) {

13. $sort = $this->request->get['sort'];
14. } else {
15. $sort = 'date_modified';
16. }
17.
18. if (isset($this->request->get['order'])) {
19. $order = $this->request->get['order'];
20. } else {
21. $order = 'ASC';
22. }
 
а так же:
 
226. $this->data['sorts'] = array();
227. 
228. $this->data['sorts'][] = array(
229. 'text'  => $this->language->get('text_default'),
230. 'value' => 'date_modified-date_ASC',
231. 'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=date_modified&order=ASC' . $url)
232. );

 

в файле /catalog/model/catalog/product.php добавил:

 

182. $sql .= " GROUP BY p.product_id";

183. 
184. $sort_data = array(
185. 'pd.name',
186. 'p.model',
187. 'p.quantity',
188. 'p.price',
189. 'rating',
190. 'p.sort_order',
191. 'p.date_added'
192. 'date_modified'
193. 'date_available'
194. );
 
Вроде бы все верно, как описывали ранее, но сайт выдает ошибку в обоих случаях 'date_modified' и 'date_available':
 
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in Z:\home\localhost\www\shop87\vqmod\vqcache\vq2-catalog_model_catalog_product.php on line 192
 
где catalog_model_catalog_product.php on line 192 - как раз строка с массива 'date_modified' или 'date_available'
 
ОЧЕНЬ НУЖНА ПОМОЩЬ.
  • +1 1
Надіслати
Поділитися на інших сайтах


Оба! Запахло говносборками! А там откуда родом сие чудо не могут помочь?

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

Оба! Запахло говносборками! А там откуда родом сие чудо не могут помочь?

Да вроде хорошая сборка, проблем не было пока не столкнулся с этой задачей. 

Попробовал проделать эту схему на ocStore1541 та же проблема.

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in Z:\home\localhost\www\story1541\catalog\model\catalog\product.php on line 170

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


даже если ничего не менять в файле catalog/controller/product/category.php

А просто добавить строки в массив в файле /catalog/model/catalog/product.php

'date_modified' или 'date_available' все равно возникает ошибка. 

Я в php совсем не селен, могу кое какой код поправить, а программировать нет.

Буду очень признателен если окажите помощь.

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


Укажите номер строк - вставьте код как полагается возможно будет понятнее...

Хотя мне пока что тоже не очень понятно как же заставить сортировать по дате изменения 

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


Укажите номер строк - вставьте код как полагается возможно будет понятнее...

Хотя мне пока что тоже не очень понятно как же заставить сортировать по дате изменения 

В этой теме в #14 посте demiurge расписывает как сделать сортировку по дате добавления товара. РЕСПЕКТ - все получилось все работае.

По бодобию этого поста решил сделать сортировку не по дате создания материала а по дате поступления на склад 'date_available' ну или хотя бы по даде изменения товара 'date_modified'.

Но ничего не получилось, сервер отдает ошибку Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in Z:\home\localhost\www\shop87\vqmod\vqcache\vq2-catalog_model_catalog_product.php on line 192

Где vq2-catalog_model_catalog_product.php on line 192 - и есть строка 192. 'date_modified' или 193. 'date_available' подставленная в массив.

Че делать и где ковырять незнаю, та как с этим движком работаю недавно, да и познания в php тоже не велики.

Подробнее проблему описывал в #35  посте.

Буду очень признателен.

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


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in [/size][/font][/color]Z:\home\localhost\www\shop87\vqmod\vqcache\vq2-catalog_model_catalog_product.php

По русски же написано - синтаксическая ошибка.

Поставьте запятые в конце 191-й и 192-й строках и будет вам счастье. ))

  • +1 2
Надіслати
Поділитися на інших сайтах


Неужели никто не знает как это сделатЬ? sad.gif

Я знаю icon_redface.gif

открываем файлик

/catalog/controller/product/category.php

находим там гдето с 64й строчки такую надпись

------------------------------------------------------------------------

if (isset($this->request->get['sort'])) {

$sort = $this->request->get['sort'];

} else {

$sort = 'pd.name';

}

------------------------------------------------------------------------

меняем $sort = 'pd.name'; на $sort = 'p.price'

если хотите сортировать по убыванию тогда меняем

------------------------------------------------------------------------

if (isset($this->request->get['order'])) {

$order = $this->request->get['order'];

} else {

$order = 'ASC';

}

------------------------------------------------------------------------

меняем $order = 'ASC'; на $order = 'DESC'

можно менять такие значения

$sort = 'pd.name'; - по Имени

$sort = 'p.price'; - по Ценам

$sort = 'rating'; - по Рейтингу

Направление

$order = 'ASC'; - от А до Я (Низкому)

$order = 'DESC' - от Я до А (Высокому)

Cпасибо, помогло!

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


  • 1 month later...

Немножко протупил sad.gif Итак сначала:

Добавить код в файл catalog/controller/product/category.php у меня 206 строка.

$this->data['sorts'][] = array(
					'text'  => 'Дате поступления',
					'value' => 'p.date_added-DESC',
					'href'  => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC')
				); 	
Изменить это (64 строка):

if (isset($this->request->get['sort'])) {
            $sort = $this->request->get['sort'];
         } else {
            $sort = 'pd.name';
         }

         if (isset($this->request->get['order'])) {
            $order = $this->request->get['order'];
         } else {
            $order = 'ASC';
         }
на это:

if (isset($this->request->get['sort'])) {
				$sort = $this->request->get['sort'];
			} else {
				$sort = 'p.date_added';
			}

			if (isset($this->request->get['order'])) {
				$order = $this->request->get['order'];
			} else {
				$order = 'DESC';
			}
И самое главное добавляем в файл catalog/model/catalog/product.php в массив $sort_data (18 строка) вот это: 'p.date_added'. В результате должно быть так:

		$sort_data = array(
			'LCASE(pd.name)',
			'p.price',
			'rating',
			'p.date_added'
		);

Не работает, с 2010 года видимо коды поменялись. Кто знает как сделать сортировку по дате добавления товара?

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


  • 2 months later...

подскажите как сортировать по убыванию цены по умолчанию? установлен FilterPro Mega (кажется мне что он имеет к этому отношение).

движок ocStore 1.5.5.1.1

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

если сделаете по тму же приципу как описано тут

https://opencartforum.com/topic/6961-sortirovka-po-alfavitu-po-umolchaniiu-kak/?do=findComment&comment=81095

фильтр подхватит этот способ сортировки.

только вместо

p.date_added у вас должно быть p.price

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

  • 1 month later...
Сортировка товаров по цене низкая -> высокая

catalog/controller/product/category.php

$this->data['sorts'][] = array('text'  => $this->language->get('text_name_asc'),
'value' => 'pd.name-ASC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url)
);

Как задать условия, вывод товара по цене:  от 1 до бесконечности           

                                                                                сейчас по умолчанию ASC от 0 до бесконечности

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


  • 2 weeks later...

если сделаете по тму же приципу как описано тут

https://opencartforum.com/topic/6961-sortirovka-po-alfavitu-po-umolchaniiu-kak/?do=findComment&comment=81095

фильтр подхватит этот способ сортировки.

только вместо

p.date_added у вас должно быть p.price

Помогло, спасибо! ОС 1.5.5.1.1

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


  • 3 weeks later...

Я знаю icon_redface.gif

открываем файлик

/catalog/controller/product/category.php

находим там гдето с 64й строчки такую надпись

------------------------------------------------------------------------

if (isset($this->request->get['sort'])) {

$sort = $this->request->get['sort'];

} else {

$sort = 'pd.name';

}

------------------------------------------------------------------------

меняем $sort = 'pd.name'; на $sort = 'p.price'

если хотите сортировать по убыванию тогда меняем

------------------------------------------------------------------------

if (isset($this->request->get['order'])) {

$order = $this->request->get['order'];

} else {

$order = 'ASC';

}

------------------------------------------------------------------------

меняем $order = 'ASC'; на $order = 'DESC'

можно менять такие значения

$sort = 'pd.name'; - по Имени

$sort = 'p.price'; - по Ценам

$sort = 'rating'; - по Рейтингу

Направление

$order = 'ASC'; - от А до Я (Низкому)

$order = 'DESC' - от Я до А (Высокому)

 

Так же что б товары не прыгали при загрузи мега фильтра, в файле catalog/controller/module/filterpro.php

найти строчку ( в самом начале )

$sort = 'p.sort_order'; (ЕСЛИ ПО ВОЗРАСТАНИЮ ЦЕНЫ ТО НА    $sort = 'p.price';    )

и меняем на то , на что мы изменили в файле (ЕСЛИ ПО ВОЗРАСТАНИЮ ЦЕНЫ ТО НА    $sort = 'p.price';    ):

/catalog/controller/product/category.php

 

теперь при загрузке страницы с товарами ,фильтр мега не будет "дергаться"

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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