Admin API
GraphQL Admin API reference
Generated from the live schema. Root types:
Queries
| shop | Shop! The current store. |
product
| Product Get a product by ID. Requires read_products. |
products
| ProductConnection! List products, newest first. query matches title, vendor, type, tag or SKU. Requires read_products. |
collections
| CollectionConnection! List collections. Requires read_products. |
order
| Order Get an order by ID. Requires read_orders. |
orders
| OrderConnection! List orders, newest first. query matches order number, email or customer name. Requires read_orders. |
customers
| CustomerConnection! List customers. Requires read_customers. |
| locations | [Location!]! Stock locations. Requires read_inventory. |
| webhookSubscriptions | [WebhookSubscription!]! This app's webhook subscriptions. |
| themes | [Theme!]! The store's themes, live theme first. Requires read_themes. |
theme
| Theme Get a theme by ID. Requires read_themes. |
discountCodes
| DiscountCodeConnection! Discount codes, newest first. query matches the code or title. Requires read_discounts. |
Mutations
productCreate
| ProductPayload! Create a product with options, variants and images. Requires write_products. |
productUpdate
| ProductPayload! Update product-level fields. Requires write_products. |
productVariantUpdate
| ProductVariantPayload! Update a variant's price, compare-at price or SKU. Requires write_products. |
productDelete
| DeletePayload! Delete a product. Requires write_products. |
inventorySetOnHand
| InventoryPayload! Set the on-hand quantity of a variant at a location (default location if omitted). Requires write_inventory. |
orderMarkAsPaid
| OrderPayload! Record the outstanding balance as paid (e.g. COD collected). Requires write_orders. |
fulfillmentCreate
| OrderPayload! Fulfill line items (all remaining items if lineItems is omitted). Requires write_orders. |
webhookSubscriptionCreate
| WebhookSubscriptionPayload! Subscribe this app to a webhook topic. Requires the topic's read scope. |
webhookSubscriptionDelete
| DeletePayload! Remove one of this app's webhook subscriptions. |
themeCreate
| ThemePayload! Add an unpublished theme with the starter files. Requires write_themes. |
themeFilesUpsert
| ThemeFilesUpsertPayload! Create or replace up to 50 files (5 MB in total) in a theme. Each file is validated like in the code editor. Requires write_themes. |
themeFilesDelete
| ThemeFilesDeletePayload! Delete files from a theme. Required files (layout/theme.liquid, config/settings_*.json, assets/custom.*) are kept. Requires write_themes. |
themePublish
| ThemePayload! Make a theme the live theme. Requires write_themes. |
themeDelete
| DeletePayload! Delete an unpublished theme. Requires write_themes. |
discountCodeCreate
| DiscountCodePayload! Create a discount code (all products, all customers). Requires write_discounts. |
discountCodeDelete
| DeletePayload! Delete a discount code. Requires write_discounts. |
Types
49 types · 21 returned directly by root fields
Collection object
A group of products. Requires read_products.
| id | ID! |
| title | String! |
| handle | String! |
| collectionType | String! MANUAL or SMART |
| descriptionHtml | String! |
| image | Image |
| productsCount | Int! |
CollectionConnection object
| nodes | [Collection!]! |
| pageInfo | PageInfo! |
Customer object
A customer. Requires read_customers.
| id | ID! |
| String Requires read_customer_pii (null without it). | |
| firstName | String |
| lastName | String |
| phone | String |
| acceptsMarketing | Boolean! |
| ordersCount | Int! |
| amountSpent | MoneyV2! |
| tags | [String!]! |
| note | String |
| defaultAddress | MailingAddress |
| createdAt | String! |
CustomerConnection object
| nodes | [Customer!]! |
| pageInfo | PageInfo! |
DeletePayload object
| deletedId | ID |
| userErrors | [UserError!]! |
DiscountCode object
A discount code customers enter at checkout. Requires read_discounts.
| id | ID! |
| code | String! |
| title | String! |
| type | String! PERCENTAGE, FIXED_AMOUNT, FREE_SHIPPING or BUY_X_GET_Y |
| value | String! Percent off ('15') for PERCENTAGE, an amount ('200.00') for FIXED_AMOUNT, '0' otherwise. |
| minimumSubtotal | String Minimum cart subtotal ('999.00'), or null. |
| usageCount | Int! |
| usageLimit | Int |
| oncePerCustomer | Boolean! |
| startsAt | String! |
| endsAt | String |
| active | Boolean! Enabled and within its dates and usage limit. |
| createdAt | String! |
DiscountCodeConnection object
| nodes | [DiscountCode!]! |
| pageInfo | PageInfo! |
DiscountCodeInput input
| code | String! 3–50 letters, numbers, dashes or underscores (saved uppercase). |
| title | String Shown in the admin; defaults to the code. |
| type | String PERCENTAGE (default), FIXED_AMOUNT or FREE_SHIPPING |
| value | String Percent (1–100) for PERCENTAGE, amount ('200.00') for FIXED_AMOUNT; ignored for FREE_SHIPPING. |
| minimumSubtotal | String Only for carts with this subtotal or more ('999.00'). |
| usageLimit | Int |
| oncePerCustomer | Boolean |
| startsAt | String ISO date-time; defaults to now. |
| endsAt | String |
DiscountCodePayload object
| discountCode | DiscountCode |
| userErrors | [UserError!]! |
FulfillmentLineItemInput input
| id | ID! |
| quantity | Int! |
Image object
| url | String! |
| altText | String |
ImageInput input
| url | String! |
| altText | String |
InventoryPayload object
| available | Int Available quantity after the change. |
| userErrors | [UserError!]! |
InventoryPolicy enum
- DENY
- CONTINUE
LineItem object
Location object
A stock location. Requires read_inventory.
| id | ID! |
| name | String! |
| isDefault | Boolean! |
| isActive | Boolean! |
MailingAddress object
| firstName | String |
| lastName | String |
| company | String |
| address1 | String |
| address2 | String |
| city | String |
| state | String ISO 3166-2:IN state code, e.g. KA. |
| stateName | String |
| pincode | String |
| country | String |
| phone | String |
MoneyV2 object
A monetary value with currency (amount is a decimal string, e.g. "799.00").
| amount | String! |
| currencyCode | String! |
Order object
An order. Requires read_orders.
| id | ID! |
| name | String! e.g. #1001 |
| number | Int! |
| String Requires read_customer_pii (null without it). | |
| phone | String |
| createdAt | String! |
| updatedAt | String! |
| cancelledAt | String |
| cancelReason | String |
| closed | Boolean! |
| displayFinancialStatus | String! PENDING, PAID, PARTIALLY_REFUNDED, REFUNDED or VOIDED |
| displayFulfillmentStatus | String! UNFULFILLED, PARTIALLY_FULFILLED or FULFILLED |
| paymentGateway | String! razorpay, cod or manual |
| sourceName | String! |
| currencyCode | String! |
| subtotalPrice | MoneyV2! |
| totalDiscounts | MoneyV2! |
| totalShipping | MoneyV2! |
| totalTax | MoneyV2! |
| taxesIncluded | Boolean! |
| totalPrice | MoneyV2! |
| totalReceived | MoneyV2! |
| totalRefunded | MoneyV2! |
| discountCodes | [String!]! |
| taxLines | [TaxLine!]! |
| note | String |
| tags | [String!]! |
| customerId | ID |
| shippingAddress | MailingAddress |
| shippingLine | ShippingLine |
| lineItems | [LineItem!]! |
| statusPageUrl | String! Customer-facing order status page. |
OrderConnection object
OrderPayload object
| order | Order |
| userErrors | [UserError!]! |
PageInfo object
Information about pagination in a connection.
| hasNextPage | Boolean! |
| endCursor | String |
Product object
A product. Requires read_products.
| id | ID! |
| title | String! |
| handle | String! |
| status | ProductStatus! |
| descriptionHtml | String! |
| vendor | String! |
| productType | String! |
| tags | [String!]! |
| seo | SEO! |
| options | [ProductOption!]! |
| images | [Image!]! |
| variants | [ProductVariant!]! |
| totalInventory | Int! |
| onlineStoreUrl | String |
| createdAt | String! |
| updatedAt | String! |
ProductConnection object
| nodes | [Product!]! |
| pageInfo | PageInfo! |
ProductInput input
| title | String |
| descriptionHtml | String |
| vendor | String |
| productType | String |
| tags | [String!] |
| status | ProductStatus |
| handle | String |
| seoTitle | String |
| seoDescription | String |
ProductOption object
| name | String! |
| values | [String!]! |
ProductOptionInput input
| name | String! |
| values | [String!]! |
ProductPayload object
| product | Product |
| userErrors | [UserError!]! |
ProductStatus enum
- ACTIVE
- DRAFT
- ARCHIVED
ProductVariant object
A product variant (a purchasable combination of option values).
| id | ID! |
| title | String! |
| sku | String |
| barcode | String |
| price | MoneyV2! |
| compareAtPrice | MoneyV2 |
| inventoryQuantity | Int! Available quantity across locations (on hand − committed). Requires read_inventory to be meaningful. |
| inventoryTracked | Boolean! |
| inventoryPolicy | InventoryPolicy! |
| taxable | Boolean! |
| requiresShipping | Boolean! |
| weightGrams | Int! |
| selectedOptions | [SelectedOption!]! |
ProductVariantInput input
| price | String! Decimal string, e.g. "799.00". |
| compareAtPrice | String |
| sku | String |
| barcode | String |
| options | [String!] Option values in the same order as the product options. |
| inventoryQuantity | Int Initial available quantity at the default location. |
| inventoryPolicy | InventoryPolicy |
| weightGrams | Int |
| taxable | Boolean |
| requiresShipping | Boolean |
ProductVariantPayload object
| productVariant | ProductVariant |
| userErrors | [UserError!]! |
SelectedOption object
| name | String! |
| value | String! |
SEO object
| title | String |
| description | String |
ShippingLine object
| title | String! |
| price | MoneyV2! |
Shop object
The store the access token belongs to.
| id | ID! |
| name | String! |
| String! | |
| myshopifyDomain | String! The storefront host, e.g. demo.sellify.in. |
| url | String! |
| currencyCode | String! |
| timezone | String! |
| published | Boolean! Whether the online store is published (not password protected). |
TaxLine object
| title | String! |
| rate | Float! |
| price | MoneyV2! |
Theme object
| id | ID! |
| name | String! |
| role | ThemeRole! |
| previewUrl | String! The storefront showing this theme. For unpublished themes it is a signed preview link, valid for 4 hours. |
| editorUrl | String! The theme's code editor in the Sellify admin. |
| updatedAt | String! |
files
| [ThemeFile!]! The theme's files, or only the given paths. |
ThemeFile object
A file in a theme (layout, templates, sections, snippets, assets, config, locales). All theme files are text.
| path | String! e.g. sections/hero.liquid |
| size | Int! Size in bytes (UTF-8). |
| checksum | String! MD5 of the content, hex. Compare with a local file to skip unchanged uploads. |
| content | String! |
| updatedAt | String! |
ThemeFileInput input
| path | String! |
| content | String! |
ThemeFilesDeletePayload object
| deletedPaths | [String!]! |
| userErrors | [UserError!]! |
ThemeFilesUpsertPayload object
| upsertedPaths | [String!]! Paths that were saved. Files with errors are skipped; the rest are still saved. |
| userErrors | [UserError!]! |
ThemePayload object
| theme | Theme |
| userErrors | [UserError!]! |
ThemeRole enum
- MAIN
- UNPUBLISHED
TrackingInput input
| company | String |
| number | String |
| url | String |
UserError object
A user-facing validation error returned by a mutation.
| field | [String!] Path to the input field that caused the error. |
| message | String! |
WebhookSubscription object
| id | ID! |
| topic | WebhookTopic! |
| callbackUrl | String! |
| createdAt | String! |
WebhookSubscriptionPayload object
| webhookSubscription | WebhookSubscription |
| userErrors | [UserError!]! |
WebhookTopic enum
- ORDERS_CREATE
- ORDERS_PAID
- ORDERS_FULFILLED
- ORDERS_CANCELLED
- REFUNDS_CREATE
- PRODUCTS_CREATE
- PRODUCTS_UPDATE
- PRODUCTS_DELETE