Skip to main content

Interface: ProductListItem

Represents an item in a product catalog listing.

This interface contains the essential information needed to display a product in listing interfaces, search results, and selection components. It includes display information, identifiers, status indicators, and thumbnail settings.

ProductListItem is designed to provide just enough information for product discovery and selection without requiring the full product data to be loaded, enabling efficient browsing of large product catalogs.

Extended by

Properties

categories?

optional categories: string[]

List of category identifiers this product belongs to.

These identifiers can be used to filter and organize products in category-based navigation. Products may belong to multiple categories to improve discoverability.

Well-structured categorization is essential for helping users find products through browsing rather than searching.


code

code: string

Unique product variant code.

This code identifies the specific product variant and is often used in API calls and data lookups. The code typically follows a standardized format that may include manufacturer prefixes or category indicators.

In modular configurations, this code helps identify compatible components and ensures the correct product is loaded.


defaultCode?

optional defaultCode: string

Default configuration code for this product.

If provided, this code represents the factory default or recommended configuration for the product. When a user selects this product with no specific configuration, this default will be applied automatically.

Setting an attractive and popular configuration as the default ensures a good first impression when users view the product.


description?

optional description: Nullable<string>

Product description text.

A brief description of the product for display in listings and detail views. This should highlight key features and benefits to help users quickly understand the product's purpose.

A concise but informative description helps users determine if a product meets their needs without requiring detailed investigation.


doMatchAllSnaps?

optional doMatchAllSnaps: boolean

When true, the product can be replaced while maintaining connections.

For modular products, this indicates that this product can be swapped with another compatible product while preserving all connections to child components. This enables "in-place" product substitution in complex assemblies.

This capability is particularly valuable in modular furniture or building systems where users may want to try different options without disrupting the entire arrangement.


freeMove?

optional freeMove: boolean

When true, the product can be placed freely on the scene.

For modular products, this indicates that this product doesn't connect to snapping points and can be positioned anywhere on the scene. Free-moving products are not constrained by connection rules.

Free-moving products are ideal for accessories, decorative items, or standalone pieces that should be flexibly positioned.


hoverImage?

optional hoverImage: ProductThumb

Hover state thumbnail image settings.

Defines the image to display when the user hovers over the product in listings, if different from the standard thumbnail. This can be used to show alternate angles or highlight key features.

Hover images can provide users with additional visual information without requiring them to click through to detailed product pages.


id?

optional id: string

ID of the product.

Deprecated

Use productId instead.


isDisabled?

optional isDisabled: boolean

When true, the product is currently unavailable for selection.

Used to temporarily disable products without removing them from listings. Disabled products may be shown but cannot be selected, configured, or added to designs.

Disabling is useful for products that are temporarily out of stock, experiencing technical issues, or awaiting updates.


isModular?

optional isModular: boolean

Indicates whether this is a modular product.

When true, this product is a modular product that supports complex scene composition with multiple components. Modular products require different handling in the configurator interface.

Modular products typically have a different workflow, allowing users to add multiple components and arrange them spatially, unlike standard products which have fixed structures with configurable options.


label

label: string

Display name for the product.

This is the human-readable name shown in product listings, typically the marketing name that customers would recognize. It should be concise but descriptive, helping users quickly identify products.

For modular components, the label should clearly indicate the component type and key distinguishing features.


productId

productId: string

Unique identifier for the product.

This is the canonical identifier used throughout the system to reference this specific product. It serves as the primary key for the product in databases and APIs.

This ID should be used for all operations that need to target this specific product, such as loading, configuring, or tracking.


searchString

searchString: string

Combined string of all searchable product attributes.

This includes the product name, designer, brand, tags, and manufacturer, concatenated to facilitate text searching across multiple fields. A comprehensive searchString improves discovery when users search using various terms.

Including synonyms, common misspellings, or alternate descriptions in the searchString can improve search results without cluttering the display name.


standardImage?

optional standardImage: ProductThumb

Default thumbnail image settings.

Defines how the product's standard thumbnail should be displayed, including whether it's a static image or dynamically generated. The thumbnail is the primary visual representation in listings.

High-quality thumbnails are crucial for effective product discovery, as they provide the first visual impression for customers.


status

status: Status

Current status of the product.

Indicates whether the product is active (available for selection) or inactive (hidden from normal listings). This allows products to be temporarily removed from catalogs without deleting them.

Only products with ACTIVE status should normally be shown to end users, while INACTIVE products might still be visible in administrative interfaces.


zoomDisabled?

optional zoomDisabled: boolean

When true, the thumbnail cannot be zoomed on hover.

This prevents the zoom effect that normally occurs when hovering over product thumbnails in listings. This may be desirable for simpler images or when zoom would not add value.

Disabling zoom is particularly useful for icon-like images or simple graphics where zooming doesn't reveal additional detail.