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
- Drop
- โ Add synchronous tax calculation via webhooks - #9526 by @fowczarek, @mateuszgrzyb, @stnatic
- Change return type from
CheckoutTaxedPricesData
toTaxedMoney
in plugin manager methods: calculate_checkout_line_total
calculate_checkout_line_unit_price
- Change return type from
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 thansend-sale-toggle-notifications
ifsend-sale-toggle-notifications
doesn't returnis_due = False
(stuck forever until beat restart or ais_due = True
)tick()
was sometimes scheduling other schedulers such as observability to be ran every 5m instead of every 20sis_due()
fromsend-sale-toggle-notifications
was being invoked every 5s on django-celery-beat instead of every 60ssend-sale-toggle-notifications
would crash on django-celery-beat withCannot 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 inCheckoutLinesAdd
,CheckoutCreate
,DraftOrderCreate
,OrderCreate
,OrderLinesCreate
mutations to support same variant in multiple lines - #10095 by @SzymJ
- โ Add
GraphQL API
- โ Add synchronous tax calculation via webhooks - #9526 by @fowczarek, @mateuszgrzyb, @stnatic
- Add
CHECKOUT_CALCULATE_TAXES
andORDER_CALCULATE_TAXES
toWebhookEventTypeSyncEnum
- Add
- โ 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 thansend-sale-toggle-notifications
ifsend-sale-toggle-notifications
doesn't returnis_due = False
(stuck forever until beat restart or ais_due = True
)tick()
was sometimes scheduling other schedulers such as observability to be ran every 5m instead of every 20sis_due()
fromsend-sale-toggle-notifications
was being invoked every 5s on django-celery-beat instead of every 60ssend-sale-toggle-notifications
would crash on django-celery-beat withCannot 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
- ๐ Fix inconsistent beat scheduling and compatibility with db scheduler - #10185 by @NyanKiyoshi
This fixes the following bugs:
-
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
anddataPrivacy
fields in apps (#10046) (68bd7c8a2) - ๐ Fix
ProductVariant.created
resolver (#10072) (6c77053a9)
Saleor Apps
- Add webhooks
PAGE_TYPE_CREATED
,PAGE_TYPE_UPDATED
andPAGE_TYPE_DELETED
- #9859 by @SzymJ - Add webhooks
ADDRESS_CREATED
,ADDRESS_UPDATED
andADDRESS_DELETED
- #9860 by @SzymJ - Add webhooks
STAFF_CREATED
,STAFF_UPDATED
andSTAFF_DELETED
- #9949 by @SzymJ - Add webhooks
ATTRIBUTE_CREATED
,ATTRIBUTE_UPDATED
andATTRIBUTE_DELETED
- #9991 by @SzymJ - Add webhooks
ATTRIBUTE_VALUE_CREATED
,ATTRIBUTE_VALUE_UPDATED
andATTRIBUTE_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 toOrderLine
andCheckoutLine
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 inNOTIFY_USER
webhook payload is deprecated and it will return an empty dictionary. This change also affectsAdminEmailPlugin
,UserEmailPlugin
, andSendgridEmailPlugin
.
- From now on, the
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
andtoken
in all Checkout's mutations. Useid
instead. - Deprecate
token
incheckout
query. Useid
instead.
- Deprecate
- โ Add
unitPrice
,undiscountedUnitPrice
,undiscountedTotalPrice
fields toCheckoutLine
type - #9821 by @fowczarek - ๐ Fix invalid
ADDED_PRODUCTS
event parameter forOrderLinesCreate
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 forOrderLinesCreate
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
fromint
toUUID
, the old ids still can be used for old order discounts.
- Changed the order discount
- Migrate order line id from int to UUID - #9637 by @IKarbowiak
- Changed the order line
id
fromint
toUUID
, the old ids still can be used for old order lines.
- Changed the order line
- Migrate checkout line id from int to UUID - #9675 by @IKarbowiak
- Changed the checkout line
id
fromint
toUUID
, the old ids still can be used for old checkout lines.
- Changed the checkout line
๐ 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
- ๐ Hide private metadata in notification payloads - #9849 by @maarcingebala
-
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
withCHECKOUT_NOT_FOUND
for mutationOrderCreateFromCheckout
- #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 topublishedAt
date time fields. - Types and inputs where
publicationDate
is deprecated andpublishedAt
field should be used instead:Product
ProductChannelListing
CollectionChannelListing
Page
PublishableChannelListingInput
ProductChannelListingAddInput
PageCreateInput
PageInput
- Change
availableForPurchaseDate
fields toavailableForPurchaseAt
date time field. - Deprecate
Product.availableForPurchase
field, theProduct.availableForPurchaseAt
should be used instead. - Deprecate
ProductChannelListing.availableForPurchase
field, theProductChannelListing.availableForPurchaseAt
should be used instead. - Deprecate
publicationDate
onCollectionInput
andCollectionCreateInput
. - Deprecate
PUBLICATION_DATE
inCollectionSortField
, thePUBLISHED_AT
should be used instead. - Deprecate
PUBLICATION_DATE
inPageSortField
, thePUBLISHED_AT
should be used instead. - Add a new column
published at
to export products. The new field should be used instead ofpublication_date
.
- Change
- โ 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
- ๐ PREVIEW_FEATURE: replace error code
-
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 fromint
toUUID
, the old ids still can be used for old orders. - Deprecated the
order.token
field, theorder.id
should be used instead. - Deprecated the
token
field in order payload, theid
field should be used instead.
- Changed the order
- 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
- โ Add subscription webhooks (#9394) @jakubkuc
- โ Add
language_code
field to webhook payload forOrder
,Checkout
andCustomer
- #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 payloaduser_email
field (#9419) (c2d248655) - Mutation
CategoryBulkDelete
now triggercategory_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 @korycinsAssign 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 inOrderEvent
type - #9447 by @IKarbowiakDo 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
- ๐ฐ Convert IDs from DB to GraphQL format in all notification payloads (email plugins and the