Broadleaf Microservices
  • v1.0.0-latest-prod

Browse Details Endpoint

Overview

The browse details endpoint provides a single API to resolve a Content Item, Product or Category based on a passed in URI. This is useful when the frontend doesn’t know ahead of time what type of entity is being requested. Depending on the response from the server, the frontend can react accordingly.

The request is passed through any configured external providers until a match is found. The default order is:

To extend the functionality, additional provider beans can be registered to hit other services.

Request Details

The request contains parameters for resolving some browse entity when only URIs are known, not what type of entity. The response could contain content items, products, or a category.

Headers

The request made can contain two headers (along with the typical X-Context-Request one) as well as several parameters used to determine what entity to fetch. The headers are used to provide additional context for pricing the product and are passed along in pricing calls after retrieving the base catalog info:

  • X-Price-Context: Contains general context info including the locale, currency, and user targets associated with the caller’s context

    • User targets include an identifier and type for a user such as an email and CUSTOMER for a single user.

  • X-Price-Info-Context: Contains additional context info for gathering price info for specific products. It includes a list of the products converted into PriceableTargets as well as an optional list of predetermined PriceLists from which prices should be derived.

Note

A PriceableTarget is a DTO representing any kind of entity that can be priced. It includes

  • the ID,

  • the type (e.g., SKU, PRICING_KEY),

  • a map representing the priceable fields of the entity (e.g., basePrice → $10.99, salePrice → $9.99, cost → 1.99)

  • and a map of arbitrary attributes that the pricing engine can target such as the entity’s name, categories it belongs to, etc.

Parameters

The parameters are passed along to each of the configured providers to determine what entity to retrieve. Typically, this request is expecting a list of uris to resolve against. This could also contain a page request in the event that a paged response is desired.

See the providers for a comprehensive list of acceptable parameters.

Response Details

The response could contain products, content items, or a category. However, it will not contain a mix of those entities, only a single entity type.

  • products: Products matching the requested uris.

  • category: Category matching the requested uri.

  • contentItems: Content items matching the requested uris.

  • paginatedContentItems: A page of matching content items if a page request was included in the request.

  • urisForMissingEntities: List of requested uris that did not match an entity.

  • itemNamesNotFound: Any requested ContentItem names that did not match active content.

  • itemIdsNotFound: Any requested ContentItem ids that did not match active content.

  • hasResults: Whether any type of results are present.