Pimcore 2026.3.1: five fixes that affect ownership costs

Pimcore 2026.3.1 review: separate version storage, focal point, and class sanitization. Benefits for catalogs and update planning.

  • What is included in the release
  • Versions and storage
  • Focal point
  • Class description sanitization

What is included in the release

  1. Pimcore released the 2026.3.1 point release without headline features. It allows object versions to be stored in different storage systems, speeds up asset loading, and adds sanitization to the class generator's descriptions.

  2. Releases like these show what a data platform costs to run in production.

  3. The full list of changes is published in release on GitHub.

  4. Five changes from the release notes define its substance: -

  5. A separate version store can be configured for each element type (object, asset, or document). Change author: @mcop1, PR #19504. -

  6. Asset uploads now include an option not to create a version (PR #19433, author @cancan101). -

Focal point

  1. applies to cover transformations where positioning is not configured (PR #19470).

  2. The update note for this was moved to 2026.3.1 (PR #19505). -

  3. The class description is sanitized when the model's PHP class is generated (PR #19478, security section). - CI reports a conflict with phpunit 13.4, which Codeception does not yet support (@mcop1).

  4. Additional maintenance branches have also been moved to 2026.3.

  5. The release contains no new entities or rewritten subsystems.

Versions and storage

  1. Every save of an object or asset in Pimcore creates a version.

  2. Consider a catalog with tens of thousands of SKUs and daily imports from 1C or ERP: over time, it can accumulate millions of versions.

  3. These are serialized data and file copies that almost no one opens.

  4. They are stored on the same disk as active assets and included in the same backups.

  5. Version storage by element type makes it possible to separate these flows.

  6. Object versions are small and frequent, while asset versions are large and rare.

  7. Different storage media and retention policies can be selected: objects on fast storage, and versions of large files in object storage.

  8. The option to skip version creation when uploading an asset solves a related problem: bulk photo uploads no longer create unnecessary copies.

  9. The release includes no savings measurements, so the percentage reduction cannot be stated in advance.

  10. The mechanism is straightforward, and you can test it on your own catalog in a day: calculate the share of versions in total storage before and after.

Focal point

  1. defines the area of the image that must not be cropped.

  2. For a cover transformation without configured positioning, each transformation previously had to be configured manually or the images had to be edited.

  3. The point is now taken into account even without explicit positioning.

  4. For an online store, this reduces content managers' manual work for every new banner format.

  5. The time savings depend on the number of formats and images in circulation.

  6. A hypothesis to test: with a catalog containing hundreds of formats, the difference is noticeable during the first storefront update cycle.

Class description sanitization

  1. Pimcore generates PHP model classes from definitions edited in the admin interface.

  2. The class description is written to the generated file, and without sanitization the comment field could have become a code injection point. This change closes that entry point.

  3. The takeaway goes beyond this single change: any user input that the platform turns into executable code is part of the attack surface.

  4. Permissions to edit class definitions should be granted as cautiously as deployment access.

  5. If content editors or contractors have them, review them regardless of the update date.

Analyze data and reference master records in your environment

CI and PHPUnit 13.4

The line about the phpunit 13.4 conflict may look like an internal detail. The maintainers have explicitly blocked a dependency that the testing framework does not yet support. If you have custom Pimcore bundles and a shared composer.lock, observe the same restriction: automatically updating dev dependencies to 13.4 will break the build until Codeception catches up.

What This Means for Business

  1. A point release like 2026.3.1 rarely makes it into plans: there is nothing to show management.

  2. Yet releases like these determine the total cost of owning the platform.

  3. They determine how much space versions use, how many hours are spent manually editing images, and who can safely receive access to model configuration. At KT.Team, the support branch is updated on a schedule for Pimcore projects.

  4. Once a quarter, take the latest point release, run regression tests for the catalog and imports, and review what changed in storage and security.

  5. A planned quarterly cycle costs less than an emergency update after an incident, while the risk of each step remains low.

  6. We build the same regular procedures into Pimcore integrations with 1C, Akeneo, and ESB buses.

  7. Seemingly simple operations rely on dull, repetitive tasks.

Verdict

  1. The release shows where maintainers of a mature platform invest their effort: version storage, generator security, and test compatibility.

  2. If your update plan has no entry for point releases, technical debt accumulates and will surface in the storage bill or a security incident.

  3. Check the volume of versions in production this week.

  4. This check is cheaper than all the others and will show whether you need separate storage.

Source

Pimcore 2026.3.1 release notes, the Pimcore team, and contributors (@kingjia90, @mcop1, @cancan101): https://github.com/pimcore/pimcore/releases/tag/v2026.3.1. Project license: open, under the terms of the Pimcore repository.

Discuss the article: Pimcore 2026.3.1: five fixes…

Enter your email or phone number so we can get back to you.

Send via: