Sylius 2.2.0 introduces anonymous telemetry to help us understand how Sylius is used and improve the platform.
What data is collected:
- Anonymous installation ID (hashed, non-reversible)
- Sylius and PHP versions, default locale
- Aggregated statistics as segments (broad ranges, not exact values):
- Customers/products/variants count (e.g., "1K-10K", "100K-1M")
- GMV and AOV ranges per month (e.g., "100K-500K", "50-100")
No sensitive data is ever collected - no customer information, no order details, no personal data.
Configuration:
Telemetry is enabled by default and uses a default salt for hashing the installation ID.
To disable telemetry, set the following environment variable in your .env file:
SYLIUS_TELEMETRY_ENABLED=0To change the salt, set the SYLIUS_TELEMETRY_SALT environment variable:
SYLIUS_TELEMETRY_SALT=your-custom-salt-
Not injecting a
tagged_iteratorwith the tagsylius_shop.modifier.address_form_valuesinto the constructor ofSylius\Bundle\ShopBundle\Twig\Component\Checkout\Address\FormComponentis deprecated since Sylius 2.2 and will be required in Sylius 3.0.This change enables extending the checkout address form with custom fields or logic by registering services tagged with
sylius_shop.modifier.address_form_values, which implement theAddressFormValuesModifierInterface.
public function __construct(
OrderRepositoryInterface $repository,
FormFactoryInterface $formFactory,
string $resourceClass,
string $formClass,
protected readonly CustomerContextInterface $customerContext,
protected readonly UserRepositoryInterface $shopUserRepository,
protected readonly AddressRepositoryInterface $addressRepository,
+ protected readonly ?iterable $addressFormValuesModifiers = null,
)-
Direct usage of
loader.svgandloader.gifassets is deprecated. Use@SyliusAdmin/shared/helper/loader.html.twigor@SyliusShop/shared/macro/loader.html.twiginstead. -
The
Sylius\Bundle\ReviewBundle\Updater\ReviewableRatingUpdaterInterface::updateFromReview()method has been deprecated and will be removed in Sylius 3.0. Use state machine mechanism implemented by Symfony Workflow instead.
- The
TranslationLocaleProvidernow ensures that the default locale (configured aslocaleinconfig/parameters.yaml) is always placed at the beginning of the returned locales array.
Other locales remain in the same order as returned by the repository.