Сортировка товаров по номеру артикула

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

lvitalij
lvitalij
Репутация: 2
Сообщения: 11
Зарегистрирован: 14.12.2018
С нами: 3 года 5 месяцев

Сообщение #1 lvitalij » 14.01.2022, 15:13

Как добавить сортировку в списке товаров категории по номеру артикула sku? Кнопку-то добавить просто.
А где еще шаманить?

lvitalij
lvitalij
Репутация: 2
Сообщения: 11
Зарегистрирован: 14.12.2018
С нами: 3 года 5 месяцев

Сообщение #2 lvitalij » 19.01.2022, 18:49

Сам разобрался...
В файле ProductsEntity.php
надо добавить выборку артикулов

Код: Выделить всё

         // Добавляем выборку для сортировки по артикулу   
            case 'sku':
                $orderFields = [
                    "(SELECT pv.sku
                    FROM __variants pv
                    WHERE
                        p.id = pv.product_id
                        AND pv.position=(SELECT MIN(position)
                            FROM __variants
                            WHERE
                                product_id=p.id LIMIT 1
                        )
                    LIMIT 1) ASC",
                ];
                break;
            case 'sku_desc':
                $orderFields = [
                    "(SELECT pv.sku
                    FROM __variants pv
                    WHERE
                        p.id = pv.product_id
                        AND pv.position=(SELECT MIN(position)
                            FROM __variants
                            WHERE
                                product_id=p.id LIMIT 1
                        )
                    LIMIT 1) DESC",
                ];
                break;


и еще в файле FilterHelper.php добавить 'sku', 'sku_desc' для формирования урла сортировки

Код: Выделить всё

if (!in_array($currentSort, ['position', 'price', 'price_desc', 'name', 'name_desc', 'rating', 'rating_desc', 'sku', 'sku_desc'])) {
                    return ExtenderFacade::execute(__METHOD__, false, func_get_args());;
                }


надо сие модулем залепить наверное
Последний раз редактировалось lvitalij 23.01.2022, 11:27, всего редактировалось 2 раза.

Aleks
Aleks
Репутация: 16
Сообщения: 139
Зарегистрирован: 24.05.2021
С нами: 11 месяцев 26 дней

Сообщение #3 Aleks » 20.01.2022, 11:19

Спасибо за решение. Скопируем, может когда пригодится. Ставлю + в репутацию.
И вопрос, условие сортировки: по возрастающей/убывающей или иное?

lvitalij
lvitalij
Репутация: 2
Сообщения: 11
Зарегистрирован: 14.12.2018
С нами: 3 года 5 месяцев

Сообщение #4 lvitalij » 23.01.2022, 11:25

обычное. возр - убыв... вроде)) вот здесь acorns.com.ua можно глянуть


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 3 гостя