From f485c0ffd1ec7976fbb080c33092888fb4485d0c Mon Sep 17 00:00:00 2001 From: Raed Chammam Date: Wed, 5 Nov 2025 13:57:33 +0100 Subject: [PATCH] feat: add fallbackParameters support to FBT --- examples/demo/src/routes/ProductPage.tsx | 3 +++ examples/js-demo/app.tsx | 3 +++ .../src/getFrequentlyBoughtTogether.ts | 12 ++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/examples/demo/src/routes/ProductPage.tsx b/examples/demo/src/routes/ProductPage.tsx index 63a4a589..3bd43392 100644 --- a/examples/demo/src/routes/ProductPage.tsx +++ b/examples/demo/src/routes/ProductPage.tsx @@ -103,6 +103,9 @@ export const ProductPage: React.FC = () => { ? [`brand:${selectedFacetValue}`] : [], }} + fallbackParameters={{ + facetFilters: [`brand:${selectedProduct.brand}`], + }} view={({ itemComponent, items }) => ( ({ diff --git a/packages/recommend-core/src/getFrequentlyBoughtTogether.ts b/packages/recommend-core/src/getFrequentlyBoughtTogether.ts index f5a22f9e..fcd4bd18 100644 --- a/packages/recommend-core/src/getFrequentlyBoughtTogether.ts +++ b/packages/recommend-core/src/getFrequentlyBoughtTogether.ts @@ -1,4 +1,7 @@ -import { FrequentlyBoughtTogetherQuery } from '@algolia/recommend'; +import { + FrequentlyBoughtTogetherQuery, + RecommendationsQuery, +} from '@algolia/recommend'; import { RecommendationsProps } from './getRecommendations'; import { ProductRecord } from './types'; @@ -10,18 +13,23 @@ import { version } from './version'; export type GetFrequentlyBoughtTogetherProps< TObject > = RecommendationsProps & - Omit; + Omit & { + // add fallback parameters manually as it is not supported in @algolia/recommend v4 + fallbackParameters?: RecommendationsQuery['fallbackParameters']; + }; export function getFrequentlyBoughtTogether({ objectIDs, recommendClient, transformItems = (x) => x, + fallbackParameters, indexName, maxRecommendations, queryParameters, threshold, }: GetFrequentlyBoughtTogetherProps) { const queries = objectIDs.map((objectID) => ({ + fallbackParameters, indexName, maxRecommendations, objectID,