Skip to content

Releases: coreshop/CoreShop

2026.1.0-beta.1

02 Jun 12:03
79097be

Choose a tag to compare

2026.1.0-beta.1 Pre-release
Pre-release

2026.1.0-beta.1

Version scheme aligned with Pimcore

CoreShop switches from semantic versioning to Pimcore's year-based scheme. The previous line (5.x)
remains the last semver release and continues to receive maintenance; all new development targets
2026.1 and up.

Pimcore 2026.1 minimum requirement

All CoreShop components and bundles now require pimcore/pimcore: ^2026.1. Companion bundles
(pimcore/studio-ui-bundle, pimcore/studio-backend-bundle, pimcore/generic-data-index-bundle)
are likewise bumped to ^2026.1.

Classic Admin / ExtJS removed

Pimcore Classic Admin (ExtJS) support is removed. CoreShop 2026.1 targets Pimcore Studio exclusively.

Removed:

  • All Resources/public/pimcore/ ExtJS asset trees (~480 JS/CSS files across 22 bundles).
  • All AdminClass/ namespaces (grid column operators, admin-JS injection listeners, admin-grid filter
    listeners, the Pimcore Grid Config Installer).
  • All classic_admin.yml service files and the conditional PimcoreAdminBundle loading blocks in
    bundle extensions.
  • pimcore_admin configuration section from CoreShopPimcoreExtension and all bundle Configuration
    classes, plus the registerPimcoreResources() helper on AbstractPimcoreExtension.
  • CoreShop\Component\Pimcore\DataObject\Grid\GridFilterInterface, AsGridFilter attribute,
    RegisterGridFilterPass compiler pass, GridConfigInstaller / GridConfigInstallerInterface.
  • CoreShop\Bundle\PimcoreBundle\Controller\Admin\* controllers. Studio-facing actions were moved to
    CoreShop\Bundle\PimcoreBundle\Controller\{DynamicDropdown,Grid}Controller.
  • ExtJS menu rendering (coreshop_menu route, menu.js.twig, JsonRenderer). The Studio menu API
    (coreshop_menu_api, StudioRenderer) is unchanged.
  • pimcore/admin-ui-classic-bundle suggest entries from all bundle composer.json.
  • Classic Admin firewall / ACL / role hierarchy scaffolding in config/packages/security.yaml.

If you have project code referencing any of these symbols, see the migration notes in the
upgrade guide.

Studio extension points unchanged

The following Studio APIs, routes, and registries continue to work as in 5.1:

  • GET /pimcore-studio/api/coreshop/grid/studio-filters/{listType}
  • GET /pimcore-studio/api/coreshop/grid/actions/{listType}
  • POST /pimcore-studio/api/coreshop/grid/apply-action
  • /pimcore-studio/api/coreshop/dynamic-dropdown/{options,methods}
  • /pimcore-studio/api/coreshop/menus
  • The seven entity extension types (form / table-column / save-decorator / tab / action / validation /
    lifecycle) and all dynamic type registrations.

Static routes migrated to native Symfony routing (opt-in)

CoreShop no longer depends on the deprecated pimcore/static-routes-bundle. The ~40 frontend shop
routes previously defined in FrontendBundle/Resources/install/pimcore/staticroutes.yml and written
into Pimcore's settings-store on install are now declared as native Symfony routes under
FrontendBundle/Resources/config/routes/, split per URL topic (shop/index.yaml,
shop/cart.yaml, shop/catalog.yaml, shop/checkout.yaml, shop/customer.yaml, shop/wishlist.yaml,
partial.yaml).

Routes are opt-in. The bundle no longer auto-registers them via Pimcore's pimcore_bundle route
loader. Projects must explicitly import them in their own config/routes.yaml:

coreshop_frontend:
    resource: "@CoreShopFrontendBundle/Resources/config/routes.yaml"

Projects with a custom storefront can skip the top-level import and cherry-pick only the sub-files
they want (e.g. routes/shop/cart.yaml without routes/shop/checkout.yaml). See the Installation
Guide for details.

Additional effects:

  • Installing CoreShop no longer runs a route-installation step; the Symfony router picks the routes
    up at cache warm-up.
  • PimcoreRoutesInstaller, RouteConfiguration, and the coreshop.resource.installer.routes
    service definition are removed.
  • PimcoreStaticRoutesBundle is removed from config/bundles.php and from the conditional
    registration in CoreShopResourceBundle::registerDependentBundles().
  • LocaleSwitcherExtension no longer calls Staticroute::getByName() — it inspects the current
    route's compiled parameters via RouterInterface::getRouteCollection().
  • The pimcore_wishlist_summary path previously exposed both /{_locale}/shop/wishlist and
    /{_locale}/shop/wishlist/{identifier} under one name. The identifier variant is now a separate
    route, coreshop_wishlist_summary_identifier. Existing twig/template callers pass no identifier
    and are unaffected.
  • Route names and reverse URLs are preserved 1:1 — no template or redirect URL change is required.

Documentation

Developer docs covering rule-engine, payment-provider, menu-bundle, form-extension, and
order-detail extension have been rewritten to use Studio patterns (StudioFormBundle schema,
TabExtension / ActionExtension slots). ExtJS code samples were removed.

5.1.0-beta.1

02 Jun 11:06
8911f81

Choose a tag to compare

5.1.0-beta.1 Pre-release
Pre-release

5.1.0

Pimcore Studio v2

CoreShop 5.1 introduces support for Pimcore Studio. Both Studio and the ExtJS-based Classic Admin
are now supported as optional, independent installations — install either,
or both side-by-side. Existing Classic-Admin-only installations continue to work without
changes.

Classic-Admin internals moved to AdminClass/ subnamespace

Internal helper classes that exist solely to integrate with the ExtJS Classic Admin
(grid column config operators, admin-JS injection listeners, admin-grid filter listeners, etc.)
have been moved into a dedicated AdminClass/ subnamespace within their bundles.

This is a preparatory step: it isolates Classic-Admin-specific code so it can be cleanly removed
in a future major version once Studio v2 covers all functionality. The classes still exist and
Classic Admin continues to work without changes
— only the fully-qualified namespace changed.

If you imported any of these classes directly via use statements or referenced them by FQCN as
service IDs in your own configuration, see UPGRADE-5.1.md for the rename mapping.

Upgrade

Classic-Admin internals moved to AdminClass/ subnamespace

Helper classes that exist solely to integrate with the ExtJS-based Classic Admin
have been moved into a new AdminClass/ subnamespace inside their bundles. This
isolates Classic-Admin-only code so it can be cleanly removed in a future major
version once Pimcore Studio v2 covers all functionality.

The classes are unchanged in behavior — only their fully-qualified namespace is
different. Classic Admin continues to work without any user action required.

You only need to take action if you directly imported one of these classes via
use statements, referenced them by FQCN as a service ID in your own
configuration, or extended them in a custom subclass.

Renamed classes

Old FQCN New FQCN
CoreShop\Bundle\OrderBundle\Pimcore\GridColumnConfig\Operator\PriceFormatter CoreShop\Bundle\OrderBundle\AdminClass\Pimcore\GridColumnConfig\Operator\PriceFormatter
CoreShop\Bundle\OrderBundle\Pimcore\GridColumnConfig\Operator\OrderState CoreShop\Bundle\OrderBundle\AdminClass\Pimcore\GridColumnConfig\Operator\OrderState
CoreShop\Bundle\OrderBundle\Pimcore\GridColumnConfig\Operator\Factory\OrderStateFactory CoreShop\Bundle\OrderBundle\AdminClass\Pimcore\GridColumnConfig\Operator\Factory\OrderStateFactory
CoreShop\Bundle\OrderBundle\Pimcore\GridColumnConfig\Operator\Factory\PriceFormatterFactory CoreShop\Bundle\OrderBundle\AdminClass\Pimcore\GridColumnConfig\Operator\Factory\PriceFormatterFactory
CoreShop\Bundle\OrderBundle\EventListener\Grid\CartFilterListener CoreShop\Bundle\OrderBundle\AdminClass\EventListener\Grid\CartFilterListener
CoreShop\Bundle\ResourceBundle\Pimcore\GridColumnConfig\ResourceFieldGetter CoreShop\Bundle\ResourceBundle\AdminClass\Pimcore\GridColumnConfig\ResourceFieldGetter
CoreShop\Bundle\ResourceBundle\Installer\PimcoreGridConfigInstaller CoreShop\Bundle\ResourceBundle\AdminClass\Installer\PimcoreGridConfigInstaller
CoreShop\Bundle\MoneyBundle\EventListener\IndexActionSettingsSubscriber CoreShop\Bundle\MoneyBundle\AdminClass\EventListener\IndexActionSettingsSubscriber
CoreShop\Bundle\CoreBundle\Pimcore\GridColumnConfig\Operator\StorePrice CoreShop\Bundle\CoreBundle\AdminClass\Pimcore\GridColumnConfig\Operator\StorePrice
CoreShop\Bundle\CoreBundle\Pimcore\GridColumnConfig\Operator\Factory\StorePriceFactory CoreShop\Bundle\CoreBundle\AdminClass\Pimcore\GridColumnConfig\Operator\Factory\StorePriceFactory
CoreShop\Bundle\CoreBundle\EventListener\ProductStoreValuesAdminGetListener CoreShop\Bundle\CoreBundle\AdminClass\EventListener\ProductStoreValuesAdminGetListener
CoreShop\Bundle\CoreBundle\EventListener\CustomerOrderDeletionListener CoreShop\Bundle\CoreBundle\AdminClass\EventListener\CustomerOrderDeletionListener
CoreShop\Bundle\CoreBundle\EventListener\AdminJavascriptListener CoreShop\Bundle\CoreBundle\AdminClass\EventListener\AdminJavascriptListener
CoreShop\Bundle\MenuBundle\EventListener\MenuAdminListener CoreShop\Bundle\MenuBundle\AdminClass\EventListener\MenuAdminListener
CoreShop\Bundle\MenuBundle\EventListener\PimcoreAdminListener CoreShop\Bundle\MenuBundle\AdminClass\EventListener\PimcoreAdminListener
CoreShop\Bundle\PimcoreBundle\EventListener\AdminJavascriptListener CoreShop\Bundle\PimcoreBundle\AdminClass\EventListener\AdminJavascriptListener
CoreShop\Bundle\PimcoreBundle\EventListener\Grid\ObjectListFilterListener CoreShop\Bundle\PimcoreBundle\AdminClass\EventListener\Grid\ObjectListFilterListener

How to fix

Search-and-replace your codebase / config:

CoreShop\Bundle\OrderBundle\Pimcore\GridColumnConfig\
  → CoreShop\Bundle\OrderBundle\AdminClass\Pimcore\GridColumnConfig\
CoreShop\Bundle\OrderBundle\EventListener\Grid\
  → CoreShop\Bundle\OrderBundle\AdminClass\EventListener\Grid\
CoreShop\Bundle\ResourceBundle\Pimcore\GridColumnConfig\
  → CoreShop\Bundle\ResourceBundle\AdminClass\Pimcore\GridColumnConfig\
CoreShop\Bundle\ResourceBundle\Installer\PimcoreGridConfigInstaller
  → CoreShop\Bundle\ResourceBundle\AdminClass\Installer\PimcoreGridConfigInstaller
CoreShop\Bundle\MoneyBundle\EventListener\IndexActionSettingsSubscriber
  → CoreShop\Bundle\MoneyBundle\AdminClass\EventListener\IndexActionSettingsSubscriber
CoreShop\Bundle\CoreBundle\Pimcore\GridColumnConfig\
  → CoreShop\Bundle\CoreBundle\AdminClass\Pimcore\GridColumnConfig\
CoreShop\Bundle\CoreBundle\EventListener\(ProductStoreValuesAdminGetListener|CustomerOrderDeletionListener|AdminJavascriptListener)
  → CoreShop\Bundle\CoreBundle\AdminClass\EventListener\$1
CoreShop\Bundle\MenuBundle\EventListener\
  → CoreShop\Bundle\MenuBundle\AdminClass\EventListener\
CoreShop\Bundle\PimcoreBundle\EventListener\
  → CoreShop\Bundle\PimcoreBundle\AdminClass\EventListener\

If you used the recommended symbolic service IDs (e.g. coreshop.order.grid.price_formatter)
instead of FQCN-as-service-ID, no DI changes are needed.

Admin controllers no longer extend Pimcore\Bundle\AdminBundle\Controller\AdminAbstractController

CoreShop's admin controllers no longer extend Pimcore's AdminAbstractController,
which has been deprecated upstream. Methods previously inherited from it
(adminJson, getAdminUser, pimcoreSerializer, etc.) are no longer available
on these controllers.

This affects you only if you wrote a custom subclass of one of CoreShop's admin
controllers and called any of those inherited methods. Inject the equivalent
services directly in your subclass instead.

5.0.1

02 Jun 08:11
05bf7af

Choose a tag to compare

What's Changed

  • All changes merged from 4.1.*
  • Dependency Updates in FrontendBundle Design v2

Full Changelog: 5.0.0...5.0.1

4.1.11

02 Jun 06:57
2236714

Choose a tag to compare

What's Changed

  • Fix order token generator entropy using CSPRNG and 32-char tokens by @Copilot in #2964
  • Fix password reset security: user enumeration, weak tokens, plaintext storage, missing TTL by @Copilot in #2961
  • backport passwordResetHashCreatedAt user migration from 2026.x by @dpfaffenbauer in #3008
  • [IndexBundle] OpenSearchWorker: Refactor delete methods for index operations by @aarongerig in #3028

Full Changelog: 4.1.10...4.1.11

4.1.10

18 Feb 13:37
57b1b74

Choose a tag to compare

What's Changed

  • Fix outdated Menu Bundle docs for ExtJs event handling by @Copilot in #2966
  • Add multi-select drag & drop support for objectMultihref condition lists by @Copilot in #2960
  • Add CLI command for setting up states/regions for additional countries by @Copilot in #2959
  • [MessengerBundle] Add auto-refresh and chart tooltip by @Copilot in #2965
  • Fix information exposure in OrderInvoiceController and OrderShipmentController by @Copilot in #2962

New Contributors

  • @Copilot made their first contribution in #2966

Full Changelog: 4.1.9...4.1.10

4.1.9

20 Jan 07:33
2b26129

Choose a tag to compare

What's Changed

Full Changelog: 4.1.8...4.1.9

5.0.0

07 Jan 12:13
1a5ec25

Choose a tag to compare

What's Changed

4.1.8

07 Jan 09:44
35eeb6c

Choose a tag to compare

What's Changed

  • [Messenger] dispatch FailedMessageDetailsEvent to allow customization of failed message details generation by @jdreesen in #2911
  • [Messenger] wrap failed message details info modal data in <pre> tags by @jdreesen in #2910
  • [Pimcore] require Pimcore 11.5 only and test for PHP 8.3 by @dpfaffenbauer in #2937
  • [CoreBundle] fix reports injection by @dpfaffenbauer in #2936

Full Changelog: 4.1.7...4.1.8

4.1.7

23 Oct 07:40
d2ffd48

Choose a tag to compare

What's Changed

Full Changelog: 4.1.6...4.1.7

4.1.6

27 Aug 08:22
91b45ba

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 4.1.5...4.1.6