Skip to main content

Interface: ProductInfoProps

Defined in: components/ProductInfo.tsx:37

Properties

addToCartComponent?

optional addToCartComponent?: ComponentType<AddToCartComponentProps>

Defined in: components/ProductInfo.tsx:159


afterContent?

optional afterContent?: (product) => ReactNode

Defined in: components/ProductInfo.tsx:193

Parameters

product

Product

Returns

ReactNode


applyOrderlists?

optional applyOrderlists?: boolean

Defined in: components/ProductInfo.tsx:57

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:155


beforeContent?

optional beforeContent?: (product) => ReactNode

Defined in: components/ProductInfo.tsx:192

Parameters

product

Product

Returns

ReactNode


bulkPricesComponent?

optional bulkPricesComponent?: ComponentType<ProductBulkPricesComponentProps>

Defined in: components/ProductInfo.tsx:161


bundlesComponent?

optional bundlesComponent?: ComponentType<ProductBundlesComponentProps>

Defined in: components/ProductInfo.tsx:160


bundlesTaxZone?

optional bundlesTaxZone?: string

Defined in: components/ProductInfo.tsx:168

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


children?

optional children?: ReactNode

Defined in: components/ProductInfo.tsx:198

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:118

Extra CSS class applied to the root element.


companyId?

optional companyId?: number

Defined in: components/ProductInfo.tsx:45

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:123

Config object providing imageSearchFiltersGrid and imageVariantFiltersSmall.


currency?

optional currency?: string

Defined in: components/ProductInfo.tsx:177

Currency symbol used by the price section.


favoriteComponent?

optional favoriteComponent?: ComponentType<FavoriteComponentProps>

Defined in: components/ProductInfo.tsx:156


graphqlClient?

optional graphqlClient?: GraphQLClient

Defined in: components/ProductInfo.tsx:75

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


imageComponent?

optional imageComponent?: ComponentType<ImageComponentProps>

Defined in: components/ProductInfo.tsx:154


imageLabels?

optional imageLabels?: string[]

Defined in: components/ProductInfo.tsx:131

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:82

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:90

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:174

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


labels?

optional labels?: Record<string, string>

Defined in: components/ProductInfo.tsx:171

Optional localized label overrides forwarded to every section.


language?

optional language?: string

Defined in: components/ProductInfo.tsx:115

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


onLoginClick?

optional onLoginClick?: () => void

Defined in: components/ProductInfo.tsx:190

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:102

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


orderlistIds?

optional orderlistIds?: number[]

Defined in: components/ProductInfo.tsx:51

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:184

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:157


product?

optional product?: Product

Defined in: components/ProductInfo.tsx:63

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


productId?

optional productId?: number

Defined in: components/ProductInfo.tsx:69

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:149


showBadges?

optional showBadges?: boolean

Defined in: components/ProductInfo.tsx:145


showBulkPrices?

optional showBulkPrices?: boolean

Defined in: components/ProductInfo.tsx:151


showBundles?

optional showBundles?: boolean

Defined in: components/ProductInfo.tsx:150


showFavorite?

optional showFavorite?: boolean

Defined in: components/ProductInfo.tsx:146


showImage?

optional showImage?: boolean

Defined in: components/ProductInfo.tsx:144


showPrice?

optional showPrice?: boolean

Defined in: components/ProductInfo.tsx:147


showSku?

optional showSku?: boolean

Defined in: components/ProductInfo.tsx:110

Show the product SKU. Defaults to true.


showStock?

optional showStock?: boolean

Defined in: components/ProductInfo.tsx:148


showSurcharges?

optional showSurcharges?: boolean

Defined in: components/ProductInfo.tsx:152


showTitle?

optional showTitle?: boolean

Defined in: components/ProductInfo.tsx:107

Show the product name. Defaults to true.


stockComponent?

optional stockComponent?: ComponentType<StockComponentProps>

Defined in: components/ProductInfo.tsx:158


surchargesComponent?

optional surchargesComponent?: ComponentType<ProductSurchargesComponentProps>

Defined in: components/ProductInfo.tsx:162


taxZone?

optional taxZone?: string

Defined in: components/ProductInfo.tsx:95

Tax zone to use for price calculation.


textLabels?

optional textLabels?: string[]

Defined in: components/ProductInfo.tsx:138

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:40

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