diff --git a/vtex/loaders/intelligentSearch/productListingPage.ts b/vtex/loaders/intelligentSearch/productListingPage.ts index 38d86e913..ad69aae5c 100644 --- a/vtex/loaders/intelligentSearch/productListingPage.ts +++ b/vtex/loaders/intelligentSearch/productListingPage.ts @@ -86,6 +86,7 @@ const ALLOWED_PARAMS = new Set([ "q", "fuzzy", "map", + "zip-code", ]); export interface Props { /** @@ -181,6 +182,7 @@ const searchArgsOf = (props: Props, url: URL) => { ); const fuzzy = mapLabelledFuzzyToFuzzy(props.fuzzy) ?? (url.searchParams.get("fuzzy") as Fuzzy); + const zipCode = url.searchParams.get("zip-code") ?? undefined; return { query, fuzzy, @@ -190,6 +192,7 @@ const searchArgsOf = (props: Props, url: URL) => { hideUnavailableItems, selectedFacets, simulationBehavior, + zipCode, }; }; const PAGE_TYPE_TO_MAP_PARAM = { @@ -389,6 +392,7 @@ const loader = async ( const paramsToPersist = new URLSearchParams(); searchArgs.query && paramsToPersist.set("q", searchArgs.query); searchArgs.sort && paramsToPersist.set("sort", searchArgs.sort); + searchArgs.zipCode && paramsToPersist.set("zip-code", searchArgs.zipCode); const filters = facets .filter((f) => !f.hidden) .map(toFilter(selectedFacets, paramsToPersist)); diff --git a/vtex/utils/client.ts b/vtex/utils/client.ts index eccc94f70..748b8bc6b 100644 --- a/vtex/utils/client.ts +++ b/vtex/utils/client.ts @@ -155,6 +155,7 @@ export interface VTEXCommerceStable { fuzzy?: string; locale?: string; hideUnavailableItems: boolean; + "zip-code"?: string; }; }; "GET /api/io/_v/api/intelligent-search/facets/*facets": { @@ -167,6 +168,7 @@ export interface VTEXCommerceStable { fuzzy?: string; locale?: string; hideUnavailableItems: boolean; + "zip-code"?: string; }; }; diff --git a/vtex/utils/intelligentSearch.ts b/vtex/utils/intelligentSearch.ts index a8e0e803a..c01f1b41c 100644 --- a/vtex/utils/intelligentSearch.ts +++ b/vtex/utils/intelligentSearch.ts @@ -51,6 +51,7 @@ interface Params { locale: string; hideUnavailableItems: boolean; simulationBehavior: SimulationBehavior; + zipCode?: string; } export const withDefaultParams = ({ @@ -62,6 +63,7 @@ export const withDefaultParams = ({ locale = "pt-BR", hideUnavailableItems, simulationBehavior = "default", + zipCode, }: Partial) => ({ page: page + 1, count, @@ -72,6 +74,7 @@ export const withDefaultParams = ({ // locale: locale ?? ctx.configVTEX!.defaultLocale, hideUnavailableItems: hideUnavailableItems ?? false, simulationBehavior, + "zip-code": zipCode, }); const IS_ANONYMOUS = Symbol("segment");