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

[Поддержка] Скрытие категорий от групп покупателей Hide Categories From Customer Groups 1.5.x-2.x-3.x


Recommended Posts

Скрытие категорий от групп покупателей Hide Categories From Customer Groups 1.5.x-2.x-3.x


 

Модуль позволяет скрыть категории товаров и товары которые в них находятся от некоторых групп покупателей путем установки галочки напротив группы покупателей в настройках категории (на скриншоте)

 

Примеры использования: 

- Оптовые категории и и товары в них и розничные, которые не пересекаются

- "Временные категории" для обработки прайсов, недооформленных товаров и тп

- Переучет в какой-либо категории

- и многое другое

 

 

ОЧЕНЬ ВАЖНО!!!

Модуль использует стандартный функционал и изменяет стандартные модели категории и товара для определения доступа

 

Если у вас какой-то модуль супермегаменю или суперстена категорий, который использует свои модели, отличающиеся от "родных" - адаптация недорогая но платная

 

Под популярные шаблоны - >300 покупок на форуме - адаптация бесплатная, под остальные - недорого, пишите в лс

 

Уточняйте эти моменты ДО покупки!

 

 

Имеются патчи под шаблоны:

1. Newstore

2. Revolution

Лицензия - 1 домен

 

Какие-то вопросы - пишите в личку, разберемся :)


  • Добавил
  • Добавлено
    21.06.2018
  • Категория
  • Системные требования
  • Метод активации
    Автоматическая активация
  • Ioncube Loader
    Нет
  • OpenCart
    3.0
    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.5.1
    1.5.5
    1.5.4.1
    1.5.3.1
  • ocStore
    2.3
    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
    1.5.3.1
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
    Opencart.pro 2.1
    OcShop 2.0.3.х
  • Обращение к серверу разработчика
    Нет

 

  • +1 1
Link to post
Share on other sites

ну вот , кайф
у меня как раз наработок под оптовые сайты прилично, теперь и это будет

 

 

Link to post
Share on other sites
  • 2 months later...

Интересный модуль. А как с этим всем дружит фильтр товаров, он также не видит ни эти категории ни товары в них, соответвенно в фильтрацию они не попадают?

Сможет ли Ваш модуль решить следующую проблему:

Есть конструктор одежды, и по функционалу своему он использует товар, который забит в товары (использует его опции ,атрибуты, картинки и прочее), в связи с этим если товар одновременно продается как сам по себе так и используется в конструкторе, приходится дублировать товар в отдельную категорию. Тогда эта категория сразу же появляется и на сайте в навигационном меню и те товары что были туда продублированы также появляются в выдаче. Если с помощью Вашего модуля закрыть от отображения эту папку для покупателей на сайте, будет ли эта категория и самое главное, товары видны в конструкторе или они для него тоже заблокируются?

И последний вопрос: Ваш модуль с шаблоном shop-store2 дружит или потребуется доработка?

Link to post
Share on other sites

  • 1 month later...

Есть такое только для товаров? Нужно определенным группам покупателей открыть только определенный товар.

Link to post
Share on other sites

  • 1 month later...

После установки не открывается главная, появляется ошибка:

 

Fatal error: Can't use method return value in write context in /system/storage/modification/catalog/model/catalog/category.php on line 4

 

Привожу код самого файла /system/storage/modification/catalog/model/catalog/category.php

 

Спойлер

<?php
class ModelCatalogCategory extends Model {
	public function getCategory($category_id) {
		$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ".(!empty($this->customer->hideCategories()) ? "AND c.category_id NOT IN (" . implode(',', $this->customer->hideCategories()).")": '')."");

		return $query->row;
	}

	public function getCategories($parent_id = 0) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "'  AND c.status = '1' ".(!empty($this->customer->hideCategories()) ? "AND c.category_id NOT IN (" . implode(',', $this->customer->hideCategories()).")": '')." ORDER BY c.sort_order, LCASE(cd.name)");

		return $query->rows;
	}

	public function getCategoryFilters($category_id) {
		$implode = array();

		$query = $this->db->query("SELECT filter_id FROM " . DB_PREFIX . "category_filter WHERE category_id = '" . (int)$category_id . "'");

		foreach ($query->rows as $result) {
			$implode[] = (int)$result['filter_id'];
		}

		$filter_group_data = array();

		if ($implode) {
			$filter_group_query = $this->db->query("SELECT DISTINCT f.filter_group_id, fgd.name, fg.sort_order FROM " . DB_PREFIX . "filter f LEFT JOIN " . DB_PREFIX . "filter_group fg ON (f.filter_group_id = fg.filter_group_id) LEFT JOIN " . DB_PREFIX . "filter_group_description fgd ON (fg.filter_group_id = fgd.filter_group_id) WHERE f.filter_id IN (" . implode(',', $implode) . ") AND fgd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY f.filter_group_id ORDER BY fg.sort_order, LCASE(fgd.name)");

			foreach ($filter_group_query->rows as $filter_group) {
				$filter_data = array();

				$filter_query = $this->db->query("SELECT DISTINCT f.filter_id, fd.name FROM " . DB_PREFIX . "filter f LEFT JOIN " . DB_PREFIX . "filter_description fd ON (f.filter_id = fd.filter_id) WHERE f.filter_id IN (" . implode(',', $implode) . ") AND f.filter_group_id = '" . (int)$filter_group['filter_group_id'] . "' AND fd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY f.sort_order, LCASE(fd.name)");

				foreach ($filter_query->rows as $filter) {
					$filter_data[] = array(
						'filter_id' => $filter['filter_id'],
						'name'      => $filter['name']
					);
				}

				if ($filter_data) {
					$filter_group_data[] = array(
						'filter_group_id' => $filter_group['filter_group_id'],
						'name'            => $filter_group['name'],
						'filter'          => $filter_data
					);
				}
			}
		}

		return $filter_group_data;
	}

	public function getCategoryLayoutId($category_id) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category_to_layout WHERE category_id = '" . (int)$category_id . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'");

		if ($query->num_rows) {
			return $query->row['layout_id'];
		} else {
			return 0;
		}
	}

	public function getTotalCategoriesByCategoryId($parent_id = 0) {
		$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ".(!empty($this->customer->hideCategories()) ? "AND c.category_id NOT IN (" . implode(',', $this->customer->hideCategories()).")": '')."");

		return $query->row['total'];
	}
}

 

 

 

ocStore 2.3.0.2.3, тема стандартная. В какую сторону копать?

Link to post
Share on other sites

  • 1 year later...

DEL.
 

Edited by Nigadyai
вопрос решен самостоятельно
Link to post
Share on other sites

  • 1 year later...

Возникла необходимость закрыть общую категорию, в ней все товары, но если ее закрыть товары все не доступны.
Сайт на ocStore 2.3, есть выбор главной категории.
Наверное нужно в этой строке что то дописать, что бы брало товары с категорий в которых main_category=1

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "hide_category hc JOIN " . DB_PREFIX . "product_to_category pc ON (hc.category_id = pc.category_id) WHERE customer_group_id = '" . (int)$this->getGroupId() . "'");

 

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 ibond
      Модуль дает возможность массово устанавливать акции на товары определенных производителей и/или категорий. Принцип работы такой же, как и в карточке товара. Не затрагивает уже установленные акции при условии если массовая акция на производителя или категорию не совпадает с одиночной акцией.
       
      Не использует ocmod.
      Не использует vqmod.
      Не заменяет файлов.
       
      Установка: инструкция внутри архива.
       
      Демонстрация (admin).
      Логин: demo
      Пароль: demo
       
      Демонстрация (страница категории).
       
       
    • By ibond
      750 10
      Скачать/Купить дополнение


      Акции по производителям и/или категориям для Opencart
      Модуль дает возможность массово устанавливать акции на товары определенных производителей и/или категорий. Принцип работы такой же, как и в карточке товара. Не затрагивает уже установленные акции при условии если массовая акция на производителя или категорию не совпадает с одиночной акцией.
       
      Не использует ocmod.
      Не использует vqmod.
      Не заменяет файлов.
       
      Установка: инструкция внутри архива.
       
      Демонстрация (admin).
      Логин: demo
      Пароль: demo
       
      Демонстрация (страница категории).
       
       
      Добавил ibond Добавлено 09.09.2018 Категория Цены, скидки, акции, подарки Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By ibond
      900 13
      Скачать/Купить дополнение


      Редактор товаров в админке + Фильтр по производителю, категории, артикулу, изображению и ID
      Дополнение добавляет возможность фильтровать товары в административной панели Opencart по производителям, категориям, артикулу (Sku), изображениям и ID товара. Добавляет колонки ID товара, Артикул, Производители и  Категории в списке товаров и позволяет включать/отключать для просмотра колонки по выбору. Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий.
       
      Более 115 интернет-магазинов уже используют этот модуль!
      (информация на 1 декабря 2019 года)
       
      NEW! В версии 3.2 добавлена возможность редактирования изображений, названия, модели, артикула, производителя, категорий (совместим с SEO_PRO), цены, акционной цены, количества и статуса товара не заходя в товар. Добавлена возможность группового Включения/Отключения отфильтрованных товаров. Добавлена возможность скрытия левого меню и фильтра.
       
      Демонстрация (admin):
      Логин: demo / Пароль: demo
      https://demo3ru.open.cc.ua/admin/index.php?route=catalog/product
       
      Не заменяет файлов, все изменения вносятся через OCMOD или jQuery.
       
      Работает (тестировался): OpenCart: 3.0.0.0, 3.0.1.1, 3.0.1.2, 3.0.2.0, 3.0.3.x; ocStore: 3.0.2.0.
       
      ВНИМАНИЕ!
      Версия 3.2 требует Ioncube Loader не ниже версии 10 и PHP не ниже версии 5.6 (поддерживает версии PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4)! Лицензия активируется автоматически. Тех, кто не указал домен при покупке, прошу указать его в ЛС или письмом на адрес i.bond@mail.ru указав при этом номер счета и ник на данном форуме.  
      Установка:
      Загрузить файл в установках расширений, перейти в модификаторы и обновить.
       
      Что нового в версии 3.2.2:
      Добавлена совместимость с ocStore 3.0.2.0. Исправлены мелкие ошибки.  
      Что нового в версии 3.2.1.2:
      Исправлены мелкие ошибки.  
      Что нового в версии 3.2.0:
      Добавлена возможность редактирования изображений, названия, модели, артикула, производителя, категорий (совместим с SEO_PRO), цены, акционной цены, количества и статуса товара не заходя в товар. Добавлена возможность группового Включения/Отключения отфильтрованных товаров. Добавлена возможность скрытия левого меню и фильтра.  
      Что нового в версии 3.1.0:
      Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий. Добавлена колонка производители в список товаров. Добавлена сортировка по производителю.  
      Что нового в версии 3.0.1:
      Исправлены мелкие ошибки. Добавил ibond Добавлено 16.10.2018 Категория Фильтры Системные требования Метод активации Автоматическая активация Ioncube Loader Требуется OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Да  
    • By ibond
      Дополнение добавляет возможность фильтровать товары в административной панели Opencart по производителям, категориям, артикулу (Sku), изображениям и ID товара. Добавляет колонки ID товара, Артикул, Производители и  Категории в списке товаров и позволяет включать/отключать для просмотра колонки по выбору. Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий.
       
      Более 115 интернет-магазинов уже используют этот модуль!
      (информация на 1 декабря 2019 года)
       
      NEW! В версии 3.2 добавлена возможность редактирования изображений, названия, модели, артикула, производителя, категорий (совместим с SEO_PRO), цены, акционной цены, количества и статуса товара не заходя в товар. Добавлена возможность группового Включения/Отключения отфильтрованных товаров. Добавлена возможность скрытия левого меню и фильтра.
       
      Демонстрация (admin):
      Логин: demo / Пароль: demo
      https://demo3ru.open.cc.ua/admin/index.php?route=catalog/product
       
      Не заменяет файлов, все изменения вносятся через OCMOD или jQuery.
       
      Работает (тестировался): OpenCart: 3.0.0.0, 3.0.1.1, 3.0.1.2, 3.0.2.0, 3.0.3.x; ocStore: 3.0.2.0.
       
      ВНИМАНИЕ!
      Версия 3.2 требует Ioncube Loader не ниже версии 10 и PHP не ниже версии 5.6 (поддерживает версии PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4)! Лицензия активируется автоматически. Тех, кто не указал домен при покупке, прошу указать его в ЛС или письмом на адрес i.bond@mail.ru указав при этом номер счета и ник на данном форуме.  
      Установка:
      Загрузить файл в установках расширений, перейти в модификаторы и обновить.
       
      Что нового в версии 3.2.2:
      Добавлена совместимость с ocStore 3.0.2.0. Исправлены мелкие ошибки.  
      Что нового в версии 3.2.1.2:
      Исправлены мелкие ошибки.  
      Что нового в версии 3.2.0:
      Добавлена возможность редактирования изображений, названия, модели, артикула, производителя, категорий (совместим с SEO_PRO), цены, акционной цены, количества и статуса товара не заходя в товар. Добавлена возможность группового Включения/Отключения отфильтрованных товаров. Добавлена возможность скрытия левого меню и фильтра.  
      Что нового в версии 3.1.0:
      Добавлена возможность выбора для фильтрации нескольких производителей и/или категорий. Добавлена колонка производители в список товаров. Добавлена сортировка по производителю.  
      Что нового в версии 3.0.1:
      Исправлены мелкие ошибки.
    • By vvo
      Приветствую
       
      при импорте товара в опенкарт (ocStore-2.3.0.2.4) не заполняется поле "главная категория", в связи с чем (если у товара несколько категорий) в крошках товар показывается в категории с меньшим id.
       
      в бд поле есть, заполняется если вручную в админке товару проставить.
       
      как установить главную категорию? товаров много, категорий много. некоторые товары кроме родительской также находятся в других категориях.


  • 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.