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

Сортировка товара в категории


ingenerks

Recommended Posts

Добрый день. Подскажите как настроить сортировку товара по умолчанию в категориях. Например когда наличее товара становится 0, что бы он опускался ниже, товара который есть в наличии. А лучше сортировать так. Сразу идут товары по времени добавления в базу, то есть более новые товары выше, а товары которых нет в наличии бросать в самый низ. Спасибо. Версия ocStore 1.5.3.1

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

  • 4 weeks later...

Ну, если вкраце, то там строка

$results = $this->model_catalog_product->getProducts($data);
обращается к моделе и забирает из БД список товара. Можно открыть модель и внести правки прямо в метод getProducts. А можно в контроллере ControllerProductCategory внести правки. Например, список товаров $results перебирается в цикле foreach - вот туда можно дописать какое-нибудь условие. А ещё ж там есть условие sort, которое можно попробовать обмануть... только я не уверен как... гуру, подскажите как $this->request->get['sort'] присвоение сделать? Может set? А может напрямую:

$this->request->get['sort'] = 'p.price';
$this->request->get['order'] = 'ASC';
А может надо set вместо get... я не помню как в OC...
Надіслати
Поділитися на інших сайтах

  • 5 months later...

А возможно ли сделать сортировку товаров соответствующую порядку подкатегорий? Например, если у меня есть родительская категория "Ручной инструмент", которая содержит подкатегории "ключи","отвертки", "насадки", как сделать что бы сначала отображались товары из подкатегории "ключи", затем "насадки", "отвертки".

Спасибо.

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


hotgomer, к запросу товаров необходимо присоеденить таблицы category[, category_description] и сортировать товар по её c.sort_order[, cd.name], кроме этого, категории для сортировки нужно выбирать по parent_id от текущей.

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

/catalog/model/catalog/product.php 130-138

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {

$sql .= " ORDER BY p.quantity=0, LCASE(" . $data['sort'] . ")";

} else {

$sql .= " ORDER BY p.quantity=0, " . $data['sort'];

}

} else {

$sql .= " ORDER BY p.quantity=0, p.sort_order";

}

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

/catalog/model/catalog/product.php 130-138 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY p.quantity=0, LCASE(" . $data['sort'] . ")"; } else { $sql .= " ORDER BY p.quantity=0, " . $data['sort']; } } else { $sql .= " ORDER BY p.quantity=0, p.sort_order"; }

не помогло... а может не сработать из-за filterpro? версия OcStore 1.5.2.1 кеш чистил

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


  • 7 months later...

/catalog/model/catalog/product.php 130-138

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {

if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {

$sql .= " ORDER BY p.quantity=0, LCASE(" . $data['sort'] . ")";

} else {

$sql .= " ORDER BY p.quantity=0, " . $data['sort'];

}

} else {

$sql .= " ORDER BY p.quantity=0, p.sort_order";

}

всё работает спасибо

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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