1.9.7-beta-19 • Published 2 months ago

@6thstreetdotcom/algolia-sdk v1.9.7-beta-19

Weekly downloads
78
License
-
Repository
-
Last release
2 months ago

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 ID
  • searchKey - Algolia search Key
  • options - 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'
  • env - environment used for getting the right indexes
    • default: 'production'
    • values: ENUM = ('staging', 'production')
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
// 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 - Object
    • sku - String: product's sku
      • 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
    • 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%

Notes: for price and discount 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
AlgoliaSDK.getPopularBrands(5);

Response

{
  "data": ["Adidas", "Aldo", "Adidas Originals", "Charles & Keith", "Nike"]
}
1.9.7-beta-19

2 months ago

1.9.7-beta-18

3 months ago

1.9.7-beta-17

4 months ago

1.9.7-beta-16

4 months ago

1.9.7-beta-15

4 months ago

1.9.7-beta-14

5 months ago

1.9.7-beta-13

5 months ago

1.9.7-beta-12

6 months ago

1.9.7-beta-11

7 months ago

1.9.7-beta-9

8 months ago

1.9.7-beta-8

9 months ago

1.9.7-beta-7

10 months ago

1.9.7-beta-6

10 months ago

1.9.7-beta-5

10 months ago

1.9.7-beta-4

10 months ago

1.9.7-beta-3

10 months ago

1.9.7-beta-2

10 months ago

1.9.7-beta-1

10 months ago

1.9.7-beta-10

7 months ago

1.9.7-beta

11 months ago

1.9.6

1 year ago

1.9.5

1 year ago

1.9.4

2 years ago

1.9.3

2 years ago

1.9.2

2 years ago

1.9.1

2 years ago

1.9.0

2 years ago

1.8.9

2 years ago

1.8.6-beta

2 years ago

1.8.8

2 years ago

1.8.7

2 years ago

1.8.5

2 years ago

1.8.3-beta.10

2 years ago

1.8.3-beta.11

2 years ago

1.8.4

2 years ago

1.8.3

2 years ago

1.8.3-beta.8

2 years ago

1.8.3-beta.9

2 years ago

1.8.3-beta.7

3 years ago

1.8.3-beta.6

3 years ago

1.8.3-beta.5

3 years ago

1.8.3-beta.4

3 years ago

1.8.3-beta.3

3 years ago

1.8.3-beta.2

3 years ago

1.8.3-beta.1

3 years ago

1.8.2

3 years ago

1.8.1

3 years ago

1.7.1

3 years ago

1.8.0

3 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.12

4 years ago

1.2.11

4 years ago

1.2.10

4 years ago

1.2.9

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago