Saleor 3.20.0stable Released Jul 12, 2024
⚠️ Breaking Change Impact Score: 7/10

Saleor 3.20.0 β€” Release Notes & Engineering Impact

Source available β€” automated, not human-reviewed

Component: saleor Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking changes - Remove the `anonymize` plugin. Use `saleor/core/utils/anonymization` code instead. - by @aniav
Read the original context β†—
Source flags breaking changes β€” review applicability
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

Saleor 3.20.0. Source highlight: Welcome to Saleor 3.20 release!

Who Does This Impact? (Role-Based Analysis)

πŸ’» Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

πŸ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

βš™οΈ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

⚠️ Breaking Changes & Deprecations (1)

  • Breaking changes - Remove the `anonymize` plugin. Use `saleor/core/utils/anonymization` code instead. - by @aniav

✨ New Features & Capabilities (6)

  • Add `translatableContent` to all translation types; add translated object id to all translatable content types - #15617
  • Add the `Channel.taxConfiguration` field - #15610
  • Add the `Warehouse.stocks` field - #15771
  • Change permissions for `checkout` and `checkouts` queries. Add `HANDLE_PAYMENTS` to required permissions - #16010
  • Added support for the `BrokerProperties` custom header to webhooks to support Azure Service Bus - #15899
  • Added HTTP compression telemetry - #16125

⚑ Performance & Enhancements (3)

  • Database performance improvements around:
  • DB performance improvements in attribute dataloaders - #15474
  • Improve performance of the `productVariants` resolvers by using JOINs instead of subqueries - #16262

πŸ”§ Bug Fixes & Patches (1)

  • Fixed a rare crash in the introspection query detection code - #15966
πŸ“„ View Raw Release Notes (Original Developer Log)
Welcome to Saleor 3.20 release! ### Highlights - Connecting the Transaction item to a granted refund in the refund flow is now possible. This makes it easier to understand what’s the status of a refund. - #15590 by @korycins - `checkout` and `checkouts` queries now allow to be used with `HANDLE_PAYMENTS` permission. Previously, only `MANAGE_CHECKOUTS` and `IMPERSONATE_USER` were allowed to retrieve checkouts. This made the behavior around payment apps inconsistent. - Database performance improvements around: - using the replica database in all the places where the operation doesn’t have to write to the database - dataloaders for `attributes` and `productVariants` queries ### Breaking changes - Remove the `anonymize` plugin. Use `saleor/core/utils/anonymization` code instead. - by @aniav - Require the `type` field on `PromotionCreateInput` - #16296 by @IKarbowiak ### Deprecated - Deprecate `EU` from `CountryCode` enum - #16300 by @IKarbowiak - `EU` is not a country code and might cause a misconfiguration - Deprecate the `taxTypes` query - #15802 by @maarcingebala ### GraphQL API - Add `translatableContent` to all translation types; add translated object id to all translatable content types - #15617 by @zedzior - Add the `Channel.taxConfiguration` field - #15610 by @Air-t - Add the `Warehouse.stocks` field - #15771 by @teddyondieki - Change permissions for `checkout` and `checkouts` queries. Add `HANDLE_PAYMENTS` to required permissions - #16010 by @Air-t - Change the `checkoutRemovePromoCode` mutation behavior to throw a `ValidationError` when the promo code is not detached from the checkout. - #16109 by @Air-t ### Other changes - Remove `prefetched_for_webhook` queryset for legacy payload generators - #15369 by @AjmalPonneth - Don't raise `InsufficientStock` for inventory tracking for variants is disabled - #15475 by @carlosa54 - DB performance improvements in attribute dataloaders - #15474 by @AjmalPonneth - Calculate order promotions in draft orders - #15459 by @zedzior - Prevent name overwriting of product variants when updating product types - #15670 by @teddyondieki - Added support for the `BrokerProperties` custom header to webhooks to support Azure Service Bus - #15899 by @patrys - Fixed a rare crash in the introspection query detection code - #15966 by @patrys - Added HTTP compression telemetry - #16125 by @patrys - Implement login throttling - #16219 by @zedzior - Introduce the `allow_writer` context manager to explicitly control when the writer database should be used - #15651 by @maarcingebala - Improve performance of the `productVariants` resolvers by using JOINs instead of subqueries - #16262 by @maarcingebala - Extend valid address values - #15877 by @zedzior