From 8da6fdb7f10201b3f302a2e4ca16fbe79b9623d1 Mon Sep 17 00:00:00 2001 From: Sarika Vanapalli Date: Fri, 3 Oct 2025 17:06:25 -0500 Subject: [PATCH 1/5] feat: update sdk & collector packages with new viewId attribute --- .../storefront-events-collector/src/contexts/storefront.ts | 1 + packages/storefront-events-collector/src/schemas.ts | 2 +- packages/storefront-events-collector/src/types/contexts.d.ts | 1 + .../storefront-events-collector/tests/utils/mocks/context.ts | 3 +++ .../storefront-events-collector/tests/utils/mocks/dataLayer.ts | 1 + .../src/types/schemas/storefrontInstance.ts | 1 + packages/storefront-events-sdk/tests/mocks.ts | 1 + 7 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/storefront-events-collector/src/contexts/storefront.ts b/packages/storefront-events-collector/src/contexts/storefront.ts index 14500a15..750ab1c2 100644 --- a/packages/storefront-events-collector/src/contexts/storefront.ts +++ b/packages/storefront-events-collector/src/contexts/storefront.ts @@ -33,6 +33,7 @@ const createContext = (storefront?: StorefrontInstance): StorefrontContext => { websiteName: storefrontCtx.websiteName, websiteId: storefrontCtx.websiteId, storefrontTemplate: storefrontCtx.storefrontTemplate, + viewId: storefrontCtx.viewId, }; const context: StorefrontContext = { diff --git a/packages/storefront-events-collector/src/schemas.ts b/packages/storefront-events-collector/src/schemas.ts index 4543f0c4..fc0c8547 100644 --- a/packages/storefront-events-collector/src/schemas.ts +++ b/packages/storefront-events-collector/src/schemas.ts @@ -16,7 +16,7 @@ const schemas = { SEARCH_RESULT_SUGGESTION_SCHEMA_URL: "iglu:com.adobe.magento.entity/search-result-suggestion/jsonschema/1-0-1", SHOPPING_CART_SCHEMA_URL: "iglu:com.adobe.magento.entity/shopping-cart/jsonschema/3-0-0", SHOPPER_SCHEMA_URL: "iglu:com.adobe.magento.entity/shopper/jsonschema/1-0-0", - STOREFRONT_INSTANCE_SCHEMA_URL: "iglu:com.adobe.magento.entity/storefront-instance/jsonschema/3-0-2", + STOREFRONT_INSTANCE_SCHEMA_URL: "iglu:com.adobe.magento.entity/storefront-instance/jsonschema/3-0-3", }; export default schemas; diff --git a/packages/storefront-events-collector/src/types/contexts.d.ts b/packages/storefront-events-collector/src/types/contexts.d.ts index b0081adb..f7b7f865 100644 --- a/packages/storefront-events-collector/src/types/contexts.d.ts +++ b/packages/storefront-events-collector/src/types/contexts.d.ts @@ -225,6 +225,7 @@ type Storefront = { websiteId: number; websiteName: string; storefrontTemplate?: "Luma" | "EDS" | "Hyva" | "AEM CIF" | "Franklin" | "PWA Studio" | "Other"; + viewId?: string | null; }; type Tracker = { diff --git a/packages/storefront-events-collector/tests/utils/mocks/context.ts b/packages/storefront-events-collector/tests/utils/mocks/context.ts index 59e572b3..3b4ba21e 100644 --- a/packages/storefront-events-collector/tests/utils/mocks/context.ts +++ b/packages/storefront-events-collector/tests/utils/mocks/context.ts @@ -131,6 +131,7 @@ const mockStorefrontCtx = { websiteId: 333333, websiteName: "website", storefrontTemplate: "EDS", + viewId: "catalog-view-1", // catalog view identifier }; const mockCcdmStorefrontCtx = { @@ -150,6 +151,7 @@ const mockCcdmStorefrontCtx = { websiteCode: "", websiteId: 333333, websiteName: "website", + viewId: "category-electronics", // catalog view identifier //storefrontTemplate: "EDS", }; @@ -170,6 +172,7 @@ const mockCcdmStorefrontProcessedCtx = { websiteCode: "WEBSITE_CODE", websiteId: 333333, websiteName: "website", + viewId: "category-electronics", // catalog view identifier //storefrontTemplate: "EDS", }; diff --git a/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts b/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts index 89e20d4d..ad331909 100644 --- a/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts +++ b/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts @@ -344,6 +344,7 @@ const mockStorefront: StorefrontInstance = { websiteId: 333333, websiteName: "website", storefrontTemplate: "EDS", + viewId: "catalog-view-1", }; const mockShopper: Shopper = { diff --git a/packages/storefront-events-sdk/src/types/schemas/storefrontInstance.ts b/packages/storefront-events-sdk/src/types/schemas/storefrontInstance.ts index 1f78acab..fddd7c09 100644 --- a/packages/storefront-events-sdk/src/types/schemas/storefrontInstance.ts +++ b/packages/storefront-events-sdk/src/types/schemas/storefrontInstance.ts @@ -18,4 +18,5 @@ export type StorefrontInstance = { catalogExtensionVersion?: string | null; locale?: string | null; // this field should stay null storefrontTemplate?: "Luma" | "EDS" | "Hyva" | "AEM CIF" | "Franklin" | "PWA Studio" | "Other"; + viewId?: string | null; // catalog view identifier }; diff --git a/packages/storefront-events-sdk/tests/mocks.ts b/packages/storefront-events-sdk/tests/mocks.ts index 80282f58..ee9404e2 100644 --- a/packages/storefront-events-sdk/tests/mocks.ts +++ b/packages/storefront-events-sdk/tests/mocks.ts @@ -409,6 +409,7 @@ export const generateStorefrontInstanceContext = (overrides?: Partial Date: Mon, 6 Oct 2025 12:50:41 -0500 Subject: [PATCH 2/5] fix: update mock catalog view content --- .../tests/utils/mocks/context.ts | 6 +++--- packages/storefront-events-sdk/tests/mocks.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/storefront-events-collector/tests/utils/mocks/context.ts b/packages/storefront-events-collector/tests/utils/mocks/context.ts index 3b4ba21e..72e926b0 100644 --- a/packages/storefront-events-collector/tests/utils/mocks/context.ts +++ b/packages/storefront-events-collector/tests/utils/mocks/context.ts @@ -131,7 +131,7 @@ const mockStorefrontCtx = { websiteId: 333333, websiteName: "website", storefrontTemplate: "EDS", - viewId: "catalog-view-1", // catalog view identifier + viewId: "catalog-view-1", }; const mockCcdmStorefrontCtx = { @@ -151,7 +151,7 @@ const mockCcdmStorefrontCtx = { websiteCode: "", websiteId: 333333, websiteName: "website", - viewId: "category-electronics", // catalog view identifier + viewId: "catalog-view-1", //storefrontTemplate: "EDS", }; @@ -172,7 +172,7 @@ const mockCcdmStorefrontProcessedCtx = { websiteCode: "WEBSITE_CODE", websiteId: 333333, websiteName: "website", - viewId: "category-electronics", // catalog view identifier + viewId: "catalog-view-1", //storefrontTemplate: "EDS", }; diff --git a/packages/storefront-events-sdk/tests/mocks.ts b/packages/storefront-events-sdk/tests/mocks.ts index ee9404e2..f7d85150 100644 --- a/packages/storefront-events-sdk/tests/mocks.ts +++ b/packages/storefront-events-sdk/tests/mocks.ts @@ -409,7 +409,7 @@ export const generateStorefrontInstanceContext = (overrides?: Partial Date: Tue, 7 Oct 2025 13:09:38 -0500 Subject: [PATCH 3/5] chore: update storefront instance schema, mock & remove redundant warnings --- examples/events/example-contexts/mock-storefront-context.md | 6 ++---- examples/events/readme.md | 2 -- examples/events/snowplow-debugger/storefront-instance.json | 4 ++++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/events/example-contexts/mock-storefront-context.md b/examples/events/example-contexts/mock-storefront-context.md index 2b23f57f..c3902f4f 100644 --- a/examples/events/example-contexts/mock-storefront-context.md +++ b/examples/events/example-contexts/mock-storefront-context.md @@ -1,7 +1,4 @@ -## Storefront context - -> [!WARNING] -> `storeCode` and `storeViewCode` are required fields of the storefront context in all events. Beginning in 2025 any events without `storeCode` or `storeViewCode` will fail validation. +## Storefront context ### Used @@ -31,5 +28,6 @@ const mockStorefrontCtx = { baseCurrencyCode: "USD", storeViewCurrencyCode: "USD", storefrontTemplate: "Other", + viewId: "12345678-1234-1234-1234-123456789abc" }; ``` diff --git a/examples/events/readme.md b/examples/events/readme.md index 4ee7289b..c81c48da 100644 --- a/examples/events/readme.md +++ b/examples/events/readme.md @@ -1,6 +1,4 @@ ## Commerce events examples -> [!WARNING] -> `storeCode` and `storeViewCode` are required fields of the storefront context in all events. Beginning in 2025 any events without `storeCode` or `storeViewCode` will fail validation. ### Event purposes and usage diff --git a/examples/events/snowplow-debugger/storefront-instance.json b/examples/events/snowplow-debugger/storefront-instance.json index 0b7e82bc..fc6432f4 100644 --- a/examples/events/snowplow-debugger/storefront-instance.json +++ b/examples/events/snowplow-debugger/storefront-instance.json @@ -75,6 +75,10 @@ "storefrontTemplate": { "type": "string", "maxLength": 256 + }, + "viewId": { + "type": "string", + "maxLength": 256 } }, "additionalProperties": false, From 8e64d74296abaeadc6f858bfc11dd9c93f3d042b Mon Sep 17 00:00:00 2001 From: Sarika Vanapalli Date: Tue, 7 Oct 2025 13:10:09 -0500 Subject: [PATCH 4/5] chore: update catalog view id mocks --- .../tests/utils/mocks/context.ts | 6 +++--- .../tests/utils/mocks/dataLayer.ts | 2 +- packages/storefront-events-sdk/tests/mocks.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/storefront-events-collector/tests/utils/mocks/context.ts b/packages/storefront-events-collector/tests/utils/mocks/context.ts index 72e926b0..d5660913 100644 --- a/packages/storefront-events-collector/tests/utils/mocks/context.ts +++ b/packages/storefront-events-collector/tests/utils/mocks/context.ts @@ -131,7 +131,7 @@ const mockStorefrontCtx = { websiteId: 333333, websiteName: "website", storefrontTemplate: "EDS", - viewId: "catalog-view-1", + viewId: "12345678-1234-1234-1234-123456789abc", }; const mockCcdmStorefrontCtx = { @@ -151,7 +151,7 @@ const mockCcdmStorefrontCtx = { websiteCode: "", websiteId: 333333, websiteName: "website", - viewId: "catalog-view-1", + viewId: "12345678-1234-1234-1234-123456789abc", //storefrontTemplate: "EDS", }; @@ -172,7 +172,7 @@ const mockCcdmStorefrontProcessedCtx = { websiteCode: "WEBSITE_CODE", websiteId: 333333, websiteName: "website", - viewId: "catalog-view-1", + viewId: "12345678-1234-1234-1234-123456789abc", //storefrontTemplate: "EDS", }; diff --git a/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts b/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts index ad331909..a9e925d0 100644 --- a/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts +++ b/packages/storefront-events-collector/tests/utils/mocks/dataLayer.ts @@ -344,7 +344,7 @@ const mockStorefront: StorefrontInstance = { websiteId: 333333, websiteName: "website", storefrontTemplate: "EDS", - viewId: "catalog-view-1", + viewId: "12345678-1234-1234-1234-123456789abc", }; const mockShopper: Shopper = { diff --git a/packages/storefront-events-sdk/tests/mocks.ts b/packages/storefront-events-sdk/tests/mocks.ts index f7d85150..00b979fb 100644 --- a/packages/storefront-events-sdk/tests/mocks.ts +++ b/packages/storefront-events-sdk/tests/mocks.ts @@ -409,7 +409,7 @@ export const generateStorefrontInstanceContext = (overrides?: Partial Date: Wed, 8 Oct 2025 14:38:33 -0500 Subject: [PATCH 5/5] chore: update storefront context documentation --- .../events/example-contexts/mock-storefront-context.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/examples/events/example-contexts/mock-storefront-context.md b/examples/events/example-contexts/mock-storefront-context.md index c3902f4f..e10926a1 100644 --- a/examples/events/example-contexts/mock-storefront-context.md +++ b/examples/events/example-contexts/mock-storefront-context.md @@ -1,5 +1,13 @@ ## Storefront context +> [!NOTE] +> If you are using Adobe Commerce Optimizer (ACO), the `viewId` and `locale` fields are required in the storefront context. These correspond to the `AC-View-Id` and `AC-Source-Locale` header values respectively. +> +> For more information on these headers, see the [Adobe Commerce Services API documentation](https://developer.adobe.com/commerce/services/optimizer/merchandising-services/using-the-api/#headers). + +> [!TIP] +> If you are not using ACO, these fields can be left blank or null. + ### Used - all events @@ -8,6 +16,8 @@ [Storefront schema](../../../packages/storefront-events-sdk/src/types/schemas/storefrontInstance.ts) + + ### Mock data ```javascript