With the recent Sylius release v1.11, we've introduced a brand new feature - catalog promotions. As this feature may require processing a significant amount of data(the whole product catalog), we had to decide on async processing by default. But it does not mean that we can waste resources and not optimize the processing algorithm! We had to improve it and to do that we've been using Blackfire.
10. Sylius pricing model
Sylius pricing model
Product
Product
May have from 1 to N variants
Product variants
Product variants
Always have Y Channel Pricings,
Where Y equals amount of Channels in shop
11. Sylius pricing model
Sylius pricing model
Product
Product
May have from 1 to N variants
Product variants
Product variants
Always have Y Channel Pricings,
Where Y equals amount of Channels in shop
Channel Pricing
Channel Pricing
Contains end pricing for customer
118. Check the highest class in your call-graph
Check the highest class in your call-graph
And look for bugs
Load all data required to perform operation
Load all data required to perform operation
But not more
Remember to clear Entity Manager when batch processing
Remember to clear Entity Manager when batch processing
Unless you are executing asynchronously messages with Symfony
Messenger
Pure DQL may bring benefits
Pure DQL may bring benefits
But is hard to do it properly for complicated objects or mix it with ORM
Amount of queries matter
Amount of queries matter
Especially in managed databases