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

В "Хиты продаж" только те что в наличии?!

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

Всем привет!

 

Кто боли менее шарит подскажите пожалуйста. Как можно заставить модуль "Хиты продаж" показывать только те товары которые есть в наличии на данный момент?!

9568e6b4.jpg

Буду признательным и очень благодарным :) 

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


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

В контроллере проверяйте наличие result[quantity], а во вьюшке с той же переменной проверяйте и выводите при >0.

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


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

В контроллере проверяйте наличие result[quantity], а во вьюшке с той же переменной проверяйте и выводите при >0.

Я верно понял в контролере это вот эта

$results = $this->model_catalog_product->getBestSellerProducts($setting['limit']); 

 строка? 

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


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

Лучше в catalog/model/catalog/product.php задайте условие. Зачем брать ненужные данные.

  • +1 1

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


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

Лучше в catalog/model/catalog/product.php задайте условие. Зачем брать ненужные данные.

Не могу понять как задать условие именно для количества товара, мне рекомендовали для цены, я тестил получилось работает такой код:

<?php if ($clear_price >= 1000) { ?>

Тут кнопка или что нужно выводить при цене больше или равной 1000

<?php } ?>

Спасибо AlexDW

Изменено пользователем poetiq

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


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

catalog/model/catalog/product.php

 

Найти

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

и заменить на

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

 

Почистить кеш

  • +1 1

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


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

catalog/model/catalog/product.phpНайти

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

и заменить на

$query = $this->db->query("SELECT op.product_id, SUM(op.quantity) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

Почистить кеш

Видимо у же что то было правленое нашел только такой код:

$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, m.image AS mimage, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p 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) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= '" . $this->NOW . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

Изменено пользователем poetiq

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


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

Это не тот запрос

 

Ищите в методе 

getBestSellerProducts($limit){
...
}
  • +1 1

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


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

 

Это не тот запрос

 

Ищите в методе 

getBestSellerProducts($limit){
...
}

Имеется только такого вида:

public function getBestSellerProducts($limit) {

if ($this->customer->isLogged()) {

$customer_group_id = $this->customer->getCustomerGroupId();

} else {

$customer_group_id = $this->config->get('config_customer_group_id');

}

$product_data = $this->cache->get('product.bestseller.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'). '.' . $customer_group_id . '.' . (int)$limit);

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


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

Кажется вот кусок тот

 

$query = $this->db->query("SELECT op.product_id, COUNT(*) AS total FROM " . DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX . "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX . "product` p ON (op.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= '" . $this->NOW . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

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


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

Все получилось! pantagruel964 спасибо  :eek:

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


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

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

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

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

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

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

Войти

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

Войти

  • Похожий контент

    • От mx928
      Ищу модуль аналогичный стандартному "Хиты продаж" но с возможностью выбора определенной категории.
      То есть необходимо вывести на главной самые продаваемые товары  только из одной категории или подкатегории.
      Посоветуйте решение или готовый модуль пожалуйста.
    • От kJlukOo
      500.00 руб
      Скачать/Купить дополнение


      Индикатор наличия товара
      ДЕМО - http://opencart-demo.ru/avaliability_indicator/, http://time.biz.ua/sportivnye-chasy
      Работает на версиях 1.5.4 - 2.3.х
      1. О модуле
      Модуль выводит индикатор наличия товара в
      категории (product/category.tpl) поиске (product/search.tpl) сравнение товаров (product/compare.tpl) производителе (product/manufacturer_info.tpl) модуле рекомендуемых (module/featured.tpl) на странице акций (product/special.tpl) карточка товара (product/product.tpl) Если тема отличается от стандартной, для вывода индикатор в шаблоне используйте переменную
      $product['avaliability_indicator']   2. Особенности
      Модуль мультиязычный (русский и английский) Для версий 1.5.х наличие vqmoda Включите Показывать остаток в настройках магазина для отображение в карточке продукта 3. Установка
      Распакуйте архив из папки UPLOAD в корень папки с установленным Opencart Зайдите в админку Система->Пользователи->Группы пользователей. Выберите свою группу и поставьте галочки напротив "module/availability_indicator" в свойствах"Разрешить просмотр" и"Разрешить редактировать". Это даст права группе для редактирования и просмотра модуля. Только для ОС 2.х - Зайдите в Модули->Установка расширений и установите файлик, который находиться в папке modification после чего обновите кеш модификаторов. Зайдите в Модули нажмите УСТАНОВИТЬ, а потом РЕДАКТИРОВАТЬ. Теперь приступайте к редактированию настроек модуля. Не забудьте поставить Статус в модуле в позицию "Включено". Добавил kJlukOo Добавлено 14.05.2016 Категория Модули Системные требования для 1.5.x наличие vqmoda Сайт разработчика cleanphp.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1 OpenCart.Pro, ocShop Не проверялось  
    • От krivorukovich
      Привет, товарищи. В пректе появилась нужда вывести товары у которых неличие = 0 в категориях, отдельной секцией под всеми товарами, что бы результаты фильтрации не влияли на вывод тех которые не в наличии (как бы демонстрация того что уже продано), они как бы сами по себе, в силу своей низкой квалификации не пойму даже с чего начать, находил статьи по тому как скрыть товары у которых наличие = 0 в результате сортировки, но это работает глобально на стороне product.php, а на сколько я понимаю нужно работать над category.tpl и category.php, прошу помоч, тех кто знает как это сделать, на сколько понимаю функционал деликатный, так как не нашел ни одного модуля, реализующего данный функционал
    • От Serg9988
      600.00 руб
      Скачать/Купить дополнение


      Уведомление о наличии PRO Opencart2
      Уведомление о наличии товара PRO
       
      Начиная с версии модуля 9.5, модуль работает только на opencart 2.3.* - 3.0* и OCStore 2.3.*
       
      Краткое описание:
      Модуль позволяет покупателю заказать уведомление о поступлении товара в магазин.
      Модуль заменяет кнопку "Купить" на кнопку "Уведомить", если товара нет на складе или выбранной покупателем опции у товара нет в наличии.
      Работает по:
      количеству товара на складе по количеству опций на товаре по статусу товара  

      Возможности:
       
       История запросов уведомлений от пользователей в панели администратора   Возможность ручного отключения уведомлений   Обработка всего уведомления одним нажатием   Автоматическое уведомление о отправке   on / off Google captcha   Модуль работает с модулями по умолчанию (специальные, последние и другие модули).  Модуль работает на всех страницах   Добавлена настройка - отправлять уведомление после любых изменений в информации о продукте (только если этот продукт имеется на складе)   Модуль может использовать опции товаров (необязательно включается в настройке модуля).  Добавляет информацию о новых уведомлениях на панели управления   Пользователь может видеть историю своих уведомлений   Работает с настраиваемыми темами   Вы можете изменить шаблоны писем С версии 9.6
      возможность добавлять произвольные поля  возможность добавления данных произвольных полей в шаблоны писем  
       

       
       
      Модуль  должен работать на большинстве шаблонов.
       
      К модулю идет инструкция где подробно описано как установить и настроить модуль. 
      Адаптация, правки вида модуля и другие работы на не стандартном шаблоне делаются за отдельную плату.
       
      ознакомится с документацией - ДОКУМЕНТАЦИЯ
       
      Системные/технические требования:
      Протестировано на следующих версиях : 
      ocstore 2.0*,2.1*,2.2*.2.3* opencart 2.0*,2.1*,2.2*.2.3*, 3.0*   Модуль не тестировался и его работа не гарантируется на всякого рода зборках ocstore или opencart от студий или отдельных разработчиков. Работа гарантируется только на чистых официальных сборках!
       
      Для работы модуля требуется:
      PHP Version: 5.6.x или выше
      ionCube PHP Loader: 4.5.0+ или выше
       
      Возможности:
       
       

       
       
      В планах реализовать:
      возможность создания собственных полей на форму с возможностью использовать их в письмах отправка уведомлений по смс построение отчетов по заявкам и выгрузка из в Exsel  
       
      Дизайн модуля адаптивен и корректно работает на мобильных устройствах:
       

       
      Установка:
       Скачайте архив с нужной версией модуля. Модуль с версии 9.5 работает только на opencart 2.3 и выше и OCStore 2.3 и выше.  Зайдите в административную панель сайта в раздел "Дополнения/Установка дополнений" и установите модуль  Зайдите в раздел "Дополнения/Менеджер дополнений" и обновите кеш  Зайдите в раздел "Дополнения/Дополнения/Модули" Установите модуль "SM Уведомить о наличии PRO"  Зайдите в редактирование модуля (введите ключ активации или сделайте запрос на получение ключа ) активируйте модуль переведя опцию "Статус" в позицию "Включен.              Сохраните настройки  Подключите модуль на страницы Главная, категории, товары и тд. (Раздел Дизайн/Схемы)  
      Состав модуля:
      полная инструкция с описанием работы и установки модуля; файлы модуля; файл для тестирования настроек сервера;  
      ДЕМО
      Страница товара с опциями (кнопка купить будет подменена только если выбрать опцию количество которой <=0)
      login/pass - demo/demo
       
      Полное описание:
       
      Все работы по стилизации модуля под ваш шаблон (цвет кнопки, форма размер и тд.) проводяться исключительно на платной основе.
       
      Что нового:
       
      Обновление:
       
      Условия использования:
      Лицензия на модуль выдается на следующих условиях:
      1 лицензия = 1 покупка = 1 доменное имя.
      То есть - один раз купив, вы получаете ключ для работы модуля только на одном доменном имени, одном магазине!
       
      Приобретая лицензию (покупая дополнение), Вы автоматически соглашаетесь со следующими положениями:
       
      Для получения лицензионного ключа напишите мне в личном сообщении от имени того, на кого покупался модуль:
      Название модуля Доменное имя вашего магазина Доменное имя тестовой площадки (если таковая имеется) Ваш адрес электронной почты, куда выслать ключ  
      Дополнительные лицензии вы можете получить купив модуль на сайте http://myopencart.club/
      На 4-ю и более покупку действует скидка. Чтобы получить скидку пишите в личку или на почту.
      Вопросы, пожелания можно писать в форум или на почту support@myopencart.club
       
      Добавил Serg9988 Добавлено 30.03.2016 Категория Письма, почта, рассылки, sms Системные требования Ioncube Loader 4.5.0+ Сайт разработчика http://myopencart.club Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось  
    • От Serg9988
      Уведомление о наличии товара PRO
       
      Начиная с версии модуля 9.5, модуль работает только на opencart 2.3.* - 3.0* и OCStore 2.3.*
       
      Краткое описание:
      Модуль позволяет покупателю заказать уведомление о поступлении товара в магазин.
      Модуль заменяет кнопку "Купить" на кнопку "Уведомить", если товара нет на складе или выбранной покупателем опции у товара нет в наличии.
      Работает по:
      количеству товара на складе по количеству опций на товаре по статусу товара  

      Возможности:
       
       История запросов уведомлений от пользователей в панели администратора   Возможность ручного отключения уведомлений   Обработка всего уведомления одним нажатием   Автоматическое уведомление о отправке   on / off Google captcha   Модуль работает с модулями по умолчанию (специальные, последние и другие модули).  Модуль работает на всех страницах   Добавлена настройка - отправлять уведомление после любых изменений в информации о продукте (только если этот продукт имеется на складе)   Модуль может использовать опции товаров (необязательно включается в настройке модуля).  Добавляет информацию о новых уведомлениях на панели управления   Пользователь может видеть историю своих уведомлений   Работает с настраиваемыми темами   Вы можете изменить шаблоны писем С версии 9.6
      возможность добавлять произвольные поля  возможность добавления данных произвольных полей в шаблоны писем  
       

       
       
      Модуль  должен работать на большинстве шаблонов.
       
      К модулю идет инструкция где подробно описано как установить и настроить модуль. 
      Адаптация, правки вида модуля и другие работы на не стандартном шаблоне делаются за отдельную плату.
       
      ознакомится с документацией - ДОКУМЕНТАЦИЯ
       
      Системные/технические требования:
      Протестировано на следующих версиях : 
      ocstore 2.0*,2.1*,2.2*.2.3* opencart 2.0*,2.1*,2.2*.2.3*, 3.0*   Модуль не тестировался и его работа не гарантируется на всякого рода зборках ocstore или opencart от студий или отдельных разработчиков. Работа гарантируется только на чистых официальных сборках!
       
      Для работы модуля требуется:
      PHP Version: 5.6.x или выше
      ionCube PHP Loader: 4.5.0+ или выше
       
      Возможности:
       
       

       
       
      В планах реализовать:
      возможность создания собственных полей на форму с возможностью использовать их в письмах отправка уведомлений по смс построение отчетов по заявкам и выгрузка из в Exsel  
       
      Дизайн модуля адаптивен и корректно работает на мобильных устройствах:
       

       
      Установка:
       Скачайте архив с нужной версией модуля. Модуль с версии 9.5 работает только на opencart 2.3 и выше и OCStore 2.3 и выше.  Зайдите в административную панель сайта в раздел "Дополнения/Установка дополнений" и установите модуль  Зайдите в раздел "Дополнения/Менеджер дополнений" и обновите кеш  Зайдите в раздел "Дополнения/Дополнения/Модули" Установите модуль "SM Уведомить о наличии PRO"  Зайдите в редактирование модуля (введите ключ активации или сделайте запрос на получение ключа ) активируйте модуль переведя опцию "Статус" в позицию "Включен.              Сохраните настройки  Подключите модуль на страницы Главная, категории, товары и тд. (Раздел Дизайн/Схемы)  
      Состав модуля:
      полная инструкция с описанием работы и установки модуля; файлы модуля; файл для тестирования настроек сервера;  
      ДЕМО
      Страница товара с опциями (кнопка купить будет подменена только если выбрать опцию количество которой <=0)
      login/pass - demo/demo
       
      Полное описание:
       
      Все работы по стилизации модуля под ваш шаблон (цвет кнопки, форма размер и тд.) проводяться исключительно на платной основе.
       
      Что нового:
       
      Обновление:
       
      Условия использования:
      Лицензия на модуль выдается на следующих условиях:
      1 лицензия = 1 покупка = 1 доменное имя.
      То есть - один раз купив, вы получаете ключ для работы модуля только на одном доменном имени, одном магазине!
       
      Приобретая лицензию (покупая дополнение), Вы автоматически соглашаетесь со следующими положениями:
       
      Для получения лицензионного ключа напишите мне в личном сообщении от имени того, на кого покупался модуль:
      Название модуля Доменное имя вашего магазина Доменное имя тестовой площадки (если таковая имеется) Ваш адрес электронной почты, куда выслать ключ  
      Дополнительные лицензии вы можете получить купив модуль на сайте http://myopencart.club/
      На 4-ю и более покупку действует скидка. Чтобы получить скидку пишите в личку или на почту.
      Вопросы, пожелания можно писать в форум или на почту support@myopencart.club
       
  • Последние посетители   0 пользователей онлайн

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

×

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

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