Arguments:
request.type
required (RequestType): The type of the request to be sent to the API. Check the type definition below for more details.
request.params
required (Params): The parameters that are sent to the request. Check the Types for more details on the params object.
Types:
type
required (RequestType): 'autocomplete' | 'search' | 'smart-collection' | 'recommendations' | 'feedback' | 'content'. Determines the type of request sent.
user.uid
required (string): Unique customer id.
user.sid
required (string): Session id.
user.email
optional (string): Customer email.
user.ip
optional (number): Customer ip.
user.ua
optional (string): Customer user agent.
user.lang
optional (string[]): Languages.
Params.user
optional (User): Current user identity info. Can be provided on initialisation or per-request.
The rest of the request.params
object depends on the value of request.type
. Below are listed all different variants of the Params
type.
Types
Filter.name
required (string): Name of filter
Filter.type
required (string): Type of filter
Filter.values
optional (FilterValue[]): Array of selected filter values
Sort.field
required (string): Field to sort by
Sort.order
required ('asc' | 'desc'): Sorting order
FilterValue.value
optional (string): Selected filter value
FilterValue.from
optional (string): Selected filter 'from' value (for range filters)
FilterValue.to
optional (string): Selected filter 'to' value (for range filters)
type
: autocomplete
type
: autocompleteParams.q
: optional (string): The autocomplete query
Params.suggestion_limit
optional (number): Limit of search suggestions
Params.item_limit
optional (number): Limit of product matches
type
: search
type
: searchParams.q
required (string): The search query
Params.offset
optional (number): Offset of product items. Used for pagination
Params.limit
optional (number): Number of products in result
Params.filters
optional (Filter[]): Array of selected filters
Params.sort
optional (Sort[]): Array of selected sorts
type
: smart-collection
type
: smart-collectionParams.slot
required (string): Collection handle
Params.offset
optional (number): Offset of product items. Used for pagination
Params.limit
optional (number): Number of products in result
Params.filters
optional (Filter[]): Array of selected filters
Params.sort
optional (Sort[]): Array of selected sorts
type
: recommendation
type
: recommendationParams.type
: required ('slot' | 'newest' | 'trending' | 'latest' | 'viewed' | 'bought' | 'purchasedTogether' | 'featured'): The recommendation type
The rest of the params depend on the recommendation type.
-
Params.type
: 'slot'
Params.slot
required (string): The collection handle
Params.item_ids
required (string): Array of product item IDs
Params.offset
optional (number): Offset of product items. Used in pagination -
Params.type
: 'newest' | 'trending' | 'latest' | 'featured'
Params.offset
optional (number): Offset of product items. Used in pagination
Params.limit
optional (number): Limit of product items in response. Used in pagination -
Params.type
: 'viewed' | 'bought'
Params.offset
optional (number): Offset of product items. Used in pagination
Params.limit
optional (number): Limit of product items in response. Used in pagination
Params.item_id
required (string): The product item ID. -
Params.type
: 'purchasedTogether'
Params.offset
optional (number): Offset of product items. Used in pagination
Params.limit
optional (number): Limit of product items in response. Used in pagination
Params.item_ids
required (string[]): Array of product item IDs.
type
: content
type
: contentParams.filters
optional (Filter[]): Array of selected filters
Params.sort
optional (Sort[]): Array of selected sorts
Params.q
required (string): Search query
type
: feedback
type
: feedbackParams.event
: required (EventType): The feedback event type. The event can be one of the following values:
EventType
: 'click-suggestion' | 'click-item' | 'redirect' | 'purchase' | 'add-to-cart' | 'update-cart' | 'view-page'
The rest of the properties on the Params
type depend on which event is being sent. The different Params
properties are defined below.
Types
LineItem.item_id
: required (string): Item ID of the bought item.
LineItem.variant_item_id
: optional (string): Variant item ID of the bought item.
LineItem.unit_price
: required (string): Sale price of the product.
LineItem.quantity
: required (string): Quantity bought.
-
event
: click-suggestion
Params.rid
: required (string): The request ID preceding the clickthrough.
Params.suggestion
: required (string): The suggestion that is clicked. -
event
: click-item
Params.item_id
: required (string): The item ID of the clicked item.
Params.variant_item_id
: optional (string): The variant item ID of the clicked item.
Params.rid
: required (string): The request ID preceding the clickthrough. -
event
: redirect
Params.rid
: optional (string): The request ID preceding the redirection.
Params.suggestion
: required (string): The suggestion that leads to the redirection. -
event
: purchase
Params.order_id
: required (string): The order ID.
Params.currency
: required (string): Currency of the purchase.
Params.revenue
: required (number): The total revenue.
Params.line_items
: required (LineItem[]): The items in cart.
Params.affiliation
: optional (string): Affiliation of the purchase. -
event
: add-to-cart
Params.item_id
: required (string): Item ID added to cart.
Params.rid
: optional (string): Request ID preceding the add-to-cart.
Params.quantity
: optional (number): Quantity added to cart. default = 1. -
event
: update-cart
Params.line_items
: required (LineItem[]): Items in cart. -
event
: view-page
Params.url
: required (string): URL of the page viewed.
Params.ref
: required (string): Referrer of the page.
Params.width
: required (number): Width of the customer's browser.
Params.height
: required (number): Height of the customer's browser.
Params.item_id
: optional (string): Item ID - only for product pages.
Params.variant_item_id
: optional (string): Variant Item ID - only for product pages.
Returns:
Result of requested operation, depends on type of request.
Examples of usage:
Autocomplete
var request = {
type: 'autocomplete',
params: {
q: 'autocomplete-query',
suggestion_limit: 10,
}
};
client.send(request).then(function(response) {
// handle autocomplete response
});
Search
var request = {
type: 'search',
params: {
q: 'search-query',
offset: 24,
limit: 48,
},
};
client.send(request).then(response => {
// handle search response
});
Smart collection
var request = {
type: 'smart-collection',
params: {
slot: 'collection-name',
offset: 24,
limit: 48,
},
};
client.send(request).then(response => {
// handle smart collection response
});
Recommendation
var request = {
type: 'recommendation',
params: {
type: 'trending',
offset: 24,
limit: 48,
},
};
client.send(request).then(response => {
// handle recommendation response
});
Content search
var request = {
type: 'content',
params: {
q: 'search-query',
offset: 24,
limit: 48,
},
};
client.send(request).then(response => {
// handle content search response
});
Feedback
var request = {
type: 'feedback',
params: {
event: 'click-item',
item_id: '1234',
rid: 'abcd1234',
},
};
client.send(request).then(response => {
// handle feedback response
});