GraphQL mutation doesn't work in custom app but does with GraphiQL App

I’m trying to build the UI for a product discount extension and store the configuration in a metafield associated with the discount. Whenever I run the mutation

mutation MutateMetafield($discId: ID!, $mfId: ID!, $mfValue: String) {
  discountAutomaticAppUpdate(
    id: $discId
    automaticAppDiscount: {metafields: [{id: $mfId, value: $mfValue}]}
  ) {
    userErrors {
      field
      message
    }
  }
}

I get the error “The discount doesn’t exist”, but it works if I run the exact same mutation in the GraphiQL App on the store it works. I’ve double-checked I’ve already got the write_discounts scope added to the shopify.app.toml file and I’m using the official JS client to run the mutation. Where else should I check next? Thanks in advance for any help!

Hi Andy_Hanson-Dvo,

Try printing ID in console and make sure correct ID is being sent to graph QL

If it gets resolved then please mark it as a solution.

Good luck

I figured it out. The discount needed to be written by the custom app originally rather than via the GraphiQL app.

Once I deleted the original discount and recreated it through my app I was able to mutate the metafield as expected.

2 Likes

Awesome. Thanks for the update

1 Like