September 2018
Welcome to the September 2018 release of Saleor! Here are the highlights of changes we’ve made in the last month.
Order management views
We’re still focused on developing the React-based Dashboard 2.0. With this release, we're presenting the beta version of new order management views. We've recreated all functionalities of the original Django-based orders views, such as the list of orders, fulfillments, and managing payments. We also ported the "draft orders" feature, which allows members of staff to create orders, including dynamically adding products and assigning customers and shipping methods. It's worth noting that the whole order details view has been restyled for a better user experience; instead of three separate tabs for details, payments, and order history, we’ve organized all necessary information on a single page.
Order timeline
While developing the new order management views, we reworked the mechanics that power the order history section. Until now we’ve only stored simple messages serving as an order history. The new release enhances this to store additional data specific to the particular event, allowing us to implement features such as retrying some of the order actions directly from the timeline. We also added more event types, to cover the entire lifetime of an order.
Staff management views
Staff member management has also been improved in the new dashboard. The functionality remains the same but we’ve restyled and reorganized the page to provide better user experience and improve the appearance.
Other core changes
- Simplify naming of attribute-related models - #2970 by @Pacu2
- Introduce Pipenv - #2430 by @jxltom
- Refactor API client in tests - #3002, #3006, #3016 by @Pacu2
- Add ability to add default shipping zone - #2725 by @Pacu2
- Unify get_total and get_total_price - #2968 by @tomcio1205
- Adjust minimum validators in
CartLine
,OrderLine
andFulfillmentLine
models - #2925 by @the-bionic - Assemble URLs in views instead of templates - #2734 by @tomcio1205
- Remove label of the second address in checkout page - #2907 by @jxltom
- Drop
jsonfield
package for Django's nativeJSONField
- #2824 by @the-bionic - Use official Postgres image on CI - #2898 by @artursmet
- Add optional HTTPS setting for Vatlayer - #2442 by @NyanKiyoshi
- Update
get_user_id
toget_user
since it is removed after django 2.1 - #2820 by @jxltom - Add default weight unit field in the site settings form - #2795 by @jxltom
- Show warnings when assigning unpublished items in menu - #2652 by @oldPadavan
- Fix Django 2.1 compatibility issues - #2826 by @NyanKiyoshi
API
- Add user's geolocalization data - #2979 by @Pacu2
- Add bulk operations to attributes mutations - #2988 by @Pacu2
- Add address validation query - #2856 by @artursmet
- Add
get_graphql_schema
management command to generate GraphQL SDL schema - #2837 by @rafalp - Add CORS headers in API - #2958 by @maarcingebala
- Add mutation to reset customer's password - #2962 by @Pacu2
- Add mutation to register a new customer - #2959 by @Pacu2
- Add mutation to update order shipping - #2831 by @Pacu2
- Add mutations to manage order lines in draft orders - #2910 by @maarcingebala
- Add query to fetch staff users - #2846 by @Pacu2
- Add product thumbnails to
OrderLine
type - #2877 by @Pacu2 - Add logic to check if order mutations can be performed - #2841 by @Pacu2
- Allocate stock when draft order completes - #2965 by @Pacu2
- Allow creating attribute with values in a single mutation - #2976 by @Pacu2
- Use field's default value if no value is provided and field is not nullable - #2977 by @Pacu2
- Return absolute URLs for media files - #2796 by @artursmet
- Unify format of countries data - #2956, #2978 by @Pacu2
- Rename fulfillment mutations - #2901 by @Pacu2
- Require variant attributes when creating a variant - #2921 by @maarcingebala
- Make product variant attributes required in API - #2911 by @oldPadavan
- Refactor shipping zones mutations - #2894 by @Pacu2
- Return
OrderEventsEmail
as Enum in GraphQL API - #2848 by @Pacu2 - Turn
PaymentStatus
intoEnum
- #2825 by @Pacu2 - Change
Decimal
implementation to be based onFloat
type - #2840 by @Pacu2 - Make
menu
argument required inMenuItemCreateInput
- #2791 by @oldPadavan - Expose a single price for variants - #2814 by @artursmet
- Add separate input for
ProductCreate
andProductUpdate
mutations - #2786 by @oldPadavan - Add separate input for ProductVariantCreate and ProductVariantUpdate - #2785 by @oldPadavan
- Change order lines connection to a list - #2982 by @oldPadavan
- Change product/variant attributes connection to a list - #2980 by @Pacu2
Dashboard 2.0
- Restrict access to dashboard sections regarding user permissions - #2989 by @dominik-zeglen
- Add staff members and permission management sections - #2914 by @dominik-zeglen
- Show loading state on authentication - #2899 by @dominik-zeglen
- Add product types section - #2665 by @dominik-zeglen
Bugfixes
- Update
HStore
field default value - #2828 by @jxltom - Fix creating orders when voucher name is optional - #2932 by @jxltom
- Fix assigning unpublished collections as homepage collection - #2647 by @oldPadavan
- Fix filtering applicable shipping methods by discounts - #2933 by @jxltom
- Fix translation in signup form - #2916 by @gigimon
- Fix returning shop's permissions in API - #2940 by @Pacu2
- Fix UI after thumbnail has replaced crop - #2845 by @jxltom
- Fix overflowing images in dashboard's product descriptions - #2892 by @jxltom
Documentation
- Add docs for email integrations - #2147 by @NyanKiyoshi
- Add docs for order events - #2835 by @Pacu2
- Add
--createsuperuser
switch to example-data docs - #2945 by @the-bionic
Future releases
This release is another step forward as we gradually add new sections to the React-based Dashboard 2.0. It's a lot of work, but we believe that the improved appearance and user experience are worth the effort. Another part of our team is also making progress with the new single-page storefront; it’s a complete redesign that we are excited to announce will be released in October!
Thank you
A big thank you 🙏 to all contributors, stargazers, and supporters of Saleor! We hit over 2.5k stars on Github in September. It’s a fantastic number that is only possible with your support.
Contributing
We’ve prepared a bunch of issues labeled as help wanted for anyone who wants to contribute to the project. Even if you don't fully understand the problem , our team will try to guide you and answer your questions. And remember to check out our channel on Gitter if you have a quick question that doesn't require opening an issue on Github.
October is the month of open source celebration. Get involved and take part in the annual Hacktoberfest by checking out our issues marked with the special label.
We will be attending the GraphQL Summit in San Francisco on November 7–8. Let us know if you want to meet us, chat about Saleor, and grab some of our cool swag!
See the release notes on our blog.