---
title: >-
  New discount fields in the Storefront API's cart types - Shopify developer
  changelog
description: >-
  Shopify’s developer changelog documents all changes to Shopify’s platform.
  Find the latest news and learn about new platform opportunities.
source_url:
  html: >-
    https://shopify.dev/changelog/new-discount-fields-in-the-storefront-cart-graphql-api
  md: >-
    https://shopify.dev/changelog/new-discount-fields-in-the-storefront-cart-graphql-api.md
metadata:
  effectiveApiVersion: 2026-07
  affectedApi:
    - displayName: Storefront GraphQL API
      handle: storefront-graphql
  primaryTag:
    displayName: API
    handle: api
  secondaryTag:
    displayName: Deprecation Announcement
    handle: deprecation
  indicatesActionRequired: false
  createdAt: '2026-02-09T13:49:40-05:00'
  postedAt: '2026-04-10T15:00:00-04:00'
  updatedAt: '2026-04-08T09:31:26-04:00'
  effectiveAt: '2026-03-06T12:00:00-05:00'
---

April 10, 2026

Tags:

* Storefront GraphQL API
* 2026-07

# New discount fields in the Storefront API's cart types

As of API version 2026-07, several changes have been introduced to the discount fields and amounts in the [Storefront API](https://shopify.dev/docs/api/storefront/latest).

## What's changed

**Deprecated Fields**:

* The [`cart.discountAllocations`](https://shopify.dev/docs/api/storefront/2026-07/objects/Cart#field-discountAllocations) field is deprecated. Use `cart.lines[].discountAllocations(lineLevelOnly: false)` and `cart.deliveryGroups[].discountAllocations` instead.
* The [`cartDiscountAllocation.discountApplication`](https://shopify.dev/docs/api/storefront/2026-07/interfaces/CartDiscountAllocation#field-discountApplication) field is deprecated. Use `sourceDiscountApplication` instead. Note: the `value` field on `discountApplication` incorrectly returns the per-line allocated amount rather than the configured discount amount (for example, a $10 fixed discount allocated as $4 to one line shows `value: $4`). The new `sourceDiscountApplication` field returns the correct value.

**New Fields**:

* [`cart.discountApplications`](https://shopify.dev/docs/api/storefront/2026-07/objects/Cart#field-discountApplications): Lists all discounts (for example, product, shipping, and order) currently applied to the cart.
* [`cartDiscountAllocation.sourceDiscountApplication`](https://shopify.dev/docs/api/storefront/2026-07/interfaces/CartDiscountAllocation#field-sourceDiscountApplication): Returns the discount application with the correct configured discount value and concrete type information. For example, a $10 fixed discount will show `value: $10` regardless of how it's allocated across lines. Access type-specific fields using GraphQL fragments, for example `sourceDiscountApplication { … on CartCodeDiscountApplication { code } }`.
* [`baseCartDiscountApplication.totalAllocatedAmount`](https://shopify.dev/docs/api/storefront/2026-07/interfaces/BaseCartDiscountApplication#field-totalAllocatedAmount): Shows the total discount amount allocated across the entire cart. For instance, if a 10% discount splits as $4 on line A and $6 on line B, both lines will show `totalAllocatedAmount: $10`.
* [`cart.deliveryGroups[].discountAllocations`](https://shopify.dev/docs/api/storefront/2026-07/objects/CartDeliveryGroup#field-discountAllocations): Displays the discounts allocated to the delivery group.

**New Argument**:

* [`cart.lines[].discountAllocations(lineLevelOnly: Boolean)`](https://shopify.dev/docs/api/storefront/2026-07/objects/CartLine#field-discountAllocations): The `lineLevelOnly` argument lets you request either only product-level discounts or all discounts allocated to the cart line. It defaults to `true` for backward compatibility.

## What you need to do

* Update queries to use `cart.discountApplications` instead of `cart.discountAllocations` for reading all discount applications on a cart.
* Replace `cartDiscountAllocation.discountApplication` with `sourceDiscountApplication` for accurate discount values and type-specific fields.
* Move product allocation queries to `cart.lines[].discountAllocations(lineLevelOnly: false)`.
* Move shipping allocation queries to `cart.deliveryGroups[].discountAllocations`.
* Test your discount calculations with percentage, fixed amount, and free shipping discounts.
