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

вывод товаров из подкатегорий!


Ptenec
 Share

Recommended Posts

ребят всем привет тем кто спит и не спит! вопрос довольно простой!       к примеру есть родительская категория навезем её Папа  и к ней привязаны под категории малыш 1 с 20 товарами и  малыш 2 с 57 товарами  врубаешь подсчет товаров  дабы при заходе на главную врубалось какое количества товаров в под категориях! ко мне обратился знакомый и начал расспрашивать как это дело все вывести, как количество в названии под категорий!  сам такому не задавался но стало интересно!  ибо человек хочет в родительской категории вывести товары которые привязаны к подкатегории родителя

 

порекомендовал ему модуль productcategory что лежит бесплатно на оф сайте англ версии но человеку лень жопу гнуть чтобы добавить категории для вывода товаров! есть у вас мысли на данный счет?

Link to comment
Share on other sites

13 минут назад, Ptenec сказал:

как это дело все вывести, как количество в названии под категорий 

Если речь про вывод количества товара в под-категориях не в модуле Категорий а в списке который выводится ниже названия категории (уточнить поиск), то это есть изначально уже в самом опенкарт.


catalog\controller\product\category.php

$data['categories'][] = array(
					'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),

 

Link to comment
Share on other sites

3 минуты назад, Tom сказал:

Если речь про вывод количества товара в под-категориях не в модуле Категорий а в списке который выводится ниже названия категории (уточнить поиск), то это есть изначально уже в самом опенкарт.


catalog\controller\product\category.php

$data['categories'][] = array(
					'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),

 

 

речь о выводе товаров из подкатегорий привязаной к род категории!

род катеогрия

пк (28 товаров)
сланцы (43товара)

 

и имено эти товары вывести в род категогрии 

типа такого

пк
товар1
товар2
-
-
товар28

сланцы 
товар 1
товар 2
товар 43

Link to comment
Share on other sites

Спойлер
$sub_catg = $this->model_catalog_category->getCategories($category_id);
$subcategory = array();
foreach ($sub_catg as $result) {

	$sub_products = array();

	$filter_data = array(
		'filter_category_id' => $result['category_id'],
	);
  
	$sub_prod = $this->model_catalog_product->getProducts($filter_data);
	foreach ($sub_prod as $result) {
		if ($result['image']) {
			$image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height'));
		} else {
			$image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height'));
		}

		if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
			$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
		} else {
			$price = false;
		}

		if ((float)$result['special']) {
			$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
		} else {
			$special = false;
		}

		if ($this->config->get('config_tax')) {
			$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']);
		} else {
			$tax = false;
		}

		if ($this->config->get('config_review_status')) {
			$rating = (int)$result['rating'];
		} else {
			$rating = false;
		}

		$sub_products[] = array(
			'product_id'  => $result['product_id'],
			'thumb'       => $image,
			'name'        => $result['name'],
			'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
			'price'       => $price,
			'special'     => $special,
			'tax'         => $tax,
			'minimum'     => ($result['minimum'] > 0) ? $result['minimum'] : 1,
			'rating'      => $rating,
			'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
		);
	}
  
	$subcategory[] = array(
		'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
		'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
		'sub_products'  => $sub_products
	);
  
  
}

$data['subcategory'] = $subcategory;
Спойлер

<?php foreach ($subcategory as $category) { ?>
  <?php foreach ($sub_products as $product) { ?>

 

и убрать пагинацию в контроллере, а то будет выводить по 15 товаров, основной категории

Спойлер

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				//'start'              => ($page - 1) * $limit,
				//'limit'              => $limit
			);

 

 

 

Edited by Pavel666
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.