Saleor 3.13.0stable Released Apr 14, 2023
โš ๏ธ Breaking Change Impact Score: 7/10

Saleor 3.13.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-02.

Breaking-change evidence from the source

  • Breaking changes - **Feature preview breaking change**:
  • - **Feature preview breaking change**: - Improve support for handling transactions - #10350 by @korycins
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Saleor 3.13.0. Source highlight: Welcome to the 3.13 release of Saleor!

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 (2)

  • Breaking changes - **Feature preview breaking change**:
  • - **Feature preview breaking change**: - Improve support for handling transactions - #10350 by @korycins

โœจ New Features & Capabilities (6)

  • `orderGrantRefundCreate` - Add granted refund to the order.
  • Add new webhook subscriptions:
  • Add new input fields:
  • `voidedAmount` - Use `canceledAmount`. This field will be removed in Saleor 3.14 (Preview feature).
  • `status` - Not needed anymore. The transaction amounts will be used to determine a current status of transactions. This field will be removed in Saleor 3.14 (Preview feature).
  • `reference` - Use `pspReference` instead. This field will be removed in Saleor 3.14 (Preview feature).

โšก Performance & Enhancements (3)

  • Improve support for handling transactions - #10350
  • Improve support for handling transactions - #10350
  • For all new `transactionItem` created by `transactionCreate`, any update action can be done only by the same app/user that performed `transactionCreate` action. This change impacts only on new `transactionItem,` the already existing will work in the same way as previously.

๐Ÿ”ง Bug Fixes & Patches (1)

  • Fix missing webhook triggers for `order_updated` and `order_fully_paid` when an order is paid with a `transactionItem` - #12508
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
Welcome to the 3.13 release of Saleor! ### Highlights - Improve support for handling transactions - #10350 by @korycins - API changes: - Add new mutations: - `transactionEventReport` - Report the event for the transaction. - `orderGrantRefundCreate` - Add granted refund to the order. - `orderGrantRefundUpdate` - Update granted refund. - Add new types: - `OrderGrantedRefund` - The details of the granted refund. - Add new webhooks: - `TRANSACTION_CHARGE_REQUESTED` - triggered when a staff user request charge for the transaction. - `TRANSACTION_REFUND_REQUESTED` - triggered when a staff user request refund for the transaction. - `TRANSACTION_CANCELATION_REQUESTED` - triggered when a staff user request cancelation for the transaction. - Add new webhook subscriptions: - `TransactionChargeRequested` - Event sent when transaction charge is requested. - `TransactionRefundRequested` - Event sent when transaction refund is requested. - `TransactionCancelationRequested` - Event sent when transaction cancelation is requested. - Add new fields: - `OrderSettings.markAsPaidStrategy` - Determine what strategy will be used to mark the order as paid. - `TransactionItem`: - `authorizePendingAmount` - Total amount of ongoing authorization requests for the transaction. - `refundPendingAmount` - Total amount of ongoing refund requests for the transaction. - `cancelPendingAmount` - Total amount of ongoing cancel requests for the transaction. - `chargePendingAmount` - Total amount of ongoing charge requests for the transaction. - `canceledAmount` - Total amount canceled for this transaction. - `name` - Name of the transaction. - `message` - Message related to the transaction. - `pspReference` - PSP reference of transaction. - `createdBy` - User or App that created the transaction. - `externalUrl` - The URL that will allow to redirect user to payment provider page with transaction details. - `TransactionEvent`: - `pspReference` - PSP reference related to the event. - `message` - Message related to the transaction's event. - `externalUrl` - The URL that will allow to redirect user to payment provider page with transaction event details. - `amount` - The amount related to this event. - `type` - The type of action related to this event. - `createdBy` - User or App that created the event. - `Order`: - `totalCharged` - Amount charged for the order. - `totalCanceled` - Amount canceled for the order. - `grantedRefunds` - List of granted refunds. - `totalGrantedRefund` - Total amount of granted refund. - `totalRefunded` - Total refund amount for the order. - `totalRefundPending` - Total amount of ongoing refund requests for the order's transactions. - `totalAuthorizePending` - Total amount of ongoing authorization requests for the order's transactions. - `totalChargePending` - Total amount of ongoing charge requests for the order's transactions. - `totalCancelPending` - Total amount of ongoing cancel requests for the order's transactions. - `totalRemainingGrant` - The difference between the granted refund and the pending and refunded amounts. - `OrderEventsEnum`: - `TRANSACTION_CHARGE_REQUESTED` - `TRANSACTION_CANCEL_REQUESTED` - `TRANSACTION_MARK_AS_PAID_FAILED` - Add new input fields: - `TransactionCreateInput` & `TransactionUpdateInput`: - `name` - The name of the transaction. - `message` - The message of the transaction. - `pspReference` - The PSP Reference of the transaction. - `amountCanceled` - Amount canceled by this transaction. - `externalUrl` - The URL that will allow to redirect user to payment provider page with transaction. - `TransactionEventInput`: - `pspReference` - The PSP Reference of the transaction. - `message` - Message related to the transaction's event. - Deprecate webhooks: - `TRANSACTION_ACTION_REQUEST` - Use `TRANSACTION_CHARGE_REQUESTED`, `TRANSACTION_REFUND_REQUESTED`, `TRANSACTION_CANCELATION_REQUESTED` instead. - Deprecate object fields: - `TransactionItem`: - `voidedAmount` - Use `canceledAmount`. This field will be removed in Saleor 3.14 (Preview feature). - `status` - Not needed anymore. The transaction amounts will be used to determine a current status of transactions. This field will be removed in Saleor 3.14 (Preview feature). - `reference` - Use `pspReference` instead. This field will be removed in Saleor 3.14 (Preview feature). - `TransactionEvent`: - `status` - Use `type` instead. This field will be removed in Saleor 3.14 (Preview feature). - `reference` - Use `pspReference` instead. This field will be removed in Saleor 3.14 (Preview feature). - `name` - Use `message` instead. This field will be removed in Saleor 3.14 (Preview feature). - `TransactionActionEnum` - `VOID` - Use `CANCEL` instead. This field will be removed in Saleor 3.14 (Preview feature). - `Order`: - `totalCaptured` - Use `totalCharged` instead. Will be removed in Saleor 4.0 - `OrderEvent`: - `status` - Use `TransactionEvent` to track the status of `TransactionItem`. This field will be removed in Saleor 3.14 (Preview feature). - `OrderEventsEnum`: - `TRANSACTION_CAPTURE_REQUESTED` - Use `TRANSACTION_CHARGE_REQUESTED` instead. This field will be removed in Saleor 3.14 (Preview feature). - `TRANSACTION_VOID_REQUESTED` - Use `TRANSACTION_CANCEL_REQUESTED` instead. This field will be removed in Saleor 3.14 (Preview feature). - Deprecate input fields: - `TransactionCreateInput` & `TransactionUpdateInput`: - `status` - Not needed anymore. The transaction amounts will be used to determine the current status of transactions. This input field will be removed in Saleor 3.14 (Preview feature). - `type` - Use `name` and `message` instead. This input field will be removed in Saleor 3.14 (Preview feature). - `reference` - Use `pspReference` instead. This input field will be removed in Saleor 3.14 (Preview feature). - `amountVoided` - Use `amountCanceled` instead. This input field will be removed in Saleor 3.14 (Preview feature). - `TransactionEventInput`: - `status` - Status will be calculated by Saleor. This input field will be removed in Saleor 3.14 (Preview feature). - `reference` - Use `pspReference` instead. This input field will be removed in Saleor 3.14 (Preview feature). - `name` - Use `message` instead. This field will be removed in Saleor 3.14 (Preview feature). - Support for payment apps - #12179 by @korycins - Add new mutations: - `paymentGatewayInitialize` - Initialize the payment gateway to process a payment. - `transactionInitialize` - Initiate payment processing. - `transactionProcess` - Process the initialized payment. - Add new synchronous webhooks: - `PAYMENT_GATEWAY_INITIALIZE_SESSION` - Triggered when a customer requests the initialization of a payment gateway. - `TRANSACTION_INITIALIZE_SESSION` - Triggered when a customer requests the initialization of a payment processing. - `TRANSACTION_PROCESS_SESSION` - Triggered when a customer requests processing the initialized payment. ### Breaking changes - **Feature preview breaking change**: - Improve support for handling transactions - #10350 by @korycins - For all new `transactionItem` created by `transactionCreate`, any update action can be done only by the same app/user that performed `transactionCreate` action. This change impacts only on new `transactionItem,` the already existing will work in the same way as previously. - `transactionRequestAction` mutation can't be executed with `MANAGE_ORDERS` permission. Permission `HANDLE_PAYMENTS` is required. - Drop calling `TRANSACTION_ACTION_REQUEST` webhook inside a mutation related to `Payment` types. The related mutations: `orderVoid`, `orderCapture`, `orderRefund`, `orderFulfillmentRefundProducts`, `orderFulfillmentReturnProducts`. Use a dedicated mutation for triggering an action: `transactionRequestAction`. See the [3.12 to 3.13](https://docs.saleor.io/docs/3.x/upgrade-guides/3-12-to-3-13) upgrade guide for more details. ### GraphQL API - [Preview] Add `StockBulkUpdate` mutation - #12139 by @SzymJ - [Preview] Add `ProductBulkCreate` mutation - #12177 by @SzymJ - [Preview] Add `CustomerBulkUpdate` mutation - #12268 by @SzymJ - Upgrade GraphiQL to `2.4.0` for playground - #12271 by @zaiste - Add new object type `AppManifestRequiredSaleorVersion` - #12164 by @przlada - Add new optional field `Manifest.requiredSaleorVersion` - Add `requiredSaleorVersion` validation to `appInstall` and `appFetchManifest` mutations - Add new field `author` to `Manifest` and `App` object types - #12166 by @przlada - Add backward compatibility for `taxCode` field - #12325 by @maarcingebala - Support resolving `Order` as an entity in Apollo Federation - #12328 by @binary-koan ### Saleor Apps - Add `requiredSaleorVersion` field to the App manifest determining the required Saleor version as semver range - #12164 by @przlada - Add new field `author` to the App manifest - #12166 by @przlada - Add `GIFT_CARD_SENT` asynchronous event to webhooks - #12472 by @rafalp ### Other changes - Add Celery beat task for expiring unconfirmed not paid orders - #11960 by @kadewu: - Add `expireOrdersAfter` to `orderSettings` for `Channel` type. - Add `ORDER_EXPIRED` webhook triggered when `Order` is marked as expired. - Create order discounts for all voucher types - #12272 by @IKarbowiak - Core now supports Dev Containers for local development - #12391 by @patrys - Publish schema.graphql on releases - #12431 by @maarcingebala - Fix missing webhook triggers for `order_updated` and `order_fully_paid` when an order is paid with a `transactionItem` - #12508 by @korycins - Remove Mailhog in favor of Mailpit; add it to Dev Container - #12402 by @carlosa54