Getting started
Overview
You'll need to do the following things to get Unbxd working with your app.
- Add the Magento Module to your Magento instance
- Add the Unbxd package as a dependency of your server app
- Configure Unbxd in your sever app config
- Assign Unbxd as the datasource for the search extension
1. Add the Magento Module
You'll need to have the offical Unbxd Magento module installed.
https://github.com/unbxd/Magento-2-Extension
2. Add our package
You'll need to add @deity/falcon-unbxd-search-module as a dependency in your project (inside the server app).
3. Configuration
url- The service URL provided by UnbxdoverrideCategoryProductListResolver- [COMING SOON] - This config will be used to determine if Unbxd will be used for category pages as well as search.sites- The list of sites you have that need to use the search Each site should be an object containing site config (below).
Site Config
siteKey- The site key found in the Unbxd dashboardapiKey- The API key found in the Unbxd dashboard
Default Configuration
By default Unbxd isn't enabled and no stores are configured.
"modules": {
"unbxd": {
"package": "@deity/falcon-unbxd-search-module",
"enabled": false,
"config": {
"url": "https://search.unbxd.io",
"overrideCategoryProductListResolver": false,
"sites": {}
}
}
}
Store Data
You should add configuration for each of your stores, with the Magento store code as the key.
Example for setup with 2 stores in Magento, default and store1
"modules": {
"unbxd": {
"package": "@deity/falcon-unbxd-search-module",
"enabled": false,
"config": {
"url": "https://search.unbxd.io",
"overrideCategoryProductListResolver": false,
"sites": {
"default": {
"siteKey": "siteKey-connected-to-default-store",
"apiKey": "apiKey-connected-to-default-store"
},
"store1": {
"siteKey": "siteKey-connected-to-store1",
"apiKey": "apiKey-connected-to-store1"
}
}
}
}
}
Environment Variables
To use Unbxd on a cloud environment you'll have to use environment variables.
Default Variables
"modules": {
"unbxd": {
"enabled": {
"__name": "UNBXD_ENABLED",
"__format": "json"
},
"overrideCategoryProductListResolver": {
"__name": "UNBXD_OVERRIDE_CATEGORY_PRODUCT_LIST_RESOLVER",
"__format": "json"
},
"config": {
"url": "UNBXD_URL",
"sites": {}
}
}
}
UNBXD_ENABLED- boolean - defaults tofalseUNBXD_CONFIG- JSON String - defaults tonullUNBXD_OVERRIDE_CATEGORY_PRODUCT_LIST_RESOLVER- boolean - defaults tofalse
Adding Stores
You will need to manually add each store to your server/config/custom_environment_variables.json file to be able to configure them remotely.
You can name these variables whatever you want be we advise the below convention.
"modules": {
"unbxd": {
...
"config": {
...
"sites": {
"default": {
"siteKey": "UNBXD_SITEKEY_DEFAULT",
"apiKey": "UNBXD_APIKEY_DEFAULT"
},
"store1": {
"siteKey": "UNBXD_SITEKEY_STORE1",
"apiKey": "UNBXD_APIKEY_STORE1"
}
}
}
}
}
We advise you keep your API and Site keys out of your repo and add them to a config/local.json file for local development and save them as secrets remotely e.g. dcloud env:var:set -s production UNBXD_SITEKEY_STORE1 keyvaluehere.
4. Assign Unbxd to your search extension
In your server/config/default.json you'll want to assign unbxd as the data source for your search extension:
"extensions": {
...
"search": {
"package": "@deity/falcon-search-extension",
"config": {
"module": "unbxd"
}
}
}