Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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

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.