Sylius 2.0.14 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-saltDatabase migration (optional):
This release includes an optional database migration that adds an index to improve telemetry query performance. The telemetry system works without this index, but adding it will make data collection faster, especially for stores with large order volumes.
To run the migration:
php bin/console doctrine:migrations:migrateIf you want to skip this migration:
php bin/console doctrine:migrations:version 'Sylius\Bundle\CoreBundle\Migrations\Version20251126120000' --add --no-interaction
# For PostgreSQL:
php bin/console doctrine:migrations:version 'Sylius\Bundle\CoreBundle\Migrations\Version20251126120001' --add --no-interactionFor more details, see the Telemetry documentation.
- The context classes have been refactored. All
UIoccurrences of the following step definitions have been removed:
@When I save my changes@When I try to save my changes
These have been replaced by the new common context class: Sylius\Behat\Context\Ui\SaveContext
identified by the id sylius.behat.context.ui.save.
If you use any of the removed methods, please update your suite configuration to include the new context class:
your_behat_profile:
suites:
your_suite_name:
contexts:
- ...
+ - sylius.behat.context.ui.save
-
New
leftandrightsections have been added to the following Twig hooks to improve customization:sylius_admin.admin_user.create.content.form.sectionssylius_admin.admin_user.update.content.form.sectionssylius_admin.customer.create.content.form.sectionssylius_admin.customer.update.content.form.sections
Hooks previously attached to the
sectionshook are now divided intoleftandrightsections. This change doesn't affect to the original hook names.For example, the
accounthook previously attached tosylius_admin.admin_user.create.content.form.sectionsis now located insylius_admin.admin_user.create.content.form.sections#left, but its name remainssylius_admin.admin_user.create.content.form.sections.account.
- Flags have been removed from languages - it resolves all ambiguity and ensures a consistent and straightforward language selection experience. This approach reduces maintenance complexity and eliminates the risk of incorrect or misleading flag assignments.
Even if your app is barely customized, it will require some manual adjustments before it can run again. Depending on whether you use Symfony Flex, some of these changes may be applied automatically, but it’s important to check them manually regardless.
- Packages configuration changes:
# config/packages/_sylius.yaml
imports:
...
+ - { resource: "@SyliusPayumBundle/Resources/config/app/config.yaml" }
...
sylius_payment:
resources:
+ gateway_config:
+ classes:
+ model: App\Entity\Payment\GatewayConfig
...
sylius_payum:
resources:
- gateway_config:
- classes:
- model: App\Entity\Payment\GatewayConfig- API firewalls have been renamed and user checkers have been configured on them
with
security.user_checker.chain.<firewall>service:
# config/packages/security.yaml
security:
firewalls:
admin:
...
+ user_checker: security.user_checker.chain.admin
- new_api_admin_user:
+ api_admin:
...
+ user_checker: security.user_checker.chain.api_admin
- new_api_shop_user:
+ api_shop:
...
+ user_checker: security.user_checker.chain.api_shop
shop:
...
+ user_checker: security.user_checker.chain.shop- Routing changes (note that these shop routes are not localized with the prefix: /{_locale} configuration entry):
Shop:
# config/routes/sylius_shop.yaml
sylius_shop_payum:
- resource: "@SyliusShopBundle/Resources/config/routing/payum.yml"
+ resource: "@SyliusPayumBundle/Resources/config/routing/integrations/sylius_shop.yaml"
sylius_payment_notify:
+ resource: "@SyliusPaymentBundle/Resources/config/routing/integrations/sylius.yaml"
API:
# config/routes/sylius_api.yaml
sylius_api:
resource: "@SyliusApiBundle/Resources/config/routing.yml"
- prefix: "%sylius.security.new_api_route%"
+ prefix: "%sylius.security.api_route%"
- Bundle configuration changes:
# config/bundles.php
<?php
return [
- Sylius\Calendar\SyliusCalendarBundle::class => ['all' => true],
- winzou\Bundle\StateMachineBundle\winzouStateMachineBundle::class => ['all' => true],
- Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle::class => ['all' => true],
- JMS\SerializerBundle\JMSSerializerBundle::class => ['all' => true],
- FOS\RestBundle\FOSRestBundle::class => ['all' => true],
- ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
- SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true],
+ ApiPlatform\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
+ Sylius\TwigHooks\SyliusTwigHooksBundle::class => ['all' => true],
+ Symfony\UX\TwigComponent\TwigComponentBundle::class => ['all' => true],
+ Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true],
+ Symfony\UX\LiveComponent\LiveComponentBundle::class => ['all' => true],
+ Symfony\UX\Autocomplete\AutocompleteBundle::class => ['all' => true],
];
* New Symfony/Messenger transports for handling payment requests have been added.
Therefore, you need to add the following configuration to your .env file:
```diff
###> symfony/messenger ###
...
+ SYLIUS_MESSENGER_TRANSPORT_PAYMENT_REQUEST_DSN=sync://
+ SYLIUS_MESSENGER_TRANSPORT_PAYMENT_REQUEST_FAILED_DSN=sync://
###< symfony/messenger ###Doctrine migrations have been regenerated, meaning all previous migration files have been removed and their content is now in a single migration file. To apply the new migration and get rid of the old entries run migrations as usual:
bin/console doctrine:migrations:migrate --no-interactionSylius 2.0 comes with a bump of minimum supported PHP version to 8.2.
The support of Symfony 5.4 has been dropped. Sylius 2.0 supports both Symfony 6.4 and 7.1
Once you’ve applied these initial changes, your app should be able to run. However, depending on the customizations you’ve made, you may need to make some additional adjustments. Carefully review the following changes and apply them to your app as necessary.
- The
swiftmailer/swiftmailerdependency has been removed. Usesymfony/mailerinstead.
- The
sylius/theme-bundledependency has been moved from CoreBundle to ShopBundle.
-
Removed from main composer.json:
payum/paypal-express-checkout-nvppayum/stripestripe/stripe-php
-
Removed from bundles:
AdminBundle:twig/intl-extra
ApiBundle:sylius/payum-bundle
AttributeBundle:friendsofsymfony/rest-bundlejms/serializer-bundle
ChannelBundle:friendsofsymfony/rest-bundlejms/serializer-bundle
CoreBundle:sylius/payum-bundlesylius/theme-bundlesylius/ui-bundlesymfony/templatingjms/serializer-bundlesonata-project/block-bundlesylius-labs/polyfill-symfony-framework-bundle
CurrencyBundle:friendsofsymfony/rest-bundlejms/serializer-bundlesymfony/templating
InventoryBundle:friendsofsymfony/rest-bundlejms/serializer-bundlesymfony/templating
LocaleBundle:friendsofsymfony/rest-bundlejms/serializer-bundlesymfony/templating
MoneyBundle:friendsofsymfony/rest-bundlejms/serializer-bundlesymfony/templating
OrderBundle:sylius-labs/polyfill-symfony-framework-bundlesymfony/templating
PayumBundle:sylius/core
ProductBundlefriendsofsymfony/rest-bundlejms/serializer-bundle
PromotionBundlesylius/calendar
ShippingBundlesylius/calendar
ShopBundletwig/intl-extra
TaxationBundlesylius/calendar
UiBundlesonata-project/block-bundlesylius-labs/polyfill-symfony-event-dispatchersylius-labs/polyfill-symfony-framework-bundlesymfony/templating
UserBundlesylius-labs/polyfill-symfony-event-dispatchersylius-labs/polyfill-symfony-framework-bundle
-
Winzou State Machine repositories have been moved to the suggested section of composer.json, if you still want to use them, install the following:
winzou/state-machinewinzou/state-machine-bundle
-
The following constructor signatures have been changed:
Sylius\Bundle\CoreBundle\Twig\CheckoutStepsExtensionuse Sylius\Component\Core\Checker\OrderPaymentMethodSelectionRequirementCheckerInterface; use Sylius\Component\Core\Checker\OrderShippingMethodSelectionRequirementCheckerInterface; public function __construct( - private readonly CheckoutStepsHelper|OrderPaymentMethodSelectionRequirementCheckerInterface $checkoutStepsHelper, - private readonly ?OrderShippingMethodSelectionRequirementCheckerInterface $orderShippingMethodSelectionRequirementChecker = null, + private readonly OrderPaymentMethodSelectionRequirementCheckerInterface $orderPaymentMethodSelectionRequirementChecker, + private readonly OrderShippingMethodSelectionRequirementCheckerInterface $orderShippingMethodSelectionRequirementChecker, )Sylius\Bundle\CoreBundle\Twig\PriceExtensionuse Sylius\Component\Core\Calculator\ProductVariantPricesCalculatorInterface; public function __construct( - private readonly PriceHelper|ProductVariantPricesCalculatorInterface $helper, + private readonly ProductVariantPricesCalculatorInterface $productVariantPricesCalculator, )Sylius\Bundle\CoreBundle\Twig\VariantResolverExtensionuse Sylius\Component\Product\Resolver\ProductVariantResolverInterface; public function __construct( - private readonly ProductVariantResolverInterface|VariantResolverHelper $helper, + private readonly ProductVariantResolverInterface $productVariantResolver, )Sylius\Bundle\CurrencyBundle\Twig\CurrencyExtensionpublic function __construct( - private ?CurrencyHelperInterface $helper = null, )Sylius\Bundle\InventoryBundle\Twig\InventoryExtensionuse Sylius\Component\Inventory\Checker\AvailabilityCheckerInterface; public function __construct( - private AvailabilityCheckerInterface|InventoryHelper $helper, + private AvailabilityCheckerInterface $availabilityChecker, )Sylius\Bundle\LocaleBundle\Twig\LocaleExtensionuse Sylius\Component\Locale\Context\LocaleContextInterface; use Sylius\Component\Locale\Converter\LocaleConverterInterface; public function __construct( - private LocaleConverterInterface|LocaleHelperInterface $localeHelper, - private ?LocaleContextInterface $localeContext = null, + private LocaleConverterInterface $localeConverter, + private LocaleContextInterface $localeContext, )Sylius\Bundle\MoneyBundle\Twig\ConvertMoneyExtensionuse Sylius\Component\Currency\Converter\CurrencyConverterInterface; public function __construct( - private ConvertMoneyHelperInterface|CurrencyConverterInterface $helper, + private CurrencyConverterInterface $currencyConverter, )Sylius\Bundle\MoneyBundle\Twig\FormatMoneyExtensionuse Sylius\Bundle\MoneyBundle\Formatter\MoneyFormatterInterface; public function __construct( - private FormatMoneyHelperInterface|MoneyFormatterInterface $helper, + private MoneyFormatterInterface $moneyFormatter, )Sylius\Bundle\OrderBundle\Twig\AggregateAdjustmentsExtensionuse Sylius\Component\Order\Aggregator\AdjustmentsAggregatorInterface; public function __construct( - private AdjustmentsAggregatorInterface|AdjustmentsHelper $adjustmentsHelper, + private AdjustmentsAggregatorInterface $adjustmentsAggregator, )Sylius\Bundle\AdminBundle\Controller\DashboardControllerpublic function __construct( private ChannelRepositoryInterface $channelRepository, private Environment $templatingEngine, private RouterInterface $router, - private ?StatisticsDataProviderInterface $statisticsDataProvider = null, )Sylius\Bundle\AdminBundle\EventListener\AdminFilterSubscriber- use Sylius\Bundle\UiBundle\Storage\FilterStorageInterface; + use Sylius\Bundle\GridBundle\Storage\FilterStorageInterface; public function __construct(private FilterStorageInterface $filterStorage)
Sylius\Bundle\AdminBundle\Controller\RedirectHandler- use Sylius\Bundle\UiBundle\Storage\FilterStorageInterface; + use Sylius\Bundle\GridBundle\Storage\FilterStorageInterface; public function __construct( private RedirectHandlerInterface $decoratedRedirectHandler, private FilterStorageInterface $filterStorage, )
Sylius\Bundle\UiBundle\Twig\RedirectPathExtension- use Sylius\Bundle\UiBundle\Storage\FilterStorageInterface; + use Sylius\Bundle\GridBundle\Storage\FilterStorageInterface; public function __construct( private FilterStorageInterface $filterStorage, private RouterInterface $router, )
Sylius\Bundle\PayumBundle\Form\Extension\CryptedGatewayConfigTypeExtension+ use Sylius\Bundle\PayumBundle\Checker\PayumGatewayConfigEncryptionCheckerInterface; public function __construct( + private readonly PayumGatewayConfigEncryptionCheckerInterface $encryptionChecker, private ?CypherInterface $cypher = null, )
Sylius\Bundle\CoreBundle\Form\Type\Checkout\AddressTypepublic function __construct( + private readonly AddressComparatorInterface $addressComparator, string $dataClass, array $validationGroups = [] - private readonly AddressComparatorInterface $addressComparator = null, )
Sylius\Component\Core\OrderProcessing\OrderPaymentProcessorpublic function __construct( private OrderPaymentProviderInterface $orderPaymentProvider, - private string $targetState = PaymentInterface::STATE_CART, private OrderPaymentsRemoverInterface $orderPaymentsRemover, private array $unprocessableOrderStates, + private string $targetState = PaymentInterface::STATE_CART, )Sylius\Bundle\AdminBundle\Action\ResendOrderConfirmationEmailActionuse Symfony\Component\Routing\RouterInterface; public function __construct( private OrderRepositoryInterface $orderRepository, - private OrderEmailManagerInterface|ResendOrderConfirmationEmailDispatcherInterface $orderEmailManager, + private ResendOrderConfirmationEmailDispatcherInterface $resendOrderConfirmationEmailDispatcher, private CsrfTokenManagerInterface $csrfTokenManager, - private RequestStack|SessionInterface $requestStackOrSession, + private RequestStack $requestStack, - private ?RouterInterface $router = null, + private RouterInterface $router, )Sylius\Bundle\AdminBundle\Action\ResendShipmentConfirmationEmailActionuse Sylius\Bundle\AdminBundle\EmailManager\ShipmentEmailManagerInterface; use Sylius\Bundle\CoreBundle\MessageDispatcher\ResendShipmentConfirmationEmailDispatcherInterface; public function __construct( private ShipmentRepositoryInterface $shipmentRepository, - private ResendShipmentConfirmationEmailDispatcherInterface|ShipmentEmailManagerInterface $shipmentEmailManager, + private ResendShipmentConfirmationEmailDispatcherInterface $resendShipmentConfirmationDispatcher, private CsrfTokenManagerInterface $csrfTokenManager, - private RequestStack|SessionInterface $requestStackOrSession, + private RequestStack $requestStack, )Sylius\Bundle\AdminBundle\Controller\ImpersonateUserControlleruse Symfony\Component\Routing\RouterInterface; public function __construct( private UserImpersonatorInterface $impersonator, private AuthorizationCheckerInterface $authorizationChecker, private UserProviderInterface $userProvider, - ?RouterInterface $router, + private RouterInterface $router, private string $authorizationRole, )Sylius\Bundle\AdminBundle\EventListener\ShipmentShipListeneruse Sylius\Bundle\CoreBundle\Mailer\ShipmentEmailManagerInterface; public function __construct( - private DeprecatedShipmentEmailManagerInterface|ShipmentEmailManagerInterface $shipmentEmailManager + private ShipmentEmailManagerInterface $shipmentEmailManager )Sylius\Bundle\AttributeBundle\Form\Type\AttributeType\Configuration\SelectAttributeChoicesCollectionTypeuse Sylius\Component\Resource\Translation\Provider\TranslationLocaleProviderInterface; public function __construct( - ?TranslationLocaleProviderInterface $localeProvider = null, )Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\CatalogPromotionRemovalProcessoruse Sylius\Bundle\CoreBundle\CatalogPromotion\Announcer\CatalogPromotionRemovalAnnouncerInterface; use Symfony\Component\Messenger\MessageBusInterface; public function __construct( private CatalogPromotionRepositoryInterface $catalogPromotionRepository, - private CatalogPromotionRemovalAnnouncerInterface|MessageBusInterface $catalogPromotionRemovalAnnouncer, - private ?MessageBusInterface $eventBus = null, + private CatalogPromotionRemovalAnnouncerInterface $catalogPromotionRemovalAnnouncer, )Sylius\Bundle\CoreBundle\Fixture\Factory\ProductExampleFactoryuse Symfony\Component\Config\FileLocatorInterface; public function __construct( private FactoryInterface $productFactory, private FactoryInterface $productVariantFactory, private FactoryInterface $channelPricingFactory, private ProductVariantGeneratorInterface $variantGenerator, private FactoryInterface $productAttributeValueFactory, private FactoryInterface $productImageFactory, private FactoryInterface $productTaxonFactory, private ImageUploaderInterface $imageUploader, private SlugGeneratorInterface $slugGenerator, private RepositoryInterface $taxonRepository, private RepositoryInterface $productAttributeRepository, private RepositoryInterface $productOptionRepository, private RepositoryInterface $channelRepository, private RepositoryInterface $localeRepository, - private ?RepositoryInterface $taxCategoryRepository = null, - private ?FileLocatorInterface $fileLocator = null, + private RepositoryInterface $taxCategoryRepository, + private FileLocatorInterface $fileLocator, )Sylius\Bundle\CoreBundle\EventListener\PaymentPreCompleteListenerpublic function __construct( + private OrderItemAvailabilityCheckerInterface|AvailabilityCheckerInterface $availabilityChecker, - private AvailabilityCheckerInterface $availabilityChecker, )
Sylius\Bundle\CoreBundle\Fixture\Factory\PromotionExampleFactoryuse Sylius\Component\Resource\Repository\RepositoryInterface; public function __construct( private FactoryInterface $promotionFactory, private ExampleFactoryInterface $promotionRuleExampleFactory, private ExampleFactoryInterface $promotionActionExampleFactory, private ChannelRepositoryInterface $channelRepository, - private ?FactoryInterface $couponFactory = null, - private ?RepositoryInterface $localeRepository = null, + private FactoryInterface $couponFactory, + private RepositoryInterface $localeRepository, )Sylius\Bundle\CoreBundle\Installer\Provider\DatabaseSetupCommandsProvideruse Doctrine\Bundle\DoctrineBundle\Registry; use Doctrine\ORM\EntityManagerInterface; public function __construct( - Registry $doctrineRegistry, + EntityManagerInterface $entityManager, )Sylius\Bundle\CoreBundle\Installer\Setup\LocaleSetupuse Symfony\Component\Filesystem\Filesystem; public function __construct( private RepositoryInterface $localeRepository, private FactoryInterface $localeFactory, private string $locale, - private ?Filesystem $filesystem = null, - private ?string $localeParameterFilePath, + private Filesystem $filesystem, + private string $localeParameterFilePath, )Sylius\Bundle\CoreBundle\Validator\Constraints\HasEnabledEntityValidatoruse Symfony\Component\PropertyAccess\PropertyAccessorInterface; public function __construct( private ManagerRegistry $registry, - private ?PropertyAccessorInterface $accessor = null, + private PropertyAccessorInterface $accessor, )Sylius\Bundle\ShopBundle\EventListener\OrderCompleteListeneruse Sylius\Bundle\CoreBundle\Mailer\OrderEmailManagerInterface; use Sylius\Bundle\ShopBundle\EmailManager\OrderEmailManagerInterface as DeprecatedOrderEmailManagerInterface; public function __construct( - private DeprecatedOrderEmailManagerInterface|OrderEmailManagerInterface $orderEmailManager + private OrderEmailManagerInterface $orderEmailManager )Sylius\Bundle\ShopBundle\Controller\ContactControlleruse Sylius\Bundle\CoreBundle\Mailer\ContactEmailManagerInterface; use Sylius\Bundle\ShopBundle\EmailManager\ContactEmailManagerInterface as DeprecatedContactEmailManagerInterface; public function __construct( private RouterInterface $router, private FormFactoryInterface $formFactory, private Environment $templatingEngine, private ChannelContextInterface $channelContext, private CustomerContextInterface $customerContext, private LocaleContextInterface $localeContext, - private ContactEmailManagerInterface|DeprecatedContactEmailManagerInterface $contactEmailManager, + private ContactEmailManagerInterface $contactEmailManager, )Sylius\Component\Addressing\Matcher\ZoneMatcheruse Sylius\Component\Addressing\Repository\ZoneRepositoryInterface; use Sylius\Component\Resource\Repository\RepositoryInterface; public function __construct( - private RepositoryInterface|ZoneRepositoryInterface $zoneRepository + private ZoneRepositoryInterface $zoneRepository )Sylius\Component\Core\Updater\UnpaidOrdersStateUpdateruse Doctrine\Persistence\ObjectManager; use SM\Factory\Factory; use Sylius\Abstraction\StateMachine\StateMachineInterface; public function __construct( private OrderRepositoryInterface $orderRepository, - private Factory|StateMachineInterface $stateMachineFactory, + private StateMachineInterface $stateMachine, private string $expirationPeriod, - private ?LoggerInterface $logger = null, - private ?ObjectManager $orderManager = null, + private LoggerInterface $logger, + private ObjectManager $orderManager, private int $batchSize = 100, )Sylius\Component\Core\Calculator\ProductVariantPriceCalculatoruse Sylius\Component\Core\Checker\ProductVariantLowestPriceDisplayCheckerInterface; public function __construct( - private ?ProductVariantLowestPriceDisplayCheckerInterface $productVariantLowestPriceDisplayChecker = null, + private ProductVariantLowestPriceDisplayCheckerInterface $productVariantLowestPriceDisplayChecker, )Sylius\Component\Core\Taxation\Applicator\OrderItemsTaxesApplicatoruse Sylius\Component\Core\Distributor\ProportionalIntegerDistributorInterface; public function __construct( private CalculatorInterface $calculator, private AdjustmentFactoryInterface $adjustmentFactory, private IntegerDistributorInterface $distributor, private TaxRateResolverInterface $taxRateResolver, - private ?ProportionalIntegerDistributorInterface $proportionalIntegerDistributor = null, + private ProportionalIntegerDistributorInterface $proportionalIntegerDistributor, )Sylius\Component\Core\Taxation\Applicator\OrderItemUnitsTaxesApplicatoruse Sylius\Component\Core\Distributor\ProportionalIntegerDistributorInterface; public function __construct( CalculatorInterface $calculator, AdjustmentFactoryInterface $adjustmentFactory, TaxRateResolverInterface $taxRateResolver, + ProportionalIntegerDistributorInterface $proportionalIntegerDistributor, )Sylius\Component\Product\Resolver\DefaultProductVariantResolverpublic function __construct( - private ?ProductVariantRepositoryInterface $productVariantRepository = null + private readonly ProductVariantRepositoryInterface $productVariantRepository )
Sylius\Bundle\CoreBundle\EventListener\TaxonDeletionListenerpublic function __construct( - private RequestStack|SessionInterface $requestStackOrSession, + private RequestStack $requestStack, private ChannelRepositoryInterface $channelRepository, private TaxonInPromotionRuleCheckerInterface $taxonInPromotionRuleChecker, TaxonAwareRuleUpdaterInterface ...$ruleUpdaters, )
Sylius\Component\Core\Cart\Context\ShopBasedCartContextpublic function __construct( private CartContextInterface $cartContext, private ShopperContextInterface $shopperContext, - private ?CreatedByGuestFlagResolverInterface $createdByGuestFlagResolver = null, + private CreatedByGuestFlagResolverInterface $createdByGuestFlagResolver, )Sylius\Component\Core\Uploader\ImageUploaderpublic function __construct( - protected FilesystemAdapterInterface|FilesystemInterface $filesystem, - protected ?ImagePathGeneratorInterface $imagePathGenerator = null, + protected readonly FilesystemAdapterInterface $filesystem, + protected readonly ImagePathGeneratorInterface $imagePathGenerator, )
Sylius\Component\Taxation\Resolver\TaxRateResolverpublic function __construct( protected RepositoryInterface $taxRateRepository, - protected ?TaxRateDateEligibilityCheckerInterface $taxRateDateChecker = null, + protected TaxRateDateEligibilityCheckerInterface $taxRateDateChecker, )Sylius\Bundle\AddressingBundle\Form\Type\ZoneChoiceTypepublic function __construct( private RepositoryInterface $zoneRepository, - private array $scopeTypes = [] + private readonly array $scopeTypes, )Sylius\Component\Core\OrderProcessing\OrderPricesRecalculatorpublic function __construct( - private ProductVariantPriceCalculatorInterface|ProductVariantPricesCalculatorInterface $productVariantPriceCalculator + private ProductVariantPricesCalculatorInterface $productVariantPricesCalculator )
Sylius\Bundle\AdminBundle\Action\Account\RenderResetPasswordPageActionpublic function __construct( private UserRepositoryInterface $userRepository, private FormFactoryInterface $formFactory, - private FlashBagInterface|RequestStack $requestStackOrFlashBag, + private RequestStack $requestStack, private RouterInterface $router, private Environment $twig, private string $tokenTtl, )Sylius\Bundle\AdminBundle\Action\Account\ResetPasswordActionpublic function __construct( private FormFactoryInterface $formFactory, private ResetPasswordDispatcherInterface $resetPasswordDispatcher, - private FlashBagInterface|RequestStack $requestStackOrFlashBag, + private RequestStack $requestStack, private RouterInterface $router, private Environment $twig, )Sylius\Bundle\AdminBundle\Event\OrderShowMenuBuilderEventpublic function __construct( FactoryInterface $factory, ItemInterface $menu, private OrderInterface $order, - private StateMachineInterface|WinzouStateMachineInterface $stateMachine, + private StateMachineInterface $stateMachine, )Sylius\Bundle\AttributeBundle\Form\Type\AttributeValueTypepublic function __construct( string $dataClass, array $validationGroups, protected string $attributeChoiceType, protected RepositoryInterface $attributeRepository, protected RepositoryInterface $localeRepository, protected FormTypeRegistryInterface $formTypeRegistry, - protected ?DataTransformerInterface $localeToCodeTransformer = null, + protected DataTransformerInterface $localeToCodeTransformer, )Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\CatalogPromotionRemovalProcessorpublic function __construct( private CatalogPromotionRepositoryInterface $catalogPromotionRepository, - private CatalogPromotionRemovalAnnouncerInterface|MessageBusInterface $catalogPromotionRemovalAnnouncer, - private ?MessageBusInterface $eventBus = null, /** @phpstan-ignore-line */ + private CatalogPromotionRemovalAnnouncerInterface $catalogPromotionRemovalAnnouncer, )Sylius\Bundle\CoreBundle\Fixture\Factory\AdminUserExampleFactorypublic function __construct( private FactoryInterface $userFactory, private string $localeCode, - private ?FileLocatorInterface $fileLocator = null, - private ?ImageUploaderInterface $imageUploader = null, - private ?FactoryInterface $avatarImageFactory = null, + private FileLocatorInterface $fileLocator, + private ImageUploaderInterface $imageUploader, + private FactoryInterface $avatarImageFactory, )Sylius\Bundle\CoreBundle\Fixture\Factory\ChannelExampleFactorypublic function __construct( private ChannelFactoryInterface $channelFactory, private RepositoryInterface $localeRepository, private RepositoryInterface $currencyRepository, private RepositoryInterface $zoneRepository, - ?TaxonRepositoryInterface $taxonRepository = null, - ?FactoryInterface $shopBillingDataFactory = null, + private TaxonRepositoryInterface $taxonRepository, + private FactoryInterface $shopBillingDataFactory, )Sylius\Bundle\CoreBundle\Fixture\Factory\ShippingMethodExampleFactorypublic function __construct( private FactoryInterface $shippingMethodFactory, private RepositoryInterface $zoneRepository, private RepositoryInterface $shippingCategoryRepository, private RepositoryInterface $localeRepository, private ChannelRepositoryInterface $channelRepository, - private ?RepositoryInterface $taxCategoryRepository = null, + private RepositoryInterface $taxCategoryRepository, )Sylius\Bundle\CoreBundle\Installer\Requirement\FilesystemRequirementspublic function __construct( TranslatorInterface $translator, string $cacheDir, string $logsDir, - ?string $rootDir = null )Sylius\Bundle\CoreBundle\Twig\CheckoutStepsExtensionpublic function __construct( - private readonly CheckoutStepsHelper|OrderPaymentMethodSelectionRequirementCheckerInterface $checkoutStepsHelper, - private readonly ?OrderShippingMethodSelectionRequirementCheckerInterface $orderShippingMethodSelectionRequirementChecker = null, + private readonly OrderPaymentMethodSelectionRequirementCheckerInterface $orderPaymentMethodSelectionRequirementChecker, + private readonly OrderShippingMethodSelectionRequirementCheckerInterface $orderShippingMethodSelectionRequirementChecker, )
Sylius\Bundle\CoreBundle\Twig\PriceExtensionpublic function __construct( - private readonly PriceHelper|ProductVariantPricesCalculatorInterface $helper + private readonly ProductVariantPricesCalculatorInterface $productVariantPricesCalculator )
Sylius\Bundle\CoreBundle\Twig\VariantResolverExtensionpublic function __construct( - private readonly ProductVariantResolverInterface|VariantResolverHelper $helper + private readonly ProductVariantResolverInterface $productVariantResolver )
Sylius\Bundle\ProductBundle\Form\Type\ProductOptionValueChoiceTypepublic function __construct( - ?AvailableProductOptionValuesResolverInterface $availableProductOptionValuesResolver = null + private readonly AvailableProductOptionValuesResolverInterface $availableProductOptionValuesResolver )
Sylius\Bundle\ShopBundle\Controller\ContactControllerpublic function __construct( private RouterInterface $router, private FormFactoryInterface $formFactory, private Environment $templatingEngine, private ChannelContextInterface $channelContext, private CustomerContextInterface $customerContext, private LocaleContextInterface $localeContext, - private ContactEmailManagerInterface|DeprecatedContactEmailManagerInterface $contactEmailManager, + private ContactEmailManagerInterface $contactEmailManager, )Sylius\Bundle\ShopBundle\EventListener\OrderCompleteListenerpublic function __construct( - private DeprecatedOrderEmailManagerInterface|OrderEmailManagerInterface $orderEmailManager + private OrderEmailManagerInterface $orderEmailManager )
Sylius\Bundle\UserBundle\Controller\SecurityControllerpublic function __construct( - private ?AuthenticationUtils $authenticationUtils = null, - private ?FormFactoryInterface $formFactory = null, + private AuthenticationUtils $authenticationUtils, + private FormFactoryInterface $formFactory, + private Environment $twig, )
Sylius\Component\Core\Calculator\ProductVariantPriceCalculatorpublic function __construct( - private ?ProductVariantLowestPriceDisplayCheckerInterface $productVariantLowestPriceDisplayChecker = null, + private ProductVariantLowestPriceDisplayCheckerInterface $productVariantLowestPriceDisplayChecker, )
Sylius\Component\Core\Factory\ChannelFactorypublic function __construct( private FactoryInterface $decoratedFactory, private string $defaultCalculationStrategy, - private ?FactoryInterface $channelPriceHistoryConfigFactory = null, + private FactoryInterface $channelPriceHistoryConfigFactory, )Sylius\Component\Core\Promotion\Checker\Rule\ItemTotalRuleCheckerpublic function __construct( - private ?RuleCheckerInterface $itemTotalRuleChecker = null )Sylius\Component\Core\Provider\TranslationLocaleProviderpublic function __construct( - private LocaleCollectionProviderInterface|RepositoryInterface $localeRepository, + private LocaleCollectionProviderInterface $localeRepository, private string $defaultLocaleCode, )
Sylius\Component\Core\Translation\TranslatableEntityLocaleAssignerpublic function __construct( private LocaleContextInterface $localeContext, private TranslationLocaleProviderInterface $translationLocaleProvider, - private ?CLIContextCheckerInterface $commandBasedChecker = null, + private CLIContextCheckerInterface $commandBasedChecker, ) -
Changes across the codebase:
- private StateMachineFactoryInterface|StateMachineInterface $stateMachineFactory, + private StateMachineInterface $stateMachine,
- private FactoryInterface|StateMachineInterface $stateMachineFactory, + private StateMachineInterface $stateMachine,
- private RequestStack|SessionInterface $requestStackOrSession, + private RequestStack $requestStack,
+ use Symfony\Component\Clock\ClockInterface; - private DateTimeProviderInterface $calendar + private ClockInterface $clock
- private ?ProportionalIntegerDistributorInterface $proportionalIntegerDistributor = null, + private ProportionalIntegerDistributorInterface $proportionalIntegerDistributor,
- Removed
sylius_default.busandsylius_event.busconfigurations.
Usesylius.command_busandsylius.event_busfor commands and events, respectively.
- Removed
sylius_core.state_machineconfiguration parameter. - Changed
sylius_state_machine_abstraction.default_adapterfromwinzou_state_machinetosymfony_workflow.
- Removed configuration nodes for resource options
sylius_*.resources.**.options, such assylius_addressing.resources.address.options. - Removed
sylius_inventory.checkerconfiguration node.
- Removed
sylius_core.autoconfigure_with_attributesandsylius_order.autoconfigure_with_attributes.
Use the following attributes instead of interfaces for autoconfiguration:Sylius\Bundle\OrderBundle\Attribute\AsCartContextSylius\Bundle\OrderBundle\Attribute\AsOrderProcessor
- Removed
sylius_user.resources.{name}.user.resetting.pinconfiguration parameter.
Due to that the related logic has also been removed, this includes:reset_password_pinemailSylius\Bundle\UserBundle\Controller\UserController::requestPasswordResetPinActionmethodsylius.{user_type}_user.pin_generator.password_resetservicessylius.{user_type}_user.pin_uniqueness_checker.password_resetservices
- Removed:
sylius.mongodb_odm.repository.classsylius.phpcr_odm.repository.classsylius.mailer.templates
- Renamed:
sylius.message.admin_user_create.validation_groupstosylius_admin.command_handler.create_admin_user.validation_groups
- The state machine configurations of
PaymentBundlehave been moved and renamed:
Winzou state machine:
- `@SyliusPaymentBundle/Resources/config/app/state_machine.yml`
+ `@SyliusPaymentBundle/Resources/config/app/state_machine/sylius_payment.yaml`Symfony workflow:
- `@SyliusPaymentBundle/Resources/config/workflow/state_machine.yaml`
+ `@SyliusPaymentBundle/Resources/config/app/workflow/sylius_[resource].yaml`-
Added a new parameter to specify validation groups for zones.
Configure custom validation groups for zone members inconfig/packages/_sylius.yaml.
Example:sylius_addressing: zone_member: validation_groups: country: - 'sylius' - 'sylius_zone_member_country' zone: - 'sylius' - 'sylius_zone_member_zone'
- Changed the default resolver and loader names for
LiipImagineBundlefrom default to sylius_image (reference).
To modify these defaults, configurecacheand/ordata_loaderparameters under theliip_imaginekey.
The experimental entities filter has been removed. It has been replaced by the generic entity one.
sylius_grid:
grids:
# ...
sylius_admin_catalog_promotion:
# ...
filters:
channel:
- type: entities
+ type: entity
label: sylius.ui.channel
form_options:
class: "%sylius.model.channel.class%"
options:
- field: product.channels.id
+ fields: [product.channels.id]The encoder and salt have been removed from the User entities. The password hasher configured on Symfony security configuration is in use instead.
This "encoder" is configured via the Symfony security password hasher.
For example:
# config/packages/security.yaml
security:
# ...
password_hashers:
Sylius\Component\User\Model\UserInterface: argon2iAlso, check if you have an encoder configured in the sylius_user package configuration.
sylius_user:
# ...
encoder: plaintext # Remove this line
# ...
resources:
oauth:
user:
encoder: false # Remove this line
classes: Sylius\Component\User\Model\UserOAuthCheck your user hashed passwords in your production database. In modern Symfony projects, the hasher name is stored along with the password.
Example:
$argon2i$v=19$m=65536,t=4,p=1$VVJuMnpUUWhRY1daN1ppMA$2Tx6l3I+OUx+PUPn+vZz1jI3Z6l6IHh2kpG0NdpmYWE
If some of your users do not have the hasher name stored in the password field you may need to configure the "migrate_from" option by following the documentation: https://symfony.com/doc/current/security/passwords.html#configure-a-new-hasher-using-migrate-from
Note: If your app never changed the hasher name configuration, you don't need to configure this "migrate_from" configuration.
- The following routes have been removed:
sylius_admin_dashboard_statisticssylius_admin_ajax_all_product_variants_by_codessylius_admin_ajax_all_product_variants_by_phrasesylius_admin_ajax_customer_group_by_codesylius_admin_ajax_customer_groups_by_phrasesylius_admin_ajax_find_product_optionssylius_admin_ajax_generate_product_slugsylius_admin_ajax_generate_taxon_slugsylius_admin_ajax_product_by_codesylius_admin_ajax_product_by_name_phrasesylius_admin_ajax_product_indexsylius_admin_ajax_product_options_by_phrasesylius_admin_ajax_products_by_phrasesylius_admin_ajax_product_variants_by_codessylius_admin_ajax_product_variants_by_phrasesylius_admin_ajax_taxon_by_codesylius_admin_ajax_taxon_by_name_phrasesylius_admin_ajax_taxon_leafssylius_admin_ajax_taxon_root_nodessylius_admin_dashboard_statisticssylius_admin_get_attribute_typessylius_admin_get_payment_gatewayssylius_admin_get_product_attributessylius_admin_partial_address_log_entry_indexsylius_admin_partial_catalog_promotion_showsylius_admin_partial_channel_indexsylius_admin_partial_customer_latestsylius_admin_partial_customer_showsylius_admin_partial_order_latestsylius_admin_partial_order_latest_in_channelsylius_admin_partial_product_showsylius_admin_partial_promotion_showsylius_admin_partial_taxon_showsylius_admin_partial_taxon_treesylius_admin_render_attribute_formssylius_shop_ajax_cart_add_itemsylius_shop_ajax_cart_item_removesylius_shop_ajax_user_check_actionsylius_shop_partial_cart_summarysylius_shop_partial_cart_add_itemsylius_shop_partial_channel_menu_taxon_indexsylius_shop_partial_product_association_showsylius_shop_partial_product_index_latestsylius_shop_partial_product_review_latestsylius_shop_partial_product_show_by_slugsylius_shop_partial_taxon_index_by_codesylius_shop_partial_taxon_show_by_slug
In Sylius 2.0, we have changed the visibility of services to private by default. This change enhances the performance
and maintainability of the application and also follows Symfony's best practices for service encapsulation.
Exceptions:
- Services required by Symfony to be
public(e.g., controllers, event listeners) remain public. - Services used in
ResourceControllermust bepublicas they are accessed directly from the container.
- Removed
Sylius\Bundle\ApiBundle\EventListener\PostgreSQLDriverExceptionListenerSylius\Bundle\ProductBundle\Controller\ProductSlugControllerSylius\Bundle\CoreBundle\Twig\FilterExtensionSylius\Bundle\CoreBundle\DependencyInjection\Compiler\LiipImageFiltersPassSylius\Bundle\GridBundle\Doctrine\PHPCRODM\DataSourceSylius\Bundle\GridBundle\Doctrine\PHPCRODM\DriverSylius\Bundle\GridBundle\Doctrine\PHPCRODM\ExpressionBuilderSylius\Bundle\GridBundle\Doctrine\PHPCRODM\ExpressionBuilderInterfaceSylius\Bundle\GridBundle\Doctrine\PHPCRODM\ExpressionVisitorSylius\Bundle\GridBundle\Doctrine\PHPCRODM\ExtraComparisonSylius\Bundle\ResourceBundle\DependencyInjection\Driver\Doctrine\DoctrineODMDriverSylius\Bundle\ResourceBundle\DependencyInjection\Driver\Doctrine\DoctrinePHPCRDriverSylius\Bundle\ResourceBundle\Doctrine\ODM\MongoDB\DocumentRepositorySylius\Bundle\ResourceBundle\Doctrine\ODM\MongoDB\TranslatableRepositorySylius\Bundle\ResourceBundle\Doctrine\ODM\PHPCR\DocumentRepositorySylius\Bundle\ResourceBundle\Doctrine\ODM\PHPCR\EventListener\DefaultParentListenerSylius\Bundle\ResourceBundle\Doctrine\ODM\PHPCR\EventListener\NameFilterListenerSylius\Bundle\ResourceBundle\Doctrine\ODM\PHPCR\EventListener\NameResolverListenerSylius\Bundle\ResourceBundle\Doctrine\ODM\PHPCR\Form\Builder\DefaultFormBuilderSylius\Bundle\ResourceBundle\EventListener\ODMMappedSuperClassSubscriberSylius\Bundle\ResourceBundle\EventListener\ODMRepositoryClassSubscriberSylius\Bundle\ResourceBundle\EventListener\ODMTranslatableListenerSylius\Bundle\AddressingBundle\Controller\ProvinceControllerSylius\Bundle\AdminBundle\Controller\NotificationControllerSylius\Bundle\AdminBundle\Twig\NotificationWidgetExtensionSylius\Bundle\CoreBundle\Templating\Helper\CheckoutStepsHelperSylius\Bundle\CoreBundle\Templating\Helper\PriceHelperSylius\Bundle\CoreBundle\Templating\Helper\VariantResolverHelperSylius\Bundle\CurrencyBundle\Templating\Helper\CurrencyHelperSylius\Bundle\CurrencyBundle\Templating\Helper\CurrencyHelperInterfaceSylius\Bundle\InventoryBundle\Templating\Helper\InventoryHelperSylius\Bundle\LocaleBundle\Templating\Helper\LocaleHelperSylius\Bundle\LocaleBundle\Templating\Helper\LocaleHelperInterfaceSylius\Bundle\MoneyBundle\Templating\Helper\ConvertMoneyHelperSylius\Bundle\MoneyBundle\Templating\Helper\ConvertMoneyHelperInterfaceSylius\Bundle\MoneyBundle\Templating\Helper\FormatMoneyHelperSylius\Bundle\MoneyBundle\Templating\Helper\FormatMoneyHelperInterfaceSylius\Bundle\OrderBundle\Templating\Helper\AdjustmentsHelperSylius\Bundle\ProductBundle\Controller\ProductAttributeControllerSylius\Bundle\UserBundle\Security\UserLoginSylius\Bundle\UserBundle\Security\UserLoginInterfaceSylius\Bundle\UserBundle\Security\UserPasswordHasherSylius\Bundle\UserBundle\Security\UserPasswordHasherInterfaceSylius\Component\User\Security\Generator\UniquePinGeneratorSylius\Bundle\AdminBundle\Controller\Dashboard\StatisticsControllerSylius\Bundle\AdminBundle\Form\Extension\CatalogPromotionActionTypeExtensionSylius\Bundle\AdminBundle\Form\Extension\CatalogPromotionScopeTypeExtensionSylius\Bundle\AdminBundle\Menu\CustomerShowMenuBuilderSylius\Bundle\AdminBundle\Menu\OrderShowMenuBuilderSylius\Bundle\AdminBundle\Menu\ProductFormMenuBuilderSylius\Bundle\AdminBundle\Menu\ProductUpdateMenuBuilderSylius\Bundle\AdminBundle\Menu\ProductVariantFormMenuBuilderSylius\Bundle\AdminBundle\Menu\PromotionUpdateMenuBuilderSylius\Bundle\AdminBundle\Provider\StatisticsDataProviderSylius\Bundle\ApiBundle\ApiPlatform\Bridge\Symfony\Routing\CachedRouteNameResolverSylius\Bundle\ApiBundle\ApiPlatform\Bridge\Symfony\Routing\RouteNameResolverSylius\Bundle\ApiBundle\ApiPlatform\Factory\MergingExtractorResourceMetadataFactorySylius\Bundle\ApiBundle\Exception\ChannelCannotBeRemovedSylius\Bundle\ApiBundle\Exception\PaymentMethodCannotBeRemovedSylius\Bundle\ApiBundle\Exception\ProductAttributeCannotBeRemovedSylius\Bundle\ApiBundle\Exception\ProductCannotBeRemovedSylius\Bundle\ApiBundle\Exception\ProductVariantCannotBeRemovedSylius\Bundle\ApiBundle\Exception\PromotionCannotBeRemovedSylius\Bundle\ApiBundle\Exception\PromotionCouponCannotBeRemovedSylius\Bundle\ApiBundle\Exception\ProvinceCannotBeRemovedSylius\Bundle\ApiBundle\Exception\ShippingMethodCannotBeRemovedSylius\Bundle\ApiBundle\Exception\TaxonCannotBeRemovedSylius\Bundle\ApiBundle\Exception\ZoneCannotBeRemovedSylius\Bundle\ApiBundle\Validator\ResourceApiInputDataPropertiesValidatorSylius\Bundle\ApiBundle\EventListener\PostgreSQLDriverExceptionListenerSylius\Bundle\ApiBundle\DataTransformer\CommandAwareInputDataTransformerSylius\Bundle\ApiBundle\DataTransformer\CommandDataTransformerInterfaceSylius\Bundle\CoreBundle\Console\Command\Model\PluginInfoSylius\Bundle\CoreBundle\Form\Extension\CountryTypeExtensionSylius\Bundle\CoreBundle\Form\Extension\CustomerTypeExtensionSylius\Bundle\CoreBundle\Form\Extension\LocaleTypeExtensionSylius\Bundle\CoreBundle\Form\Type\Grid\Filter\EntitiesFilterTypeSylius\Bundle\CoreBundle\Form\EventSubscriber\AddUserFormSubscriberSylius\Bundle\CoreBundle\Twig\StateMachineExtensionSylius\Component\Core\Grid\Filter\EntitiesFilterSylius\Component\Core\Dashboard\DashboardStatisticsSylius\Component\Core\Dashboard\DashboardStatisticsProviderSylius\Component\Core\Dashboard\IntervalSylius\Component\Core\Dashboard\SalesDataProviderSylius\Component\Core\Dashboard\SalesSummarySylius\Component\Core\Dashboard\SalesSummaryInterfaceSylius\Bundle\PayumBundle\Action\Paypal\ExpressCheckout\ConvertPaymentActionSylius\Bundle\PayumBundle\Controller\PayumControllerSylius\Bundle\PayumBundle\Form\Type\PaypalGatewayConfigurationTypeSylius\Bundle\PayumBundle\Form\Type\StripeGatewayConfigurationTypeSylius\Bundle\UiBundle\ContextProvider\DefaultContextProviderSylius\Bundle\UiBundle\Registry\TemplateBlockSylius\Bundle\UiBundle\Registry\TemplateBlockRegistrySylius\Bundle\UiBundle\Renderer\DelegatingTemplateEventRendererSylius\Bundle\UiBundle\Renderer\TwigTemplateBlockRendererSylius\Bundle\UiBundle\Storage\FilterStorageInterfaceSylius\Bundle\UiBundle\Twig\SortByExtensionSylius\Bundle\UiBundle\Twig\TemplateEventExtensionSylius\Bundle\UiBundle\Twig\TestFormAttributeExtensionSylius\Bundle\UiBundle\Twig\TestHtmlAttributeExtensionSylius\Bundle\PromotionBundle\Validator\CatalogPromotionAction\ActionValidatorInterfaceSylius\Bundle\PromotionBundle\Validator\CatalogPromotionScope\ScopeValidatorInterfaceSylius\Component\Core\Promotion\Updater\Rule\TotalOfItemsFromTaxonRuleUpdaterSylius\Bundle\AdminBundle\EmailManager\OrderEmailManagerSylius\Bundle\AdminBundle\EmailManager\ShipmentEmailManagerSylius\Bundle\ShopBundle\EmailManager\OrderEmailManagerSylius\Bundle\ProductBundle\Form\Type\ProductOptionChoiceTypeSylius\Component\Core\Promotion\Updater\Rule\ProductAwareRuleUpdaterInterfaceSylius\Component\Promotion\Checker\Rule\CartQuantityRuleCheckerSylius\Bundle\CoreBundle\CatalogPromotion\Command\RemoveInactiveCatalogPromotionSylius\Bundle\CoreBundle\Provider\SessionProviderSylius\Component\Core\SyliusLocaleEventsSylius\Bundle\ShopBundle\Twig\OrderTaxesTotalExtension
- Renamed
| Old Name | New Name |
|---|---|
Sylius\Bundle\ApiBundle\CommandHandler\Account\ResendVerificationEmailHandler |
Sylius\Bundle\ApiBundle\CommandHandler\Account\RequestShopUserVerificationHandler |
Sylius\Bundle\ApiBundle\CommandHandler\Account\SendAccountVerificationEmailHandler |
Sylius\Bundle\ApiBundle\CommandHandler\Account\SendShopUserVerificationEmailHandler |
Sylius\Bundle\ApiBundle\CommandHandler\Account\VerifyCustomerAccountHandler |
Sylius\Bundle\ApiBundle\CommandHandler\Account\VerifyShopUserHandler |
- Moved
| From | To |
|---|---|
Sylius\Bundle\PayumBundle\Validator\GatewayFactoryExistsValidator |
Sylius\Bundle\PaymentBundle\Validator\Constraints\GatewayFactoryExistsValidator |
Sylius\Bundle\PayumBundle\Validator\GroupsGenerator\GatewayConfigGroupsGenerator |
Sylius\Bundle\PaymentBundle\Validator\Constraints\GatewayConfigGroupsGenerator |
Sylius\Component\Promotion\Checker\Rule\ItemTotalRuleChecker |
Sylius\Component\Core\Promotion\Checker\Rule\ItemTotalRuleChecker |
Sylius\Bundle\ShopBundle\EmailManager\ContactEmailManager |
Sylius\Bundle\CoreBundle\Mailer\ContactEmailManager |
Sylius\Bundle\AdminBundle\EmailManager\ShipmentEmailManagerInterface |
Sylius\Bundle\CoreBundle\Mailer\ShipmentEmailManagerInterface |
- Removed
sylius.event_subscriber.odm_mapped_super_classsylius.event_subscriber.odm_repository_classsylius.grid_driver.doctrine.phpcrodmsylius.listener.api_postgresql_driver_exception_listenersylius.security.password_hashersylius.security.user_loginSylius\Bundle\UserBundle\Security\UserLoginInterfaceSylius\Component\User\Security\UserPasswordHasherInterfacesylius.controller.admin.notificationSylius\Buxndle\AdminBundle\Form\Extension\CatalogPromotionActionTypeExtensionsylius.controller.admin.dashboard.statisticsSylius\Bundle\AdminBundle\Form\Extension\CatalogPromotionScopeTypeExtensionsylius.admin.menu_builder.customer.showsylius.admin.menu_builder.order.showsylius.admin.menu_builder.product_formsylius.admin.menu_builder.product_variant_formsylius.admin.menu_builder.promotion.updateSylius\Bundle\AdminBundle\Provider\StatisticsDataProviderInterfaceSylius\Bundle\ApiBundle\ApiPlatform\ApiResourceConfigurationMergerapi_platform.route_name_resolver.cachedapi_platform.route_name_resolverapi_platform.metadata.resource.metadata_factory.yamlSylius\Bundle\ApiBundle\ApiPlatform\Metadata\Merger\LegacyResourceMetadataMergerSylius\Bundle\ApiBundle\ApiPlatform\ResourceMetadataPropertyValueResolverSylius\Bundle\ApiBundle\Controller\GetAddressLogEntryCollectionActionSylius\Bundle\ApiBundle\Controller\GetOrderAdjustmentsActionSylius\Bundle\ApiBundle\Controller\UploadAvatarImageActionSylius\Bundle\ApiBundle\Controller\UploadProductImageActionSylius\Bundle\ApiBundle\Controller\UploadTaxonImageActionSylius\Bundle\ApiBundle\DataPersister\AddressDataPersisterSylius\Bundle\ApiBundle\DataPersister\AdminUserDataPersisterSylius\Bundle\ApiBundle\DataPersister\ChannelDataPersisterSylius\Bundle\ApiBundle\DataPersister\CountryDataPersisterSylius\Bundle\ApiBundle\DataPersister\CustomerDataPersisterSylius\Bundle\ApiBundle\DataPersister\LocaleDataPersisterSylius\Bundle\ApiBundle\DataPersister\MessengerDataPersisterSylius\Bundle\ApiBundle\DataPersister\PaymentMethodDataPersisterSylius\Bundle\ApiBundle\DataPersister\ProductAttributeDataPersisterSylius\Bundle\ApiBundle\DataPersister\ProductDataPersisterSylius\Bundle\ApiBundle\DataPersister\ProductTaxonDataPersisterSylius\Bundle\ApiBundle\DataPersister\ProductVariantDataPersisterSylius\Bundle\ApiBundle\DataPersister\PromotionCouponDataPersisterSylius\Bundle\ApiBundle\DataPersister\PromotionDataPersisterSylius\Bundle\ApiBundle\DataPersister\ShippingMethodDataPersisterSylius\Bundle\ApiBundle\DataPersister\TranslatableDataPersisterSylius\Bundle\ApiBundle\DataPersister\ZoneDataPersisterSylius\Bundle\ApiBundle\DataProvider\AccountResetPasswordItemDataProviderSylius\Bundle\ApiBundle\DataProvider\AdminOrderItemAdjustmentsSubresourceDataProviderSylius\Bundle\ApiBundle\DataProvider\AdminResetPasswordItemDataProviderSylius\Bundle\ApiBundle\DataProvider\ChannelAwareItemDataProviderSylius\Bundle\ApiBundle\DataProvider\ChannelsCollectionDataProviderSylius\Bundle\ApiBundle\DataProvider\CustomerItemDataProviderSylius\Bundle\ApiBundle\DataProvider\OrderAdjustmentsSubresourceDataProviderSylius\Bundle\ApiBundle\DataProvider\OrderItemAdjustmentsSubresourceDataProviderSylius\Bundle\ApiBundle\DataProvider\OrderItemItemDataProviderSylius\Bundle\ApiBundle\DataProvider\OrderItemUnitItemDataProviderSylius\Bundle\ApiBundle\DataProvider\PaymentItemDataProviderSylius\Bundle\ApiBundle\DataProvider\PaymentMethodsCollectionDataProviderSylius\Bundle\ApiBundle\DataProvider\ProductAttributesSubresourceDataProviderSylius\Bundle\ApiBundle\DataProvider\ProductItemDataProviderSylius\Bundle\ApiBundle\DataProvider\ShipmentItemDataProviderSylius\Bundle\ApiBundle\DataProvider\ShippingMethodsCollectionDataProviderSylius\Bundle\ApiBundle\DataProvider\VerifyCustomerAccountItemDataProviderSylius\Bundle\ApiBundle\Filter\Doctrine\PromotionCouponPromotionFilterSylius\Bundle\ApiBundle\Filter\PaymentMethodFilterSylius\Bundle\ApiBundle\Filter\ShippingMethodFilterSylius\Bundle\ApiBundle\QueryHandler\GetAddressLogEntryCollectionHandlerSylius\Bundle\ApiBundle\Serializer\FlattenExceptionNormalizerSylius\Bundle\ApiBundle\SerializerContextBuilder\ReadOperationContextBuilderSylius\Bundle\ApiBundle\Validator\Constraints\AccountVerificationTokenEligibilityValidatorSylius\Bundle\ApiBundle\Validator\ResourceInputDataPropertiesValidatorInterfaceSylius\Bundle\ApiBundle\DataTransformer\ChannelCodeAwareInputCommandDataTransformersylius.api.data_transformer.command_aware_input_data_transformerSylius\Bundle\ApiBundle\DataTransformer\LocaleCodeAwareInputCommandDataTransformerSylius\Bundle\ApiBundle\DataTransformer\LoggedInCustomerEmailAwareCommandDataTransformerSylius\Bundle\ApiBundle\DataTransformer\LoggedInCustomerEmailIfNotSetAwareCommandDataTransformerSylius\Bundle\ApiBundle\DataTransformer\LoggedInShopUserIdAwareCommandDataTransformerSylius\Bundle\ApiBundle\DataTransformer\OrderTokenValueAwareInputCommandDataTransformerSylius\Bundle\ApiBundle\DataTransformer\ShipmentIdAwareInputCommandDataTransformerSylius\Bundle\ApiBundle\DataTransformer\SubresourceIdAwareCommandDataTransformerapi_platform.action.post_itemSylius\Bundle\CoreBundle\Console\Command\ShowAvailablePluginsCommandsylius.form.extension.type.countrysylius.form.extension.type.customersylius.form.extension.type.localesylius.grid_filter.entitiessylius.dashboard.statistics_providerSylius\Component\Core\Dashboard\SalesDataProviderInterfacesylius.payum_action.paypal_express_checkout.convert_paymentsylius.controller.payumsylius.form.type.gateway_configuration.stripeSylius\Bundle\UiBundle\Console\Command\DebugTemplateEventCommandSylius\Bundle\UiBundle\ContextProvider\ContextProviderInterfaceSylius\Bundle\UiBundle\DataCollector\TemplateBlockDataCollectorSylius\Bundle\UiBundle\DataCollector\TemplateBlockRenderingHistorySylius\Bundle\UiBundle\DataCollector\TraceableTemplateBlockRendererSylius\Bundle\UiBundle\DataCollector\TraceableTemplateEventRendererSylius\Bundle\UiBundle\Registry\TemplateBlockRegistryInterfaceSylius\Bundle\UiBundle\Renderer\HtmlDebugTemplateBlockRendererSylius\Bundle\UiBundle\Renderer\HtmlDebugTemplateEventRendererSylius\Bundle\UiBundle\Renderer\TemplateBlockRendererInterfaceSylius\Bundle\UiBundle\Renderer\TemplateEventRendererInterfaceSylius\Bundle\UiBundle\Storage\FilterStorageSylius\Bundle\UiBundle\Twig\LegacySonataBlockExtensionsylius.twig.extension.template_eventSylius\Bundle\PromotionBundle\Validator\CatalogPromotionActionValidatorSylius\Bundle\PromotionBundle\Validator\CatalogPromotionScopeValidatorSylius\Component\Promotion\Generator\PromotionCouponGeneratorInstructionInterfacesylius.promotion_rule_updater.total_of_items_from_taxonSylius\Component\Core\Promotion\Updater\Rule\ContainsProductRuleUpdaterSylius\Bundle\AdminBundle\EmailManager\OrderEmailManagerInterfacesylius.email_manager.shipmentSylius\Bundle\AdminBundle\EmailManager\ShipmentEmailManagerInterfaceSylius\Bundle\ShopBundle\EmailManager\ContactEmailManagerInterfacesylius.email_manager.contactsylius.email_manager.orderSylius\Bundle\ShopBundle\EmailManager\OrderEmailManagerInterfacesylius.form.type.product_option_choiceSylius\Bundle\ShopBundle\Calculator\OrderItemsSubtotalCalculatorInterfacesylius.calculator.order_items_subtotalSylius\Bundle\CoreBundle\CatalogPromotion\CommandHandler\RemoveInactiveCatalogPromotionHandlersylius.http_message_factorysylius.twig.extension.taxes
- Renamed
| Old Name | New Name |
|---|---|
sylius.twig.extension.form_test_attribute_array |
sylius_twig_extra.twig.extension.test_form_attribute |
sylius.twig.extension.form_test_attribute_name |
sylius_twig_extra.twig.extension.test_html_attribute |
sylius.twig.extension.sort_by |
sylius_twig_extra.twig.extension.sort_by |
Sylius\Bundle\UiBundle\Twig\RouteExistsExtension |
sylius_twig_extra.twig.extension.route_exists |
sylius.form_registry.payum_gateway_config |
sylius.form_registry.payment_gateway_config (moved to PaymentBundle) |
Sylius\Bundle\PayumBundle\Validator\GatewayFactoryExistsValidator |
sylius.validator.gateway_factory_exists |
Sylius\Bundle\PayumBundle\Validator\GroupsGenerator\GatewayConfigGroupsGenerator |
sylius.validator.groups_generator.gateway_config |
- Replaced
| Old Name | New Name |
|---|---|
Sylius\Bundle\AdminBundle\EventListener\ResourceDeleteSubscriber |
Sylius\Bundle\AdminBundle\EventListener\ResourceDeleteListener |
- Definition location changed
- The
Sylius\Bundle\PromotionBundle\Form\Type\CatalogPromotionAction\PercentageDiscountActionConfigurationTypewas moved to theCoreBundlefromPromotionBundle. - The
Sylius\Bundle\PromotionBundle\Form\Type\CatalogPromotionScopeTypewas moved from theCoreBundleto thePromotionBundle.
-
Added
Sylius\Component\Order\Context\ResettableCartContextInterface, which extendsSylius\Component\Order\Context\CartContextInterfaceandSymfony\Contracts\Service\ResetInterface. -
Replaced
sylius/calendarwithsymfony/clock. All instances ofSylius\Calendar\Provider\DateTimeProviderInterfaceare now replaced bySymfony\Component\Clock\ClockInterface.
Affected classes:
- Sylius\Bundle\CoreBundle\CatalogPromotion\Announcer\CatalogPromotionAnnouncer
- Sylius\Bundle\CoreBundle\MessageHandler\Admin\Account\RequestResetPasswordEmailHandler
- Sylius\Bundle\CoreBundle\PriceHistory\Logger\PriceChangeLogger
- Sylius\Bundle\CoreBundle\PriceHistory\Remover\ChannelPricingLogEntriesRemover
- Sylius\Bundle\ShippingBundle\Assigner\ShippingDateAssigner
- Sylius\Bundle\PromotionBundle\Criteria\DateRange
- Sylius\Bundle\ApiBundle\Applicator\ArchivingShippingMethodApplicator
- Sylius\Bundle\ApiBundle\CommandHandler\Account\RequestResetPasswordTokenHandler
- Sylius\Bundle\ApiBundle\CommandHandler\Account\VerifyCustomerAccountHandler
- Sylius\Component\Taxation\Checker\TaxRateDateEligibilityChecker
- The
\Serializableinterface has been removed fromSylius\Component\User\Model\UserInterface.
-
Addressing:
Sylius\Bundle\AddressingBundle\Doctrine\ORM\AddressRepositorySylius\Bundle\AddressingBundle\Doctrine\ORM\CountryRepositorySylius\Bundle\AddressingBundle\Doctrine\ORM\ProvinceRepositorySylius\Bundle\AddressingBundle\Doctrine\ORM\ZoneMemberRepository
-
Attribute:
Sylius\Bundle\AttributeBundle\Doctrine\ORM\AttributeRepositorySylius\Bundle\AttributeBundle\Doctrine\ORM\AttributeTranslationRepositorySylius\Bundle\AttributeBundle\Doctrine\ORM\AttributeValueRepository
-
Product:
Sylius\Bundle\ProductBundle\Doctrine\ORM\ProductAssociationRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductAssociationTypeTranslationRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductAttributeRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductAttributeTranslationRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductOptionTranslationRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductOptionValueRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductOptionValueTranslationRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductTranslationRepositorySylius\Bundle\ProductBundle\Doctrine\ORM\ProductVariantTranslationRepository
-
Currency:
Sylius\Bundle\CurrencyBundle\Doctrine\ORM\CurrencyRepository
-
Addressing:
Sylius\Bundle\CoreBundle\Doctrine\ORM\AddressRepositorynow extendsSylius\Bundle\AddressingBundle\Doctrine\ORM\AddressRepository.Sylius\Component\Core\Repository\AddressRepositoryInterfacenow implementsSylius\Component\Addressing\Repository\AddressRepositoryInterface.
-
Attribute:
Sylius\Bundle\CoreBundle\Doctrine\ORM\AttributeRepositorynow extendsSylius\Bundle\AttributeBundle\Doctrine\ORM\AttributeRepository.Sylius\Component\Product\Repository\ProductAttributeValueRepositoryInterfacenow implementsSylius\Component\Attribute\Repository\AttributeValueRepositoryInterface.
-
Product:
Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductAssociationRepositorynow extendsSylius\Bundle\ProductBundle\Doctrine\ORM\ProductAssociationRepository.
- Removed fields and corresponding methods for:
lockedexpiresAtcredentialsExpireAt
- These changes affect the ShopUser and AdminUser models, and any custom user type extending the
Sylius\Component\User\Model\Usermodel, as well as the relevant columns in the database tables.
- Aliases introduced in Sylius 1.14 have now become the primary service IDs in Sylius 2.0. The old service IDs have been removed, and all references must be updated accordingly:
| Old ID | New ID |
|---|---|
| AddressingBundle | |
sylius.province_naming_provider |
sylius.provider.province_naming |
sylius.zone_matcher |
sylius.matcher.zone |
sylius.address_comparator |
sylius.comparator.address |
| AdminBundle | |
sylius.security.shop_user_impersonator |
sylius_admin.security.shop_user_impersonator |
sylius.controller.impersonate_user |
sylius_admin.controller.impersonate_user |
Sylius\Bundle\AdminBundle\Action\Account\RenderResetPasswordPageAction |
sylius_admin.controller.account.render_reset_password_page |
Sylius\Bundle\AdminBundle\Action\Account\ResetPasswordAction |
sylius_admin.controller.account.reset_password |
Sylius\Bundle\AdminBundle\Action\RemoveAvatarAction |
sylius_admin.controller.remove_avatar |
Sylius\Bundle\AdminBundle\Action\ResendOrderConfirmationEmailAction |
sylius_admin.controller.resend_order_confirmation_email |
Sylius\Bundle\AdminBundle\Action\ResendShipmentConfirmationEmailAction |
sylius_admin.controller.resend_shipment_confirmation_email |
Sylius\Bundle\AdminBundle\Action\Account\RenderRequestPasswordResetPageAction |
sylius_admin.controller.account.render_request_password_reset_page |
Sylius\Bundle\AdminBundle\Action\Account\RequestPasswordResetAction |
sylius_admin.controller.account.request_password_reset |
sylius.controller.admin.dashboard |
sylius_admin.controller.dashboard |
sylius.controller.customer_statistics |
sylius_admin.controller.customer_statistics |
Sylius\Bundle\AdminBundle\Controller\RemoveCatalogPromotionAction |
sylius_admin.controller.remove_catalog_promotion |
Sylius\Bundle\AdminBundle\Controller\RedirectHandler |
sylius_admin.resource_controller.redirect_handler |
sylius.mailer.shipment_email_manager.admin |
sylius_admin.mailer.shipment_email_manager |
Sylius\Bundle\AdminBundle\Form\RequestPasswordResetType |
sylius_admin.form.type.request_password_reset |
Sylius\Bundle\AdminBundle\Form\Type\ResetPasswordType |
sylius_admin.form.type.reset_password |
sylius.listener.shipment_ship |
sylius_admin.listener.shipment_ship |
sylius.listener.locale |
sylius_admin.listener.locale |
sylius.event_subscriber.admin_cache_control_subscriber |
sylius_admin.event_subscriber.admin_section_cache_control |
sylius.event_subscriber.admin_filter_subscriber |
sylius_admin.event_subscriber.admin_filter |
sylius.admin.menu_builder.main |
sylius_admin.menu_builder.main |
Sylius\Bundle\AdminBundle\Console\Command\CreateAdminUserCommand |
sylius_admin.console.command.create_admin_user |
Sylius\Bundle\AdminBundle\Console\Command\ChangeAdminUserPasswordCommand |
sylius_admin.console.command.change_admin_user_password |
Sylius\Bundle\AdminBundle\MessageHandler\CreateAdminUserHandler |
sylius_admin.command_handler.create_admin_user |
sylius.console.command_factory.question |
sylius_admin.console.command_factory.question |
sylius.context.locale.admin_based |
sylius_admin.context.locale.admin_based |
sylius.section_resolver.admin_uri_based_section_resolver |
sylius_admin.section_resolver.admin_uri_based |
sylius.twig.extension.shop |
sylius_admin.twig.extension.shop |
sylius.twig.extension.channels_currencies |
sylius_admin.twig.extension.channels_currencies |
Sylius\Bundle\AdminBundle\Twig\OrderUnitTaxesExtension |
sylius_admin.twig.extension.order_unit_taxes |
Sylius\Bundle\AdminBundle\Twig\ChannelNameExtension |
sylius_admin.twig.extension.channel_name |
| ApiBundle | |
Sylius\Bundle\ApiBundle\Provider\CompositePaymentConfigurationProvider |
sylius_api.provider.payment_configuration |
sylius.api.applicator.archiving_promotion |
sylius_api.applicator.archiving_promotion |
Sylius\Bundle\ApiBundle\CommandHandler\Account\RegisterShopUserHandler |
sylius_api.command_handler.account.register_shop_user |
Sylius\Bundle\ApiBundle\CommandHandler\Cart\PickupCartHandler |
sylius_api.command_handler.cart.pickup_cart |
Sylius\Bundle\ApiBundle\CommandHandler\Cart\AddItemToCartHandler |
sylius_api.command_handler.cart.add_item_to_cart |
Sylius\Bundle\ApiBundle\CommandHandler\Cart\RemoveItemFromCartHandler |
sylius_api.command_handler.cart.remove_item_from_cart |
Sylius\Bundle\ApiBundle\CommandHandler\Cart\InformAboutCartRecalculationHandler |
sylius_api.command_handler.cart.inform_about_cart_recalculation |
Sylius\Bundle\ApiBundle\CommandHandler\Checkout\UpdateCartHandler |
sylius_api.command_handler.checkout.update_cart |
Sylius\Bundle\ApiBundle\CommandHandler\Checkout\ChooseShippingMethodHandler |
sylius_api.command_handler.checkout.choose_shipping_method |
Sylius\Bundle\ApiBundle\CommandHandler\Checkout\ChoosePaymentMethodHandler |
sylius_api.command_handler.checkout.choose_payment_method |
Sylius\Bundle\ApiBundle\CommandHandler\Checkout\CompleteOrderHandler |
sylius_api.command_handler.checkout.complete_order |
Sylius\Bundle\ApiBundle\CommandHandler\Checkout\ShipShipmentHandler |
sylius_api.command_handler.checkout.ship_shipment |
Sylius\Bundle\ApiBundle\CommandHandler\Account\ChangePaymentMethodHandler |
sylius_api.command_handler.account.change_payment_method |
Sylius\Bundle\ApiBundle\CommandHandler\Cart\ChangeItemQuantityInCartHandler |
sylius_api.command_handler.cart.change_item_quantity_in_cart |
Sylius\Bundle\ApiBundle\CommandHandler\Catalog\AddProductReviewHandler |
sylius_api.command_handler.catalog.add_product_review |
Sylius\Bundle\ApiBundle\CommandHandler\Cart\BlameCartHandler |
sylius_api.command_handler.cart.blame_cart |
Sylius\Bundle\ApiBundle\CommandHandler\Account\ChangeShopUserPasswordHandler |
sylius_api.command_handler.account.change_shop_user_password |
Sylius\Bundle\ApiBundle\CommandHandler\Account\RequestResetPasswordTokenHandler |
sylius_api.command_handler.account.request_reset_password_token |
Sylius\Bundle\ApiBundle\CommandHandler\Account\RequestShopUserVerificationHandler |
sylius_api.command_handler.account.request_shop_user_verification |
Sylius\Bundle\ApiBundle\CommandHandler\Account\ResetPasswordHandler |
sylius_api.command_handler.account.reset_password |
Sylius\Bundle\ApiBundle\CommandHandler\Account\SendAccountRegistrationEmailHandler |
sylius_api.command_handler.account.send_account_registration_email |
Sylius\Bundle\ApiBundle\CommandHandler\Account\SendShopUserVerificationEmailHandler |
sylius_api.command_handler.account.send_shop_user_verification_email |
Sylius\Bundle\ApiBundle\CommandHandler\Checkout\SendOrderConfirmationHandler |
sylius_api.command_handler.checkout.send_order_confirmation |
Sylius\Bundle\ApiBundle\CommandHandler\Account\SendResetPasswordEmailHandler |
sylius_api.command_handler.account.send_reset_password_email |
Sylius\Bundle\ApiBundle\CommandHandler\Checkout\SendShipmentConfirmationEmailHandler |
sylius_api.command_handler.checkout.send_shipment_confirmation_email |
Sylius\Bundle\ApiBundle\CommandHandler\Account\VerifyShopUserHandler |
sylius_api.command_handler.account.verify_shop_user |
Sylius\Bundle\ApiBundle\CommandHandler\SendContactRequestHandler |
sylius_api.command_handler.send_contract_request |
Sylius\Bundle\ApiBundle\CommandHandler\Promotion\GeneratePromotionCouponHandler |
sylius_api.command_handler.promotion.generate_promotion_coupon |
Sylius\Bundle\ApiBundle\CommandHandler\Customer\RemoveShopUserHandler |
sylius_api.command_handler.customer.remove_shop_user |
Sylius\Bundle\ApiBundle\SerializerContextBuilder\ChannelContextBuilder |
sylius_api.context_builder.channel |
Sylius\Bundle\ApiBundle\SerializerContextBuilder\LocaleContextBuilder |
sylius_api.context_builder.locale |
Sylius\Bundle\ApiBundle\SerializerContextBuilder\HttpRequestMethodTypeContextBuilder |
sylius_api.context_builder.http_request_method_type |
Sylius\Bundle\ApiBundle\Context\TokenValueBasedCartContext |
sylius_api.context.cart.token_value_based |
Sylius\Bundle\ApiBundle\Controller\DeleteOrderItemAction |
sylius_api.controller.delete_order_item |
Sylius\Bundle\ApiBundle\Controller\GetCustomerStatisticsAction |
sylius_api.controller.get_customer_statistics |
Sylius\Bundle\ApiBundle\Controller\GetProductBySlugAction |
sylius_api.controller.get_product_by_slug |
Sylius\Bundle\ApiBundle\Controller\RemoveCatalogPromotionAction |
sylius_api.controller.remove_catalog_promotion |
Sylius\Bundle\ApiBundle\Controller\RemoveCustomerShopUserAction |
sylius_api.controller.remove_customer_shop_user |
Sylius\Bundle\ApiBundle\Controller\GetStatisticsAction |
sylius_api.controller.get_statistics |
Sylius\Bundle\ApiBundle\Creator\ProductImageCreator |
sylius_api.creator.product_image |
Sylius\Bundle\ApiBundle\Creator\TaxonImageCreator |
sylius_api.creator.taxon_image |
Sylius\Bundle\ApiBundle\EventHandler\OrderCompletedHandler |
sylius_api.event_handler.order_completed |
Sylius\Bundle\ApiBundle\EventSubscriber\ProductVariantEventSubscriber |
sylius_api.event_subscriber.product_variant |
Sylius\Bundle\ApiBundle\EventSubscriber\CatalogPromotionEventSubscriber |
sylius_api.event_subscriber.catalog_promotion |
Sylius\Bundle\ApiBundle\EventSubscriber\KernelRequestEventSubscriber |
sylius_api.event_subscriber.kernel_request |
Sylius\Bundle\ApiBundle\EventSubscriber\ProductDeletionEventSubscriber |
sylius_api.event_subscriber.product_deletion |
Sylius\Bundle\ApiBundle\EventSubscriber\ProductSlugEventSubscriber |
sylius_api.event_subscriber.product_slug |
Sylius\Bundle\ApiBundle\EventSubscriber\TaxonDeletionEventSubscriber |
sylius_api.event_subscriber.taxon_deletion |
Sylius\Bundle\ApiBundle\EventSubscriber\TaxonSlugEventSubscriber |
sylius_api.event_subscriber.taxon_slug |
Sylius\Bundle\ApiBundle\EventSubscriber\AttributeEventSubscriber |
sylius_api.event_subscriber.attribute |
Sylius\Bundle\ApiBundle\Controller\Payment\GetPaymentConfiguration |
sylius_api.controller.payment.get_payment_configuration |
sylius.api.provider.liip_image_filters |
sylius_api.provider.liip_image_filters |
Sylius\Bundle\ApiBundle\QueryHandler\GetCustomerStatisticsHandler |
sylius_api.query_handler.get_customer_statistics |
Sylius\Bundle\ApiBundle\QueryHandler\GetStatisticsHandler |
sylius_api.query_handler.get_statistics |
sylius_api.security.voter.order |
sylius_api.security.voter.order_adjustments |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\AddressDenormalizer |
sylius_api.denormalizer.address |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\CommandArgumentsDenormalizer |
sylius_api.denormalizer.command_arguments |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\CommandDenormalizer |
sylius_api.denormalizer.command |
Sylius\Bundle\ApiBundle\Serializer\Normalizer\ProductNormalizer |
sylius_api.normalizer.product |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\ProductAttributeValueDenormalizer |
sylius_api.denormalizer.product_attribute_value |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\ProductDenormalizer |
sylius_api.denormalizer.product |
Sylius\Bundle\ApiBundle\Serializer\Normalizer\ProductAttributeValueNormalizer |
sylius_api.normalizer.product_attribute_value |
Sylius\Bundle\ApiBundle\Serializer\Normalizer\ImageNormalizer |
sylius_api.normalizer.image |
Sylius\Bundle\ApiBundle\Serializer\Normalizer\CommandNormalizer |
sylius_api.normalizer.command |
Sylius\Bundle\ApiBundle\Serializer\Normalizer\ProductVariantNormalizer |
sylius_api.normalizer.product_variant |
Sylius\Bundle\ApiBundle\Serializer\Normalizer\ShippingMethodNormalizer |
sylius_api.normalizer.shipping_method |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\ZoneDenormalizer |
sylius_api.denormalizer.zone |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\TranslatableDenormalizer |
sylius_api.denormalizer.translatable |
date_time_normalizer |
sylius_api.normalizer.date_time |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\ChannelPriceHistoryConfigDenormalizer |
sylius_api.denormalizer.channel_price_history_config |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\ChannelDenormalizer |
sylius_api.denormalizer.channel |
sylius.api.denormalizer.numeric_to_string.tax_rate |
sylius_api.denormalizer.numeric_to_string.tax_rate |
sylius.api.denormalizer.numeric_to_string.exchange_rate |
sylius_api.denormalizer.numeric_to_string.exchange_rate |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\CustomerDenormalizer |
sylius_api.denormalizer.customer |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\TranslatableLocaleKeyDenormalizer |
sylius_api.denormalizer.translatable_locale_key |
Sylius\Bundle\ApiBundle\Serializer\Denormalizer\ProductVariantChannelPricingsChannelCodeKeyDenormalizer |
sylius_api.denormalizer.product_variant_channel_pricings_channel_code_key |
Sylius\Bundle\ApiBundle\Serializer\Normalizer\DoctrineCollectionValuesNormalizer |
sylius_api.normalizer.doctrine_collection_values |
Sylius\Bundle\ApiBundle\Validator\Constraints\UniqueShopUserEmailValidator |
sylius_api.validator.unique_shop_user_email |
Sylius\Bundle\ApiBundle\Validator\Constraints\OrderNotEmptyValidator |
sylius_api.validator.order_not_empty |
Sylius\Bundle\ApiBundle\Validator\Constraints\OrderProductEligibilityValidator |
sylius_api.validator.order_product_eligibility |
Sylius\Bundle\ApiBundle\Validator\Constraints\OrderItemAvailabilityValidator |
sylius_api.validator.order_item_availability |
Sylius\Bundle\ApiBundle\Validator\Constraints\OrderShippingMethodEligibilityValidator |
sylius_api.validator.order_shipping_method_eligibility |
Sylius\Bundle\ApiBundle\Validator\Constraints\CheckoutCompletionValidator |
sylius_api.validator.checkout_completion |
Sylius\Bundle\ApiBundle\Validator\Constraints\ChosenShippingMethodEligibilityValidator |
sylius_api.validator.chosen_shipping_method_eligibility |
Sylius\Bundle\ApiBundle\Validator\Constraints\AddingEligibleProductVariantToCartValidator |
sylius_api.validator.adding_eligible_product_variant_to_cart |
Sylius\Bundle\ApiBundle\Validator\Constraints\ChangedItemQuantityInCartValidator |
sylius_api.validator.changed_item_quantity_in_cart |
Sylius\Bundle\ApiBundle\Validator\Constraints\CorrectOrderAddressValidator |
sylius_api.validator.correct_order_address |
Sylius\Bundle\ApiBundle\Validator\Constraints\OrderPaymentMethodEligibilityValidator |
sylius_api.validator.order_payment_method_eligibility |
Sylius\Bundle\ApiBundle\Validator\Constraints\ChosenPaymentMethodEligibilityValidator |
sylius_api.validator.chosen_payment_method_eligibility |
Sylius\Bundle\ApiBundle\Validator\Constraints\CanPaymentMethodBeChangedValidator |
sylius_api.validator.can_payment_method_be_changed |
Sylius\Bundle\ApiBundle\Validator\Constraints\CorrectChangeShopUserConfirmPasswordValidator |
sylius_api.validator.correct_change_shop_user_confirm_password |
Sylius\Bundle\ApiBundle\Validator\Constraints\ConfirmResetPasswordValidator |
sylius_api.validator.confirm_reset_password |
Sylius\Bundle\ApiBundle\Validator\Constraints\PromotionCouponEligibilityValidator |
sylius_api.validator.promotion_coupon_eligibility |
Sylius\Bundle\ApiBundle\Validator\Constraints\ShipmentAlreadyShippedValidator |
sylius_api.validator.shipment_already_shipped |
Sylius\Bundle\ApiBundle\Validator\Constraints\ShopUserResetPasswordTokenExistsValidator |
sylius_api.validator.shop_user_reset_password_token_exists |
Sylius\Bundle\ApiBundle\Validator\Constraints\ShopUserResetPasswordTokenNotExpiredValidator |
sylius_api.validator.shop_user_reset_password_token_not_expired |
Sylius\Bundle\ApiBundle\Validator\Constraints\ShopUserNotVerifiedValidator |
sylius_api.validator.shop_user_not_verified |
Sylius\Bundle\ApiBundle\Validator\Constraints\SingleValueForProductVariantOptionValidator |
sylius_api.validator.single_value_for_product_variant_option |
Sylius\Bundle\ApiBundle\Validator\Constraints\UniqueReviewerEmailValidator |
sylius_api.validator.unique_reviewer_email |
Sylius\Bundle\ApiBundle\Validator\Constraints\AdminResetPasswordTokenNonExpiredValidator |
sylius_api.validator.admin_reset_password_token_non_expired |
sylius.validator.order_address_requirement |
sylius_api.validator.order_address_requirement |
Sylius\Bundle\ApiBundle\PropertyInfo\Extractor\EmptyPropertyListExtractor |
sylius_api.extractor.property_info.empty_property_list |
Sylius\Bundle\ApiBundle\SectionResolver\AdminApiUriBasedSectionResolver |
sylius_api.section_resolver.admin_api_uri_based |
Sylius\Bundle\ApiBundle\SectionResolver\ShopApiUriBasedSectionResolver |
sylius_api.section_resolver.shop_api_uri_based |
Sylius\Bundle\ApiBundle\EventListener\ApiCartBlamerListener |
sylius_api.listener.api_cart_blamer |
sylius.listener.api_authentication_success_listener |
sylius_api.listener.authentication_success |
sylius.listener.admin_api_authentication_success_listener |
sylius_api.listener.admin_authentication_success |
Sylius\Bundle\ApiBundle\OpenApi\Factory\OpenApiFactory |
sylius_api.open_api.factory |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\AcceptLanguageHeaderDocumentationModifier |
sylius_api.open_api.documentation_modifier.accept_language_header |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\AdministratorDocumentationModifier |
sylius_api.open_api.documentation_modifier.administrator |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\AttributeTypeDocumentationModifier |
sylius_api.open_api.documentation_modifier.attribute_type |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\ProductDocumentationModifier |
sylius_api.open_api.documentation_modifier.product |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\ImageDocumentationModifier |
sylius_api.open_api.documentation_modifier.image |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\ProductReviewDocumentationModifier |
sylius_api.open_api.documentation_modifier.product_review |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\ProductSlugDocumentationModifier |
sylius_api.open_api.documentation_modifier.product_slug |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\ProductVariantDocumentationModifier |
sylius_api.open_api.documentation_modifier.product_variant |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\ShippingMethodDocumentationModifier |
sylius_api.open_api.documentation_modifier.shipping_method |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\CustomerDocumentationModifier |
sylius_api.open_api.documentation_modifier.customer |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\StatisticsDocumentationModifier |
sylius_api.open_api.documentation_modifier.statistics |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\PromotionDocumentationModifier |
sylius_api.open_api.documentation_modifier.promotion |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\OrderAdjustmentsTypeDocumentationModifier |
sylius_api.open_api.documentation_modifier.order_adjustments |
Sylius\Bundle\ApiBundle\OpenApi\Documentation\AddressLogEntryDocumentationModifier |
sylius_api.open_api.documentation_modifier.address_log_entry |
| AttributeBundle | |
sylius.form.type.attribute_type.select.choices_collection |
sylius.form.type.attribute_type.configuration.select_attribute_choices_collection |
sylius.attribute_type.select.value.translations |
sylius.form.type.attribute_type.configuration.select_attribute_value_translations |
sylius.validator.valid_text_attribute |
sylius.validator.valid_text_attribute_configuration |
sylius.validator.valid_select_attribute |
sylius.validator.valid_select_attribute_configuration |
| ChannelBundle | |
sylius.channel_collector |
sylius.collector.channel |
| CoreBundle | |
Sylius\Bundle\CoreBundle\CatalogPromotion\Calculator\FixedDiscountPriceCalculator |
sylius.calculator.catalog_promotion.fixed_discount_price |
Sylius\Bundle\CoreBundle\CatalogPromotion\Calculator\PercentageDiscountPriceCalculator |
sylius.calculator.catalog_promotion.percentage_discount_price |
Sylius\Bundle\CoreBundle\CatalogPromotion\Checker\CatalogPromotionEligibilityChecker |
sylius.checker.catalog_promotion_eligibility |
Sylius\Bundle\CoreBundle\CatalogPromotion\Checker\InForProductScopeVariantChecker |
sylius.checker.catalog_promotion.in_for_product_scope_variant |
Sylius\Bundle\CoreBundle\CatalogPromotion\Checker\InForTaxonsScopeVariantChecker |
sylius.checker.catalog_promotion.in_for_taxons_scope_variant |
Sylius\Bundle\CoreBundle\CatalogPromotion\Checker\InForVariantsScopeVariantChecker |
sylius.checker.catalog_promotion.in_for_variants_scope_variant |
Sylius\Bundle\CoreBundle\CatalogPromotion\CommandHandler\ApplyCatalogPromotionsOnVariantsHandler |
sylius.command_handler.catalog_promotion.apply_variants |
Sylius\Bundle\CoreBundle\CatalogPromotion\CommandHandler\DisableCatalogPromotionHandler |
sylius.command_handler.catalog_promotion.disable |
Sylius\Bundle\CoreBundle\CatalogPromotion\CommandHandler\RemoveCatalogPromotionHandler |
sylius.command_handler.catalog_promotion.remove |
Sylius\Bundle\CoreBundle\CatalogPromotion\CommandHandler\UpdateCatalogPromotionStateHandler |
sylius.command_handler.catalog_promotion.update_state |
Sylius\Bundle\CoreBundle\CatalogPromotion\EventListener\CatalogPromotionEventListener |
sylius.listener.catalog_promotion |
Sylius\Bundle\CoreBundle\CatalogPromotion\EventListener\ProductEventListener |
sylius.listener.catalog_promotion.product |
Sylius\Bundle\CoreBundle\CatalogPromotion\EventListener\ProductVariantEventListener |
sylius.listener.catalog_promotion.product_variant |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\CatalogPromotionCreatedListener |
sylius.listener.catalog_promotion.created |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\CatalogPromotionUpdatedListener |
sylius.listener.catalog_promotion.updated |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\CatalogPromotionEndedListener |
sylius.listener.catalog_promotion.ended |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\CatalogPromotionStateChangedListener |
sylius.listener.catalog_promotion.state_changed |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\ProductCreatedListener |
sylius.listener.catalog_promotion.product_created |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\ProductUpdatedListener |
sylius.listener.catalog_promotion.product_updated |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\ProductVariantCreatedListener |
sylius.listener.catalog_promotion.product_variant_created |
Sylius\Bundle\CoreBundle\CatalogPromotion\Listener\ProductVariantUpdatedListener |
sylius.listener.catalog_promotion.product_variant_updated |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\AssignOrderNumberListener |
sylius.listener.workflow.order.assign_order_number |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\AssignOrderTokenListener |
sylius.listener.workflow.order.assign_order_token |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\CreatePaymentListener |
sylius.listener.workflow.order.create_payment |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\CreateShipmentListener |
sylius.listener.workflow.order.create_shipment |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\DecrementPromotionUsagesListener |
sylius.listener.workflow.order.decrement_promotion_usages |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\IncrementPromotionUsagesListener |
sylius.listener.workflow.order.increment_promotion_usages |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\HoldInventoryListener |
sylius.listener.workflow.order.hold_inventory |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\GiveBackInventoryListener |
sylius.listener.workflow.order.give_back_inventory |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\RequestOrderPaymentListener |
sylius.listener.workflow.order.request_order_payment |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\RequestOrderShippingListener |
sylius.listener.workflow.order.request_order_shipping |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\SaveCustomerAddressesListener |
sylius.listener.workflow.order.save_customer_addresses |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\SetImmutableNamesListener |
sylius.listener.workflow.order.set_immutable_names |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\CancelOrderPaymentListener |
sylius.listener.workflow.order.cancel_order_payment |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\CancelOrderShippingListener |
sylius.listener.workflow.order.cancel_order_shipping |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\CancelPaymentListener |
sylius.listener.workflow.order.cancel_payment |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Order\CancelShipmentListener |
sylius.listener.workflow.order.cancel_shipment |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderCheckout\ProcessCartListener |
sylius.listener.workflow.order_checkout.process_cart |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderCheckout\ApplyCreateTransitionOnOrderListener |
sylius.listener.workflow.order_checkout.apply_create_transition_on_order |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderCheckout\SaveCheckoutCompletionDateListener |
sylius.listener.workflow.order_checkout.save_checkout_completion_date |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderCheckout\ResolveOrderCheckoutStateListener |
sylius.listener.workflow.order_checkout.resolve_order_checkout_state |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderCheckout\ResolveOrderPaymentStateListener |
sylius.listener.workflow.order_checkout.resolve_order_payment_state |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderCheckout\ResolveOrderShippingStateListener |
sylius.listener.workflow.order_checkout.resolve_order_shipping_state |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderPayment\SellOrderInventoryListener |
sylius.listener.workflow.order_payment.sell_order_inventory |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderPayment\ResolveOrderStateListener |
sylius.listener.workflow.order_payment.resolve_order_state |
Sylius\Bundle\CoreBundle\EventListener\Workflow\OrderShipping\ResolveOrderStateListener |
sylius.listener.workflow.order_shipping.resolve_order_state |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Payment\ProcessOrderListener |
sylius.listener.workflow.payment.process_order |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Payment\ResolveOrderPaymentStateListener |
sylius.listener.workflow.payment.resolve_order_payment_state |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Shipment\AssignShippingDateListener |
sylius.listener.workflow.shipment.assign_shipping_date |
Sylius\Bundle\CoreBundle\EventListener\Workflow\Shipment\ResolveOrderShipmentStateListener |
sylius.listener.workflow.shipment.resolve_order_shipment_state |
Sylius\Bundle\CoreBundle\PriceHistory\CommandHandler\ApplyLowestPriceOnChannelPricingsHandler |
sylius.command_handler.price_history.apply_lowest_price_on_channel_pricings |
Sylius\Bundle\CoreBundle\PriceHistory\EntityObserver\CreateLogEntryOnPriceChangeObserver |
sylius.entity_observer.price_history.create_log_entry_on_price_change |
Sylius\Bundle\CoreBundle\PriceHistory\EntityObserver\ProcessLowestPricesOnChannelChangeObserver |
sylius.entity_observer.price_history.process_lowest_prices_on_channel_change |
Sylius\Bundle\CoreBundle\PriceHistory\EntityObserver\ProcessLowestPricesOnChannelPriceHistoryConfigChangeObserver |
sylius.entity_observer.price_history.process_lowest_prices_on_channel_price_history_config_change |
Sylius\Bundle\CoreBundle\PriceHistory\EventListener\OnFlushEntityObserverListener |
sylius.listener.price_history.on_flush_entity_observer |
Sylius\Bundle\CoreBundle\PriceHistory\EventListener\ChannelPricingLogEntryEventListener |
sylius.listener.price_history.channel_pricing_log_entry |
Sylius\Bundle\CoreBundle\CatalogPromotion\DiscountApplicationCriteria\ExclusiveCriteria |
sylius.discount_application_criteria.catalog_promotion.exclusive |
Sylius\Bundle\CoreBundle\CatalogPromotion\DiscountApplicationCriteria\MinimumPriceCriteria |
sylius.discount_application_criteria.catalog_promotion.minimum_price |
sylius.promotion_coupon_channels_eligibility_checker |
sylius.checker.promotion_coupon.channel_eligibility |
sylius.form.type.checkout_address |
sylius.form.type.checkout.address |
sylius.form.type.checkout_select_shipping |
sylius.form.type.checkout.select_shipping |
sylius.form.type.checkout_shipment |
sylius.form.type.checkout.shipment |
sylius.form.type.checkout_select_payment |
sylius.form.type.checkout.select_payment |
sylius.form.type.checkout_payment |
sylius.form.type.checkout.payment |
sylius.form.type.checkout_complete |
sylius.form.type.checkout.complete |
Sylius\Bundle\CoreBundle\Console\Command\CancelUnpaidOrdersCommand |
sylius.console.command.cancel_unpaid_orders |
Sylius\Bundle\CoreBundle\Console\Command\CheckRequirementsCommand |
sylius.console.command.check_requirements |
Sylius\Bundle\CoreBundle\PriceHistory\Console\Command\ClearPriceHistoryCommand |
sylius.console.command.price_history.clear |
Sylius\Bundle\CoreBundle\Console\Command\InstallAssetsCommand |
sylius.console.command.install_assets |
Sylius\Bundle\CoreBundle\Console\Command\InstallCommand |
sylius.console.command.install |
Sylius\Bundle\CoreBundle\Console\Command\InstallDatabaseCommand |
sylius.console.command.install_database |
Sylius\Bundle\CoreBundle\Console\Command\InstallSampleDataCommand |
sylius.console.command.install_sample_data |
Sylius\Bundle\CoreBundle\Console\Command\SetupCommand |
sylius.console.command.setup |
Sylius\Bundle\CoreBundle\Console\Command\InformAboutGUSCommand |
sylius.console.command.inform_about_gus |
Sylius\Bundle\CoreBundle\Console\Command\JwtConfigurationCommand |
sylius.console.command.jwt_configuration |
Sylius\Bundle\CoreBundle\Console\Command\ShowPlusInfoCommand |
sylius.console.command.show_plus_info |
sylius.locale_provider.channel_based |
sylius.provider.locale.channel_based |
Sylius\Bundle\CoreBundle\Fixture\CatalogPromotionFixture |
sylius.fixture.catalog_promotion |
Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionExampleFactory |
sylius.fixture.example_factory.catalog_promotion |
Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionScopeExampleFactory |
sylius.fixture.example_factory.catalog_promotion_scope |
Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionActionExampleFactory |
sylius.fixture.example_factory.catalog_promotion_action |
sylius_fixtures.listener.catalog_promotion_executor |
sylius.fixture.listener.catalog_promotion_executor |
Sylius\Bundle\CoreBundle\Fixture\Listener\ImagesPurgerListener |
sylius.fixture.listener.images_purger |
Sylius\Bundle\CoreBundle\Form\Extension\CatalogPromotionTypeExtension |
sylius.form.extension.type.catalog_promotion |
Sylius\Bundle\CoreBundle\Form\Type\CatalogPromotionAction\ChannelBasedFixedDiscountActionConfigurationType |
sylius.form.type.catalog_promotion_action.channel_based_fixed_discount_action_configuration |
sylius.form.type.for_products_scope |
sylius.form.type.catalog_promotion_scope.for_products_scope_configuration |
sylius.form.type.for_taxons_scope |
sylius.form.type.catalog_promotion_scope.for_taxons_scope_configuration |
sylius.form.type.for_variants_scope |
sylius.form.type.catalog_promotion_scope.for_variants_scope_configuration |
sylius.form.type.customer_guest |
sylius.form.type.customer.guest |
sylius.form.type.customer_checkout_guest |
sylius.form.type.customer.checkout_guest |
sylius.form.type.customer_simple_registration |
sylius.form.type.customer.simple_registration |
sylius.form.type.customer_registration |
sylius.form.type.customer.registration |
sylius.form.type.add_to_cart |
sylius.form.type.order.add_to_cart |
sylius.form.type.channel_pricing |
sylius.form.type.product.channel_pricing |
sylius.form.type.channel_based_shipping_calculator.flat_rate |
sylius.form.type.shipping.calculator.channel_based_flat_rate_configuration |
sylius.form.type.channel_based_shipping_calculator.per_unit_rate |
sylius.form.type.shipping.calculator.channel_based_per_unit_rate_configuration |
sylius.form.type.autocomplete_product_taxon_choice |
sylius.form.type.product_taxon_autocomplete_choice |
sylius.installer.checker.command_directory |
sylius.checker.installer.command_directory |
sylius.installer.checker.sylius_requirements |
sylius.checker.installer.sylius_requirements |
sylius.commands_provider.database_setup |
sylius.provider.installer.database_setup_commands |
sylius.setup.currency |
sylius.setup.installer.currency |
sylius.setup.locale |
sylius.setup.installer.locale |
sylius.setup.channel |
sylius.setup.installer.channel |
sylius.requirements |
sylius.requirements.installer.sylius |
sylius.listener.channel |
sylius.listener.channel_deletion |
sylius.listener.default_username |
sylius.listener.default_username_orm |
Sylius\Bundle\CoreBundle\EventListener\LocaleAwareListener |
sylius.listener.locale_aware |
Sylius\Bundle\CoreBundle\EventListener\XFrameOptionsSubscriber |
sylius.event_subscriber.x_frame_options |
Sylius\Bundle\CoreBundle\EventListener\PaymentPreCompleteListener |
sylius.listener.payment_pre_complete |
Sylius\Bundle\CoreBundle\EventListener\ProductDeletionListener |
sylius.listener.product_deletion |
Sylius\Bundle\CoreBundle\EventListener\PostgreSQLDefaultSchemaListener |
sylius.listener.postgre_sql_default_schema |
Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantOptionsMapProvider |
sylius.provider.product_variant_map.options |
Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantPriceMapProvider |
sylius.provider.product_variant_map.price |
Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantOriginalPriceMapProvider |
sylius.provider.product_variant_map.original_price |
Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantAppliedPromotionsMapProvider |
sylius.provider.product_variant_map.applied_promotions |
Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantLowestPriceMapProvider |
sylius.provider.product_variant_map.lowest_price |
sylius.promotion_rule_checker.customer_group |
sylius.checker.promotion_rule.customer_group |
sylius.promotion_rule_checker.nth_order |
sylius.checker.promotion_rule.nth_order |
sylius.promotion_rule_checker.shipping_country |
sylius.checker.promotion_rule.shipping_country |
sylius.promotion_rule_checker.has_taxon |
sylius.checker.promotion_rule.has_taxon |
sylius.promotion_rule_checker.total_of_items_from_taxon |
sylius.checker.promotion_rule.total_of_items_from_taxon |
sylius.promotion_rule_checker.contains_product |
sylius.checker.promotion_rule.contains_product |
sylius.promotion_rule_checker.item_total |
sylius.checker.promotion_rule.item_total |
sylius.promotion_rule_checker.cart_quantity |
sylius.checker.promotion_rule.cart_quantity |
sylius.promotion_action.fixed_discount |
sylius.command.promotion_action.fixed_discount |
sylius.promotion_action.unit_fixed_discount |
sylius.command.promotion_action.unit_fixed_discount |
sylius.promotion_action.percentage_discount |
sylius.command.promotion_action.percentage_discount |
sylius.promotion_action.unit_percentage_discount |
sylius.command.promotion_action.unit_percentage_discount |
sylius.promotion_action.shipping_percentage_discount |
sylius.command.promotion_action.shipping_percentage_discount |
sylius.promotion.eligibility_checker.promotion_coupon_per_customer_usage_limit |
sylius.checker.promotion.promotion_coupon_per_customer_usage_limit_eligibility |
sylius.promotion_filter.taxon |
sylius.filter.promotion.taxon |
sylius.promotion_filter.product |
sylius.filter.promotion.product |
sylius.promotion_filter.price_range |
sylius.filter.promotion.price_range |
sylius.promotion.units_promotion_adjustments_applicator |
sylius.applicator.promotion.units_adjustments |
sylius.promotion_usage_modifier |
sylius.modifier.promotion.order_usage |
sylius.promotion_rule_updater.has_taxon |
sylius.updater.promotion_rule.has_taxon |
sylius.provider.channel_based_default_zone_provider |
sylius.provider.channel_based_default_zone |
sylius.translation_locale_provider.admin |
sylius.provider.translation_locale.admin |
sylius.orders_totals_provider.day |
sylius.provider.statistics.orders_totals.day |
sylius.orders_totals_provider.month |
sylius.provider.statistics.orders_totals.month |
sylius.orders_totals_provider.year |
sylius.provider.statistics.orders_totals.year |
sylius.shipping_method_rule_checker.order_total_greater_than_or_equal |
sylius.checker.shipping_method_rule.order_total_greater_than_or_equal |
sylius.shipping_method_rule_checker.order_total_less_than_or_equal |
sylius.checker.shipping_method_rule.order_total_less_than_or_equal |
sylius.state_resolver.order_checkout |
sylius.state_resolver.checkout |
sylius.taxation.order_shipment_taxes_applicator |
sylius.applicator.taxation.order_shipment |
sylius.taxation.order_items_taxes_applicator |
sylius.applicator.taxation.order_items |
sylius.taxation.order_item_units_taxes_applicator |
sylius.applicator.taxation.order_item_units |
sylius.taxation.order_items_based_strategy |
sylius.strategy.taxation.tax_calculation.order_items_based |
sylius.taxation.order_item_units_based_strategy |
sylius.strategy.taxation.tax_calculation.order_item_units_based |
sylius.validator.unique.registered_user |
sylius.validator.registered_user |
sylius.validator.shipping_method_integrity |
sylius.validator.order_shipping_method_eligibility |
sylius.validator.payment_method_integrity |
sylius.validator.order_payment_method_eligibility |
sylius.validator.product_integrity |
sylius.validator.order_product_eligibility |
sylius.validator.order_confirmation_with_valid_order_state |
sylius.validator.resend_order_confirmation_email_with_valid_order_state |
sylius.validator.shipment_confirmation_with_valid_order_state |
sylius.validator.resend_shipment_confirmation_email_with_valid_order_state |
Sylius\Bundle\CoreBundle\Validator\Constraints\MaxIntegerValidator |
sylius.validator.max_integer |
sylius.integer_distributor |
sylius.distributor.integer |
sylius.proportional_integer_distributor |
sylius.distributor.proportional_integer |
sylius.invoice_number_generator |
sylius.generator.invoice_number.id_based |
sylius.image_uploader |
sylius.uploader.image |
Sylius\Component\Core\Filesystem\Adapter\FlysystemFilesystemAdapter |
sylius.adapter.filesystem.flysystem |
Sylius\Bundle\CoreBundle\Collector\CartCollector |
sylius.collector.cart |
sylius.shipping_methods_resolver.zones_and_channel_based |
sylius.resolver.shipping_methods.zones_and_channel_based |
sylius.payment_methods_resolver.channel_based |
sylius.resolver.payment_methods.channel_based |
sylius.payment_method_resolver.default |
sylius.resolver.payment_method.default |
sylius.taxation_address_resolver |
sylius.resolver.taxation_address |
sylius.inventory.order_item_availability_checker |
sylius.checker.inventory.order_item_availability |
sylius.inventory.order_inventory_operator |
sylius.operator.inventory.order_inventory |
sylius.custom_inventory.order_inventory_operator |
sylius.custom_operator.inventory.order_inventory |
Sylius\Bundle\CoreBundle\Twig\ProductVariantsMapExtension |
sylius.twig.extension.product_variants_map |
sylius.unique_id_based_order_token_assigner |
sylius.assigner.order_token.unique_id_based |
sylius.customer_unique_address_adder |
sylius.adder.customer.unique_address |
sylius.customer_order_addresses_saver |
sylius.saver.customer.order_addresses |
sylius.order_item_quantity_modifier.limiting |
sylius.modifier.cart.limiting_order_item_quantity |
sylius.customer_ip_assigner |
sylius.assigner.customer_id |
sylius.section_resolver.uri_based_section_resolver |
sylius.section_resolver.uri_based |
sylius.reviewer_reviews_remover |
sylius.remover.reviewer_reviews |
sylius.unpaid_orders_state_updater |
sylius.updater.unpaid_orders_state |
sylius.order_payment_provider |
sylius.provider.payment.order |
sylius.customer_statistics_provider |
sylius.provider.statistics.customer |
sylius.order_item_names_setter |
sylius.setter.order.item_names |
sylius.user_password_resetter.admin |
sylius.resetter.user_password.admin |
sylius.user_password_resetter.shop |
sylius.resetter.user_password.shop |
| CurrencyBundle | |
sylius.currency_converter |
sylius.converter.currency |
sylius.currency_name_converter |
sylius.converter.currency_name |
| InventoryBundle | |
sylius.availability_checker |
sylius.checker.inventory.availability |
sylius.availability_checker.default |
sylius.checker.inventory.availability |
| LocaleBundle | |
Sylius\Bundle\LocaleBundle\Context\RequestHeaderBasedLocaleContext |
sylius.context.locale.request_header_based |
sylius.locale_collection_provider |
sylius.provider.locale_collection |
sylius.locale_collection_provider.cahced |
sylius.provider.locale_collection.cached |
sylius.locale_provider |
sylius.provider.locale |
sylius.locale_converter |
sylius.converter.locale |
Sylius\Bundle\LocaleBundle\Doctrine\EventListener\LocaleModificationListener |
sylius.doctrine.listener.locale_modification |
| MoneyBundle | |
sylius.twig.extension.convert_amount |
sylius.twig.extension.convert_money |
sylius.twig.extension.money |
sylius.twig.extension.format_money |
sylius.money_formatter |
sylius.formatter.money |
| OrderBundle | |
sylius.order_modifier |
sylius.modifier.order |
sylius.order_item_quantity_modifier |
sylius.modifier.order_item_quantity |
sylius.order_number_assigner |
sylius.number_assigner.order_number |
sylius.adjustments_aggregator |
sylius.aggregator.adjustments_by_label |
sylius.expired_carts_remover |
sylius.remover.expired_carts |
sylius.sequential_order_number_generator |
sylius.number_generator.sequential_order |
Sylius\Bundle\OrderBundle\Console\Command\RemoveExpiredCartsCommand |
sylius.console.command.remove_expired_carts |
| PaymentBundle | |
sylius.payment_methods_resolver |
sylius.resolver.payment_methods |
sylius.payment_methods_resolver.default |
sylius.resolver.payment_methods.default |
| PayumBundle | |
sylius.payum_action.authorize_payment |
sylius_payum.action.authorize_payment |
sylius.payum_action.capture_payment |
sylius_payum.action.capture_payment |
sylius.payum_action.execute_same_request_with_payment_details |
sylius_payum.action.execute_same_request_with_payment_details |
sylius.payum_action.resolve_next_route |
sylius_payum.action.resolve_next_route |
sylius.payum_action.offline.convert_payment |
sylius_payum.action.offline.convert_payment |
sylius.payum_action.offline.status |
sylius_payum.action.offline.status |
sylius.payum_action.offline.resolve_next_route |
sylius_payum.action.offline.resolve_next_route |
sylius.payum_extension.update_payment_state |
sylius_payum.extension.update_payment_state |
sylius.factory.payum_get_status_action |
sylius_payum.factory.get_status |
sylius.factory.payum_resolve_next_route |
sylius_payum.factory.resolve_next_route |
sylius.form.extension.type.gateway_config.crypted |
sylius_payum.form.extension.type.crypted_gateway_config |
sylius.payment_description_provider |
sylius_payum.provider.payment_description |
sylius.payum.http_client |
sylius_payum.http_client |
| ProductBundle | |
sylius.form.type.sylius_product_associations |
sylius.form.type.product_associations |
sylius.form.event_subscriber.product_variant_generator |
sylius.form.event_subscriber.generate_product_variants |
Sylius\Bundle\ProductBundle\Validator\ProductVariantOptionValuesConfigurationValidator |
sylius.validator.product_variant_option_values_configuration |
sylius.validator.product_code_uniqueness |
sylius.validator.unique_simple_product_code |
sylius.product_variant_resolver.default |
sylius.resolver.product_variant.default |
sylius.available_product_option_values_resolver |
sylius.resolver.available_product_option_values |
| PromotionBundle | |
Sylius\Bundle\PromotionBundle\Console\Command\GenerateCouponsCommand |
sylius.console.command.generate_coupons |
sylius.promotion_coupon_duration_eligibility_checker |
sylius.checker.promotion_coupon.duration_eligibility |
sylius.promotion_coupon_usage_limit_eligibility_checker |
sylius.checker.promotion_coupon.usage_limit_eligibility |
sylius.promotion_coupon_eligibility_checker |
sylius.checker.promotion_coupon_eligibility |
sylius.promotion_duration_eligibility_checker |
sylius.checker.promotion.duration_eligibility |
sylius.promotion_usage_limit_eligibility_checker |
sylius.checker.promotion.usage_limit_eligibility |
sylius.promotion_subject_coupon_eligibility_checker |
sylius.checker.promotion.subject_coupon_eligibility |
sylius.promotion_rules_eligibility_checker |
sylius.checker.promotion.rules_eligibility |
sylius.promotion_archival_eligibility_checker |
sylius.checker.promotion.archival_eligibility |
sylius.promotion_eligibility_checker |
sylius.checker.promotion_eligibility |
Sylius\Bundle\PromotionBundle\Form\Type\CatalogPromotionType |
sylius.form.type.catalog_promotion |
Sylius\Bundle\PromotionBundle\Form\Type\CatalogPromotionScopeType |
sylius.form.type.catalog_promotion_scope |
Sylius\Bundle\PromotionBundle\Form\Type\CatalogPromotionAction\PercentageDiscountActionConfigurationType |
sylius.form.type.catalog_promotion_action.percentage_discount_action_configuration |
Sylius\Bundle\PromotionBundle\Form\Type\CatalogPromotionActionType |
sylius.form.type.catalog_promotion_action |
Sylius\Bundle\PromotionBundle\Form\Type\CatalogPromotionTranslationType |
sylius.form.type.catalog_promotion_translation |
Sylius\Bundle\PromotionBundle\Form\Type\PromotionTranslationType |
sylius.form.type.promotion_translation |
sylius.form.type.promotion_action.collection |
sylius.form.type.promotion_action_collection |
sylius.form.type.promotion_rule.collection |
sylius.form.type.promotion_rule_collection |
sylius.validator.date_range |
sylius.validator.promotion_date_range |
Sylius\Bundle\PromotionBundle\Validator\CatalogPromotionActionGroupValidator |
sylius.validator.catalog_promotion_action_group |
Sylius\Bundle\PromotionBundle\Validator\CatalogPromotionActionTypeValidator |
sylius.validator.catalog_promotion_action_type |
Sylius\Bundle\PromotionBundle\Validator\CatalogPromotionScopeGroupValidator |
sylius.validator.catalog_promotion_scope_group |
Sylius\Bundle\PromotionBundle\Validator\CatalogPromotionScopeTypeValidator |
sylius.validator.catalog_promotion_scope_type |
Sylius\Bundle\PromotionBundle\Validator\PromotionActionGroupValidator |
sylius.validator.promotion_action_group |
Sylius\Bundle\PromotionBundle\Validator\PromotionActionTypeValidator |
sylius.validator.promotion_action_type |
Sylius\Bundle\PromotionBundle\Validator\PromotionRuleGroupValidator |
sylius.validator.promotion_role_group |
Sylius\Bundle\PromotionBundle\Validator\PromotionRuleTypeValidator |
sylius.validator.promotion_role_type |
Sylius\Bundle\PromotionBundle\Validator\PromotionNotCouponBasedValidator |
sylius.validator.promotion_not_coupon_based |
sylius.promotion_processor |
sylius.processor.promotion |
sylius.promotion_applicator |
sylius.action.applicator.promotion |
sylius.registry_promotion_rule_checker |
sylius.registry.promotion.rule_checker |
sylius.registry_promotion_action |
sylius.registry.promotion_action |
sylius.active_promotions_provider |
sylius.provider.active_promotions |
sylius.promotion_coupon_generator |
sylius.generator.promotion_coupon |
sylius.promotion_coupon_generator.percentage_policy |
sylius.generator.percentage_generation_policy |
| ReviewBundle | |
sylius.average_rating_calculator |
sylius.calculator.average_rating |
sylius.%s_review.average_rating_updater |
sylius.updater.%s_review.average_rating |
Note: %s refers to the entity names associated with reviews (e.g., product, etc.). |
|
| ShippingBundle | |
sylius.category_requirement_shipping_method_eligibility_checker |
sylius.checker.shipping_method.category_requirement_eligibility |
sylius.shipping_method_rules_shipping_method_eligibility_checker |
sylius.checker.shipping_method.rules_eligibility |
sylius.shipping_method_eligibility_checker |
sylius.checker.shipping_method_eligibility |
sylius.form.type.shipping_method_rule.collection |
sylius.form.type.shipping_method_rule_collection |
Sylius\Bundle\ShippingBundle\Validator\ShippingMethodCalculatorExistsValidator |
sylius.validator.shipping_method_calculator_exists |
Sylius\Bundle\ShippingBundle\Validator\ShippingMethodRuleValidator |
sylius.validator.shipping_method_rule |
Sylius\Bundle\ShippingBundle\Validator\GroupsGenerator\ShippingMethodConfigurationGroupsGenerator |
sylius.validator.groups_generator.shipping_method_configuration |
sylius.shipping_methods_resolver |
sylius.resolver.shipping_methods |
sylius.shipping_methods_resolver.default |
sylius.resolver.shipping_methods.default |
sylius.shipping_method_resolver.default |
sylius.resolver.shipping_method.default |
sylius.shipping_calculator |
sylius.calculator.shipping |
sylius.shipping_calculator.flat_rate |
sylius.calculator.shipping.flat_rate |
sylius.shipping_calculator.per_unit_rate |
sylius.calculator.shipping.per_unit_rate |
sylius.shipping_date_assigner |
sylius.assigner.shipping_date |
sylius.shipping_method_rule_checker.total_weight_greater_than_or_equal |
sylius.checker.shipping_method_rule.total_weight_greater_than_or_equal |
sylius.shipping_method_rule_checker.total_weight_less_than_or_equal |
sylius.checker.shipping_method_rule.total_weight_less_than_or_equal |
| ShopBundle | |
sylius.shop.locale_switcher |
sylius_shop.locale_switcher |
sylius.storage.locale |
sylius_shop.storage.locale |
sylius.context.locale.storage_based |
sylius_shop.context.locale.storage_based |
sylius.shop.locale_stripping_router |
sylius_shop.router.locale_stripping |
sylius.listener.non_channel_request_locale |
sylius_shop.listener.non_channel_locale |
sylius.controller.shop.contact |
sylius_shop.controller.contact |
sylius.controller.shop.currency_switch |
sylius_shop.controller.currency_switch |
sylius.controller.shop.locale_switch |
sylius_shop.controller.locale_switch |
sylius.controller.shop.register_thank_you |
sylius_shop.controller.register_thank_you |
sylius.mailer.contact_email_manager.shop |
sylius_shop.mailer.contact_email_manager |
sylius.mailer.order_email_manager.shop |
sylius_shop.mailer.order_email_manager |
sylius.listener.shop_cart_blamer |
sylius_shop.listener.shop_cart_blamer |
sylius.listener.email_updater |
sylius_shop.listener.customer_email_updater |
sylius.listener.shop_customer_account_sub_section_cache_control_subscriber |
sylius_shop.event_subscriber.shop_customer_account_sub_section_cache_control |
sylius.listener.order_customer_ip |
sylius_shop.listener.order_customer_ip |
sylius.listener.order_complete |
sylius_shop.listener.order_complete |
sylius.listener.user_registration |
sylius_shop.listener.user_registration |
sylius.listener.order_integrity_checker |
sylius_shop.listener.order_integrity_checker |
sylius.order_locale_assigner |
sylius_shop.listener.order_locale_assigner |
sylius.listener.session_cart |
sylius_shop.event_subscriber.session_cart |
sylius.listener.user_cart_recalculation |
sylius_shop.listener.user_cart_recalculation |
sylius.listener.user_impersonated |
sylius_shop.listener.user_impersonated |
sylius.shop.menu_builder.account |
sylius_shop.menu_builder.account |
sylius.twig.extension.original_price_to_display |
sylius_shop.twig.extension.order_item_original_price_to_display |
Sylius\Bundle\ShopBundle\Twig\OrderPaymentsExtension |
sylius_shop.twig.extension.order_payments |
sylius.section_resolver.shop_uri_based_section_resolver |
sylius_shop.section_resolver.shop_uri_based |
sylius.context.cart.session_and_channel_based |
sylius_shop.context.cart.session_and_channel_based |
sylius.storage.cart_session |
sylius_shop.storage.cart_session |
sylius.grid_filter.shop_string |
sylius_shop.grid_filter.string |
| TaxationBundle | |
sylius.tax_rate_resolver |
sylius.resolver.tax_rate |
sylius.tax_rate_date_eligibility_checker |
sylius.checker.tax_rate_date_eligibility |
| TaxonomyBundle | |
sylius.doctrine.odm.mongodb.unitOfWork |
sylius.doctrine.odm.mongodb.unit_of_work |
| UiBundle | |
Sylius\Bundle\UiBundle\Twig\RedirectPathExtension |
sylius.twig.extension.redirect_path |
| UserBundle | |
Sylius\Bundle\UserBundle\Console\Command\DemoteUserCommand |
sylius.console.command.demote_user |
Sylius\Bundle\UserBundle\Console\Command\PromoteUserCommand |
sylius.console.command.promote_user |
sylius.listener.user_mailer_listener |
sylius.listener.user_mailer |
The old service IDs are no longer available in Sylius 2.0. Please ensure your configurations and service references use the new service IDs.
- The following services had new aliases added in Sylius 1.14. In Sylius 2.0, these aliases have become the primary service IDs, and the old service IDs remain as aliases:
| Current ID | New Alias |
|---|---|
| AddressingBundle | |
Sylius\Component\Addressing\Checker\ZoneDeletionCheckerInterface |
sylius.checker.zone_deletion |
Sylius\Component\Addressing\Checker\CountryProvincesDeletionCheckerInterface |
sylius.checker.country_provinces_deletion |
| ApiBundle | |
Sylius\Bundle\ApiBundle\Applicator\ArchivingShippingMethodApplicatorInterface |
sylius_api.applicator.archiving_shipping_method |
Sylius\Bundle\ApiBundle\Applicator\OrderStateMachineTransitionApplicatorInterface |
sylius_api.applicator.order_state_machine_transition |
Sylius\Bundle\ApiBundle\Applicator\PaymentStateMachineTransitionApplicatorInterface |
sylius_api.applicator.payment_state_machine_transition |
Sylius\Bundle\ApiBundle\Applicator\ProductReviewStateMachineTransitionApplicatorInterface |
sylius_api.applicator.product_review_state_machine_transition |
Sylius\Bundle\ApiBundle\Context\UserContextInterface |
sylius_api.context.user.token_based |
Sylius\Bundle\ApiBundle\Provider\PathPrefixProviderInterface |
sylius_api.provider.path_prefix |
Sylius\Bundle\ApiBundle\Provider\AdjustmentOrderProviderInterface |
sylius_api.provider.adjustment_order |
Sylius\Bundle\ApiBundle\Changer\PaymentMethodChangerInterface |
sylius_api.changer.payment_method |
Sylius\Bundle\ApiBundle\Converter\IriToIdentifierConverterInterface |
sylius_api.converter.iri_to_identifier |
Sylius\Bundle\ApiBundle\Mapper\AddressMapperInterface |
sylius_api.mapper.address |
Sylius\Bundle\ApiBundle\Checker\AppliedCouponEligibilityCheckerInterface |
sylius_api.checker.applied_coupon_eligibility |
Sylius\Bundle\ApiBundle\Modifier\OrderAddressModifierInterface |
sylius_api.modifier.order_address |
Sylius\Bundle\ApiBundle\Assigner\OrderPromotionCodeAssignerInterface |
sylius_api.assigner.order_promotion_code |
| CoreBundle | |
Sylius\Bundle\CoreBundle\CatalogPromotion\Applicator\CatalogPromotionApplicatorInterface |
sylius.applicator.catalog_promotion |
Sylius\Bundle\CoreBundle\CatalogPromotion\Applicator\ActionBasedDiscountApplicatorInterface |
sylius.applicator.catalog_promotion.action_based_discount |
Sylius\Component\CoreBundle\CatalogPromotion\Calculator\CatalogPromotionPriceCalculatorInterface |
sylius.calculator.catalog_promotion.price |
Sylius\Bundle\CoreBundle\CatalogPromotion\Checker\ProductVariantForCatalogPromotionEligibilityInterface |
sylius.checker.catalog_promotion.product_variant_for_catalog_promotion_eligibility |
Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\AllProductVariantsCatalogPromotionsProcessorInterface |
sylius.processor.catalog_promotion.all_product_variant |
Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\CatalogPromotionClearerInterface |
sylius.processor.catalog_promotion.clearer |
Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\CatalogPromotionStateProcessorInterface |
sylius.processor.catalog_promotion.state |
Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\ProductCatalogPromotionsProcessorInterface |
sylius.processor.catalog_promotion.product |
Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\ProductVariantCatalogPromotionsProcessorInterface |
sylius.processor.catalog_promotion.product_variant |
Sylius\Bundle\CoreBundle\CatalogPromotion\Processor\CatalogPromotionRemovalProcessorInterface |
sylius.processor.catalog_promotion.removal |
Sylius\Component\Core\Checker\ProductVariantLowestPriceDisplayCheckerInterface |
sylius.checker.product_variant_lowest_price_display |
Sylius\Bundle\CoreBundle\PriceHistory\CommandDispatcher\ApplyLowestPriceOnChannelPricingsCommandDispatcherInterface |
sylius.command_dispatcher.price_history.batched_apply_lowest_price_on_channel_pricings |
Sylius\Bundle\CoreBundle\PriceHistory\Logger\PriceChangeLoggerInterface |
sylius.logger.price_history.price_change |
Sylius\Bundle\CoreBundle\PriceHistory\Processor\ProductLowestPriceBeforeDiscountProcessorInterface |
sylius.processor.price_history.product_lowest_price_before_discount |
Sylius\Bundle\CoreBundle\Calculator\DelayStampCalculatorInterface |
sylius.calculator.delay_stamp |
Sylius\Bundle\CoreBundle\CatalogPromotion\Announcer\CatalogPromotionAnnouncerInterface |
sylius.announcer.catalog_promotion |
Sylius\Bundle\CoreBundle\CatalogPromotion\Announcer\CatalogPromotionRemovalAnnouncerInterface |
sylius.announcer.catalog_promotion.removal |
Sylius\Bundle\CoreBundle\CatalogPromotion\CommandDispatcher\ApplyCatalogPromotionsOnVariantsCommandDispatcherInterface |
sylius.command_dispatcher.catalog_promotion.batched_apply_on_variants |
Sylius\Component\Core\Checker\CLIContextCheckerInterface |
sylius.checker.cli_context |
Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantsMapProviderInterface |
sylius.provider.product_variant_map |
Sylius\Component\Core\Promotion\Checker\ProductInPromotionRuleCheckerInterface |
sylius.checker.promotion.product_in_promotion_rule |
Sylius\Component\Core\Promotion\Checker\TaxonInPromotionRuleCheckerInterface |
sylius.checker.promotion.taxon_in_promotion_rule |
Sylius\Bundle\CoreBundle\Provider\ChannelBasedProductTranslationProviderInterface |
sylius.provider.channel_based_product_translation |
Sylius\Bundle\CoreBundle\Provider\CustomerProviderInterface |
sylius.provider.customer |
Sylius\Component\Core\Statistics\Provider\StatisticsProviderInterface |
sylius.provider.statistics |
Sylius\Component\Core\Statistics\Provider\BusinessActivitySummaryProviderInterface |
sylius.provider.statistics.business_activity_summary |
Sylius\Component\Core\Statistics\Provider\SalesStatisticsProviderInterface |
sylius.provider.statistics.sales |
Sylius\Component\Core\Distributor\MinimumPriceDistributorInterface |
sylius.distributor.minimum_price |
Sylius\Component\Core\Generator\ImagePathGeneratorInterface |
sylius.generator.image_path |
Sylius\Bundle\CoreBundle\PriceHistory\Remover\ChannelPricingLogEntriesRemoverInterface |
sylius.remover.channel_pricing_log_entries |
Sylius\Component\Core\Payment\Remover\OrderPaymentsRemoverInterface |
sylius.remover.payment.order |
Sylius\Component\Core\Cart\Resolver\CreatedByGuestFlagResolverInterface |
sylius.resolver.cart.created_by_guest_flag |
Sylius\Bundle\CoreBundle\Order\Checker\OrderPromotionsIntegrityCheckerInterface |
sylius.checker.order.promotions_integrity |
Sylius\Bundle\CoreBundle\Resolver\CustomerResolverInterface |
sylius.resolver.customer |
Sylius\Component\Core\Statistics\Registry\OrdersTotalsProvidersRegistryInterface |
sylius.registry.statistics.orders_totals_providers |
Sylius\Component\Core\Positioner\PositionerInterface |
sylius.positioner |
| LocaleBundle | |
Sylius\Bundle\LocaleBundle\Checker\LocaleUsageCheckerInterface |
sylius.checker.locale_usage |
| ProductBundle | |
Sylius\Component\Product\Resolver\ProductVariantResolverInterface |
sylius.resolver.product_variant |
| PromotionBundle | |
Sylius\Bundle\PromotionBundle\Provider\EligibleCatalogPromotionsProviderInterface |
sylius.provider.eligible_catalog_promotions |
| TaxonomyBundle | |
Sylius\Bundle\TaxonomyBundle\Repository\TaxonTreeRepositoryInterface |
sylius.custom_repository.tree.taxon |
-
The
NormalizerandDenormalizerinApiBundlehave been reorganized into subdirectories, moving fromSylius\Bundle\ApiBundle\SerializertoSylius\Bundle\ApiBundle\Serializer\NormalizerandSylius\Bundle\ApiBundle\Serializer\Denormalizer. -
The
SerializerContextBuilderclasses inApiBundlehave been moved to theSylius\Bundle\ApiBundle\Serializer\ContextBuildersubdirectory. -
The
Filter,QueryCollectionExtension, andQueryItemExtensionclasses inApiBundlehave been reorganized into separate sections (admin,shop,common) based on their usage context, and grouped by resources. -
The
Messagedirectory has been renamed toCommand. Following this change,MessageHandlerhas been renamed toCommandHandler, andMessageDispatcherhas been renamed toCommandDispatcher. -
AdminBundlenow contains base form types for every resource. Use these as an extension point for admin customizations instead the ones fromCoreBundleor other minor bundles. Similarly, use form types fromShopBundlefor the Shop context.
- Stripe and Paypal Express Checkout gateways have been removed.
The only remaining by default gateway in core is
offline. Use sylius plugins for the gateways of your choosing.
- Channel's
themeNameform field existence is made optional and depends onShopBundlepresence. - The
Sylius\Bundle\CoreBundle\Theme\ChannelBasedThemeContexthas been moved to theSylius\Bundle\ShopBundle\Theme\ChannelBasedThemeContext.
- Unused, legacy node packages have been removed, while the required ones have been updated to newer versions.
To ensure a smooth transition, it is recommended to delete the
node_modulesdirectory and reinstall the packages. - The recommended Node.js versions are 20 or 22, as support for version 18 has been dropped.
use_webpackoption was removed from thesylius_uiconfiguration, and the Webpack has become the only module bundler provided by Sylius.use_webpacktwig global variable was removed. Webpack is always used now, and there is no need to check for it.- Image sizes have been simplified and standardized for both the Admin and Shop Bundle.
- Some Twig extension services have been moved from the UiBundle to the new Twig Extra package
- Aliases for the
knp_menu.menu_buildertags introduced in Sylius 1.14 are now the only valid menu builder tags in Sylius 2.0:
| Old Alias | New Alias |
|---|---|
| AdminBundle | |
sylius.admin.main |
sylius_admin.main |
| ShopBundle | |
sylius.shop.account |
sylius_shop.account |
- All CSS classes of SemanticUI have been replaced with Bootstrap classes.
- JavaScript components relying on Semantic UI have been rewritten to utilize Bootstrap's JavaScript plugins.
- Customized CSS has been replaced by Bootstrap's utility classes.
Most of the existing JavaScript has been replaced by SymfonyUX with Stimulus, which includes live components. This change led to the removal of jQuery and a significant reduction of custom JavaScript in the project. Check out the documentation for more information here.
All partial routes rendered in templates have been removed and replaced by rendering Twig components.
Twig Hooks are a robust and powerful alternative to the Sonata Block Events and the old Sylius Template Events systems.
Sonata Blocks have been fully removed as they were not actively maintained/supported for a long time.
Sylius Twig Hooks is a new generation of template customization and extension, providing:
- Built-in support for Twig templates, Twig Components, and Symfony Live Components.
- Adjustability and autoprefixing hooks.
- A configurable and easily manageable system for hookables.
- A priority mechanism to control rendering order.
- Simple enable/disable options for each hook.
- Key Improvements in Sylius Twig Hooks
Improved Structure
- Hooks
Previously, all template events were configured in a single, monolithic events.yaml file, making it difficult to navigate and maintain:
/app
/config
/app
/events.yaml
With Twig Hooks, the configuration has been reorganized into smaller, more manageable files. Each file corresponds to a specific part of the application, enhancing clarity and maintainability:
/app
/config
/app
/twig_hooks
/product
/create.yaml
/update.yaml
/index.yaml
/show.yaml
- Templates
The structure of the template directories has also been improved. Previously, templates were organized in a less intuitive way, with some structures inconsistent with the template event definitions:
/resources
/views
/AdminUser
/Crud
/Product
/Form
/_avatarImage.html.twig
/_form.html.twig
Now, the templates are organized in a more consistent manner, with all templates grouped by resource and aligned with hook naming conventions:
/templates
/product
/form
/sections
/translations
description.html.twig
meta_description.html.twig
meta_keywords.html.twig
name.html.twig
short_description.html.twig
slug.html.twig
/translations.html.twig
/show
/shared
/another_resource
- Detailed Comparison: Old vs. New configurations
Old configuration (Template Events)
The previous approach grouped all event blocks within events.yaml, which led to a cluttered and hard-to-manage configuration:
sylius_ui:
events:
sylius.admin.index:
blocks:
before_header_legacy:
template: "@SyliusAdmin/Crud/Block/_legacySonataEvent.html.twig"
priority: 25
context:
postfix: index.before_header
header:
template: "@SyliusAdmin/Crud/Index/_header.html.twig"
priority: 20
after_header_legacy:
template: "@SyliusAdmin/Crud/Block/_legacySonataEvent.html.twig"
priority: 15
context:
postfix: index.after_header
content:
template: "@SyliusAdmin/Crud/Index/_content.html.twig"
priority: 10
after_content:
template: "@SyliusAdmin/Crud/Block/_legacySonataEvent.html.twig"
priority: 5
context:
postfix: index.after_content
New configuration (Twig Hooks)
The new system organizes hooks by specific parts of the application, simplifying customization and improving readability:
sylius_twig_hooks:
hooks:
'sylius_admin.common.index':
sidebar:
template: '@SyliusAdmin/shared/crud/common/sidebar.html.twig'
priority: 200
navbar:
template: '@SyliusAdmin/shared/crud/common/navbar.html.twig'
priority: 100
content:
template: '@SyliusAdmin/shared/crud/common/content.html.twig'
priority: 0
'sylius_admin.common.index.content':
flashes:
template: '@SyliusAdmin/shared/crud/common/content/flashes.html.twig'
priority: 300
header:
template: '@SyliusAdmin/shared/crud/common/content/header.html.twig'
priority: 200
grid:
template: '@SyliusAdmin/shared/crud/index/content/grid.html.twig'
priority: 100
footer:
template: '@SyliusAdmin/shared/crud/common/content/footer.html.twig'
priority: -100
'sylius_admin.common.index.content.header':
breadcrumbs:
template: '@SyliusAdmin/shared/crud/index/content/header/breadcrumbs.html.twig'
priority: 100
title_block:
template: '@SyliusAdmin/shared/crud/common/content/header/title_block.html.twig'
priority: 0
'sylius_admin.common.index.content.header.title_block':
title:
template: '@SyliusAdmin/shared/crud/common/content/header/title_block/title.html.twig'
priority: 100
actions:
template: '@SyliusAdmin/shared/crud/common/content/header/title_block/actions.html.twig'
priority: 0
'sylius_admin.common.index.content.grid':
filters:
template: '@SyliusAdmin/shared/crud/index/content/grid/filters.html.twig'
priority: 200
data_table:
template: '@SyliusAdmin/shared/crud/index/content/grid/data_table.html.twig'
priority: 100
no_data_block:
template: '@SyliusAdmin/shared/crud/index/content/grid/no_results.html.twig'
priority: 0
'sylius_admin.common.index.content.grid.no_results':
image:
template: '@SyliusAdmin/shared/crud/index/content/grid/no_results/image.html.twig'
priority: 300
title:
template: '@SyliusAdmin/shared/crud/index/content/grid/no_results/title.html.twig'
priority: 200
subtitle:
template: '@SyliusAdmin/shared/crud/index/content/grid/no_results/subtitle.html.twig'
priority: 100
action:
template: '@SyliusAdmin/shared/crud/index/content/grid/no_results/action.html.twig'
priority: 0
Twig Hooks cover both the admin and shop areas comprehensively, ensuring consistency across the entire application.
AdminBundle hooks start with the sylius_admin prefix, while ShopBundle hooks start with the sylius_shop prefix.
For more information visit the Sylius Stack.
- The
sylius.behat.api_securityhas been replaced bysylius.behat.api_admin_securityandsylius.behat.api_shop_securityservices. - We removed
Psalm, thePHPStanis now the only static analysis tool used in the project.