Filter products with price range
Narrows a product list down to a price range.
What this example does:
- Defines the price range
- Builds the filters array and passes it as the filter
- Applies the filter and reviews the results
Prerequisites:
- A valid
PROJECT_URLandAPP_TOKENfor the OneEntry API - Products with a
priceattribute
Notes:
- By default (
isShell: true) the SDK returns an error object instead of throwing, so check the result, e.g.'statusCode' in result. WithisShell: falseit throws, and you handle errors with try/catch. See Errors.
Platform docs:
SDK reference:
Try it live
Run this example in the JS SDK sandbox. Connect your Project URL and App Token on first visit, then open:
Scenario
1. Import defineOneEntry and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';
import type { IFilterParams, IProductsQueryBase } from 'oneentry';
const PROJECT_URL = 'https://your-project.oneentry.cloud';
const APP_TOKEN = 'your-app-token';
2. Create an API client with defineOneEntry()
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. Build the array of filter conditions
const body: IFilterParams[] = [
{
attributeMarker: 'price',
conditionMarker: 'mth', // more than
conditionValue: 100,
isNested: false,
},
{
attributeMarker: 'price',
conditionMarker: 'lth', // less than
conditionValue: 500,
isNested: false,
},
];
4. Define the request parameters
const userQuery: IProductsQueryBase = {
offset: 0,
limit: 20,
sortKey: 'price',
sortOrder: 'ASC',
};
5. Get the products with Products.getProducts()
const products = await Products.getProducts(body, 'en_US', userQuery);
if ('statusCode' in products) {
throw new Error(products.message);
}
console.log('ProductsData: ', products);
Result:
{
"items": [
{
"id": 11,
"attributeSetIdentifier": "ticket",
"localizeInfos": {
"title": "Silver"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"tickets"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "150",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 6,
"attributeSetIdentifier": "service",
"localizeInfos": {
"title": "Green service"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": "",
"isSync": true,
"categories": [
"services"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "150",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"type": {
"type": "list",
"value": [],
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"sku": {
"type": "string",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 12,
"attributeSetIdentifier": "ticket",
"localizeInfos": {
"title": "Gold"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 200,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"tickets"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "200",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 2,
"attributeSetIdentifier": "service",
"localizeInfos": {
"title": "Red service"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 4,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 250,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": "",
"isSync": true,
"categories": [
"services"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "250",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"type": {
"type": "list",
"value": [],
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"sku": {
"type": "string",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 13,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Red ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 5,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 300,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "300",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 14,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Green ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 6,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 340,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "340",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 15,
"attributeSetIdentifier": "product",
"localizeInfos": {
"title": "Orange ball"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 7,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 400,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": null,
"isSync": true,
"categories": [
"products"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "400",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"image": {
"type": "image",
"value": [],
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": true
}
},
"moduleFormConfigs": [],
"discountConfig": {}
},
{
"id": 7,
"attributeSetIdentifier": "service",
"localizeInfos": {
"title": "Blue service"
},
"statusLocalizeInfos": {},
"isVisible": true,
"statusIdentifier": null,
"position": 8,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 450,
"additional": {
"prices": {
"min": 100,
"max": 999
}
},
"sku": "",
"isSync": true,
"categories": [
"services"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {
"price": {
"type": "real",
"value": "450",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"type": {
"type": "list",
"value": [],
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"sku": {
"type": "string",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [],
"discountConfig": {}
}
],
"total": 8
}
Final example
// 1. Import defineOneEntry and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';
import type { IFilterParams, IProductsQueryBase } from 'oneentry';
const PROJECT_URL = 'https://your-project.oneentry.cloud';
const APP_TOKEN = 'your-app-token';
// 2. Create an API client with defineOneEntry()
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
// 3. Build the array of filter conditions
const body: IFilterParams[] = [
{
attributeMarker: 'price',
conditionMarker: 'mth', // more than
conditionValue: 100,
isNested: false,
},
{
attributeMarker: 'price',
conditionMarker: 'lth', // less than
conditionValue: 500,
isNested: false,
},
];
// 4. Define the request parameters
const userQuery: IProductsQueryBase = {
offset: 0,
limit: 20,
sortKey: 'price',
sortOrder: 'ASC',
};
// 5. Get the products with Products.getProducts()
const products = await Products.getProducts(body, 'en_US', userQuery);
if ('statusCode' in products) {
throw new Error(products.message);
}
console.log('ProductsData: ', products);