Offer Feed Documentation
This feed enables you to manage searchable items within a specific context and to define context-dependent information, including:
- Prices
- Promotions
- Availability
- Context-specific attributes
Definition of an Offer
An offer (searchable item) is defined as:
id (from catalog feed) + store_code
- id must match the SKU (
id) from the catalog feed - store_code defines the context (website context, physical or virtual store, segment, etc.)
⚠️ Make sure to only provide offers for items included in your catalog feed.
Marketplace-Specific Considerations
When operating a marketplace, the offer feed must include an additional dedicated context:
- In addition to existing contexts (stores, regions, segments, etc.), you must define one specific
store_codefor marketplace offers - All products sold by marketplace sellers must be grouped under this single marketplace store_code in the offer feed
Example:
store_code = "marketplace"
Important behavior:
- Marketplace products are always included in Sensefuel responses, regardless of the active context
- Products tied to the current context (e.g., store, region) are returned alongside marketplace products
Front-end requirement:
When using marketplace:
- The front-end (via JavaScript tag or API calls) must always provide a valid context (
store_code) - Sensefuel will:
- Use this context to retrieve contextual products
- Automatically enrich results with marketplace products
✅ This ensures marketplace visibility without breaking contextual relevance
Front-end Context Requirement
The store_code must be accessible on your website via:
- Cookie
- JavaScript function
- Variable
- Data Layer
➡️ This allows Sensefuel to synchronize search results with the correct context.
If you integrate Sensefuel via API, you must include the store_id parameter in every query.
Example:
POST https://api.sensefuel.live/discovery/96cd2378-sample-1-b92af0700c54/search
{
"query": {
"terms": {
"expression": "sneakers"
},
"store_id": "dummySeller"
}
//[...]
}Supported Formats
CSV / Text Format
- Encoding: UTF-8 or Latin1
- Separator:
|(pipe recommended) - Use double quotes for all attributes and values
- Multi-values: supported for all additional attributes
- Feed is extensible (custom attributes allowed)
- Attribute names must not contain spaces
⚠️ Important:
If your catalog feed is in CSV/Text → the offer feed must also be CSV/Text
XML Format
- Encoding: UTF-8
- Supported formats:
- RSS 2.0
- RSS 1.0
- Atom 1.0
Best practices:
- Use
<![CDATA[value]]>when needed - Avoid empty CDATA
- Multi-values:
- Use repeated tags
- Or comma-separated values within a tag
- Feed is extensible (custom attributes allowed)
- Attribute names must not contain spaces
⚠️ Important:
If your catalog feed is in XML → the offer feed must also be XML
Attributes Specification
id
- Mandatory
- Use the product SKU (
id) - Must be unique per product
- Maximum 50 characters
store_code
- Mandatory
- Alphanumeric value
- Must match:
- The value sent in API calls (
store_id) - Or the value exposed on the website (cookie, JS, dataLayer, etc.)
- The value sent in API calls (
➡️ Ensures proper synchronization of results with the context
availability
- Mandatory
- Allowed values:
"in stock"or"in_stock""out of stock"or"out_of_stock"
➡️ Out-of-stock products are automatically demoted in ranking
price
- Mandatory
- Numeric value only
- Currency must be included (ISO 4217 format)
sale_price
- Optional (but mandatory if discounted in that context)
- Must be lower than
price - Numeric value only
- Currency must be included (ISO 4217 format)