Skip to main content

Full Text Search

Usage

Search Results Page Search Use the following code for a given shopper search query.. The callback function will contain the relevant products and filters matching the shopper term:

Example

window.FastSimonSDK.fullTextSearch({
term: "yes please",
callback: (response) => {
// do stuff
// do more stuff
}
})

/* example with narrow & sort */
window.FastSimonSDK.fullTextSearch({
term: "yes please",
narrowBy: [["Colour","colour:white"],["Colour","colour:green"],["Size","S"],["Price_from_to","36-95"]],
sortBy: window.FastSimonSortBy.AtoZ,
callback: (response) => {
// do stuff
// do more stuff
}
})

Options

OptionTypeDescription
termstring (required)the term you want results for
callback(Response) => void (required)callback to handle the results
pagenumber (default=1)use for pagination
productsPerPagenumberuse for custom product count
sortBysortBy (default=relevancy)callback to handle the results
narrowByNarrow []use for filtering
facetsboolean (default=true)use facets:false if you do not need filters
withAttributesboolean (default=false)use withAttributes:true if you want to include attributes in the product response
caution
  • Make sure that the productsPerPage is the same across all pages
  • withAttributes:true might slow serving so only use if you need product tags or attributes

Response

Note: the callback might run twice to optimize speed, there are two scenarios:

  1. Products and facets were fetched together - callback runs once with be called only once with action "product and facets".
  2. Products were fetched but facets are still fetching - callback will run twice:
    • action "products" will come first and call the callback for the first time
    • action "product and facets" will call the callback again once facet fetch is completed
TypeScript Typing
interface Response {
action: "products" | "facets and products"
payload: {
ancestors: CategoryAncestor[]
categoryID: string
products: Product[]
facets?: Facet[]
totalResults: number
sortBy?: SortBy,
narrow?: Narrow[],
isNoResults?: boolean
page?: number
pageCount?: number
avoidPrefixList?: string[]
}
}

Reporting Implementation (must for analytics)

Please follow the guideline to report shopper behaviour on the recommendation widget in order to get accurate Analytics in the Fast Simon dashboard as well as greater personalized accuracy

  1. Search Events - report whenever you call fullTextSearch...
  2. Products Viewed From Search - report whenever product is clicked
  3. Quick View - if implement report "used" whenever quick view button is clicked