Skip to content

Releases: modx-pro/MiniShop3

v1.14.3-beta2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 21:51
2093442

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

Choose a tag to compare

@github-actions github-actions released this 19 Oct 14:05
f288a40

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

Choose a tag to compare

@github-actions github-actions released this 16 Oct 07:48
f4dafbb

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

Full Changelog: v1.14.1-beta2...v1.14.2-beta1

v1.14.1-beta2

Choose a tag to compare

@github-actions github-actions released this 24 Sep 20:22
99cf12b

What's Changed

  • perf(build): не архивировать файлы компонента в .preserved.zip при установке (#783) by @biz87 in #784
  • chore(release): 1.14.1-beta2 by @biz87 in #791

Full Changelog: v1.14.1-beta1...v1.14.1-beta2

v1.14.1-beta1

Choose a tag to compare

@github-actions github-actions released this 24 Sep 15:03
ea9d666

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

Choose a tag to compare

@github-actions github-actions released this 24 Sep 06:30
e8fb6f4

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...
Read more

v1.13.0-beta1

Choose a tag to compare

@github-actions github-actions released this 13 Aug 17:50
f8858a3

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
    ...
Read more

v1.12.0-beta1

Choose a tag to compare

@github-actions github-actions released this 22 Jun 12:56

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

Choose a tag to compare

@github-actions github-actions released this 22 May 15:21

v1.11.0-beta1

Choose a tag to compare

@github-actions github-actions released this 22 May 08:02

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