Admin GraphQL API / 2026-07

priceAfterAllDiscountsBeforeTaxesSet
The line item subtotal after discounts and before taxes is now accessible via GraphQL

The REST API's current_subtotal_price_set equivalent field has been added to LineItem. It returns the line item subtotal after all discounts are applied, excluding returned/removed quantities, and before taxes — in both shop currency and presentment currency. Useful for order export workflows.

On this page
  1. 30-second overview: what was added
  2. Diagram: how this amount is calculated
  3. What's included / not included
  4. REST and GraphQL mapping table
  5. Query examples
  6. Eligibility and scope
  7. 5 key points for developers
  8. 3 practical business use cases
  9. One-line summary for pitches

1Understand in 30 seconds: what was added

GraphQL Admin API's LineItem objectto priceAfterAllDiscountsBeforeTaxesSet A field has been added.
This corresponds to the REST API's current_subtotal_price_set(line item level) equivalent. The "discounted, pre-tax line subtotal" that was not straightforward to retrieve on the GraphQL side can now be obtained without migration.
REST

Before: Relying on REST

The "current discounted, pre-tax subtotal" for a line item was retrieved via REST's current_subtotal_price_set . Workflows looking to migrate to GraphQL had no equivalent, which was a barrier.

GraphQL

Going forward: Complete in GraphQL

LineItem.priceAfterAllDiscountsBeforeTaxesSet lets you retrieve the same value. It returns both shop currency and presentment currency, so order exports and similar workflows can be consolidated onto GraphQL.

2Diagram: How this amount is calculated

Line item base value Unit price × quantity original subtotal − All discounts Line-level + order-level Apply all discounts − Returned/removed items refunded / removed Exclude quantities (=current) = Subtotal excluding tax priceAfterAllDiscounts BeforeTaxesSet * Taxes are not added
How to read the name : priceAfterAllDiscounts(after alldiscounts)+ BeforeTaxes(beforetax)+ Set(currency pair = both shop currency and presentment currency).
The REST current_subtotal field also carries the "current" nuance (i.e., excluding returned and removed items), which this field inherits.

3What's included / What's not

Includes

After application Amount after all discounts have been applied

Current quantity The "current" quantity, excluding returned and removed items

Two currencies Both shop currency (shopMoney) and presentment currency (presentmentMoney)

Excludes

Excluded Taxes — taxes are not included in the value

Exclude refunded quantities

Exclude removed quantities

If you need a tax-inclusive subtotal, this field alone is not enough (taxes are managed separately). For how to obtain tax amounts or tax-inclusive totals, this announcement providesno details. Check the tax-related fields on LineItem separately.

4REST and GraphQL mapping

AspectREST Admin APIGraphQL Admin API (new)
Field name current_subtotal_price_set
(on line item)
priceAfterAllDiscountsBeforeTaxesSet
(on LineItem)
Meaning Equivalent to Line item subtotal after all discounts, excluding tax and refunded/removed items
Currency Both shop / presentment (_set) Both shop / presentment (Set = MoneyBag)
Tax Excluded Excluded
Primary use case Order exports and similar workflows that need a line-level subtotal after discounts and before taxes

5Example query

Example of fetching the post-discount, pre-tax subtotal for each line item in both the shop currency and the presentment currency.

query OrderLineSubtotals($id: ID!) { order(id: $id) { name lineItems(first: 50) { nodes { title quantity priceAfterAllDiscountsBeforeTaxesSet { shopMoney { amount currencyCode } # Shop currency presentmentMoney { amount currencyCode } # Customer's presentment currency } } } } }
...Set The type is shopMoney / presentmentMoney a MoneyBag with this shape. In multi-currency stores, the convention is to keep accounting in the shop currency while showing the presentment currency to customers.Check the GraphQL schema (2026-07) for the exact subfield names.

6Conditions and scope

API

Admin GraphQL API

Not REST — added to the GraphQL Admin API's LineItem object.

Version

2026-07

Refer to the 2026-07 version of the documentation. Verify your app's API version before use.

Not specified

Other scope

Applicability to Bulk Operations, webhook payloads, eligible plans, etc. is not stated in theNot specified.

75 points engineers should know

shop pres

1. Return values are MoneyBag (two currencies)

...Set The suffix denotes MoneyBag, which carriesshopMoney and presentmentMoney . It is not a single amount, so be careful when extracting values.

2. Meaning of "current" = reflects returns/removals

Returns the current value with returned and removed quantitiesexcluded. When a partial return occurs after the order, the value will diverge from the original subtotal — design with this in mind.

no tax

3. Excludes tax

The value does not include tax. For reports that need a tax-inclusive total, you'll need separate logic to combine it with a tax field (the combination method is not described in this announcement).

REST GQL

4. Closes a REST migration gap

current_subtotal_price_set REST implementations that depended on this field are now easier to port to GraphQL, which previously had no equivalent. One piece of the road to graduating from REST.

2026-07

5. Usage targets API version 2026-07

The field documentation is published 2026-07 in this version. If your app is on an older version, the field may not exist in the schema, so align your version before introducing the query. The announcement does notmentionBulk Operations or Webhook handling, so verify the behavior in a sandbox before automating.

8Three use cases you can apply to your work

USE CASE 1

Migrate order exports to accounting/ERP systems to GraphQL

Problem
Teams have been stuck on REST to send line-item-level "discounted, pre-tax subtotals" to accounting/ERP systems via current_subtotal_price_set keeping them locked into REST.
Solution
Replace export logic with a GraphQL query that includes priceAfterAllDiscountsBeforeTaxesSet . Map shop currency for accounting and presentment for customer-facing line items.
Impact
Consolidate order retrieval on GraphQL, fetching all required fields in a single request. Reduces REST dependency.
Technical notes
This is the primary use case the announcement spells out (order export workflows). If you need tax-inclusive figures, build separate logic that combines this with the tax fields.
Return reflection
USE CASE 2

Make post-partial-refund "effective sales" reports accurate

Problem
For orders with partial refunds or line item removals, the original subtotal is still aggregated as-is, causing the dashboard's actual sales to be overstated.
Solution
Switch the aggregation logic to a base that excludes returned/removed quantities priceAfterAllDiscountsBeforeTaxesSet .
Impact
You can aggregate on the "current" line item subtotal that reflects discounts and returns, making the pre-tax effective sales figure accurate.
Technical notes
Since "current" semantically reflects returns and removals, you don't need to maintain a separate deduction calculation on your own.
¥ shop pres Aggregation
USE CASE 3

Per-line margin analysis for multi-currency cross-border stores

Challenge
For cross-border stores selling in a presentment currency, you want to normalize per-line post-discount revenue into the shop currency and reconcile it against cost.
Approach
shopMoney(shop currency) for profit analysis,presentmentMoney(presentment currency) for customer-facing line items. Get both axes from a single field.
Impact
Avoid double-managing currency conversions and visualize margins per line item on a post-discount, pre-tax basis.
Technical notes
Use MoneyBag's shopMoney/presentmentMoney depending on the use case. For metrics that require tax-inclusive values, combine with separate fields.

9One-line summary for proposals

The line item'spost-discount, pre-tax subtotal(equivalent to REST's current_subtotal_price_set ) is now available via the GraphQL Admin API (2026-07).
The current value, excluding returned and removed quantities,both shop currency and presentment currencyfor returns.
A good opportunity to migrate order exports and actual sales reports from REST to GraphQL."