title | description |
---|---|
Providers |
Guide to setting up necessary providers and obtaining their API keys. |
In today's world utilizing third-party providers is essential for building a robust e-commerce platform.
These providers can significantly reduce overhead and eliminate the need for redundant development efforts. Below, you will find a list of providers that integrate seamlessly with our system, enabling you to get started quickly while we keep adding more options.
Depending on the starter you choose, you will need to obtain different keys.
Shopify is a leading e-commerce platform that allows you to create and manage your online store with ease.
Keys to obtain:
SHOPIFY_STORE_DOMAIN
SHOPIFY_STOREFRONT_ACCESS_TOKEN
SHOPIFY_ADMIN_ACCESS_TOKEN
SHOPIFY_APP_API_SECRET_KEY
- Variable Required:
SHOPIFY_STORE_DOMAIN
- How to Obtain:
- Your Shopify store domain is the URL of your Shopify store. You can obtain it in shopify dashboard, it should be without
https
and/
at the end of the string. Example:cool-socks.myshopify.com
- Your Shopify store domain is the URL of your Shopify store. You can obtain it in shopify dashboard, it should be without
- Variable Required:
SHOPIFY_STOREFRONT_ACCESS_TOKEN
- Installation and Configuration:
- Visit the Shopify Marketplace and search for the Headless commerce application or navigate directly to https://apps.shopify.com/headless.
- Install the application, open it, and create a new Storefront within the app.
- In the "Manage API Access" section, click on the
Manage
button next to Storefront API. - Make sure you have enabled
unauthenticated_read_product_inventory
andunauthenticated_read_customer_tags
scopes - Copy the Private access token displayed and place it in your
.env
file underSHOPIFY_STOREFRONT_ACCESS_TOKEN
.
- Variables Required:
SHOPIFY_ADMIN_ACCESS_TOKEN
,SHOPIFY_APP_API_SECRET_KEY
- Application Setup and Scopes Configuration:
- Go to the Shopify admin dashboard, navigate to Settings >
Apps and sales channels
>Develop Apps
, and click onCreate app
. - After naming and creating your app, move to the
Configuration
tab. - In the "Admin API access scopes" section, click
Edit
and select the following scopes:write_product_listings
read_product_listings
read_products
write_products
- Under Webhook subscriptions, choose the
2024-01
API version. - Lastly, navigate to the
API Credentials
section.- Copy the Admin API access token and place it in your
.env.local
file underSHOPIFY_ADMIN_ACCESS_TOKEN
- Also, copy the
API secret key
and place it in your.env.local
file underSHOPIFY_APP_API_SECRET_KEY
- Copy the Admin API access token and place it in your
- Go to the Shopify admin dashboard, navigate to Settings >
Algolia is a SaaS platform that provides fast, customizable, and scalable search capabilities.
Keys to obtain:
ALGOLIA_APP_ID
ALGOLIA_WRITE_API_KEY
ALGOLIA_PRODUCTS_INDEX
ALGOLIA_CATEGORIES_INDEX
ALGOLIA_REVIEWS_INDEX - only if you're using reviews feature
To get starter create an account and log in to the admin dashboard
- Go to your account settings and API Keys
- From here copy
Application ID
,Write API Key
- Now go to your search dashboard and create indicies for products, categories and reviews
- Copy those indicies name as well and
- Paste obtained keys to your
.env.local
For your storefront to work properly there's necessary setup required:
Setup your products
index attributes for faceting:
- "hierarchicalCategories" only if you're planning on using this feature
- "avgRating" only if you're using reviews feature
[
"collections.handle",
"collections.id",
"flatOptions.color",
"handle",
"minPrice",
"tags",
"variants.availableForSale",
"vendor",
"hierarchicalCategories.lvl0",
"hierarchicalCategories.lvl1",
"hierarchicalCategories.lvl2",
"avgRating"
]
And then your categories
index attributes for faceting:
handle
Now to make your sorting work we need to create virtual replica for each of the sorting options, the formula is:
{indexName}_price_desc
{indexName}_price_asc
{indexName}_rating_desc
{indexName}_updated_asc
{indexName}_updated_desc
And for each replica:
- Configuration tab > Relevant Sort > minPrice/avgRating/updatedAtTimestamp - (ascending/descending)
Meilisearch is a powerful, fast, open-source search engine.
There are two main ways to host Meilisearch:
- on-premise (self-hosting on dedicated servers or cloud providers)
- using Meilisearch Cloud.
For the purposes of this guide, we will focus on the recommended approach, which is using Meilisearch Cloud.
Keys to obtain:
MEILISEARCH_PRODUCTS_INDEX
MEILISEARCH_CATEGORIES_INDEX
MEILISEARCH_ADMIN_KEY
MEILISEARCH_HOST
MEILISEARCH_REVIEWS_INDEX - only if you're using reviews feature
To get started with Meilisearch Cloud, navigate to the Meilisearch Cloud platform and log in.
- Create a new project within the platform.
- Create two indicies called
products
andcategories
. If you wish to use different names make sure your environment variablesMEILISEARCH_PRODUCTS_INDEX
andMEILISEARCH_CATEGORIES_INDEX
are updated accordingly. - After your project is set up, proceed to the "Settings" tab of your Meilisearch Cloud project.
- Locate and copy the
Default Admin API Key
. This key should be securely stored in your.env.local
file under theMEILISEARCH_ADMIN_KEY
variable. - Copy the Meilisearch URL and place it in your
.env.local
file underMEILISEARCH_HOST
. Ensure you do not include a trailing slash at the end of the URL. - Set up your indicies
The last thing, but also crucial for application to work correctly is setting your Meilisearch index the right way.
Products index:
Filterable attributes:
- "hierarchicalCategories" only if you're planning on using this feature
- "avgRating" only if you're using reviews feature
[
"collections",
"collections.handle",
"collections.id",
"flatOptions",
"handle",
"minPrice",
"tags",
"variants.availableForSale",
"vendor",
"hierarchicalCategories",
"hierarchicalCategories.lvl0",
"hierarchicalCategories.lvl1",
"hierarchicalCategories.lvl2",
"avgRating"
]
Sortable attributes:
"avgRating" only if you're using reviews feature
[
"minPrice",
"updatedAtTimestamp",
"avgRating"
]
Categories index:
Filterable attributes:
[
"handle",
"id"
]