graphql query by "cancelled_at" not working

Joseph_Chan
Shopify Partner
20 0 3

I need to fetch orders that were cancelled within a particular date range:

This is my graphql query:

 

query {
  orders(first: 1, query:"cancelled_at:>2020-09-10") {
    edges {
      	node {
          id
          name
          cancelledAt
          totalPriceSet {
            shopMoney {
              amount
            }
          }
        }
    }
  }
}

 

 

This is the data I'm getting back:

 

  "data": {
    "orders": {
      "edges": [
        {
          "node": {
            "id": "gid://shopify/Order/1480320003",
            "name": "1020",
            "cancelledAt": null,
            "totalPriceSet": {
              "shopMoney": {
                "amount": "49.0"
              }
            }
          }
        }
      ]
    }
  },

 

 

The returned order was never even cancelled.

Is this a bug or am I doing something wrong?

Thanks!

Replies 3 (3)

Gregarican
Shopify Partner
1033 86 285

Are you sure you are even able to query against the cancelled_at value? Looking at the API docs I don't see this listed as a query option --> https://shopify.dev/docs/admin-api/graphql/reference/object/order

_JB
Shopify Staff
836 100 222

Hey @Joseph_Chan,

The order object doesn't support querying directly on the cancelled_at field, but you can use the status field to find cancelled orders and optionally add an additional filter for updated_at. Something like this should work:

 

 

{
  orders(first: 25, query: "status:cancelled updated_at:>'2020-09-10'") {
    edges {
      node {
        id
        name
        cancelledAt
        totalPriceSet {
          shopMoney {
            amount
          }
        }
      }
    }
  }
}

 

 

 

JB | Solutions Engineer @ Shopify 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

Allan_B
Visitor
1 0 0

I have got this to work but wonder why as `status` field is not available in graphql