Menu
draftOrderCalculate
Calculates the properties of a DraftOrder without creating it. Returns pricing information including CalculatedDraftOrderLineItem totals, shipping charges, applicable discounts, and tax calculations based on the…
Use it in a workflow
- Add a step and choose the Shopify connector.
- Pick the draftOrderCalculate action (under Draft).
- Fill in the fields below, then reference the result from later steps as
{{draftordercalculate.response.data}}.
Query
This is the mutation the action sends by default. Edit it in the step's Query field to change which fields come back.
mutation DraftOrderCalculate($input: DraftOrderInput!) {
draftOrderCalculate(input: $input) {
calculatedDraftOrder {
acceptAutomaticDiscounts
alerts {
actions
content
dismissibleHandle
icon
severity
title
}
allVariantPricesOverridden
amountDueLaterSet {
presentmentMoney
shopMoney
}
amountDueNowSet {
presentmentMoney
shopMoney
}
anyVariantPricesOverridden
appliedDiscount {
amount
amountSet
amountV2
description
title
value
valueType
}
availableShippingRates {
handle
price
title
}
billingAddressMatchesShippingAddress
currencyCode
customer {
amountSpent
canDelete
companyContactProfiles
createdAt
dataSaleOptOut
defaultAddress
defaultEmailAddress
defaultPhoneNumber
displayName
email
emailMarketingConsent
firstName
hasTimelineComment
id
identityProviderSubjects
lastName
lastOrder
legacyResourceId
lifetimeDuration
locale
market
mergeable
multipassIdentifier
note
numberOfOrders
phone
productSubscriberStatus
smsMarketingConsent
state
statistics
tags
taxExempt
taxExemptions
taxSettings
unsubscribeUrl
updatedAt
validEmailAddress
verifiedEmail
}
deposit
discountCodes
lineItems {
appliedDiscount
approximateDiscountedUnitPriceSet
bundleComponents
components
custom
customAttributes
customAttributesV2
discountedTotal
discountedTotalSet
discountedUnitPrice
discountedUnitPriceSet
fulfillmentService
image
isGiftCard
name
originalTotal
originalTotalSet
originalUnitPrice
originalUnitPriceSet
originalUnitPriceWithCurrency
priceOverride
product
quantity
requiresShipping
sku
taxable
title
totalDiscount
totalDiscountSet
uuid
variant
variantTitle
vendor
weight
}
lineItemsSubtotalPrice {
presentmentMoney
shopMoney
}
marketName
marketRegionCountryCode
phone
platformDiscounts {
allocations
automaticDiscount
bxgyDiscount
code
discountClass
discountClasses
discountNode
id
presentationLevel
shortSummary
summary
title
totalAmount
totalAmountPriceSet
}
presentmentCurrencyCode
purchasingEntity
shippingLine {
carrierIdentifier
code
currentDiscountedPriceSet
custom
deliveryCategory
discountAllocations
discountedPrice
discountedPriceSet
id
isRemoved
originalPrice
originalPriceSet
phone
price
requestedFulfillmentService
shippingRateHandle
source
taxLines
title
}
subtotalPrice
subtotalPriceSet {
presentmentMoney
shopMoney
}
taxLines {
channelLiable
price
priceSet
rate
ratePercentage
source
title
}
taxesIncluded
totalDiscountsSet {
presentmentMoney
shopMoney
}
totalLineItemsPriceSet {
presentmentMoney
shopMoney
}
totalPrice
totalPriceSet {
presentmentMoney
shopMoney
}
totalQuantityOfLineItems
totalShippingPrice
totalShippingPriceSet {
presentmentMoney
shopMoney
}
totalTax
totalTaxSet {
presentmentMoney
shopMoney
}
transformerFingerprint
warnings {
errorCode
field
message
}
}
userErrors {
field
message
}
}
}
Variables
Pass these as a JSON object in the step's Variables field.
{
"input": {
"appliedDiscount": {
"value": 0,
"valueType": "FIXED_AMOUNT",
"amount": "string",
"amountWithCurrency": {
"amount": "string",
"currencyCode": "string"
},
"description": "string",
"title": "string"
},
"discountCodes": [
"string"
],
"acceptAutomaticDiscounts": false,
"billingAddress": {
"address1": "string",
"address2": "string",
"city": "string",
"company": "string",
"country": "string",
"countryCode": "AF",
"firstName": "string",
"id": "string",
"lastName": "string",
"phone": "string",
"province": "string",
"provinceCode": "string"
},
"customerId": "string",
"customAttributes": [
{
"key": "string",
"value": "string"
}
],
"email": "string",
"lineItems": [
{
"quantity": "string",
"appliedDiscount": "string",
"customAttributes": "string",
"grams": "string",
"originalUnitPrice": "string",
"originalUnitPriceWithCurrency": "string",
"requiresShipping": "string",
"sku": "string",
"taxable": "string",
"title": "string",
"variantId": "string",
"weight": "string"
}
],
"metafields": [
{
"id": "string",
"namespace": "string",
"key": "string",
"value": "string",
"type": "string"
}
],
"localizationExtensions": [
{
"key": "string",
"value": "string"
}
],
"localizedFields": [
{
"key": "string",
"value": "string"
}
],
"note": "string"
}
}
Response
Read the result with {{draftordercalculate.response.data.data.draftOrderCalculate}}. If the API returns errors, the step fails and they are at {{draftordercalculate.response.data.errors}}.
Need more? See the Shopify guide for connection setup and behaviour shared by every action.
Was this page helpful?