The upgrade instructions are available at Oro documentation website.
This file includes only the most important items that should be addressed before attempting to upgrade or during the upgrade of a vanilla Oro application.
Please also refer to CHANGELOG.md for a list of significant changes in the code that may affect the upgrade of some customizations.
- The new
email.available_in_templateentity config setting controls whether an entity can be selected when creating email templates. By default, all entities are unavailable. To make an entity available for email templates, enable this setting in the#[Config]attribute before the upgrade (if you can change the entity's source code), or after the upgrade using the Entity Management UI or the\Oro\Bundle\EntityConfigBundle\Migration\UpdateEntityConfigEntityValueQuerymigration query. - The same
email.available_in_templatesetting also exists at the entity field level and controls which fields are exposed as variables in email templates, and now it defaults tofalse. Enable it in the#[ConfigField]attribute, via the Entity Management UI, or using the\Oro\Bundle\EmailBundle\Migration\SetEmailAvailableInTemplateQuerymigration query. - Use the following commands to verify:
./bin/console oro:debug:email:template:entities— lists entity classes available when creating email templates../bin/console oro:debug:email:variables— lists template variables allowed for a given entity../bin/console oro:email:template:security-policy-check— validates that an email template passes the security policy checks.
- Use the following commands to enable "email.available_in_template" setting:
./bin/console oro:platform:post-upgrade-tasks --task=enable_available_in_template_for_entities_having_templates— enables theemail.available_in_templateentity config setting for all entities that already have email templates../bin/console oro:platform:post-upgrade-tasks --task=enable_available_in_template_for_fields_in_templates— enables theemail.available_in_templateentity field config setting for all entity fields that are used in email templates.
Strict deserialization rules were applied to workflow data. Every class referenced in serialized objects, object graphs, or arrays must belong to a trusted namespace prefix or be explicitly allowed. If a disallowed class is detected, the application throws a RuntimeException and aborts deserialization by default.
When a violation occurs, the following critical log entry is written to the oro_workflow channel regardless of whether blocking is enabled:
CRITICAL: Failed to unserialize workflow attribute value {"exception":"[...] Data passed to unserialize contains not allowed classes: <fully\qualified\class\name>"} []
Three environment variables control the behavior:
ORO_UNSERIALIZE_BLOCK(boolean, default:true) — set tofalseto log violations as critical errors instead of throwing an exception. Use this temporarily to audit existing workflow data before enforcing the new rules.ORO_UNSERIALIZE_TRUSTED_ORGS(comma-separated, optional) — additional namespace prefixes whose classes are permitted during deserialization (e.g.,Acme\\).ORO_UNSERIALIZE_NOT_ALLOWED_CLASSES(comma-separated, optional) — additional fully qualified class names to block from deserialization regardless of namespace.
- Stripe only: Before upgrading, all pending Stripe payment transactions must be finalized and verified as successfully charged. The legacy StripeBundle has been removed in 7.0, so any unfinalized transactions will no longer be manageable within the application and can only be handled directly on the Stripe side.
Added .env-app files support and removed most of the parameters from the config/parameters.yml in favor of environment variables with DSNs. For more details, see the migration guide.
- The supported PHP version is 8.2
- The supported PostgreSQL version is 15
- The supported NodeJS version is 18
- The supported Redis version is 7
- The supported RabbitMQ version is 3.11
- The supported PHP MongoDB extension version is 1.15
- The supported MongoDB version is 6.0
Fixed scheduled price lists issue. It is recommended to rebuild CPL's:
- Run sql query
DELETE FROM oro_price_list_combined; DELETE FROM oro_price_product_combined; - Run command
php bin/console oro:price-lists:schedule-recalculate --all
The oro.email.update_visibilities_for_organization MQ process can take a long time when updating from the old versions
if the system has many email addresses (in User, Customer user, Lead, Contact, RFP request, Mailbox entities).
During performance tests with 1M of email addresses, this process took approximately 10 minutes.
It is recommended to add these MQ topics to the oro.index queue:
oro.email.recalculate_email_visibilityoro.email.update_visibilitiesoro.email.update_visibilities_for_organizationoro.email.update_email_visibilities_for_organizationoro.email.update_email_visibilities_for_organization_chunk
The supported NodeJS version is 16.0
The minimum required PHP version is 8.0.0.
- The link at the calendar events search items was changed,
please reindex calendar event items with command
php bin/console oro:search:reindex --class="Oro\Bundle\CalendarBundle\Entity\CalendarEvent"
The minimum required PHP version is 7.4.14.
The regular expressions in fos_js_routing.routes_to_expose and oro_frontend.routes_to_expose configuration parameters (see config/config.yml) have changed.
The var/attachment and var/import_export directories are no longer used for storing files and have been removed from the default directory structure.
All files from these directories must be moved to the new locations:
- from
var/attachment/protected_mediacachetovar/data/protected_mediacache; - from
var/attachmenttovar/data/attachments; - from
var/import_exporttovar/data/importexport; - from
var/import_export/filestovar/data/import_files; - from
var/import_export/product_imagestovar/data/import_files.
The public/uploads directory has been removed.
The console command oro:gaufrette:migrate-filestorages will help to migrate the files to new structure.
- The minimum required PHP version is 7.3.13.
- The feature toggle for WEB API was implemented. After upgrade, the API feature will be disabled. To enable it please follow the documentation Enabling an API Feature.
- Upgrade PHP before running
composer installorcomposer update, otherwise composer may download wrong versions of the application packages.
The minimum required PHP version is 7.1.26.
Upgrade PHP before running composer install or composer update, otherwise composer may download wrong versions of the application packages.
- Changed minimum required php version to 7.1
- Relation between Category and Product has been changed in database. Join table has been removed. Please, make sure that you have fresh database backup before updating application.
Full product reindexation has to be performed after upgrade!
Format of sluggable urls cache was changed, added support of localized slugs. Cache regeneration is required after update.
-
Minimum required
phpversion has changed from 5.7 to 7.0. -
Fxpio/composer-asset-plugin dependency was updated to version 1.3.
-
Composer was updated to version 1.4; use the following commands:
composer self-update composer global require "fxp/composer-asset-plugin" -
To upgrade OroCommerce from 1.0 to 1.1 use the following command:
php bin/console oro:platform:update --env=prod --force