Jump to content

Search the Community

Showing results for tags 'diy'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Документация OpenCart
  • Документация OpenCart

Forums

  • Основной
    • Новости и объявления
    • Идеи, Предложения и Пожелания
    • About pirates, Varese and scammers
    • Руководство по OpenCart
    • Forum technical support
  • CMS OpenCart 4
    • Общие вопросы по OpenCart 4
    • Поиск Модулей под OpenCart 4
    • Отчёты об Ошибках в OpenCart 4
  • CMS OpenCart 3
    • General questions on OpenCart 3
    • Поиск Модулей под OpenCart 3
    • Отчёты об Ошибках в OpenCart 3
  • CMS OpenCart 2
    • Общие вопросы по OpenCart 2
    • Поиск Модулей под OpenCart 2
    • Отчёты об Ошибках в OpenCart 2
  • Общий Раздел
    • Общие Вопросы по OpenCart
    • Установка и Настройка OpenCart
    • Обновление OpenCart, Миграция
    • Установка Модулей их Настройка
    • Вопросы по Безопасности OpenCart
    • Ускорение и Оптимизация OpenCart
    • SEO Оптимизация OpenCart
    • Помощь Программистам и Разработчикам
  • Дополнительный Раздел
    • Хостинг и сервера
    • Электронная Коммерция
    • SEO Продвижение и Реклама
    • AMP и Мобильные Приложения
    • Посторонние Темы Обсуждаем Тут
  • Запросы на Услуги
    • Интернет Магазины
    • Разработка модулей
    • Администрирование
    • Наполнение Контентом
    • Доработка Функционала
    • Оптимизация и Ускорение
    • Верстка, Дизайн, Шаблоны
    • Обновление OpenCart, Миграция
    • Поисковая Оптимизация, Реклама
  • Тех поддержка расширений
    • Шаблоны, Темы оформления
    • Дизайн, Макеты
    • Виджеты, Модули
    • Меню и Навигация
    • Блоги, Новости, Статьи
    • Отзывы и Комментарии
    • Слайдшоу, Баннеры, Галереи
    • Поиск по сайту
    • Фильтры, Сортировка
    • Опции товара
    • Комплекты, Серии товаров
    • Атрибуты товара
    • Цены, Скидки, Акции
    • Программы лояльности
    • Бонусы, Купоны, Сертификаты
    • Оформление заказа, Корзина
    • Регистрация и Авторизация
    • Обмен данными
    • Импорт и Экспорт
    • Парсеры и Грабберы
    • Массовые редакторы
    • Способы доставки
    • Налоги и Учёт в заказе
    • POS and CRE Fiscalization
    • Платежные системы
    • Письма, Рассылки, sms
    • Обратная связь, Звонки
    • Сравнение и Избранные товары
    • Администрирование
    • Безопасность и Защита
    • Отчёты и Статистика
    • Seo оптимизация, Карта сайта
    • Сжатие, Ускорение, Кэширование
    • Мультимагазины
    • Warehouses and Suppliers
    • Dropshipping and affiliate networks
    • Booking and Online recording
    • Marketplaces, Bulletin Boards
    • Embedded Services
    • Прочие Решения для OpenCart
    • OpenCart и сборки
    • Локализации, Языковые Пакеты
    • Дополнительные инструменты

Blogs

  • OpenCart DIY - Бери и делай
  • Сервер, Linux и т.д.
  • Полезное с бесполезным
  • Записки Панды
  • Записки
  • Поставщики для Интернет-Магазинов

Categories

  • Шаблоны, Темы оформления
  • Дизайн, Макеты
  • Виджеты, Модули
  • Меню, Навигация
  • Блоги, Новости, Статьи
  • Отзывы и Комментарии
  • Слайдшоу, Банеры, Галереи
  • Поиск по сайту
  • Фильтры, Сортировка
  • Опции товара
  • Комплекты, Серии товаров
  • Атрибуты товара
  • Цены, Скидки, Акции
  • Loyalty programs
  • Бонусы, Купоны, Сертификаты
  • Оформление заказа, Корзина
  • Регистрация и Авторизация
  • Обмен данными
  • Импорт и Экспорт
  • Парсеры и Грабберы
  • Массовые редакторы
  • Способы доставки
  • Налоги и Учёт в заказе
  • POS and CRE Fiscalization
  • Платежные системы
  • Письма, Рассылки, sms
  • Обратная связь, Звонки
  • Сравнение и Избранные товары
  • Администрирование
  • Безопасность и Защита
  • Отчёты и Статистика
  • Seo оптимизация, Карта сайта, Теги
  • Сжатие, Ускорение, Кэширование
  • Мультимагазины
  • Warehouses and Suppliers
  • Dropshipping and affiliate networks
  • Booking and Online recording
  • Торговые площадки, Доски Объявлений
  • Встраиваемые сервисы
  • Прочие Решения
  • OpenCart и сборки
  • Локализация, Языковые пакеты
  • Дополнительные инструменты
  • Услуги и Сервис

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 1 result

  1. Для различных типов товаров часто возникает необходимость вывести товары в рекомендуемые автоматически, по определённому критерию. Нередко товары группируются по коллекциям, но штатными средствами OpenCart нет возможности их корректно объединить и добавить автоматически друг к другу как рекомендуемые товары. Эта небольшая доработка позволяет без дополнительных модулей реализовать вывод товаров коллекции в рекомендуемые автоматически, и избавляет вас от необходимости добавлять каждый товар друг к другу вручную. Данная доработка не затрагивает шаблоны, поэтому подходит для любой версии движка и сборки. Для примера рассматривается вариант объединения в коллекции по совпадению поля EAN. По принципу - если поле EAN не пустое, то выводим такие товары в рекомендуемые. В файле catalog/controller/product/product.php Находим строку: $results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); И заменяем её на это: $results = $this->model_catalog_product->getProductRelatedCollection($product_info); В файле catalog/model/catalog/product.php Перед строкой: public function getProductRelated($product_id) { Добавляем: public function getProductRelatedCollection($product) { // Поле товара, по которому идёт выборка коллекции $collection_field = 'ean'; $product_data = array(); if (!empty($product[$collection_field])) { $query = $this->db->query("SELECT product_id FROM " . DB_PREFIX . "product WHERE product_id != '" . (int)$product['product_id'] . "' AND status = '1' AND `" . $this->db->escape($collection_field) . "` LIKE '" . $this->db->escape($product[$collection_field]) . "' ORDER BY sort_order"); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } } return $product_data; } Если нужно выбирать товары только того же производителя, то функция должна выглядеть так: public function getProductRelatedCollection($product) { // Поле товара, по которому идёт выборка коллекции $collection_field = 'ean'; $product_data = array(); if (!empty($product[$collection_field])) { $query = $this->db->query("SELECT product_id FROM " . DB_PREFIX . "product WHERE product_id != '" . (int)$product['product_id'] . "' AND status = '1' AND manufacturer_id = '" . (int)$product['manufacturer_id'] . "' AND `" . $this->db->escape($collection_field) . "` LIKE '" . $this->db->escape($product[$collection_field]) . "' ORDER BY sort_order"); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } } return $product_data; } Если у вас много товаров, то стоит зайти в phpMyAdmin и добавить индекс для поля EAN. Это ускорит выборку товаров для коллекции. Добавить индекс можно таким запросом: ALTER TABLE `oc_product` ADD INDEX `ean` (`ean`) Обратите внимание на префикс 'oc_', он у вас может отличаться или отсутствовать.
×
×
  • Create New...