Skip to content

fix: удаление опций товара и пропажа «создать Документ» (Fixes #153)#158

Merged
biz87 merged 1 commit intobetafrom
fix/153-options-and-document
Mar 16, 2026
Merged

fix: удаление опций товара и пропажа «создать Документ» (Fixes #153)#158
biz87 merged 1 commit intobetafrom
fix/153-options-and-document

Conversation

@Ibochkarev
Copy link
Copy Markdown
Member

Описание

Исправлены две проблемы из Issue #153:

  1. Удаление опций товара — при «Обновить URI-ссылки» или редактировании шаблона кастомные опции категорий (proizvoditel, brend и т.п.) удалялись. Причина: saveOptions(null, true) при автосборе только JSON-полей вызывал removeUnusedOptions и удалял всё, чего нет в неполном списке. Решение: при options=null передавать removeOther=false.

  2. Пропажа «создать Документ» — пункт не отображался в контекстном меню категории, когда Form Customization не выставлял класс pnew_MODX\\Revolution\\modDocument на узле. Решение: для ядерных типов (modDocument) fallback на общий класс pnew — показывать пункт, если у узла есть право на создание.

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

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

Связанные Issues

Closes #153

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

  • Ручное тестирование
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

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

  • MiniShop3: beta
  • MODX: —
  • PHP: —

Чеклист

  • Код соответствует стилю проекта
  • Изменения не ломают существующую функциональность
  • Обновлён CHANGELOG.md (для значимых изменений)

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

  • ProductDataService::saveOptions(): при явно переданных опциях (options !== null) поведение removeOther не меняется.
  • _getCreateMenus: для не-ядровых типов (msProduct, msCategory) логика без изменений.

)

- ProductDataService: при options=null передавать removeOther=false, чтобы не удалять кастомные опции категорий при сохранении (URI refresh, редактирование шаблона)
- ms3.manager: fallback для «создать Документ» — показывать при наличии класса pnew, если pnew_modDocument не выставлен FC
@Ibochkarev Ibochkarev marked this pull request as ready for review March 16, 2026 11:48
@Ibochkarev Ibochkarev requested a review from biz87 March 16, 2026 11:48
@biz87 biz87 merged commit d433d0f into beta Mar 16, 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.

[Bug] Периодически удаляются заполненные значения опций товара

2 participants