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

Changelog History
Page 3

  • v3.1.3 Changes

    • โž• Add command to update search indexes (#9315) (6be8461c0)
    • ๐Ÿ›  Fix countries resolver performance (#9318) (e177f3957)
  • v3.1.2 Changes

    ๐Ÿ’ฅ Breaking changes

    • Require MANAGE_ORDERS permission in User.orders query (#9128) (521dfd639)
      • only staff with manage orders and can fetch customer orders
      • the customer can fetch his own orders, except drafts

    Other changes

    • ๐Ÿ›  Fix failing on_failure export tasks method (#9160) (efab6db9d)
    • ๐Ÿ›  Fix mutations breaks on partially invalid IDs (#9227) (e3b6df2eb)
    • ๐Ÿ›  Fix voucher migrations (#9249) (3c565ba0c)
    • List the missing permissions where possible (#9250) (f8df1aa0d)
    • Invalidate stocks dataloader (#9188) (e2366a5e6)
    • Override graphene.JSONString to have more meaningful message in error message (#9171) (2a0c5a71a)
    • ๐Ÿ›  Small schema fixes (#9224) (932e64808)
    • ๐Ÿ‘Œ Support Braintree subaccounts (#9191) (035bf705c)
    • Split checkout mutations into separate files (#9266) (1d37b0aa3)
  • v3.1.1 Changes

    • โฌ‡๏ธ Drop product channel listings when removing last available variant (#9232) (b92d3b686)
    • ๐Ÿ– Handle product media deletion in a Celery task (#9187) (2b10fc236)
    • Filter Customer/Order/Sale/Product/ProductVariant by datetime of last modification (#9137) (55a845c7b)
    • โž• Add support for hiding plugins (#9219) (bc9405307)
    • ๐Ÿ›  Fix missing update of payment methods when using stored payment method (#9158) (ee4bf520b)
    • ๐Ÿ›  Fix invalid paths in VCR cassettes (#9236) (f6c268d2e)
    • ๐Ÿ›  Fix Razorpay comment to be inline with code (#9238) (de417af24)
    • โœ‚ Remove graphene-federation dependency (#9184) (dd43364f7)
  • v3.1.0 Changes

    ๐Ÿ’ฅ Breaking

    • โœ‚ Remove graphene-django dependency - #9170 by @rafalp
    • ๐Ÿ”Œ Don't run plugins when calculating checkout's total price for available shipping methods resolution - #9121 by @rafalp
      • Use either net or gross price depending on store configuration.

    Other

    • Extend app by AppExtension - #7701 by @korycins
    • ๐Ÿ‘‰ Make SKU an optional field on ProductVariant - #7633 by @rafalp
    • ๐Ÿ—„ Deprecate interface field PaymentData.reuse_source - #7988 by @mateuszgrzyb
    • โž• Add ExternalNotificationTrigger mutation - #7821 by @mstrumeck
    • โž• Add Click&Collect feature - #7673 by @kuchichan
    • โž• Add fulfillment confirmation - #7675 by @tomaszszymanski129
    • Introduce swatch attributes - #7261 by @IKarbowiak
    • Introduce gift card feature - #7827 by @IKarbowiak, @tomaszszymanski129
    • Deprecate setup_future_usage from checkoutComplete.paymentData input - will be removed in Saleor 4.0 - #7994 by @mateuszgrzyb
    • ๐Ÿ“‡ Possibility to pass metadata in input of checkoutPaymentCreate - #8076 by @mateuszgrzyb
    • ๐Ÿ›  Fix shipping address issue in availableCollectionPoints resolver for checkout - #8143 by @kuchichan
    • ๐Ÿ‘Œ Improve draft orders and orders webhooks by @jakubkuc
    • ๐Ÿ›  Fix cursor-based pagination in products search - #8011 by @rafalp
    • Extend accountRegister mutation to consume first & last name - #8184 by @piotrgrundas
    • Introduce sales / vouchers per product variant - #8064 by @kuchichan
    • Introduce sales webhooks - #8157 @kuchichan
    • Batch loads in queries for Apollo Federation - #8273 by @rafalp
    • Add webhooks for stock changes: PRODUCT_VARIANT_OUT_OF_STOCK and PRODUCT_VARIANT_BACK_IN_STOCK - #7590 by @mstrumeck
    • Reserve stocks for checkouts - #7589 by @rafalp
    • โž• Add variant_selection to ProductAttributeAssign operations - #8235 by @kuchichan
    • โž• Add query complexity limit to GraphQL API - #8526 by rafalp
    • Add quantity_limit_per_customer field to ProductVariant #8405 by @kuchichan
    • โž• Add API for webhook payloads and deliveries - #8227 by @jakubkuc
    • โšก๏ธ Optimize products stock availability filter - #8809 by @fowczarek
    • ๐Ÿ”จ Refactor attributes validation - #8905 by @IKarbowiak
      • in create mutations: require all required attributes
      • in update mutations: do not require providing any attributes; when any attribute is given, validate provided values.
    • ๐Ÿ›  Fix crash when querying external shipping methods translation field - #8971 by @rafalp
    • Add COLLECTION_CREATED, COLLECTION_UPDATED, COLLECTION_DELETED events and webhooks - #8974 by @rafalp
    • ๐Ÿ›  Fix crash when too long translation strings were passed to translate mutations - #8942 by rafalp
    • ๐Ÿ‘‰ Make collections names non-unique - #8986 by @rafalp
    • โž• Add validation of unavailable products in the checkout. Mutations: CheckoutShippingMethodUpdate, CheckoutAddPromoCode, CheckoutPaymentCreate will raise a ValidationError when product in the checkout is unavailable - #8978 by @IKarbowiak
    • ๐Ÿ“‡ Change metadata mutations to use token for order and checkout as identifier - #8426 by @IKarbowiak
      • After changes, using the order id for changing order metadata is deprecated
    • โž• Add withChoices flag for Attribute type - #7733 by @dexon44 CheckoutAddPromoCode, CheckoutPaymentCreate will raise a ValidationError when product in the checkout is unavailable - #8978 by @IKarbowiak
    • ๐Ÿ›  Fix disabled warehouses appearing as valid click and collect points when checkout contains only preorders - #9052 by @rafalp
    • โž• Add support for providing shipping methods by Saleor Apps - #7975 by @bogdal:
      • Add SHIPPING_LIST_METHODS_FOR_CHECKOUT sync webhook
    • ๐Ÿ›  Fix crash when Avalara plugin was used together with Webhooks plugin for shipping methods - #9121 by @rafalp
    • ๐Ÿ‘ Allow fetching unpublished pages by app with manage pages permission - #9181 by @IKarbowiak
    • โšก๏ธ Update required permissions for attribute options - #9204 by @IKarbowiak
      • Product attribute options can be fetched by requestors with manage product types and attributes permission.
      • Page attribute options can be fetched by requestors with manage page types and attributes permission.
  • v3.0.0 Changes

    • ๐Ÿ‘Œ Improve draft orders and orders webhooks - #SALEOR-4008 by @jakubkuc
    • ๐Ÿšš Mark X- headers as deprecated and add headers without prefix. All deprecated headers will be removed in Saleor 4.0 - #8179 by @L3str4nge
      • X-Saleor-Event -> Saleor-Event
      • X-Saleor-Domain -> Saleor-Domain
      • X-Saleor-Signature -> Saleor-Signature
      • X-Saleor-HMAC-SHA256 -> Saleor-HMAC-SHA256
    • Extend editorjs validator to accept blocks different than text - #SALEOR-3354 by @mociepka
    • โž• Add query contains only schema validation - #6827 by @fowczarek
    • โž• Add introspection caching - #6871 by @fowczarek
    • ๐Ÿ”จ Refactor plugins manager(add missing tracing, optimize imports, drop plugins manager from settings) - #6890 by @fowczarek
    • โšก๏ธ Add CUSTOMER_UPDATED webhook, add addresses field to customer CUSTOMER_CREATED webhook - #6898 by @piotrgrundas
    • โž• Add missing span in PluginManager - #6900 by @fowczarek
    • ๐Ÿ›  Fix Sentry reporting - #6902 by @fowczarek
    • ๐Ÿ›  Fix removing page types in cleardb command - #6918 by @fowczarek
    • โž• Add possibility to apply discount to order/order line with status DRAFT - #6930 by @korycins
    • ๐Ÿ—„ Deprecate API fields Order.discount, Order.discountName, Order.translatedDiscountName - #6874 by @korycins
    • ๐Ÿ›  Fix argument validation in page resolver - #6960 by @fowczarek
    • โฌ‡๏ธ Drop data field from checkout line model - #6961 by @fowczarek
    • Add PRODUCT_VARIANT_CREATED, PRODUCT_VARIANT_UPDATED, PRODUCT_VARIANT_DELETED webhooks, fix attributes field for PRODUCT_CREATED, PRODUCT_UPDATED webhooks - #6963 by @piotrgrundas
    • ๐Ÿ›  Fix totalCount on connection resolver without first or last - #6975 by @fowczarek
    • ๐Ÿ›  Fix variant resolver on DigitalContent - #6983 by @fowczarek
    • ๐Ÿ›  Fix race condition on send_fulfillment-confirmation - #6988 by @fowczarek
    • ๐Ÿ›  Fix resolver by id and slug for product and product variant - #6985 by @d-wysocki
    • โž• Add optional support for reporting resource limits via a stub field in shop - #6967 by @NyanKiyoshi
    • ๐Ÿ‘ Allow to use Bearer as an authorization prefix - #6996 by @korycins
    • โšก๏ธ Update checkout quantity when checkout lines are deleted - #7002 by @IKarbowiak
    • Raise an error when the user is trying to sort products by rank without search - #7013 by @IKarbowiak
    • ๐Ÿ›  Fix available shipping methods - return also weight methods without weight limits - #7021 by @IKarbowiak
    • โœ‚ Remove redundant Opentracing spans - #6994 by @fowczarek
    • โšก๏ธ Trigger PRODUCT_UPDATED webhook for collections and categories mutations - #7051 by @d-wysocki
    • ๐Ÿ‘Œ Support setting value for AttributeValue mutations - #7037 by @piotrgrundas
    • Validate discount value for percentage vouchers and sales - #7033 by @d-wysocki
    • โšก๏ธ Optimize children field on Category type - #7045 by @IKarbowiak
    • โž• Added support for querying objects by metadata fields - #6683 by @LeOndaz, #7421 by @korycins
    • โž• Add rich text attribute input - #7059 by @piotrgrundas
    • ๐Ÿ”Œ Avoid using get_plugins_manager method - #7052 by @IKarbowiak
    • โž• Add field languageCode to types: AccountInput, AccountRegisterInput, CheckoutCreateInput, CustomerInput, Order, User. Add field languageCodeEnum to Order type. Add new mutation CheckoutLanguageCodeUpdate. Deprecate field Order.languageCode. - #6609 by @korycins
    • โž• Add benchmarks for triggered product and variants webhooks - #7061 by @d-wysocki
    • Extend Transaction type with gateway response and Payment type with filter - #7062 by @IKarbowiak
    • ๐Ÿ›  Fix invalid tax rates for lines - #7058 by @IKarbowiak
    • ๐Ÿ‘ Allow seeing unconfirmed orders - #7072 by @IKarbowiak
    • Raise GraphQLError when too big integer value is provided - #7076 by @IKarbowiak
    • โšก๏ธ Do not update draft order addresses when user is changing - #7088 by @IKarbowiak
    • Recalculate draft order when product/variant was deleted - #7085 by @d-wysocki
    • โž• Added validation for DraftOrderCreate with negative quantity line - #7085 by @d-wysocki
    • โœ‚ Remove html tags from product description_plaintext - #7094 by @d-wysocki
    • ๐ŸŽ Performance upgrade on orders query with shipping and billing addresses - #7083 by @tomaszszymanski129
    • ๐ŸŽ Performance upgrade on orders query with payment status - #7125 by @tomaszszymanski129
    • ๐ŸŽ Performance upgrade on orders query with events - #7120 by @tomaszszymanski129
    • ๐ŸŽ Performance upgrade on orders query with user and userEmail fields - #7091 by @tomaszszymanski129
    • ๐Ÿ›  Fix dataloader for fetching checkout info - #7084 by @IKarbowiak
    • โšก๏ธ Update also draft order line total price after getting the unit price from plugin - #7080 by @IKarbowiak
    • ๐Ÿ›  Fix failing product tasks when instances are removed - #7092 by @IKarbowiak
    • Catch invalid object ID and raise ValidationError - #7114 by @d-wysocki
    • โšก๏ธ Update GraphQL endpoint to only match exactly /graphql/ without trailing characters - #7117 by @IKarbowiak
    • Introduce traced_resolver decorator instead of graphene middleware - #7159 by @tomaszszymanski129
    • ๐Ÿ›  Fix failing export when exporting attribute without values - #7131 by @IKarbowiak
    • Extend Vatlayer functionalities - #7101 by @korycins:
      • Allow users to enter a list of exceptions (country ISO codes) that will use the source country rather than the destination country for tax purposes.
      • Allow users to enter a list of countries for which no VAT will be added.
    • ๐Ÿ‘ Allow passing metadata to accountRegister mutation - #7152 by @piotrgrundas
    • ๐Ÿ›  Fix incorrect payment data for klarna - #7150 by @IKarbowiak
    • โฌ‡๏ธ Drop deleted images from storage - #7129 by @IKarbowiak
    • ๐Ÿ›  Fix core sorting on related fields - #7195 by @tomaszszymanski129
    • ๐Ÿ›  Fix variants dataloaders when querying with default channel - #7206 by @tomaszszymanski129
    • ๐ŸŽ Performance upgrade on orders query with subtotal field - #7174 by @tomaszszymanski129
    • ๐ŸŽ Performance upgrade on orders query with actions field - #7175 by @tomaszszymanski129
    • ๐ŸŽ Performance upgrade on orders query with totalAuthorized field - #7170 by @tomaszszymanski129
    • ๐Ÿ›  Fix export with empty assignment values - #7207 by @IKarbowiak
    • ๐Ÿ”„ Change exported file name - #7218 by @IKarbowiak
    • ๐ŸŽ Performance upgrade on OrderLine type with thumbnail field - #7224 by @tomaszszymanski129
    • ๐Ÿ‘‰ Use GraphQL IDs instead of database IDs in export - #7240 by @IKarbowiak
    • ๐Ÿ›  Fix draft order tax mismatch - #7226 by @IKarbowiak
      • Introduce calculate_order_line_total plugin method
    • โšก๏ธ Update core logging for better Celery tasks handling - #7251 by @tomaszszymanski129
    • Raise ValidationError when refund cannot be performed - #7260 by @IKarbowiak
    • Extend order with origin and original order values - #7326 by @IKarbowiak
    • ๐Ÿ›  Fix customer addresses missing after customer creation - #7327 by @tomaszszymanski129
    • ๐Ÿ›ฐ Extend order webhook payload with fulfillment fields - #7364, #7347 by @korycins
      • fulfillments extended with:
      • total_refund_amount
      • shipping_refund_amount
      • lines
      • fulfillment lines extended with:
      • total_price_net_amount
      • total_price_gross_amount
      • undiscounted_unit_price_net
      • undiscounted_unit_price_gross
      • unit_price_net
    • ๐Ÿ›ฐ Extend order payload with undiscounted prices and add psp_reference to payment model - #7339 by @IKarbowiak
      • order payload extended with the following fields:
      • undiscounted_total_net_amount
      • undiscounted_total_gross_amount
      • psp_reference on payment
      • order lines extended with:
      • undiscounted_unit_price_net_amount
      • undiscounted_unit_price_gross_amount
      • undiscounted_total_price_net_amount
      • undiscounted_total_price_gross_amount
    • ๐Ÿ“‡ Copy metadata fields when creating reissue - #7358 by @IKarbowiak
    • โž• Add payment webhooks - #7044 by @maarcingebala
    • ๐Ÿ›  Fix invoice generation - #7376 by @tomaszszymanski129
    • ๐Ÿ‘ Allow defining only one field in translations - #7363 by @IKarbowiak
    • โšก๏ธ Trigger checkout_updated hook for checkout meta mutations - #7392 by @maarcingebala
    • โšก๏ธ Optimize inputType resolver on AttributeValue type - 7396 by @tomaszszymanski129
    • ๐Ÿ‘ Allow filtering pages by ids - #7393 by @IKarbowiak
    • ๐Ÿ”จ Refactor account filters - 7419 by @tomaszszymanski129
    • Fix validate min_spent on vouchers to use net or gross value depends on settings.display_gross_prices - #7408 by @d-wysocki
    • ๐Ÿ›  Fix invoice generation - #7376 by tomaszszymanski129
    • Unify channel ID params #7378
      • targetChannel from ChannelDeleteInput changed to channelId
      • channel from DraftOrderCreateInput changed to channelId
      • channel from DraftOrderInput changed to channelId
      • channel from pluginUpdate changed to channelId
    • Compress celery tasks related with user_emails and webhooks - #7445 by d-wysocki
    • ๐ŸŽ Order events performance - #7424 by tomaszszymanski129
    • โž• Add hash to uploading images #7453 by @IKarbowiak
    • โž• Add file format validation for uploaded images - #7447 by @IKarbowiak
    • โž• Add boolean attributes - #7454 by @piotrgrundas
    • ๐Ÿ›  Fix attaching params for address form errors - #7485 by @IKarbowiak
    • โšก๏ธ Update draft order validation - #7253 by @IKarbowiak
      • Extend Order type with errors: [OrderError!]! field
      • Create tasks for deleting order lines by deleting products or variants
    • ๐Ÿ›  Fix doubled checkout total price for one line and zero shipping price - #7532 by @IKarbowiak
    • ๐Ÿ—„ Deprecate nested objects in TranslatableContent types - #7522 by @IKarbowiak
    • ๐Ÿ›  Fix performance for User type on resolvers: orders, gift cards, events - #7574 by @tomaszszymanski129
    • ๐Ÿ›  Fix failing account mutations for app - #7569 by @IKarbowiak
    • ๐Ÿ›ฐ Introduce event_payload to webhook tasks - #8227 by @jakubkuc
    • Modify order of auth middleware calls - #7572 by @tomaszszymanski129
    • โž• Add app support for events - #7622 by @IKarbowiak
    • Fulfillment confirmation - #7675 by @tomaszszymanski129
    • โž• Add date & date time attributes - #7500 by @piotrgrundas
    • โž• Add withChoices flag for Attribute type - #7733 by @dexon44
    • โฌ‡๏ธ Drop assigning cheapest shipping method in checkout - #7767 by @maarcingebala
    • Add product_id, product_variant_id, attribute_id and page_id when it's possible for AttributeValue translations webhook. - #7783 by @fowczarek
    • ๐Ÿ—„ Deprecate query argument in sales and vouchers queries - #7806 by @maarcingebala
    • ๐Ÿ‘ Allow translating objects by translatable content ID - #7803 by @maarcingebala
    • Add page_type_id when it's possible for AttributeValue translations webhook. - #7825 by @fowczarek
    • โšก๏ธ Optimize available quantity loader. - #7802 by @fowczarek
    • ๐Ÿ”ง Configure a periodic task for removing empty allocations - #7885 by @fowczarek
    • Add webhooks for stock changes: PRODUCT_VARIANT_OUT_OF_STOCK and PRODUCT_VARIANT_BACK_IN_STOCK - #7590 by @mstrumeck
    • ๐Ÿ‘ Allow impersonating user by an app/staff - #7754 by @korycins:
      • Add customerId to checkoutCustomerAttach mutation
      • Add new permision IMPERSONATE_USER
      • Handle SameSite cookie attribute in jwt refresh token middleware - #8209 by @jakubkuc
    • โž• Add workaround for failing Avatax when line has price 0 - #8610 by @korycins
    • โž• Add option to set tax code for shipping in Avatax configuration view - #8596 by @korycins
    • ๐Ÿ›  Fix Avalara tax fetching from cache - #8647 by @fowczarek
    • Implement database read replicas - #8516, #8751 by @fowczarek
    • Propagate sale and voucher discounts over specific lines - #8793 by @korycins
      • The created order lines from checkout will now have fulfilled all undiscounted fields with a default price value (without any discounts).
      • Order line will now include a voucher discount (in the case when the voucher is for specific products or have a flag apply_once_per_order). In that case Order.discounts will not have a relation to OrderDiscount object.
      • Webhook payload for OrderLine will now include two new fields sale_id (graphql's ID of applied sale) and voucher_code (code of the valid voucher applied to this line).
      • When any sale or voucher discount was applied, line.discount_reason will be fulfilled.
      • New interface for handling more data for prices: PricesData and TaxedPricesData used in checkout calculations and in plugins/pluginManager.
    • Attach sale discount info to the line when adding variant to order - #8821 by @IKarbowiak
      • Rename checkout interfaces: CheckoutTaxedPricesData instead of TaxedPricesData and CheckoutPricesData instead of PricesData
      • New interface for handling more data for prices: OrderTaxedPricesData used in plugins/pluginManager.

    ๐Ÿ’ฅ Breaking

    • Multichannel MVP: Multicurrency - #6242 by @fowczarek @d-wysocki
    • โฌ‡๏ธ Drop deprecated meta mutations - #6422 by @maarcingebala
    • โฌ‡๏ธ Drop deprecated service accounts and webhooks API - #6431 by @maarcingebala
    • โฌ‡๏ธ Drop deprecated fields from the ProductVariant type: quantity, quantityAllocated, stockQuantity, isAvailable - #6436 by @maarcingebala
    • โฌ‡๏ธ Drop authorization keys API - #6631 by @maarcingebala
    • โฌ‡๏ธ Drop type field from AttributeValue type - #6710 by @IKarbowiak
    • Drop apply_taxes_to_shipping_price_range plugin hook - #6746 by @maarcingebala
    • Drop CHECKOUT_QUANTITY_CHANGED webhook - #6797 by @d-wysocki
    • โฌ‡๏ธ Drop deprecated taxRate field from ProductType - #6795 by @d-wysocki
    • Unconfirmed order manipulation - #6829 by @tomaszszymanski129
      • Remove mutations for draft order lines manipulation: draftOrderLinesCreate, draftOrderLineDelete, draftOrderLineUpdate
      • Use orderLinesCreate, orderLineDelete, orderLineUpdate mutations instead.
      • Order events enums DRAFT_ADDED_PRODUCTS and DRAFT_REMOVED_PRODUCTS are now ADDED_PRODUCTS and REMOVED_PRODUCTS
    • ๐Ÿ”Œ Email interface as a plugin - #6301 by @korycins
    • โœ‚ Remove resolving user's location from GeoIP; drop PaymentInput.billingAddress input field - #6784 by @maarcingebala
    • ๐Ÿ”„ Change the payload of the order webhook to handle discounts list, added fields: Order.discounts, OrderLine.unit_discount_amount,OrderLine.unit_discount_type, OrderLine.unit_discount_reason , remove fields: Order.discount_amount, Order.discount_name, Order.translated_discount_name- #6874 by @korycins
    • ๐ŸŽ Update checkout performance - introduce CheckoutInfo data class - #6958 by @IKarbowiak; Introduced changes in plugin methods definitions:
      • in the following methods, the checkout parameter changed to checkout_info:
      • calculate_checkout_total
      • calculate_checkout_subtotal
      • calculate_checkout_shipping
      • get_checkout_shipping_tax_rate
      • calculate_checkout_line_total
      • calculate_checkout_line_unit_price
      • get_checkout_line_tax_rate
      • preprocess_order_creation
      • additionally, preprocess_order_creation was extend with lines_info parameter
    • ๐Ÿ›  Fix Avalara caching - #7036 by @fowczarek;
      • Introduced changes in plugin methods definitions:
      • calculate_checkout_line_total was extended with lines parameter
      • calculate_checkout_line_unit_price was extended with lines parameter
      • get_checkout_line_tax_rate was extended with lines parameter To get proper taxes we should always send the whole checkout to Avalara.
    • โšก๏ธ Remove triggering a webhook event PRODUCT_UPDATED when calling ProductVariantCreate mutation. Use PRODUCT_VARIANT_CREATED instead - #6963 by @piotrgrundas
    • โšก๏ธ Remove triggering a webhook event PRODUCT_UPDATED when calling ProductVariantChannelListingUpdate mutation. Use PRODUCT_VARIANT_UPDATED instead - #6963 by @piotrgrundas
    • Refactor listing payment gateways - #7050 by @maarcingebala. Breaking changes in plugin methods: removed get_payment_gateway and get_payment_gateway_for_checkout; instead get_payment_gateways was added.
    • ๐Ÿ”„ Change error class in CollectionBulkDelete to CollectionErrors - #7061 by @d-wysocki
    • ๐Ÿ›  Fix doubling price in checkout for products without tax - #7056 by @IKarbowiak
      • Introduce changes in plugins method:
      • calculate_checkout_subtotal has been dropped from plugins, for correct subtotal calculation, calculate_checkout_line_total must be set (manager method for calculating checkout subtotal uses calculate_checkout_line_total method)
    • ๐Ÿ›ฐ Make order property of invoice webhook payload contain order instead of order lines - #7081 by @pdblaszczyk
      • Affected webhook events: INVOICE_REQUESTED, INVOICE_SENT, INVOICE_DELETED
    • ๐Ÿ‘‰ Make quantity field on StockInput required - #7082 by @IKarbowiak
    • ๐Ÿ”ง Extend plugins manager to configure plugins for each plugins - #7198 by @korycins:

      • Introduce changes in API:
      • paymentInitialize - add channel parameter. Optional when only one channel exists.
      • pluginUpdate - add channel parameter.
      • availablePaymentGateways - add channel parameter.
      • storedPaymentSources - add channel parameter.
      • requestPasswordReset - add channel parameter.
      • requestEmailChange - add channel parameter.
      • confirmEmailChange - add channel parameter.
      • accountRequestDeletion - add channel parameter.
      • change structure of type Plugin:
        • add globalConfiguration field for storing configuration when a plugin is globally configured
        • add channelConfigurations field for storing plugin configuration for each channel
        • removed configuration field, use globalConfiguration and channelConfigurations instead
      • change structure of input PluginFilterInput:
        • add statusInChannels field
        • add type field
        • removed active field. Use statusInChannels instead
      • Change plugin webhook endpoint - #7332 by @korycins.
      • Use /plugins/channel// for plugins with channel configuration
      • Use /plugins/global/ for plugins with global configuration
      • Remove /plugin/ endpoint
    • โž• Add description to shipping method - #7116 by @IKarbowiak

      • ShippingMethod was extended with description field.
      • ShippingPriceInput was extended with description field
      • Extended shippingPriceUpdate, shippingPriceCreate mutation to add/edit description
      • Input field in shippingPriceTranslate changed to ShippingPriceTranslationInput
    • โฌ‡๏ธ Drop deprecated queries and mutations - #7199 by @IKarbowiak

      • drop url field from Category type
      • drop url field from Category type
      • drop url field from Product type
      • drop localized fild from Money type
      • drop permissions field from User type
      • drop navigation field from Shop type
      • drop isActive from AppInput
      • drop value from AttributeInput
      • drop customerId from checkoutCustomerAttach
      • drop stockAvailability argument from products query
      • drop created and status arguments from orders query
      • drop created argument from draftOrders query
      • drop productType from ProductFilter
      • deprecate mutations' <name>Errors, typed errors fields and remove deprecation
    • โž• Add channel data to Order webhook - #7299 by @krzysztofwolski

    • ๐Ÿšš Deprecated Stripe plugin - will be removed in Saleor 4.0

      • rename StripeGatewayPlugin to DeprecatedStripeGatewayPlugin.
      • introduce new StripeGatewayPlugin plugin.
    • Always create new checkout in checkoutCreate mutation - #7318 by @IKarbowiak

      • deprecate created return field on checkoutCreate mutation
    • Return empty values list for attribute without choices - #7394 by @fowczarek

      • values for attributes without choices from now are empty list.
      • attributes with choices - DROPDOWN and MULTISELECT
      • attributes without choices - FILE, REFERENCE, NUMERIC and RICH_TEXT
    • Unify checkout identifier in checkout mutations and queries - #7511 by @IKarbowiak

    • ๐Ÿ‘‰ Use root level channel argument for filtering and sorting - #7374 by @IKarbowiak

      • drop channel field from filters and sorters
    • โฌ‡๏ธ Drop top-level checkoutLine query from the schema with related resolver, use checkout query instead - #7623 by @dexon44

    • ๐Ÿ‘‰ Make SKU an optional field on ProductVariant - #7633 by @rafalp

    • ๐Ÿ“‡ Change metadata mutations to use token for order and checkout as identifier - #8426 by @IKarbowiak

      • After changes, using the order id for changing order metadata is deprecated
    • Propagate sale and voucher discounts over specific lines - #8793 by @korycins

      • Use a new interface for response received from plugins/pluginManager. Methods calculate_checkout_line_unit_price and calculate_checkout_line_total returns TaxedPricesData instead of TaxedMoney.
    • Attach sale discount info to the line when adding variant to order - #8821 by @IKarbowiak

      • Use a new interface for the response received from plugins/pluginManager. Methods calculate_order_line_unit and calculate_order_line_total returns OrderTaxedPricesData instead of TaxedMoney.
      • Rename checkout interfaces: CheckoutTaxedPricesData instead of TaxedPricesData and CheckoutPricesData instead of PricesData
    • ๐Ÿ“‡ Do no allow using id for updating checkout and order metadata - #8906 by @IKarbowiak

      • Use token instead
    • Sign JWT tokens with RS256 instead of HS256 - #7990 by @korycins

    Other

    • ๐Ÿ›  Fix creating translations with app - #6804 by @krzysztofwolski
    • โž• Add possibility to provide external payment ID during the conversion draft order to order - #6320 by @korycins
    • โž• Add basic rating for Products - #6284 by @korycins
    • โž• Add metadata to shipping zones and shipping methods - #6340 by @maarcingebala
    • โž• Add Page Types - #6261 by @IKarbowiak
    • Migrate draftjs content to editorjs format - #6430 by @IKarbowiak
    • โž• Add editorjs sanitizer - #6456 by @IKarbowiak
    • โž• Add generic FileUpload mutation - #6470 by @IKarbowiak
    • Order confirmation backend - #6498 by @tomaszszymanski129
    • ๐Ÿ›  Fix password reset request - #6351 by @Manfred-Madelaine-pro, Ambroise and Pierre
    • ๐Ÿ‘ Refund products support - #6530 by @korycins
    • โž• Add possibility to exclude products from shipping method - #6506 by @korycins
    • โž• Add availableShippingMethods to the Shop type - #6551 by @IKarbowiak
    • โž• Add delivery time to shipping method - #6564 by @IKarbowiak
    • Introduce file attributes - #6568 by @IKarbowiak
    • Shipping zone description - #6653 by @tomaszszymanski129
    • โž• Add metadata to menu and menu item - #6648 by @tomaszszymanski129
    • ๐Ÿ”Œ Get tax rate from plugins - #6649 by @IKarbowiak
    • โž• Added support for querying user by email - #6632 @LeOndaz
    • โž• Add order shipping tax rate - #6678 by @IKarbowiak
    • ๐Ÿ—„ Deprecate field descriptionJSON from Product, Category, Collection and field contentJSON from Page - #6692 by @d-wysocki
    • ๐Ÿ›  Fix products visibility - #6704 by @IKarbowiak
    • Introduce page reference attributes - #6624 by @IKarbowiak
    • Introduce product reference attributes - #6711 by @IKarbowiak
    • โž• Add metadata to warehouse - #6727 by @d-wysocki
    • Add page webhooks: PAGE_CREATED, PAGE_UPDATED and PAGE_DELETED - #6787 by @d-wysocki
    • Introduce numeric attributes - #6790 by @IKarbowiak
    • โž• Add PRODUCT_DELETED webhook - #6794 by @d-wysocki
    • โšก๏ธ Fix product_updated and product_created webhooks - #6798 by @d-wysocki
    • โž• Add interface for integrating the auth plugins - #6799 by @korycins
    • ๐Ÿ›  Fix page contentJson field to return JSON - #6832 by @d-wysocki
    • โž• Add SendgridPlugin - #6793 by @korycins
    • โž• Add SearchRank to search product by name and description. New enum added to ProductOrderField - RANK - which returns results sorted by search rank - #6872 by @d-wysocki
    • Allocate stocks for order lines in a bulk way - #6877 by @IKarbowiak
    • โž• Add product description_plaintext to populatedb - #6894 by @d-wysocki
    • โž• Add uploading video URLs to product's gallery - #6838 by @GrzegorzDerdak
    • Deallocate stocks for order lines in a bulk way - #6896 by @IKarbowiak
    • Prevent negative available quantity - #6897 by @d-wysocki
    • ๐Ÿ›  Fix CheckoutLinesInfoByCheckoutTokenLoader dataloader - #6929 by @IKarbowiak
    • ๐Ÿ”„ Change the app query to return info about the currently authenticated app - #6928 by @d-wysocki
    • โž• Add default sorting by rank for search products - #6936 by @d-wysocki
    • ๐Ÿ›  Fix exporting product description to xlsx - #6959 by @IKarbowiak
    • โž• Add Shop.version field to query API version - #6980 by @maarcingebala
    • Return empty results when filtering by non-existing attribute - #7025 by @maarcingebala
    • โž• Add new authorization header Authorization-Bearer - #6998 by @korycins
    • โž• Add field paymentMethodType to Payment object - #7073 by @korycins
    • Unify Warehouse Address API - #7481 by @d-wysocki
      • deprecate companyName on Warehouse type
      • remove companyName on WarehouseInput type
      • remove WarehouseAddressInput on WarehouseUpdateInput and WarehouseCreateInput, and change it to AddressInput
    • ๐Ÿ›  Fix passing incorrect customer email to payment gateways - #7486 by @korycins
    • โž• Add HTTP meta tag for Content-Security-Policy in GraphQL Playground - #7662 by @NyanKiyoshi
  • v3.0.0-a.3 Changes

    December 04, 2020

    ๐Ÿ”„ Changelog

  • v3.0.0-a.2 Changes

    December 02, 2020

    ๐Ÿ”„ Changelog

  • v3.0.0-a.1

    December 01, 2020
  • v3.0.0-a.0

    November 23, 2020
  • v2.11.4 Changes

    December 02, 2020

    ๐Ÿš€ Welcome to 2.11.4 release of Saleor!

    ๐Ÿ”„ Changelog