Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Recommended Posts

Может кто знающий поможет советом. Ситуация такая - делаю сортировку по скидкам, и по хитам (пока только по скидкам!) то есть если выбрано сортировка скидки то показывало товары только со скидкой. Вывод я сделал но товары выводятся все которые есть в магазине со скидками а надо из той категории где проводиться сортировка. Я знаю что нужно вот этот код

if (!empty($data['filter_category_id'])) {
			if (!empty($data['filter_sub_category'])) {
				$sql .= " AND cp.path_id = '" . (int)$data['filter_category_id'] . "'";
			} else {
				$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
			}

			if (!empty($data['filter_filter'])) {
				$implode = array();

				$filters = explode(',', $data['filter_filter']);

				foreach ($filters as $filter_id) {
					$implode[] = (int)$filter_id;
				}

				$sql .= " AND pf.filter_id IN (" . implode(',', $implode) . ")";
			}
		}

добавить но пока все безуспешно.

прикрепил файл контроллера категории и модель catalog/product

category-controller.php

product-model.php

Link to post
Share on other sites

Решение проблемы изложу здесь когда все будет работать.

Link to post
Share on other sites

может кому нужно вот решение

добавить в функцию

public function getProducts($data = array()) {

перед строкой

$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

добавить это

if (isset($data['sort']) && ($data['sort']=='special_percent')) {
			$sql .= " INNER JOIN oc_product_special ps ON (ps.product_id = p.product_id)";
		}
		if (isset($data['sort']) && ($data['sort']=='hit')) {
			$sql .= " INNER JOIN oc_product_bestsell bs ON (bs.product_id = p.product_id) AND bs.bestsell = '1'";
		}

и в функцию

public function getTotalProducts($data = array()) {

перед строкой

$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

добавить тоже самое

if (isset($data['sort']) && ($data['sort']=='special_percent')) {
			$sql .= " INNER JOIN oc_product_special ps ON (ps.product_id = p.product_id)";
		}
		if (isset($data['sort']) && ($data['sort']=='hit')) {
			$sql .= " INNER JOIN oc_product_bestsell bs ON (bs.product_id = p.product_id) AND bs.bestsell = '1'";
		}

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By Slavik7
      Добрый вечер!
       
      Уже неделю не могу решить вопрос с сортировкой товаров. Нужно чтобы при любой стандартной сортировке, товары со статусом "нет в наличии" были в самом конце.
       
      Нашел много статей на эту тему, но для 2 версии OpenCart. Для 3-й же версии нашел всего лишь парочку статей. Но все эти решения не дали результат.
       
      Думаю для знающих и разбирающихся в php и MySql это довольно легкая задача. Буду благодарен если поможете в этом вопросе.
    • By Demanoco
      Добрый день, ищу исполнителя для реализации, если наглядно то нужно сделать сортировку как у сайта например ельдорадо

      при нажатии на них будет сначала от меньшего к большему, при повторном- от большего к меньшему
       
      так-же нужно сделать сортировку по характеристикам товара(мощность например)
       
      Жду предложения сроки и стоимость.
    • By SirGrey
      Гибкая настройка сортировки и лимитов для OpenCart и ocStore
       
      Возможности модуля сортировки
       
      Настраиваемые лимиты Лимит товаров по умолчанию Сортировка товаров по умолчанию Включение / Отключение способов сортировки Переопределение названий Переопределение порядка способов сортировки Сортировка по Акциям ( Акции в начале списка ) Мультиязычность Не изменяет файлы системы  

       
    • By SirGrey
      750 10
      Скачать/Купить дополнение


      Simple Sort and Limit - Настройка сортировки и лимитов
      Гибкая настройка сортировки и лимитов для OpenCart и ocStore
       
      Возможности модуля сортировки
       
      Настраиваемые лимиты Лимит товаров по умолчанию Сортировка товаров по умолчанию Включение / Отключение способов сортировки Переопределение названий Переопределение порядка способов сортировки Сортировка по Акциям ( Акции в начале списка ) Мультиязычность Не изменяет файлы системы  

       
      Добавил SirGrey Добавлено 03.12.2019 Категория Модули Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By legioner26
      777
      Скачать/Купить дополнение


      Пагинация Опций в админке для крупных ИМ
      Разработан модификатор с пагинацией для опций в админ панели.
      Данный модификатор предназначен для интернет магазинов с большим списком параметров в опциях, с которыми сложно работать и подгружают сайт.
      Установив модификатор Вы получите список параметров опции в превычном постраничном для Вас виде, также при удалении параметра в админ панели не надо жать на кнопку сохранить, все происходит автоматически.
      В архиве 2 папки
      ОС 2.0-2.1 - Для версий 2.0-2.1
      ОС 2.2-2.3 - Для версий 2.2-2.3
       
      Установка:
      Устанавливаете модификатор через "Установка расширений", далее в модификаторах чистим кеш и обновляем.
      Добавил legioner26 Добавлено 16.12.2017 Категория Опции Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1 Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.