Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.spojit.com/llms.txt

Use this file to discover all available pages before exploring further.

The Shopify connector lets your workflows interact with a Shopify store through the Admin API. Manage products, fulfil orders, update inventory, and more.
For the full API reference, see the Shopify API documentation.

Connection setup

1

Create a custom app in Shopify

In your Shopify admin, go to Settings → Apps and sales channels → Develop apps. Click Create an app and give it a name (e.g., “Spojit Integration”).
2

Configure API scopes

Click Configure Admin API scopes and enable the scopes your workflows need (e.g., read_products, write_products, read_orders, write_orders, read_customers, write_customers, read_inventory, write_inventory).
3

Install the app and copy the token

Click Install app, then copy the Admin API access token. This token is shown only once — save it securely.
4

Add the connection in Spojit

Go to Connections in Spojit, click Add Connection, select Shopify, and enter:
  • Store Name: Your store name (e.g., my-store — without .myshopify.com)
  • Admin API Access Token: The token you copied
  • API Version (optional): Defaults to the latest stable version

Tools

Shop

Returns store details including name, domain, currency, timezone, and plan.No parameters required.Example request:
{
  "query": "{ shop { name primaryDomain { url host } email myshopifyDomain currencyCode plan { displayName } } }"
}
Example response:
{
  "data": {
    "shop": {
      "name": "My Store",
      "primaryDomain": {
        "url": "https://my-store.myshopify.com",
        "host": "my-store.myshopify.com"
      },
      "email": "owner@my-store.com",
      "myshopifyDomain": "my-store.myshopify.com",
      "currencyCode": "USD",
      "plan": {
        "displayName": "Basic Shopify"
      }
    }
  }
}

Products

query
string
Shopify search query (e.g., status:active, title:shirt). Optional.
first
number
default:"20"
Number of results to return (max 250).
after
string
Pagination cursor for the next page.
Example request:
{
  "query": "status:active",
  "first": 3
}
Example response:
{
  "data": {
    "products": {
      "edges": [
        {
          "node": {
            "id": "gid://shopify/Product/1234567890",
            "title": "Classic Leather Jacket",
            "status": "ACTIVE",
            "vendor": "Acme Apparel",
            "productType": "Outerwear",
            "createdAt": "2024-01-15T10:30:00Z",
            "updatedAt": "2024-03-20T14:22:00Z",
            "tags": ["leather", "jacket", "premium"]
          },
          "cursor": "eyJsYXN0X2lkIjoxMjM0NTY3ODkwfQ=="
        },
        {
          "node": {
            "id": "gid://shopify/Product/1234567891",
            "title": "Cotton T-Shirt",
            "status": "ACTIVE",
            "vendor": "Acme Apparel",
            "productType": "Tops",
            "createdAt": "2024-02-01T08:00:00Z",
            "updatedAt": "2024-03-18T09:15:00Z",
            "tags": ["cotton", "t-shirt", "basics"]
          },
          "cursor": "eyJsYXN0X2lkIjoxMjM0NTY3ODkxfQ=="
        }
      ],
      "pageInfo": {
        "hasNextPage": true,
        "endCursor": "eyJsYXN0X2lkIjoxMjM0NTY3ODkxfQ=="
      }
    }
  }
}
Returns full product details including variants and images.
id
string
required
Product ID (numeric or Shopify GID).
Example request:
{
  "id": "gid://shopify/Product/1234567890"
}
Example response:
{
  "data": {
    "product": {
      "id": "gid://shopify/Product/1234567890",
      "title": "Classic Leather Jacket",
      "descriptionHtml": "<p>Premium full-grain leather jacket with satin lining.</p>",
      "vendor": "Acme Apparel",
      "productType": "Outerwear",
      "status": "ACTIVE",
      "tags": ["leather", "jacket", "premium"],
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-03-20T14:22:00Z",
      "variants": {
        "edges": [
          {
            "node": {
              "id": "gid://shopify/ProductVariant/111111111",
              "title": "Small / Black",
              "price": "299.00",
              "sku": "LJ-BLK-S",
              "inventoryQuantity": 15
            }
          },
          {
            "node": {
              "id": "gid://shopify/ProductVariant/222222222",
              "title": "Medium / Black",
              "price": "299.00",
              "sku": "LJ-BLK-M",
              "inventoryQuantity": 23
            }
          }
        ]
      },
      "images": {
        "edges": [
          {
            "node": {
              "id": "gid://shopify/ProductImage/333333333",
              "url": "https://cdn.shopify.com/s/files/1/0000/0001/products/leather-jacket.jpg",
              "altText": "Classic Leather Jacket front view"
            }
          }
        ]
      }
    }
  }
}
title
string
required
Product title.
descriptionHtml
string
HTML description.
vendor
string
Vendor name.
productType
string
Product type.
tags
string[]
Product tags.
status
string
default:"DRAFT"
Product status: ACTIVE, DRAFT, or ARCHIVED.
Example request:
{
  "title": "Classic Leather Jacket",
  "descriptionHtml": "<p>Premium full-grain leather jacket with satin lining.</p>",
  "vendor": "Acme Apparel",
  "productType": "Outerwear",
  "tags": ["leather", "jacket", "premium"],
  "status": "DRAFT"
}
Example response:
{
  "data": {
    "productCreate": {
      "product": {
        "id": "gid://shopify/Product/1234567890",
        "title": "Classic Leather Jacket",
        "descriptionHtml": "<p>Premium full-grain leather jacket with satin lining.</p>",
        "vendor": "Acme Apparel",
        "productType": "Outerwear",
        "status": "DRAFT",
        "tags": ["leather", "jacket", "premium"],
        "createdAt": "2024-03-20T14:22:00Z"
      },
      "userErrors": []
    }
  }
}
id
string
required
Product ID.
title
string
New title.
descriptionHtml
string
New HTML description.
vendor
string
New vendor.
productType
string
New product type.
tags
string[]
New tags.
status
string
New status: ACTIVE, DRAFT, or ARCHIVED.
Example request:
{
  "id": "gid://shopify/Product/1234567890",
  "title": "Premium Leather Jacket",
  "status": "ACTIVE"
}
Example response:
{
  "data": {
    "productUpdate": {
      "product": {
        "id": "gid://shopify/Product/1234567890",
        "title": "Premium Leather Jacket",
        "status": "ACTIVE",
        "updatedAt": "2024-03-21T09:00:00Z"
      },
      "userErrors": []
    }
  }
}
id
string
required
Product ID.
Example request:
{
  "id": "gid://shopify/Product/1234567890"
}
Example response:
{
  "data": {
    "productDelete": {
      "deletedProductId": "gid://shopify/Product/1234567890",
      "userErrors": []
    }
  }
}

Orders

query
string
Shopify search query (e.g., financial_status:paid).
first
number
default:"20"
Number of results (max 250).
after
string
Pagination cursor.
Example request:
{
  "query": "financial_status:paid",
  "first": 5
}
Example response:
{
  "data": {
    "orders": {
      "edges": [
        {
          "node": {
            "id": "gid://shopify/Order/4567890123",
            "name": "#1001",
            "createdAt": "2024-03-15T12:00:00Z",
            "displayFinancialStatus": "PAID",
            "displayFulfillmentStatus": "UNFULFILLED",
            "totalPriceSet": {
              "shopMoney": {
                "amount": "349.00",
                "currencyCode": "USD"
              }
            },
            "customer": {
              "id": "gid://shopify/Customer/7890123456",
              "displayName": "Jane Doe"
            }
          },
          "cursor": "eyJsYXN0X2lkIjo0NTY3ODkwMTIzfQ=="
        }
      ],
      "pageInfo": {
        "hasNextPage": true,
        "endCursor": "eyJsYXN0X2lkIjo0NTY3ODkwMTIzfQ=="
      }
    }
  }
}
id
string
required
Order ID.
Example request:
{
  "id": "gid://shopify/Order/4567890123"
}
Example response:
{
  "data": {
    "order": {
      "id": "gid://shopify/Order/4567890123",
      "name": "#1001",
      "createdAt": "2024-03-15T12:00:00Z",
      "displayFinancialStatus": "PAID",
      "displayFulfillmentStatus": "UNFULFILLED",
      "note": null,
      "tags": [],
      "totalPriceSet": {
        "shopMoney": {
          "amount": "349.00",
          "currencyCode": "USD"
        }
      },
      "subtotalPriceSet": {
        "shopMoney": {
          "amount": "299.00",
          "currencyCode": "USD"
        }
      },
      "totalShippingPriceSet": {
        "shopMoney": {
          "amount": "50.00",
          "currencyCode": "USD"
        }
      },
      "totalTaxSet": {
        "shopMoney": {
          "amount": "0.00",
          "currencyCode": "USD"
        }
      },
      "customer": {
        "id": "gid://shopify/Customer/7890123456",
        "displayName": "Jane Doe",
        "email": "jane@example.com"
      },
      "lineItems": {
        "edges": [
          {
            "node": {
              "title": "Classic Leather Jacket",
              "quantity": 1,
              "variant": {
                "id": "gid://shopify/ProductVariant/111111111",
                "title": "Small / Black",
                "price": "299.00"
              }
            }
          }
        ]
      },
      "shippingAddress": {
        "address1": "123 Main St",
        "city": "Portland",
        "province": "Oregon",
        "country": "United States",
        "zip": "97201"
      }
    }
  }
}
id
string
required
Order ID.
tags
string[]
New tags.
note
string
New note.
Example request:
{
  "id": "gid://shopify/Order/4567890123",
  "tags": ["vip", "priority"],
  "note": "Customer requested gift wrapping"
}
Example response:
{
  "data": {
    "orderUpdate": {
      "order": {
        "id": "gid://shopify/Order/4567890123",
        "name": "#1001",
        "tags": ["vip", "priority"],
        "note": "Customer requested gift wrapping"
      },
      "userErrors": []
    }
  }
}
id
string
required
Order ID.
reason
string
default:"OTHER"
Cancel reason: CUSTOMER, FRAUD, INVENTORY, DECLINED, or OTHER.
refund
boolean
default:"false"
Issue a refund.
restock
boolean
default:"false"
Restock inventory.
Example request:
{
  "id": "gid://shopify/Order/4567890123",
  "reason": "CUSTOMER",
  "refund": true,
  "restock": true
}
Example response:
{
  "data": {
    "orderCancel": {
      "order": {
        "id": "gid://shopify/Order/4567890123",
        "name": "#1001",
        "cancelledAt": "2024-03-21T10:30:00Z",
        "cancelReason": "CUSTOMER",
        "displayFinancialStatus": "REFUNDED",
        "displayFulfillmentStatus": "UNFULFILLED"
      },
      "orderCancelUserErrors": []
    }
  }
}
id
string
required
Order ID.
Example request:
{
  "id": "gid://shopify/Order/4567890123"
}
Example response:
{
  "data": {
    "orderClose": {
      "order": {
        "id": "gid://shopify/Order/4567890123",
        "name": "#1001",
        "closed": true,
        "closedAt": "2024-03-21T11:00:00Z"
      },
      "userErrors": []
    }
  }
}

Customers

query
string
Shopify search query.
first
number
default:"20"
Number of results (max 250).
after
string
Pagination cursor.
Example request:
{
  "first": 5
}
Example response:
{
  "data": {
    "customers": {
      "edges": [
        {
          "node": {
            "id": "gid://shopify/Customer/7890123456",
            "firstName": "Jane",
            "lastName": "Doe",
            "email": "jane@example.com",
            "phone": "+15551234567",
            "state": "ENABLED",
            "tags": ["vip"],
            "note": null,
            "numberOfOrders": "3",
            "createdAt": "2024-01-10T08:00:00Z",
            "updatedAt": "2024-03-20T14:00:00Z"
          },
          "cursor": "eyJsYXN0X2lkIjo3ODkwMTIzNDU2fQ=="
        }
      ],
      "pageInfo": {
        "hasNextPage": true,
        "endCursor": "eyJsYXN0X2lkIjo3ODkwMTIzNDU2fQ=="
      }
    }
  }
}
id
string
required
Customer ID.
Example request:
{
  "id": "gid://shopify/Customer/7890123456"
}
Example response:
{
  "data": {
    "customer": {
      "id": "gid://shopify/Customer/7890123456",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane@example.com",
      "phone": "+15551234567",
      "state": "ENABLED",
      "tags": ["vip"],
      "note": "Preferred customer",
      "numberOfOrders": "3",
      "amountSpent": {
        "amount": "947.00",
        "currencyCode": "USD"
      },
      "createdAt": "2024-01-10T08:00:00Z",
      "updatedAt": "2024-03-20T14:00:00Z",
      "defaultAddress": {
        "address1": "123 Main St",
        "city": "Portland",
        "province": "Oregon",
        "country": "United States",
        "zip": "97201"
      }
    }
  }
}
firstName
string
First name.
lastName
string
Last name.
email
string
Email address.
phone
string
Phone number.
tags
string[]
Customer tags.
note
string
Internal note.
Example request:
{
  "firstName": "Jane",
  "lastName": "Doe",
  "email": "jane@example.com",
  "phone": "+15551234567",
  "tags": ["newsletter"],
  "note": "Signed up at trade show"
}
Example response:
{
  "data": {
    "customerCreate": {
      "customer": {
        "id": "gid://shopify/Customer/7890123456",
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane@example.com",
        "phone": "+15551234567",
        "tags": ["newsletter"],
        "note": "Signed up at trade show",
        "createdAt": "2024-03-21T09:00:00Z"
      },
      "userErrors": []
    }
  }
}
id
string
required
Customer ID.
firstName
string
First name.
lastName
string
Last name.
email
string
Email address.
phone
string
Phone number.
tags
string[]
Customer tags.
note
string
Internal note.
Example request:
{
  "id": "gid://shopify/Customer/7890123456",
  "tags": ["vip", "newsletter"],
  "note": "Upgraded to VIP after 3rd purchase"
}
Example response:
{
  "data": {
    "customerUpdate": {
      "customer": {
        "id": "gid://shopify/Customer/7890123456",
        "firstName": "Jane",
        "lastName": "Doe",
        "tags": ["vip", "newsletter"],
        "note": "Upgraded to VIP after 3rd purchase",
        "updatedAt": "2024-03-21T09:30:00Z"
      },
      "userErrors": []
    }
  }
}

Collections

query
string
Shopify search query.
first
number
default:"20"
Number of results.
after
string
Pagination cursor.
Example request:
{
  "first": 5
}
Example response:
{
  "data": {
    "collections": {
      "edges": [
        {
          "node": {
            "id": "gid://shopify/Collection/9876543210",
            "title": "Summer Collection",
            "descriptionHtml": "<p>Lightweight essentials for warm weather.</p>",
            "handle": "summer-collection",
            "sortOrder": "BEST_SELLING",
            "productsCount": {
              "count": 12
            },
            "updatedAt": "2024-03-15T10:00:00Z"
          },
          "cursor": "eyJsYXN0X2lkIjo5ODc2NTQzMjEwfQ=="
        }
      ],
      "pageInfo": {
        "hasNextPage": true,
        "endCursor": "eyJsYXN0X2lkIjo5ODc2NTQzMjEwfQ=="
      }
    }
  }
}
id
string
required
Collection ID.
Example request:
{
  "id": "gid://shopify/Collection/9876543210"
}
Example response:
{
  "data": {
    "collection": {
      "id": "gid://shopify/Collection/9876543210",
      "title": "Summer Collection",
      "descriptionHtml": "<p>Lightweight essentials for warm weather.</p>",
      "handle": "summer-collection",
      "sortOrder": "BEST_SELLING",
      "productsCount": {
        "count": 12
      },
      "updatedAt": "2024-03-15T10:00:00Z",
      "products": {
        "edges": [
          {
            "node": {
              "id": "gid://shopify/Product/1234567891",
              "title": "Cotton T-Shirt",
              "status": "ACTIVE"
            }
          }
        ]
      }
    }
  }
}
title
string
required
Collection title.
descriptionHtml
string
HTML description.
sortOrder
string
Sort order for products in the collection.
Example request:
{
  "title": "Summer Collection",
  "descriptionHtml": "<p>Lightweight essentials for warm weather.</p>",
  "sortOrder": "BEST_SELLING"
}
Example response:
{
  "data": {
    "collectionCreate": {
      "collection": {
        "id": "gid://shopify/Collection/9876543210",
        "title": "Summer Collection",
        "descriptionHtml": "<p>Lightweight essentials for warm weather.</p>",
        "handle": "summer-collection",
        "sortOrder": "BEST_SELLING",
        "updatedAt": "2024-03-21T09:00:00Z"
      },
      "userErrors": []
    }
  }
}

Inventory

Returns inventory quantities across all locations.
inventoryItemId
string
required
Inventory Item ID.
Example request:
{
  "inventoryItemId": "gid://shopify/InventoryItem/5555555555"
}
Example response:
{
  "data": {
    "inventoryItem": {
      "id": "gid://shopify/InventoryItem/5555555555",
      "tracked": true,
      "sku": "LJ-BLK-S",
      "inventoryLevels": {
        "edges": [
          {
            "node": {
              "id": "gid://shopify/InventoryLevel/88888888?inventory_item_id=5555555555",
              "quantities": [
                {
                  "name": "available",
                  "quantity": 15
                },
                {
                  "name": "committed",
                  "quantity": 3
                },
                {
                  "name": "on_hand",
                  "quantity": 18
                }
              ],
              "location": {
                "id": "gid://shopify/Location/6666666666",
                "name": "Main Warehouse"
              }
            }
          }
        ]
      }
    }
  }
}
inventoryItemId
string
required
Inventory Item ID.
locationId
string
required
Location ID.
delta
number
required
Quantity change (positive to add, negative to subtract).
reason
string
default:"correction"
Adjustment reason code. Valid values: correction, cycle_count_available, damaged, movement_created, movement_received, movement_updated, other, promotion, quality_control, received, reservation_created, reservation_deleted, reservation_updated, restock, safety_stock, shrinkage.
Example request:
{
  "inventoryItemId": "gid://shopify/InventoryItem/5555555555",
  "locationId": "gid://shopify/Location/6666666666",
  "delta": 10,
  "reason": "correction"
}
Example response:
{
  "data": {
    "inventoryAdjustQuantities": {
      "changes": [
        {
          "name": "available",
          "delta": 10,
          "quantityAfterChange": 25,
          "item": {
            "id": "gid://shopify/InventoryItem/5555555555",
            "sku": "LJ-BLK-S"
          },
          "location": {
            "id": "gid://shopify/Location/6666666666",
            "name": "Main Warehouse"
          }
        }
      ],
      "userErrors": []
    }
  }
}

Discounts

first
number
default:"20"
Number of results (max 250).
after
string
Pagination cursor.
Example request:
{
  "first": 5
}
Example response:
{
  "data": {
    "codeDiscountNodes": {
      "edges": [
        {
          "node": {
            "id": "gid://shopify/DiscountCodeNode/1111111111",
            "codeDiscount": {
              "title": "SUMMER20",
              "status": "ACTIVE",
              "startsAt": "2024-06-01T00:00:00Z",
              "endsAt": "2024-08-31T23:59:59Z",
              "usageLimit": 1000,
              "asyncUsageCount": 142,
              "appliesOncePerCustomer": true,
              "codes": {
                "edges": [
                  {
                    "node": {
                      "code": "SUMMER20"
                    }
                  }
                ]
              }
            }
          },
          "cursor": "eyJsYXN0X2lkIjoxMTExMTExMTExfQ=="
        }
      ],
      "pageInfo": {
        "hasNextPage": false,
        "endCursor": "eyJsYXN0X2lkIjoxMTExMTExMTExfQ=="
      }
    }
  }
}
title
string
required
Discount title.
code
string
required
Discount code customers will enter.
type
string
required
Discount type: percentage or fixed.
value
number
required
Discount value. For percentage type, use a decimal (e.g., 0.2 for 20%). For fixed type, use the currency amount (e.g., 10 for $10 off).
startsAt
string
Start date (ISO 8601).
endsAt
string
End date (ISO 8601).
usageLimit
number
Maximum number of uses.
appliesOncePerCustomer
boolean
default:"false"
Limit to one use per customer.
Example request:
{
  "title": "SUMMER20",
  "code": "SUMMER20",
  "type": "percentage",
  "value": 0.2,
  "startsAt": "2024-06-01T00:00:00Z",
  "endsAt": "2024-08-31T23:59:59Z",
  "usageLimit": 1000,
  "appliesOncePerCustomer": true
}
Example response:
{
  "data": {
    "discountCodeBasicCreate": {
      "codeDiscountNode": {
        "id": "gid://shopify/DiscountCodeNode/1111111111",
        "codeDiscount": {
          "title": "SUMMER20",
          "status": "ACTIVE",
          "startsAt": "2024-06-01T00:00:00Z",
          "endsAt": "2024-08-31T23:59:59Z",
          "usageLimit": 1000,
          "appliesOncePerCustomer": true,
          "codes": {
            "edges": [
              {
                "node": {
                  "code": "SUMMER20"
                }
              }
            ]
          }
        }
      },
      "userErrors": []
    }
  }
}
id
string
required
Discount node ID.
Example request:
{
  "id": "gid://shopify/DiscountCodeNode/1111111111"
}
Example response:
{
  "data": {
    "discountCodeDelete": {
      "deletedCodeDiscountId": "gid://shopify/DiscountCodeNode/1111111111",
      "userErrors": []
    }
  }
}

Advanced

Run any GraphQL query or mutation against the Shopify Admin API.
query
string
required
GraphQL query or mutation string.
variables
object
GraphQL variables.
Example request:
{
  "query": "query ($first: Int!) { products(first: $first) { edges { node { id title status } } } }",
  "variables": {
    "first": 5
  }
}
Example response:
{
  "data": {
    "products": {
      "edges": [
        {
          "node": {
            "id": "gid://shopify/Product/1234567890",
            "title": "Classic Leather Jacket",
            "status": "ACTIVE"
          }
        },
        {
          "node": {
            "id": "gid://shopify/Product/1234567891",
            "title": "Cotton T-Shirt",
            "status": "ACTIVE"
          }
        }
      ]
    }
  }
}