All Products
This method is used for populating a full listing page of all products.
getProducts
The method returns the retailer products. We cache the retailer products on the backend for 5 mins and clear the cache in some cases(when promotions, inventory get updated, etc).
Params:
filters = {
categories: ['flower', 'pre-roll'], //you can also pass category_slug from the products request
provinces: ['Alberta'],
strains: ['Blend'],
terpenes: ['Alpha-Humulene', 'Bergamotene'],
brands: [2060]
}
The above example illustrates some filters you can use to filter the returned list of products. The string values get compared without case-sensitivity.
All Categories
Flower Pre-Roll Beverage Capsules Concentrate Disposable Vape Edible Infused-Flower Infused-Pre-Roll Milled-Flower Oil Plants Seeds Spray Topical Vape
Examples:
Buddi.getProducts();
Buddi.getProducts({categories: ['flower', 'pre-roll']});
Buddi.getProducts({categories: ['pre-roll'], strains: ['Blend']});
Events: products:loaded, products:loading-error
Returns:
[ShortProduct,ShortProduct, ...]
ShortProduct Format
{
id: 1,
name: 'Pink Kush',
brand: {id: 1, name: 'Canna Farms'}, //null if the brand doesn't exist
images: ['https://buddi.io/pink-kush.png'], //returns a single image
strain: 'Blend',
category: 'flower',
category_slug: 'flower', //category slug for URL
subcategory: null,
overall_terpene_percent: 20,
slug: 'canna-farms-pink-kush-flower-1',
terpenes: [{title: 'Alpha-Bisabolol', percent: 1}, ...],
province: 'BC',
options: [ProductOption, ProductOption, ...]
}
ProductOption Format
{
ri_id: 123, //retailer inventory ID, use it to add the product option to cart
qty_in_pack: null,
pack_item_weight: null,
display_title: '1.5g',
discounted_price: null, //discounted price - if exists
price: 123,
upc: '675136000165',
variant: null,
weight: 1.5,
in_stock: true,
special_message: {txt: 'Hello there', bg_color: '#fff', txt_color: '#000'}, //null - if doesn't exist
cannabinoids: [{label: 'thc', value: '1.00%'}...]
}