/shopify-graphql-learning-kit
Forked from shopifypartners/shopify-graphql-learning-kit
Created May 22, 2020
# Insomnia Configuration | |
## Run the test query | |
{ | |
shop { | |
id | |
name | |
} | |
} | |
# Query Structure Examples | |
## QueryRoot objects | |
{ | |
shop { | |
id | |
name | |
description | |
} | |
} | |
## Connections and edges | |
{ | |
products(first:3) { | |
edges { | |
node { | |
id | |
handle | |
variants(first:3) { | |
edges { | |
node { | |
id | |
displayName | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
## Filtering connections using the query parameter | |
{ | |
orders(first:10, query:"fulfillment_status:fulfilled") { | |
edges { | |
node { | |
id | |
name | |
displayFulfillmentStatus | |
} | |
} | |
} | |
} | |
## Single Object by ID | |
{ | |
product(id: "gid://shopify/Product/1730990145609") { | |
id | |
handle | |
variants (first:5) { | |
edges { | |
node { | |
title | |
} | |
} | |
} | |
} | |
} | |
# Mutation Structure Examples | |
## Basics and Inputs | |
mutation { | |
customerCreate ( | |
input: { | |
firstName: "GraphQL", | |
lastName: "Customer", | |
email: "gqlcustomer@gmail.com" | |
} | |
) | |
{ | |
customer { | |
id | |
firstName | |
lastName | |
} | |
userErrors { | |
field | |
message | |
} | |
} | |
} | |
## Inputs v2 | |
mutation { | |
draftOrderCreate( | |
input: { | |
customerId: "gid://shopify/Customer/870935789641", | |
lineItems: [ | |
{ | |
title: "My custom line item!", | |
quantity: 1, | |
originalUnitPrice: 10 | |
}, | |
{ | |
title: "My SECOND custom line item!", | |
quantity: 3, | |
originalUnitPrice: 3.99 | |
} | |
] | |
} | |
) | |
{ | |
userErrors { | |
field | |
message | |
} | |
draftOrder { | |
id | |
customer { | |
id | |
} | |
} | |
} | |
} | |
# GraphQL Variables | |
## Variables | |
### query | |
query getDraftOrderByID($id: ID!) { | |
draftOrder (id: $id) { | |
totalPrice | |
lineItems (first: 5) { | |
edges { | |
node { | |
originalUnitPrice | |
quantity | |
} | |
} | |
} | |
} | |
} | |
### variables | |
{ | |
"id": "gid://shopify/DraftOrder/135477690441" | |
} | |
# Pagination | |
## What is PageInfo? | |
### query | |
query getFirstOrders($numOrders: Int, $numLineItems: Int) | |
{ | |
orders(first:$numOrders) { | |
pageInfo { | |
hasNextPage | |
} | |
edges { | |
node { | |
id | |
lineItems (first:$numLineItems) { | |
edges { | |
node { | |
id | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
### variables | |
{ | |
"numOrders": 10, | |
"numLineItems": 5 | |
} | |
## The Cursor | |
### query | |
query getFirstOrdersCursor($numOrders: Int, $numLineItems: Int) | |
{ | |
orders(first:$numOrders) { | |
pageInfo { | |
hasNextPage | |
} | |
edges { | |
cursor | |
node { | |
id | |
lineItems (first:$numLineItems) { | |
edges { | |
node { | |
id | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
### variables | |
{ | |
"numOrders": 10, | |
"numLineItems": 5 | |
} | |
## The Cursor v2 | |
### query | |
query getFirstOrdersWithCursor($numOrders: Int, $numLineItems: Int, $cursor: String) | |
{ | |
orders(first:$numOrders, after:$cursor) { | |
pageInfo { | |
hasNextPage | |
} | |
edges { | |
cursor | |
node { | |
id | |
lineItems (first:$numLineItems) { | |
edges { | |
node { | |
id | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
### variables | |
{ | |
"numOrders": 10, | |
"numLineItems": 5, | |
"cursor": "eyJsYXN0X2lkIjo2OTA1NzE5MzU4MTcsImxhc3RfdmFsdWUiOiIyMDE3LTExLTIxIDE0OjE3OjAzIn0=" | |
} | |
# Advanced | |
## Fragments - Handle Multiple Cases | |
### query | |
query getLineItemLocationId($id: ID!) { | |
node(id: $id) { | |
... on LineItem { | |
id | |
variant { | |
inventoryItem { | |
inventoryLevels(first: 1) { | |
edges { | |
node { | |
location { | |
id | |
name | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
### variables | |
{ | |
"id": "gid://shopify/LineItem/1588425490505" | |
} | |
## Multiple Queries - One Request | |
mutation { | |
VipGold: customerUpdate( | |
input: { | |
id: "gid://shopify/Customer/870935789641", | |
tags: ["Gold"] | |
} | |
) | |
{ | |
customer { | |
tags | |
} | |
} | |
VipPlatinum: customerUpdate( | |
input: { | |
id: "gid://shopify/Customer/870602047561", | |
tags: ["Platinum"] | |
} | |
) | |
{ | |
customer { | |
tags | |
} | |
} | |
VipDiamond: customerUpdate( | |
input: { | |
id: "gid://shopify/Customer/870602014793", | |
tags: ["Diamond"] | |
} | |
) | |
{ | |
customer { | |
tags | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment