Product Catalog Management
Product Catalog Management
Purpose:
Dynamic product catalog maintenance with real-time pricing updates, inventory synchronization, and product lifecycle management.
Description:
The catalog management system maintains the master product database with real-time synchronization across all sales channels. It handles product information updates, pricing changes, inventory levels, and product lifecycle transitions. The system supports bulk operations, automated pricing rules, and integration with supplier systems for seamless catalog maintenance.
Catalog Operations:
- Bulk pricing updates with validation
- Product addition and removal procedures
- Inventory synchronization across multiple systems
- Product specification and metadata management
- Automated pricing rule application
Business Value:
Ensures pricing accuracy across all channels, reduces manual catalog maintenance effort, enables dynamic pricing strategies, maintains inventory accuracy, and supports rapid product launches and updates.
Partner Device Catalog Onboarding
The partner needs to send us a device catalog list to establish the base catalog for the rental program. Bolttech will provide a template Excel file that the partner can fill out with their device information. This completed template will become the master device list for the program.
The template will include fields for all necessary device attributes, such as brand, model, capacity, color and other relevant specifications. Once completed by the partner and returned to Bolttech, this master device list will serve as the reference for all devices available in the rental program.
This standardized approach ensures that all required device information is captured in a consistent format, making it easier to integrate the data into our systems and maintain an up-to-date catalog of available devices for rental.
Note: It is worth mentioning that when new devices are added in the future, the process should be repeated, but only for the new device
Device Pricing Update
POST /v4.1/catalog/action
(Device Price Update)
Purpose:
Manages product catalog operations including price updates, product removal, and inventory synchronization with comprehensive validation and audit trails.
Endpoint Explanation:
[Rental Only]This multi-action endpoint handles various catalog management operations through action-based processing. The system supports bulk price updates with validation against business rules, product removal procedures with dependency checking, and inventory synchronization across multiple systems. Each operation maintains comprehensive audit trails, validates data integrity, and triggers appropriate downstream updates to ensure catalog consistency across all platform components. The endpoint handles incremental updates for efficiency and supports rollback capabilities for operational safety.
Fields Dictionary
Property | Type | Description |
---|---|---|
incremental | boolean | The parameter defines whether the input contains whole pricelist which will overwrites old records in BT system OR the input contains only these records which have changed since last upload |
assetModelPrices | Array of assetModelPricesDTO | Collection of device prices identified by the partnerID (SKU) or EAN |
ean | String | European Article Number |
partnerDeviceId | String | This is an identifier deriving from device catalog synchronization during the manual exchange of information with a partner in the onboarding phase |
priceNet | Int | The net price amount of the device |
- Request (cURL)
- Request Payload (JSON)
curl -X POST https://api.rc.saas.bolttech.asia/v4.1/catalog/action \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"configuration": {
"action_id": "update_price",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"incremental": false,
"asset_model_prices": [
{
"ean": "8801643665432",
"partner_device_id": "SAMS-S23U-512-BLK",
"price_net": 899900
},
{
"ean": "6901443457892",
"partner_device_id": "HUAW-P50P-256-GLD",
"price_net": 699900
},
{
"ean": "0190199723634",
"partner_device_id": "APPL-IP14P-256-BLK",
"price_net": 999900
},
{
"ean": "7350028569832",
"partner_device_id": "NOTH-PH2-256-GRY",
"price_net": 499900
},
{
"ean": "4548736134492",
"partner_device_id": "SONY-XP1-128-PUR",
"price_net": 599900
}
]
}
}'
{
"configuration": {
"action_id": "update_price",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"incremental": false,
"assetModelPrices": [
{
"ean": "8801643665432",
"partnerDeviceId": "SAMS-S23U-512-BLK",
"priceNet": 899900
},
{
"ean": "6901443457892",
"partnerDeviceId": "HUAW-P50P-256-GLD",
"priceNet": 699900
},
{
"ean": "0190199723634",
"partnerDeviceId": "APPL-IP14P-256-BLK",
"priceNet": 999900
},
{
"ean": "7350028569832",
"partnerDeviceId": "NOTH-PH2-256-GRY",
"priceNet": 499900
},
{
"ean": "4548736134492",
"partnerDeviceId": "SONY-XP1-128-PUR",
"priceNet": 599900
}
]
}
}
- Response Payload (JSON)
{
"status": "success"
}
Remove device from catalog
POST /v4.1/catalog/action
(Remove Device)
Purpose:
Manages product catalog operations including price updates, product removal, and inventory synchronization with comprehensive validation and audit trails.
Endpoint Explanation:
[Rental Only]This multi-action endpoint handles various catalog management operations through action-based processing. The system supports bulk price updates with validation against business rules, product removal procedures with dependency checking, and inventory synchronization across multiple systems. Each operation maintains comprehensive audit trails, validates data integrity, and triggers appropriate downstream updates to ensure catalog consistency across all platform components. The endpoint handles incremental updates for efficiency and supports rollback capabilities for operational safety.
- Request (cURL)
- Request Payload (JSON)
curl -X POST https://api.rc.saas.bolttech.asia/v4.1/catalog/action \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"configuration": {
"action_id": "remove_device",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"partnerDeviceId": "DEV-SAMSUNG-S23-256-BLK"
}
}'
{
"configuration": {
"action_id": "remove_device",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"partnerDeviceId": "DEV-SAMSUNG-S23-256-BLK"
}
}
- Response Payload (JSON)
{
"status": "success"
}
Get Stock Availability
POST /v4.1/catalog/action
(Get Stock Availability)
Purpose:
Get stock availability for a product or a list of products on the rental program for a specific partner where product code is specific to the partner rental program.
Endpoint Explanation:
[Rental Only]This endpoint allows partners to check real-time inventory levels for rental products in their catalog. It supports both single product queries and batch requests for multiple products simultaneously.
Property | Type | Description |
---|---|---|
productCode | String | The ID of rental process |
partnerDeviceId | Array of string | Unique identifier for device id |
updated | String | The date which will be used to filter the response showing only these devices which stock amounts changed after provided date |
stock | Array of StockDTO | Collection of device volumes identified by the warehouseCode in the BT warehouse |
stockDTO: partnerDeviceId | String | The identifier of the device in the warehouse - stock keeping unit |
stockDTO: volume | int | The amount of devices available in the warehouse globally |
stockDTO: storageSystems | Array of StorageSystemsDTO | The amount of devices available differentiated by the warehouse systems and internal warehouse storages |
storageSystemsDTO: systemCode | String | The code of the system which provides warehouse functionality |
storageSystemsDTO: volume | int | The sum of amounts of devices available in the all warehouse storages (in the particular warehouse system) |
storageSystemsDTO: Volumes | Array of VolumesDTO | Devices volumes differentiated by internal warehouse storages for the particular warehouse system |
VolumesDTO: storage | String | The code of the warehouse storage in the particular warehouse system |
VolumesDTO: volume | int | The amount of devices available in the warehouse storage (in the particular warehouse system) |
- Request (cURL)
- Request (JSON)
- Reponse
curl -X POST https://api.rc.saas.bolttech.asia/v4.1/catalog/action \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '
{
"configuration": {
"action_id": "get_stock",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"updated": "YYY",
"partner_device_id": 111
}
}
'
{
"configuration": {
"action_id": "get_stock",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"updated": "YYY",
"partner_device_id": 111
}
}
{
"stock": [
{
"partner_device_id": "DEV123456",
"volume": 500,
"storage_systems": [
{
"system_code": "WH-MAIN",
"volume": 300,
"volumes": [
{
"storage": "SHELF-A1",
"volume": 150
}
]
}
]
}
]
}
Get Rental Pricing
POST /v4.1/catalog/action
(Get Rental Pricing)
Purpose:
Get a rental price for a product or a list of products available on the rental program for a specific partner where product code is specific to the partner rental program
Endpoint Explanation:
This endpoint allows partners to check real-time pricing. It supports both single product queries and batch requests for multiple products simultaneously.
Property | Type | Description |
---|---|---|
productCode | String | The ID of rental process |
pricingIdList | Array of string | The ID of desired pricelist which will be used for response filtering |
deviceType | Array of string | The asset types of desired device types for which the pricelist will be returned (smartphone, laptop, etc.) |
warehouseCode | String | The stock keeping unit Ids for which we would like to fetch the stock amounts |
customerType | String | The customer types for which the pricelist will be returned (b2b, b2c, etc.) |
rentalPricing | Array of rentalPricingDTO | The list of pricing lines in the BT pricelist with rental option & device properties |
rentalPricingDTO:id | String | The internal ID of the priceline (required for contract creation) |
rentalPricingDTO:deviceType | String | The device type of the particular device (smartphone, laptop, etc.) |
rentalPricingDTO:manufacturer | String | The manufacturer of the particular device |
rentalPricingDTO:model | String | The model name of the particular device |
rentalPricingDTO:memory | String | The memory of the particular device |
rentalPricingDTO:colour | String | The colour of the particular device |
rentalPricingDTO:grade | String | The grade of the particular device |
rentalPricingDTO:partnerDeviceId | String | The stock keeping unit ID of the particular device |
rentalPricingDTO:customerType | String | The customer type for the particular priceline (rental option)(B2C,B2B) |
rentalPricingDTO:tenor | int | The tenor for the particular priceline (rental option) |
rentalPricingDTO:initialValueNet | decimal | The initial net amount for the particular priceline |
rentalPricingDTO:initialValueGross | decimal | The initial gross amount for the particular priceline |
rentalPricingDTO:residualValueNet | decimal | The RV net amount for the particular priceline |
rentalPricingDTO:residualValueGross | decimal | The RV gross amount for the particular priceline |
rentalPricingDTO:monthlyPaymentNet | decimal | The monthly net rent amount for the particular priceline (incl. rental + protection) |
rentalPricingDTO:monthlyPaymentGross | decimal | The monthly gross rent amount for the particular priceline (incl. rental + protection) |
rentalPricingDTO:beforeDiscountNet | decimal | The monthly rent net amount before discount application for the particular priceline |
rentalPricingDTO:beforeDiscountGross | decimal | The monthly rent gross amount before discount application for the particular priceline |
rentalPricingDTO:rentalMonthlyPaymentNet | decimal | The monthly net rent amount for the particular priceline |
rentalPricingDTO:rentalMonthlyPaymentGross | decimal | The monthly gross rent amount for the particular priceline |
rentalPricingDTO:packageMonthlyChargeNet | decimal | The monthly protection fee amount for the particular priceline |
rentalPricingDTO:packageMonthlyChargeGross | decimal | The monthly gross protection amount for the particular priceline |
rentalPricingDTO:packageName | String | The name of the protection package applied to the particular priceline |
repoDocuments | Array of repoDocumentsDTO | The list of the rental process documents (T&C, contract template, etc) |
repoDocuments:id | String | The ID of the product document |
repoDocuments:name | String | The name of the product document |
repoDocuments:type | String | The type of the product document |
repoDocuments:docs | Array of repoDocumentsDTO | The list of the archived files |
- Request (cURL)
- Reponse
curl -X POST https://api.rc.saas.bolttech.asia/v4.1/catalog/action \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '
{
"configuration": {
"action_id": "get_pricing",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"customerType": "YYY",
"warehouseCode": "ZZZ",
"pricingIdList": [111],
"deviceType": ["XYZ"]
}
'
{
"configuration": {
"action_id": "get_pricing",
"product_code": "string",
"callback_url": "string"
},
"payload": {
"customerType": "YYY",
"warehouseCode": "ZZZ",
"pricingIdList": [111],
"deviceType": ["XYZ"]
}
}
POST /v4/verify/imei
Purpose:
Verifies device IMEI numbers against blacklists and validates device authenticity with comprehensive database checks.
Endpoint Explanation:
This endpoint performs IMEI verification by checking device identifiers against global blacklist databases, stolen device registries, and manufacturer databases. The system validates device authenticity, checks for reported theft or fraud, and provides device specification verification to ensure accurate coverage and pricing.
- Request (cURL)
- Request Payload (JSON)
curl -X POST https://api.rc.saas.bolttech.asia/v4/verify/imei \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"imei": "861248007147070",
"deviceDetails": {
"make": "Apple",
"model": "iPhone 15 Pro",
"purchaseDate": "2024-01-15",
"purchasePrice": 1199.99
},
"verificationLevel": "comprehensive",
"checkBlacklist": true,
"checkStolen": true,
"checkAuthenticity": true
}'
{
"imei": "861248007147070",
"deviceDetails": {
"make": "Apple",
"model": "iPhone 15 Pro",
"purchaseDate": "2024-01-15",
"purchasePrice": 1199.99
},
"verificationLevel": "comprehensive",
"checkBlacklist": true,
"checkStolen": true,
"checkAuthenticity": true
}
- Response Payload (JSON)
{
"imei": "861248007147070",
"verificationStatus": "verified",
"deviceValid": true,
"blacklistStatus": "clean",
"stolenStatus": "not_reported",
"authenticityCheck": "passed",
"deviceInfo": {
"make": "Apple",
"model": "iPhone 15 Pro",
"storage": "256GB",
"color": "Natural Titanium",
"manufactureDate": "2023-12-10",
"warrantyStatus": "active"
},
"verificationTimestamp": "2024-03-01T13:45:30Z",
"confidence": "high"
}