Skip to main content

Interface: ProductBundlesProps

Defined in: components/ProductBundles.tsx:17

Properties

afterBundleAddToCart?

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

Defined in: components/ProductBundles.tsx:127

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

Callback triggered before adding the bundle to cart.

Parameters

bundleId

string

quantity

number

Returns

boolean


cartId?

optional cartId?: string

Defined in: components/ProductBundles.tsx:58

Cart ID — required when onAddToCart is not provided


className?

optional className?: string

Defined in: components/ProductBundles.tsx:130

Extra CSS class applied to the root wrapper element.


companyId?

optional companyId?: number

Defined in: components/ProductBundles.tsx:55

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

Additional configuration object passed through to the component.


createCart?

optional createCart?: boolean

Defined in: components/ProductBundles.tsx:70

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

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


includeTax?

optional includeTax?: boolean

Defined in: components/ProductBundles.tsx:38

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

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

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

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

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

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

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

Returns

void


portalMode?

optional portalMode?: string

Defined in: components/ProductBundles.tsx:47

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

ID of the product whose bundles should be fetched.


showIndividualItems?

optional showIndividualItems?: boolean

Defined in: components/ProductBundles.tsx:81

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


showModal?

optional showModal?: boolean

Defined in: components/ProductBundles.tsx:109

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

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


taxZone

taxZone: string

Defined in: components/ProductBundles.tsx:30

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


user?

optional user?: Contact | Customer | null

Defined in: components/ProductBundles.tsx:50

Authenticated user — used for semi-closed visibility check.