@faststore/core 4.5.0-dev.2 → 4.5.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/.turbo/turbo-generate.log +3 -3
  2. package/.turbo/turbo-test.log +81 -75
  3. package/@generated/gql.ts +6 -6
  4. package/@generated/graphql.ts +46 -7
  5. package/@generated/persisted-documents.json +2 -2
  6. package/@generated/schema.graphql +44 -5
  7. package/CHANGELOG.md +12 -0
  8. package/cms/faststore/components/cms_component__recommendationshelf.jsonc +7 -1
  9. package/cms/faststore/schema.json +7 -1
  10. package/discovery.config.default.js +0 -3
  11. package/package.json +6 -6
  12. package/src/Layout.tsx +4 -5
  13. package/src/components/sections/EmptyState/EmptyState.tsx +4 -3
  14. package/src/components/sections/RecommendationShelf/README.md +163 -0
  15. package/src/components/sections/RecommendationShelf/RecommendationShelf.tsx +3 -4
  16. package/src/components/sections/RecommendationShelf/RecommendationShelf.types.ts +8 -1
  17. package/src/components/templates/ProductListingPage/ProductListingPage.tsx +43 -37
  18. package/src/components/ui/Breadcrumb/Breadcrumb.tsx +5 -12
  19. package/src/components/ui/LocalizationButton/LocalizationButton.tsx +5 -1
  20. package/src/experimental/index.ts +2 -0
  21. package/src/pages/[...slug].tsx +5 -0
  22. package/src/pages/[slug]/p.tsx +63 -11
  23. package/src/sdk/analytics/hooks/useStartRecommendationSession.ts +38 -18
  24. package/src/sdk/analytics/utils/hasEnabledRecommendationShelf.ts +49 -0
  25. package/src/sdk/localization/LocalizedProductContext.tsx +65 -0
  26. package/src/sdk/localization/useBindingSelector.ts +148 -5
  27. package/src/server/index.ts +10 -1
  28. package/test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx +32 -45
  29. package/test/sdk/analytics/hasEnabledRecommendationShelf.test.ts +88 -0
  30. package/test/sdk/analytics/useStartRecommendationSession.test.ts +90 -15
  31. package/test/sdk/localization/useBindingSelector.test.tsx +144 -1
@@ -1,9 +1,9 @@
1
1
 
2
- > @faststore/core@4.5.0-dev.1 generate /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.0-dev.3 generate /home/runner/work/faststore/faststore/packages/core
3
3
  > pnpm run gen-types && pnpm run cache-graphql
4
4
 
5
5
 
6
- > @faststore/core@4.5.0-dev.1 gen-types /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@4.5.0-dev.3 gen-types /home/runner/work/faststore/faststore/packages/core
7
7
  > node ../cli/bin/run generate-types .
8
8
 
9
9
  [STARTED] Parse Configuration
@@ -19,7 +19,7 @@
19
19
  [COMPLETED] Generate to /home/runner/work/faststore/faststore/packages/core/@generated/
20
20
  [COMPLETED] Generate outputs
21
21
 
22
- > @faststore/core@4.5.0-dev.1 cache-graphql /home/runner/work/faststore/faststore/packages/core
22
+ > @faststore/core@4.5.0-dev.3 cache-graphql /home/runner/work/faststore/faststore/packages/core
23
23
  > node ../cli/bin/run cache-graphql --config=./discovery.config.default.js --queries=./@generated/persisted-documents.json
24
24
 
25
25
  [Info] - Config file location: /home/runner/work/faststore/faststore/packages/core/discovery.config.default.js
@@ -1,11 +1,11 @@
1
1
 
2
- > @faststore/core@4.5.0-dev.1 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@4.5.0-dev.3 test /home/runner/work/faststore/faststore/packages/core
3
3
  > vitest run
4
4
 
5
5
 
6
6
   RUN  v4.0.7 /home/runner/work/faststore/faststore/packages/core
7
7
 
8
- ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 69ms
8
+ ✓  browser  test/sdk/session/reconcileSessionLocale.browser.test.ts (5 tests) 46ms
9
9
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx
10
10
  Error in optimistic validation: TypeError: Failed to parse URL from /api/graphql?operationName=ValidateCartMutation&operationHash=32c15f8888ca34f223def7972b7f19090808435a
11
11
   at node:internal/deps/undici/undici:16416:13
@@ -35,10 +35,12 @@
35
35
  stderr | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx > RecommendationShelf > renders nothing when there is an error
36
36
  Error fetching recommendations undefined boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
37
37
 
38
- ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 262ms
39
- ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2295ms
40
- ✓ shows an error state when the list fails to load  590ms
41
- ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  317ms
38
+ ✓  browser  test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx (8 tests) 309ms
39
+ ✓  browser  test/components/account/ContractSwitcher.browser.test.tsx (13 tests) 2605ms
40
+ ✓ shows an error state when the list fails to load  686ms
41
+ ✓ requires selecting a contract before Confirm is enabled, then switches (REQ-03)  330ms
42
+ ✓ keeps Confirm disabled when the selected contract is filtered out  325ms
43
+ ✓ does not reload when the switch returns false  309ms
42
44
  stderr | test/pages/password-protection.browser.test.tsx > PasswordProtectionLogin > posts the password and redirects to the requested return path
43
45
  Warning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
44
46
 
@@ -268,14 +270,15 @@ act(() => {
268
270
  This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act
269
271
  at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
270
272
 
271
- ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 1629ms
272
- ✓ renders the password protection form  896ms
273
- ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 38ms
274
- ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 82ms
275
- ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 1855ms
276
- ✓ renders the menu view with contract details and manage footer  959ms
277
- ✓ opens the contract switcher and returns to the menu on back  369ms
278
- ✓ resets to the menu when the drawer closes  318ms
273
+ ✓  browser  test/pages/password-protection.browser.test.tsx (6 tests) 2426ms
274
+ ✓ renders the password protection form  917ms
275
+ ✓ posts the password and redirects to the requested return path  368ms
276
+ ✓ defaults returnTo to root and shows API validation errors  312ms
277
+ ✓  browser  test/sdk/session/getInitialSession.browser.test.ts (6 tests) 47ms
278
+ ✓  browser  test/components/account/OrganizationDrawer.browser.test.tsx (5 tests) 2196ms
279
+ ✓ renders the menu view with contract details and manage footer  1127ms
280
+ ✓ opens the contract switcher and returns to the menu on back  383ms
281
+ ✓ resets to the menu when the drawer closes  366ms
279
282
  stderr | test/sdk/localization/store-url.browser.test.ts
280
283
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
281
284
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -283,9 +286,9 @@ This ensures that you're testing the behavior the user would see in the browser.
283
286
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
284
287
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
285
288
 
286
- ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 11ms
287
- ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 112ms
288
- ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 101ms
289
+ ✓  browser  test/sdk/account/changeContractToken.browser.test.ts (9 tests) 76ms
290
+ ✓  browser  test/sdk/localization/store-url.browser.test.ts (3 tests) 31ms
291
+ ✓  browser  test/sdk/account/useAvailableContracts.browser.test.ts (6 tests) 63ms
289
292
  stderr | test/components/account/doLogout.browser.test.ts
290
293
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
291
294
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -293,9 +296,8 @@ This ensures that you're testing the behavior the user would see in the browser.
293
296
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
294
297
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
295
298
 
296
- ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 42ms
297
- ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 304ms
298
- ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 280ms
299
+ ✓  browser  test/sdk/account/useSwitchContract.browser.test.ts (4 tests) 175ms
300
+ ✓  browser  test/components/account/doLogout.browser.test.ts (1 test) 80ms
299
301
  stderr | test/sdk/account/clearPersistedSessionState.browser.test.ts
300
302
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
301
303
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -303,10 +305,12 @@ This ensures that you're testing the behavior the user would see in the browser.
303
305
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
304
306
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
305
307
 
306
- ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 7ms
307
- ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 5ms
308
- ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 31ms
308
+ ✓  browser  test/components/account/OrganizationDrawerHeader.browser.test.tsx (3 tests) 311ms
309
+ ✓  browser  test/sdk/account/clearPersistedSessionState.browser.test.ts (1 test) 10ms
310
+ ✓  browser  test/components/account/OrganizationDrawerFooter.browser.test.tsx (3 tests) 344ms
311
+ ✓  browser  test/utils/isLocalHost.browser.test.ts (3 tests) 4ms
309
312
  ✓  browser  test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts (1 test) 3ms
313
+ ✓  node  test/utils/localization/bindingPaths.test.ts (71 tests) 35ms
310
314
  stderr | test/sdk/account/refreshToken.browser.test.ts
311
315
  Error in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
312
316
  at validateCart (/home/runner/work/faststore/faststore/packages/core/src/sdk/cart/index.ts:119:27)
@@ -314,11 +318,12 @@ This ensures that you're testing the behavior the user would see in the browser.
314
318
  at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
315
319
   at processTicksAndRejections (node:internal/process/task_queues:103:5)
316
320
 
317
- ✓  node  test/utils/match-url.test.ts (10 tests) 8ms
318
- ✓  node  test/server/password-protection-service.test.ts (22 tests) 29ms
319
- ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 6ms
320
- ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 9ms
321
- ✓  node  test/pages/api/unlock.test.ts (15 tests) 202ms
321
+ ✓  browser  test/sdk/account/refreshToken.browser.test.ts (1 test) 4ms
322
+ ✓  node  test/server/password-protection-service.test.ts (22 tests) 33ms
323
+ ✓  node  test/utils/match-url.test.ts (10 tests) 10ms
324
+ ✓  node  test/sdk/localization/useBindingSelector.test.tsx (22 tests) 17ms
325
+ ✓  node  test/pages/api/unlock.test.ts (15 tests) 226ms
326
+ ✓  node  test/sdk/localization/bindingSelector.test.ts (18 tests) 8ms
322
327
  stderr | test/components/search/SearchInputComponent.test.tsx
323
328
  Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
324
329
 
@@ -382,23 +387,22 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
382
387
  at Suspense
383
388
  at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
384
389
 
385
- ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 85ms
386
- ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 16ms
387
- ✓  node  test/sdk/localization/useBindingSelector.test.tsx (12 tests) 11ms
388
- ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 58ms
390
+ ✓  node  test/components/search/SearchInputComponent.test.tsx (6 tests) 66ms
391
+ ✓  node  test/utils/cookieCacheBusting.test.ts (10 tests) 15ms
392
+ ✓  node  test/sdk/search/useSearchHistory.test.ts (13 tests) 73ms
389
393
  ✓  node  test/utils/clearCookies.test.ts (20 tests) 28ms
390
- ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 367ms
394
+ ✓  node  test/components/quotes/MyAccountListQuotesTable.test.tsx (12 tests) 378ms
391
395
  stderr | test/sdk/account/useSetPassword.test.ts > useSetPassword > maps wrongcredentials error responses to the existing message
392
396
  Set password request failed: Bad Request
393
397
 
394
- ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 29ms
395
- ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 27ms
396
- ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 5ms
397
- ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 851ms
398
- ✓ navigates with the search term on blur  360ms
399
- ✓ navigates without a label param when the search is cleared  364ms
400
- ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 5ms
401
- ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 45ms
398
+ ✓  node  test/sdk/account/useSetPassword.test.ts (6 tests) 34ms
399
+ ✓  node  test/components/quotes/quoteFilters.test.ts (23 tests) 28ms
400
+ ✓  node  test/utils/multipleTemplates.test.ts (8 tests) 6ms
401
+ ✓  node  test/components/quotes/MyAccountListQuotes.test.tsx (9 tests) 815ms
402
+ ✓ navigates with the search term on blur  358ms
403
+ ✓ navigates without a label param when the search is cleared  359ms
404
+ ✓  node  test/utils/localization/localizeRedirectDestination.test.ts (11 tests) 8ms
405
+ ✓  node  test/sdk/orderEntry/useOrderEntryOperation.test.ts (8 tests) 31ms
402
406
  stderr | test/pages/api/graphql.test.ts > /api/graphql error status propagation > propagates the upstream 400 from a wrapped BadRequestError instead of 500
403
407
  Graphql execution returned with error: [
404
408
  {
@@ -445,46 +449,48 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
445
449
  { message: 'bad', status: 400, type: 'BadRequestError' }
446
450
  ]
447
451
 
448
- ✓  node  test/pages/api/graphql.test.ts (10 tests) 29ms
449
- ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 52ms
450
- ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 47ms
451
- ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 188ms
452
- ✓  node  test/proxy.localization.test.ts (5 tests) 69ms
453
- ✓  node  test/server/index.test.ts (7 tests) 956ms
454
- ✓ should handle options and execute  466ms
455
- ✓  node  test/proxy.test.ts (4 tests) 52ms
456
- ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 102ms
457
- ✓  node  test/server/webops-api.test.ts (9 tests) 26ms
458
- ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 49ms
459
- ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 7ms
460
- ✓  node  test/server/cms/global.test.ts (3 tests) 6ms
461
- ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (8 tests) 11ms
462
- ✓  node  test/server/content/service.test.ts (5 tests) 4ms
463
- ✓  node  test/sdk/localization/store-url.test.ts (1 test) 4ms
464
- ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 35ms
465
- ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 7ms
466
- ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 132ms
452
+ ✓  node  test/pages/api/graphql.test.ts (10 tests) 26ms
453
+ ✓  node  test/sdk/orderEntry/useOrderEntryUpload.test.ts (8 tests) 37ms
454
+ ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (6 tests) 58ms
455
+ ✓  node  test/components/quotes/MyAccountQuotesFilterSlider.test.tsx (5 tests) 137ms
456
+ ✓  node  test/proxy.localization.test.ts (5 tests) 76ms
457
+ ✓  node  test/sdk/orderEntry/useOrderEntry.test.ts (8 tests) 29ms
458
+ ✓  node  test/server/index.test.ts (7 tests) 1078ms
459
+ ✓ should return a valid merged GraphQL schema  324ms
460
+ ✓ should handle options and execute  527ms
461
+ ✓  node  test/proxy.test.ts (4 tests) 38ms
462
+ ✓  node  test/server/webops-api.test.ts (9 tests) 21ms
463
+ ✓  node  test/components/quotes/MyAccountQuotesSelectedTags.test.tsx (8 tests) 117ms
464
+ ✓  node  test/sdk/account/refreshToken.test.ts (5 tests) 8ms
465
+ ✓  node  test/server/content/service.test.ts (5 tests) 5ms
466
+ ✓  node  test/server/cms/global.test.ts (3 tests) 5ms
467
+ ✓  node  test/sdk/orderEntry/useOrderFormItems.test.ts (7 tests) 45ms
468
+ ✓  node  test/sdk/account/getMyAccountRoutes.test.ts (8 tests) 8ms
469
+ ✓  node  test/sdk/localization/store-url.test.ts (1 test) 5ms
470
+ ✓  node  test/sdk/analytics/hasEnabledRecommendationShelf.test.ts (6 tests) 5ms
471
+ ✓  node  test/utils/getRequestHostname.test.ts (12 tests) 6ms
472
+ ✓  node  test/sdk/auth/useAuth.test.ts (5 tests) 24ms
473
+ ✓  node  test/components/quotes/MyAccountQuotesStatusSelector.test.tsx (6 tests) 151ms
474
+ ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 6ms
467
475
  ✓  node  test/pages/api/preview.test.ts (2 tests) 10ms
468
476
  ✓  node  test/components/search/SearchInput.test.ts (6 tests) 9ms
469
- ✓  node  test/utils/validateSessionRefreshToken.test.ts (6 tests) 4ms
470
- ✓  node  test/sdk/analytics/useStartRecommendationSession.test.ts (3 tests) 24ms
471
477
  ✓  node  test/components/RecommendationShelf/vrn.test.ts (5 tests) 6ms
472
- ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 188ms
473
478
  ✓  node  test/server/cms/index.test.ts (2 tests) 6ms
474
- ✓  node  test/components/account/Layout.test.tsx (4 tests) 58ms
475
- ✓  node  test/utils/retry.test.ts (5 tests) 14ms
476
- ✓  node  test/utils/unlockResponse.test.ts (11 tests) 6ms
477
- ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 4ms
479
+ ✓  node  test/utils/retry.test.ts (5 tests) 13ms
480
+ ✓  node  test/components/RecommendationShelf/useRecommendationUserId.test.ts (4 tests) 195ms
481
+ ✓  node  test/components/account/Layout.test.tsx (4 tests) 55ms
482
+ ✓  node  test/utils/unlockResponse.test.ts (11 tests) 7ms
483
+ ✓  node  test/components/RecommendationShelf/useRecommendations.test.ts (2 tests) 5ms
478
484
  ✓  node  test/utils/isLocalHost.test.ts (7 tests) 5ms
479
485
  ✓  node  test/utils/userOrderStatus.test.ts (3 tests) 5ms
480
- ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 50ms
481
- ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 4ms
486
+ ✓  node  test/components/account/OrganizationDrawerBody.test.tsx (3 tests) 42ms
487
+ ✓  node  test/sdk/analytics/utils.test.ts (2 tests) 3ms
482
488
  ✓  node  test/components/auth/ProfileChallenge.test.tsx (3 tests) 45ms
483
- ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 11ms
484
- ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 25ms
489
+ ✓  node  test/sdk/account/clearPersistedSessionState.test.ts (1 test) 13ms
490
+ ✓  node  test/components/quotes/MyAccountQuoteStatusBadge.test.tsx (2 tests) 27ms
485
491
 
486
-  Test Files  70 passed (70)
487
-  Tests  539 passed (539)
488
-  Start at  17:59:07
489
-  Duration  37.30s (transform 8.94s, setup 0ms, collect 30.71s, tests 11.16s, environment 50.12s, prepare 1.24s)
492
+  Test Files  71 passed (71)
493
+  Tests  558 passed (558)
494
+  Start at  22:14:55
495
+  Duration  38.19s (transform 8.70s, setup 0ms, collect 29.56s, tests 12.87s, environment 50.72s, prepare 1.34s)
490
496
 
package/@generated/gql.ts CHANGED
@@ -30,8 +30,8 @@ type Documents = {
30
30
  "\n fragment ServerCollectionPage on Query {\n collection(slug: $slug) {\n id\n }\n }\n": typeof types.ServerCollectionPageFragmentDoc,
31
31
  "\n fragment ServerProduct on Query {\n product(locator: $locator) {\n id: productID\n }\n }\n": typeof types.ServerProductFragmentDoc,
32
32
  "\n query ServerAccountPageQuery {\n accountProfile {\n name\n }\n }\n": typeof types.ServerAccountPageQueryDocument,
33
- "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n }\n": typeof types.ServerCollectionPageQueryDocument,
34
- "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": typeof types.ServerProductQueryDocument,
33
+ "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n otherLocales {\n locale\n slug\n }\n }\n }\n": typeof types.ServerCollectionPageQueryDocument,
34
+ "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n otherLocales {\n locale\n slug\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": typeof types.ServerProductQueryDocument,
35
35
  "\n fragment UserOrderItemsFragment on UserOrderItems {\n id\n name\n quantity\n sellingPrice\n unitMultiplier\n measurementUnit\n imageUrl\n detailUrl\n refId\n rewardValue\n }\n": typeof types.UserOrderItemsFragmentFragmentDoc,
36
36
  "\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n creationDate\n status\n canProcessOrderAuthorization\n statusDescription\n allowCancellation\n ruleForAuthorization {\n orderAuthorizationId\n dimensionId\n rule {\n id\n name\n status\n doId\n authorizedEmails\n priority\n trigger {\n condition {\n conditionType\n description\n lessThan\n greatherThan\n expression\n }\n effect {\n description\n effectType\n funcPath\n }\n }\n timeout\n notification\n scoreInterval {\n accept\n deny\n }\n authorizationData {\n requireAllApprovals\n authorizers {\n id\n email\n type\n authorizationDate\n }\n }\n isUserAuthorized\n isUserNextAuthorizer\n }\n }\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n uniqueId\n name\n quantity\n price\n sellingPrice\n imageUrl\n tax\n taxPriceTagsTotal\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n shopper {\n firstName\n lastName\n email\n phone\n }\n budgetData {\n budgets {\n id\n name\n balance {\n remaining\n }\n allocations {\n id\n linkedEntity {\n id\n }\n reservations\n }\n }\n }\n }\n accountProfile {\n name\n }\n }\n": typeof types.ServerOrderDetailsQueryDocument,
37
37
  "\n query ServerListOrdersQuery ($page: Int,$perPage: Int, $status: [String], $dateInitial: String, $dateFinal: String, $text: String, $clientEmail: String, $pendingMyApproval: Boolean) {\n listUserOrders (page: $page, perPage: $perPage, status: $status, dateInitial: $dateInitial, dateFinal: $dateFinal, text: $text, clientEmail: $clientEmail, pendingMyApproval: $pendingMyApproval) {\n list {\n orderId\n creationDate\n clientName\n items {\n seller\n quantity\n description\n ean\n refId\n id\n productId\n sellingPrice\n price\n }\n totalValue\n status\n statusDescription\n ShippingEstimatedDate\n currencyCode\n customFields {\n type\n value\n }\n }\n paging {\n total\n pages\n currentPage\n perPage\n }\n }\n accountProfile {\n name\n }\n }\n": typeof types.ServerListOrdersQueryDocument,
@@ -82,8 +82,8 @@ const documents: Documents = {
82
82
  "\n fragment ServerCollectionPage on Query {\n collection(slug: $slug) {\n id\n }\n }\n": types.ServerCollectionPageFragmentDoc,
83
83
  "\n fragment ServerProduct on Query {\n product(locator: $locator) {\n id: productID\n }\n }\n": types.ServerProductFragmentDoc,
84
84
  "\n query ServerAccountPageQuery {\n accountProfile {\n name\n }\n }\n": types.ServerAccountPageQueryDocument,
85
- "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n }\n": types.ServerCollectionPageQueryDocument,
86
- "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": types.ServerProductQueryDocument,
85
+ "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n otherLocales {\n locale\n slug\n }\n }\n }\n": types.ServerCollectionPageQueryDocument,
86
+ "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n otherLocales {\n locale\n slug\n }\n\n ...ProductDetailsFragment_product\n }\n }\n": types.ServerProductQueryDocument,
87
87
  "\n fragment UserOrderItemsFragment on UserOrderItems {\n id\n name\n quantity\n sellingPrice\n unitMultiplier\n measurementUnit\n imageUrl\n detailUrl\n refId\n rewardValue\n }\n": types.UserOrderItemsFragmentFragmentDoc,
88
88
  "\n query ServerOrderDetailsQuery($orderId: String!) {\n userOrder(orderId: $orderId) {\n orderId\n creationDate\n status\n canProcessOrderAuthorization\n statusDescription\n allowCancellation\n ruleForAuthorization {\n orderAuthorizationId\n dimensionId\n rule {\n id\n name\n status\n doId\n authorizedEmails\n priority\n trigger {\n condition {\n conditionType\n description\n lessThan\n greatherThan\n expression\n }\n effect {\n description\n effectType\n funcPath\n }\n }\n timeout\n notification\n scoreInterval {\n accept\n deny\n }\n authorizationData {\n requireAllApprovals\n authorizers {\n id\n email\n type\n authorizationDate\n }\n }\n isUserAuthorized\n isUserNextAuthorizer\n }\n }\n storePreferencesData {\n currencyCode\n }\n clientProfileData {\n firstName\n lastName\n email\n phone\n corporateName\n isCorporate\n }\n customFields {\n type\n id\n fields {\n name\n value\n refId\n }\n }\n deliveryOptionsData {\n deliveryOptions {\n selectedSla\n deliveryChannel\n deliveryCompany\n deliveryWindow {\n startDateUtc\n endDateUtc\n price\n }\n shippingEstimate\n shippingEstimateDate\n friendlyShippingEstimate\n friendlyDeliveryOptionName\n seller\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n pickupStoreInfo {\n additionalInfo\n address {\n addressType\n receiverName\n addressId\n versionId\n entityId\n postalCode\n city\n state\n country\n street\n number\n neighborhood\n complement\n reference\n geoCoordinates\n }\n dockId\n friendlyName\n isPickupStore\n }\n quantityOfDifferentItems\n total\n items {\n id\n uniqueId\n name\n quantity\n price\n sellingPrice\n imageUrl\n tax\n taxPriceTagsTotal\n total\n }\n }\n contact {\n email\n phone\n name\n }\n }\n paymentData {\n transactions {\n isActive\n payments {\n id\n paymentSystemName\n value\n installments\n referenceValue\n lastDigits\n url\n group\n tid\n connectorResponses {\n authId\n }\n bankIssuedInvoiceIdentificationNumber\n redemptionCode\n paymentOrigin\n }\n }\n }\n totals {\n id\n name\n value\n }\n shopper {\n firstName\n lastName\n email\n phone\n }\n budgetData {\n budgets {\n id\n name\n balance {\n remaining\n }\n allocations {\n id\n linkedEntity {\n id\n }\n reservations\n }\n }\n }\n }\n accountProfile {\n name\n }\n }\n": types.ServerOrderDetailsQueryDocument,
89
89
  "\n query ServerListOrdersQuery ($page: Int,$perPage: Int, $status: [String], $dateInitial: String, $dateFinal: String, $text: String, $clientEmail: String, $pendingMyApproval: Boolean) {\n listUserOrders (page: $page, perPage: $perPage, status: $status, dateInitial: $dateInitial, dateFinal: $dateFinal, text: $text, clientEmail: $clientEmail, pendingMyApproval: $pendingMyApproval) {\n list {\n orderId\n creationDate\n clientName\n items {\n seller\n quantity\n description\n ean\n refId\n id\n productId\n sellingPrice\n price\n }\n totalValue\n status\n statusDescription\n ShippingEstimatedDate\n currencyCode\n customFields {\n type\n value\n }\n }\n paging {\n total\n pages\n currentPage\n perPage\n }\n }\n accountProfile {\n name\n }\n }\n": types.ServerListOrdersQueryDocument,
@@ -182,11 +182,11 @@ export function gql(source: "\n query ServerAccountPageQuery {\n accountProf
182
182
  /**
183
183
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
184
184
  */
185
- export function gql(source: "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n }\n"): typeof import('./graphql').ServerCollectionPageQueryDocument;
185
+ export function gql(source: "\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n otherLocales {\n locale\n slug\n }\n }\n }\n"): typeof import('./graphql').ServerCollectionPageQueryDocument;
186
186
  /**
187
187
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
188
188
  */
189
- export function gql(source: "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n"): typeof import('./graphql').ServerProductQueryDocument;
189
+ export function gql(source: "\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n otherLocales {\n locale\n slug\n }\n\n ...ProductDetailsFragment_product\n }\n }\n"): typeof import('./graphql').ServerProductQueryDocument;
190
190
  /**
191
191
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
192
192
  */
@@ -1292,6 +1292,11 @@ export type StoreCollection = {
1292
1292
  id: Scalars['ID']['output'];
1293
1293
  /** Collection meta information. Used for search. */
1294
1294
  meta: StoreCollectionMeta;
1295
+ /**
1296
+ * Localized versions of this collection for all available locales.
1297
+ * Only populated when localization is enabled.
1298
+ */
1299
+ otherLocales: Maybe<Array<StoreCollectionLocale>>;
1295
1300
  /** Meta tag data. */
1296
1301
  seo: StoreSeo;
1297
1302
  /** Corresponding collection URL slug, with which to retrieve this entity. */
@@ -1324,25 +1329,46 @@ export type StoreCollectionFacet = {
1324
1329
  value: Scalars['String']['output'];
1325
1330
  };
1326
1331
 
1332
+ /** Localized collection data for a specific locale. */
1333
+ export type StoreCollectionLocale = {
1334
+ /** Locale code (e.g. "pt-BR", "it-IT"). */
1335
+ locale: Scalars['String']['output'];
1336
+ /** Localized collection slug (e.g. "vestuario/camisetas"). */
1337
+ slug: Scalars['String']['output'];
1338
+ };
1339
+
1327
1340
  /** Collection meta information. Used for search. */
1328
1341
  export type StoreCollectionMeta = {
1329
1342
  /** List of selected collection facets. */
1330
1343
  selectedFacets: Array<StoreCollectionFacet>;
1331
1344
  };
1332
1345
 
1333
- /** Product collection type. Possible values are `Department`, `Category`, `Brand`, `Cluster`, `SubCategory` or `Collection`. */
1346
+ /**
1347
+ * Product collection type. Possible values are `Department`, `Category`, `Brand` or `Collection`.
1348
+ *
1349
+ * `SubCategory` and `Cluster` are still declared for backward compatibility but are
1350
+ * deprecated and never returned.
1351
+ */
1334
1352
  export type StoreCollectionType =
1335
1353
  /** Product brand. */
1336
1354
  | 'Brand'
1337
1355
  /** Second level of product categorization. */
1338
1356
  | 'Category'
1339
- /** Product cluster. */
1357
+ /**
1358
+ * Product cluster.
1359
+ *
1360
+ * Deprecated: never returned — clusters resolve as `Collection`.
1361
+ */
1340
1362
  | 'Cluster'
1341
1363
  /** Product collection. */
1342
1364
  | 'Collection'
1343
1365
  /** First level of product categorization. */
1344
1366
  | 'Department'
1345
- /** Third level of product categorization. */
1367
+ /**
1368
+ * Third level of product categorization.
1369
+ *
1370
+ * Deprecated: never returned — third-level categories resolve as `Category`.
1371
+ */
1346
1372
  | 'SubCategory';
1347
1373
 
1348
1374
  /** A commercial contract available to a buyer's Organization Unit. */
@@ -1604,6 +1630,11 @@ export type StoreProduct = {
1604
1630
  name: Scalars['String']['output'];
1605
1631
  /** Aggregate offer information. */
1606
1632
  offers: StoreAggregateOffer;
1633
+ /**
1634
+ * Localized versions of this product for all available locales.
1635
+ * Only populated when localization is enabled.
1636
+ */
1637
+ otherLocales: Maybe<Array<StoreProductLocale>>;
1607
1638
  /** Product ID, such as [ISBN](https://www.isbn-international.org/content/what-isbn) or similar global IDs. */
1608
1639
  productID: Scalars['String']['output'];
1609
1640
  /** The product's release date. Formatted using https://en.wikipedia.org/wiki/ISO_8601 */
@@ -1665,6 +1696,14 @@ export type StoreProductGroup = {
1665
1696
  skuVariants: Maybe<SkuVariants>;
1666
1697
  };
1667
1698
 
1699
+ /** Localized product data for a specific locale. */
1700
+ export type StoreProductLocale = {
1701
+ /** Locale code (e.g. "pt-BR", "it-IT"). */
1702
+ locale: Scalars['String']['output'];
1703
+ /** Localized product slug including the SKU ID suffix (e.g. "adidas-polo-uomo-65"). */
1704
+ slug: Scalars['String']['output'];
1705
+ };
1706
+
1668
1707
  /** Properties that can be associated with products and products groups. */
1669
1708
  export type StorePropertyValue = {
1670
1709
  /** Property name. */
@@ -2713,14 +2752,14 @@ export type ServerCollectionPageQueryQueryVariables = Exact<{
2713
2752
  }>;
2714
2753
 
2715
2754
 
2716
- export type ServerCollectionPageQueryQuery = { collection: { id: string, seo: { title: string, description: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, meta: { selectedFacets: Array<{ key: string, value: string }> } } };
2755
+ export type ServerCollectionPageQueryQuery = { collection: { id: string, seo: { title: string, description: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, meta: { selectedFacets: Array<{ key: string, value: string }> }, otherLocales: Array<{ locale: string, slug: string }> | null } };
2717
2756
 
2718
2757
  export type ServerProductQueryQueryVariables = Exact<{
2719
2758
  locator: Array<IStoreSelectedFacet> | IStoreSelectedFacet;
2720
2759
  }>;
2721
2760
 
2722
2761
 
2723
- export type ServerProductQueryQuery = { product: { sku: string, gtin: string, mpn: string, name: string, description: string, releaseDate: string, unitMultiplier: number | null, id: string, seo: { title: string, description: string, canonical: string }, brand: { name: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, image: Array<{ url: string, alternateName: string }>, offers: { lowPrice: number, highPrice: number, lowPriceWithTaxes: number, priceCurrency: string, offers: Array<{ availability: string, price: number, priceValidUntil: string, priceCurrency: string, itemCondition: string, priceWithTaxes: number, listPrice: number, listPriceWithTaxes: number, quantity: number, seller: { identifier: string } }> }, isVariantOf: { name: string, productGroupID: string, skuVariants: { activeVariations: any | null, slugsMap: any | null, availableVariations: any | null, allVariantProducts: Array<{ name: string, productID: string }> | null } | null }, additionalProperty: Array<{ propertyID: string, name: string, value: any, valueReference: any }> } };
2762
+ export type ServerProductQueryQuery = { product: { sku: string, gtin: string, mpn: string, name: string, description: string, releaseDate: string, unitMultiplier: number | null, id: string, seo: { title: string, description: string, canonical: string }, brand: { name: string }, breadcrumbList: { itemListElement: Array<{ item: string, name: string, position: number }> }, image: Array<{ url: string, alternateName: string }>, offers: { lowPrice: number, highPrice: number, lowPriceWithTaxes: number, priceCurrency: string, offers: Array<{ availability: string, price: number, priceValidUntil: string, priceCurrency: string, itemCondition: string, priceWithTaxes: number, listPrice: number, listPriceWithTaxes: number, quantity: number, seller: { identifier: string } }> }, isVariantOf: { name: string, productGroupID: string, skuVariants: { activeVariations: any | null, slugsMap: any | null, availableVariations: any | null, allVariantProducts: Array<{ name: string, productID: string }> | null } | null }, otherLocales: Array<{ locale: string, slug: string }> | null, additionalProperty: Array<{ propertyID: string, name: string, value: any, valueReference: any }> } };
2724
2763
 
2725
2764
  export type UserOrderItemsFragmentFragment = { id: string | null, name: string | null, quantity: number | null, sellingPrice: number | null, unitMultiplier: number | null, measurementUnit: string | null, imageUrl: string | null, detailUrl: string | null, refId: string | null, rewardValue: number | null };
2726
2765
 
@@ -3499,8 +3538,8 @@ export const SearchEvent_MetadataFragmentDoc = new TypedDocumentString(`
3499
3538
  `, {"fragmentName":"SearchEvent_metadata"}) as unknown as TypedDocumentString<SearchEvent_MetadataFragment, unknown>;
3500
3539
  export const ClientRecommendationsQueryDocument = {"__meta__":{"operationName":"ClientRecommendationsQuery","operationHash":"db61ca57203036d24d5e1e2c9e40d6d0906f0056"}} as unknown as TypedDocumentString<ClientRecommendationsQueryQuery, ClientRecommendationsQueryQueryVariables>;
3501
3540
  export const ServerAccountPageQueryDocument = {"__meta__":{"operationName":"ServerAccountPageQuery","operationHash":"9baae331b75848a310fecb457e8c971ae27897ff"}} as unknown as TypedDocumentString<ServerAccountPageQueryQuery, ServerAccountPageQueryQueryVariables>;
3502
- export const ServerCollectionPageQueryDocument = {"__meta__":{"operationName":"ServerCollectionPageQuery","operationHash":"4b33c5c07f440dc7489e55619dc2211a13786e72"}} as unknown as TypedDocumentString<ServerCollectionPageQueryQuery, ServerCollectionPageQueryQueryVariables>;
3503
- export const ServerProductQueryDocument = {"__meta__":{"operationName":"ServerProductQuery","operationHash":"f03d0963fed159ac4bbe11f90ea09c635a66b68c"}} as unknown as TypedDocumentString<ServerProductQueryQuery, ServerProductQueryQueryVariables>;
3541
+ export const ServerCollectionPageQueryDocument = {"__meta__":{"operationName":"ServerCollectionPageQuery","operationHash":"d46841b30ae1f6350021b5cf02f253d56c848664"}} as unknown as TypedDocumentString<ServerCollectionPageQueryQuery, ServerCollectionPageQueryQueryVariables>;
3542
+ export const ServerProductQueryDocument = {"__meta__":{"operationName":"ServerProductQuery","operationHash":"c51aaec5d4ed39e5b8d7d65f460fcd2bc8645346"}} as unknown as TypedDocumentString<ServerProductQueryQuery, ServerProductQueryQueryVariables>;
3504
3543
  export const ServerOrderDetailsQueryDocument = {"__meta__":{"operationName":"ServerOrderDetailsQuery","operationHash":"bdf677bbccce12186a5ef15aebdce46585a99782"}} as unknown as TypedDocumentString<ServerOrderDetailsQueryQuery, ServerOrderDetailsQueryQueryVariables>;
3505
3544
  export const ServerListOrdersQueryDocument = {"__meta__":{"operationName":"ServerListOrdersQuery","operationHash":"70d06de1da9c11f10ebde31b66fd74eccd456af5"}} as unknown as TypedDocumentString<ServerListOrdersQueryQuery, ServerListOrdersQueryQueryVariables>;
3506
3545
  export const ServerProfileQueryDocument = {"__meta__":{"operationName":"ServerProfileQuery","operationHash":"672fe0f00b7b710b63fc6573c0a6b2ec54812b8f"}} as unknown as TypedDocumentString<ServerProfileQueryQuery, ServerProfileQueryQueryVariables>;
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "db61ca57203036d24d5e1e2c9e40d6d0906f0056": "fragment ProductSummary_product on StoreProduct { additionalProperty { name propertyID value valueReference } advertisement { adId adResponseId } brand { brandName: name } brand { name } deliveryPromiseBadges { typeName } gtin hasSpecifications image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantsByName availableVariations slugsMap } } isVariantOf { name productGroupID skuVariants { activeVariations allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } } id: productID sku slug unitMultiplier unitMultiplier } query ClientRecommendationsQuery($campaignVrn: String!, $products: [String!], $userId: String) { recommendations(userId: $userId, campaignVrn: $campaignVrn, products: $products) { campaign { id title type } correlationId products { ...ProductSummary_product } } }",
3
3
  "9baae331b75848a310fecb457e8c971ae27897ff": "query ServerAccountPageQuery { accountProfile { name } }",
4
- "4b33c5c07f440dc7489e55619dc2211a13786e72": "fragment ServerCollectionPage on Query { collection(slug: $slug) { id } } query ServerCollectionPageQuery($slug: String!) { collection(slug: $slug) { breadcrumbList { itemListElement { item name position } } meta { selectedFacets { key value } } seo { description title } } ...ServerCollectionPage }",
5
- "f03d0963fed159ac4bbe11f90ea09c635a66b68c": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } fragment ServerProduct on Query { product(locator: $locator) { id: productID } } query ServerProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { brand { name } breadcrumbList { itemListElement { item name position } } description gtin image { alternateName url } isVariantOf { productGroupID } mpn name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
4
+ "d46841b30ae1f6350021b5cf02f253d56c848664": "fragment ServerCollectionPage on Query { collection(slug: $slug) { id } } query ServerCollectionPageQuery($slug: String!) { collection(slug: $slug) { breadcrumbList { itemListElement { item name position } } meta { selectedFacets { key value } } otherLocales { locale slug } seo { description title } } ...ServerCollectionPage }",
5
+ "c51aaec5d4ed39e5b8d7d65f460fcd2bc8645346": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } fragment ServerProduct on Query { product(locator: $locator) { id: productID } } query ServerProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { brand { name } breadcrumbList { itemListElement { item name position } } description gtin image { alternateName url } isVariantOf { productGroupID } mpn name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } otherLocales { locale slug } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
6
6
  "bdf677bbccce12186a5ef15aebdce46585a99782": "query ServerOrderDetailsQuery($orderId: String!) { accountProfile { name } userOrder(orderId: $orderId) { allowCancellation budgetData { budgets { allocations { id linkedEntity { id } reservations } balance { remaining } id name } } canProcessOrderAuthorization clientProfileData { corporateName email firstName isCorporate lastName phone } creationDate customFields { fields { name refId value } id type } deliveryOptionsData { contact { email name phone } deliveryOptions { address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } deliveryChannel deliveryCompany deliveryWindow { endDateUtc price startDateUtc } friendlyDeliveryOptionName friendlyShippingEstimate items { id imageUrl name price quantity sellingPrice tax taxPriceTagsTotal total uniqueId } pickupStoreInfo { additionalInfo address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } dockId friendlyName isPickupStore } quantityOfDifferentItems selectedSla seller shippingEstimate shippingEstimateDate total } } orderId paymentData { transactions { isActive payments { bankIssuedInvoiceIdentificationNumber connectorResponses { authId } group id installments lastDigits paymentOrigin paymentSystemName redemptionCode referenceValue tid url value } } } ruleForAuthorization { dimensionId orderAuthorizationId rule { authorizationData { authorizers { authorizationDate email id type } requireAllApprovals } authorizedEmails doId id isUserAuthorized isUserNextAuthorizer name notification priority scoreInterval { accept deny } status timeout trigger { condition { conditionType description expression greatherThan lessThan } effect { description effectType funcPath } } } } shopper { email firstName lastName phone } status statusDescription storePreferencesData { currencyCode } totals { id name value } } }",
7
7
  "70d06de1da9c11f10ebde31b66fd74eccd456af5": "query ServerListOrdersQuery($clientEmail: String, $dateFinal: String, $dateInitial: String, $page: Int, $pendingMyApproval: Boolean, $perPage: Int, $status: [String], $text: String) { accountProfile { name } listUserOrders( page: $page perPage: $perPage status: $status dateInitial: $dateInitial dateFinal: $dateFinal text: $text clientEmail: $clientEmail pendingMyApproval: $pendingMyApproval ) { list { ShippingEstimatedDate clientName creationDate currencyCode customFields { type value } items { description ean id price productId quantity refId seller sellingPrice } orderId status statusDescription totalValue } paging { currentPage pages perPage total } } }",
8
8
  "672fe0f00b7b710b63fc6573c0a6b2ec54812b8f": "query ServerProfileQuery { accountProfile { email id name } }",
@@ -1268,6 +1268,11 @@ type StoreCollection {
1268
1268
  slug: String!
1269
1269
  """Collection type."""
1270
1270
  type: StoreCollectionType!
1271
+ """
1272
+ Localized versions of this collection for all available locales.
1273
+ Only populated when localization is enabled.
1274
+ """
1275
+ otherLocales: [StoreCollectionLocale!]
1271
1276
  }
1272
1277
 
1273
1278
  """
@@ -1302,6 +1307,14 @@ type StoreCollectionFacet {
1302
1307
  value: String!
1303
1308
  }
1304
1309
 
1310
+ """Localized collection data for a specific locale."""
1311
+ type StoreCollectionLocale {
1312
+ """Locale code (e.g. "pt-BR", "it-IT")."""
1313
+ locale: String!
1314
+ """Localized collection slug (e.g. "vestuario/camisetas")."""
1315
+ slug: String!
1316
+ }
1317
+
1305
1318
  """Collection meta information. Used for search."""
1306
1319
  type StoreCollectionMeta {
1307
1320
  """List of selected collection facets."""
@@ -1309,19 +1322,30 @@ type StoreCollectionMeta {
1309
1322
  }
1310
1323
 
1311
1324
  """
1312
- Product collection type. Possible values are `Department`, `Category`, `Brand`, `Cluster`, `SubCategory` or `Collection`.
1325
+ Product collection type. Possible values are `Department`, `Category`, `Brand` or `Collection`.
1326
+
1327
+ `SubCategory` and `Cluster` are still declared for backward compatibility but are
1328
+ deprecated and never returned.
1313
1329
  """
1314
1330
  enum StoreCollectionType {
1315
1331
  """First level of product categorization."""
1316
1332
  Department
1317
1333
  """Second level of product categorization."""
1318
1334
  Category
1319
- """Third level of product categorization."""
1320
- SubCategory
1335
+ """
1336
+ Third level of product categorization.
1337
+
1338
+ Deprecated: never returned — third-level categories resolve as `Category`.
1339
+ """
1340
+ SubCategory @deprecated(reason: "Never returned since the by-linkid migration: the category response only exposes `fatherCategoryId`, which distinguishes root from non-root but not tree depth, so third-level categories resolve as `Category`. Scheduled for removal in the next major.")
1321
1341
  """Product brand."""
1322
1342
  Brand
1323
- """Product cluster."""
1324
- Cluster
1343
+ """
1344
+ Product cluster.
1345
+
1346
+ Deprecated: never returned — clusters resolve as `Collection`.
1347
+ """
1348
+ Cluster @deprecated(reason: "Never returned since the by-linkid migration: clusters and curated collections are both served by `collection/by-linkid`, whose response carries no discriminator between them, so both resolve as `Collection`. Scheduled for removal in the next major.")
1325
1349
  """Product collection."""
1326
1350
  Collection
1327
1351
  }
@@ -1634,6 +1658,11 @@ type StoreProduct {
1634
1658
  specificationGroups: [SpecificationGroup!]!
1635
1659
  """Delivery Promise product's badge."""
1636
1660
  deliveryPromiseBadges: [DeliveryPromiseBadge]
1661
+ """
1662
+ Localized versions of this product for all available locales.
1663
+ Only populated when localization is enabled.
1664
+ """
1665
+ otherLocales: [StoreProductLocale!]
1637
1666
  }
1638
1667
 
1639
1668
  """
@@ -1682,6 +1711,16 @@ type StoreProductGroup {
1682
1711
  skuVariants: SkuVariants
1683
1712
  }
1684
1713
 
1714
+ """Localized product data for a specific locale."""
1715
+ type StoreProductLocale {
1716
+ """Locale code (e.g. "pt-BR", "it-IT")."""
1717
+ locale: String!
1718
+ """
1719
+ Localized product slug including the SKU ID suffix (e.g. "adidas-polo-uomo-65").
1720
+ """
1721
+ slug: String!
1722
+ }
1723
+
1685
1724
  """Properties that can be associated with products and products groups."""
1686
1725
  type StorePropertyValue {
1687
1726
  """