Broadleaf Microservices
  • v1.0.0-latest-prod

Browse Types

ActivePromotionCodes

Property Type Description

sharedCodes?

Array<string>

A list of shared codes.

trackingIds?

Array<string>

A list of any tracking ids.

AdvancedTag

A "tag" represents a unique purchasing attribute for a product such "new", "on sale", "fairtrade", etc. Tags may also be configured as tags with a rich text message and some controls for how or where they should be displayed on the storefront. By default, tags are facetable and can be configured to be searchable.

Property Type Description

id

string

A unique system identifier.

name

string

A friendly identifier for the tag. Can be used as a search term on the storefront if #searchableByName is true. This will also be displayed as the facet value.

badgeMessage?

string

Message to display on a storefront such "New" or "Fairtrade" as a badge. This should support rich text (HTML) as well as plain text.

badgeAsset?

Asset

An asset that should be displayed for this tag.

activeStartDate

string

Start of when this tag should be active.

activeEndDate?

string

End when this tag is not longer active. Unset indicates that it is always active.

searchableByName?

boolean

Whether storefront users can find products (or other entities) with this tag by its #name.

position

DefaultTagDisplayPosition | string

Defines the position over a display component this tag should be displayed such as the "top-left" of a Product’s image on a list or details page. If multiple tags have the same position, then their relative order on a product or their #priority will determine which is displayed.

type

DefaultTagType | string

Defines the type of this tag such as "key feature" or "discount". This allows categorizing tags to enhance user’s ability to prioritize related tags such as only showing one "discount" tag even if a product has several.

priority?

number

Priority of this tag relative to other tags that may share the same #position or #type. This provides a way to pick on tag over another when there is a conflict. This could be overridden in the context of a specific product depending on the ProductTag#getSorting().

Asset

extends EntityAsset

Property Type Description

id

string

The unique identifier for the Category Asset reference.

parent

string

The id for the owner of the asset.

primary

boolean

Whether this asset is marked as the primary for the category.

AttributeChoice

Property Type Description

attributeName

string

The order or item attribute that this choice is stored in when the user adds to their cart.

type

string

A hint to the frontend of how to display the customer-facing input.

required?

boolean

Whether the user is required to fill out this option in order to add the product to their cart. This is always validated on cart add.

validationStrategy?

string

The strategy used to determine <i>when</when> this product option is validated.

validationType?

string

How the validation should be performed.

validationRule?

string

The regex expression that should execute against the user’s value.

errorMessage?

string

In case of a validation failure, this is the message that should be shown to customers.

errorCode?

string

In case of a validation failure, this is the error code that should be shown to customers.

allowedValues?

Array<AttributeChoiceValue>

structured input to fill out their option

AttributeChoiceValue

Property Type Description

id?

string

The primary identifier.

label

string

string What the customer sees for display.

value

string

The value stored as an item attribute or cart attribute based on what the user selects.

displayOrder?

number

How this value displays in the context of all other values within a single

Author

Represents an author of content.

Property Type Description

id

string

Id of the author user.

name

string

Name of the author user.

username

string

Username of the author user.

Property Type Description

label

string

The display label.

uri?

string

The URI it targets.

BrowseClientCallOptions

extends ClientCallOptions

The BrowseClient supports additional call configuration properties to support providing price and price info context information to decorate requests with X-Price-Context and X-Price-Info-Context headers for pricing.

Property Type Description

priceContext?

PriceContext

Provide any price specific context for the request.

priceInfoContext?

PriceInfoContext

Provide any pre-fetched price list information for the request.

BrowseEntityRequest

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

Property Type Description

uris

Array<string>

One or more URIs identifying one or more Products or Categories to be fetched. The list of URIs should only apply to one entity type, i.e., they should all be product URIs or else they should all be category URIs, not a mix of both.

<blockquote>Note: In the case of a category matching, only one category may be returned.</blockquote>

pageRequest?

NarrowedPageRequest

Pagination parameters that can be used to filter content items or category products as appropriate. This only matters if the matching entities are content items or a category. In the case of a category, this is applied to the category’s products.

[key: string]

unknown

Any additional custom attributes included on this product.

BrowseEntityResponse

Represents the response to BrowseEntityRequest. 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.

Property Type Description

products?

Array<Product>

Products matching the requested uris.

category?

Category

Category matching the requested uri.

contentItems?

Array<ContentItem>

Content items matching the requested uris.

paginatedContentItems?

UntotalledPage<ContentItem, NarrowedPageable>

A page of matching content items if a page request was included in the BrowseEntityRequest.

urisForMissingEntities

Array<string>

List of requested uris that did not match an entity.

itemNamesNotFound

Record<string, string>

Any requested ContentItem names that did not match active content.

itemIdsNotFound

Record<string, string>

Any requested ContentItem ids that did not match active content.

hasResults

boolean

Whether any type of results are present.

BrowseRequestHeaderType (Enum)

Name Value Description

PRICE_CONTEXT

'X-Price-Context'

PRICE_INFO_CONTEXT

'X-Price-Info-Context'

CONTENT_CONTEXT

'X-Content-Context'

Category

Property Type Description

id

string

The primary identifier.

externalId?

string

The external identifier for this category.

url

string

SEO-friendly URL to identify this category.

name

string

The name of this category.

description?

string

HTML-formatted description of the category.

activeStartDate

string

The date after which it becomes active.

activeEndDate?

string

The date after which it becomes inactive.

attributes?

Record<string, unknown>

Key-value map of additional un-typed attributes.

breadcrumbs?

Array<Breadcrumb>

The list of breadcrumbs.

displayTemplate?

string

Defines the display template to be used.

metaTitle?

string

Used for SEO data in the <title> tag

metaDescription?

string

Used for SEO data in the <meta description=""> tag

parentCategory?

CategoryRef

This category’s parent category.

productMembershipType?

string

Determines how this category defines membership of its products.

productMembershipRule?

string

The rule string used to check if a related product is a member of this category. Only applies to rule-based membership type.

productMembershipLocale?

string

The override locale used for the product membership rule

assets?

Array<CategoryAsset>

The set of assets associated with this category.

products

Page<Product>

A page of products associated with this category.

promotionalProducts?

PromotionalProducts

A map containing a categories promotional products.

showInSiteMap?

boolean

This controls whether a category should be visible on the frontend display.

taxCode?

string

The tax code for all products in this category.

CategoryAsset

extends Asset

Property Type Description

categoryId

string

The owning category’s id.

CategoryFetchParams

Property Type Description

url?

string

The URL of the category to retrieve

id?

string

The ID of the category to retrieve

name?

string

The name of the category to retrieve

CategoryListParams

Property Type Description

urls?

Array<string>

The list of URLs for the categories to retrieve

ids?

Array<string>

The list of IDs for the categories to retrieve

names?

Array<string>

The list of names for the categories to retrieve

CategoryRef

Property Type Description

id

string

The primary identifier.

name

string

The name of the category.

url?

string

The URL of the category.

ContentClientCallOptions

extends ClientCallOptions

Property Type Description

contentContext?

ContentContext

Provide Content Context to filter result

ContentContext

Property Type Description

locale?

string

The locale used in the context.

attributes?

Record<string, unknown>

Additional, unspecified attributes.

[key: string]

unknown

ContentField

Represents the definition of a FieldData. This includes its type and other metadata.

Property Type Description

id

string

Id of the field.

name

string

The unique name of the field.

type

DefaultContentFieldType | string

The type of this content field such as STRING or HTML.

referenceType?

DefaultContentFieldReferenceType | string

When the type is REFERENCE, this field holds the type of entity this field links to such as PRODUCT or CONTENT.

allowedModels

Array<string>

When the referenceType is CONTENT, this field holds allowed content models. If empty, allows all.

collection

boolean

Whether this field represents a collections

required

boolean

Whether the related FieldData requires a value.

helpText?

string

Help text to display on the field (appears as a ? icon by the field that can be hovered over).

hint?

string

Hint text to display below the field in the admin (appears beneath the field, always visible).

displayOrder?

number

The display order of this field in relation to other fields.

attributes

Record<string, string>

Additional attributes needed to further define this field.

ContentItem

Represents some content that should be displayed on the associated application.

Property Type Description

id

string

The item’s ID.

name

string

A unique name for the item.

model

Partial<ContentModel>

The content model for this content. Typically this only holds the model’s id and name and not the entire projection.

uri?

string

SEO-friendly URI to identify this content item. This will be appended to the parent ContentModel’s uri and used if the model is addressableByUri.

fields

Record<string, FieldData>

The individual field data for this content

activeStartDate

string

Defines the beginning time for which this content item is active.

activeEndDate?

string

Defines the ending time for which this content item is active.

author

Author

Information on the user who created this item.

ContentModel

Property Type Description

id

string

Id of the model.

name

string

The unique name of this model.

addressableByUri

boolean

Whether all of this model can be retrieved by navigating to #uri from a storefront app. For example, navigating to /blogs would result in all Content Items using the "Blog" model being fetching. Moreover, those content items would have their own URIs that would be appended to the model’s, e.g., /:ContentModel.uri/:ContentItem.uri.

uri?

string

SEO-friendly URI to retrieve ContentItems of this model.

fields

Array<ContentField>

The list of fields that make up this content model.

ContentResolverRequest

Represents a request to retrieve ContentItems from a commerce-facing context.

Property Type Description

contentZoneName?

string

Name of the [ContentZone] to retrieve ContentItems for.

If present, all other request attributes will be ignored.

itemNames?

Array<string>

Names of ContentItems to retrieve.

If uri, itemIds, modelId, or modelName are present, then this will be ignored.

itemIds?

Array<string>

Ids of ContentItems to retrieve.

If uri, modelId, or modelName are present, then this will be ignored. If this is present, then itemNames will be ignored.

modelName?

string

Name of a ContentModel all of whose ContentItems to retrieve.

If present, itemIds and itemNames will be ignored will be ignored. If uri or modelId are present, then this will be ignored.

modelId?

string

Id of a ContentModel all of whose ContentItems to retrieve.

If present, modelId, itemIds, and itemNames will be ignored will be ignored. If uri is present, then this will be ignored.

pageRequest?

NarrowedPageRequest

Pagination options to use on the result set. If not provided, a list of all results will be returned instead.

uri?

string

URI of either a ContentModel all of whose ContentItems should be retrieved or else that of a single ContentItem. In the latter case, the parent ContentModel’s uri should be appended in the request.

[key: string]

unknown

Any additional params.

ContentResolverResponse

Represents a response to fetch CMS content to retrieve for a commerce-facing context.

Property Type Description

results

Array<ContentItem>

Unpaginated list of results. Only present if no pagination params were present in the request.

paginatedResults?

UntotalledPage<ContentItem, NarrowedPageable>

Paginated results. Only present if pagination params were present in the request.

namesNotFound

Array<string>

Any requested names that did not match active content.

idsNotFound

Array<string>

Any requested ids that did not match active content.

hasResults

boolean

Whether any results are present.

BulkContentResolverRequest

Represents a bulk request to retrieve a list of ContentItems from a commerce-facing context.

Property Type Description

contentResolverRequests

Array<ContentResolverRequest>

Array of ContentResolverRequests to get content items from.

BulkContentResolverResponse

  • Represents a response to fetch bulk CMS content to retrieve for a commerce-facing context.

Property Type Description

contentResolverResponseToId

Record<string, ContentResolverResponse>

Map ContentResolverResponse for each ContentResolverRequest mapped by request ID.

requestIdsNotFound?

Array<string>

Any request IDs not returned in the corresponding ContentResolverResponse

CustomerContext

Property Type Description

customerId?

string

The customer’s id.

accountId?

string

The account id associated with this context.

customerSegmentIds?

Array<string>

Any customer segment ids associated with this context.

DataDrivenEnum

Property Type Description

id

string

The unique identifier for the Data Driven Enum reference.

associatedCategoryExists

boolean

Whether an associated category exists for this data driven enum value.

type

string

The type of data driven enum (i.e. "BRAND").

value

string

The value of data driven enum (i.e. "SOME_BRAND").

displayValue

string

The display value of data driven enum (i.e. "Some Brand").

DataDrivenEnumFetchParams

Property Type Description

id?

string

The ID of the data driven enum to retrieve.

checkIfAssociatedCategoryExist?

boolean

Whether the request should also check if an associated category exists for this data driven enum value.

DataDrivenEnumListParams

Property Type Description

dataDrivenEnumIds?

Array<string>

The list of IDs for the data driven enums to retrieve.

checkIfAssociatedCategoryExist?

boolean

Whether the request should also check if an associated category exists for this data driven enum value.

DataDrivenEnumListResponse

Property Type Description

dataDrivenEnums

Array<DataDrivenEnum>

The list of data driven enums that were retrieved.

dataDrivenEnumIdsForMissingEntities?

Array<string>

Data driven enum ids that weren’t found from the request.

DefaultAttributeChoiceType (Enum)

The type of the attribute for an AttributeChoice.

Name Value Description

COLOR

'COLOR'

DECIMAL

'DECIMAL'

INTEGER

'INTEGER'

TEXT_AREA

'LARGE_TEXT'

DATE

'DATE'

TEXT

'TEXT'

SIZE

'SIZE'

SELECT

'SELECT'

BOOLEAN

'BOOLEAN'

DefaultContentFieldReferenceType (Enum)

Default reference types available for ContentFields.

Name Value Description

CONTENT

'CONTENT'

CATEGORY

'CATEGORY'

PRODUCT

'PRODUCT'

DefaultContentFieldType (Enum)

Default types of a ContentField.

Name Value Description

STRING

'STRING'

HTML

'HTML'

DERIVED_URL

'DERIVED_URL'

LONG

'LONG'

DATE

'DATE'

ASSET_DROPZONE

'ASSET_DROPZONE'

BOOLEAN

'BOOLEAN'

REFERENCE

'REFERENCE'

DefaultIncludedProductType (Enum)

The default types supported for IncludedProducts.

Name Value Description

PRODUCT

'PRODUCT'

VARIANT

'VARIANT'

DefaultItemChoiceSelectionType (Enum)

The selection types for ItemChoice.

Name Value Description

CHOOSE_ONE

'CHOOSE_ONE'

CHOOSE_MULTIPLE

'CHOOSE_MULTIPLE'

DefaultItemChoiceTargetType (Enum)

The target types for ItemChoice.

Name Value Description

SPECIFIC_PRODUCT

'SPECIFIC_PRODUCT'

The item choice is a specific Product.

SPECIFIC_VARIANT

'SPECIFIC_VARIANT'

The item choice a specific Variant.

SPECIFIC_PRODUCTS

'SPECIFIC_PRODUCTS'

The item choice is among Products from a predetermined list.

SPECIFIC_VARIANTS

'SPECIFIC_VARIANTS'

The item choice is among Variants from a predetermined list.

CATEGORY

'CATEGORY'

The item choice is among Products within a Category. Used as a convenience over specifying an explicit set of products with #SPECIFIC_PRODUCTS and a SpecificItemChoice.

DefaultProductOptionType (Enum)

The type for a ProductOption.

Name Value Description

CART_ATTRIBUTE

'CART_ATTRIBUTE'

The user input flow into a global cart-level attribute when added to cart. If there was already an entry for this attribute, it is overridden with the latest value.

CART_ITEM_ATTRIBUTE

'CART_ITEM_ATTRIBUTE'

The user value is intended to flow into an item attribute once this item is added to the cart.

ITEM_CHOICE

'ITEM_CHOICE'

Allows the user to select an additional item that is added to their cart

VARIANT_DISTINGUISHING

'VARIANT_DISTINGUISHING'

Values selected by the customer will help distinguish a specific variant directly on this Product that should be added to the cart. Example would be to set up t-shirts with colors and sizes. This is similar to ITEM_ATTRIBUTE in that the values the user selected are stored in the item attributes.

DefaultProductType (Enum)

Name Value Description

STANDARD

'STANDARD'

Denotes a simple product which has no variants or complex configuration such as a Hot Sauce. Standard products may be added to the cart on their own or they may have add-ons that get added with them.

VARIANT_BASED

'VARIANT_BASED'

Denotes a configurable product that has Variants determined by ProductOptions like color and size for a T-Shirt. It is the Variants which are added to the cart after the user selects the options.

MERCHANDISING_PRODUCT

'MERCHANDISING_PRODUCT'

Denotes a complex, configurable product that acts as a container for other Products or Variants that may be fixed or configurable. This is primarily a bundling concept. The price will be derived from the bundled items and be a range if the customer can select a varying number of the bundled items (e.g., can choose 1 or more of an item).

BUNDLE

'BUNDLE'

Denotes that the product is meant to represent a simple bundle of other products, with each bundle item represented as an IncludedProduct. The bundle has a set price that is prorated down to the included items proportionally to their original prices when viewed in an OMS. This looks like a single item to the customer when in the cart, but will be broken down in the OMS.

SELECTOR

'SELECTOR'

Denotes that the product is meant to represent a landing page that shows a selection of other products the customer can choose from. It acts somewhat like a category in that it is only for grouping other products and cannot itself be added to a cart.

This could be used as a landing page for different subscription levels for the same or similar services or products like for magazines.

DefaultTagDisplayPosition (Enum)

Defines the default positions a AdvancedTag is displayed on a component such as a Product’s image.

Name Value Description

TOP_LEFT

'TOP_LEFT'

TOP_RIGHT

'TOP_RIGHT'

TOP_CENTER

'TOP_CENTER'

TOP_JUSTIFIED

'TOP_JUSTIFIED'

CENTER_LEFT

'CENTER_LEFT'

CENTER_RIGHT

'CENTER_RIGHT'

CENTER

'CENTER'

CENTER_JUSTIFIED

'CENTER_JUSTIFIED'

BOTTOM_LEFT

'BOTTOM_LEFT'

BOTTOM_RIGHT

'BOTTOM_RIGHT'

BOTTOM_CENTER

'BOTTOM_CENTER'

BOTTOM_JUSTIFIED

'BOTTOM_JUSTIFIED'

NONE

'NONE'

Means that the tag will not be displayed anywhere.

DefaultTagType (Enum)

Defines the type of a AdvancedTag. This helps categorize them along with the DefaultTagDisplayPosition (Enum) to allow prioritizing related kinds of tags. For example, this could allow a user to only display one "discount" tag even if multiple apply.

The default types are suggestions and ideas. No concrete logic is tied to them by default. User’s should feel free to define their own types that suit their business needs.

Name Value Description

GENERIC

'GENERIC'

Means that a tag is uncategorized.

FEATURE

'FEATURE'

Means that a tag signifies a key feature of an item such as being "Fairtrade". This is distinguished form #ATTRIBUTE insofar as a feature is intrinsic to the item rather than subjective or mutable.

ATTRIBUTE

'ATTRIBUTE'

Means that a tag signifies an important attribute of an item such as "New", "Staff Pick", "Seller’s Choice". This is distinguished from #FEATURE insofar as an attribute is subjective (staff pick) or mutable (new).

DISCOUNT

'DISCOUNT'

Means that a tag signifies a discount such as "On Sale", "20% Off", "Clearance", etc.

Dimensions

Property Type Description

width

number

The width.

height

number

The height.

depth

number

The depth.

units

string

The unit of measure.

EnhancedLineItem

Property Type Description

lineNumber?

string

The line number for the item.

standardPrice

MonetaryAmount

The line item’s standard price.

salePrice?

MonetaryAmount

The line item’s sale price.

quantity

number

The quantity of the line item.

discountable

boolean

Whether this line item is discountable.

isSubscription

boolean

Whether this line item is a subscription.

attributes

Record<string, unknown>

Any additional attributes associated with this line item.

Facet

Property Type Description

label?

string

The label for the facet.

name

string

The name of the facet.

displayOrder?

number

The facet’s display order.

multiSelect?

boolean

Whether the facet accepts multiple options.

ranged?

boolean

Does the facet have ranges.

ranges?

Array<FacetRange>

The facet ranges.

facetRule?

string

The facet rule.

FacetRange

Property Type Description

label?

string

The label for the facet range.

displayOrder?

number

The display order for the facet range.

minValue?

string

The minimum value of the range.

maxValue?

string

The maximum value for the range.

FacetResponse

Property Type Description

facet

Facet

The search facet.

values

Array<FacetValue>

The list of values associated to the facet.

FacetValue

Property Type Description

value?

string

The actual value for the facet.

ranged?

boolean

Whether the value is ranged

minValue?

string

The minimum value.

maxValue?

string

The maximum value.

quantity?

number

The number of products associated with the value.

active?

boolean

Whether the value is active.

FieldData

Represents the field data for fields on a ContentItem as defined by a ContentModel (see also ContentField).

Property Type Description

id

string

Id of the field.

contentItem

Partial<ContentItem>

The parent ContentItem. Usually this just contains the item’s ID and not the full projection.

name

string

The name of the field.

value

unknown

The value of the field.

Filter

Standard search filters matching configured field facets.

Property Type Description

name

string

The name of the property to filter on, e.g. "color","price", etc.

values?

Array<string>

The values of the filter. For example, if name is "color", this could be "red", "black", "blue".

ranges?

Array<FacetRange>

The ranged values of this filter. This will contain pairs of minimum and maximum values to create ranges to filter on. Cannot be used in combination with filter values.

FulfillmentFlatRateValue

Property Type Description

value

MonetaryAmount

The value of the flat rate.

IncludedProduct

Property Type Description

asset

Asset

The asset for this included product. Intended to override the asset normally shown for the item.

displayOrder

number

Defines the display position of this included product in relation to other included products.

label

string

Label to display for the item. This overrides the item’s name.

quantity

number

Fixed quantity of the item that is included with the parent product.

pricingKey

string

Unique pricing key for this particular included item.

Deprecated: The price should be on the parent product and will be prorated down to each bundled item when added to cart.

pricingModel

string

Describes whether this item’s pricing will be added to its parent or if it is included in the parent product’s price.

Deprecated: The price is always included in the parent.

priceInfo

PriceInfo

Summary of the pricing information related to the included item.

product

Product

The specified product if the type is "PRODUCT".

type

string

Defines the type of the item: usually a Product or Variant. see DefaultIncludedProductType

variant

Variant

The specified amount if the type is "VARIANT".

variantParentProductId

string

This field contains the id of the parent product of the specified #variant if the #type is VARIANT. May be used for looking up the originating parent product rather than the bundle.

ItemChoice

Property Type Description

choiceKey

string

The key used during the validation of cart item’s configuration to relate this ItemChoice to one of the cart item’s dependent items.

pricingKey

string

System-wide unique identifier to configure specific pricing for the choice.

targetType

string

Identifies the type of items that a customer can choose from, whether specific products, specific variants, or products from a specific category.

selectionType

string

Describes restrictions placed on the customer’s ability to select items from the targeted set. Generally, this is a restriction on how many choices can be selected for a single add-to-cart request and, potentially, how quantity is distributed among multiple selected choices.

maximumQuantity?

number

The maximum amount of this item that a customer can purchase at a time. If null, this would allow a customer to specify their own quantity for how many of these items they can add to the cart.

minimumQuantity?

number

The minimum amount of the item that a customer must purchase.

defaultProductInCategory?

Product

The default product that can be used when driving customer selections if the targetType is "CATEGORY".

defaultProduct?

Product

The default product that can be used when driving customer selections if the targetType is "PRODUCT".

defaultVariant?

Variant

The default variant that can be used when driving customer selections if the targetType is "VARIANT".

category?

ItemChoiceCategory

The ItemChoiceCategory which the choice will be chosen from by the customer if the targetType is "CATEGORY".

specificChoices?

Array<SpecificItemChoice>

Holds the manually-curated options that the customer can choose from.

specificItemChoice?

SpecificItemChoice

A specific item choice for when the targetType is SPECIFIC_PRODUCT or SPECIFIC_VARIANT.

priceInfo?

PriceInfo

Summary of the pricing information related to the choice.

pricingModel

string

How to treat the pricing for this choice in terms of its parent product, included or an additional cost.

attributes?

Record<string, unknown>

Map holding any additional attributes passed in the request not matching any defined properties.

ItemChoiceCategory

Property Type Description

id

string

The ID of the category.

products

UntotalledPage<Product, NarrowedPageable>

A page of products from the category to choose from.

ItemMarketingMessageRequest

Property Type Description

item

EnhancedLineItem

The line item to find marketing messages for.

locationType

MarketingMessageLocationType

The location type to retrieve messages for.

locale

string

The locale for the current request.

customerContext?

CustomerContext

The customer context to retrieve messages for.

codes?

ActivePromotionCodes

Any promotion codes currently in use.

MarketingMessage

Property Type Description

id

string

The unique id for the marketing message.

offerId

string

Id of the parent Offer.

text

string

The actual text of the message to display.

priority

number

The display order for multiple marketing messages

targetType

MarketingMessageTargetType

Determines whether this message should appear only next to its offer’s targets or qualifiers or next to both.

locationType

MarketingMessageLocationType

Determines in what locations this message can appear, whether on product detail, browse, search, or cart pages or everywhere.

locale

string

The Locale to which this message is applicable.

activeStartDate

string

Defines the beginning time for which this message is active

activeEndDate

string

Defines the ending time for which this message is active

MarketingMessageLocationType (Enum)

Name Value Description

PRODUCT_DETAIL

'PRODUCT_DETAIL'

Means that the marketing message should appear next to applicable items on product detail pages only.

BROWSE

'BROWSE'

Means that the marketing message should appear on browse (list) pages only, typically in the header of the page.

BROWSE_ITEM

'BROWSE_ITEM'

Means that the marketing message should appear next to applicable items on browse (list) pages only.

CART

'CART'

Means that the marketing message should appear on the cart page, typically in the header of the page.

CART_ITEM

'CART_ITEM'

Means that the marketing message should appear next to applicable items on the cart page only.

MarketingMessageRequest

Property Type Description

productIds

Array<string>

The ids for all products to retrieve marketing messages for

categoryId?

string

The current category’s id

cartSubtotal?

MonetaryAmount

The subtotal of the customer’s cart

cartProductIds?

Array<string>

The ids of any products currently in the customer’s cart

customerContext?

CustomerContext

The customer context information that should be used in determiningwhich offers apply

appliedOfferIds?

Array<string>

A list of currently applied offer ids

maxMessageCount?

number

The maximum number of messages for each location and location / product combination

MarketingMessageResponse

Property Type Description

cartMessages

Array<MarketingMessage>

Messages that should be displayed on the cart page’s header

browseMessages

Array<MarketingMessage>

Messages that should be displayed on the product list page headers

cartItemMessages

Record<string, Array<MarketingMessage>>

Messages that should be displayed on individual cart items

browseItemMessages

Record<string, Array<MarketingMessage>>

Messages that should be displayed on individual product items shown during browse

productDetailMessages

Record<string, Array<MarketingMessage>>

Messages that should be display on product detail pages

MarketingMessages

Property Type Description

messages

Array<MarketingMessage>

MarketingMessageTargetType (Enum)

Name Value Description

TARGETS

'TARGETS'

Indicates that an offer’s marketing message should be displayed with items TARGETED by the offer.

QUALIFIERS

'QUALIFIERS'

Indicates that an offer’s marketing message should be displayed with items that QUALIFY an order or other items for the offer.

EITHER

'EITHER'

Indicates that the offer’s marketing message should be display on both TARGETS and QUALIFIERS.

PageableClientCallOptions

extends ClientCallOptions

Property Type Description

page?

number | string

The page number.

size?

number | string

The size of the page.

sort?

string

Any sorting params to apply to the response.

direction?

'ASC' | 'DESC'

The direction to sort by.

cq?

string

RSQL filter/s to apply to the page contents

PriceableTargetRef

Property Type Description

targetId

string

The unique identifier for the priceable target

targetType?

string

The type of the priceable target (i.e. "SKU")

priceableFields?

Record<string, number>

The fields to price

attributes?

Record<string, unknown>

Any additional attributes

PriceContext

Property Type Description

locale?

string

The locale for the request.

currency?

string

The currency for the request.

attributes?

Record<string, unknown>

Any additional attributes

PriceInfo

Property Type Description

price

MonetaryAmount

Determined best price for a target.

priceType

string

The type of whether salePrice, standardPrice, contractPrice, etc.

priceTypeDetails

Record<string, PriceTypeDetail>

Map of each type of price to each corresponding PriceTypeDetail, which contains the best overall price for that type.

[key: string]

unknown

PriceInfoContext

Property Type Description

priceLists?

Array<PriceListRef>

The list of Price Lists.

priceableTargets?

Array<PriceableTargetRef>

The list of Pricable Targets

skipDetails?

boolean

Whether the details should be hydrated on the response.

PriceListRef

Property Type Description

id

string

The unique identifier for the Price List

PriceTypeDetail

Property Type Description

bestPrice

MonetaryAmount

The determined best price value for this type of price from amongst all the candidates.

type

string

The corresponding type of the price: salePrice, standardPrice, contractPrice, etc.

[key: string]

unknown

Product

Property Type Description

id

string

The primary identifier.

active?

boolean

Whether or not it is active.

activeStartDate?

string

The date after which it becomes active.

advancedTags?

Array<ProductTag>

A list of tags sorted based on the sort position of the ProductTag for the Product with AdvancedTag#getPriority() used to break ties.

assets?

Array<ProductAsset>

The set of assets associated with it.

attributes?

Record<string, unknown>

Key-value map of additional un-typed attributes.

availableOnline?

boolean

Whether or not it is available for purchase online.

breadcrumbs?

Array<Breadcrumb>

The list of breadcrumbs.

currency?

string

The currency of the pricing data.

description?

string

The description field with rich HTML markup.

discountable?

boolean

Whether or not discounts may apply to it.

eligibleForPickup?

boolean

Whether or not it is eligible for pickup at a location.

fulfillmentFlatRates?

Record<string, FulfillmentFlatRateValue>

Flat rates by fulfillment type used for simple fulfillment calculations.

includedProducts?

Array<IncludedProduct>

A set of included products used for product bundle types.

individuallySold?

boolean

Whether or not it is sold individually. If false, typically only sold as either an add-on or part of a bundle.

inventoryCheckStrategy?

string

The strategy used when checking inventory for it.

inventoryReservationStrategy?

string

The strategy used when reserving inventory for it.

inventoryType?

string

The inventory type for it. Usually whether it is physical or digital.

keywords?

Array<string>

Keyword strings associated with it.

merchandisingProduct?

boolean

This product is not sold itself, but is a sort of container for subordinate items.

Deprecated: use productType instead

merchandisingContext?

string

The merchandising context of the product to signify where this item is added from. This field is intended to be used for products with type DefaultProductType#SELECTOR, which allows for the possibility of targeting the items within the selector product for discounts.

metaDescription?

string

The meta description to put in meta tags for SEO purposes.

metaTitle?

string

The meta title to put in meta tags for SEO purposes.

mergingType?

string

Determines how it should merge with other similar items when it gets added to a cart.

minimumThreshold?

number

The minimum count of this product that must be added in a cart.

maximumThreshold?

number

The maximum count of this product that must be added in a cart.

name

string

The name of this product.

onSale?

boolean

Whether or not it is on sale.

online?

boolean

Whether or not this product should be visible at all in the store.

options?

Array<ProductOption>

Drives additional information that the customer should enter when purchasing this product. This can be in the form of additional variations, additional items that can be bundled with this product or simply more information that the customer needs to enter about what they are purchasing (like a personalized message).

parentCategories?

Array<CategoryRef>

The set of categories this product is part of.

price?

MonetaryAmount

The simple price for this product.

priceInfo?

PriceInfo

The price information for this product.

primaryAsset?

ProductAsset

The primary asset for this product.

productOption?

SearchableProductOption

If a product option is search, the the products that use it will be index multiple times, once for each option value. Example: If a product has a color option with values red, black, silver, and this option is marked searchable, then the product will be indexed three times, once for each color. The resulting product payload when fetched from Search will include the specific option value it was indexed with such as:

{
  optionLabel: 'Red',
  optionName: 'color',
  optionValue: 'red
}

promotionalProducts?

PromotionalProducts

A collection of products related to this product and grouped by the promotional type.

productType?

DefaultProductType

The type of product. see DefaultProductType

reviewsSummary?

ReviewsSummary

Summary of review information.

searchable?

boolean

Whether or not this product is searchable.

sku?

string

The SKU code for this product.

tags?

Array<string>

A list of simple labels used to categorize the product

uri?

string

The URI for this product.

variants?

Array<Variant>

The set of variants for this product.

vendorRef?

string

Soft reference to the vendor associated with this catalog. This value can be null, in which case, no vendor is associated.

displayTemplate?

string

Defines the display template. The display template can be used to help create a unique key that drives the presentation layer destination for this category. For example, if using Spring MVC with Thymeleaf, this could be a path to a Thymeleaf template. If using a frontend view technology like React, this could point to a specific React component.

[key: string]

unknown

Any additional custom attributes included on this product.

ProductAsset

extends Asset

Property Type Description

productId

string

The owning product’s id.

ProductFetchParams

Property Type Description

id?

string

The id for the product to retrieve.

url?

string

The url for the product to retrieve.

[key: string]

unknown

Any additional custom attributes included on this product.

ProductListFetchParams

Property Type Description

productIds?

Array<string>

The list product IDs to fetch.

productUris?

Array<string>

The list of product URLs to fetch.

[key: string]

unknown

Any additional custom attributes included on this product.

ProductListResponse

Property Type Description

productIdsForMissingEntities?

Array<string>

Product ids that weren’t found from the request.

productUrisForMissingEntities?

Array<string>

Product Uris that weren’t found from the request.

products

Array<Product>

The list of products that were retrieved.

ProductOption

Property Type Description

id

string

The primary identifier.

templateContextId?

string

If this option came from an option template, this allows data synchronization if the template is updated.

addedByReference

boolean

Denotes whether this option was added from an option template by reference rather than being embedded on the Product.

label

string

The label shown to customers when displaying this option.

type

string

Controls both how the customer should be inputting values to fill out this option as well as storage of where the value will go once added to the cart.

displayOrder?

number

The ordering of this option in relation to other options on the page.

itemChoice?

ItemChoice

Drives customer selection of an additional item to add to their cart.

attributeChoice?

AttributeChoice

Configuration for customer-driven values that flow into an attribute

ProductTag

This defines the relationship between a Product and AdvancedTag. A product can have multiple ProductTags and determine relative priority via ordering them in the admin. This relationship will also be used during indexing to hydrate the tags for a product to enable faceting, searching, and boosting.

Property Type Description

id

string

A unique system identifier.

productId

string

ID of the parent Product.

tag

AdvancedTag

The AdvancedTag to associate with the #product.

activeStartDate

string

Start of when this tag should be active.

activeEndDate?

string

End when this tag is not longer active. Unset indicates that it is always active.

PromotionalProducts

Property Type Description

FEATURED

Array<PromotionalProductSummary>

Featured promotional products.

CROSS_SALE

Array<PromotionalProductSummary>

Cross-sale promotional products.

UP_SALE

Array<PromotionalProductSummary>

Up-sale promotional products.

[key: string]

Array<PromotionalProductSummary>

Other promotional products as defined by the user.

PromotionalProductSummary

Property Type Description

id

string

The primary identifier for this relationship.

promotionMessage?

string

The promotion message for this relation.

relatedProduct

Product

The product to promote.

sorted

boolean

Whether this promotional product is sorted

type

'FEATURED' | 'CROSS_SALE' | 'UP_SALE'

the type of relation between the category and the related product

RatingCountAndPercentage

Property Type Description

rating

number

The rating value that we are counting.

ratingCount

number

The total count of the rating value.

ratingPercentage

number

The occurrence of this rating value from the total amount of ratings.

RatingDetail

Property Type Description

id

string

The ID of this rating

rating

number

The rating of this review

customerId?

string

The database ID of the user who authored this rating. Nullable

customerName?

string

The customer name

initialReviewDate

string

The initial rating date

editedDate?

string

If edited, the date this review was edited

reviewTitle?

string

The title of this review

originalReview?

string

The original review. This is what is displayed on the review page

editedReview?

string

If edited, the text of the edited review

reviewStatus

RatingDetailStatus

The status of this review, e.g. APPROVED, REJECTED. See RatingDetailStatus (Enum)

approveOrRejectUser?

string

The admin who approved or rejected this rating.

approveOrRejectDate?

string

The date that this review was approved or rejected

ratingSummary?

RatingSummary

The rating summary. By default, only the summary ID is populated.

rejectReason?

string

The reason for review rejection. Optional.

verifiedPurchase?

boolean

Indicated if this review is from a verified purchase

attributes?

Record<string, unknown>

Map to capture any additional data

RatingDetailStatus (Enum)

Default reference types available for RatingDetail. Used to indicate the status of a rating.

Name Value Description

NOT_NEEDED

'NOT_NEEDED'

The rating is counted in the rating summary and does not need to undergo approval/rejection process.

PENDING

'PENDING'

The rating is awaiting an approval or rejection from the admin.

APPROVED

'APPROVED'

The rating has been approved and should be counted in the rating summary, as well as displayed on the product detail page.

REJECTED

'REJECTED'

The rating has been rejected and should not be counted in the rating summary or displayed on the product detail page.

RatingRequest

Property Type Description

rating

number

The rating of this review.

customerId?

string

The database ID of the user who authored this rating. Nullable

customerName?

string

The customer name

reviewTitle?

string

The title of this review

review?

string

The text of the review.

ratingTargetId

string

The id of the product or variant that is the subject of this rating.

parentTargetId?

string

If a Variant is being rated, this is the id of the parent product to the variant. Null if this rating is for a product.

ratingTargetType?

string

The rating target type, such as PRODUCT or VARIANT.

RatingSummary

Property Type Description

id

string

The ID of this rating summary

ratingSummary?

RatingSummary

The parent rating summary. For example, if this is a variant, this points to the RatingSummary of the parent product. Nullable.

ratingTargetType

string

The rating target type, such as PRODUCT or VARIANT. See RatingTargetType (Enum)

ratingTargetId

string

The id of the rating target. For example the product or variant ID.

parentTargetId?

string

The parent target ID. For example, if the target type is a Variant, this would be the product’s ID. Optional.

numberOfRatings

number

The total number of ratings for this target. This includes both approved and pending ratings.

numberOfApprovedRatings

number

The total number of approved ratings for this target. Used to calculate the average rating. Includes ratings with APPROVED or NOT_NEEDED status.

ratingTotal

number

The total numerical value of all approved ratings for this summary. This is the sum of all approved ratings and is used to calculate the average rating. Includes ratings with APPROVED or NOT_NEEDED status.

attributes?

Record<string, unknown>

Map to capture any additional data

RatingTargetType (Enum)

Default reference types available for RatingSummary and RatingRequest. Used to indicate what target type the rating is for.

Name Value Description

PRODUCT

'PRODUCT'

The rating is for a product.

VARIANT

'VARIANT'

The rating is for a variant of a product. (Ex. A t-shirt may have different colors and sizes — each color and/or size may be considered a Variant of that t-shirt product.)

ReviewsSummary

Property Type Description

numberOfReviews?

number

The number of reviews

rating?

number

The current rating.

ratingUnit?

string

The rating unit.

SearchableProductOption

Property Type Description

optionLabel

string

Display label for the option like "Red" for value red or option color

optionName

string

Name of the product option such as color

optionValue

string

Specific value of the product option such as red

SearchParams

extends PageRequestParams

Property Type Description

filters?

Array<Filter>

The list of standard search filters to apply.

ruleFilters?

RuleFilter

The RSQL filters to apply.

categoryProductMembershipFilters?

RuleFilter

The rule-based RSQL filters used to check if a related product is a member of the specified category. Only applies when the category’s product membership type is RULE_BASED.

query?

string

The query to search for.

SearchRedirect

Property Type Description

redirectType?

string

The redirect type.

redirectUri

string

The URI to redirect to.

SearchRedirectResponse

Property Type Description

redirect?

SearchRedirect

The search redirect.

SearchResponse<T>

extends Page<T>

Property Type Description

facets?

Array<FacetResponse>

The search facets associated with the response.

sorts?

Array<SortResponse>

The sorting parameters associated to the response.

correctedQuery?

boolean

If no results were found and a different query was executed than the original, this is set to true.

spellcheckResult?

SpellcheckResult

Set if spellcheck returned any results. Contains the original query and any potential suggestions.

SearchSuggestionsRequest

Property Type Description

query

string

The query to use for suggestions.

name

string

The type ahead configuration name.

filters?

Array<Filter>

The list of standard search filters to apply.

ruleFilters?

RuleFilter

The RSQL filters to apply.

SearchSuggestionsResponse

Property Type Description

suggestions?

Record<string, unknown>

The suggestions returned by the search service.

[key: string]

unknown

Any additional custom attributes included on this product.

SortOption

Property Type Description

label?

string

The label for the sort option.

name

string

The name of the sort option.

displayOrder?

string

The display order of the sort option.

SortResponse

Property Type Description

sortOption

SortOption

The sort option.

active?

boolean

WHether the sort option is active.

descending?

boolean

Wheather the sort is ascending or descending.

SpecificItemChoice

Property Type Description

pricingKey

string

System-wide unique identifier to configure specific pricing for the choice.

pricingModel

string

How to treat the pricing for this choice in terms of its parent product, included or an additional cost.

type

string

Whether this item holds a product or a variant that the customer can select from

product?

Product

The product for this choice

variant?

Variant

The variant for this choice

priceInfo

PriceInfo

Summary of the pricing information related to the choice.

attributes?

Record<string, unknown>

Map holding any additional attributes passed in the request not matching any defined properties.

variantPricing?

Record<string, VariantPrice>

Additional override price information if a specific variant is selected.

SpellcheckResult

Property Type Description

originalQuery

string

The original search query.

suggestedQueries

Array<SuggestedQuery>

The suggested queries as result of the spellcheck.

SuggestedQuery

Property Type Description

query

string

The suggested query to replace the original query.

hits

number

The number of hits for the suggested query.

Variant

Property Type Description

id

string

The primary identifier.

active?

boolean

Whether or not it is active.

activeStartDate?

string

The date after which it becomes active.

activeEndDate?

string

The date after which it becomes inactive.

attributes?

Record<string, unknown>

Key-value map of additional un-typed attributes.

cost?

MonetaryAmount

Can be used in display or as apart of more complex pricing algorithms.

defaultPrice

MonetaryAmount

The default price that should be used if there is not a salePrice set.

description?

string

The description field with rich HTML markup.

dimension?

Dimensions

The dimensions of this variant.

discountable?

boolean

Whether or not discounts may apply to it.

fulfillmentFlatRates?

Record<string, FulfillmentFlatRateValue>

Flat rates by fulfillment type used for simple fulfillment calculations.

inventoryCheckStrategy?

string

The strategy used when checking inventory for it.

inventoryReservationStrategy?

string

The strategy used when reserving inventory for it.

minimumThreshold?

number

The minimum count of this product that must be added in a cart.

maximumThreshold?

number

The maximum count of this product that must be added in a cart.

name?

string

The name of this variant.

onSale?

boolean

Whether or not it is on sale.

online?

boolean

Whether or not this product should be visible at all in the store.

optionValues?

Record<string, string>

Helper to make this particular variant uniquely identifiable across multiple variants for the same product.

priceInfo?

PriceInfo

The price information for this product.

primaryAsset?

ProductAsset

The primary asset for this product.

productId

string

The link to the product that this variant is a part of.

promotionalProducts?

PromotionalProducts

A collection of products related to this product and grouped by the promotional type.

reviewsSummary?

ReviewsSummary

Summary of review information.

searchable?

boolean

Whether or not this product is searchable.

sku?

string

The SKU code for this product.

salePrice?

MonetaryAmount

Indicates that this product is on sale.

taxCode?

string

The tax code for this variant.

upc?

string

Universal product code that defines this particular variant of the product.

uri?

string

The URI for this product.

weight?

Weight

The weight of this variant.

[key: string]

unknown

Any additional custom attributes included on this product.

VariantPrice

Property Type Description

overridePrice

MonetaryAmount

The price for the override.

priceInfo

PriceInfo

Summary of the pricing information related to the override.

pricingKey

string

The pricing key for this price.

variantId

string

The id of the Variant this price applies to.

Weight

Property Type Description

weight

number

The weight.

units

string

The unit of measure.