Interface: ProductInfoProps
Defined in: components/ProductInfo.tsx:42
Properties
addToCartComponent?
optionaladdToCartComponent?:ComponentType<AddToCartComponentProps>
Defined in: components/ProductInfo.tsx:181
afterContent?
optionalafterContent?: (product) =>ReactNode
Defined in: components/ProductInfo.tsx:221
Parameters
product
Product
Returns
ReactNode
applyOrderlists?
optionalapplyOrderlists?: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?
optionalbadgesComponent?:ComponentType<BadgesComponentProps>
Defined in: components/ProductInfo.tsx:177
beforeContent?
optionalbeforeContent?: (product) =>ReactNode
Defined in: components/ProductInfo.tsx:220
Parameters
product
Product
Returns
ReactNode
bulkPricesComponent?
optionalbulkPricesComponent?:ComponentType<ProductBulkPricesComponentProps>
Defined in: components/ProductInfo.tsx:183
bundlesComponent?
optionalbundlesComponent?:ComponentType<ProductBundlesComponentProps>
Defined in: components/ProductInfo.tsx:182
bundlesTaxZone?
optionalbundlesTaxZone?: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?
optionalcartId?:string
Defined in: components/ProductInfo.tsx:151
Cart to add into. Omit and pass createCart to start one on first add.
children?
optionalchildren?: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?
optionalclassName?:string
Defined in: components/ProductInfo.tsx:123
Extra CSS class applied to the root element.
companyId?
optionalcompanyId?: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?
optionalconfiguration?:any
Defined in: components/ProductInfo.tsx:128
Config object providing imageSearchFiltersGrid and imageVariantFiltersSmall.
createCart?
optionalcreateCart?:boolean
Defined in: components/ProductInfo.tsx:154
If true a new cart is created when no cartId is available.
currency?
optionalcurrency?:string
Defined in: components/ProductInfo.tsx:199
Currency symbol used by the price section.
favoriteComponent?
optionalfavoriteComponent?:ComponentType<FavoriteComponentProps>
Defined in: components/ProductInfo.tsx:178
graphqlClient?
optionalgraphqlClient?:GraphQLClient
Defined in: components/ProductInfo.tsx:80
Initialised Propeller SDK GraphQL client.
Required when productId is provided for internal data fetching.
imageComponent?
optionalimageComponent?:ComponentType<ImageComponentProps>
Defined in: components/ProductInfo.tsx:176
imageLabels?
optionalimageLabels?: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?
optionalimageSearchFilters?: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?
optionalimageVariantFilters?: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?
optionalincludeTax?:boolean
Defined in: components/ProductInfo.tsx:196
Tax-inclusive vs. tax-exclusive price toggle for price / bulk-prices / surcharges.
labels?
optionallabels?:Record<string,string>
Defined in: components/ProductInfo.tsx:193
Optional localized label overrides forwarded to every section.
language?
optionallanguage?:string
Defined in: components/ProductInfo.tsx:120
Language code used to resolve localised names. Defaults to 'NL'.
onCartCreated?
optionalonCartCreated?: (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?
optionalonLoginClick?: () =>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?
optionalonProductLoaded?: (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?
optionalonRequestPrice?: (product) =>void
Defined in: components/ProductInfo.tsx:215
Adds a quoted-price product to the price-request list.
Parameters
product
Product
Returns
void
orderlistIds?
optionalorderlistIds?: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?
optionalportalMode?: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?
optionalpriceComponent?:ComponentType<PriceComponentProps>
Defined in: components/ProductInfo.tsx:179
priceRequestAdded?
optionalpriceRequestAdded?:boolean
Defined in: components/ProductInfo.tsx:218
True once this product is on the price-request list.
product?
optionalproduct?:Product
Defined in: components/ProductInfo.tsx:68
Pre-fetched product object to display. When provided the component skips internal fetching.
productId?
optionalproductId?: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?
optionalshowAddToCart?:boolean
Defined in: components/ProductInfo.tsx:171
showBadges?
optionalshowBadges?:boolean
Defined in: components/ProductInfo.tsx:167
showBulkPrices?
optionalshowBulkPrices?:boolean
Defined in: components/ProductInfo.tsx:173
showBundles?
optionalshowBundles?:boolean
Defined in: components/ProductInfo.tsx:172
showFavorite?
optionalshowFavorite?:boolean
Defined in: components/ProductInfo.tsx:168
showImage?
optionalshowImage?:boolean
Defined in: components/ProductInfo.tsx:166
showPrice?
optionalshowPrice?:boolean
Defined in: components/ProductInfo.tsx:169
showSku?
optionalshowSku?:boolean
Defined in: components/ProductInfo.tsx:115
Show the product SKU. Defaults to true.
showStock?
optionalshowStock?:boolean
Defined in: components/ProductInfo.tsx:170
showSurcharges?
optionalshowSurcharges?:boolean
Defined in: components/ProductInfo.tsx:174
showTitle?
optionalshowTitle?:boolean
Defined in: components/ProductInfo.tsx:112
Show the product name. Defaults to true.
stockComponent?
optionalstockComponent?:ComponentType<StockComponentProps>
Defined in: components/ProductInfo.tsx:180
surchargesComponent?
optionalsurchargesComponent?:ComponentType<ProductSurchargesComponentProps>
Defined in: components/ProductInfo.tsx:184
taxZone?
optionaltaxZone?:string
Defined in: components/ProductInfo.tsx:100
Tax zone to use for price calculation.
textLabels?
optionaltextLabels?: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?
optionaluser?:Contact|Customer|null
Defined in: components/ProductInfo.tsx:45
The authenticated user (Contact or Customer). Resolved from PropellerProvider when omitted.