diff --git a/examples/react-klevu-ui/src/app.tsx b/examples/react-klevu-ui/src/app.tsx index 259b93f1..0c294592 100644 --- a/examples/react-klevu-ui/src/app.tsx +++ b/examples/react-klevu-ui/src/app.tsx @@ -31,6 +31,9 @@ KlevuConfig.init({ recommendationsApiUrl: localStorage.getItem("demo-config") ? JSON.parse(localStorage.getItem("demo-config"))?.recommendationsApiUrl : "", + visitorServiceUrl: localStorage.getItem("demo-config") + ? JSON.parse(localStorage.getItem("demo-config"))?.visitorServiceUrl + : "", }) export const nav = [ @@ -78,6 +81,11 @@ export function App() { ?.recommendationsApiUrl : "" } + visitorServiceUrl={ + localStorage.getItem("demo-config") + ? JSON.parse(localStorage.getItem("demo-config"))?.visitorServiceUrl + : "" + } apiKey={ localStorage.getItem("demo-config") ? JSON.parse(localStorage.getItem("demo-config"))?.apiKey diff --git a/examples/react/src/config.ts b/examples/react/src/config.ts index d62d6010..27686549 100644 --- a/examples/react/src/config.ts +++ b/examples/react/src/config.ts @@ -18,6 +18,7 @@ type Config = { recommendationsApiUrl: string eventsApiV2Url: string eventsApiV1Url: string + visitorServiceUrl: string } let loadedConfig: Config | undefined @@ -56,6 +57,7 @@ export const config: Config = { eventsApiV1Url: "https://stats.ksearchnet.com/analytics/", eventsApiV2Url: "https://stats.ksearchnet.com/analytics/collect", recommendationsApiUrl: "https://config-cdn.ksearchnet.com/recommendations/", + visitorServiceUrl: "https://visitor.service.ksearchnet.com/public/1.0", ...(loadedConfig ?? {}), } diff --git a/packages/klevu-core/src/config.ts b/packages/klevu-core/src/config.ts index f74fe4dc..dff48917 100644 --- a/packages/klevu-core/src/config.ts +++ b/packages/klevu-core/src/config.ts @@ -38,7 +38,10 @@ type KlevuConfiguration = { * MOI API url */ moiApiUrl?: string - + /** + * VisitorServiceUrl for session creation + */ + visitorServiceUrl?: string /** * */ @@ -71,6 +74,7 @@ export class KlevuConfig { eventsApiV1Url = "https://stats.ksearchnet.com/analytics/" eventsApiV2Url = "https://stats.ksearchnet.com/analytics/collect" recommendationsApiUrl = "https://config-cdn.ksearchnet.com/recommendations/" + visitorServiceUrl = "https://visitor.service.ksearchnet.com/public/1.0" axios?: AxiosInstance moiApiUrl = "https://moi-ai.ksearchnet.com/" disableClickTracking = false @@ -96,6 +100,9 @@ export class KlevuConfig { if (config.eventsApiV2Url) { this.eventsApiV2Url = config.eventsApiV2Url } + if (config.visitorServiceUrl) { + this.visitorServiceUrl = config.visitorServiceUrl + } if (config.recommendationsApiUrl) { this.recommendationsApiUrl = config.recommendationsApiUrl } diff --git a/packages/klevu-core/src/usersession.ts b/packages/klevu-core/src/usersession.ts index d69539a4..737088c8 100644 --- a/packages/klevu-core/src/usersession.ts +++ b/packages/klevu-core/src/usersession.ts @@ -140,7 +140,7 @@ export class KlevuUserSession { } return post( - `https://visitor.service.ksearchnet.com/public/1.0/${apiKey}/session`, + `${KlevuConfig.getDefault().visitorServiceUrl}/${apiKey}/session`, payload ) } diff --git a/packages/klevu-ui-vue/src/components.ts b/packages/klevu-ui-vue/src/components.ts index 40bff21d..95243873 100644 --- a/packages/klevu-ui-vue/src/components.ts +++ b/packages/klevu-ui-vue/src/components.ts @@ -165,6 +165,7 @@ export const KlevuInit = /*@__PURE__*/ defineContainer('klevu-ini 'eventsV1Url', 'eventsV2Url', 'recommendationsApiUrl', + 'visitorServiceUrl', 'settings', 'language', 'translation', diff --git a/packages/klevu-ui/src/components.d.ts b/packages/klevu-ui/src/components.d.ts index 895a8fd3..37033801 100644 --- a/packages/klevu-ui/src/components.d.ts +++ b/packages/klevu-ui/src/components.d.ts @@ -540,6 +540,10 @@ export namespace Components { * Enable Data Protection */ "useConsent"?: boolean; + /** + * Override the default session API URL + */ + "visitorServiceUrl"?: string; } /** * Lists latest searches user has made on the site @@ -3059,6 +3063,10 @@ declare namespace LocalJSX { * Enable Data Protection */ "useConsent"?: boolean; + /** + * Override the default session API URL + */ + "visitorServiceUrl"?: string; } /** * Lists latest searches user has made on the site diff --git a/packages/klevu-ui/src/components/klevu-init/klevu-init.tsx b/packages/klevu-ui/src/components/klevu-init/klevu-init.tsx index 34a4411e..2398c817 100644 --- a/packages/klevu-ui/src/components/klevu-init/klevu-init.tsx +++ b/packages/klevu-ui/src/components/klevu-init/klevu-init.tsx @@ -63,6 +63,10 @@ export class KlevuInit { */ @Prop() recommendationsApiUrl?: string + /** + * Override the default session API URL + */ + @Prop() visitorServiceUrl?: string /** * Global settings */ @@ -131,6 +135,7 @@ export class KlevuInit { eventsApiV1Url: this.eventsV1Url, eventsApiV2Url: this.eventsV2Url, recommendationsApiUrl: this.recommendationsApiUrl, + visitorServiceUrl: this.visitorServiceUrl, enableKlaviyoConnector: this.enableKlaviyoConnector || false, useConsent: this.useConsent || false, consentGiven: this.consentGiven || false,