Jump to content
Sign in to follow this  
bezzubtsev

Opencart 1.5.4.1. - вывод в model последних товаров определенной категории

Recommended Posts

Добрый день!

 

Подскажите пожалуйста, что необходимо дописать, чтобы в модели вывода последних товаров по магазину был вывод последних товаров с учетом категории с определенным ID.

ID категории известен, и его не надо нигде прописывать в админке - достаточно указать тут в модели (главное - просто и работает).

 

В модуле и контроллере модуля уже дал запрос на getLatestCategory (сейчас - это просто копипаста getLatestProducts). Сейчас показывает последние товары, как обычно.

 

Понимаю, что дописывать нужно тут, но синтаксисом не так сильно владею:

catalog/model/catalog/product.php

 

public function getLatestCategory($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.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $customer_group_id . '.' . (int)$limit);
// чуйка тянет дописать после config_store_id по аналогии фильтр по ID категории, но проводимые попытки вызывали только ошибки.

        if (!$product_data) {
            $query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);
// Тут тоже прописывал AND перед ORDER BY и по аналогии и пытался сделать выборку по ID категории. Ничего толкового из этого не вышло :(


            // вырванные куски, где тоже идет вывод товаров категории.
            // $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");
                //    $sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
 

Прикреплен файл. Кусок, о котором идет речь - 317 строка.

 

Заранее большое спасибо!

product.php

Share this post


Link to post
Share on other sites

UDP: в контроллере модуля идет как обычно запрос на модель:

 

$bestseller_results = $this->model_catalog_product->getLatestCategory($setting['limit']);

 

Если в модели прописать категорию (код смотрите выше, выделено зеленым что добавил):

 

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

 

.., выходит ответ ошибки VQMODa про парсер:

 

Parse error: syntax error, unexpected $end in /*путь*/vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 174

 

 

174 строка в кэшовом файле - это последняя строка PHP файла (пустая).

Share this post


Link to post
Share on other sites

UDP2: ещё одна неудачная попытка. Указываю, на мой взгляд, более правильный синтаксис в модели (отмечено зеленым):

 

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

 

И получаю уже другие ответы от системы:

 

Notice: Undefined variable: category_id in /*путь*/vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 367
Fatal error: Function name must be a string in /*путь*/vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 367

 

Открыл файл кэша, строку 367 (выделил синим):

 

public function getProducts($data = array()) {
        if ($data) {
            $sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)";
            
            if (!empty($data['filter_category_id'])) {
                $sql .= " LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id)";            
            } .....

Share this post


Link to post
Share on other sites

Никак не могу самостоятельно решить вопрос :(

 

Уже нашел расписанный запрос к базе данных в одной из найденных тем https://opencartforum.com/topic/2103-%d0%ba%d0%b0%d0%ba-%d1%81%d0%be%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-mysql-%d0%b7%d0%b0%d0%bf%d1%80%d0%be%d1%81-%d0%b4%d0%bb%d1%8f-%d0%b2%d1%8b%d0%b1%d0%be%d1%80%d0%b0/page__view__findpost__p__12790

 

Но прикрутить не удалось, так как все это дело (модуль) отображается не в категориях, а на главной странице.

По сути сейчас:

» модуль - работает, товары показывает последние, но просто со всех категорий.

» контроллер модуля - посылает свой запрос в модель на предмет показа товаров.

Осталось дело за тем, чтобы прописать в catalog/model/catalog/product.php вызов нужной функции.

Share this post


Link to post
Share on other sites

Скажите пожалуйста, правильный ли это вообще подход - просить на уровне модели дать сортировку категории? Может надо править код в другом месте?

Share this post


Link to post
Share on other sites

конечно в модели все делается.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Seaslide
      Я читала поиск, но все не то. 
       
      УСЛОВИЕ
      Виды покупателей:
      1.Группа Покупатели
      2.Группа Специалисты
      3.Незарегистрированные
      Категории товаров:
      1.Категория Для всех
      2.Категория Только для Специалистов
       
      ВОПРОС
      Категория Только для Специалистов должна быть доступна всем. 
      Цены в Категории Только для Специалистов видят только Группа Специалисты
    • By neoseo
      1 452.00 руб
      Скачать/Купить дополнение


      Описание категорий внизу Opencart 2.x, модуль OpenCart, веб-студия NeoSeo
      Дополнение перемещает описание категории вниз страницы.
      АКЦИЯ! При покупке наших модулей - адаптация под вашу тему оформления в ПОДАРОК! Детальнее об акции:
       
      Attention, только в NeoSeo:
       
      1. Внимание: Открытый код!
      2. Все обновления к купленным модулям - бесплатно и навсегда.
      3. Техническая поддержка и оперативные ответы на вопросы - бесплатно и навсегда.
      4. NEW! Помощь в установке и устранении ошибок при установке модулей - бесплатно и навсегда, но в порядке общей очереди.
      5. NEW! Оперативный удаленный помощник по TeamViewer по специальному тарифу, 15 мин. - 369 руб. для тех, кому нужно уже, не дожидаясь бесплатной поддержки, которая предоставляется в порядке общей очереди.
       
      Если у Вас есть вопросы, пожалуйста, напишите в ЛС или на info@neoseo.com.ua или позвоните нам:
      Россия, все звонки бесплатно
      8 800 551 94 15
        Украина: +380 67 67 07 647 +380 63 71 70 763
      +380 50 34 58 565
       
       
      МЫ РАБОТАЕМ:
      Понедельник-пятница 
      с 9-00 до 19-00 по Киевскому времени 
       
       
      Суббота и Воскресенье
      - выходные дни!
       
      Лицензионные условия.
      Пожалуйста, внимательно читайте то, что написано на странице каждого модуля в инструкции
      по установке и обновлениям:
       
      1. Данный модуль устанавливается без лицензии
       
      2. Распакуйте архив с модулем и загрузите содержимое папки upload на сайт
       
      3. Установите модуль посредством меню Дополнения / Модули
       
      4. Установите права на просмотр модуля нужным пользователям
       
      5. Зайдите в настройки модуля, укажите нужные параметры и сохраните настройки.
       
      ВАЖНО! Если вы видите сообщение о том, что файл лицензии не найден не переходите к этапу #7.
      В таком случае ознакомьтесь со статьей https://neoseo.com.ua/otsutstvuet-fayl-licenzii
      или напишите нам на support@neoseo.com.ua, мы поможем выявить причину не активации лицензии. Если вы убедились в том, что модуль видит лицензию, вы можете переходить к следующему пункту.
       
      6. Обновите модификаторы (Дополнения / Модификаторы)
       
      Общий порядок обновления модулей:
      Советы:
       
       
      Пробуйте бесплатно!
      Напишите на почту: license@neoseo.com.ua и мы выдадим вам тестовую лицензию на 14 дней!
       
      Важно. Условия бесплатной и платной
      информационной и технической поддержки.
       
      Очень часто спрашивают:

      Преимущества модулей от NeoSeo:
       
      Посмотреть работу модуля вы сможете тут:
      https://demo.neoseo.com.ua/admin
      логин: admin
      пароль: admin
       
      Пожалуйста, ознакомьтесь с полным перечнем наших модулей здесь: https://neoseo.com.ua/moduli-dlya-opencart/
       
      Нажмите здесь http://prntscr.com/j1spte, чтобы быть в курсе всех обновлений.
       
      Уважаемые покупатели, скажите, что может быть лучше для развития модуля, чем публичные обсуждения и отзывы?
      Мы уверены это хороший стимул предоставлять услуги еще лучше ).

      Пожалуйста, все вопросы для обсуждения пишите здесь:
      https://opencartforum.com/topic/67888-opisanie-kategoriy-vnizu-opencart-2x/
       
      Отзыв о работе модуля, пожалуйста, напишите здесь:
      https://opencartforum.com/files/file/3479-opisanie-kategoriy-vnizu-opencart-2x/?tab=reviews
       
      Также, очень рекомендуем Вам, купить и другие наши продукты, которые пригодятся в абсолютно любом магазине.
       
      Спасибо, что вы с нами, всегда рады помочь развитию вашего онлайн-бизнеса!
      Веб-студия NeoSeo - полноценная Команда, решаем любые вопросы оперативно и качественно.
       
      ФУНКЦИОНАЛ НАЗВАНИЕ И ОПИСАНИЕ ССЫЛКИ ИНСТРУМЕНТЫ для
      SEO ПРОДВИЖЕНИЯ:
        1. SEO-Фильтр. Кроме того, что этот модуль предназначен для создания  фильтров, он позволяет создавать сотни или даже тысячи специальных посадочных страниц, чтобы получать из поисковой выдачи средне и низко-частотный трафик бесплатно      2. Генератор robots.txt, без которого поисковые роботы проиндексируют ненужные страницы и понизят вам релевантность  
       
          3. Отслеживание битых ссылок, чтобы не терять трафик впустую      4. Модуль создания редиректов, который позволяют починить битые ссылки     5. Источник заказа, чтобы отслеживать эффективность рекламных кампаний   ПОВЫШЕНИЕ ПРОДАЖ:   1. Выгрузка товаров на Prom.ua, Ava.ua, Hotline, Facebook.com, Яндекс.Маркет, Nadavi.net, Price.ua, Torg.mail.ru и др. прайс-агрегаторы, Модуль для Opencart от веб-студии NeoSeo, который позволяет выгрузить данные для прайс агрегаторов  
        ОБРАБОТКА ТОВАРОВ:   1. Водяной знак, который позволяет автоматически наложить изображение водяного знака на все ваши товары  
       
          2. Обмен с 1С Предприятие     3. Удаление неиспользуемых картинок, без которого ваш каталог с изображениями может порвать хостинг   ОБРАБОТКА ЗАКАЗОВ:   1. Товарный чек     2. Менеджер заказов, без которого просматривать заказы было бы не так удобно  
        БЕЗОПАСНОСТЬ:   1. Резервные копии, без которых можно потерять данные по магазину навсегда  
       
       
      Добавил neoseo Добавлено 19.11.2016 Категория Модули Системные требования PHP 5.3 - 7.1 Сайт разработчика https://neoseo.com.ua Старая цена Метод активации Без активации Ioncube Loader Требуется OpenCart 2.1 ocStore 2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
    • By neoseo
      Дополнение перемещает описание категории вниз страницы.
      АКЦИЯ! При покупке наших модулей - адаптация под вашу тему оформления в ПОДАРОК! Детальнее об акции:
       
      Attention, только в NeoSeo:
       
      1. Внимание: Открытый код!
      2. Все обновления к купленным модулям - бесплатно и навсегда.
      3. Техническая поддержка и оперативные ответы на вопросы - бесплатно и навсегда.
      4. NEW! Помощь в установке и устранении ошибок при установке модулей - бесплатно и навсегда, но в порядке общей очереди.
      5. NEW! Оперативный удаленный помощник по TeamViewer по специальному тарифу, 15 мин. - 369 руб. для тех, кому нужно уже, не дожидаясь бесплатной поддержки, которая предоставляется в порядке общей очереди.
       
      Если у Вас есть вопросы, пожалуйста, напишите в ЛС или на info@neoseo.com.ua или позвоните нам:
      Россия, все звонки бесплатно
      8 800 551 94 15
        Украина: +380 67 67 07 647 +380 63 71 70 763
      +380 50 34 58 565
       
       
      МЫ РАБОТАЕМ:
      Понедельник-пятница 
      с 9-00 до 19-00 по Киевскому времени 
       
       
      Суббота и Воскресенье
      - выходные дни!
       
      Лицензионные условия.
      Пожалуйста, внимательно читайте то, что написано на странице каждого модуля в инструкции
      по установке и обновлениям:
       
      1. Данный модуль устанавливается без лицензии
       
      2. Распакуйте архив с модулем и загрузите содержимое папки upload на сайт
       
      3. Установите модуль посредством меню Дополнения / Модули
       
      4. Установите права на просмотр модуля нужным пользователям
       
      5. Зайдите в настройки модуля, укажите нужные параметры и сохраните настройки.
       
      ВАЖНО! Если вы видите сообщение о том, что файл лицензии не найден не переходите к этапу #7.
      В таком случае ознакомьтесь со статьей https://neoseo.com.ua/otsutstvuet-fayl-licenzii
      или напишите нам на support@neoseo.com.ua, мы поможем выявить причину не активации лицензии. Если вы убедились в том, что модуль видит лицензию, вы можете переходить к следующему пункту.
       
      6. Обновите модификаторы (Дополнения / Модификаторы)
       
      Общий порядок обновления модулей:
      Советы:
       
       
      Пробуйте бесплатно!
      Напишите на почту: license@neoseo.com.ua и мы выдадим вам тестовую лицензию на 14 дней!
       
      Важно. Условия бесплатной и платной
      информационной и технической поддержки.
       
      Очень часто спрашивают:

      Преимущества модулей от NeoSeo:
       
      Посмотреть работу модуля вы сможете тут:
      https://demo.neoseo.com.ua/admin
      логин: admin
      пароль: admin
       
      Пожалуйста, ознакомьтесь с полным перечнем наших модулей здесь: https://neoseo.com.ua/moduli-dlya-opencart/
       
      Нажмите здесь http://prntscr.com/j1spte, чтобы быть в курсе всех обновлений.
       
      Уважаемые покупатели, скажите, что может быть лучше для развития модуля, чем публичные обсуждения и отзывы?
      Мы уверены это хороший стимул предоставлять услуги еще лучше ).

      Пожалуйста, все вопросы для обсуждения пишите здесь:
      https://opencartforum.com/topic/67888-opisanie-kategoriy-vnizu-opencart-2x/
       
      Отзыв о работе модуля, пожалуйста, напишите здесь:
      https://opencartforum.com/files/file/3479-opisanie-kategoriy-vnizu-opencart-2x/?tab=reviews
       
      Также, очень рекомендуем Вам, купить и другие наши продукты, которые пригодятся в абсолютно любом магазине.
       
      Спасибо, что вы с нами, всегда рады помочь развитию вашего онлайн-бизнеса!
      Веб-студия NeoSeo - полноценная Команда, решаем любые вопросы оперативно и качественно.
       
      ФУНКЦИОНАЛ НАЗВАНИЕ И ОПИСАНИЕ ССЫЛКИ ИНСТРУМЕНТЫ для
      SEO ПРОДВИЖЕНИЯ:
        1. SEO-Фильтр. Кроме того, что этот модуль предназначен для создания  фильтров, он позволяет создавать сотни или даже тысячи специальных посадочных страниц, чтобы получать из поисковой выдачи средне и низко-частотный трафик бесплатно      2. Генератор robots.txt, без которого поисковые роботы проиндексируют ненужные страницы и понизят вам релевантность  
       
          3. Отслеживание битых ссылок, чтобы не терять трафик впустую      4. Модуль создания редиректов, который позволяют починить битые ссылки     5. Источник заказа, чтобы отслеживать эффективность рекламных кампаний   ПОВЫШЕНИЕ ПРОДАЖ:   1. Выгрузка товаров на Prom.ua, Ava.ua, Hotline, Facebook.com, Яндекс.Маркет, Nadavi.net, Price.ua, Torg.mail.ru и др. прайс-агрегаторы, Модуль для Opencart от веб-студии NeoSeo, который позволяет выгрузить данные для прайс агрегаторов  
        ОБРАБОТКА ТОВАРОВ:   1. Водяной знак, который позволяет автоматически наложить изображение водяного знака на все ваши товары  
       
          2. Обмен с 1С Предприятие     3. Удаление неиспользуемых картинок, без которого ваш каталог с изображениями может порвать хостинг   ОБРАБОТКА ЗАКАЗОВ:   1. Товарный чек     2. Менеджер заказов, без которого просматривать заказы было бы не так удобно  
        БЕЗОПАСНОСТЬ:   1. Резервные копии, без которых можно потерять данные по магазину навсегда  
       
       
    • By legioner26
      399.00 руб
      Скачать/Купить дополнение


      Многофункциональный модуль меню Категорий
      Разработан многофункциональный модификатор меню категорий товаров, который позволяет прям из админ панели решать массу задач без участия программиста. Очень простая и легкая установка.
      Так же внедрена мобильная версия модуля.
      Модификатор создан для изменения и добавления функционала в стандартный модуль категорий всех версий веток ОС начиная от 2.0 и заканчивая 3.0
      Обновление модификатора до версии ОС 3.0
      ПРИМЕЧАНИЕ !!!
      Для корректной установки и работы модификатора настоятельно рекомендую проверить были ли изменены файлы стандартного модуля категорий, 
      либо удостовериться что нет сторонних модификаторов которые бы меняли функционал.
      В случае если файлы изменены, можете добавить к ним префикс к примеру (category_1.tpl) и залить файлы из коробки ОС. 
       
       
      АКЦИЯ ДО КОНЦА МАЯ !!!
       
      Установка:
      1. Папку Admin закинуть на хостинг в корень сайта 
      2. Устанавливаете модификатор согласно вашей версии ОС через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
      ИНСТРУКЦИЯ во вложении
      DEMO Логин: demo Пароль: demo
      https://siacosmetics.ru/lico1/dlya-lica/krem-dlya-lica  - С вертикальным выпадом
      https://teplomir26.ru/ - С горизонтальным выпадом
       
      https://opencartforum.com/profile/723002-legioner26/?tab=field_core_pfield_13 ->> Собственный программный модуль по парсингу товаров под управлением OpenCart
      Добавил legioner26 Добавлено 12.02.2018 Категория Меню, дизайн, внешний вид Системные требования Сайт разработчика Старая цена 700 Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет  
    • By nikifalex
      1 950.00 руб
      Скачать/Купить дополнение


      Модуль автокатегорий
      Первым трем покупателям небольшие доработки модуля под ваши особенности и советы по правильному применению. И постоянная акция - если вам модуль не подходит по каким-то причинам, то полный возврат оплаченной суммы.   
      Модуль позволяет автоматически добавить в категорию товары, подходящие под условия.
      Модуль не создает категории сам. Категории вы создаете сами, с нужными тегами, иерархией, как угодно.
      Поэтому в результате можно создать произвольную гибкую структуру категорий.
      ну а модуль просто добавит товары в эти категории по определенным критериям. Автоматически.
       
      Для добавления товаров в категорию можно использовать неограниченное количество фильтров,
      каждый из которых может включать
      - название и значение (либо диапазон значений) атрибута.
      - диапазон цены
      - учитывать акции товара - либо все, либо только с акцией, либо только без акции
      - производитель
      - наличие подстроки в названии товара
      - категория
      в категорию добавляются товары, целиком подходящие под все фильтры.
      Обрабатывать можно как отдельную одну категорию, так и все категории сразу.
      Все товары, которые не подходят, удаляются из этой категории.
      Модуль позволяет делать страницы-категории в которых будут тематические группы товаров.
      например:
      1) женская одежда на осень больших размеров
      2) кухонные принадлежности tefal с ценой меньше 2000 руб по распродаже
      3) автомобильные шины шириной от 195 до 225, профилем от 55 до 60 и диаметром 16

      Поскольку это обычная категория, у этой страницы  могут быть все SEO теги, описание, SEO URL, на странице может работать фильтр
      и любые другие модули.
      Что очень хорошо подходит для SEO продвижения и лендингов.
      Также такие категории можно ставить внутрь категорий, в меню, в тематические подборки, что улучшает навигацию по сайту
      и помогает пользователю сразу перейти в нужные товары. Ссылки на эти категории можно ставить на баннеры, слайдеры и
      прочие рекламные материалы.

      установка:
      1) загрузить файл nkf_autocategory_oc23_1_1.ocmod.zip через установку расширений в админке.
      2) обновить модификаторы
      3) активировать модуль в расширения-модули
      4) зайти в модуль и поставить статус "включено"
      Теперь в категории можно указать параметры для выбора товаров. И потом перейти в модуль и в модуле нажать "запустить"
      Модуль работает на opencart 2.3, ocstore 2.3, ocshop 2.3 Модуль не затирает системные файлы. Язык модуля - Русский. 

      Политика безусловного возврата: В течение недели после покупки вы можете запросить полный возврат денег за покупку, если вы не удовлетворены качеством модуля. Все что надо это написать в личку, указать причину и реквизиты для перевода.
      Добавил nikifalex Добавлено 23.03.2019 Категория Прочее Системные требования Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3 Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.