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

[Поддержка] Скрытие категорий от групп покупателей 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


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


 

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

 

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

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

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

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

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

 

 

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

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

 

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

 

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

 

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

 

 

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

1. Newstore

2. Revolution

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

 

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


  • Добавил
  • Добавлено
    21.06.2018
  • Категория
  • Системные требования
  • Метод активации
    Автоматическая активация
  • Ioncube Loader
    Нет
  • ocStore
    3.0
    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 comment
Share on other sites

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

 

 

Link to comment
Share on other sites


  • 2 months later...

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

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

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

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

Link to comment
Share on other sites


  • 1 month later...
  • 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 comment
Share on other sites


  • 1 year later...
  • 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 comment
Share on other sites


  • 4 weeks later...

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

Link to comment
Share on other sites


7 минут назад, pro100m сказал:

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

 

все что проходит через getProduct - не будет 

 

если разработчики следовали стандартам то нигде не будет 

Link to comment
Share on other sites

  • 1 month later...
48 минут назад, enique сказал:

День добрый. Будет ли модуль работать на OCstore 3 ?

будет 

Link to comment
Share on other sites

  • 5 months later...
В 10.06.2022 в 16:08, kwakin сказал:

Скрыть товары без категорий можно ? 

 

можно 

юз кейс такой 

делаете отключенную категорию и добавляете туда товары которые хотите скрыть 

Link to comment
Share on other sites

  • 3 months later...

Добрый день.
Купил сегодня у вас дополнение, установил. Перестала открываться главная страница магазина, появляются ошибки.

Через админку не открываются категории, тоже выскакивают ошибки. Отключаю модуль все работает.

Версия ocStore 2.3.0.2.4
Шаблон 
NewStore
Ошибка на главной:

Скрытый текст

Fatal error: Uncaught Exception: Error: Table 'cctv1_wp.oc_hide_category' doesn't exist<br />Error No: 1146<br />SELECT * FROM oc_hide_category WHERE customer_group_id = '1' in /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/library/db/mysqli.php:46 Stack trace: #0 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/library/db.php(16): DB\MySQLi->query('SELECT * FROM o...', Array) #1 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/storage/modification/system/library/cart/customer.php(106): DB->query('SELECT * FROM o...') #2 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/storage/modification/catalog/model/catalog/category.php(4): Cart\Customer->hideCategories() #3 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/storage/modification/system/engine/loader.php(178): ModelCatalogCategory->getCategory('20') #4 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/engine/proxy.php(25): Loader->{closure}(Array, Array) #5 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/catalog/controller/extension/module/wallcategory.ph in /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/library/db/mysqli.php on line 46


Ошибка при открытии категорий через админку:
 

Скрытый текст

Fatal error: Uncaught Exception: Error: Table 'cctv1_wp.oc_hide_category' doesn't exist<br />Error No: 1146<br />SELECT * FROM oc_hide_category WHERE category_id = '73' in /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/library/db/mysqli.php:46 Stack trace: #0 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/library/db.php(16): DB\MySQLi->query('SELECT * FROM o...', Array) #1 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/storage/modification/admin/model/catalog/category.php(308): DB->query('SELECT * FROM o...') #2 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/storage/modification/system/engine/loader.php(178): ModelCatalogCategory->getHideFromCustomerGroups('73') #3 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/engine/proxy.php(25): Loader->{closure}(Array, Array) #4 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/storage/modification/admin/controller/catalog/category.php(444): Proxy->__call('getHideFromCust...', Array) #5 /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/storage/modificatio in /sata2/home/users/cctv1/www/www.cctv.kiev.ua/system/library/db/mysqli.php on line 46

 

Подскажите куда смотреть?

Link to comment
Share on other sites


В 27.09.2022 в 13:11, Eugen47 сказал:

Подскажите куда смотреть?

не создалась таблица при установке 

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

не получится - пишите в почту [email protected] 

Link to comment
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
 Share

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