Skip to content

refactor(product): simplify Product\GetList — remove non-combo logic#152

Merged
biz87 merged 1 commit intobetafrom
refactor/151-simplify-product-getlist
Mar 16, 2026
Merged

refactor(product): simplify Product\GetList — remove non-combo logic#152
biz87 merged 1 commit intobetafrom
refactor/151-simplify-product-getlist

Conversation

@Ibochkarev
Copy link
Copy Markdown
Member

Описание

Упрощён процессор Product\GetList: удалена неиспользуемая non-combo логика. После мержа #146 процессор вызывается только с combo: true из ms3.combo.js — вся остальная ветка была мёртвым кодом.

Изменения:

  • Удалена non-combo ветка из prepareArray() (actions, preview_url, cls, category_name, округление price/weight)
  • Удалены non-combo ветки из prepareQueryBeforeCount(): full select, parent-фильтрация, nested products, join msCategoryMember
  • Убрано свойство $parent
  • Добавлена проверка combo: true в initialize() — при некорректном вызове возвращается ошибка
  • Добавлен лексикон ms3_err_processor_combo_required (en/ru)

Поведение combo-выбора товаров (ms3.combo.Product) не меняется.

Тип изменений

  • Рефакторинг (без изменения функциональности)

Связанные Issues

Fixes #151

Как это было протестировано?

  • Ручная проверка: комбо выбора товара на странице редактирования категории и в других местах

Чеклист

  • Код соответствует стилю проекта
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок
  • Обновлён CHANGELOG.md — не требуется для рефакторинга

- Remove non-combo branch from prepareArray() (actions, preview_url, cls, etc.)
- Remove non-combo branches from prepareQueryBeforeCount() (full select, parent filter, nested)
- Remove $parent property
- Add combo validation in initialize()
- Add ms3_err_processor_combo_required lexicon (en/ru)

Fixes #151
@Ibochkarev Ibochkarev marked this pull request as ready for review March 16, 2026 07:37
@Ibochkarev Ibochkarev requested a review from biz87 March 16, 2026 07:37
@Ibochkarev Ibochkarev self-assigned this Mar 16, 2026
Copy link
Copy Markdown
Member

@biz87 biz87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

Чистый рефакторинг, точно по задаче из #151.

Проверки

  • xPDOQueryCondition — импорт оставлен корректно, используется в prepareQueryAfterCount()
  • Vendor и Category LEFT JOIN — нужны для поиска по Vendor.name:LIKE и Category.pagetitle:LIKE в combo
  • msCategoryMember JOIN — удалён корректно, использовался только в non-combo parent-фильтрации
  • $this->failure() в initialize() — стандартный MODX-паттерн, совместим с возвратом метода
  • Лексиконы на двух языках — ок

Мелкое замечание (некритичное)

GROUP BY msProduct.id — после удаления msCategoryMember JOIN остались только 1:1 LEFT JOIN'ы (Data, Vendor, Category), дубликатов быть не может. GROUP BY теперь избыточен. Можно убрать для чистоты, но не блокирует мерж.

LGTM

@biz87 biz87 merged commit 742acd6 into beta Mar 16, 2026
@Ibochkarev Ibochkarev deleted the refactor/151-simplify-product-getlist branch March 16, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor: simplify Product\GetList — remove non-combo logic

2 participants