All Versions
63
Latest Version
Avg Release Cycle
15 days
Latest Release
-

Changelog History
Page 1

  • v3.6.0 Changes

    Saleor Apps

    • โž• Add support for the CUSTOMER_* app mount points (#10163) by @krzysztofwolski
    • Add permission group webhooks: PERMISSION_GROUP_CREATED, PERMISSION_GROUP_UPDATED, PERMISSION_GROUP_DELETED - #10214 by @SzymJ

    ๐Ÿ’ฅ Breaking changes

    • โฌ‡๏ธ Drop django-versatileimagefield package; add a proxy view to generate thumbnails on-demand - #9988 by @IKarbowiak
      • Drop create_thumbnails command
    • โž• Add synchronous tax calculation via webhooks - #9526 by @fowczarek, @mateuszgrzyb, @stnatic
      • Change return type from CheckoutTaxedPricesData to TaxedMoney in plugin manager methods:
      • calculate_checkout_line_total
      • calculate_checkout_line_unit_price

    Other changes

    • โž• Add VoucherFilter.ids filter - #10157 by @Jakubkuc
    • ๐Ÿ‘ Allow values of different attributes to share the same slug - #10138 by @IKarbowiak
    • โž• Add query for transaction item and extend transaction item type with order - #10154 by @IKarbowiak
    • ๐Ÿ›  Fix inconsistent beat scheduling and compatibility with db scheduler - #10185 by @NyanKiyoshi This fixes the following bugs:
      • tick() could decide to never schedule anything else than send-sale-toggle-notifications if send-sale-toggle-notifications doesn't return is_due = False (stuck forever until beat restart or a is_due = True)
      • tick() was sometimes scheduling other schedulers such as observability to be ran every 5m instead of every 20s
      • is_due() from send-sale-toggle-notifications was being invoked every 5s on django-celery-beat instead of every 60s
      • send-sale-toggle-notifications would crash on django-celery-beat with Cannot convert schedule type <saleor.core.schedules.sale_webhook_schedule object at 0x7fabfdaacb20> to model

    Usage:

    • Database backend: celery --app saleor.celeryconf:app beat --scheduler saleor.schedulers.schedulers.DatabaseScheduler
    • Shelve backend: celery --app saleor.celeryconf:app beat --scheduler saleor.schedulers.schedulers.PersistentScheduler
      • ๐Ÿ›  Fix problem with updating draft order with active avalara - #10183 by @IKarbowiak
      • ๐Ÿ›  Fix stock validation and allocation for order with local collection point - #10218 by @IKarbowiak
      • ๐Ÿ›  Fix stock allocation for order with global collection point - #10225 by @IKarbowiak
      • โž• Add synchronous tax calculation via webhooks - #9526 by @fowczarek, @mateuszgrzyb, @stnatic
    • Add option to calculate taxes via webhooks more info in docs <!-- We should put docs link here before release -->
      • โž• Add forceNewLine flag to lines input in CheckoutLinesAdd, CheckoutCreate, DraftOrderCreate, OrderCreate, OrderLinesCreate mutations to support same variant in multiple lines - #10095 by @SzymJ

    GraphQL API

    • โž• Add synchronous tax calculation via webhooks - #9526 by @fowczarek, @mateuszgrzyb, @stnatic
      • Add CHECKOUT_CALCULATE_TAXES and ORDER_CALCULATE_TAXES to WebhookEventTypeSyncEnum
    • โž• Add descriptions for some filters - #10240 by @dekoza

    ๐Ÿ”Œ Plugins

    • โž• Add synchronous tax calculation via webhooks - #9526 by @fowczarek, @mateuszgrzyb, @stnatic
      • Add new method to plugin manager:
      • get_taxes_for_checkout
      • get_taxes_for_order
  • v3.5.4 Changes

    • ๐Ÿ›  Fix ORM crash when generating hundreds of search vector in SQL - #10261 by @NyanKiyoshi
    • ๐Ÿ›  Fix "stack depth limit exceeded" crash when generating thousands of search vector in SQL - #10279 by @NyanKiyoshi
  • v3.5.3 Changes

    • ๐Ÿ‘‰ Use custom search vector in order search - #10247 by @fowczarek
    • โšก๏ธ Optimize filtering attributes by dates - #10199 by @tomaszszymanski129
  • v3.5.2 Changes

    • ๐Ÿ›  Fix stock allocation for order with global collection point - #10225 by @IKarbowiak
    • ๐Ÿ›  Fix stock validation and allocation for order with local collection point - #10218 @IKarbowiak
    • ๐Ÿ›  Fix returning GraphQL IDs in the SALE_TOGGLE webhook - #10227 by @IKarbowiak
  • v3.5.1 Changes

    • ๐Ÿ›  Fix inconsistent beat scheduling and compatibility with db scheduler - #10185 by @NyanKiyoshi This fixes the following bugs:
      • tick() could decide to never schedule anything else than send-sale-toggle-notifications if send-sale-toggle-notifications doesn't return is_due = False (stuck forever until beat restart or a is_due = True)
      • tick() was sometimes scheduling other schedulers such as observability to be ran every 5m instead of every 20s
      • is_due() from send-sale-toggle-notifications was being invoked every 5s on django-celery-beat instead of every 60s
      • send-sale-toggle-notifications would crash on django-celery-beat with Cannot convert schedule type <saleor.core.schedules.sale_webhook_schedule object at 0x7fabfdaacb20> to model

    Usage:

    • Database backend: celery --app saleor.celeryconf:app beat --scheduler saleor.schedulers.schedulers.DatabaseScheduler
    • Shelve backend: celery --app saleor.celeryconf:app beat --scheduler saleor.schedulers.schedulers.PersistentScheduler
      • ๐Ÿ›  Fix problem with updating draft order with active avalara - #10183 by @IKarbowiak
      • ๐Ÿ›  Fix stock validation and allocation for order with local collection point - #10218 by @IKarbowiak
      • ๐Ÿ›  Fix stock allocation for order with global collection point - #10225 by @IKarbowiak
  • v3.5.0 Changes

    GraphQL API

    • ๐Ÿ‘ Allow skipping address validation for checkout mutations (#10084) (7de33b145)
    • โž• Add OrderFilter.numbers filter - #9967 by @SzymJ
    • ๐Ÿ”ฆ Expose manifest in the App type (#10055) (f0f944066)
    • ๐Ÿ”ง Deprecate configurationUrl and dataPrivacy fields in apps (#10046) (68bd7c8a2)
    • ๐Ÿ›  Fix ProductVariant.created resolver (#10072) (6c77053a9)

    Saleor Apps

    • Add webhooks PAGE_TYPE_CREATED, PAGE_TYPE_UPDATED and PAGE_TYPE_DELETED - #9859 by @SzymJ
    • Add webhooks ADDRESS_CREATED, ADDRESS_UPDATED and ADDRESS_DELETED - #9860 by @SzymJ
    • Add webhooks STAFF_CREATED, STAFF_UPDATED and STAFF_DELETED - #9949 by @SzymJ
    • Add webhooks ATTRIBUTE_CREATED, ATTRIBUTE_UPDATED and ATTRIBUTE_DELETED - #9991 by @SzymJ
    • Add webhooks ATTRIBUTE_VALUE_CREATED, ATTRIBUTE_VALUE_UPDATED and ATTRIBUTE_VALUE_DELETED - #10035 by @SzymJ
    • โž• Add webhook CUSTOMER_DELETED - #10060 by @SzymJ
    • โž• Add webhook for starting and ending sales - #10110 by @IKarbowiak
    • ๐Ÿ›  Fix returning errors in subscription webhooks payloads - #9905 by @SzymJ
    • ๐Ÿ— Build JWT signature when secret key is an empty string (#10139) (c47de896c)
    • ๐Ÿ‘‰ Use JWS to sign webhooks with secretKey instead of obscure signature (ac065cdce)
    • ๐Ÿ›ฐ Sign webhook payload using RS256 and private key used JWT infrastructure (#9977) (df7c7d4e8)
    • Unquote secret access when calling SQS (#10076) (3ac9714b5)

    ๐ŸŽ Performance

    • โž• Add payment transactions data loader (#9940) (799a9f1c9)
    • Optimize 0139_fulfil_orderline_token_old_id_created_at migration (#9935) (63073a86b)

    Other changes

    • Introduce plain text attribute - #9907 by @IKarbowiak
    • โž• Add metadata fields to OrderLine and CheckoutLine models - #10040 by @SzymJ
    • โž• Add full-text search for Orders (#9937) (61aa89f06)
    • 0๏ธโƒฃ Stop auto-assigning default addresses to checkout - #9933 by @SzymJ
    • ๐Ÿ›  Fix inaccurate tax calculations - #9799 by @IKarbowiak
    • ๐Ÿ›  Fix incorrect default value used in PaymentInput.storePaymentMethod - #9943 by @korycins
    • ๐Ÿ‘Œ Improve checkout total base calculations - #10048 by @IKarbowiak
    • ๐Ÿ‘Œ Improve click & collect and stock allocation - #10043 by @IKarbowiak
    • ๐Ÿ›  Fix product media reordering (#10118) (de8a1847f)
    • โž• Add custom SearchVector class (#10109) (bf74f5efb)
    • ๐Ÿ‘Œ Improve checkout total base calculations (527b67f9b)
    • ๐Ÿ›  Fix invoice download URL in send-invoice email (#10014) (667837a09)
    • ๐Ÿ›  Fix invalid undiscounted total on order line (22ccacb59)
    • ๐Ÿ›  Fix Avalara for free shipping (#9973) (90c076e33)
    • Fix Avalara when voucher with apply_once_per_order settings is used (#9959) (fad5cdf46)
    • โš  Use Saleor's custom UvicornWorker to avoid lifespan warnings (#9915) (9090814b9)
    • โž• Add Azure blob storage support (#9866) (ceee97e83)
  • v3.4.0 Changes

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ“‡ Hide private metadata in notification payloads - #9849 by @maarcingebala
      • From now on, the private_metadata field in NOTIFY_USER webhook payload is deprecated and it will return an empty dictionary. This change also affects AdminEmailPlugin, UserEmailPlugin, and SendgridEmailPlugin.

    Other changes

    GraphQL API

    • โž• Add new fields to Order type to show authorize/charge status #9795
      • Add new fields to Order type:
      • totalAuthorized
      • totalCharged
      • authorizeStatus
      • chargeStatus
      • Add filters to Order:
      • authorizeStatus
      • chargeStatus
    • โž• Add mutations for managing a payment transaction attached to order/checkout. - #9564 by @korycins
      • add fields:
      • order.transactions
      • checkout.transactions
      • add mutations:
      • transactionCreate
      • transactionUpdate
      • transactionRequestAction
      • add new webhook event:
      • TRANSACTION_ACTION_REQUEST
    • Unify checkout's ID fields. - #9862 by @korycins
      • Deprecate checkoutID and token in all Checkout's mutations. Use id instead.
      • Deprecate token in checkout query. Use id instead.
    • โž• Add unitPrice, undiscountedUnitPrice, undiscountedTotalPrice fields to CheckoutLine type - #9821 by @fowczarek
    • ๐Ÿ›  Fix invalid ADDED_PRODUCTS event parameter for OrderLinesCreate mutation - #9653 by @IKarbowiak
    • โšก๏ธ Update sorting field descriptions - add info where channel slug is required (#9695) (391743098)
    • ๐Ÿ›  Fix using enum values in permission descriptions (#9697) (dbb783e1f)
    • ๐Ÿ”„ Change gateway validation in checkoutPaymentCreate mutation (#9530) (cf1d49bdc)
    • ๐Ÿ›  Fix invalid ADDED_PRODUCTS event parameter for OrderLinesCreate mutation (#9653) (a0d8aa8f1)
    • ๐Ÿ›  Fix resolver for Product.created field (#9737) (0af00cb70)
    • ๐Ÿ‘ Allow fetching by id all order data for new orders (#9728) (71c19c951)
    • Provide a reference for the rich text format (#9744) (f2207c408)
    • ๐Ÿ‘Œ Improve event schema field descriptions - #9880 by @patrys

    Saleor Apps

    • Add menu webhooks: MENU_CREATED, MENU_UPDATED, MENU_DELETED, MENU_ITEM_CREATED, MENU_ITEM_UPDATED, MENU_ITEM_DELETED - #9651 by @SzymJ
    • Add voucher webhooks: VOUCHER_CREATED, VOUCHER_UPDATED, VOUCHER_DELETED - #9657 by @SzymJ
    • Add app webhooks: APP_INSTALLED, APP_UPDATED, APP_DELETED, APP_STATUS_CHANGED - #9698 by @SzymJ
    • Add warehouse webhoks: WAREHOUSE_CREATED, WAREHOUSE_UPDATED, WAREHOUSE_DELETED - #9746 by @SzymJ
    • ๐Ÿ”ฆ Expose order alongside fulfillment in fulfillment-based subscriptions used by webhooks (#9847)
    • ๐Ÿ›  Fix webhooks payload not having field for is_published (#9800) (723f93c50)
    • โž• Add support for ORDER_* mounting points for Apps (#9694) (cc728ef7e)
    • โž• Add missing shipping method data in order and checkout events payloads. (#9692) (dabd1a221)
    • ๐Ÿ›ฐ Use the human-readable order number in notification payloads (#9863) (f10c5fd5f)

    Models

    • Migrate order discount id from int to UUID - #9729 by @IKarbowiak
      • Changed the order discount id from int to UUID, the old ids still can be used for old order discounts.
    • Migrate order line id from int to UUID - #9637 by @IKarbowiak
      • Changed the order line id from int to UUID, the old ids still can be used for old order lines.
    • Migrate checkout line id from int to UUID - #9675 by @IKarbowiak
      • Changed the checkout line id from int to UUID, the old ids still can be used for old checkout lines.

    ๐ŸŽ Performance

    • Fix memory consumption of delete_event_payloads_task (#9806) (2823edc68)
    • โž• Add webhook events dataloader (#9790) (e88eef35e)
    • โž• Add dataloader for fulfillment warehouse resolver (#9740) (9d14fadb2)
    • ๐Ÿ›  Fix order type resolvers performance (#9723) (13b5a95e7)
    • ๐Ÿ‘Œ Improve warehouse filtering performance (#9622) (a1a7a223b)
    • โž• Add dataloader for fulfillment lines (#9707) (68fb4bf4a)

    Other

    • Observability reporter - #9803 by @przlada
    • โšก๏ธ Update sample products set - #9796 by @mirekm
    • ๐Ÿ›  Fix for sending incorrect prices to Avatax - #9633 by @korycins
    • ๐Ÿ›  Fix tax-included flag sending to Avatax - #9820
    • ๐Ÿ›  Fix AttributeError: 'Options' object has no attribute 'Model' in search_tasks.py - #9824
    • ๐Ÿ›  Fix Braintree merchant accounts mismatch error - #9778
    • Stricter signatures for resolvers and mutations - #9649
  • v3.3.1 Changes

    • โฌ‡๏ธ Drop manual calls to emit post_migrate in migrations (#9647) (b32308802)
    • ๐Ÿ›  Fix search indexing of empty variants (#9640) (31833a717)
  • v3.3.0 Changes

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ”‹ PREVIEW_FEATURE: replace error code NOT_FOUND with CHECKOUT_NOT_FOUND for mutation OrderCreateFromCheckout - #9569 by @korycins

    Other changes

    • ๐Ÿ›  Fix filtering product attributes by date range - #9543 by @IKarbowiak
    • ๐Ÿ›  Fix for raising Permission Denied when anonymous user calls checkout.customer field - #9573 by @korycins
    • ๐Ÿ‘‰ Use fulltext search for products (#9344) (4b6f25964) by @patrys
    • Precise timestamps for publication dates - #9581 by @IKarbowiak
      • Change publicationDate fields to publishedAt date time fields.
      • Types and inputs where publicationDate is deprecated and publishedAt field should be used instead:
        • Product
        • ProductChannelListing
        • CollectionChannelListing
        • Page
        • PublishableChannelListingInput
        • ProductChannelListingAddInput
        • PageCreateInput
        • PageInput
      • Change availableForPurchaseDate fields to availableForPurchaseAt date time field.
      • Deprecate Product.availableForPurchase field, the Product.availableForPurchaseAt should be used instead.
      • Deprecate ProductChannelListing.availableForPurchase field, the ProductChannelListing.availableForPurchaseAt should be used instead.
      • Deprecate publicationDate on CollectionInput and CollectionCreateInput.
      • Deprecate PUBLICATION_DATE in CollectionSortField, the PUBLISHED_AT should be used instead.
      • Deprecate PUBLICATION_DATE in PageSortField, the PUBLISHED_AT should be used instead.
      • Add a new column published at to export products. The new field should be used instead of publication_date.
    • โž• Add an alternative API for fetching metadata - #9231 by @patrys
    • ๐Ÿ†• New webhook events related to gift card changes (#9588) (52adcd10d) by @SzymJ
    • ๐Ÿ†• New webhook events for changes related to channels (#9570) (e5d78c63e) by @SzymJ
    • Tighten the schema types for output fields (#9605) (81418cb4c) by @patrys
    • Include permissions in schema descriptions of protected fields (#9428) (f0a988e79) by @maarcingebala
    • โšก๏ธ Update address database (#9585) (1f5e84e4a) by @patrys
    • ๐Ÿ– Handle pagination with invalid cursor that is valid base64 (#9521) (3c12a1e95) by @jakubkuc
    • ๐Ÿ– Handle all Braintree errors (#9503) (20f21c34a) by @L3str4nge
    • ๐Ÿ›  Fix recalculate_order dismissing weight unit (#9527) (9aea31774)
    • ๐Ÿ›  Fix filtering product attributes by date range - #9543 by @IKarbowiak
    • ๐Ÿ›  Fix for raising Permission Denied when anonymous user calls checkout.customer field - #9573 by @korycins
    • ๐ŸŽ Optimize stock warehouse resolver performance (955489bff) by @tomaszszymanski129
    • ๐Ÿ‘Œ Improve shipping zone filters performance (#9540) (7841ec536) by @tomaszszymanski129
  • v3.2.0 Changes

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ›ฐ Convert IDs from DB to GraphQL format in all notification payloads (email plugins and the NOTIFY webhook)- #9388 by @L3str4nge
    • Migrate order id from int to UUID - #9324 by @IKarbowiak
      • Changed the order id changed from int to UUID, the old ids still can be used for old orders.
      • Deprecated the order.token field, the order.id should be used instead.
      • Deprecated the token field in order payload, the id field should be used instead.
    • 0๏ธโƒฃ Enable JWT expiration by default - #9483 by @maarcingebala

    Other changes

    Saleor Apps

    • Introduce custom prices - #9393 by @IKarbowiak
      • Add HANDLE_CHECKOUTS permission (only for apps)
    • โž• Add subscription webhooks (#9394) @jakubkuc
    • โž• Add language_code field to webhook payload for Order, Checkout and Customer - #9433 by @rafalp
    • ๐Ÿ”จ Refactor app tokens - #9438 by @IKarbowiak
      • Store app tokens hashes instead of plain text.
    • โž• Add category webhook events - #9490 by @SzymJ
    • ๐Ÿ›  Fix access to own resources by App - #9425 by @korycins
    • โž• Add handle_checkouts permission - #9402 by @korycins
    • ๐Ÿ›ฐ Return user_email or order user's email in order payload user_email field (#9419) (c2d248655)
    • Mutation CategoryBulkDelete now trigger category_delete event - #9533 by @SzymJ
    • Add webhooks SHIPPING_PRICE_CREATED, SHIPPING_PRICE_UPDATED, SHIPPING_PRICE_DELETED, SHIPPING_ZONE_CREATED, SHIPPING_ZONE_UPDATED, SHIPPING_ZONE_DELETED - #9522 by @SzymJ

    ๐Ÿ”Œ Plugins

    • โž• Add OpenID Connect Plugin - #9406 by @korycins
    • ๐Ÿ‘ Allow plugins to create their custom error code - #9300 by @LeOndaz

    Other

    • ๐Ÿ‘‰ Use full-text search for products search API - #9344 by @patrys

    • Include required permission in mutations' descriptions - #9363 by @maarcingebala

    • ๐Ÿ‘‰ Make GraphQL list items non-nullable - #9391 by @maarcingebala

    • ๐Ÿ–จ Port a better schema printer from GraphQL Core 3.x - #9389 by @patrys

    • ๐Ÿ›  Fix failing checkoutCustomerAttach mutation - #9401 by @IKarbowiak

    • โž• Add new mutation orderCreateFromCheckout - #9343 by @korycins

    • Assign missing user to context - #9520 by @korycins

    • โž• Add default ordering to order discounts - #9517 by @fowczarek

    • Raise formatted error when trying to assign assigned media to variant - #9496 by @L3str4nge

    • โšก๏ธ Update orderNumber field in OrderEvent type - #9447 by @IKarbowiak

    • Do not create AttributeValues when values are not provided - #9446 @IKarbowiak

    • โž• Add response status code to event delivery attempt - #9456 by @przlada

    • Don't rely on counting objects when reindexing - #9442 by @patrys

    • ๐Ÿ‘ Allow filtering attribute values by ids - #9399 by @IKarbowiak

    • ๐Ÿ›  Fix errors handling for orderFulfillApprove mutation - #9491 by @SzymJ

    • ๐Ÿ›  Fix shipping methods caching - #9472 by @tomaszszymanski129

    • ๐Ÿ›  Fix payment flow - #9504 by @IKarbowiak

    • ๐Ÿ›  Fix etting external methods did not throw an error when that method didn't exist - #9498 by @SethThoburn

    • โฌ‡๏ธ Reduce placeholder image size - #9484 by @jbergstroem

    • ๐Ÿ‘Œ Improve menus filtering performance - #9539 by @tomaszszymanski129

    • โœ‚ Remove EventDeliveries without webhooks and make webhook field non-nullable - #9507 by @jakubkuc

    • ๐Ÿ‘Œ Improve discount filters performance - #9541 by @tomaszszymanski129

    • ๐Ÿ”„ Change webhooks to be called on commit in atomic transactions - #9532 by @jakubkuc

    • โฌ‡๏ธ Drop distinct and icontains in favor of ilike in apps filtering - #9534 by @tomaszszymanski129

    • ๐ŸŽ Refactor csv filters to improve performance - #9535 by @tomaszszymanski129

    • ๐Ÿ‘Œ Improve attributes filters performance - #9542 by @tomaszszymanski129

    • ๐Ÿ“‡ Rename models fields from created to created_at - #9537 by @IKarbowiak