Repository navigation
Releases: modx-pro/MiniShop3
Releases · modx-pro/MiniShop3
Release list
v1.14.3-beta2
What's Changed
- fix(grid): сохранять инлайн-правку числовых колонок товаров категории by @biz87 in #944
- chore(release): 1.14.3-beta2 by @biz87 in #945
Full Changelog: v1.14.3-beta1...v1.14.3-beta2
v1.14.3-beta1
What's Changed
- fix(mgr-api): свои поля msProductData и stock в гриде «Товары категории» (#914) by @Ibochkarev in #915
- fix(security): allowlist полей в процессорах покупателя и пользователя (#908) by @biz87 in #917
- Цена доставки за вес не учитывалась при оформлении заказа by @GulomovCreative in #810
- fix(customer): ссылка «Выйти» работает без дружественных адресов by @GulomovCreative in #850
- Убрать Undefined array key desc из лога установки resolver_08 by @Ibochkarev in #787
- fix(security): allowlist sort и dir в combo-списке товаров by @Ibochkarev in #932
- fix(security): allowlist sort в листинге «Товары категории» by @Ibochkarev in #933
- fix(security): не исполнять теги покупателя в Telegram и SMS by @Ibochkarev in #935
- fix(security): экранировать поля товара в гриде, галерее и чанке by @Ibochkarev in #934
- fix: сверять резерв склада при правке состава заказа by @Ibochkarev in #936
- chore(release): 1.14.3-beta1 by @biz87 in #941
Full Changelog: v1.14.2-beta1...v1.14.3-beta1
v1.14.2-beta1
What's Changed
- fix(install): выдать политику MiniShop3 группам с доступом в админку (#893) by @biz87 in #894
- fix(order): закрыть служебные колонки черновика от записи с витрины (#860) by @biz87 in #896
- fix(notifications): не исполнять теги из данных покупателя при сборке письма (#888) by @biz87 in #899
- fix(customer): скрыть хеш пароля и токен в чанках кабинета (#840, #848) by @AgelxNash in #851
- fix(notifications): не отдавать шаблону письма секреты заказа, покупателя и доставки (#889) by @biz87 in #906
- fix: id в SQL combo-списков и секреты доставки в кабинете (#882, добивка #889) by @biz87 in #907
- perf(mgr-api): вернуть LIMIT/OFFSET в листинг товаров категории (#473) by @biz87 in #910
- chore(release): 1.14.2-beta1 by @biz87 in #911
New Contributors
- @AgelxNash made their first contribution in #851
Full Changelog: v1.14.1-beta2...v1.14.2-beta1
v1.14.1-beta2
v1.14.1-beta1
What's Changed
- fix(mgr): Stop fighting VueTools Modx field and button heights by @Ibochkarev in #778
- fix(install): survive an autoloader rename during package upgrade (1.14.1-beta1, #779) by @biz87 in #780
Full Changelog: v1.14.0-beta1...v1.14.1-beta1
v1.14.0-beta1
What's Changed
- fix(schema): добавить idempotency_key в schema.xml msOrder by @biz87 in #562
- fix(mgr): declare ms3 via addVueConfig on help page by @Ibochkarev in #554
- fix(vue): space category tree checkbox from its label by @Ibochkarev in #557
- fix(vue): reuse ms3_menu_remove for product link confirm header by @Ibochkarev in #559
- fix(product): persist composite PK when creating product links by @Ibochkarev in #561
- fix(vue): изоляция PrimeVue Confirm/Toast через UI groups (#539) by @Ibochkarev in #543
- fix(web): локаль toast корзины через ctx страницы (#541) by @Ibochkarev in #542
- fix(events): регистрация msOnBeforeUpdateCustomer / msOnUpdateCustomer by @biz87 in #581
- feat(web-api): публичный Category API (list / get / tree) by @Ibochkarev in #578
- fix(web-api): hardening rate-limit, CORS wildcards, query tokens by @Ibochkarev in #584
- feat(web-api): единый контракт ошибок и HTTP-статусов by @Ibochkarev in #583
- feat(web-api): публичные delivery/list и payment/list by @Ibochkarev in #586
- perf(web-api): ускорение product/list (Data prefetch, COUNT, content) by @Ibochkarev in #587
- feat(grid): фильтрация товаров категории по relation-колонкам by @Ibochkarev in #585
- feat(web-api): контракт customer auth для Nuxt SSR (me / refresh / Bearer bind) by @Ibochkarev in #588
- feat(web-api): расширенные фильтры product/list by @Ibochkarev in #580
- test(web-api): headless Nuxt journey suite через Router envelope by @Ibochkarev in #595
- feat(web-api): product/filters — facets для headless PLP by @Ibochkarev in #597
- chore(mgr): удалить мёртвые ExtJS-ассеты и legacy-конфиги окон (#521) by @biz87 in #602
- fix(mgr): пустая карточка товара без resourcegroup_resource_list (#652) by @Ibochkarev in #653
- fix(vue): удаление из грида настроек без двойного confirm by @Ibochkarev in #631
- fix(settings): связка способа оплаты с доставкой в менеджере by @Ibochkarev in #629
- fix(web-api): нормализация options в cart/add by @Ibochkarev in #633
- fix(extra-fields): не ALTER site_content, валидация key (#645) by @Ibochkarev in #646
- fix(mgr): сортировка секций на странице товара по sort_order by @Ibochkarev in #620
- fix(vue): nested category checks survive reload on product Categories tab by @Ibochkarev in #642
- fix(mgr): UTF-8 whitespace в combo labels model-fields by @Ibochkarev in #619
- feat(web-api): prefill order draft from customer profile after auth by @Ibochkarev in #639
- feat(web-api): галерея изображений товара (images[]) by @Ibochkarev in #598
- Индивидуальный menuindex для товаров в дополнительных категориях by @Ibochkarev in #627
- Обнаружение рассинхрона версии пакета и файлов на диске by @Ibochkarev in #624
- fix: политика miniShopManagerPolicy и ACL полей заказа by @Ibochkarev in #614
- fix(web-api): normalize options JSON string in cart/change-option by @Ibochkarev in #638
- Единая трактовка незаданного sort_order в groupProductDataSections by @Ibochkarev in #664
- fix: не отдавать пустое JSON-тело при битом UTF-8 by @Ibochkarev in #662
- fix: права Sort/Multiple в галерее и лексиконы ошибок by @Ibochkarev in #661
- Единая валидация context в публичном каталоге by @Ibochkarev in #665
- chore(deps): security bundle — nanoid/fast-uri/humanfs/postcss + cakephp/database by @Ibochkarev in #682
- fix(api): не отдавать пустое тело менеджерского API при битом UTF-8 by @Ibochkarev in #676
- fix: права Product/Sort и Multiple + ratchet по Processors by @Ibochkarev in #675
- Отклонять зарезервированные слова MySQL 8 в SQL-идентификаторах by @Ibochkarev in #663
- Quote customer-grid relation SQL identifiers by @Ibochkarev in #679
- chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.2 by @dependabot[bot] in #683
- chore(deps): bump @vitest/mocker and vitest in /vueManager by @dependabot[bot] in #685
- Live MODX tests via modxkit/testbench by @Ibochkarev in #687
- Галерея: сортировка по имени после пакетной загрузки by @Ibochkarev in #643
- feat(mgr): тип Дата для extra fields by @Ibochkarev in #623
- fix(web-api): CORS preflight OPTIONS до CorsMiddleware by @Ibochkarev in #637
- Web API: resolve category/product по alias|uri by @Ibochkarev in #644
- Live-тесты: реальные проверки прав процессоров by @Ibochkarev in #699
- test(modx): схема live-сьюта из Phinx-миграций by @Ibochkarev in #698
- Migrate vueManager node tests to vitest behavior checks by @Ibochkarev in #693
- feat(web-api): seo-блок для product/category get by @Ibochkarev in #599
- Live-тесты: убрать проверки MODX/testbench вместо MiniShop3 by @Ibochkarev in #700
- Purge obsolete Extra files on package upgrade by @Ibochkarev in #709
- fix(web-api): Align catalog resolve context errors with get/{id} by @Ibochkarev in #707
- Web API: CORS preflight вне стека middleware by @Ibochkarev in #708
- Repair missing product_fields.section foreign key by @Ibochkarev in #713
- ci: линтить JS витрины (assets/.../js/web) by @Ibochkarev in #668
- feat(web-api): нормализовать контракт ответа корзины by @Ibochkarev in #600
- Keep legacy connector JSON valid on broken UTF-8 by @Ibochkarev in #691
- feat(core): add shipment lifecycle and delivery webhook by @Ibochkarev in #605
- Live-тесты: успех не-sudo с выданным правом by @Ibochkarev in #712
- refactor(web-api): share context key rules via ContextKey by @Ibochkarev in #723
- chore: fix .gitattributes so eol=lf actually applies by @Ibochkarev in #724
- Миграции: Phinx из vendor MiniShop3, не из чужого extra by @Ibochkarev in #726
- feat(web-api): учитывать ACL групп ресурсов в публичном каталоге by @Ibochkarev in #666
- Respect resource groups in Fenom storefront snippets by @Ibochkarev in #681
- feat(web-api): msCustomerGroup и ACL групп ресурсов для авторизованных by @Ibochkarev in #677
- Router: preflight берёт внутренний CorsMiddleware by @Ibochkarev in #727
- Web API: CORS OPTIONS без сессии MODX в БД by @Ibochkarev in #725
- Очистка при обновлении: ExtJS-ассеты и config/mgr by @Ibochkarev in #728
- Remove unused Product Autocomplete processor by @Ibochkarev in #690
- fix(snippets): msProducts — сортировка по menuindex с parents без ошибки SQL by @biz87 in #737
- fix(snippets): msProducts — menuindex при sortby массивом by @Ibochkarev in #743
- fix(catalog): сброс кэша при изменении ACL групп ресурсов by @Ibochkarev in #735
- feat(core): add payment attempt lifecycle and webhook callback by @Ibochkarev in #604
- feat(web-api): SEO follow-ups TV map, searchable robots, makeUrl by @Ibochkarev in #715
- fix(mgr): Fix empty comboOptions suggestions query by @Ibochkarev in #746
- fix(gallery): Apply Media Source watermark in ImageService by @Ibochkarev in https://github.c...
v1.13.0-beta1
What's Changed
- feat(ci): add PHP lint/smoke and vueManager ESLint gate on PR by @Ibochkarev in #394
- fix(customer): stop checkout token takeover via email by @Ibochkarev in #391
- fix(api): omit customer secrets from profile/add responses by @Ibochkarev in #428
- fix(manager-api): tighten ACL on customers and category products by @Ibochkarev in #400
- fix(manager-api): require msorder_save for order write routes by @Ibochkarev in #402
- fix(manager-api): require mssetting_save for config writes by @Ibochkarev in #404
- fix(manager): ограничить payload /deliveries-active whitelist'ом by @Ibochkarev in #427
- fix(customer): reject expired API tokens instead of silent renew by @Ibochkarev in #396
- fix(api): stop loading storefront routes via manager connector by @Ibochkarev in #401
- fix(order): prevent duplicate order numbers under concurrent submit by @Ibochkarev in #399
- fix(product): persist clearing color/size/tags on save by @Ibochkarev in #325
- chore(build): clean full vue-dist on prebuild by @biz87 in #470
- fix(order): multiply draft weight by product count by @Ibochkarev in #403
- fix(order): return error when status save fails by @Ibochkarev in #392
- fix(import): read processor object in startImport by @Ibochkarev in #390
- fix(manager): выровнять ответ обновления заказа с GET и скрыть секретный token by @Ibochkarev in #426
- fix(vueManager): format order date filters in local calendar by @Ibochkarev in #405
- fix(resource): конвертация modDocument → msProduct by @Ibochkarev in #331
- fix(mgr): ACL на запись /grid-config (mssetting_save) by @Ibochkarev in #436
- fix(mgr): ACL view_document на /references (PII покупателей) by @Ibochkarev in #438
- fix(api): запретить подделку privacy_accepted_at через customer/add by @Ibochkarev in #439
- chore(vueManager): consolidate Dependabot security dependency updates by @Ibochkarev in #483
- fix(mgr): scope category product publish/bulk by parent by @Ibochkarev in #443
- fix(vue-manager): clean vue-dist before Vite build by @Ibochkarev in #398
- feat(ci): PHPStan gate + PHPUnit scaffold for pure helpers by @Ibochkarev in #433
- fix: латентный фатал getPaymentLink и мёртвая регистрация ms3_config_manager by @Ibochkarev in #485
- chore(lexicon): EN/RU parity and remove duplicate keys by @Ibochkarev in #360
- fix(options): whitelist msProductOption criteria перед xPDO lookup by @Ibochkarev in #452
- fix(product-data): category scope для inline-edit PUT by @Ibochkarev in #454
- fix(email): экранирование & в ссылке на заказ в письме менеджеру by @Ibochkarev in #465
- fix(mgr-api): whitelist filter_* на списках customers by @Ibochkarev in #457
- fix(api): безопасный CORS — без * + credentials по умолчанию by @Ibochkarev in #463
- fix(customer): restore storefront login and session auth by @Ibochkarev in #321
- test(unit): RepeaterFieldService pipeline + clampComputedTotal by @Ibochkarev in #493
- fix(auth): session bypass после revoke API-токенов + Web logout by @Ibochkarev in #462
- fix(api): HTTP 401/429 для auth и rate-limit в Web API by @Ibochkarev in #434
- fix(api): auto-mint guest token for cart/get; sync publicRoutes; lexicon Web errors by @Ibochkarev in #440
- fix(web-api): remove false-success stub for token/refresh by @Ibochkarev in #351
- fix(web-api): bind API token on email verify by @Ibochkarev in #441
- Web API: публичный Customer DTO и allowlist полей профиля by @Ibochkarev in #475
- feat(web-api): customer logout and password recovery routes by @Ibochkarev in #442
- RateLimitMiddleware: pluggable storage (Redis/Memcached) by @Ibochkarev in #487
- fix(order): единая база для процентной комиссии оплаты (cart-only) by @Ibochkarev in #460
- fix(order): align finalize cost with ManagerOrderCostRecalculator by @Ibochkarev in #448
- fix(order): повторная проверка fixed после mutation статуса плагином by @Ibochkarev in #464
- fix(order): блокировка Save во время пересчёта стоимости by @Ibochkarev in #461
- fix: проверка связи delivery/payment при оформлении заказа by @Ibochkarev in #459
- fix: payment_link в письме о новом заказе by @Ibochkarev in #458
- chore(deps): vueManager security bumps (js-yaml, fast-uri, happy-dom) by @Ibochkarev in #506
- Удалить deprecated pass-through OrderService/Customer by @Ibochkarev in #489
- fix(mgr): не грузить отсутствующий vue-dist/main.min.css на product/update by @Ibochkarev in #504
- fix(currency): символ рубля вместо "?" в ms3Config by @Ibochkarev in #498
- fix(vue): unwrap пустого object/data в request.js by @Ibochkarev in #466
- fix(vue): stale response race в OrdersGrid и CategoryProductsGrid by @Ibochkarev in #468
- fix(cart): смена опций в корзине через Web API и storefront by @Ibochkarev in #502
- fix(import): toast и Message при ошибках fields/preview by @Ibochkarev in #453
- test(integration): finalize required fields + cart SQLite draft by @Ibochkarev in #495
- test(integration): MySQL CI + AuthManager lifecycle by @Ibochkarev in #496
- chore(api): remove dead field-config override endpoints by @Ibochkarev in #383
- refactor(mgr-api): extract extra-fields CRUD into controller by @Ibochkarev in #491
- refactor(api): единый Response envelope на HTTP boundary by @Ibochkarev in #505
- feat(api): лексикон для сообщений CategoryProductsController by @Ibochkarev in #467
- fix(products): дополнительные категории в msProducts и гриде категории by @Ibochkarev in #482
- feat(mgr-api): document-level ACL для category products by @Ibochkarev in #473
- feat: единый EventGate для returnedValues by @Ibochkarev in #456
- refactor(import): декомпозиция ImportCSV, EventGate и ProductImportService by @Ibochkarev in #499
- refactor(di): OptionSync/Loader + ManagerOrderCostRecalculator in ServiceRegistry by @Ibochkarev in #477
- Унификация расчёта стоимости заказа: checkout ↔ manager by @Ibochkarev in #476
- perf(orders): conditional Address JOIN и отдельный stats endpoint by @Ibochkarev in #469
- feat(mgr-api): category-scoped PUT для inline-edit product data by @Ibochkarev in #474
- feat(order): EmptyOrder events and Order::set validation errors by @Ibochkarev in #393
- fix(auth): ротация API-токена против token fixation by @Ibochkarev in #516
- docs: граница Domain facades vs Controllers/Api by @Ibochkarev in #511
- refactor(grid): разрез GridConfigService (Phase A #365) by @Ibochkarev in #513
- refactor(options): разрез OptionLoaderService (Phase B #365) by @Ibochkarev in #514
- refactor(product): разрез ProductDataService (Phase C #365) by @Ibochkarev in #515
- feat(import): поддержка msExtraField в импорте товаров из CSV by @Ibochkarev in #510
- feat(gallery): выбор главного превью без смены порядка by @Ibochkarev in #512
...
v1.12.0-beta1
What's Changed
- fix(api): per-field null payload semantics in Manager API (#289) by @biz87 in #310
- fix(product): автоматический class_key msProduct в Product\Create (#305) by @Ibochkarev in #306
- fix(category): auto-inject msCategory class_key in Category\Create processor by @biz87 in #315
- fix(migrations): normalize Phinx MySQL charset by @Ibochkarev in #308
- fix(migrations): resolve ms3_grid_fields missing on install (#270) by @Ibochkarev in #294
- fix(import): split multi-value option columns in CSV import by @Ibochkarev in #312
- fix(product): сохранение Data и extra fields в процессорах Create/Update by @Ibochkarev in #298
- fix(manager): переключатель черновиков и фильтры в списке заказов by @Ibochkarev in #303
- fix(migrations): apply table prefix to Phinx metadata by @Ibochkarev in #318
- fix(manager): prevent search autofill after customer edit (#286) by @Ibochkarev in #319
- fix(order): use order address email for customer notifications (#218) by @Ibochkarev in #320
- feat(grid): add select/combo editor types for category products inline edit by @Ibochkarev in #157
- feat(grid): add option field type for category products grid by @Ibochkarev in #154
- feat(extra-fields): repeater field type (ms3-repeater) by @Ibochkarev in #301
- refactor(manager): expose direct filter keys from backend by @Ibochkarev in #317
- chore(schema): sync XML with msOption / msOptionGroup model by @biz87 in #322
Full Changelog: v1.11.1-beta1...v1.12.0-beta1
v1.11.1-beta1
Full Changelog: v1.11.0-beta1...v1.11.1-beta1
v1.11.0-beta1
What's Changed
- chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /vueManager by @dependabot[bot] in #248
- chore(deps): bump postcss from 8.5.6 to 8.5.14 in /vueManager by @dependabot[bot] in #250
- refactor(api): HttpStatus single-source for HTTP codes by @biz87 in #231
- fix(events): apply returned values after invokeEvent by @Ibochkarev in #245
- fix(events): restore by-ref params alongside returnedValues by @biz87 in #253
- fix(msCart): не глушить вывод при msorder по умолчанию by @biz87 in #254
- fix(product): сохранение options-* при обновлении товара, MODX 3 (#199) by @biz87 in #256
- fix(manager): formatRow без несуществующего id и сохранение доп. категорий товара (#238) by @biz87 in #258
- fix(web): missing customer API routes (#241) by @biz87 in #260
- fix(web): подтверждение email — ссылка в письме, resend в ЛК, редирект by @Ibochkarev in #233
- feat(settings): allow negative delivery and payment costs by @Ibochkarev in #246
- feat(vue): extend delivery validation rules field picker by @Ibochkarev in #247
- feat(order): защита total от минуса и бейджи скидки/наценки by @Ibochkarev in #266
- fix(product): сохранять опции при дублировании ресурса (#257) by @biz87 in #267
- fix(web): customer/add поддерживает extra fields msCustomer (#261) by @biz87 in #268
- refactor(snippet): float placeholders и *_formatted на витрине (#242) by @biz87 in #269
- fix(events): учитывать мутации из $response["data"] после invokeEvent (#221) by @biz87 in #272
- feat(manager): empty state hints and actions visibility for order fields (#182) by @biz87 in #273
- fix(migrations): defensive checks for ms3_grid_fields table by @Ibochkarev in #271
- feat(option): dedicated msOptionGroup model (replaces modCategory grouping, #10) by @biz87 in #275
- fix(migrations): drop double table_prefix in Phinx hasTable/table calls (#276) by @biz87 in #277
- feat(web): public ms3.refresh() API for external AJAX components (#274) by @biz87 in #280
- fix(manager): опции — дерево категорий при вложенном каталоге by @Ibochkarev in #239
- fix(api): preserve null in delivery/payment numeric fields on save by @biz87 in #287
- feat(manager): order cost recalculation API and admin UI (#212) by @biz87 in #288
- fix(snippets): дублирование товаров при includeThumbs by @Ibochkarev in #282
- fix(import): add stock/remains field to product import (#283) by @biz87 in #290
- release: 1.11.0-beta1 by @biz87 in #292
Full Changelog: v1.10.1-beta1...v1.11.0-beta1