Skip to content

Conversation

@biz87
Copy link
Member

@biz87 biz87 commented Jan 30, 2026

Релиз 1.3.0

✨ Добавлено

Админка — Редактирование товара:

  • Вложенные вкладки товара: верхний уровень (ExtJS) — Document, Товар, Page Settings, Access Permissions; вложенный уровень (Vue) — Properties, Gallery, Categories, Links, Options
  • Plugin Registry API для сторонних компонентов: window.MS3ProductTabsRegistry.register({ key, title, type, xtype/component })
  • Новый компонент ProductTabs.vue с PrimeVue TabView

Кастомные поля:

  • Новый тип поля «Выпадающий список» (xtype: ms3-combo-select) для Extra Fields
  • UI для настройки опций в утилитах «Свои поля» (формат: value==label)
  • Рендеринг PrimeVue Dropdown в форме редактирования товара

Фронтенд:

  • Динамическое обновление виджета msOrderTotal при изменении корзины
  • Новый чанк tpl.msOrderTotal с дефолтной разметкой
  • CSS стили для виджета .ms3-order-total

Сниппет msProducts:

  • Поддержка msCategoryMember для вывода товаров из дополнительных категорий
  • Собственная обработка parents (включения и исключения) как воркараунд для pdoTools
  • Оптимизированный поиск дочерних категорий (только msCategory, не все ресурсы)

Админка — Настройки:

  • Подсказки к полям названия способов доставки и оплаты (можно указать ключ лексикона)

Установка:

  • VueTools добавлен в зависимости — устанавливается автоматически при отсутствии

🐛 Исправлено

Авторизация:

  • Унифицирована авторизация в CustomerAddressController — теперь поддерживает и API-токен, и session customer_id

Миграции:

  • Добавлена миграция для колонки select_options в таблице ms3_extra_fields

TolkIT-team and others added 12 commits January 25, 2026 23:38
PHPStan configuration contains machine-specific paths to MODX and pdoTools sources, so each developer needs to configure it locally.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
getAuthorizedCustomer() теперь поддерживает два метода авторизации:
1. API-токен из запроса/сессии (как было)
2. Session customer_id (как в TokenMiddleware и CustomerProfileController)

Это исправляет несогласованность, когда updateProfile() работал
для пользователей с session customer_id, а createAddress() требовал
только API-токен.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Новый xtype для кастомных полей с выбором из статических опций
- Формат опций: value==label (по одному на строку)
- UI для настройки опций в утилитах "Свои поля"
- Рендеринг PrimeVue Dropdown в форме редактирования товара
- Миграция для добавления колонки select_options в ms3_extra_fields

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Добавлена поддержка token-based рендеринга для msOrderTotal сниппета
- registerSnippet() теперь принимает имя сниппета для универсальности
- CartController использует имя сниппета из кэшированных данных
- Добавлен чанк tpl.msOrderTotal с дефолтной разметкой
- Добавлены CSS стили для виджета .ms3-order-total
- Исправлен обработчик cart/change в ms3.js
- Исправлено отображение .ms3-cart-controls в ProductCardUI
- Добавлен резолвер для обновления свойств сниппета при апгрейде

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Поясняющий текст о том, что можно указать ключ лексикона
или обычное название для полей delivery_name и payment_name

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Изменена архитектура страницы редактирования товара:
- Верхний уровень (ExtJS): Document, Товар, Page Settings, Access Permissions
- Вложенный уровень (Vue): ProductTabs с подвкладками Properties, Gallery, Categories, Links, Options

Добавлено:
- ProductTabs.vue - Vue компонент с PrimeVue TabView
- product-tabs.js - entry point с Plugin Registry для сторонних вкладок
- getProductTab() метод в product.common.js

Изменено:
- Gallery перенесена внутрь Vue ProductTabs
- Исправлено получение source_id в gallery.toolbar.js
- Удалены console.log из entry points

Plugin Registry API позволяет сторонним компонентам добавлять свои вкладки:
window.MS3ProductTabsRegistry.register({ key, title, type, xtype/component })

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
pdoTools проверяет 'msCategory' в classMap, но MiniShop3 регистрирует
'MiniShop3\Model\msCategory' — проверка не срабатывает и товары из
дополнительных категорий не выводятся.

Воркараунд:
- Собственная обработка parents (включения и исключения)
- Оптимизированный поиск дочерних категорий (только msCategory, не все ресурсы)
- Поддержка msCategoryMember для дополнительных категорий
- Отключение pdoTools parent processing (parents=0)

TODO: убрать после патча pdoTools (см. pdotools-patch-spec.md)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@biz87 biz87 merged commit 00669a4 into beta Jan 30, 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.

3 participants