Skip to main content

Interface: ProductSliderProps

Defined in: components/ProductSlider.tsx:20

Properties​

addToCartComponent?​

optional addToCartComponent?: ComponentType<AddToCartComponentProps>

Defined in: components/ProductSlider.tsx:154


addToCartLabels?​

optional addToCartLabels?: Record<string, string>

Defined in: components/ProductSlider.tsx:132

  • Label overrides forwarded to the embedded AddToCart component. * Keys: add, adding, addedToCart, outOfStock, noCartId, errorAdding, * modalTitle, quantity, continueShopping, proceedToCheckout

afterAddToCart?​

optional afterAddToCart?: (cart, item?) => void

Defined in: components/ProductSlider.tsx:113

Called after every successful add-to-cart. Receives the updated cart and the added item.

Parameters​

cart​

Cart

item?​

CartMainItem

Returns​

void


afterItem?​

optional afterItem?: (item, index) => ReactNode

Defined in: components/ProductSlider.tsx:167

Parameters​

item​

Product | Cluster

index​

number

Returns​

ReactNode


allowAddToCart?​

optional allowAddToCart?: boolean

Defined in: components/ProductSlider.tsx:128

Show the add-to-cart control on each card. Defaults to true; a semi-closed portal still withholds it from anonymous visitors regardless.


badgesComponent?​

optional badgesComponent?: ComponentType<BadgesComponentProps>

Defined in: components/ProductSlider.tsx:156


beforeItem?​

optional beforeItem?: (item, index) => ReactNode

Defined in: components/ProductSlider.tsx:166

Parameters​

item​

Product | Cluster

index​

number

Returns​

ReactNode


cartId?​

optional cartId?: string

Defined in: components/ProductSlider.tsx:110

ID of an existing cart to add items to.


clusterCardComponent?​

optional clusterCardComponent?: ComponentType<ClusterCardProps>

Defined in: components/ProductSlider.tsx:162


clusterCardLabels?​

optional clusterCardLabels?: Record<string, string>

Defined in: components/ProductSlider.tsx:141

Translated labels forwarded to embedded <ClusterCard> instances.


clusterId?​

optional clusterId?: number

Defined in: components/ProductSlider.tsx:46

Source cluster ID for cross-upsell lookup. Required when crossUpsellTypes is set.


clusterIds?​

optional clusterIds?: number[]

Defined in: components/ProductSlider.tsx:33

Cluster IDs to fetch internally when products is not provided


companyId?​

optional companyId?: number

Defined in: components/ProductSlider.tsx:77

Active company ID from the company switcher. Overrides the user's default company for price calculation in cross-upsell fetches * and is forwarded to each embedded ProductCard / AddToCart. * Triggers a re-fetch when changed.


configuration?​

optional configuration?: any

Defined in: components/ProductSlider.tsx:143

Configuration object providing imageSearchFiltersGrid, imageVariantFiltersMedium, urls


containerClassName?​

optional containerClassName?: string

Defined in: components/ProductSlider.tsx:87

Additional CSS class for the outer container


createCart?​

optional createCart?: boolean

Defined in: components/ProductSlider.tsx:111

Auto-create a cart when none is available. Pair with onCartCreated.


crossUpsellTypes?​

optional crossUpsellTypes?: CrossupsellType[]

Defined in: components/ProductSlider.tsx:40

Cross-upsell types to fetch. When provided, fetches cross-upsells for the given productId/clusterId instead of fetching products by IDs. Values: 'ACCESSORIES' | 'ALTERNATIVES' | 'RELATED' | 'OPTIONS' | 'PARTS'


enableAddFavorite?​

optional enableAddFavorite?: boolean

Defined in: components/ProductSlider.tsx:97

Show a heart-icon favourite toggle on each card. Defaults to false.


favoriteComponent?​

optional favoriteComponent?: ComponentType&lt;FavoriteComponentProps>

Defined in: components/ProductSlider.tsx:157


graphqlClient?​

optional graphqlClient?: GraphQLClient

Defined in: components/ProductSlider.tsx:24

Propeller SDK GraphQL client. Resolved from PropellerProvider when omitted.


imageComponent?​

optional imageComponent?: ComponentType&lt;ImageComponentProps>

Defined in: components/ProductSlider.tsx:155


includeTax?​

optional includeTax?: boolean

Defined in: components/ProductSlider.tsx:60

When true, net price (incl. tax) is the leading price. Forwarded to each ProductCard / ClusterCard.


itemsPerView?​

optional itemsPerView?: object

Defined in: components/ProductSlider.tsx:78

Items visible per breakpoint

desktop?​

optional desktop?: number

Number of items visible on desktop viewports. Defaults to 4.

mobile?​

optional mobile?: number

Number of items visible on mobile viewports.

tablet?​

optional tablet?: number

Number of items visible on tablet viewports.


labels?​

optional labels?: Record&lt;string, string>

Defined in: components/ProductSlider.tsx:144

  • Label overrides for the slider UI. * Available keys: scrollLeft, scrollRight, noProducts, viewCluster, * ACCESSORIES, ALTERNATIVES, RELATED, OPTIONS, PARTS

language?​

optional language?: string

Defined in: components/ProductSlider.tsx:51

Language code for API requests and localized content. Resolved from PropellerProvider when omitted.


onCartCreated?​

optional onCartCreated?: (cart) => void

Defined in: components/ProductSlider.tsx:112

Called after AddToCart creates a new cart internally.

Parameters​

cart​

Cart

Returns​

void


onClusterClick?​

optional onClusterClick?: (cluster) => void

Defined in: components/ProductSlider.tsx:105

Called when a cluster card is clicked — use for SPA-style routing.

Parameters​

cluster​

Cluster

Returns​

void


onLoginClick?​

optional onLoginClick?: () => void

Defined in: components/ProductSlider.tsx:123

Called 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


onProceedToCheckout?​

optional onProceedToCheckout?: () => void

Defined in: components/ProductSlider.tsx:118

Called when "Proceed to checkout" is clicked in the AddToCart modal.

Returns​

void


onProductClick?​

optional onProductClick?: (product) => void

Defined in: components/ProductSlider.tsx:102

Called when a product card is clicked — use for SPA-style routing.

Parameters​

product​

Product

Returns​

void


onRequestQuoteClick?​

optional onRequestQuoteClick?: (cart) => void

Defined in: components/ProductSlider.tsx:129

Called when "Request a Quote" is clicked in the AddToCart modal.

Parameters​

cart​

Cart

Returns​

void


onToggleFavorite?​

optional onToggleFavorite?: (item, isFavorite) => void

Defined in: components/ProductSlider.tsx:98

  • Called when a favourite is toggled on any card. * Receives the full Product or Cluster object and the new favourite state.

Parameters​

item​

Product | Cluster

isFavorite​

boolean

Returns​

void


portalMode?​

optional portalMode?: string

Defined in: components/ProductSlider.tsx:70

Controls portal visibility mode. 'open' — AddToCart is shown on product cards. 'semi-closed' — AddToCart is hidden (catalog-only view). Defaults to 'open'.


priceComponent?​

optional priceComponent?: ComponentType&lt;PriceComponentProps>

Defined in: components/ProductSlider.tsx:152


priceLabels?​

optional priceLabels?: Record&lt;string, string>

Defined in: components/ProductSlider.tsx:96

Translated labels forwarded to the embedded <ProductPrice> display inside each <ProductCard>. See ProductPriceProps.labels for slugs.


productCardComponent?​

optional productCardComponent?: ComponentType&lt;ProductCardProps>

Defined in: components/ProductSlider.tsx:161


productCardLabels?​

optional productCardLabels?: Record&lt;string, string>

Defined in: components/ProductSlider.tsx:138

Translated labels forwarded to embedded <ProductCard> instances.


productId?​

optional productId?: number

Defined in: components/ProductSlider.tsx:43

Source product ID for cross-upsell lookup. Required when crossUpsellTypes is set.


productIds?​

optional productIds?: number[]

Defined in: components/ProductSlider.tsx:30

Product IDs to fetch internally when products is not provided


products?​

optional products?: (Product | Cluster)[]

Defined in: components/ProductSlider.tsx:27

Pre-loaded products or clusters to display. When provided, skips internal fetching.


showAvailability?​

optional showAvailability?: boolean

Defined in: components/ProductSlider.tsx:89

  • Show only the availability indicator (Available / Not available) inside the stock widget. * Forwarded to ProductCard.showAvailability. * Defaults to true.

showIncrDecr?​

optional showIncrDecr?: boolean

Defined in: components/ProductSlider.tsx:109

Show increment/decrement stepper buttons in AddToCart. Defaults to true.


showModal?​

optional showModal?: boolean

Defined in: components/ProductSlider.tsx:117

  • When true, AddToCart shows a success modal instead of a toast. * Defaults to false.

showStock?​

optional showStock?: boolean

Defined in: components/ProductSlider.tsx:88

  • Show the stock / availability widget on each product card. * Forwarded to ProductCard.showStock. * Defaults to false.

stockComponent?​

optional stockComponent?: ComponentType&lt;StockComponentProps>

Defined in: components/ProductSlider.tsx:153


stockLabels?​

optional stockLabels?: Record&lt;string, string>

Defined in: components/ProductSlider.tsx:90

  • Label overrides forwarded to the embedded ItemStock component inside each card. * Keys: inStock, outOfStock, lowStock, available, notAvailable, pieces

stockValidation?​

optional stockValidation?: boolean

Defined in: components/ProductSlider.tsx:108

Validate stock before adding to cart. Defaults to false.


taxZone​

taxZone: string

Defined in: components/ProductSlider.tsx:54

Tax zone for price calculations


title?​

optional title?: string

Defined in: components/ProductSlider.tsx:86

Slider title displayed above the track


user?​

optional user?: Contact | Customer | null

Defined in: components/ProductSlider.tsx:73

Authenticated user for cart operations