Products

Create, manage and query Products.

Overview

Product entities describe any offered product or service, as defined by Schema.org. Products are specified by their name, and optional SKU.

Products are not unique by name, across the Graphlit project.

Operations

Create Product

The createProduct mutation enables the creation of a product by accepting the product name, uri, manufacturer and sku. It returns essential details, including the ID and name of the newly generated product.

Mutation:

mutation CreateProduct($product: ProductInput!) {
  createProduct(product: $product) {
    id
    name
  }
}

Variables:

{
  "product": {
    "sku": "gpt-35-turbo",
    "manufacturer": "OpenAI",
    "uri": "https://www.openai.com",
    "description": "Large Language Model",
    "name": "GPT-3.5"
  }
}

Response:

{
  "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83",
  "name": "GPT-3.5"
}
Update Product

The updateProduct mutation enables the updating of a product by accepting the product name and other optional fields like sku.

Mutation:

mutation UpdateProduct($product: ProductUpdateInput!) {
  updateProduct(product: $product) {
    id
    name
  }
}

Variables:

{
  "product": {
    "sku": "gpt-4",
    "manufacturer": "OpenAI",
    "uri": "https://www.openai.com",
    "description": "Large Language Model",
    "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83",
    "name": "GPT-4"
  }
}

Response:

{
  "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83",
  "name": "GPT-4"
}
Delete Product

The deleteProduct mutation allows the deletion of a product by utilizing the id parameter, and it returns the ID and state of the deleted product.

Mutation:

mutation DeleteProduct($id: ID!) {
  deleteProduct(id: $id) {
    id
    state
  }
}

Variables:

{
  "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83"
}

Response:

{
  "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83",
  "state": "DELETED"
}
Delete Products

The deleteProducts mutation allows the deletion of multiple products, as specified by the ids array parameter, and it returns the ID and state of the deleted products.

Mutation:

mutation DeleteProducts($ids: [ID!]!) {
  deleteProducts(ids: $ids) {
    id
    state
  }
}

Variables:

{
  "ids": [
    "39fcf408p-15ca-4cc2-9476-622d64aa38f3",
    "93476a0c-d567-4624-9d5e-df43dfff92ea"
  ]
}

Response:

[
  {
    "id": "93476a0c-d567-4624-9d5e-df43dfff92ea",
    "state": "DELETED"
  },
  {
    "id": "39fcf408-15ca-4cc2-9476-622d64aa38f3",
    "state": "DELETED"
  }
]
Get Product

The product query allows you to retrieve specific details of a product by providing the id parameter.

Query:

query GetProduct($id: ID!) {
  product(id: $id) {
    id
    name
    manufacturer
    model
    brand
    upc
    sku
    releaseDate
    productionDate
  }
}

Variables:

{
  "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83"
}

Response:

{
  "sku": "gpt-4",
  "manufacturer": "OpenAI",
  "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83",
  "name": "GPT-4"
}
Query Products

Query Products

The products query allows you to retrieve all products. It returns a list of product results, including the ID and name for each product.

Query:

query QueryProducts($filter: ProductFilter!) {
  products(filter: $filter) {
    results {
      id
      name
      manufacturer
      model
      brand
      upc
      sku
      releaseDate
      productionDate
    }
  }
}

Variables:

{
  "filter": {
    "offset": 0,
    "limit": 100
  }
}

Response:

{
  "results": [
    {
      "sku": "gpt-4",
      "manufacturer": "OpenAI",
      "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83",
      "name": "GPT-4"
    }
  ]
}

Query Products By Name

The products query allows you to retrieve products based on a specific filter criteria, via the name parameter. In this example, the name is set to "gpt." It returns a list of product results containing the ID and name for each matching product.

Query:

query QueryProducts($filter: ProductFilter!) {
  products(filter: $filter) {
    results {
      id
      name
      manufacturer
      model
      brand
      upc
      sku
      releaseDate
      productionDate
    }
  }
}

Variables:

{
  "filter": {
    "name": "gpt",
    "offset": 0,
    "limit": 100
  }
}

Response:

{
  "results": [
    {
      "sku": "gpt-4",
      "manufacturer": "OpenAI",
      "id": "8a32f02a-fa37-4df2-8efb-860a6d566c83",
      "name": "GPT-4"
    }
  ]
}

Last updated