A model translations API, three new Dashboard 2.0 sections and great tweaks — welcome to the February 2019 release of Saleor! All the highlights and more on our future plans.
Discount management has landed! It can be accessed from the top-level navigation menu in Dashboard 2.0 and is split into two parts: sales and vouchers. Sales allow you to define a percentage or fixed discounts on single products, or on entire collections or categories, and they are seen by all customers in your store. You can also specify the dates when discounted prices are active.
Vouchers are discount codes that you can give to your customers to offer lower product or shipping prices. They can be configured in a similar manner to sales, but they also allow you to specify usage limits.
Shipping Methods management is also new and can be accessed via
Configure > Shipping Methods in Dashboard 2.0. You can configure the countries you deliver to by creating shipping zones. For each shipping zone, you can define particular price- and weight-based shipping methods.
Saleor allows you to create simple static pages for your online store, which can be used for messaging like terms and conditions. This functionality has now been migrated to Dashboard 2.0. To use it, go to
Configure > Pages.
While working on the “Pages” section, we added rich-text editing capabilities in Dashboard 2.0 by integrating Draftail editor. We chose Draftail because it works well with React and is built and maintained by the team behind Wagtail — one of the most popular CMS platforms written in Python/Django. As opposed to MediumEditor in Dashboard 1.0, Draftail outputs content in JSON instead of HTML. For that reason, we had to extend some of the models with additional JSON fields. Draftail is now available to use as an editor for the descriptions of products, collections and categories, as well as content on static pages.
Note: Rendering JSON content isn’t supported in both storefronts yet and will be added in future releases. We recommend sticking to Dashboard 1.0 and the previous MediumEditor for rich-text editing for now.
One of the most significant changes in the GraphQL API is support for model translations. Within each model that supports translations, we’ve added a
translations field which returns translated content for a given language code. There is also a single top-level query
translations that returns all translatable items of a given type. Lastly, for each model, there are mutations to provide new translations. The example below shows how to add a translation for a product and then query it:
These were the highlights of this release. As always, for the full changelog go to the release page on Github.
With the release of Saleor 2.4.0, we’re also bringing an update to our PWA Storefront. In the last month, we were mainly focused on improvements in the checkout flow. We’ve added the ability to dynamically switch between multiple payment methods, an order confirmation page, and an order details page that customers see after successfully completing checkout.
Make sure to check out the full release on Github!
We’re not slowing down. In the next release we’re planning to deliver a completely new feature: UI for model translations! This new section in Dashboard 2.0 will allow you to translate your models to different languages. This will be available for core Saleor models such as products, categories, collections, attributes, pages and a few more. Here is the preview, which we are pretty excited about:
Another important change that we’re planning to introduce soon is a migration to Black as the default Python code formatter. Black has recently gained a lot of popularity and we hope its zero-configuration approach will help improve the readability of Saleor’s code and maintain formatting in pull requests from the community.
We’re really excited about hitting 4k stars on Github! 🤩 Also, the number of contributors jumped to 100. A big thank you 🙏 to all contributors, stargazers, and other supporters of Saleor!
For those of you who are interested in contributing to the project, we prepared a bunch of issues labeled as
help wanted. Don’t worry if you don’t fully understand the problem — our team will try to guide you and answer all your questions. Remember to check our channels on Gitter and Spectrum; they serve best if you have quick questions that don’t require opening an issue on GitHub.