API Reference

Available queries

Product - Returns a single product based on the id provided

query { Product (id: 100012) { id label variants { id label } } }

Products - Returns a list of products based on the filter define

query { Products { data { id label sku } } }


Available fields

id - Int
Unique identifier of the product
label - String
Name of the product
description - String
Description of the product
active - Boolean
If true, the product is active and can be used in documents
created_at - DateTime
Creation date of the product
updated_at - DateTime
Date of the latest product modification
option1 - Option
First option of the product (ex: color)
option2 - Option
Second option of the product (ex: size)
option3 - Option
Third option of the product (ex: material)
variants - Array of Variant
List of the variants of the product (based on attributes of options
suppliers - Array of Supplier
Suppliers for this product


Filters

You can create filters based on following fields

label
Example: { "column" : "LABEL", "operator" : "LIKE", "value" : "%011%" }
sku (of the variants)
Example: { "column" : "SKU", "operator" : "EQ", "value" : "135267U23" }
active
Example: { column": "ACTIVE", "operator": "EQ", "value": true
created_at
Example: { "column": "CREATED_AT", "operator": "LT", "value": "2024-01-11" }
updated_at
Example: { "column": "UPDATED_AT", "operator": "LT", "value": "2024-01-11" }
option1_id
Example: { "column": "OPTION1_ID", "operator": "EQ", "value": 102345 }
option2_id
Example: { "column": "OPTION2_ID", "operator": "EQ", "value": 102346 }
option3_id
Example: { "column": "OPTION3_ID", "operator": "EQ", "value": 102347 }

Sorting

You can sort data based on following fields : id, label, active, created_at, updated_at

query Products( $orderBy: [QueryProductsOrderByOrderByClause!], $first: Int = 50, $page: Int ) { Products( orderBy: $orderBy first: $first page: $page ) { paginatorInfo { total } data { id label } } }
{ "orderBy": [ { "column": "LABEL", "order": "ASC" } ], "first": 50, "page": 1 }

Example of a query

query Products( $where: QueryProductsWhereWhereConditions, $first: Int = 50, $page: Int ) { Products( where: $where first: $first page: $page ) { paginatorInfo { total count currentPage perPage } data { id label suppliers { paginatorInfo { total } data { id label } } active option1 { id label } variants { paginatorInfo { total } data { id sku type label on_hand track_inventory } } } } }
{ "first": 50, "page": 1, "where": { "AND": [ { "AND": [ { "column": "SKU", "operator": "LIKE", "value": "%QF%" } ] } ] } }

Example of data returned

{ "data": { "Products": { "paginatorInfo": { "total": 2, "count": 2, "currentPage": 1, "perPage": 50 }, "data": [ { "id": 100141, "label": "Amazeballs Adidas Jacket", "suppliers": { "paginatorInfo": { "total": 0 }, "data": [] }, "active": true, "option1": null, "variants": { "paginatorInfo": { "total": 1 }, "data": [ { "id": 100181, "sku": "ktQFtdxE7S", "type": "normal", "label": "Amazeballs Adidas Jacket", "on_hand": 100, "track_inventory": true } ] } }, { "id": 100266, "label": "Imposing Lotto Pants", "suppliers": { "paginatorInfo": { "total": 0 }, "data": [] }, "active": true, "option1": null, "variants": { "paginatorInfo": { "total": 1 }, "data": [ { "id": 100306, "sku": "nfhnCh3qfp", "type": "normal", "label": "Imposing Lotto Pants", "on_hand": null, "track_inventory": true } ] } } ] } } }