Interface: ProductInfoProps
Defined in: components/ProductInfo.tsx:37
Properties
addToCartComponent?
optionaladdToCartComponent?:ComponentType<AddToCartComponentProps>
Defined in: components/ProductInfo.tsx:159
afterContent?
optionalafterContent?: (product) =>ReactNode
Defined in: components/ProductInfo.tsx:193
Parameters
product
Product
Returns
ReactNode
applyOrderlists?
optionalapplyOrderlists?: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?
optionalbadgesComponent?:ComponentType<BadgesComponentProps>
Defined in: components/ProductInfo.tsx:155
beforeContent?
optionalbeforeContent?: (product) =>ReactNode
Defined in: components/ProductInfo.tsx:192
Parameters
product
Product
Returns
ReactNode
bulkPricesComponent?
optionalbulkPricesComponent?:ComponentType<ProductBulkPricesComponentProps>
Defined in: components/ProductInfo.tsx:161
bundlesComponent?
optionalbundlesComponent?:ComponentType<ProductBundlesComponentProps>
Defined in: components/ProductInfo.tsx:160
bundlesTaxZone?
optionalbundlesTaxZone?: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?
optionalchildren?: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?
optionalclassName?:string
Defined in: components/ProductInfo.tsx:118
Extra CSS class applied to the root element.
companyId?
optionalcompanyId?: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?
optionalconfiguration?:any
Defined in: components/ProductInfo.tsx:123
Config object providing imageSearchFiltersGrid and imageVariantFiltersSmall.
currency?
optionalcurrency?:string
Defined in: components/ProductInfo.tsx:177
Currency symbol used by the price section.
favoriteComponent?
optionalfavoriteComponent?:ComponentType<FavoriteComponentProps>
Defined in: components/ProductInfo.tsx:156
graphqlClient?
optionalgraphqlClient?:GraphQLClient
Defined in: components/ProductInfo.tsx:75
Initialised Propeller SDK GraphQL client.
Required when productId is provided for internal data fetching.
imageComponent?
optionalimageComponent?:ComponentType<ImageComponentProps>
Defined in: components/ProductInfo.tsx:154
imageLabels?
optionalimageLabels?: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?
optionalimageSearchFilters?: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?
optionalimageVariantFilters?: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?
optionalincludeTax?:boolean
Defined in: components/ProductInfo.tsx:174
Tax-inclusive vs. tax-exclusive price toggle for price / bulk-prices / surcharges.
labels?
optionallabels?:Record<string,string>
Defined in: components/ProductInfo.tsx:171
Optional localized label overrides forwarded to every section.
language?
optionallanguage?:string
Defined in: components/ProductInfo.tsx:115
Language code used to resolve localised names. Defaults to 'NL'.
onLoginClick?
optionalonLoginClick?: () =>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?
optionalonProductLoaded?: (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?
optionalorderlistIds?: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?
optionalportalMode?: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?
optionalpriceComponent?:ComponentType<PriceComponentProps>
Defined in: components/ProductInfo.tsx:157
product?
optionalproduct?:Product
Defined in: components/ProductInfo.tsx:63
Pre-fetched product object to display. When provided the component skips internal fetching.
productId?
optionalproductId?: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?
optionalshowAddToCart?:boolean
Defined in: components/ProductInfo.tsx:149
showBadges?
optionalshowBadges?:boolean
Defined in: components/ProductInfo.tsx:145
showBulkPrices?
optionalshowBulkPrices?:boolean
Defined in: components/ProductInfo.tsx:151
showBundles?
optionalshowBundles?:boolean
Defined in: components/ProductInfo.tsx:150
showFavorite?
optionalshowFavorite?:boolean
Defined in: components/ProductInfo.tsx:146
showImage?
optionalshowImage?:boolean
Defined in: components/ProductInfo.tsx:144
showPrice?
optionalshowPrice?:boolean
Defined in: components/ProductInfo.tsx:147
showSku?
optionalshowSku?:boolean
Defined in: components/ProductInfo.tsx:110
Show the product SKU. Defaults to true.
showStock?
optionalshowStock?:boolean
Defined in: components/ProductInfo.tsx:148
showSurcharges?
optionalshowSurcharges?:boolean
Defined in: components/ProductInfo.tsx:152
showTitle?
optionalshowTitle?:boolean
Defined in: components/ProductInfo.tsx:107
Show the product name. Defaults to true.
stockComponent?
optionalstockComponent?:ComponentType<StockComponentProps>
Defined in: components/ProductInfo.tsx:158
surchargesComponent?
optionalsurchargesComponent?:ComponentType<ProductSurchargesComponentProps>
Defined in: components/ProductInfo.tsx:162
taxZone?
optionaltaxZone?:string
Defined in: components/ProductInfo.tsx:95
Tax zone to use for price calculation.
textLabels?
optionaltextLabels?: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?
optionaluser?:Contact|Customer|null
Defined in: components/ProductInfo.tsx:40
The authenticated user (Contact or Customer). Resolved from PropellerProvider when omitted.