graphql
Calls Shopify's GraphQL Admin API. It accepts query and variables paramters.
The response is saved in a variable defined following key string: as.
{% graphql query:query_or_mutation_string, variables:variables as result %}
Code below fetches all customers tagged:marketing-enabled and logs customer's details
{%- comment -%} GraphQL queries and mutations definitions {%- endcomment -%}
{% capture customers_query %}
query customers($cursor: String, $query: String) {
customers(first: 250, after: $cursor, query: $query) {
edges {
node {
id
tags
firstName
lastName
}
cursor
}
pageInfo {
hasNextPage
}
}
}
{% endcapture %}
{% assign cursor = "null" | parse_json %}
{% comment %} Iterate over pages {% endcomment %}
{% for n in (0..1000) %}
{% json query_input %}
{
"cursor": {{ cursor | json }},
"query": "tag:marketing-enabled"
}
{% endjson %}
{% graphql query:customers_query, variables:query_input as result %}
{% comment %} Iterate over customer on single page {% endcomment %}
{% for customer_edge in result.customers.edges %}
{% assign customer = customer_edge.node %}
{% log customer %}
{% endfor %}
{% if result.customers.pageInfo.hasNextPage %}
{% assign cursor = result.customers.edges.last.cursor %}
{% else %}
{% break %}
{% endif %}
{% endfor %}
Last updated