- Goal: Apply Sensefuel’s AI product ranking to your PLPs (including Showcase feature).
- Out of scope: Hyper‑personalization, facets (filters), user sorting.
- Benefit: Strong product ranking relevance + business control with a minimal integration impact.
Endpoints
-
Use:
/navigation -
Why: Returns ranked products for a PLP (by
scope_idorproduct_type), plus optional Showcase module. - For other ranking needs you can use in our Discovery API other endpoints such as
landing_pageorselection, etc. with the same principles.
Key Decisions before starting your project
-
Retrieving model for the
/navigationendpoint:- Choose one or both depending on your needs. These attributes are data propagated to Sensefuel from your catalog feed as a CSV/XML file or through our Catalog API.
-
scope_id(category identifier), -
product_type(single classification per product).
-
- Choose one or both depending on your needs. These attributes are data propagated to Sensefuel from your catalog feed as a CSV/XML file or through our Catalog API.
-
Feed rules:
- Each product has most of the time one
product_type. - Each product may have multiple
scope_idvalues, semicolon‑separated without spaces\ e.g.,CAT12345;CAT78910;CAT59595.
- Each product has most of the time one
Request Pattern
- New random
user_idandtrack_idper job run (series of API call to retrieve all your PLPs ranking). -
Pagination:
limit ≤ 100; loopoffset(0, 100, 200, …) until complete or you reach your cap. -
Modules: Request only what you need, typically:
-
items(ranked products, generally with the addition of "fields" and "variants_fields" with only the ["id"] to obtain in the API response), -
showcases(business rules configured in the platform, generally with the addition of "fields" and "variants_fields" with only the ["id"] to obtain in the API response), -
tracking(mandatory; helps avoid duplicates / manage cursors).
-
Example (illustrative):
Request
curl --location 'https://api.sensefuel.live/discovery/your_unique_environment_identifer/navigation' \
--header 'x-api-key: your_discovery_api_key' \
--header 'Content-Type: application/json' \
--data '{
"query" : {
"search_scope" : {
"scope_id" : "your_category_id"
},
"user_id": "GUID_to_randomized",
"track_id": "GUID_to_randomized"
},
"modules": {
"items": {
"from": 0,
"size": 100,
"fields" : ["g:id"],
"variants_fields" : ["g:id"]
},
"showcases" :{
"fields" : ["g:id"],
"variants_fields" : ["g:id"]
},
"tracking": {}
}
}'
Payload module - pagination
You must include the "tracking" module so the response contains a "payload" intended to keep a stable pagination context and avoid duplicates while retrieving ranked products for a PLP. You should then provide back this payload anytime the previous API call response contains one for a specific PLP.
Assembly Rules (PLP output)
Showcase first: Display products from showcases.items before ranked items, preserving returned order.
For your information find below the showcase templates and parameters provided in our API responses (this rendering information is optional to reduce integration effort):
-
MANUAL_RANKING→ neutral (showcased products are not explicitly presented to your customers) -
FULL_PRODUCT→ sponsored (showcased products are explicitly presented to you customers with a background color and title) -
BANNER→ visual (showcased products are explicitly presented to your customers with a visual next to the 1st product)
Scheduling & Caching
- Recommended refresh: at least 4–6 times per day for all navigable PLPs in order to retrieve and display fresh ranking and take into account eventual business rules configured in Sensefuel's platform.
- Store results: Cache per‑PLP lists. Front‑end reads these lists without refactor.
Resilience & Monitoring (essentials)
- Retries: Set up automatic retries; use last successful cache on failure.
- Observability: Log API calls sessions, PLP request counts, item counts per PLP and total items counts, as well as errors.