Вывод товаров по категориям на одной странице


Kudaug
 Поделиться

Рекомендуемые сообщения

Добрый день, помогите , пожалуйста, сформировать запрос на вывод товаров с привязкой к категориям. Т.е мне нужно вывести не все категории а 4 основных на одной странице. Никак не получается. Или все товары выводятся или только по одной конкретной, которой указала id

Ссылка на комментарий
Поделиться на других сайтах

  • RHCk изменил(а) заголовок на Вывод товаров по категориям на одной странице
Скрытый текст

$this->load->model('catalog/category');
        
        $data['categories'] = array();

        $results = $this->model_catalog_category->getCategories($category_id);

        foreach ($results as $result) {
            $filter_data = array(
                'filter_category_id'  => $result['category_id'],
                'filter_sub_category' => true
            );
        }

 

        $filter_data = array(
            'filter_category_id' => $category_id,
        );

        $results = $this->model_catalog_product->getProducts($filter_data);

Так приходят все товары

Если я добавляю $category_id = 60; то приходят товары которые связанны с категорией id=60, а мне получается нужно еще 3 основных категории добавить к выводу

Ссылка на комментарий
Поделиться на других сайтах

32 минуты назад, Kudaug сказал:

        $results = $this->model_catalog_product->getProducts($filter_data);

Так приходят все товары

неправильно, вот так они все приходят:
$results = $this->model_catalog_product->getProducts(0);

Ссылка на комментарий
Поделиться на других сайтах

32 минуты назад, Kudaug сказал:

Верно, так тоже приходят все товары, но я ищу возможность связать их с категориями

 

 

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

        $data['products'] = array();

        $results = $this->model_catalog_category->getCategories(0);

        foreach ($results as $result) {
            if ($result['category_id'] == 18 || $result['category_id'] == 20) {
                $filter_data = array(
                    'filter_category_id' => $result['category_id'],
                    'filter_sub_category' => true
                );
            
                $product_total = $this->model_catalog_product->getTotalProducts($filter_data);

                $results = $this->model_catalog_product->getProducts($filter_data);

                foreach ($results as $result) {
                    if ($result['image']) {
                        $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                    } else {
                        $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                    }

                    if (($this->config->get('config_customer_price') && $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')));
                    } 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')));
                    } else {
                        $special = false;
                    }

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

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

                    $data['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('config_product_description_length')) . '..',
                        'price'       => $price,
                        'special'     => $special,
                        'tax'         => $tax,
                        'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
                        'rating'      => $result['rating'],
                        'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
                    );
                }
            }
        }

 

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Показать вместо этого как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Нельзя вставлять изображения напрямую. Загрузите или вставьте изображения по URL.

 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу