Skip to main content

Upgrading From 3.20 To 3.21

info

To follow the zero-downtime strategy when upgrading to 3.21, It is recommended to first migrate to latest 3.20.X and turn on the Celery worker to process all data migrations asynchronously. Otherwise, you will need to downtime your solution to ensure correct data migration.

Deprecated manager.perform_mutation method

Note: This change only affects open-source Saleor users with custom plugins overriding the perform_mutation plugin method.

As part of gradual plugin deprecation, Saleor 3.20 deprecates the perform_mutation plugin hook. This method allowed to customize the mutation execution flow and call arbitrary logic during mutation execution. From now on, we recommend building such customizations via apps by reacting to webhooks triggered by mutations. The perform_mutation plugin method will be removed in Saleor 3.21.

Note: This change only affects open-source Saleor users with custom plugins that override webhook-related plugin hooks (see the list below).

The WebhookPlugin is deprecated in Saleor 3.20 and will be removed in Saleor 3.21, as all webhook-related functionality will be moved from plugin to core modules. Rationale behind this change is that webhooks are essential part of Saleor and should be available out of the box, without the need for additional plugins. As a result, multiple plugin manager hooks will be deprecated, as they are only used by the WebhookPlugin.

If you have custom plugins that override any of the following plugin hooks, you should migrate your custom logic to Saleor App that listens to webhooks.

The list of deprecated plugin hooks is as follows:

  • account_change_email_requested
  • account_confirmation_requested
  • account_confirmed
  • account_delete_requested
  • account_deleted
  • account_email_changed
  • account_set_password_requested
  • address_created
  • address_deleted
  • address_updated
  • app_deleted
  • app_installed
  • app_status_changed
  • app_updated
  • attribute_created
  • attribute_deleted
  • attribute_updated
  • attribute_value_created
  • attribute_value_deleted
  • attribute_value_updated
  • category_created
  • category_deleted
  • category_updated
  • channel_created
  • channel_deleted
  • channel_metadata_updated
  • channel_status_changed
  • channel_updated
  • checkout_created
  • checkout_fully_paid
  • checkout_metadata_updated
  • checkout_updated
  • collection_created
  • collection_deleted
  • collection_metadata_updated
  • collection_updated
  • customer_created
  • customer_deleted
  • customer_metadata_updated
  • customer_updated
  • draft_order_created
  • draft_order_deleted
  • draft_order_updated
  • event_delivery_retry
  • fulfillment_approved
  • fulfillment_canceled
  • fulfillment_created
  • fulfillment_metadata_updated
  • get_shipping_methods_for_checkout
  • get_taxes_for_checkout
  • get_taxes_for_order
  • gift_card_created
  • gift_card_deleted
  • gift_card_export_completed
  • gift_card_metadata_updated
  • gift_card_status_changed
  • gift_card_updated
  • invoice_delete
  • invoice_sent
  • list_stored_payment_methods
  • menu_created
  • menu_deleted
  • menu_item_created
  • menu_item_deleted
  • menu_item_updated
  • menu_updated
  • order_bulk_created
  • order_cancelled
  • order_created
  • order_expired
  • order_fulfilled
  • order_fully_paid
  • order_fully_refunded
  • order_metadata_updated
  • order_paid
  • order_refunded
  • order_updated
  • page_created
  • page_deleted
  • page_type_created
  • page_type_deleted
  • page_type_updated
  • page_updated
  • payment_gateway_initialize_session
  • payment_gateway_initialize_tokenization
  • payment_method_initialize_tokenization
  • payment_method_process_tokenization
  • permission_group_created
  • permission_group_deleted
  • permission_group_updated
  • product_created
  • product_deleted
  • product_export_completed
  • product_media_created
  • product_media_deleted
  • product_media_updated
  • product_metadata_updated
  • product_updated
  • product_variant_back_in_stock
  • product_variant_created
  • product_variant_deleted
  • product_variant_metadata_updated
  • product_variant_out_of_stock
  • product_variant_stock_updated
  • product_variant_updated
  • promotion_created
  • promotion_deleted
  • promotion_ended
  • promotion_rule_created
  • promotion_rule_deleted
  • promotion_rule_updated
  • promotion_started
  • promotion_updated
  • sale_created
  • sale_deleted
  • sale_updated
  • shipping_price_created
  • shipping_price_deleted
  • shipping_price_updated
  • shipping_zone_created
  • shipping_zone_deleted
  • shipping_zone_metadata_updated
  • shipping_zone_updated
  • shop_metadata_updated
  • staff_created
  • staff_deleted
  • staff_set_password_requested
  • staff_updated
  • stored_payment_method_request_delete
  • thumbnail_created
  • transaction_cancelation_requested
  • transaction_charge_requested
  • transaction_initialize_session
  • transaction_item_metadata_updated
  • transaction_process_session
  • transaction_refund_requested
  • voucher_code_export_completed
  • voucher_codes_created
  • voucher_codes_deleted
  • voucher_created
  • voucher_deleted
  • voucher_metadata_updated
  • voucher_updated
  • warehouse_created
  • warehouse_deleted
  • warehouse_metadata_updated
  • warehouse_updated