Skip to main content

Interface: ProductInfoProps

Defined in: components/ProductInfo.tsx:42

Properties​

addToCartComponent?​

optional addToCartComponent?: ComponentType<AddToCartComponentProps>

Defined in: components/ProductInfo.tsx:181


afterContent?​

optional afterContent?: (product) => ReactNode

Defined in: components/ProductInfo.tsx:221

Parameters​

product​

Product

Returns​

ReactNode


applyOrderlists?​

optional applyOrderlists?: boolean

Defined in: components/ProductInfo.tsx:62

Apply the orderlist filter. Defaults to true; set false to browse unscoped (full catalogue) for an authenticated user without a contract.


badgesComponent?​

optional badgesComponent?: ComponentType<BadgesComponentProps>

Defined in: components/ProductInfo.tsx:177


beforeContent?​

optional beforeContent?: (product) => ReactNode

Defined in: components/ProductInfo.tsx:220

Parameters​

product​

Product

Returns​

ReactNode


bulkPricesComponent?​

optional bulkPricesComponent?: ComponentType<ProductBulkPricesComponentProps>

Defined in: components/ProductInfo.tsx:183


bundlesComponent?​

optional bundlesComponent?: ComponentType<ProductBundlesComponentProps>

Defined in: components/ProductInfo.tsx:182


bundlesTaxZone?​

optional bundlesTaxZone?: string

Defined in: components/ProductInfo.tsx:190

Tax zone to use for ProductBundles pricing (required by ProductBundles). Defaults to the taxZone prop or 'NL' when omitted.


cartId?​

optional cartId?: string

Defined in: components/ProductInfo.tsx:151

Cart to add into. Omit and pass createCart to start one on first add.


children?​

optional children?: ReactNode

Defined in: components/ProductInfo.tsx:226

Compound mode opt-in. When provided, ProductInfo renders the compound subtree (using <ProductInfo.X> subcomponents) and also triggers the new-shell layout. Subcomponents read shared product data from context.


className?​

optional className?: string

Defined in: components/ProductInfo.tsx:123

Extra CSS class applied to the root element.


companyId?​

optional companyId?: number

Defined in: components/ProductInfo.tsx:50

Active company ID from the company switcher. Overrides default company for price calculation. Triggers a re-fetch when changed.


configuration?​

optional configuration?: any

Defined in: components/ProductInfo.tsx:128

Config object providing imageSearchFiltersGrid and imageVariantFiltersSmall.


createCart?​

optional createCart?: boolean

Defined in: components/ProductInfo.tsx:154

If true a new cart is created when no cartId is available.


currency?​

optional currency?: string

Defined in: components/ProductInfo.tsx:199

Currency symbol used by the price section.


favoriteComponent?​

optional favoriteComponent?: ComponentType<FavoriteComponentProps>

Defined in: components/ProductInfo.tsx:178


graphqlClient?​

optional graphqlClient?: GraphQLClient

Defined in: components/ProductInfo.tsx:80

Initialised Propeller SDK GraphQL client. Required when productId is provided for internal data fetching.


imageComponent?​

optional imageComponent?: ComponentType<ImageComponentProps>

Defined in: components/ProductInfo.tsx:176


imageLabels?​

optional imageLabels?: string[]

Defined in: components/ProductInfo.tsx:136

Attribute codes/names to look up and display as badge overlays on the product image. Each code is resolved against product.attributes.items[].attributeDescription.code (or .name). Attributes with no matching value are silently omitted. Example: ['new', 'sale']


imageSearchFilters?​

optional imageSearchFilters?: any

Defined in: components/ProductInfo.tsx:87

Image search filter passed to ProductService.getProduct(). Controls how many image items are returned. Example: { page: 1, offset: 20 }


imageVariantFilters?​

optional imageVariantFilters?: any

Defined in: components/ProductInfo.tsx:95

Image variant transformation filter passed to ProductService.getProduct(). Controls image size/format variants returned with the product. Example: imageVariantFiltersLarge from @/data/defaults Defaults to { transformations: [] } when omitted.


includeTax?​

optional includeTax?: boolean

Defined in: components/ProductInfo.tsx:196

Tax-inclusive vs. tax-exclusive price toggle for price / bulk-prices / surcharges.


labels?​

optional labels?: Record<string, string>

Defined in: components/ProductInfo.tsx:193

Optional localized label overrides forwarded to every section.


language?​

optional language?: string

Defined in: components/ProductInfo.tsx:120

Language code used to resolve localised names. Defaults to 'NL'.


onCartCreated?​

optional onCartCreated?: (cart) => void

Defined in: components/ProductInfo.tsx:160

Called when a new cart is created, so the host can persist cart.cartId. WARNING: without it a new cart is created on every add.

Parameters​

cart​

Cart

Returns​

void


onLoginClick?​

optional onLoginClick?: () => void

Defined in: components/ProductInfo.tsx:212

Invoked when an anonymous visitor clicks the log-in action that replaces add-to-cart in a semi-closed portal. The host owns navigation.

Returns​

void


onProductLoaded?​

optional onProductLoaded?: (product) => void

Defined in: components/ProductInfo.tsx:107

Called once the product data is loaded — either immediately (when product prop is supplied) or after the internal fetch completes. Use this to hydrate sibling components (gallery, price, descriptions, etc.).

Parameters​

product​

Product

Returns​

void


onRequestPrice?​

optional onRequestPrice?: (product) => void

Defined in: components/ProductInfo.tsx:215

Adds a quoted-price product to the price-request list.

Parameters​

product​

Product

Returns​

void


orderlistIds?​

optional orderlistIds?: number[]

Defined in: components/ProductInfo.tsx:56

Scope the product fetch to specific orderlist IDs (e.g. a chosen B2B contract). Overrides the default resolution of all the company's orderlists.


portalMode?​

optional portalMode?: string

Defined in: components/ProductInfo.tsx:206

Portal visibility mode. In 'semi-closed' the price, stock row and add-to-cart are withheld from anonymous visitors, who get a log-in action in place of add-to-cart instead.


priceComponent?​

optional priceComponent?: ComponentType<PriceComponentProps>

Defined in: components/ProductInfo.tsx:179


priceRequestAdded?​

optional priceRequestAdded?: boolean

Defined in: components/ProductInfo.tsx:218

True once this product is on the price-request list.


product?​

optional product?: Product

Defined in: components/ProductInfo.tsx:68

Pre-fetched product object to display. When provided the component skips internal fetching.


productId?​

optional productId?: number

Defined in: components/ProductInfo.tsx:74

Product ID to fetch data for when no product prop is provided. Requires graphqlClient to be set.


showAddToCart?​

optional showAddToCart?: boolean

Defined in: components/ProductInfo.tsx:171


showBadges?​

optional showBadges?: boolean

Defined in: components/ProductInfo.tsx:167


showBulkPrices?​

optional showBulkPrices?: boolean

Defined in: components/ProductInfo.tsx:173


showBundles?​

optional showBundles?: boolean

Defined in: components/ProductInfo.tsx:172


showFavorite?​

optional showFavorite?: boolean

Defined in: components/ProductInfo.tsx:168


showImage?​

optional showImage?: boolean

Defined in: components/ProductInfo.tsx:166


showPrice?​

optional showPrice?: boolean

Defined in: components/ProductInfo.tsx:169


showSku?​

optional showSku?: boolean

Defined in: components/ProductInfo.tsx:115

Show the product SKU. Defaults to true.


showStock?​

optional showStock?: boolean

Defined in: components/ProductInfo.tsx:170


showSurcharges?​

optional showSurcharges?: boolean

Defined in: components/ProductInfo.tsx:174


showTitle?​

optional showTitle?: boolean

Defined in: components/ProductInfo.tsx:112

Show the product name. Defaults to true.


stockComponent?​

optional stockComponent?: ComponentType<StockComponentProps>

Defined in: components/ProductInfo.tsx:180


surchargesComponent?​

optional surchargesComponent?: ComponentType<ProductSurchargesComponentProps>

Defined in: components/ProductInfo.tsx:184


taxZone?​

optional taxZone?: string

Defined in: components/ProductInfo.tsx:100

Tax zone to use for price calculation.


textLabels?​

optional textLabels?: string[]

Defined in: components/ProductInfo.tsx:143

Attribute codes/names to look up and display as extra text rows below the product name. Resolved the same way as imageLabels. Example: ['brand', 'color']


user?​

optional user?: Contact | Customer | null

Defined in: components/ProductInfo.tsx:45

The authenticated user (Contact or Customer). Resolved from PropellerProvider when omitted.