Examples

Introduction

In the following sections you'll find several sample queries ready to execute in the GraphQL playground. Remember to set the headers section with the connector and authorization entries as explained in the GraphQL Schema page.

You may experiment with the GraphQL playground using the Bloomreach Content public developer environment and Bloomreach Discovery Connector by specifying the following connector and br-acct-env headers in the HEADERS tab below the playground's query input field:

{
  "connector":"brsm",
  "br-acct-env": "developers"
}

Enter your query and click on Try It! and you should see the response as in the following screenshot:

Find items by keyword

Search for all the products by a specified keyword. Return a paginated result set

Query:

query FindItemsByKeyword($text: String!, $offset: Int!, $limit: Int!) { 
    findItemsByKeyword(text: $text, offset: $offset, limit: $limit) { 
      offset 
      limit
      count
      total
      queryHint {
        autoCorrectQuery
        autoCorrectQuerySet
        redirectHint {
          url
          query
          newQuery
        }
      }
      items {
        itemId {
          id
          code
        }
        displayName
        description
        imageSet {
          original {
            link {
              href
            }
          }
          thumbnail {
            link {
              href
            }
          }
        }
        listPrice {
          moneyAmounts {
            currency
            amount
            displayValue
          }
        }
        purchasePrice {
          moneyAmounts {
            currency
            amount
            displayValue
          }
        }
        salePriceRange
        priceRange
        customAttrs {
          name
          values
        }
      }
      facetResult {
        fields {
          id
          name
          values {
            id
            parentId
            name
            count
          }
        }
      }
    }
  }

Parameters:

{
  "text": "bolt",
  "offset": 0,
  "limit": 2
}

cURL:

curl 'https://graphql.eng-demo.bloomreach.io/graphql' \
  -H 'connector: brsm' \
  -H 'content-type: application/json' \
  -d '{"operationName":"FindItemsByKeyword","variables":{"text":"bolt","offset":0,"limit":1},"query":"query FindItemsByKeyword($text: String!, $offset: Int, $limit: Int) {  findItemsByKeyword(text: $text, offset: $offset, limit: $limit) { offset limit count    total    queryHint { autoCorrectQuery      autoCorrectQuerySet      redirectHint { url query newQuery } }items { itemId { id code } displayName description imageSet { original { link { href } } thumbnail { link { href }}} listPrice { moneyAmounts { currency amount displayValue } }  purchasePrice { moneyAmounts {currency amount displayValue}} salePriceRange priceRange customAttrs { name values } } facetResult { fields { id name values {  id  parentId name count } } }  }}"}'

Result:

{
  "data": {
    "findItemsByKeyword": {
      "offset": 0,
      "limit": 2,
      "count": 2,
      "total": 62,
      "queryHint": {
        "autoCorrectQuery": null,
        "autoCorrectQuerySet": [],
        "redirectHint": null
      },
      "items": [
        {
          "itemId": {
            "id": "4427935",
            "code": "4427935"
          },
          "displayName": "Cully 1/4 x 3 Hanger Bolt",
          "description": "Cully 66148J 1/4 x 3 Hanger Bolt, Zinc (100/Jar)",
          "imageSet": {
            "original": {
              "link": {
                "href": "https://pacific-demo-data.bloomreach.cloud/supply/images/thumbimage_pid_4427935.jpg"
              }
            },
            "thumbnail": {
              "link": {
                "href": "https://pacific-demo-data.bloomreach.cloud/supply/images/thumbimage_pid_4427935.jpg"
              }
            }
          },
          "listPrice": {
            "moneyAmounts": [
              {
                "currency": null,
                "amount": 5.48,
                "displayValue": "5.48"
              }
            ]
          },
          "purchasePrice": {
            "moneyAmounts": [
              {
                "currency": null,
                "amount": 3.46,
                "displayValue": "3.46"
              }
            ]
          },
          "salePriceRange": [
            3.46,
            3.46
          ],
          "priceRange": [
            5.48,
            5.48
          ],
          "customAttrs": []
        },
        //...SNIP...
      ],
      "facetResult": {
        "fields": [
          {
            "id": "category",
            "name": "category",
            "values": [
              {
                "id": "PNB250881031400",
                "parentId": "PNB250881030000",
                "name": "Open-End Wrenches",
                "count": 1
              },
              //...SNIP...
            ]
          },
          {
            "id": "sizes",
            "name": "sizes",
            "values": [
              {
                "id": ".750 x 20",
                "parentId": null,
                "name": ".750 x 20",
                "count": 1
              },
             //...SNIP...
            ]
          },
          {
            "id": "brand",
            "name": "brand",
            "values": [
              {
                "id": "Greenlee",
                "parentId": null,
                "name": "Greenlee",
                "count": 11
              },
             //...SNIP...
            ]
          },
          {
            "id": "colors",
            "name": "colors",
            "values": [
              {
                "id": "silver",
                "parentId": null,
                "name": "silver",
                "count": 10
              }
            ]
          }
        ]
      }
    }
  }
}

List all categories

Return a list of all product categories

Query:

query ListAllCategories {
  findCategories {
    id
    parentId
    displayName
    path
  }
}

cURL:

curl 'https://graphql.eng-demo.bloomreach.io/graphql' \
  -H 'connector: brsm' \
  -H 'content-type: application/json' \
  -d '{"operationName":"ListAllCategories","variables":{}, "query":"query ListAllCategories { findCategories { id parentId displayName path } }"}'

Result:

{
  "data": {
    "findCategories": [
      {
        "id": "a41b6ba2-ce57-4ce5-b5c2-bcd0ff084b6e",
        "parentId": "4a6bab71-ec37-49d5-a1a7-f7d9eb782994",
        "displayName": "Low-Carb & Keto",
        "path": null
      },
      {
        "id": "b4b51d56-b587-408f-9cb8-f5c21ef54e58",
        "parentId": "cbd0c34b-61e1-4a27-b1f8-9cb101d01013",
        "displayName": "Accessories",
        "path": null
      },
      {
        "id": "b7121b70-443d-4085-9728-81f117ac3eba",
        "parentId": "7ab87c3e-f6b9-405f-b48a-291375d4029a",
        "displayName": "Saute & Chef Pans",
        "path": null
      },
      // ...SNIP...
    ]
  }
}

Add an item to the cart

Add an item and the corresponding quantity to the shopping cart. As result, return the cart content.

🚧

Limitation:

The cart operations can be only executed against the commerce backends. In this case, it is necessary to set the right HTTP header value for "connector" and "Authorization".

Query:

mutation AddToCart($addToCartInput: AddToCartInput!) {
    addToCart(addToCartInput: $addToCartInput) {
      code
      success
      message
      cart {
        id
        totalQuantity
        revision
        entries {
          id
          quantity
          items {
            itemId {
              id
              code
            }
            displayName
          }
        }
      }
    }
  }

Parameters:

{
  "addToCartInput": {
    "itemId": "var1-d8489100-e89c-470a-a12a-d3bf1b521851___IN17642",
    "quantity": 3
  }
}

Result:

{
  "data": {
    "addToCart": {
      "code": "200",
      "success": true,
      "message": "Successfully added to cart",
      "cart": {
        "id": "e6e94ef4-9370-4729-84c4-72bc85112dd7",
        "totalQuantity": 9,
        "revision": 61,
        "entries": [
          {
            "id": "e9e3596c-a597-438b-ba2f-fa09ff4dd31a",
            "quantity": 8,
            "items": [
              {
                "itemId": {
                  "id": "var1-d8489100-e89c-470a-a12a-d3bf1b521851",
                  "code": "IN17642"
                },
                "displayName": "VINTAGE CAP"
              }
            ]
          },
          {
            "id": "d2e68cf3-43bb-41ba-95d2-112ebbfc3e70",
            "quantity": 1,
            "items": [
              {
                "itemId": {
                  "id": "var1-f0ceb81b-a588-445c-9b0f-eb9c4d709099",
                  "code": "LeCreuset_Frypan"
                },
                "displayName": "Le Creuset Cast Iron Frypan"
              }
            ]
          }
        ]
      }
    }
  }
}

Get the cart content

Return the cart content with all the necessary information to build the page

Query:

query GetCart ($cartId: String){
  getCart(id: $cartId) {
      id
      totalQuantity
      orderId
      revision
      active
      state
      entries {
        id
        quantity
        items {
          itemId {
            id
            code
          }
          displayName
          imageSet {
            original {
              link {
                href
              }
            }
            thumbnail {
              link {
                href
              }
            }
          }
          listPrice {
            moneyAmounts {
              currency
              amount
            }
          }
        }
      }
      totalListPrice {
        moneyAmounts {
          currency
          amount
        }
      }
      totalPurchasePrice {
        moneyAmounts {
          currency
          amount
        }
      }
      discounts {
        code
        targetIds
        type
      }
    }
}

Parameters:

{ "cartId": "e6e94ef4-9370-4729-84c4-72bc85112dd7" }

Result:

{
  "data": {
    "getCart": {
      "id": "e6e94ef4-9370-4729-84c4-72bc85112dd7",
      "totalQuantity": 18,
      "orderId": null,
      "revision": 67,
      "active": true,
      "state": "Active",
      "entries": [
        {
          "id": "e9e3596c-a597-438b-ba2f-fa09ff4dd31a",
          "quantity": 17,
          "items": [
            {
              "itemId": {
                "id": "var1-d8489100-e89c-470a-a12a-d3bf1b521851",
                "code": "IN17642"
              },
              "displayName": "VINTAGE CAP",
              "imageSet": {
                "original": {
                  "link": {
                    "href": "https://acc545be1d5fd66d9268-e6ee5bd70ad552747c060c238eaa7bc8.ssl.cf3.rackcdn.com/in17642-a-hXwF_lvK.jpg"
                  }
                },
                "thumbnail": {
                  "link": {
                    "href": "https://acc545be1d5fd66d9268-e6ee5bd70ad552747c060c238eaa7bc8.ssl.cf3.rackcdn.com/in17642-a-hXwF_lvK.jpg"
                  }
                }
              },
              "listPrice": {
                "moneyAmounts": [
                  {
                    "currency": "USD",
                    "amount": 21
                  },
                  {
                    "currency": "EUR",
                    "amount": 18
                  }
                ]
              }
            }
          ]
        },
        {
          "id": "d2e68cf3-43bb-41ba-95d2-112ebbfc3e70",
          "quantity": 1,
          "items": [
            {
              "itemId": {
                "id": "var1-f0ceb81b-a588-445c-9b0f-eb9c4d709099",
                "code": "LeCreuset_Frypan"
              },
              "displayName": "Le Creuset Cast Iron Frypan",
              "imageSet": {
                "original": {
                  "link": {
                    "href": "https://acc545be1d5fd66d9268-e6ee5bd70ad552747c060c238eaa7bc8.ssl.cf3.rackcdn.com/Le-Creuset-Cast-Iron-v9WN1BKB.jpg"
                  }
                },
                "thumbnail": {
                  "link": {
                    "href": "https://acc545be1d5fd66d9268-e6ee5bd70ad552747c060c238eaa7bc8.ssl.cf3.rackcdn.com/Le-Creuset-Cast-Iron-DRv6e_Cq.jpg"
                  }
                }
              },
              "listPrice": {
                "moneyAmounts": [
                  {
                    "currency": "EUR",
                    "amount": 229
                  },
                  {
                    "currency": "USD",
                    "amount": 300
                  }
                ]
              }
            }
          ]
        }
      ],
      "totalListPrice": {
        "moneyAmounts": [
          {
            "currency": "USD",
            "amount": 657
          }
        ]
      },
      "totalPurchasePrice": {
        "moneyAmounts": [
          {
            "currency": "USD",
            "amount": 657
          }
        ]
      },
      "discounts": [
        {
          "code": "5396f9cd-6f95-438e-8f2b-802a15dc1fa3",
          "targetIds": [],
          "type": "Promotion"
        }
      ]
    }
  }
}