Skip to content

feat(extra-fields): repeater field type (ms3-repeater)#301

Open
Ibochkarev wants to merge 2 commits into
betafrom
feat/299-repeater-field
Open

feat(extra-fields): repeater field type (ms3-repeater)#301
Ibochkarev wants to merge 2 commits into
betafrom
feat/299-repeater-field

Conversation

@Ibochkarev
Copy link
Copy Markdown
Member

Описание

Добавлен тип extra field «повторитель» (ms3-repeater): JSON-массив объектов со схемой колонок, drag-and-drop сортировкой строк и автоматическим проставлением rank при сохранении (MIGX-паттерн).

Backend: миграция repeater_config, RepeaterFieldService, интеграция в ExtraFieldsService, ProductDataService (исключение из option-sync) и OrdersController (422 при invalid payload).

Vue Manager: RepeaterField, редактор схемы в ExtraFieldsManager, OrderExtraFieldsSection для msOrder/msOrderAddress.

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

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change
  • Рефакторинг
  • Документация

Связанные Issues

Closes #299
Refs #298

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

  • Ручное тестирование (ExtraFieldsManager → product card / order / address)
  • Автоматические проверки (php -l, ESLint на изменённых Vue/JS)
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: feat/299-repeater-field
  • MODX: 3.x
  • PHP: 8.2+

Чеклист

  • Код соответствует стилю проекта
  • Лексиконы ru/en
  • ESLint / php -l на затронутых файлах
  • CHANGELOG (maintainer)

Дополнительные заметки

Repeater исключён из prepareOptionValues и saveOptions для msProductData. Order/address extra fields получили UI через OrderExtraFieldsSection. Grid sort/filter по JSON-path — follow-up из issue.

Для ревьюера: перед merge нужна миграция Phinx и npm run build в vueManager на стенде.

…d address

Introduces repeater extra fields with schema-driven rows, DnD sorting, rank normalization, and manager UI across product data and order screens.

Closes #299
… saves

Validate repeater rows after normalization, return 422 from product-data API on invalid payload, and strip client-only row metadata before submit.
@Ibochkarev Ibochkarev requested a review from biz87 May 24, 2026 16:49
@Ibochkarev Ibochkarev self-assigned this May 24, 2026
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.

[Feature] тип поля повторитель

1 participant