Introduction
Bloomreach provides a Bloomreach Discovery connector with the GraphQL Commerce API. It's enabled by default and has a number of specific configuration options in addition to the general options.
How to request configuration changes?
Please use our support channel to request configuration changes, including properties name and value(s).
Configuration Options
The following configuration options are available for the Bloomreach Discovery connector. If you wish to make a change, please submit a support request with the names of the properties and your preferred values.
Property Name (* required field) | Description | Example Value(s) |
---|---|---|
BRSM_API * | The Bloomreach Discovery Core API production instance URL. | https://core.dxpapi.com/api |
BRSM_API_STAGING * | The Bloomreach Discovery Core API staging instance URL. | https://staging-core.dxpapi.com/api |
BRSM_PATHWAYS_API | The Bloomreach Discovery Recommendations and Pathways API v2 production instance URL. | http://pathways.dxpapi.com/api |
BRSM_PATHWAYS_API_STAGING | The Bloomreach Discovery Recommendations and Pathways API v2 staging instance URL. | http://pathways-staging.dxpapi.com/api |
BRSM_SUGGESTION_API * | The Bloomreach Discovery Suggestion API production instance URL. | https://suggest.dxpapi.com/api |
BRSM_SUGGESTION_API_STAGING * | The Bloomreach Discovery Suggestion API staging instance URL. | https://staging-suggest.dxpapi.com/api |
BRSM_ACCOUNT_ID * | The account ID associated with your domain. | '6370' |
BRSM_DOMAIN_KEY * | The domain key value of your Bloomreach Discovery. | 'pacific_supply' |
BRSM_AUTH_KEY * | The authorization key associated with your account | '1vjobidilg5gcbpn' |
BRSM_CUSTOM_ATTR_FIELDS | If a list of field names is specified as a comma separated string, then extra custom fields are extracted from the product item in the JSON response and included in the the GraphQL response like the following example: { "data": { "findItemsByKeyword": { //... "items": [ { //... "customAttrs": [ { "name": "brand", "values": [ "Michelin" ] }, { "name": "score", "values": [ "0.014996755" ] } ] }, //... ] } } } | 'brand,score' |
BRSM_CUSTOM_VARIANT_ATTR_FIELDS | If a list of field names is specified as a comma separated string, then extra custom fields are extracted from the product variant item in the JSON response and included in the the GraphQL response like the following example:{ "data": { "findItemById": { //... "variants": [ { //... "customAttrs": [ { "name": "color_code", "values": [ "78T" ] } ] }, //... ] } } } | 'color_code' |
BRSM_CUSTOM_VARIANT_LIST_PRICE_FIELD | If specified, the custom property of the product variant item in the JSON response will be used as the listPrice of the product variant. If not specified or not resolved by this configuration, the listPrice of the product variant item will have no money amount data.NOTE: if this custom field name is project-specific one, please include this custom field name in the BRSM_CUSTOM_ATTR_FIELDS environment variable, too, to make the custom field included in the JSON responses from Bloomreach Discovery. In the following example, if this is set to 'sku_price' , then the "sku_price" property (1.09 in the example) of the specific variant item will be used as the listPrice .{ "response":{ //... "docs":[ { //... "variants":[ { "sku_price":1.09, "sku\_price\_attr":[ "0.89" ], //... }, ] } ] } } | 'sku_price' |
BRSM_CUSTOM_VARIANT_PURCHASE_PRICE_FIELD | If specified, the custom property of the product variant item in the JSON response will be used as the purchasePrice of the product variant. If not specified or not resolved by this configuration, the listPrice of the product variant item will have no money amount data.NOTE: if this custom field name is project-specific one, please include this custom field name in the BRSM_CUSTOM_ATTR_FIELDS environment variable, too, to make the custom field included in the JSON responses from Bloomreach Discovery. In the following example, if this is set to 'sku\_price\_attr' , then the first item (0.89 in the example) of the "sku\_price\_attr" array property of the specific variant item will be used as the purchasePrice .{ "response":{ //... "docs":[ { //... "variants":[ { "sku_price":1.09, "sku\_price\_attr":[ "0.89" ], //... }, ] } ] } } | 'sku_price_attr' |
BRSM_RESPONSE_TIME_HEADER_ENABLED | If set to 'true' , the internal response time in milliseconds measured in the Bloomreach Discovery backend is read by the GraphQL Commerce API and passed in the X-BR-Response-Time response header. |
Tip:
The API client data can be retrieved from your Bloomreach Discovery instance, more specifically on https://tools.bloomreach.com/, under the Configuration tab.
Discovery-specific data
The Bloomreach Discovery connector supports additional query fields to retrieve Discovery-specific data.
Below you can find two examples, the first as part of the facet results while the second as part of the query hint.
query FindItemsByKeyword($text: String!, $offset: Int!, $limit: Int!) {
findItemsByKeyword(text: $text, offset: $offset, limit: $limit) {
...
facetResult {
...
ranges {
name
id
values {
start
end
count
}
}
}
...
queryHint {
...
autoCorrectQuery
autoCorrectQuerySet
redirectHint {
url
query
newQuery
}
statsFields {
price {
max
min
}
}
}
...
}
}
Additionally, while retrieving Discovery categories, parent categories can also be included. Please note that this operation can be a little bit expensive: please use it only if needed.
query ($id: String!, $queryHint: QueryHintInput) {
findCategoryById(id: $id, queryHint: $queryHint) {
id
parentId
displayName
path
parent{
id
displayName
path
parentId
}
}
}