Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

OCFilter - Модуль фільтру товарів [Поддержка]


SooR

Recommended Posts

Доброго вечора.
Підкажіть, чи не плануєте ви "Lite" версію цього модулю, суто з базовим функціоналом (наприклад, просто фільтрація товарів по атрибутам, без додаткових налаштувань і т.д.)?
Так як ціна в 38$ трохи кусається.
 
Або можливо є більш прості аналоги, суто для фільтрації по атрибутам?

Надіслати
Поділитися на інших сайтах


У мене у категорії Відеоадаптери у характеристиках є Виробник GPU і просто Виробник. У налаштуваннях OCFilter у лівій колонці видно Виробник GPU, а просто Виробник там немає і на сторінці категорії Виробник також відповідно немає. Чому? Там якийсь кеш потрібно оновити чи щось таке ?

Надіслати
Поділитися на інших сайтах

Добрый день! почему то неделю или 2 недели назад начался грузит сайт базу данных очень много обращении из за этого сайт почти не живой как отключаю модул ocfilter все живет сайт летает! почему и что нужно сделать для устранения не поладок ? именно после настроек так случилось не помню, что трогал 

Надіслати
Поділитися на інших сайтах


@rahmons88 Добрий день. Треба дивитися які запити і при яких умовах. Коротше, треба дивитися сайт

Надіслати
Поділитися на інших сайтах

В 18.07.2023 в 19:29, iBogdanUA сказав:

Доброго вечора.
Підкажіть, чи не плануєте ви "Lite" версію цього модулю, суто з базовим функціоналом (наприклад, просто фільтрація товарів по атрибутам, без додаткових налаштувань і т.д.)?
Так як ціна в 38$ трохи кусається.
 
Або можливо є більш прості аналоги, суто для фільтрації по атрибутам?

Добрий день. Можливо, у майбутньому.

  • +1 1
Надіслати
Поділитися на інших сайтах

Добрый день @SooR

Тут один баг увидел. Подскажите как бороться.

Версия модуля: 4.8.0.19.1. OcStore 3.0.2.0.

Создано две динамические страницы:

1. Телевізори {F351.2} дюймів (Динамический параметр 351.2: Диагональ экрана)

2. Телевізори {F1.0} {F351.2} дюймів (Динамический параметр 1.0: Производитель. Динамический параметр 351.2: Диагональ экрана)

 

На странице товара получаю:

image.png.e495c22c723192d9be89a4fc5256da50.png

пример страницы: Телевізор Nokia Smart TV 3200B купити в Харкові та Дніпрі • Ціни на Телевізор Nokia Smart TV 3200B в Україні: відгуки, характеристики ≡ GoodSmart.in.ua

 

Моменты:

1. Если на одну из созданных статических страниц добавлю еще условие по наличию, проблема решается.

2. Такая ошибка возникает если один параметр участвует в нескольких динамических страницах категории. У Атрибута  Диагональ экрана в значениях присутствую двойные кавычки. Т.е. в таблице oc_product_attribute 32", а в таблице oc_ocfilter_filter_value_description 32"

Как это исправить?

 

UPD: Проблему решил отключив вывод на странице товара одного из фильтров.

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Підскажіть будь ласка ,а цей фільтр можна налаштувати так щоб він значення характеристик добавляв автоматично а не самому потрібно було прописувати?

Надіслати
Поділитися на інших сайтах


Здравствуйте. В чем может быть причина что при фильтрации (фильтр ocfilter)
при переходе на вторую страницу отфильтрированных товаров выдает ошибку 404
вот пример - сайт/kontaktoru/page-2/kontaktory-magnitniye-puskateli-schneider-electric   будет ошибка 404,  на первой странице ( без пагинации) - товар коректно отображается

Надіслати
Поділитися на інших сайтах


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

Ставишь Очистить существующие фильтры OCFilte "да" - слетают через одну,  ставишь "нет" то дубли значений образовываются. Пока посадочных не много вернуть их занимает 30 минут, а как быть дальше?...

Надіслати
Поділитися на інших сайтах


В 11.08.2023 в 11:54, mrfoggg сказав:

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

Ставишь Очистить существующие фильтры OCFilte "да" - слетают через одну,  ставишь "нет" то дубли значений образовываются. Пока посадочных не много вернуть их занимает 30 минут, а как быть дальше?...

Якщо змінюються назви значень атрибутів у товару (текст атрибутів), то це вже будуть нові значення фільтрів. Назва - єдиний ключ, який відрізняє один текст атрибуту від іншого.

Надіслати
Поділитися на інших сайтах

не могу разобраться. сделал как в демо версии СЕО страницу. выбрал отбор серию. скопировал значения . на страницах есть ссылка на фильтр, но когда переходишь страница выдает 404!  и в товаре значение серии не светится гиперсилкой

я хз что не так

image.thumb.png.22c49d4a4845322569f79123a01ff112.png

Надіслати
Поділитися на інших сайтах


Добрый день. столкнулся с такой проблемой. иногда надо 2 раза чистить параметры и копировать их на сайт. Но после второго клика модуль захлёбывается на "Create attribute cache" и дальше ничего не происходит сколько раз не кликай.  В даном случае на сайте модуль виден частично только бренд цена и наличие остальные фильтра хоть они и есть но модуль их не тянет. Скажыть что/куда жать в данном случае чтобы обнуулить данные модуля?image.thumb.png.03cdf2d58719c3bb29f3c015cc9ca80e.png

Надіслати
Поділитися на інших сайтах


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

на сайте цены видны только тем кто зарегистрирован, в но фильтре они отображаются

Змінено користувачем Vetlucky777
Надіслати
Поділитися на інших сайтах


16.08.2023 в 15:59, Vetlucky777 сказал:

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

на сайте цены видны только тем кто зарегистрирован, в но фильтре они отображаются

В принципе сделать модификатор, который будет скрывать определенный класс для не зарегистрированных. Если актуально, могу попробовать сделать такое. И если автор модуля не против

Надіслати
Поділитися на інших сайтах


@SooR подскажите, пожалуйста, как получить отфильтрованный массив товаров? Делаю со страницы категории экспорт товаров в PDF формат. Раньше делал так, а как сейчас в новой версии, не понимаю

 

if ($category_info) {
            
            // OCFilter start
            if (isset($this->request->get['filter_ocfilter'])) {
                $filter_ocfilter = $this->request->get['filter_ocfilter'];
            } else {
                $filter_ocfilter = '';
            }
            // OCFilter end
            
            if (isset($this->request->get['filter'])) {
                $filter = $this->request->get['filter'];
            } else {
                $filter = '';
            }

        if (isset($this->request->get['sort'])) {
            $sort = $this->request->get['sort'];
        } else {
            $sort = 'p.sort_order';
        }

        if (isset($this->request->get['order'])) {
            $order = $this->request->get['order'];
        } else {
            $order = 'ASC';
        }

        if (isset($this->request->get['page'])) {
            $page = $this->request->get['page'];
        } else {
            $page = 1;
        }

        if (isset($this->request->get['limit'])) {
            $limit = (int)$this->request->get['limit'];
        } else {
            $limit = $this->config->get($this->config->get('config_theme') . '_product_limit');
        }
        
            
            require('system/library/mpdf/mpdf.php');
            
            $data['heading_title'] = $category_info['name'];

            $data['text_refine'] = $this->language->get('text_refine');
            $data['text_empty'] = $this->language->get('text_empty');
            $data['text_quantity'] = $this->language->get('text_quantity');
            $data['text_manufacturer'] = $this->language->get('text_manufacturer');
            $data['text_model'] = $this->language->get('text_model');
            $data['text_price'] = $this->language->get('text_price');

            $data['products'] = array();
            $filter_data = array(
                'filter_category_id' => $category_id,
                'filter_filter'      => $filter,
                'sort'               => $sort,
                'order'              => $order,
                'start'              => ($page - 1) * $limit,
                'limit'              => 10000
            );
    
            // OCFilter start
            $filter_data['filter_ocfilter'] = $filter_ocfilter;
            // OCFilter end
            
            $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($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 = $result['price'];
                } 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;
                }

                $data['products'][] = array(
                    'product_id'          => $result['product_id'],
                    'thumb'               => $image,
                    'name'                => $result['name'],
                    'model'               => $result['model'],
                    'collection'          => $result['collection'],
                    'attribute_groups'  => $this->model_catalog_product->getProductAttributes($result['product_id']),
                    'price'               => (int)$price . ' руб',
                    'special'             => $special,
                    'href'                => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
                );
            }
            
            //
            $template = 'product/category';

            
            //$this->load->library('mpdf/mpdf');

            $headerHTML = '
                <div style="float: left; width: 340px; text-align: left">
                    <a target="_blank" href="' . HTTPS_SERVER . '"><img style="max-width:100%;max-height:180px" src="/image/'.$this->config->get('config_logo').'" /></a>
                </div>
                <div style="float: right; width: 340px; text-align: right; color: #808180">
                    ' . nl2br($this->config->get('config_address')) . '<br/>
                    ' . $this->config->get('config_telephone') . '<br/>
                    ' . $this->config->get('config_email') . '<br/>
                    <a style="color:blue; text-decoration:none;" target="_blank" href="' . HTTPS_SERVER . '">' . HTTPS_SERVER . '</a>
                </div>
                <div class="clear"></div>
                <hr>
            ';

            //print_r($this->config);

            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/price_to_pdf.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/product/price_to_pdf.tpl';
            } else {
                $this->template = 'default/template/product/price_to_pdf.tpl';
            }
            
            $today = date("d.m.Y");

            $mpdf = new mPDF('utf-8', 'A4', 7, 'Helvetica', 20, 5, 35, 5);
            $mpdf->name = $category_info['name'] . '.pdf';
            $mpdf->SetHTMLHeader($headerHTML);
            $mpdf->WriteHTML($this->load->view('product/price_to_pdf.tpl', $data));
            $mpdf->Output('Прайс_' . $today . '.pdf', 'D');
        }

 

Змінено користувачем nash
Надіслати
Поділитися на інших сайтах


On 8/18/2023 at 1:16 PM, nash said:

@SooR подскажите, пожалуйста, как получить отфильтрованный массив товаров? Делаю со страницы категории экспорт товаров в PDF формат. Раньше делал так, а как сейчас в новой версии, не понимаю

 

if ($category_info) {
            
            // OCFilter start
            if (isset($this->request->get['filter_ocfilter'])) {
                $filter_ocfilter = $this->request->get['filter_ocfilter'];
            } else {
                $filter_ocfilter = '';
            }
            // OCFilter end
            
            if (isset($this->request->get['filter'])) {
                $filter = $this->request->get['filter'];
            } else {
                $filter = '';
            }

        if (isset($this->request->get['sort'])) {
            $sort = $this->request->get['sort'];
        } else {
            $sort = 'p.sort_order';
        }

        if (isset($this->request->get['order'])) {
            $order = $this->request->get['order'];
        } else {
            $order = 'ASC';
        }

        if (isset($this->request->get['page'])) {
            $page = $this->request->get['page'];
        } else {
            $page = 1;
        }

        if (isset($this->request->get['limit'])) {
            $limit = (int)$this->request->get['limit'];
        } else {
            $limit = $this->config->get($this->config->get('config_theme') . '_product_limit');
        }
        
            
            require('system/library/mpdf/mpdf.php');
            
            $data['heading_title'] = $category_info['name'];

            $data['text_refine'] = $this->language->get('text_refine');
            $data['text_empty'] = $this->language->get('text_empty');
            $data['text_quantity'] = $this->language->get('text_quantity');
            $data['text_manufacturer'] = $this->language->get('text_manufacturer');
            $data['text_model'] = $this->language->get('text_model');
            $data['text_price'] = $this->language->get('text_price');

            $data['products'] = array();
            $filter_data = array(
                'filter_category_id' => $category_id,
                'filter_filter'      => $filter,
                'sort'               => $sort,
                'order'              => $order,
                'start'              => ($page - 1) * $limit,
                'limit'              => 10000
            );
    
            // OCFilter start
            $filter_data['filter_ocfilter'] = $filter_ocfilter;
            // OCFilter end
            
            $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($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 = $result['price'];
                } 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;
                }

                $data['products'][] = array(
                    'product_id'          => $result['product_id'],
                    'thumb'               => $image,
                    'name'                => $result['name'],
                    'model'               => $result['model'],
                    'collection'          => $result['collection'],
                    'attribute_groups'  => $this->model_catalog_product->getProductAttributes($result['product_id']),
                    'price'               => (int)$price . ' руб',
                    'special'             => $special,
                    'href'                => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
                );
            }
            
            //
            $template = 'product/category';

            
            //$this->load->library('mpdf/mpdf');

            $headerHTML = '
                <div style="float: left; width: 340px; text-align: left">
                    <a target="_blank" href="' . HTTPS_SERVER . '"><img style="max-width:100%;max-height:180px" src="/image/'.$this->config->get('config_logo').'" /></a>
                </div>
                <div style="float: right; width: 340px; text-align: right; color: #808180">
                    ' . nl2br($this->config->get('config_address')) . '<br/>
                    ' . $this->config->get('config_telephone') . '<br/>
                    ' . $this->config->get('config_email') . '<br/>
                    <a style="color:blue; text-decoration:none;" target="_blank" href="' . HTTPS_SERVER . '">' . HTTPS_SERVER . '</a>
                </div>
                <div class="clear"></div>
                <hr>
            ';

            //print_r($this->config);

            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/price_to_pdf.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/product/price_to_pdf.tpl';
            } else {
                $this->template = 'default/template/product/price_to_pdf.tpl';
            }
            
            $today = date("d.m.Y");

            $mpdf = new mPDF('utf-8', 'A4', 7, 'Helvetica', 20, 5, 35, 5);
            $mpdf->name = $category_info['name'] . '.pdf';
            $mpdf->SetHTMLHeader($headerHTML);
            $mpdf->WriteHTML($this->load->view('product/price_to_pdf.tpl', $data));
            $mpdf->Output('Прайс_' . $today . '.pdf', 'D');
        }

 

 

у вас в $results уже идет отфильтрованный массив товаров после оцфильтра, можете использовать его данные.

Надіслати
Поділитися на інших сайтах

18.08.2023 в 15:20, kabantejay сказал:

 

у вас в $results уже идет отфильтрованный массив товаров после оцфильтра, можете использовать его данные.

почему-то выгружаются все товары из категории

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Доброго дня! Підкажіть будь ласка, чи є можливість виводити ЛЗУ посилання на відфільтровані товари у вигляді: 

 

ім’я фільтра: “бренд”x

ім’я фільтра: “розмір”y1, y2

ім’я фільтра: “колір” - z
https://site.com/category/brend:x;razmer:y1, y2;cvet:z/

 

 

Себто, щоб при обиранні більш ніж одного фільтра - до ЛЗУ додавалась відповідна інформація? 

Якщо такої можливості немає з коробки, чи можливо її зробити в індивідуальному порядку? 

Змінено користувачем arieldelta
більш коректний приклад
Надіслати
Поділитися на інших сайтах


Навіщо ви убрали стандартний опис і добавили нижній опис? Тепер требя листати аж у самий низ, да можна поставити у верхній опис, але це перед товарами, якось не те вийшло, 

зробіть як було, не нижній опис, а там де фото категорії

Надіслати
Поділитися на інших сайтах


Хтось реалізовував дизайн щоб фільтр був як у старій версії, одразу все розгорнуте і не потрібно було заходити в кожний окремо та обирати занесення??

на телефонах

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

@SooR Чому може відображатися дубль характеристики у фільтрі? В атрибутах перевірив там тільки одна характеристика

Прихований текст

image.png.49b03118ac2b2b6c0f54c6f7e584003f.png

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.