@6thstreetdotcom/algolia-sdk
v1.9.8-beta-5
Published
Algolia wrapper to be used on both mobile-app and web
Downloads
1,049
Readme
Algolia SDK
Algolia wrapper to be used on both mobile-app and web.
Methods
Init
The first function that should be called when using the SDK. This function will set the Algolia object based on Algolia keys.
appID
- Algolia application IDsearchKey
- Algolia search Keyoptions
- This is an optional object, with the following keys:customIndices
This is a list of custom indices grouped by locale, that will override the default values from config
E.g:
{
customIndices: {
"en-ae": {
default: 'uat_english_products',
latest: 'uat_english_products_created_at_desc',
price_low: 'uat_english_products_price_default_asc',
price_high: 'uat_english_products_price_default_desc',
discount: 'uat_english_products_discount_desc'
}
}
}
import AlgoliaSDK from '@6thstreetdotcom/algolia-sdk';
AlgoliaSDK.init(appID, searchKey);
SetIndex
This function will set the Algolia index based on locale and env settings.
setIndex(locale, env);
locale
- environment used for getting the right indexes- default:
'en-ae'
- default:
env
- environment used for getting the right indexes- default:
'production'
- values:
ENUM = ('staging', 'production')
- default:
import AlgoliaSDK from 'Algolia-sdk';
AlgoliaSDK.setIndex('en-ae', 'production');
search
Search using any available facet
. Use comma ,
separated values for multiple values per facet.
To search using a search query, use the q
param, as described below.
AlgoliaSDK.search({
q: 'Adidas',
hitsPerPage: 4,
'categories.level1': 'Women /// Shoes',
gender: 'Women'
});
Response: search-data.json
GetBrands
Search by a query string
getBrands(gender);
gender
- String- default:
''
- if left empty -> response will contain all brands
- default:
// to get all brands
AlgoliaSDK.getBrands();
// to get specific gender brand
AlgoliaSDK.getBrands('Women');
Response: brands-data.json
GetPDP
Returns a product's details for the given SKU.
getPDP(params);
params
- Objectsku
- String: product's sku- default:
''
- default:
highlights
- Array: list of attributes to highlight- if not set, all searchable attributes are highlighted
- response contains
highlighted_attributes
attribute which contains the list of highlighted attributes
AlgoliaSDK.getPDP({
sku: 'VAMTFRYIH-BLACK',
highlights: ['brand_name', 'color', 'gender']
});
Response: pdp-data.json
GetPLP
Returns products for a PLP Screen.
getPLP(URL);
URL
- String: URL for the Product list
URL Params & Structure:
params in URL should have the following form:
/...?key=value&key=value1,value2,value3
custom params:
- all the Algolia facet filters (q - query param, brand_name - Brands param, categories.levelX - categories param, categories_without_path etc.)
- example 1:
brand_name=Adidas,Aldo,Nike
- example 2:
categories.level0=Women
- example 3:
categories.level1=Women /// Shoes
- example 4:
categories.level2=Women /// Shoes /// Sandals
- example 5:
categories.level1=Men /// Shirts,Women /// Shoes
special params:
gender
- mandatory = ENUM('Women', 'Men', 'Kids')locale
- mandatory = ENUM('en-ae', 'ar-ae', 'en-sa', 'ar-sa', 'en-kw', 'ar-kw', 'en-qa', 'ar-qa', 'en-om', 'ar-om', 'en-bh', 'ar-bh')sort
= String: ENUM('recommended', price_low', 'price_high', 'discount')'recommended'
- default sorting'price_low''
- sort products by price ASC'price_high''
- sort products by price DESC'discount''
- sort products by highest discount
price.[currency].default
- filter products by price- example 1:
price.AED.default=gte50,lte700
- filter products with the price in interval >= 50 AED and <= 700 AED - example 2:
price.SAR.default=lt100
- filter products with the price less than 100 SAR
- example 1:
discount
- filter products by discount- example 1:
discount=gt20,lte70
- filter products with the discount in range > 20% and <= 70% - example 2:
discount=gte40
- filter products with the discount >= 40%
- example 1:
Notes: for
price
anddiscount
key filters, instead of (>, <, >=, <=) symbols you should use the following:
- 'lt' : <
- 'lte' : <=
- 'gt' : >
- 'gte' : >=
- 'eq' : =
We cannot use operators because will interfere with the query params in a URL
AlgoliaSDK.getPLP(
'/women/outlet.html?q=Women%20Outlet&page=0&brand_name=Adidas,Aldo&categories.level0=Women&categories.level1=Women /// Shoes&discount=gt20,lte900&price.AED.default=gte50,lte1500&visibility_catalog=1&gender=Women&locale=en-ae'
);
Response: plp-data.json
GetPopularBrands
Returns popular brands.
getPopularBrands(limit);
limit
- Int: results limit- default:
10
- default:
AlgoliaSDK.getPopularBrands(5);
Response
{
"data": ["Adidas", "Aldo", "Adidas Originals", "Charles & Keith", "Nike"]
}