COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

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


Kudaug

Recommended Posts

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

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

  • RHCk changed the title to Вывод товаров по категориям на одной странице
Скрытый текст

$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)
                    );
                }
            }
        }

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

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

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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