CartCost
Cart cost breakdown. All amounts are in the buyer preferred currency (auto-converted when the shop runs multi-currency). total is what the buyer will pay at checkout — no need to recompute.
type CartCost {
checkoutCharge: Money @deprecated
checkoutChargeWithConversion: PriceMoney @deprecated
feeAllocations: [CartFeeAllocation!]!
feeTotal: Money!
pricesIncludeTax: Boolean!
subtotal: Money!
subtotalWithConversion: PriceMoney
total: Money!
totalDiscount: Money!
totalDuty: Money
totalDutyWithConversion: PriceMoney
totalShipping: Money
totalTax: Money
totalTaxWithConversion: PriceMoney
totalWithConversion: PriceMoney
}
Fields
CartCost.feeAllocations ● [CartFeeAllocation!]! non-null object
One entry per applied fee — what it is and how much, so the summary can name the charge instead of showing an unexplained amount. Empty when no fee applies. The sum across entries equals feeTotal.
CartCost.feeTotal ● Money! non-null object
Fees charged for the selected payment method (e.g. cash-on-delivery handling), aggregated. Returns an amount of 0 when the buyer has picked no method, or the method carries no fee — so a summary row can be rendered unconditionally and simply shows zero. Already included in total: add it as its own row, never on top of the total.
CartCost.pricesIncludeTax ● Boolean! non-null scalar
How the shop prices its catalog right now (a cart always follows the shop's current setting; an order freezes it at checkout). True: item prices include tax — render total with an "including tax" note. False (tax-exclusive / B2B): subtotal is net and tax is added on top — render totalTax as its own line before total, or the summary rows will not add up. In BOTH modes total is the final amount the buyer pays, tax included.
CartCost.subtotal ● Money! non-null object
Subtotal of items in the cart before taxes, shipping and discounts.
CartCost.subtotalWithConversion ● PriceMoney object
Opt-in: subtotal with full conversion transparency.
CartCost.total ● Money! non-null object
Grand total the buyer will pay — includes taxes, discounts and any selected shipping. Use this directly on the checkout summary instead of summing subtotal + extras.
CartCost.totalDiscount ● Money! non-null object
Aggregated discount across the cart — the sum of every entry in discountAllocations. Returns an amount of 0 when no discount applies.
CartCost.totalDuty ● Money object
Total customs duty on the cart. Null when no duty applies (most domestic orders).
CartCost.totalDutyWithConversion ● PriceMoney object
Opt-in: totalDuty with conversion transparency.
CartCost.totalShipping ● Money object
Cost of the currently selected shipping method. Null until a shipping method is selected — a selected free-shipping method returns an amount of 0, so null unambiguously means "no method chosen yet".
CartCost.totalTax ● Money object
Total tax across all lines. Null when tax has not yet been calculated for this cart (e.g. before an address is set in tax-inclusive shops).
CartCost.totalTaxWithConversion ● PriceMoney object
Opt-in: totalTax with conversion transparency.
CartCost.totalWithConversion ● PriceMoney object
Opt-in: total with conversion transparency.
Show deprecatedHide deprecated
CartCost.checkoutCharge ● Money deprecated object
Use feeTotal with feeAllocations. This field never carried a fee amount. Scheduled for removal after 2026-10-27.
DEPRECATED — do not render. Despite the name and this field history, it has never returned a surcharge: the value equals total, so printing it as a summary row shows the payable amount twice. Use feeTotal for the amount and feeAllocations for the rows behind it. Scheduled for removal; the value is left untouched until then so existing queries keep parsing.
CartCost.checkoutChargeWithConversion ● PriceMoney deprecated object
Use feeTotal with feeAllocations. The underlying checkoutCharge never carried a fee amount. Scheduled for removal after 2026-10-27.
DEPRECATED — conversion twin of checkoutCharge; it shares its flaw (the value equals total) and its removal schedule.
Member Of
Cart object