8 min. read
Categories: Ecosystem News Technical
💞 New! Sylius 1.11 – a lovable release with catalog promotions

Intro

Working on this release has been a tremendous pleasure for me as the Sylius Product Owner. I have a feeling that the major feature we’ve brought to life with it has been awaited by
 some of you đŸ€­  😂  I believe that we’ve managed to serve something worth the wait and a good base for your custom ideas as usually.

💕 Catalog Promotions💕

There are numerous ways to boost your eCommerce sales – starting from a flawless UX such as easy online checkout, practical customer service during and after purchase, including live chats options, next day delivery, free delivery, easy returns, not forgetting about a wide choice of payment methods. Nonetheless, promotions are usually the first thing everyone thinks about (check this Statista report for more context).

So far, we’ve covered most of the list, and now…

The day has come – Sylius Core finally has catalog promotions. *STANDING OVATION*

Until now, this feature was deftly covered in plugins. In the past, by our already archived UrbanaraCatalogPromotionPlugin, later by the community solutions by Setono, Locastic, or BitBag. There have been multiple discussions on GitHub that led us to this feature, and we appreciate our community a lot for their input.

For the past 6 months, our development team has been building a feature that is indeed an eCommerce essential. One could not imagine a store without a classy “This weekend -20% on all T-Shirts” promo, with crossed-out old prices on the products pages and cards. It’s a view we see all the time while shopping, a multiplicity of promotion labels, time-limited sales, black weekends – all of them fight for the customers’ attention
 and money. 😉

You can also check some more insider tips for making your promotion campaigns (including peaks such as Black Friday or Winter Holidays) super-efficient in our blog post here.

What’s in it, and how does it work?

Catalog Promotions’ configuration has been designed to suit the most known scenarios for promotion campaigns. We have scopes to define which products, actions to define the discounts, and a few more safety valves to have it all up and running with benefit to your sales results. Let me tell you more about what we have here.

Scopes and actions

Scopes define which products from the catalog should be affected by the catalog promotion. Thus, there are 3 types of scopes: for taxons, for products, and for variants. This way, you can configure catalog promos to be applied to whole categories of products, specifically chosen products, or even very specific variants (like only on size M of T-Shirts). The scopes form is shipped with autocomplete to ease the config. As always at Sylius, it can be easily customized to have your own scope types; we know you! Sylius users quite often come up with ideas we’d never even think of! Check the documentation here.

Actions, on the contrary, are used to define what happens with the prices of products selected in the scopes. You can have two types of actions: percentage or fixed discount. Both are pretty straightforward, they either lower the price by a percentage of it (like -10%) or subtract a fixed amount from the original price (like -5$). As with the scopes, actions can also be customized in the blink of an eye; check it out.

This effect is then seen in the shop, on the products’ cards and pages as a crossed-out original price and the discounted price right under it.

Labels and descriptions

Looking at the screenshot above, you might’ve thought, what is this “winter sale” badge. Catalog promotions have two properties that can be displayed in the shop’s layout. The badge you can see above is the promotion’s `label`. It is shown on the product’s card in the catalog and the product show page by default.

An additional property is the `description` which is meant for explaining to the customers the promotion’s details in a few words (like “Winter sale: -50% on all caps until Feb. 20”). This one is displayed only on the show page. They are a good basis for making them much more visually appealing, but how? Simple as that.

Dates

I couldn’t imagine catalog promotions without dates, so as for cart promotions, also here you have an easy way to set when a promotion’s supposed to start and end.

But there is a thing that significantly differs from the cart promotions. Catalog promotions, when being applied, have to be processed by the system to display correct prices. Thus, Sylius takes all the variants that fall into the specified scope, and one-by-one applies the catalog discount to them. Depending on your catalog’s size (including the specified scope) and your application’s config (server, caches, etc.), the processing time may vary up to a few moments. 

Other sales-boosting features

Ecommerce is all about profitability; plenty of people spend time every day controlling the pricing of products in modern online stores, which is often limited by contracts with suppliers. To support various scenarios in this area, we’ve proposed a few solutions. 

Minimum price

First and foremost, this is the minimum price that you can specify on each product variant for each channel. The final product price paid by the customer cannot be lower than this price: no matter how many promotions (both cart and catalog) could be applied to it when it reaches that boundary, no more discount will be possible.

Priorities

Sylius catalog promotions have priorities that allow you to specify the order in which they will be applied. They also provide the exclusive flag that lets you make promotion the only one valid for the specified scope. Read more in the documentation.

Cart promotions with catalog promotions

Cart promotions have received a toggle that controls their behavior with catalog discounts. With it, you can decide whether a cart promotion should be applied from the original price or from the price discounted by the catalog promotions, and thus have, for example, coupons that can be used for non-discounted products only.

You can extend these functionalities with your own ideas such as banners, pop-ups, mailing, etc. Of course, the whole feature, both administration, and shop can also be used through our new API Platform-based API. This way, you don’t have to use our default UI and can build your totally unique one.

Finally, the Catalog Promotions are fully covered with the new Sylius API! It’s the first feature we’ve built since we’ve switched to the API first approach, and it’s been dope! 

Symfony 5.4 support

With the newest Symfony LTS release, it was a no-brainer for us to support it ASAP. The last Symfony 5.0 release was supported from Sylius v1.10.6, so you could have already taken advantage of it. Why should you care about upgrading to Symfony 5.4?

  • Next Sylius minor release will drop Symfony v4.4 support;
  • Symfony 5.4 comes with many improvements, more notifier integrations, and new Language Negotiation – that we think is pretty neat;
  • You can read more about Sf 5.4 here.

PHP 8.0 required

While Sylius 1.10 was available for both 7.4 and 8.0 users, with 1.11, we have dropped 7.4 support (as in Nov 2021, its active support ended) and have required to use PHP 8.0. We’ve already migrated most of our codebase, and we have to admit: we loved it! And why did we love it – read in the next blog post this week!

More and more in the New API

Just like in all our recent releases since 1.8, we’ve been continuing the work on our new API. We’ve reached 85% coverage of shop features in it and have done a whole lot of unifications and fixes. But I will not get into details here; let me leave that to our dev team in their forthcoming blog post this week. In the meantime, you can read our previous pieces on API.

Sylius/RefundPlugin 1.0 released

🙌  Yay! As promised, alongside the 1.10 release during last year’s summer, we’ve released the 1.0 version of one of our most important plugins. Very recently, we’ve also reworked (again) the PDF documents generated in both Refund and Invoicing plugins so that they now match each other.

Sylius/Plus to receive 1.11 support very soon

Do not forget that right after the Sylius new release, our commercial product will also receive support for the newly released version. This will let you use the core Catalog Promotions and upgrade to Symfony 5.4 on projects with Sylius Plus! Moreover, you may expect that this year we will start building an enterprise extension to the Catalog Promotions based on the input from our strategic customers like Brille24 đŸ”„ We are keeping support for the still maintained Sylius 1.10, have dropped support for Sylius 1.9 and will be now adding support for 1.11. 

Development Team and Core Team reworked

As you might’ve read in our recent blog post, Sylius Core Team has been reworked, and it (again) consists of people both from outside and inside of the Sylius company! Have a look here. Have you discovered who the mysterious Core Team member is? đŸ€­

On the other hand, our own Sylius Development Team has grown 😀 We’ve welcomed RafaƂ, Kamil, Ernest, and another RafaƂ to our pack. Welcome on board! And two more senior Symfony developers will be joining us by April! While looking at the Sylius backlog and the velocity resulting from this growth, the only thing I can say is: WOW, pure speed and power! 🏎

And now what?

When it comes to planning the future, we’ve never really liked deadlines. But there are certain plans that we’re looking forward to right now.


First and foremost, we are switching to more scope-based than time-based releases. That’s why we won’t be announcing an estimated release date for 1.12 as we used to do for previous versions. Rather than that, we will come up with a feature scope we’d like to deliver, and when getting closer to actually finishing it, we will announce the release. The time-based approach was shady for all of us; you’ve seen us postponing releases by weeks quite a lot of times, as we always wanted to push some more into it 🍋.

Keep track of our roadmap as it is going to change very, very soon, and we will firstly show our plans there.

The 1st Community Update webinar

If you feel like asking more questions and seeing the feature in action on the screen, we have some news to share. We’re going to lead a “Community Update” webinar, in order to improve our communication with you – fantastic Sylius users. It will give us all a shared space for regular conversation, gathering feedback, and sharing our further plans. Sounds interesting? Sign up below and see you around!

Community Update Webinar
Learn more about the latest release during the webinar with a Q&A session, hosted by Ɓukasz Chruƛciel and Tymoteusz Stengert. Tuesday, 22 February 2022 | 13:30 CET
Share:
Magdalena Sadowska
Magda is making decisions about Sylius features and breaking those into implementable tasks since 2017 in Product Owner role. Present on both our Github and Slack to chat about Sylius business-wise. Privately: she’s raising two tiny humans.
More from our blog
Technical 8 min read 04.12.2024
Here’s everything you had to know about the first major release since 2017! Over 7 years after the first major release, on Nov 12, 2024, we have released Sylius 2.0.0. We had a great opportunity to announce it first at SyliusCon in Lyon, but now, as we are back to… Read More
8 min read 22.11.2024
The emotions start to settle after SyliusCon, and it’s time to reflect on this incredible milestone in our journey. Why a milestone? Because SyliusCon exceeded our expectations in every possible way. We broke attendance records and brought together the key figures of our community, numerous partners, freelancers, and simply all… Read More
Cloud 8 min read 17.06.2024
We are thrilled to announce that we just signed a strategic partnership with Platform.sh, and as a result, we are extending our offer with Sylius Cloud powered by Platform.sh. Platform.sh is a modern Platform-as-a-Service (PaaS) solution that allows businesses to leverage the cloud environment without losing access to the code… Read More
Comments