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.
Connection setup
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”).
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).
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.
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
Shop
get-shop — Get store information
Products
list-products — List or search products
Shopify search query (e.g., status:active, title:shirt). Optional.
Number of results to return (max 250).
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=="
}
}
}
}
get-product — Get product by ID
Returns full product details including variants and images. 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"
}
}
]
}
}
}
}
create-product — Create a new product
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" : []
}
}
}
update-product — Update an existing product
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" : []
}
}
}
delete-product — Permanently delete a product
Example request: {
"id" : "gid://shopify/Product/1234567890"
}
Example response: {
"data" : {
"productDelete" : {
"deletedProductId" : "gid://shopify/Product/1234567890" ,
"userErrors" : []
}
}
}
Orders
list-orders — List or filter orders
Shopify search query (e.g., financial_status:paid).
Number of results (max 250).
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=="
}
}
}
}
get-order — Get order by 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"
}
}
}
}
update-order — Update order tags or notes
cancel-order — Cancel an order
Cancel reason: CUSTOMER, FRAUD, INVENTORY, DECLINED, or OTHER.
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" : []
}
}
}
close-order — Close/complete an order
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
list-customers — List or search customers
Number of results (max 250).
Example request: 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=="
}
}
}
}
get-customer — Get customer by 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"
}
}
}
}
create-customer — Create a new customer
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" : []
}
}
}
update-customer — Update a customer
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
list-collections — List collections
Example request: 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=="
}
}
}
}
get-collection — Get collection by 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"
}
}
]
}
}
}
}
create-collection — Create a new collection
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
get-inventory-levels — Get inventory quantities
Returns inventory quantities across all locations. 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"
}
}
}
]
}
}
}
}
adjust-inventory — Adjust inventory quantity
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
list-discounts — List discount codes
Number of results (max 250).
Example request: 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=="
}
}
}
}
create-discount — Create a discount code
Discount code customers will enter.
Discount type: percentage or fixed.
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).
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" : []
}
}
}
delete-discount — Delete a discount code
Example request: {
"id" : "gid://shopify/DiscountCodeNode/1111111111"
}
Example response: {
"data" : {
"discountCodeDelete" : {
"deletedCodeDiscountId" : "gid://shopify/DiscountCodeNode/1111111111" ,
"userErrors" : []
}
}
}
Advanced
raw-graphql — Execute arbitrary GraphQL
Run any GraphQL query or mutation against the Shopify Admin API. GraphQL query or mutation string.
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"
}
}
]
}
}
}