It is possible to add some JavaScript within your own website to modify the search query being fired for any or all of your Recommendation banners. You can do this by adding one or more of the following hooks within your website, just after the Klevu initialization script klevu.interactive
Within each of these hooks, you will find relevant objects and variables that you can use to modify the default behavior provided by Klevu.
JS
|
<script type ="text/javascript">/* Observer for record queries */functionklevu_processRECSRecordQueries(recordQueries, recsKey){
console.log(recordQueries, recsKey);}/* Observer for query results */functionklevu_processRECSQueryResults(queryResults, recsKey){
console.log(queryResults, recsKey);}/* Observer to process template data */functionklevu_processRECSTemplateData(templateData, recsKey){
console.log(templateData, recsKey);}/* Observer to bind template events */functionklevu_bindRECSTemplateElementEvents(templateData, recsKey){
console.log(templateData, recsKey);}/* Observer for RECS item click */functionklevu_RECSItemClick(templateData, itemId, recsKey){
console.log(templateData, itemId, recsKey);}/* Observer for add to cart action */functionklevu_addtocart(variantId, productURL, quantity, recsKey){
console.log(variantId, productURL, quantity, recsKey);}</script>
Example
API query modifications via Recommendations webhook
JS
|
<script type ="text/javascript">functionklevu_processRECSRecordQueries(recordQueries, recsKey){var recsQuery = recordQueries[0];// eg. change the result limit to 10
klevu.setObjectPath(recsQuery,"settings.limit",10);// eg. add a category context of "Clothing"
klevu.setObjectPath(recsQuery,"settings.query.categoryPath","Your Category");// eg. exclude some results for a specific banner onlyif(recsKey =='abc-123-xyz-321'){var excludeIds =[{key:"id",// or itemGroupIdvalue:"the-id-to-exclude"}];
klevu.setObjectPath(recsQuery,"settings.excludeIds", excludeIds);}// Klevu Recommendations utilise Klevu API,// you can therefore modify any of the params in our Docs.// See https://developers.klevu.com/api for all available parameters!}</script>