How to Get Discount Codes already applied in Shopify Function input?

Topic summary

Shopify Functions input for product discounts does not expose applied discounts or coupon codes, preventing logic that depends on the entered code or pre-existing discounts. A provided GraphQL query and input log show cart costs unchanged despite a 30% code (EXTRA) applied, confirming the function cannot “see” the discount.

Requested use cases:

  • Adjust discount percentage based on the entered discount code plus product tags (e.g., EXTRA20 + tag “Sale” → increase to 30%).
  • Determine free shipping eligibility based on pre-discount subtotal (e.g., purchases over $500 qualify even if a $300 code reduces the checkout total below $500).

Shopify staff acknowledged the need, asked for context, and said they would relay feedback, hinting at upcoming releases but providing no timeline. Multiple participants asked when discount code access will be available.

One workaround was suggested for shipping thresholds via a third-party app (Better Free Shipping), which can base eligibility on subtotal before discounts.

Status: no native solution yet; feature request remains open with no ETA. Code snippets and logs are central to understanding the issue.

Summarized with AI on December 28. AI used: gpt-5.

The graphQL (Shopify Functions - Product API) does not seem to return the Discounts or Codes already applied in the Cart (ie. Automatic Discount)

Graphql:

query Input($tags: [String!]!) {
  cart {
    cost {
      subtotalAmount {
        amount
      }
      totalAmount {
        amount
      }
    }
    lines {
      quantity
      cost {
        amountPerQuantity {
          amount
        }
        compareAtAmountPerQuantity {
          amount
        }
        subtotalAmount {
          amount
        }
        totalAmount {
          amount
        }
      }
      merchandise {
        __typename
        ... on ProductVariant {
          id
          product {
            doTagsMatch: hasAnyTag(tags: $tags)
            id
          }
        }
      }
    }
  }
  discountNode {
    metafield(namespace: "$app:discount-price", key: "function-configuration") {
      value
    }
  }
}

Shopify input Log. The Functions does not seem to see 30% discount with the code EXTRA is already applied in the cart/checkout

{
  "cart": {
    "cost": {
      "subtotalAmount": {
        "amount": "300.0"
      },
      "totalAmount": {
        "amount": "300.0"
      }
    },
    "lines": [
      {
        "quantity": 1,
        "cost": {
          "amountPerQuantity": {
            "amount": "100.0"
          },
          "compareAtAmountPerQuantity": null,
          "subtotalAmount": {
            "amount": "100.0"
          },
          "totalAmount": {
            "amount": "100.0"
          }
        },
        "merchandise": {
          "__typename": "ProductVariant",
          "id": "gid://shopify/ProductVariant/44281460818228",
          "product": {
            "doTagsMatch": false,
            "id": "gid://shopify/Product/8085131100468"
          }
        }
      },
      {
        "quantity": 1,
        "cost": {
          "amountPerQuantity": {
            "amount": "100.0"
          },
          "compareAtAmountPerQuantity": null,
          "subtotalAmount": {
            "amount": "100.0"
          },
          "totalAmount": {
            "amount": "100.0"
          }
        },
        "merchandise": {
          "__typename": "ProductVariant",
          "id": "gid://shopify/ProductVariant/45604449288500",
          "product": {
            "doTagsMatch": true,
            "id": "gid://shopify/Product/8396169052468"
          }
        }
      },
      {
        "quantity": 1,
        "cost": {
          "amountPerQuantity": {
            "amount": "100.0"
          },
          "compareAtAmountPerQuantity": null,
          "subtotalAmount": {
            "amount": "100.0"
          },
          "totalAmount": {
            "amount": "100.0"
          }
        },
        "merchandise": {
          "__typename": "ProductVariant",
          "id": "gid://shopify/ProductVariant/45604736958772",
          "product": {
            "doTagsMatch": true,
            "id": "gid://shopify/Product/8396223971636"
          }
        }
      }
    ]
  },
  "discountNode": {
    "metafield": {
      "value": "{\"targetingStrategy\":\"tag\",\"tags\":[\"Sale\"],\"message\":\"10% Extra\",\"percentage\":10}"
    }
  }
}
7 Likes

Hi there :waving_hand:

Could you explain your use case why you need to access that discount information?

1 Like

The Merchant is asking us to replicate what we did with Shopify Scripts.

Logic:

Increase or Decrease the % of discount based on:

  • Entered Discount code

  • Product Tag

Example:

  • User entered the Coupon Code EXTRA20 (20% discount)

  • The Product has tag Sale (will get an extra 10% Off)

Result: We increase the Discount to 30%

Thanks for providing that additional context!

I will provide this feedback to the team!
Keep your eyes out for new releases in this area, coming soon.

When can we expect the release of this feature?

Hi @lizk ,

I am facing similar problem. Here’s my case:

Currently, our site has free shipping for purchases over $500

We’ll give discount code to some customers - $300 off

Customer A purchases $700 worth of products. Checkout total price = $200

i.e. shipping fees applies.

Customer B purchases $1000 worth of products. Checkout total price = $700

i.e. shipping fees does not apply.

We would like to let both customer A & B enjoy free shipping because both Customer A & B purchases over $500 worth of products before applying the discount code.

Hi @lizk ,

Do you have any feedback on when we will be able to get the discount code as Input of the Shopify function?

Same issue to me, no way get coupon code already applied in cart for now.

Hi @slasw7
A little late, but you can offer this type of shipping discount (based on subtotal, ie. price before other discounts) using https://apps.shopify.com/better-free-shipping
Let me know if you have any questions.

Hi, do you have any feedback on when we will be able to get the discount code as Input of the Shopify function?

Thank you!