Skip to content

Conversation

@biz87
Copy link
Member

@biz87 biz87 commented Jan 18, 2026

Summary

Релиз версии 1.2.0-beta1 с улучшениями оформления заказов из админки и исправлением критических багов.

Added

  • Валидация обязательных полей доставки в админке при оформлении заказа (из validation_rules)
  • Валидация данных клиента (email/phone) в админке при создании из заказа
  • Автоматическое создание клиента при финализации заказа из админки
  • Обработка дубликатов клиентов при финализации
  • Лексиконы ошибок валидации (ru/en)
  • OrderFinalizeService для логики финализации заказа

Changed

  • Кнопка "Создать заказ" в админке переименована в "Создать черновик заказа"
  • Кастомные роуты теперь могут переопределять системные
  • Модернизирован API генерации миниатюр
  • Улучшен UI выбора товаров в управлении заказами
  • Inline-стили вынесены в централизованный CSS файл

Fixed

  • Автоматическое продление токена вместо ошибки при истечении
  • Валидация обязательных полей доставки при финализации заказа
  • Процесс создания клиента в админке заказов
  • 500 ошибка при загрузке/удалении изображений в галерее (некорректное использование getObject/getIterator, поле rank → position)

Test plan

  • Создание заказа из админки с валидацией полей доставки
  • Загрузка и удаление изображений в галерее товара
  • Проверка автоматического создания клиента при оформлении заказа
  • Проверка работы кастомных роутов API

TolkIT-team and others added 12 commits January 14, 2026 18:48
TokenMiddleware теперь автоматически продлевает expires_at токена
при API запросе вместо возврата ошибки ms3_err_token_expired.
Клиент никогда не увидит техническую ошибку об истечении токена.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Все inline стили и блоки <style> из чанков и шаблонов вынесены в default.css
- Подключен default.css в base.tpl
- Добавлены секции стилей: Cart, Customer Account, Order, Thanks, Product, Gallery
- Созданы CSS классы для переиспользуемых элементов (benefit-icon, product-*, cart-* и др.)
- Email шаблоны не тронуты (inline стили обязательны для email)

Изменённые чанки:
- ms3_products_row.tpl, ms3_cart.tpl, ms3_minicart.tpl
- ms3_order.tpl, ms3_get_order.tpl
- ms3_customer_unauthorized.tpl, ms3_customer_orders.tpl, ms3_customer_order_details.tpl
- ms3_gallery.tpl

Изменённые шаблоны:
- base.tpl (подключение CSS)
- cart.tpl, order.tpl, customer.tpl, product.tpl, thanks.tpl

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…оваров

ImageService:
- Убран legacy phpThumb формат параметров (w/h/q/f/zc)
- Новый чистый API: width, height, quality, format, mode
- Режимы ресайза: cover, contain, max, stretch

msProductFile:
- Обновлён дефолтный конфиг миниатюр на современный формат
- saveThumbnail() использует новые параметры

ProductImageService:
- Исправлено получение thumb: теперь берётся из дочерней записи галереи
- Раньше использовалось несуществующее поле 'thumbnail'

ReferencesController:
- searchProducts() использует Data.thumb из msProductData
- Убран лишний запрос к msProductFile (N+1 оптимизация)

OrderView.vue:
- Стили выпадающего списка товаров с префиксом .ms3-
- Изображение 50x50 слева, текст справа (flex row)
- Поле поиска товара на 100% ширины

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Роуты хранятся в ассоциативном массиве с ключом METHOD:pattern.
При добавлении роута с существующим ключом он заменяется.
Кастомные роуты загружаются после системных и автоматически
переопределяют их при совпадении метода и паттерна.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Добавлена валидация обязательных полей доставки (из validation_rules)
- Добавлена валидация данных клиента (email/phone) при создании
- Добавлено создание клиента при финализации заказа из данных адреса
- Добавлена обработка дубликатов клиентов при финализации
- Добавлены лексиконы для ошибок валидации полей (ru/en)
- Изменён текст кнопки на "Создать черновик заказа"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Файлы seed-categories.php, seed-products.php, seed-vendors.php больше не используются.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ртировкой

- ProductImageService: исправлен третий параметр getObject (был массив sortby, должен быть cacheFlag)
- ProductImageService: поле rank заменено на position (msProductFile)
- OrdersPageService: исправлен getIterator для msOrderStatus с правильной сортировкой по position
- ComboConfigManager: исправлен пример в документации (rank → position)
- option/grid.js: удалено несуществующее поле rank из getFields

Closes: баг-репорт о 500 ошибке при удалении изображений в галерее

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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