Skip to main content

Interface: ProductBundlesProps

Defined in: components/ProductBundles.tsx:20

Properties​

afterBundleAddToCart?​

optional afterBundleAddToCart?: (cart, bundle?) => void

Defined in: components/ProductBundles.tsx:136

Callback triggered after adding the bundle to cart.

Parameters​

cart​

Cart

bundle?​

Bundle

Returns​

void


beforeBundleAddToCart?​

optional beforeBundleAddToCart?: (bundleId, quantity) => boolean

Defined in: components/ProductBundles.tsx:128

Callback triggered before adding the bundle to cart.

Parameters​

bundleId​

string

quantity​

number

Returns​

boolean


cartId?​

optional cartId?: string

Defined in: components/ProductBundles.tsx:61

Cart ID — required when onAddToCart is not provided


className?​

optional className?: string

Defined in: components/ProductBundles.tsx:139

Extra CSS class applied to the root wrapper element.


companyId?​

optional companyId?: number

Defined in: components/ProductBundles.tsx:58

Active company ID from the company switcher. Overrides user's default company for cart creation and lookup. * If not provided, the user's default company is used.


configuration?​

optional configuration?: any

Defined in: components/ProductBundles.tsx:87

Additional configuration object passed through to the component.


createCart?​

optional createCart?: boolean

Defined in: components/ProductBundles.tsx:73

If true a new cart is created if no cart ID is provided. Defaults to false.


graphqlClient?​

optional graphqlClient?: GraphQLClient

Defined in: components/ProductBundles.tsx:24

GraphQL client instance used to fetch bundle data. Resolved from PropellerProvider when omitted.


includeTax?​

optional includeTax?: boolean

Defined in: components/ProductBundles.tsx:41

When true, net price (incl. tax) is the leading price. Note: in the Propeller SDK price.gross = excl. VAT, price.net = incl. VAT.


labels?​

optional labels?: Record<string, string>

Defined in: components/ProductBundles.tsx:103

Override any UI string. Available keys: title, condition_ALL, condition_EP, leaderItem, youSave, adding, addToCart, loginToSeePrices, addedToCart, modalTitle, continueShopping, proceedToCheckout, noCartId


language?​

optional language?: string

Defined in: components/ProductBundles.tsx:30

Language code used for content (e.g. 'NL', 'EN'). Resolved from PropellerProvider when omitted.


layout?​

optional layout?: "compact" | "vertical" | "horizontal"

Defined in: components/ProductBundles.tsx:95

Layout variant for the bundle display.

  • 'vertical' — stacked layout
  • 'horizontal' — side-by-side (default)
  • 'compact' — condensed, hides individual items

onAddBundleToCart?​

optional onAddBundleToCart?: (bundleId, quantity) => void

Defined in: components/ProductBundles.tsx:131

Called when the user clicks "Add bundle to cart". Receives bundleId and quantity (always 1).

Parameters​

bundleId​

string

quantity​

number

Returns​

void


onCartCreated?​

optional onCartCreated?: (cart) => void

Defined in: components/ProductBundles.tsx:67

Callback to handle a new cart being created. WARNING: If not provided the component create new carts on every add-to-cart.

Parameters​

cart​

Cart

Returns​

void


onProceedToCheckout?​

optional onProceedToCheckout?: () => void

Defined in: components/ProductBundles.tsx:121

Callback fired when the "Proceed to checkout" modal button is clicked

Returns​

void


portalMode?​

optional portalMode?: string

Defined in: components/ProductBundles.tsx:50

Controls portal visibility mode. 'semi-closed' — prices and add-to-cart are hidden for anonymous users. Defaults to 'open'.


productId​

productId: number

Defined in: components/ProductBundles.tsx:27

ID of the product whose bundles should be fetched.


showIndividualItems?​

optional showIndividualItems?: boolean

Defined in: components/ProductBundles.tsx:84

When true, the individual bundle items are listed inside each bundle card. Defaults to true.


showLoginPrompt?​

optional showLoginPrompt?: boolean

Defined in: components/ProductBundles.tsx:109

Show the "log in to see prices" prompt when prices are hidden. Defaults to true; pass false to render nothing in its place.


showModal?​

optional showModal?: boolean

Defined in: components/ProductBundles.tsx:118

When true a modal popup is shown after a successful add-to-cart with buttons to continue shopping or proceed to checkout. Defaults to false (only a brief inline toast is shown).


stockValidation?​

optional stockValidation?: boolean

Defined in: components/ProductBundles.tsx:78

When true, stock availability is validated before adding to cart.


taxZone​

taxZone: string

Defined in: components/ProductBundles.tsx:33

Tax zone code used for pricing (e.g. 'NL').


user?​

optional user?: Contact | Customer | null

Defined in: components/ProductBundles.tsx:53

Authenticated user — used for semi-closed visibility check.