Перейти к содержанию
MashMm

Отображение товара в категории

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

Доброе время суток!

 

Как сделать в категории, чтоб отображались товары сначала те, что в наличии, а потом все остальные?

 

Спасибо!

Поделиться сообщением


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

 

Открываем 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 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Для того чтобы товар которого нет в наличии был в конце списка, нам нужно поменять сортировку по умолчанию.
 
Открываем 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';
}

 

 

Спасибо большое!

 

Сейчас попробую сделать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Для того чтобы товар которого нет в наличии был в конце списка, нам нужно поменять сортировку по умолчанию.
 
Открываем 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';
}

 

 

что-то ничего не изменилось  :|

Поделиться сообщением


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

Может есть у кого-то еще какие-то идеи?? Очень нужно..  :unsure:

Поделиться сообщением


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

Вот тут мы обсуждали это на старой версии :https://opencartforum.com/topic/1154-sortirovka-v-zavisimosti-ot-nalichiia-kak/

Сейчас в 1.5.4.1 пытаюсь делать, если получится напишу.

Поделиться сообщением


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

Открываем 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';
}
 

В этом же файле ищем: $this->data['sorts'][] = array(

и делаем так:

 

$this->data['sorts'][] = array(
'text' => $this->language->get('text_default'),
'value' => 'p.quantity-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.quantity&order=DESC' . $url)
);
 

Должно работать в категории. Версия движка 1.5.4.1

Поделиться сообщением


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

В этом варианте при сортировке по цене или еще чем-то опять перемешивается всё :(

Поделиться сообщением


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

я сделал иначе.

в catalog/controller/product/category.php

после 

$this->language->load('product/category');

вставляем

$this->language->load('product/product');

 

далее после

if( mb_strlen($descr_plaintext, 'UTF-8') > $description_symbols ) {
$descr_plaintext = mb_substr($descr_plaintext, 0, $description_symbols, 'UTF-8') . ' …';
}
вставляем
if ($result['quantity'] <= 0) {
$stock = $result['stock_status'];
    } elseif ($this->config->get('config_stock_display')) {
$stock = $result['quantity'];
    } else {
$stock = $this->language->get('text_instock');
    }
 
далее после 
'model'       => $result['model'],
вставляем
'stock'       => $stock,
 
В catalog/view/theme/default/template/product/category.tpl
выше кнопки купить вставляем наличие
перед 
<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
вставляем
<?php echo $product['stock'];?><br/>
этот код можно вставить где угодно в этом файле
 
Тоже самое я сделал и в search.tpl и search.php (поиск), а также manufacturer_info.tpl и manufacturer.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';
}
 

В этом же файле ищем: $this->data['sorts'][] = array(

и делаем так:

$this->data['sorts'][] = array(
'text' => $this->language->get('text_default'),
'value' => 'p.quantity-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.quantity&order=DESC' . $url)
);
 

Должно работать в категории. Версия движка 1.5.4.1

Версия 1.5.5.1.1 Полет нормальный!))

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.