@asstio-dev/storefront 0.31.1 → 0.40.0-market.1

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.
package/src/schema.d.ts CHANGED
@@ -65,7 +65,7 @@ export interface paths {
65
65
  path?: never;
66
66
  cookie?: never;
67
67
  };
68
- /** Brands with a page on this market (some product of the brand is sold here), by name. Empty when the site has no brand facet or the market no brand URL pattern. productCount counts product families with a variant of the brand sold here. */
68
+ /** Brands with a page on this market (some product of the brand is visible in the request's context), by name. Empty when the site has no brand facet or the market no brand URL pattern. productCount counts product families with a variant of the brand visible in the request's context; null when prices are hidden until login. */
69
69
  get: operations["ListBrands"];
70
70
  put?: never;
71
71
  post?: never;
@@ -108,7 +108,7 @@ export interface paths {
108
108
  patch?: never;
109
109
  trace?: never;
110
110
  };
111
- "/v1/cart/lines": {
111
+ "/v1/cart/context": {
112
112
  parameters: {
113
113
  query?: never;
114
114
  header?: never;
@@ -117,14 +117,14 @@ export interface paths {
117
117
  };
118
118
  get?: never;
119
119
  put?: never;
120
- post: operations["AddCartLine"];
120
+ post: operations["SetCartContext"];
121
121
  delete?: never;
122
122
  options?: never;
123
123
  head?: never;
124
124
  patch?: never;
125
125
  trace?: never;
126
126
  };
127
- "/v1/cart/lines/{id}": {
127
+ "/v1/cart/lines": {
128
128
  parameters: {
129
129
  query?: never;
130
130
  header?: never;
@@ -133,14 +133,14 @@ export interface paths {
133
133
  };
134
134
  get?: never;
135
135
  put?: never;
136
- post?: never;
137
- delete: operations["RemoveCartLine"];
136
+ post: operations["AddCartLine"];
137
+ delete?: never;
138
138
  options?: never;
139
139
  head?: never;
140
- patch: operations["UpdateCartLine"];
140
+ patch?: never;
141
141
  trace?: never;
142
142
  };
143
- "/v1/cart/market": {
143
+ "/v1/cart/lines/{id}": {
144
144
  parameters: {
145
145
  query?: never;
146
146
  header?: never;
@@ -149,11 +149,11 @@ export interface paths {
149
149
  };
150
150
  get?: never;
151
151
  put?: never;
152
- post: operations["SetCartMarket"];
153
- delete?: never;
152
+ post?: never;
153
+ delete: operations["RemoveCartLine"];
154
154
  options?: never;
155
155
  head?: never;
156
- patch?: never;
156
+ patch: operations["UpdateCartLine"];
157
157
  trace?: never;
158
158
  };
159
159
  "/v1/cart/shipping-estimate": {
@@ -179,7 +179,7 @@ export interface paths {
179
179
  path?: never;
180
180
  cookie?: never;
181
181
  };
182
- /** Asstio category tree as data (facet source). Not pages. */
182
+ /** Asstio category tree as data (facet source). Not pages. productCount counts the products visible in the request's context under each node; null when prices are hidden until login. */
183
183
  get: operations["GetCategories"];
184
184
  put?: never;
185
185
  post?: never;
@@ -411,7 +411,7 @@ export interface paths {
411
411
  path?: never;
412
412
  cookie?: never;
413
413
  };
414
- /** Look up a product by its own SKU or one of its variants'. matchedVariantId is set on a variant hit. */
414
+ /** Look up a product by its own SKU or one of its variants'. matchedVariantId is set on a variant hit; a product with no variant visible in the request's context is a 404. */
415
415
  get: operations["GetProductBySku"];
416
416
  put?: never;
417
417
  post?: never;
@@ -445,7 +445,7 @@ export interface paths {
445
445
  path?: never;
446
446
  cookie?: never;
447
447
  };
448
- /** Product detail by current slug, historical slug or id. redirectTo is set for a historical slug. */
448
+ /** Product detail by current slug, historical slug or id, in the request's context: the from-offer, and the visible variants with their own offers. redirectTo is set for a historical slug; a product with no visible variant is a 404. */
449
449
  get: operations["GetProduct"];
450
450
  put?: never;
451
451
  post?: never;
@@ -462,7 +462,7 @@ export interface paths {
462
462
  path?: never;
463
463
  cookie?: never;
464
464
  };
465
- /** A product's variants, paged and in the product's order. filter[<axis>]=value narrows; options[].values[].available tells which values the other selections still allow. Use when the product's variants is null. */
465
+ /** A product's variants visible in the request's context, each with its own offer, paged and in the product's order. filter[<axis>]=value narrows; options[].values[].available tells which values the other selections still allow. Use when the product's variants is null. */
466
466
  get: operations["ListProductVariants"];
467
467
  put?: never;
468
468
  post?: never;
@@ -530,7 +530,7 @@ export interface paths {
530
530
  path?: never;
531
531
  cookie?: never;
532
532
  };
533
- /** Site bootstrap: markets, URL patterns, config version. */
533
+ /** Site bootstrap: markets, locales, bindings, offer policy, capabilities, config version. */
534
534
  get: operations["GetSite"];
535
535
  put?: never;
536
536
  post?: never;
@@ -547,7 +547,7 @@ export interface paths {
547
547
  path?: never;
548
548
  cookie?: never;
549
549
  };
550
- /** Ids, slugs, URLs and lastmod for sitemap.xml and selective revalidation. type=product|collection|brand, ?since= is inclusive; ?cursor=start walks the whole sitemap along nextCursor. */
550
+ /** Ids, slugs, URLs and lastmod for sitemap.xml and selective revalidation, per page binding (?binding=, default: the default binding; a secondary binding lists nothing). type=product|collection|brand, ?since= is inclusive; ?cursor=start walks the whole sitemap along nextCursor. */
551
551
  get: operations["GetSitemap"];
552
552
  put?: never;
553
553
  post?: never;
@@ -592,6 +592,14 @@ export interface components {
592
592
  street: null | string;
593
593
  street2: null | string;
594
594
  };
595
+ AlternateDto: {
596
+ bindingId: string;
597
+ country: string;
598
+ hreflang: string;
599
+ locale: string;
600
+ market: string;
601
+ url: string;
602
+ };
595
603
  AppliedFilterDto: {
596
604
  facet: string;
597
605
  label: string;
@@ -609,17 +617,27 @@ export interface components {
609
617
  valueKeys: string[] | null;
610
618
  values: string[] | null;
611
619
  };
620
+ BindingDto: {
621
+ basePath: string;
622
+ country: string;
623
+ hreflang: null | string;
624
+ id: string;
625
+ indexable: boolean;
626
+ locale: string;
627
+ market: string;
628
+ origin: string;
629
+ prefix: string;
630
+ primary: boolean;
631
+ };
612
632
  BrandDetailDto: {
613
- alternateUrls: {
614
- [key: string]: string;
615
- };
633
+ alternates: components["schemas"]["AlternateDto"][];
616
634
  description: null | components["schemas"]["DescriptionDto"];
617
635
  facet: null | components["schemas"]["FacetLinkDto"];
618
636
  id: string;
619
637
  logo: null | components["schemas"]["MediaDescriptorDto"];
620
638
  name: string;
621
639
  /** Format: int64 */
622
- productCount: number | string;
640
+ productCount: number | null;
623
641
  redirectTo: null | string;
624
642
  responsible: components["schemas"]["ResponsibleDto"];
625
643
  slug: string;
@@ -641,7 +659,7 @@ export interface components {
641
659
  logo: null | components["schemas"]["MediaDescriptorDto"];
642
660
  name: string;
643
661
  /** Format: int64 */
644
- productCount: number | string;
662
+ productCount: number | null;
645
663
  slug: string;
646
664
  url: string;
647
665
  };
@@ -662,14 +680,15 @@ export interface components {
662
680
  components: components["schemas"]["BundleComponentDto"][];
663
681
  };
664
682
  CartDto: {
683
+ checkoutBlocked: boolean;
684
+ context: components["schemas"]["ContextDto"];
665
685
  currency: string;
666
686
  delivery: null | components["schemas"]["DeliveryRangeDto"];
667
- grandTotalInc: string;
668
687
  lines: components["schemas"]["CartLineDto"][];
669
- market: string;
688
+ quoteStatus: components["schemas"]["QuoteStatusDto"];
670
689
  status: string;
671
- subtotalInc: string;
672
690
  token: string;
691
+ totals: components["schemas"]["CartTotalsDto"];
673
692
  /** Format: int32 */
674
693
  version: number | string;
675
694
  warnings: components["schemas"]["WarningDto"][];
@@ -679,11 +698,12 @@ export interface components {
679
698
  delivery: null | components["schemas"]["DeliveryRangeDto"];
680
699
  id: string;
681
700
  image: null | components["schemas"]["MediaDescriptorDto"];
682
- price: components["schemas"]["PriceDto"];
701
+ linePrice: components["schemas"]["PricePairDto"];
683
702
  product: components["schemas"]["CartLineProductDto"];
684
703
  /** Format: int32 */
685
704
  quantity: number | string;
686
705
  sku: string;
706
+ unitPrice: components["schemas"]["PricePairDto"];
687
707
  variant: components["schemas"]["CartLineVariantDto"];
688
708
  };
689
709
  CartLineProductDto: {
@@ -707,12 +727,17 @@ export interface components {
707
727
  CartTokenDto: {
708
728
  token: string;
709
729
  };
730
+ CartTotalsDto: {
731
+ grandTotal: components["schemas"]["PricePairDto"];
732
+ rounding: null | string;
733
+ subtotal: components["schemas"]["PricePairDto"];
734
+ };
710
735
  CategoryNodeDto: {
711
736
  children: components["schemas"]["CategoryNodeDto"][];
712
737
  id: string;
713
738
  name: string;
714
739
  /** Format: int32 */
715
- productCount: number | string;
740
+ productCount: number | null;
716
741
  };
717
742
  CategoryRefDto: {
718
743
  id: string;
@@ -850,9 +875,7 @@ export interface components {
850
875
  url: string;
851
876
  };
852
877
  CollectionListingResponse: {
853
- alternateUrls: {
854
- [key: string]: string;
855
- };
878
+ alternates: components["schemas"]["AlternateDto"][];
856
879
  breadcrumb: components["schemas"]["CollectionCrumbDto"][];
857
880
  collection: components["schemas"]["CollectionDto"];
858
881
  listing: components["schemas"]["ListingResponse"];
@@ -867,6 +890,13 @@ export interface components {
867
890
  CompanyNameDto: {
868
891
  name: string;
869
892
  };
893
+ ContextDto: {
894
+ country: string;
895
+ currency: string;
896
+ customerKind: string;
897
+ locale: string;
898
+ market: string;
899
+ };
870
900
  DeliveryRangeDto: {
871
901
  /** Format: int32 */
872
902
  max: number;
@@ -885,6 +915,8 @@ export interface components {
885
915
  html: string;
886
916
  text: string;
887
917
  };
918
+ /** @enum {unknown} */
919
+ DisplayBasisDto: "ex" | "inc";
888
920
  ErasureRequest: {
889
921
  email: string;
890
922
  };
@@ -894,6 +926,7 @@ export interface components {
894
926
  key: string;
895
927
  label: string;
896
928
  match: string;
929
+ priceBasis: null | components["schemas"]["PriceBasisDto"];
897
930
  range: null | components["schemas"]["RangeDto"];
898
931
  searchable: boolean;
899
932
  truncated: boolean;
@@ -925,23 +958,28 @@ export interface components {
925
958
  threshold: null | string;
926
959
  };
927
960
  /** @enum {unknown} */
928
- LineAvailability: "backorder" | "inStock";
961
+ LineAvailability: "backorder" | "inStock" | "unavailable";
929
962
  ListingResponse: {
930
963
  appliedFilters: components["schemas"]["AppliedFilterDto"][];
964
+ context: components["schemas"]["ContextDto"];
931
965
  facets: components["schemas"]["FacetDto"][];
932
966
  items: components["schemas"]["ProductCardDto"][];
933
967
  /** Format: int32 */
934
968
  page: number | string;
935
969
  /** Format: int32 */
936
970
  pageSize: number | string;
971
+ priceBasis: components["schemas"]["PriceBasisDto"];
937
972
  queryCorrection: null | string;
938
973
  redirect: null | string;
939
- search?: null | components["schemas"]["SearchInfoDto"];
974
+ search: null | components["schemas"]["SearchInfoDto"];
940
975
  sort: components["schemas"]["SortDto"];
941
976
  /** Format: int64 */
942
977
  total: number | string;
943
978
  warnings: components["schemas"]["WarningDto"][];
944
979
  };
980
+ LocaleDto: {
981
+ tag: string;
982
+ };
945
983
  MarketCheckoutDto: {
946
984
  available: boolean;
947
985
  defaultOption: null | string;
@@ -950,10 +988,17 @@ export interface components {
950
988
  MarketDto: {
951
989
  checkout: components["schemas"]["MarketCheckoutDto"];
952
990
  code: string;
953
- country: string;
991
+ countries: string[];
954
992
  currency: string;
955
- language: string;
956
- urlTemplate: string;
993
+ defaultCountry: string;
994
+ locales: components["schemas"]["MarketLocalesDto"];
995
+ };
996
+ MarketLocalesDto: {
997
+ allowed: string[];
998
+ defaultByCountry: {
999
+ [key: string]: string;
1000
+ };
1001
+ mode: string;
957
1002
  };
958
1003
  MediaDescriptorDto: {
959
1004
  alt: {
@@ -1042,6 +1087,24 @@ export interface components {
1042
1087
  permissions: string[];
1043
1088
  role: string;
1044
1089
  };
1090
+ OfferDto: {
1091
+ compareAt: null | components["schemas"]["PricePairDto"];
1092
+ displayBasis: components["schemas"]["DisplayBasisDto"];
1093
+ listPrice: null | components["schemas"]["PricePairDto"];
1094
+ offerStatus: components["schemas"]["OfferStatusDto"];
1095
+ price: null | components["schemas"]["PricePairDto"];
1096
+ purchaseStatus: components["schemas"]["PurchaseStatusDto"];
1097
+ regular: null | components["schemas"]["PricePairDto"];
1098
+ sale: null | components["schemas"]["SalePriceDto"];
1099
+ stock: components["schemas"]["StockDto"];
1100
+ };
1101
+ OfferPolicyDto: {
1102
+ companyDisplayBasis: components["schemas"]["DisplayBasisDto"];
1103
+ offers: string;
1104
+ publicDisplayBasis: components["schemas"]["DisplayBasisDto"];
1105
+ };
1106
+ /** @enum {unknown} */
1107
+ OfferStatusDto: "available" | "loginRequired" | "notSoldHere" | "unavailable";
1045
1108
  OptionDto: {
1046
1109
  name: string;
1047
1110
  values: string[];
@@ -1130,13 +1193,28 @@ export interface components {
1130
1193
  street: null | string;
1131
1194
  url: null | string;
1132
1195
  };
1133
- PriceDto: {
1134
- amount: string;
1135
- compareAt: null | string;
1196
+ PriceBasisDto: {
1136
1197
  currency: string;
1137
- vatIncluded: boolean;
1138
- vatRate: string;
1198
+ source: string;
1199
+ tax: components["schemas"]["DisplayBasisDto"];
1200
+ };
1201
+ PriceFromDto: {
1202
+ price: components["schemas"]["PricePairDto"];
1203
+ variantId: string;
1139
1204
  };
1205
+ PricePairDto: {
1206
+ currency: string;
1207
+ ex: null | string;
1208
+ inc: null | string;
1209
+ status: components["schemas"]["PriceStatusDto"];
1210
+ taxAmount: null | string;
1211
+ taxCode: null | string;
1212
+ taxComponents: components["schemas"]["TaxComponentDto"][];
1213
+ taxRate: null | string;
1214
+ taxTreatment: components["schemas"]["TaxTreatmentDto"];
1215
+ };
1216
+ /** @enum {unknown} */
1217
+ PriceStatusDto: "complete" | "partial" | "unavailable";
1140
1218
  PrincipalDto: {
1141
1219
  company: null | components["schemas"]["CompanyNameDto"];
1142
1220
  id: string;
@@ -1147,15 +1225,14 @@ export interface components {
1147
1225
  ProductCardDto: {
1148
1226
  attributes: components["schemas"]["AttributeDto"][];
1149
1227
  brand: null | components["schemas"]["BrandDto"];
1150
- buyable: boolean;
1151
1228
  categories: components["schemas"]["CategoryRefDto"][];
1152
1229
  collections: string[];
1153
1230
  id: string;
1154
1231
  image: null | components["schemas"]["MediaDescriptorDto"];
1155
- inStock: boolean;
1156
1232
  name: string;
1157
- price: null | components["schemas"]["PriceDto"];
1158
- priceVaries: boolean;
1233
+ offer: components["schemas"]["OfferDto"];
1234
+ priceFrom: null | components["schemas"]["PriceFromDto"];
1235
+ priceTo: null | components["schemas"]["PriceFromDto"];
1159
1236
  primaryCategory: null | components["schemas"]["CategoryRefDto"];
1160
1237
  shortDescription: null | string;
1161
1238
  sku: string;
@@ -1165,14 +1242,13 @@ export interface components {
1165
1242
  url: string;
1166
1243
  };
1167
1244
  ProductDto: {
1168
- alternateUrls: {
1169
- [key: string]: string;
1170
- };
1245
+ alternates: components["schemas"]["AlternateDto"][];
1171
1246
  attributes: components["schemas"]["AttributeDto"][];
1172
1247
  brand: null | components["schemas"]["BrandDto"];
1173
1248
  bundle: null | components["schemas"]["BundleDto"];
1174
1249
  categories: components["schemas"]["CategoryRefDto"][];
1175
1250
  collections: components["schemas"]["CollectionRefDto"][];
1251
+ context: components["schemas"]["ContextDto"];
1176
1252
  description: null | components["schemas"]["DescriptionDto"];
1177
1253
  files: components["schemas"]["MediaDescriptorDto"][];
1178
1254
  gtin: null | string;
@@ -1182,7 +1258,10 @@ export interface components {
1182
1258
  images: components["schemas"]["MediaDescriptorDto"][];
1183
1259
  matchedVariantId: null | string;
1184
1260
  name: string;
1261
+ offer: components["schemas"]["OfferDto"];
1185
1262
  options: components["schemas"]["OptionDto"][];
1263
+ priceFrom: null | components["schemas"]["PriceFromDto"];
1264
+ priceTo: null | components["schemas"]["PriceFromDto"];
1186
1265
  primaryCategory: null | components["schemas"]["CategoryRefDto"];
1187
1266
  redirectTo: null | string;
1188
1267
  related: components["schemas"]["RelatedGroupDto"][];
@@ -1200,6 +1279,10 @@ export interface components {
1200
1279
  variantCount: number | string;
1201
1280
  variants: components["schemas"]["VariantDto"][] | null;
1202
1281
  };
1282
+ /** @enum {unknown} */
1283
+ PurchaseStatusDto: "available" | "unavailable";
1284
+ /** @enum {unknown} */
1285
+ QuoteStatusDto: "complete" | "partial" | "unavailable";
1203
1286
  RangeDto: {
1204
1287
  currency: null | string;
1205
1288
  max: string;
@@ -1223,6 +1306,13 @@ export interface components {
1223
1306
  importer: null | components["schemas"]["PartyDto"];
1224
1307
  manufacturer: null | components["schemas"]["PartyDto"];
1225
1308
  };
1309
+ SalePriceDto: {
1310
+ price: components["schemas"]["PricePairDto"];
1311
+ /** Format: date-time */
1312
+ validFrom: null | string;
1313
+ /** Format: date-time */
1314
+ validTo: null | string;
1315
+ };
1226
1316
  SearchEventDto: {
1227
1317
  eventId: null | string;
1228
1318
  exposureId?: null | string;
@@ -1278,7 +1368,7 @@ export interface components {
1278
1368
  slug: string;
1279
1369
  };
1280
1370
  /** @enum {unknown} */
1281
- SelectedVariantStatus: "matched" | "notSoldHere" | "unknown";
1371
+ SelectedVariantStatus: "loginRequired" | "matched" | "notSoldHere" | "unknown";
1282
1372
  SellabilityDto: {
1283
1373
  mode: components["schemas"]["SiteSellabilityMode"];
1284
1374
  };
@@ -1302,8 +1392,10 @@ export interface components {
1302
1392
  expiresAt: string;
1303
1393
  token: string;
1304
1394
  };
1305
- SetCartMarketRequest: {
1306
- market: string;
1395
+ SetCartContextRequest: {
1396
+ country?: null | string;
1397
+ locale?: null | string;
1398
+ market?: null | string;
1307
1399
  };
1308
1400
  ShippingEstimateDto: {
1309
1401
  available: boolean;
@@ -1350,24 +1442,33 @@ export interface components {
1350
1442
  consumer: boolean;
1351
1443
  paths: components["schemas"]["AccountPathsDto"];
1352
1444
  };
1445
+ SiteCapabilitiesDto: {
1446
+ checkout: boolean;
1447
+ priceQueries: boolean;
1448
+ stockQueries: boolean;
1449
+ };
1353
1450
  SiteDto: {
1354
1451
  accounts: null | components["schemas"]["SiteAccountsDto"];
1452
+ bindings: components["schemas"]["BindingDto"][];
1453
+ capabilities: components["schemas"]["SiteCapabilitiesDto"];
1355
1454
  code: string;
1356
1455
  configVersion: string;
1357
- defaultMarket: string;
1456
+ context: components["schemas"]["ContextDto"];
1457
+ defaultBindingId: string;
1458
+ locales: components["schemas"]["LocaleDto"][];
1358
1459
  markets: components["schemas"]["MarketDto"][];
1359
1460
  media: components["schemas"]["MediaDto"];
1360
1461
  name: string;
1462
+ offerPolicy: components["schemas"]["OfferPolicyDto"];
1361
1463
  preview: boolean;
1362
1464
  sellability: components["schemas"]["SellabilityDto"];
1465
+ suggestedLocale: null | string;
1363
1466
  urlPatterns: components["schemas"]["UrlPatternsDto"];
1364
1467
  };
1365
1468
  /** @enum {unknown} */
1366
1469
  SiteSellabilityMode: "backorder" | "onHand";
1367
1470
  SitemapEntryDto: {
1368
- alternateUrls: {
1369
- [key: string]: string;
1370
- };
1471
+ alternates: components["schemas"]["AlternateDto"][];
1371
1472
  id: string;
1372
1473
  slug: string;
1373
1474
  /** Format: date-time */
@@ -1375,6 +1476,7 @@ export interface components {
1375
1476
  url: string;
1376
1477
  };
1377
1478
  SitemapResponse: {
1479
+ bindingId: string;
1378
1480
  items: components["schemas"]["SitemapEntryDto"][];
1379
1481
  nextCursor: null | string;
1380
1482
  /** Format: int32 */
@@ -1401,6 +1503,13 @@ export interface components {
1401
1503
  email: null | string;
1402
1504
  returnPath?: null | string;
1403
1505
  };
1506
+ StockDto: {
1507
+ /** Format: int32 */
1508
+ quantity: number | null;
1509
+ status: components["schemas"]["StockStatusDto"];
1510
+ };
1511
+ /** @enum {unknown} */
1512
+ StockStatusDto: "backorder" | "hidden" | "inStock" | "outOfStock";
1404
1513
  /**
1405
1514
  * Problem
1406
1515
  * @description RFC 9457 problem document. Branch on `code`: it is stable, unlike `title` and `detail`.
@@ -1448,6 +1557,14 @@ export interface components {
1448
1557
  SwitchPrincipalRequest: {
1449
1558
  principal: null | string;
1450
1559
  };
1560
+ TaxComponentDto: {
1561
+ amount: string;
1562
+ jurisdiction: string;
1563
+ rate: string;
1564
+ taxCode: string;
1565
+ };
1566
+ /** @enum {unknown} */
1567
+ TaxTreatmentDto: "exempt" | "export" | "reverseCharge" | "taxable";
1451
1568
  TrackingDto: {
1452
1569
  carrier: string;
1453
1570
  number: string;
@@ -1464,9 +1581,7 @@ export interface components {
1464
1581
  /** @enum {unknown} */
1465
1582
  VariantAvailability: "backorder" | "inStock" | "unavailable";
1466
1583
  VariantDto: {
1467
- availability: components["schemas"]["VariantAvailability"];
1468
- /** Format: int32 */
1469
- availableUnits: number;
1584
+ availability: null | components["schemas"]["VariantAvailability"];
1470
1585
  backorderDelivery: null | components["schemas"]["DeliveryRangeDto"];
1471
1586
  brand: null | components["schemas"]["BrandDto"];
1472
1587
  delivery: null | components["schemas"]["DeliveryRangeDto"];
@@ -1476,14 +1591,12 @@ export interface components {
1476
1591
  id: string;
1477
1592
  image: null | components["schemas"]["MediaDescriptorDto"];
1478
1593
  images: components["schemas"]["MediaDescriptorDto"][];
1479
- inStock: boolean;
1480
- price: null | components["schemas"]["PriceDto"];
1594
+ offer: components["schemas"]["OfferDto"];
1481
1595
  responsible: components["schemas"]["ResponsibleDto"];
1482
1596
  selectedOptions: {
1483
1597
  [key: string]: string;
1484
1598
  };
1485
1599
  sku: string;
1486
- stock: string;
1487
1600
  url: null | string;
1488
1601
  };
1489
1602
  VariantOptionDto: {
@@ -1538,10 +1651,12 @@ export interface operations {
1538
1651
  header: {
1539
1652
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
1540
1653
  "X-Site-Key": string;
1541
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
1654
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
1542
1655
  "X-Market"?: string;
1543
- /** @description BCP-47 language tag. Omit to use the market's language. */
1544
- "Accept-Language"?: string;
1656
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
1657
+ "X-Country"?: string;
1658
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
1659
+ "X-Locale"?: string;
1545
1660
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
1546
1661
  "X-Shopper-Ip"?: string;
1547
1662
  };
@@ -1563,7 +1678,7 @@ export interface operations {
1563
1678
  "application/json": components["schemas"]["SignInStartedDto"];
1564
1679
  };
1565
1680
  };
1566
- /** @description problem+json. INVALID_EMAIL (email missing, longer than 320 characters, or not an address), or MARKET_UNKNOWN. An unsafe returnPath is dropped, not refused. */
1681
+ /** @description problem+json. INVALID_EMAIL (email missing, longer than 320 characters, or not an address), or a refusal of the request's commerce headers: MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). An unsafe returnPath is dropped, not refused. */
1567
1682
  400: {
1568
1683
  headers: {
1569
1684
  [name: string]: unknown;
@@ -1625,10 +1740,12 @@ export interface operations {
1625
1740
  header: {
1626
1741
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
1627
1742
  "X-Site-Key": string;
1628
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
1743
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
1629
1744
  "X-Market"?: string;
1630
- /** @description BCP-47 language tag. Omit to use the market's language. */
1631
- "Accept-Language"?: string;
1745
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
1746
+ "X-Country"?: string;
1747
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
1748
+ "X-Locale"?: string;
1632
1749
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
1633
1750
  "X-Shopper-Ip"?: string;
1634
1751
  /** @description Optional. The browser's cart, for the cart resolution at sign-in (accounts B3). */
@@ -1652,7 +1769,7 @@ export interface operations {
1652
1769
  "application/json": components["schemas"]["SignedInDto"];
1653
1770
  };
1654
1771
  };
1655
- /** @description problem+json. SIGN_IN_INVALID: one code for a wrong, expired, exhausted (5 attempts), consumed or ineligible challenge and for a malformed body — start a new sign-in. Or MARKET_UNKNOWN. */
1772
+ /** @description problem+json. SIGN_IN_INVALID: one code for a wrong, expired, exhausted (5 attempts), consumed or ineligible challenge and for a malformed body — start a new sign-in. */
1656
1773
  400: {
1657
1774
  headers: {
1658
1775
  [name: string]: unknown;
@@ -1723,10 +1840,12 @@ export interface operations {
1723
1840
  header: {
1724
1841
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
1725
1842
  "X-Site-Key": string;
1726
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
1843
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
1727
1844
  "X-Market"?: string;
1728
- /** @description BCP-47 language tag. Omit to use the market's language. */
1729
- "Accept-Language"?: string;
1845
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
1846
+ "X-Country"?: string;
1847
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
1848
+ "X-Locale"?: string;
1730
1849
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
1731
1850
  "X-Shopper-Ip"?: string;
1732
1851
  };
@@ -1746,7 +1865,7 @@ export interface operations {
1746
1865
  };
1747
1866
  content?: never;
1748
1867
  };
1749
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site). */
1868
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
1750
1869
  400: {
1751
1870
  headers: {
1752
1871
  [name: string]: unknown;
@@ -1813,10 +1932,14 @@ export interface operations {
1813
1932
  header: {
1814
1933
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
1815
1934
  "X-Site-Key": string;
1816
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
1935
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
1817
1936
  "X-Market"?: string;
1818
- /** @description BCP-47 language tag. Omit to use the market's language. */
1819
- "Accept-Language"?: string;
1937
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
1938
+ "X-Country"?: string;
1939
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
1940
+ "X-Locale"?: string;
1941
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
1942
+ "X-Shopper-Session"?: string;
1820
1943
  };
1821
1944
  path?: never;
1822
1945
  cookie?: never;
@@ -1832,7 +1955,7 @@ export interface operations {
1832
1955
  "application/json": components["schemas"]["BrandPageDto"];
1833
1956
  };
1834
1957
  };
1835
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
1958
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country); INVALID_PAGE. */
1836
1959
  400: {
1837
1960
  headers: {
1838
1961
  [name: string]: unknown;
@@ -1841,7 +1964,7 @@ export interface operations {
1841
1964
  "application/problem+json": components["schemas"]["StorefrontProblem"];
1842
1965
  };
1843
1966
  };
1844
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
1967
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
1845
1968
  401: {
1846
1969
  headers: {
1847
1970
  [name: string]: unknown;
@@ -1850,7 +1973,7 @@ export interface operations {
1850
1973
  "application/problem+json": components["schemas"]["StorefrontProblem"];
1851
1974
  };
1852
1975
  };
1853
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
1976
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
1854
1977
  403: {
1855
1978
  headers: {
1856
1979
  [name: string]: unknown;
@@ -1877,7 +2000,7 @@ export interface operations {
1877
2000
  "application/problem+json": components["schemas"]["StorefrontProblem"];
1878
2001
  };
1879
2002
  };
1880
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2003
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
1881
2004
  503: {
1882
2005
  headers: {
1883
2006
  [name: string]: unknown;
@@ -1894,10 +2017,14 @@ export interface operations {
1894
2017
  header: {
1895
2018
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
1896
2019
  "X-Site-Key": string;
1897
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2020
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
1898
2021
  "X-Market"?: string;
1899
- /** @description BCP-47 language tag. Omit to use the market's language. */
1900
- "Accept-Language"?: string;
2022
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2023
+ "X-Country"?: string;
2024
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2025
+ "X-Locale"?: string;
2026
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
2027
+ "X-Shopper-Session"?: string;
1901
2028
  };
1902
2029
  path: {
1903
2030
  slugOrId: string;
@@ -1915,7 +2042,7 @@ export interface operations {
1915
2042
  "application/json": components["schemas"]["BrandDetailDto"];
1916
2043
  };
1917
2044
  };
1918
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
2045
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). */
1919
2046
  400: {
1920
2047
  headers: {
1921
2048
  [name: string]: unknown;
@@ -1924,7 +2051,7 @@ export interface operations {
1924
2051
  "application/problem+json": components["schemas"]["StorefrontProblem"];
1925
2052
  };
1926
2053
  };
1927
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
2054
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
1928
2055
  401: {
1929
2056
  headers: {
1930
2057
  [name: string]: unknown;
@@ -1933,7 +2060,7 @@ export interface operations {
1933
2060
  "application/problem+json": components["schemas"]["StorefrontProblem"];
1934
2061
  };
1935
2062
  };
1936
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
2063
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
1937
2064
  403: {
1938
2065
  headers: {
1939
2066
  [name: string]: unknown;
@@ -1960,7 +2087,7 @@ export interface operations {
1960
2087
  "application/problem+json": components["schemas"]["StorefrontProblem"];
1961
2088
  };
1962
2089
  };
1963
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2090
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
1964
2091
  503: {
1965
2092
  headers: {
1966
2093
  [name: string]: unknown;
@@ -1977,10 +2104,12 @@ export interface operations {
1977
2104
  header: {
1978
2105
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
1979
2106
  "X-Site-Key": string;
1980
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2107
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
1981
2108
  "X-Market"?: string;
1982
- /** @description BCP-47 language tag. Omit to use the market's language. */
1983
- "Accept-Language"?: string;
2109
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2110
+ "X-Country"?: string;
2111
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2112
+ "X-Locale"?: string;
1984
2113
  /** @description The bearer token returned by POST /v1/cart. Identifies which cart this request reads or mutates. */
1985
2114
  "X-Cart-Token": string;
1986
2115
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
@@ -2054,7 +2183,7 @@ export interface operations {
2054
2183
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2055
2184
  };
2056
2185
  };
2057
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2186
+ /** @description problem+json. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2058
2187
  503: {
2059
2188
  headers: {
2060
2189
  [name: string]: unknown;
@@ -2071,10 +2200,12 @@ export interface operations {
2071
2200
  header: {
2072
2201
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2073
2202
  "X-Site-Key": string;
2074
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2203
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2075
2204
  "X-Market"?: string;
2076
- /** @description BCP-47 language tag. Omit to use the market's language. */
2077
- "Accept-Language"?: string;
2205
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2206
+ "X-Country"?: string;
2207
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2208
+ "X-Locale"?: string;
2078
2209
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
2079
2210
  "X-Shopper-Session"?: string;
2080
2211
  };
@@ -2092,7 +2223,7 @@ export interface operations {
2092
2223
  "application/json": components["schemas"]["CartDto"];
2093
2224
  };
2094
2225
  };
2095
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
2226
+ /** @description problem+json. A refusal of the request's commerce headers: MARKET_REQUIRED, MARKET_NOT_FOUND, COUNTRY_REQUIRED (a market with several countries needs X-Country), COUNTRY_NOT_ALLOWED or LOCALE_NOT_ALLOWED. */
2096
2227
  400: {
2097
2228
  headers: {
2098
2229
  [name: string]: unknown;
@@ -2137,7 +2268,7 @@ export interface operations {
2137
2268
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2138
2269
  };
2139
2270
  };
2140
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2271
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the requested price context is not projected yet; Retry-After), or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); nothing is written. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE. */
2141
2272
  503: {
2142
2273
  headers: {
2143
2274
  [name: string]: unknown;
@@ -2148,20 +2279,20 @@ export interface operations {
2148
2279
  };
2149
2280
  };
2150
2281
  };
2151
- AddCartLine: {
2282
+ SetCartContext: {
2152
2283
  parameters: {
2153
2284
  query?: never;
2154
2285
  header: {
2155
2286
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2156
2287
  "X-Site-Key": string;
2157
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2288
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2158
2289
  "X-Market"?: string;
2159
- /** @description BCP-47 language tag. Omit to use the market's language. */
2160
- "Accept-Language"?: string;
2290
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2291
+ "X-Country"?: string;
2292
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2293
+ "X-Locale"?: string;
2161
2294
  /** @description The bearer token returned by POST /v1/cart. Identifies which cart this request reads or mutates. */
2162
2295
  "X-Cart-Token": string;
2163
- /** @description An opaque client-chosen key. Replaying the exact same add with the same key is a no-op (the line's quantity is not added twice); a different key, or none, tops the existing line up like any other add. */
2164
- "Idempotency-Key"?: string;
2165
2296
  /** @description The cart's current version, as returned in the ETag header. When present and stale, the mutation is rejected with 409 CART_CONFLICT instead of being applied last-write-wins. */
2166
2297
  "If-Match"?: string;
2167
2298
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
@@ -2172,7 +2303,7 @@ export interface operations {
2172
2303
  };
2173
2304
  requestBody: {
2174
2305
  content: {
2175
- "application/json": components["schemas"]["AddCartLineRequest"];
2306
+ "application/json": components["schemas"]["SetCartContextRequest"];
2176
2307
  };
2177
2308
  };
2178
2309
  responses: {
@@ -2185,7 +2316,7 @@ export interface operations {
2185
2316
  "application/json": components["schemas"]["CartDto"];
2186
2317
  };
2187
2318
  };
2188
- /** @description problem+json. NOT_FOUND (X-Cart-Token missing), INVALID_QUANTITY, or CART_FULL. */
2319
+ /** @description problem+json. NOT_FOUND (X-Cart-Token missing), MARKET_NOT_FOUND, COUNTRY_NOT_ALLOWED (also when a market change leaves out a country it does not hold: a left-out member is the cart's stored one), or LOCALE_NOT_ALLOWED. */
2189
2320
  400: {
2190
2321
  headers: {
2191
2322
  [name: string]: unknown;
@@ -2221,7 +2352,7 @@ export interface operations {
2221
2352
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2222
2353
  };
2223
2354
  };
2224
- /** @description problem+json. CART_CONFLICT (stale If-Match), STOCK_INSUFFICIENT, or PRODUCT_GONE. */
2355
+ /** @description problem+json. CART_CONFLICT (stale If-Match). */
2225
2356
  409: {
2226
2357
  headers: {
2227
2358
  [name: string]: unknown;
@@ -2248,7 +2379,7 @@ export interface operations {
2248
2379
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2249
2380
  };
2250
2381
  };
2251
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2382
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the requested price context is not projected yet; Retry-After), or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); nothing is written. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE. */
2252
2383
  503: {
2253
2384
  headers: {
2254
2385
  [name: string]: unknown;
@@ -2259,29 +2390,35 @@ export interface operations {
2259
2390
  };
2260
2391
  };
2261
2392
  };
2262
- RemoveCartLine: {
2393
+ AddCartLine: {
2263
2394
  parameters: {
2264
2395
  query?: never;
2265
2396
  header: {
2266
2397
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2267
2398
  "X-Site-Key": string;
2268
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2399
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2269
2400
  "X-Market"?: string;
2270
- /** @description BCP-47 language tag. Omit to use the market's language. */
2271
- "Accept-Language"?: string;
2401
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2402
+ "X-Country"?: string;
2403
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2404
+ "X-Locale"?: string;
2272
2405
  /** @description The bearer token returned by POST /v1/cart. Identifies which cart this request reads or mutates. */
2273
2406
  "X-Cart-Token": string;
2407
+ /** @description An opaque client-chosen key. Replaying the exact same add with the same key is a no-op (the line's quantity is not added twice); a different key, or none, tops the existing line up like any other add. */
2408
+ "Idempotency-Key"?: string;
2274
2409
  /** @description The cart's current version, as returned in the ETag header. When present and stale, the mutation is rejected with 409 CART_CONFLICT instead of being applied last-write-wins. */
2275
2410
  "If-Match"?: string;
2276
2411
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
2277
2412
  "X-Shopper-Session"?: string;
2278
2413
  };
2279
- path: {
2280
- id: string;
2281
- };
2414
+ path?: never;
2282
2415
  cookie?: never;
2283
2416
  };
2284
- requestBody?: never;
2417
+ requestBody: {
2418
+ content: {
2419
+ "application/json": components["schemas"]["AddCartLineRequest"];
2420
+ };
2421
+ };
2285
2422
  responses: {
2286
2423
  /** @description OK */
2287
2424
  200: {
@@ -2292,7 +2429,7 @@ export interface operations {
2292
2429
  "application/json": components["schemas"]["CartDto"];
2293
2430
  };
2294
2431
  };
2295
- /** @description problem+json. NOT_FOUND (X-Cart-Token missing). */
2432
+ /** @description problem+json. NOT_FOUND (X-Cart-Token missing), INVALID_QUANTITY, CART_FULL, or a refusal of the cart's stored context (the site no longer sells it): MARKET_NOT_FOUND, COUNTRY_NOT_ALLOWED or LOCALE_NOT_ALLOWED. */
2296
2433
  400: {
2297
2434
  headers: {
2298
2435
  [name: string]: unknown;
@@ -2310,7 +2447,7 @@ export interface operations {
2310
2447
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2311
2448
  };
2312
2449
  };
2313
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). PERMISSION_DENIED (extension permission: cart.edit): the principal may not change its saved cart. */
2450
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). PERMISSION_DENIED (extension permission: cart.edit): the principal may not change its saved cart. Or PERMISSION_DENIED with permission login: prices are not shown to this shopper (sign in); with permission cart.edit also when the principal may not buy now (its company data is being re-validated). */
2314
2451
  403: {
2315
2452
  headers: {
2316
2453
  [name: string]: unknown;
@@ -2319,7 +2456,7 @@ export interface operations {
2319
2456
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2320
2457
  };
2321
2458
  };
2322
- /** @description problem+json. NOT_FOUND: no such cart. The same answer for a saved cart of another principal or account (with or without a session) and for a cart whose owner was erased. Or SITE_INACTIVE. */
2459
+ /** @description problem+json. NOT_FOUND: no such cart. The same answer for a saved cart of another principal or account (with or without a session) and for a cart whose owner was erased. Or SITE_INACTIVE. Or PRODUCT_NOT_FOUND: the cart's context does not see the sku (not in its assortment or price list). */
2323
2460
  404: {
2324
2461
  headers: {
2325
2462
  [name: string]: unknown;
@@ -2328,7 +2465,7 @@ export interface operations {
2328
2465
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2329
2466
  };
2330
2467
  };
2331
- /** @description problem+json. CART_CONFLICT (stale If-Match). */
2468
+ /** @description problem+json. CART_CONFLICT (stale If-Match), or STOCK_INSUFFICIENT. */
2332
2469
  409: {
2333
2470
  headers: {
2334
2471
  [name: string]: unknown;
@@ -2355,7 +2492,7 @@ export interface operations {
2355
2492
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2356
2493
  };
2357
2494
  };
2358
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2495
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the cart's price context is not projected yet; Retry-After), PRICE_CONTEXT_UNAVAILABLE (it cannot be priced), or TAX_UNAVAILABLE (the line's tax cannot be completed for the cart's destination; nothing is added); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE. */
2359
2496
  503: {
2360
2497
  headers: {
2361
2498
  [name: string]: unknown;
@@ -2366,16 +2503,18 @@ export interface operations {
2366
2503
  };
2367
2504
  };
2368
2505
  };
2369
- UpdateCartLine: {
2506
+ RemoveCartLine: {
2370
2507
  parameters: {
2371
2508
  query?: never;
2372
2509
  header: {
2373
2510
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2374
2511
  "X-Site-Key": string;
2375
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2512
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2376
2513
  "X-Market"?: string;
2377
- /** @description BCP-47 language tag. Omit to use the market's language. */
2378
- "Accept-Language"?: string;
2514
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2515
+ "X-Country"?: string;
2516
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2517
+ "X-Locale"?: string;
2379
2518
  /** @description The bearer token returned by POST /v1/cart. Identifies which cart this request reads or mutates. */
2380
2519
  "X-Cart-Token": string;
2381
2520
  /** @description The cart's current version, as returned in the ETag header. When present and stale, the mutation is rejected with 409 CART_CONFLICT instead of being applied last-write-wins. */
@@ -2388,11 +2527,7 @@ export interface operations {
2388
2527
  };
2389
2528
  cookie?: never;
2390
2529
  };
2391
- requestBody: {
2392
- content: {
2393
- "application/json": components["schemas"]["UpdateCartLineRequest"];
2394
- };
2395
- };
2530
+ requestBody?: never;
2396
2531
  responses: {
2397
2532
  /** @description OK */
2398
2533
  200: {
@@ -2403,7 +2538,7 @@ export interface operations {
2403
2538
  "application/json": components["schemas"]["CartDto"];
2404
2539
  };
2405
2540
  };
2406
- /** @description problem+json. NOT_FOUND (X-Cart-Token missing), or INVALID_QUANTITY. */
2541
+ /** @description problem+json. NOT_FOUND (X-Cart-Token missing). */
2407
2542
  400: {
2408
2543
  headers: {
2409
2544
  [name: string]: unknown;
@@ -2439,7 +2574,7 @@ export interface operations {
2439
2574
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2440
2575
  };
2441
2576
  };
2442
- /** @description problem+json. CART_CONFLICT (stale If-Match), STOCK_INSUFFICIENT, or PRODUCT_GONE. */
2577
+ /** @description problem+json. CART_CONFLICT (stale If-Match). */
2443
2578
  409: {
2444
2579
  headers: {
2445
2580
  [name: string]: unknown;
@@ -2466,7 +2601,7 @@ export interface operations {
2466
2601
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2467
2602
  };
2468
2603
  };
2469
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2604
+ /** @description problem+json. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2470
2605
  503: {
2471
2606
  headers: {
2472
2607
  [name: string]: unknown;
@@ -2477,16 +2612,18 @@ export interface operations {
2477
2612
  };
2478
2613
  };
2479
2614
  };
2480
- SetCartMarket: {
2615
+ UpdateCartLine: {
2481
2616
  parameters: {
2482
2617
  query?: never;
2483
2618
  header: {
2484
2619
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2485
2620
  "X-Site-Key": string;
2486
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2621
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2487
2622
  "X-Market"?: string;
2488
- /** @description BCP-47 language tag. Omit to use the market's language. */
2489
- "Accept-Language"?: string;
2623
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2624
+ "X-Country"?: string;
2625
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2626
+ "X-Locale"?: string;
2490
2627
  /** @description The bearer token returned by POST /v1/cart. Identifies which cart this request reads or mutates. */
2491
2628
  "X-Cart-Token": string;
2492
2629
  /** @description The cart's current version, as returned in the ETag header. When present and stale, the mutation is rejected with 409 CART_CONFLICT instead of being applied last-write-wins. */
@@ -2494,12 +2631,14 @@ export interface operations {
2494
2631
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
2495
2632
  "X-Shopper-Session"?: string;
2496
2633
  };
2497
- path?: never;
2634
+ path: {
2635
+ id: string;
2636
+ };
2498
2637
  cookie?: never;
2499
2638
  };
2500
2639
  requestBody: {
2501
2640
  content: {
2502
- "application/json": components["schemas"]["SetCartMarketRequest"];
2641
+ "application/json": components["schemas"]["UpdateCartLineRequest"];
2503
2642
  };
2504
2643
  };
2505
2644
  responses: {
@@ -2512,7 +2651,7 @@ export interface operations {
2512
2651
  "application/json": components["schemas"]["CartDto"];
2513
2652
  };
2514
2653
  };
2515
- /** @description problem+json. NOT_FOUND (X-Cart-Token missing), or MARKET_UNKNOWN. */
2654
+ /** @description problem+json. NOT_FOUND (X-Cart-Token missing), INVALID_QUANTITY, or a refusal of the cart's stored context (the site no longer sells it): MARKET_NOT_FOUND, COUNTRY_NOT_ALLOWED or LOCALE_NOT_ALLOWED. */
2516
2655
  400: {
2517
2656
  headers: {
2518
2657
  [name: string]: unknown;
@@ -2530,7 +2669,7 @@ export interface operations {
2530
2669
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2531
2670
  };
2532
2671
  };
2533
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). PERMISSION_DENIED (extension permission: cart.edit): the principal may not change its saved cart. */
2672
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). PERMISSION_DENIED (extension permission: cart.edit): the principal may not change its saved cart. Or PERMISSION_DENIED with permission login: prices are not shown to this shopper (sign in); with permission cart.edit also when the principal may not buy now (its company data is being re-validated). */
2534
2673
  403: {
2535
2674
  headers: {
2536
2675
  [name: string]: unknown;
@@ -2539,7 +2678,7 @@ export interface operations {
2539
2678
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2540
2679
  };
2541
2680
  };
2542
- /** @description problem+json. NOT_FOUND: no such cart. The same answer for a saved cart of another principal or account (with or without a session) and for a cart whose owner was erased. Or SITE_INACTIVE. */
2681
+ /** @description problem+json. NOT_FOUND: no such cart. The same answer for a saved cart of another principal or account (with or without a session) and for a cart whose owner was erased. Or SITE_INACTIVE. Or PRODUCT_NOT_FOUND: the cart's context does not see the sku (not in its assortment or price list). */
2543
2682
  404: {
2544
2683
  headers: {
2545
2684
  [name: string]: unknown;
@@ -2548,7 +2687,7 @@ export interface operations {
2548
2687
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2549
2688
  };
2550
2689
  };
2551
- /** @description problem+json. CART_CONFLICT (stale If-Match). */
2690
+ /** @description problem+json. CART_CONFLICT (stale If-Match), or STOCK_INSUFFICIENT. */
2552
2691
  409: {
2553
2692
  headers: {
2554
2693
  [name: string]: unknown;
@@ -2575,7 +2714,7 @@ export interface operations {
2575
2714
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2576
2715
  };
2577
2716
  };
2578
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2717
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the cart's price context is not projected yet; Retry-After), PRICE_CONTEXT_UNAVAILABLE (it cannot be priced), or TAX_UNAVAILABLE (the line's tax cannot be completed for the cart's destination; nothing is added); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE. */
2579
2718
  503: {
2580
2719
  headers: {
2581
2720
  [name: string]: unknown;
@@ -2592,10 +2731,12 @@ export interface operations {
2592
2731
  header: {
2593
2732
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2594
2733
  "X-Site-Key": string;
2595
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2734
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2596
2735
  "X-Market"?: string;
2597
- /** @description BCP-47 language tag. Omit to use the market's language. */
2598
- "Accept-Language"?: string;
2736
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2737
+ "X-Country"?: string;
2738
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2739
+ "X-Locale"?: string;
2599
2740
  /** @description The bearer token returned by POST /v1/cart. Identifies which cart this request reads or mutates. */
2600
2741
  "X-Cart-Token": string;
2601
2742
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
@@ -2669,7 +2810,7 @@ export interface operations {
2669
2810
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2670
2811
  };
2671
2812
  };
2672
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2813
+ /** @description problem+json. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2673
2814
  503: {
2674
2815
  headers: {
2675
2816
  [name: string]: unknown;
@@ -2686,10 +2827,14 @@ export interface operations {
2686
2827
  header: {
2687
2828
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2688
2829
  "X-Site-Key": string;
2689
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2830
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2690
2831
  "X-Market"?: string;
2691
- /** @description BCP-47 language tag. Omit to use the market's language. */
2692
- "Accept-Language"?: string;
2832
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2833
+ "X-Country"?: string;
2834
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2835
+ "X-Locale"?: string;
2836
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
2837
+ "X-Shopper-Session"?: string;
2693
2838
  };
2694
2839
  path?: never;
2695
2840
  cookie?: never;
@@ -2705,7 +2850,7 @@ export interface operations {
2705
2850
  "application/json": components["schemas"]["CategoryNodeDto"][];
2706
2851
  };
2707
2852
  };
2708
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
2853
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). */
2709
2854
  400: {
2710
2855
  headers: {
2711
2856
  [name: string]: unknown;
@@ -2714,7 +2859,7 @@ export interface operations {
2714
2859
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2715
2860
  };
2716
2861
  };
2717
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
2862
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
2718
2863
  401: {
2719
2864
  headers: {
2720
2865
  [name: string]: unknown;
@@ -2723,7 +2868,7 @@ export interface operations {
2723
2868
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2724
2869
  };
2725
2870
  };
2726
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
2871
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
2727
2872
  403: {
2728
2873
  headers: {
2729
2874
  [name: string]: unknown;
@@ -2750,7 +2895,7 @@ export interface operations {
2750
2895
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2751
2896
  };
2752
2897
  };
2753
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2898
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2754
2899
  503: {
2755
2900
  headers: {
2756
2901
  [name: string]: unknown;
@@ -2767,10 +2912,12 @@ export interface operations {
2767
2912
  header: {
2768
2913
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2769
2914
  "X-Site-Key": string;
2770
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
2915
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2771
2916
  "X-Market"?: string;
2772
- /** @description BCP-47 language tag. Omit to use the market's language. */
2773
- "Accept-Language"?: string;
2917
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
2918
+ "X-Country"?: string;
2919
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
2920
+ "X-Locale"?: string;
2774
2921
  /** @description The cart's bearer token. The checkout works on this cart. */
2775
2922
  "X-Cart-Token": string;
2776
2923
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
@@ -2794,7 +2941,7 @@ export interface operations {
2794
2941
  "application/json": components["schemas"]["CheckoutDto"];
2795
2942
  };
2796
2943
  };
2797
- /** @description problem+json. NOT_FOUND (X-Cart-Token missing), OPTION_NOT_AVAILABLE, or ORIGIN_NOT_ALLOWED. */
2944
+ /** @description problem+json. NOT_FOUND (X-Cart-Token missing), OPTION_NOT_AVAILABLE, ORIGIN_NOT_ALLOWED, or a refusal of the request's commerce headers: MARKET_REQUIRED, MARKET_NOT_FOUND, COUNTRY_REQUIRED, COUNTRY_NOT_ALLOWED or LOCALE_NOT_ALLOWED. */
2798
2945
  400: {
2799
2946
  headers: {
2800
2947
  [name: string]: unknown;
@@ -2830,7 +2977,7 @@ export interface operations {
2830
2977
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2831
2978
  };
2832
2979
  };
2833
- /** @description problem+json. CART_EMPTY; CHECKOUT_CART_CHANGED (the corrected cart is in `cart`); CHECKOUT_IN_PROGRESS (Retry-After); CHECKOUT_MARKET_MISMATCH; COMPANY_CHECKOUT_UNAVAILABLE (a company principal: company checkout is not available yet). */
2980
+ /** @description problem+json. CART_EMPTY; CHECKOUT_CART_CHANGED (the corrected cart is in `cart`; also while it is `checkoutBlocked`: a line partial, unavailable or no longer covered); CHECKOUT_IN_PROGRESS (Retry-After); CONTEXT_MISMATCH (the request's market or country is not the cart's: the message names the cart's, the cart is in `cart`, and only `POST /v1/cart/context` moves it); COMPANY_CHECKOUT_UNAVAILABLE (a company principal: company checkout is not available yet). */
2834
2981
  409: {
2835
2982
  headers: {
2836
2983
  [name: string]: unknown;
@@ -2866,7 +3013,7 @@ export interface operations {
2866
3013
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2867
3014
  };
2868
3015
  };
2869
- /** @description problem+json. CHECKOUT_UNAVAILABLE, SHIPPING_UNAVAILABLE (the market's shipping configuration cannot be served) or CHECKOUT_PROVIDER_UNAVAILABLE (Retry-After); SITE_REGISTRY_WARMING. */
3016
+ /** @description problem+json. CHECKOUT_UNAVAILABLE (also, without Retry-After, for a cart in a currency that is not two-decimal or one whose quote carries a rounding component), SHIPPING_UNAVAILABLE (the market's shipping configuration cannot be served) or CHECKOUT_PROVIDER_UNAVAILABLE (Retry-After); PRICE_CONTEXT_NOT_READY (Retry-After) or PRICE_CONTEXT_UNAVAILABLE for the context the request's commerce headers name; SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE. */
2870
3017
  503: {
2871
3018
  headers: {
2872
3019
  [name: string]: unknown;
@@ -2883,10 +3030,12 @@ export interface operations {
2883
3030
  header: {
2884
3031
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2885
3032
  "X-Site-Key": string;
2886
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3033
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2887
3034
  "X-Market"?: string;
2888
- /** @description BCP-47 language tag. Omit to use the market's language. */
2889
- "Accept-Language"?: string;
3035
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3036
+ "X-Country"?: string;
3037
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3038
+ "X-Locale"?: string;
2890
3039
  /** @description The cart's bearer token. The checkout works on this cart. */
2891
3040
  "X-Cart-Token": string;
2892
3041
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
@@ -2935,7 +3084,7 @@ export interface operations {
2935
3084
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2936
3085
  };
2937
3086
  };
2938
- /** @description problem+json. CHECKOUT_NOT_FOUND: no such attempt for this site and cart; the same answer when the attempt is not open to this caller — a company attempt without a session of its own membership, or a cart whose owner was erased, whatever token is sent. Or SITE_INACTIVE. */
3087
+ /** @description problem+json. CHECKOUT_NOT_FOUND: no such attempt for this site and cart; the same answer when the attempt is not open to this caller — a company attempt without a session of its own membership, or a cart whose owner was erased, whatever token is sent. */
2939
3088
  404: {
2940
3089
  headers: {
2941
3090
  [name: string]: unknown;
@@ -2953,7 +3102,7 @@ export interface operations {
2953
3102
  "application/problem+json": components["schemas"]["StorefrontProblem"];
2954
3103
  };
2955
3104
  };
2956
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3105
+ /** @description problem+json. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
2957
3106
  503: {
2958
3107
  headers: {
2959
3108
  [name: string]: unknown;
@@ -2970,10 +3119,12 @@ export interface operations {
2970
3119
  header: {
2971
3120
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
2972
3121
  "X-Site-Key": string;
2973
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3122
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
2974
3123
  "X-Market"?: string;
2975
- /** @description BCP-47 language tag. Omit to use the market's language. */
2976
- "Accept-Language"?: string;
3124
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3125
+ "X-Country"?: string;
3126
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3127
+ "X-Locale"?: string;
2977
3128
  /** @description Optional. When it names the attempt's cart, the answer carries the order's access token (complete) or opens the order (orders). */
2978
3129
  "X-Cart-Token"?: string;
2979
3130
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
@@ -2995,7 +3146,7 @@ export interface operations {
2995
3146
  "application/json": components["schemas"]["CheckoutStatusDto"];
2996
3147
  };
2997
3148
  };
2998
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
3149
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
2999
3150
  400: {
3000
3151
  headers: {
3001
3152
  [name: string]: unknown;
@@ -3040,7 +3191,7 @@ export interface operations {
3040
3191
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3041
3192
  };
3042
3193
  };
3043
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3194
+ /** @description problem+json. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3044
3195
  503: {
3045
3196
  headers: {
3046
3197
  [name: string]: unknown;
@@ -3057,10 +3208,12 @@ export interface operations {
3057
3208
  header: {
3058
3209
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3059
3210
  "X-Site-Key": string;
3060
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3211
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3061
3212
  "X-Market"?: string;
3062
- /** @description BCP-47 language tag. Omit to use the market's language. */
3063
- "Accept-Language"?: string;
3213
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3214
+ "X-Country"?: string;
3215
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3216
+ "X-Locale"?: string;
3064
3217
  /** @description The cart's bearer token. The checkout works on this cart. */
3065
3218
  "X-Cart-Token": string;
3066
3219
  /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: it opens the principal's saved carts and orders, and is never needed for a guest cart or order. On a site without accounts it is not read. Not in the CORS allow-list. */
@@ -3109,7 +3262,7 @@ export interface operations {
3109
3262
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3110
3263
  };
3111
3264
  };
3112
- /** @description problem+json. CHECKOUT_NOT_FOUND: no such attempt for this site and cart; the same answer when the attempt is not open to this caller — a company attempt without a session of its own membership, or a cart whose owner was erased, whatever token is sent. Or SITE_INACTIVE. */
3265
+ /** @description problem+json. CHECKOUT_NOT_FOUND: no such attempt for this site and cart; the same answer when the attempt is not open to this caller — a company attempt without a session of its own membership, or a cart whose owner was erased, whatever token is sent. */
3113
3266
  404: {
3114
3267
  headers: {
3115
3268
  [name: string]: unknown;
@@ -3127,7 +3280,7 @@ export interface operations {
3127
3280
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3128
3281
  };
3129
3282
  };
3130
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3283
+ /** @description problem+json. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3131
3284
  503: {
3132
3285
  headers: {
3133
3286
  [name: string]: unknown;
@@ -3144,10 +3297,14 @@ export interface operations {
3144
3297
  header: {
3145
3298
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3146
3299
  "X-Site-Key": string;
3147
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3300
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3148
3301
  "X-Market"?: string;
3149
- /** @description BCP-47 language tag. Omit to use the market's language. */
3150
- "Accept-Language"?: string;
3302
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3303
+ "X-Country"?: string;
3304
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3305
+ "X-Locale"?: string;
3306
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
3307
+ "X-Shopper-Session"?: string;
3151
3308
  };
3152
3309
  path?: never;
3153
3310
  cookie?: never;
@@ -3163,7 +3320,7 @@ export interface operations {
3163
3320
  "application/json": components["schemas"]["CollectionDto"][];
3164
3321
  };
3165
3322
  };
3166
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
3323
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). */
3167
3324
  400: {
3168
3325
  headers: {
3169
3326
  [name: string]: unknown;
@@ -3172,7 +3329,7 @@ export interface operations {
3172
3329
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3173
3330
  };
3174
3331
  };
3175
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
3332
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
3176
3333
  401: {
3177
3334
  headers: {
3178
3335
  [name: string]: unknown;
@@ -3181,7 +3338,7 @@ export interface operations {
3181
3338
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3182
3339
  };
3183
3340
  };
3184
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
3341
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
3185
3342
  403: {
3186
3343
  headers: {
3187
3344
  [name: string]: unknown;
@@ -3208,7 +3365,7 @@ export interface operations {
3208
3365
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3209
3366
  };
3210
3367
  };
3211
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3368
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3212
3369
  503: {
3213
3370
  headers: {
3214
3371
  [name: string]: unknown;
@@ -3240,10 +3397,14 @@ export interface operations {
3240
3397
  header: {
3241
3398
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3242
3399
  "X-Site-Key": string;
3243
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3400
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3244
3401
  "X-Market"?: string;
3245
- /** @description BCP-47 language tag. Omit to use the market's language. */
3246
- "Accept-Language"?: string;
3402
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3403
+ "X-Country"?: string;
3404
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3405
+ "X-Locale"?: string;
3406
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
3407
+ "X-Shopper-Session"?: string;
3247
3408
  };
3248
3409
  path: {
3249
3410
  slugOrId: string;
@@ -3261,7 +3422,7 @@ export interface operations {
3261
3422
  "application/json": components["schemas"]["CollectionListingResponse"];
3262
3423
  };
3263
3424
  };
3264
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
3425
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country); INVALID_PAGE; PRICE_QUERY_UNSUPPORTED (a price sort, filter or facet where prices are not shown to this shopper, or on the ex-VAT basis where the country's ex amounts are incomplete) or STOCK_QUERY_UNSUPPORTED (a stock filter or facet where stock is not shown to this shopper). */
3265
3426
  400: {
3266
3427
  headers: {
3267
3428
  [name: string]: unknown;
@@ -3270,7 +3431,7 @@ export interface operations {
3270
3431
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3271
3432
  };
3272
3433
  };
3273
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
3434
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
3274
3435
  401: {
3275
3436
  headers: {
3276
3437
  [name: string]: unknown;
@@ -3279,7 +3440,7 @@ export interface operations {
3279
3440
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3280
3441
  };
3281
3442
  };
3282
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
3443
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
3283
3444
  403: {
3284
3445
  headers: {
3285
3446
  [name: string]: unknown;
@@ -3306,7 +3467,7 @@ export interface operations {
3306
3467
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3307
3468
  };
3308
3469
  };
3309
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3470
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3310
3471
  503: {
3311
3472
  headers: {
3312
3473
  [name: string]: unknown;
@@ -3323,10 +3484,12 @@ export interface operations {
3323
3484
  header: {
3324
3485
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3325
3486
  "X-Site-Key": string;
3326
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3487
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3327
3488
  "X-Market"?: string;
3328
- /** @description BCP-47 language tag. Omit to use the market's language. */
3329
- "Accept-Language"?: string;
3489
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3490
+ "X-Country"?: string;
3491
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3492
+ "X-Locale"?: string;
3330
3493
  };
3331
3494
  path?: never;
3332
3495
  cookie?: never;
@@ -3406,10 +3569,14 @@ export interface operations {
3406
3569
  header: {
3407
3570
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3408
3571
  "X-Site-Key": string;
3409
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3572
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3410
3573
  "X-Market"?: string;
3411
- /** @description BCP-47 language tag. Omit to use the market's language. */
3412
- "Accept-Language"?: string;
3574
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3575
+ "X-Country"?: string;
3576
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3577
+ "X-Locale"?: string;
3578
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
3579
+ "X-Shopper-Session"?: string;
3413
3580
  };
3414
3581
  path?: never;
3415
3582
  cookie?: never;
@@ -3429,7 +3596,7 @@ export interface operations {
3429
3596
  "application/json": components["schemas"]["SearchEventsResponse"];
3430
3597
  };
3431
3598
  };
3432
- /** @description problem+json. EVENTS_INVALID (not JSON, not { "events": [ … ] }, no event or more than 50, or a body over 64 KB; nothing is stored), or MARKET_UNKNOWN. One bad event is not a 400: it is listed in the 202's rejected. */
3599
+ /** @description problem+json. EVENTS_INVALID (not JSON, not { "events": [ … ] }, no event or more than 50, or a body over 64 KB; nothing is stored), or MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). One bad event is not a 400: it is listed in the 202's rejected. */
3433
3600
  400: {
3434
3601
  headers: {
3435
3602
  [name: string]: unknown;
@@ -3438,7 +3605,7 @@ export interface operations {
3438
3605
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3439
3606
  };
3440
3607
  };
3441
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
3608
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
3442
3609
  401: {
3443
3610
  headers: {
3444
3611
  [name: string]: unknown;
@@ -3447,7 +3614,7 @@ export interface operations {
3447
3614
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3448
3615
  };
3449
3616
  };
3450
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
3617
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
3451
3618
  403: {
3452
3619
  headers: {
3453
3620
  [name: string]: unknown;
@@ -3474,7 +3641,7 @@ export interface operations {
3474
3641
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3475
3642
  };
3476
3643
  };
3477
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3644
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3478
3645
  503: {
3479
3646
  headers: {
3480
3647
  [name: string]: unknown;
@@ -3491,10 +3658,12 @@ export interface operations {
3491
3658
  header: {
3492
3659
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
3493
3660
  "X-Site-Key": string;
3494
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3661
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3495
3662
  "X-Market"?: string;
3496
- /** @description BCP-47 language tag. Omit to use the market's language. */
3497
- "Accept-Language"?: string;
3663
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3664
+ "X-Country"?: string;
3665
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3666
+ "X-Locale"?: string;
3498
3667
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
3499
3668
  "X-Shopper-Ip"?: string;
3500
3669
  };
@@ -3512,7 +3681,7 @@ export interface operations {
3512
3681
  "application/json": components["schemas"]["AccountDto"];
3513
3682
  };
3514
3683
  };
3515
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site). */
3684
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
3516
3685
  400: {
3517
3686
  headers: {
3518
3687
  [name: string]: unknown;
@@ -3574,10 +3743,12 @@ export interface operations {
3574
3743
  header: {
3575
3744
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
3576
3745
  "X-Site-Key": string;
3577
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3746
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3578
3747
  "X-Market"?: string;
3579
- /** @description BCP-47 language tag. Omit to use the market's language. */
3580
- "Accept-Language"?: string;
3748
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3749
+ "X-Country"?: string;
3750
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3751
+ "X-Locale"?: string;
3581
3752
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
3582
3753
  "X-Shopper-Ip"?: string;
3583
3754
  };
@@ -3595,7 +3766,7 @@ export interface operations {
3595
3766
  "application/json": components["schemas"]["CartDto"];
3596
3767
  };
3597
3768
  };
3598
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site). */
3769
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
3599
3770
  400: {
3600
3771
  headers: {
3601
3772
  [name: string]: unknown;
@@ -3631,6 +3802,15 @@ export interface operations {
3631
3802
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3632
3803
  };
3633
3804
  };
3805
+ /** @description problem+json. CART_EXPIRED: this cart token belongs to an expired cart. */
3806
+ 410: {
3807
+ headers: {
3808
+ [name: string]: unknown;
3809
+ };
3810
+ content: {
3811
+ "application/problem+json": components["schemas"]["StorefrontProblem"];
3812
+ };
3813
+ };
3634
3814
  /** @description problem+json. RATE_LIMITED; retryAfterSeconds and the Retry-After header say how long to wait. */
3635
3815
  429: {
3636
3816
  headers: {
@@ -3640,7 +3820,7 @@ export interface operations {
3640
3820
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3641
3821
  };
3642
3822
  };
3643
- /** @description problem+json. SITE_KEYS_SYNCING (the server key before the site's first key sync; Retry-After) or SITE_REGISTRY_WARMING. */
3823
+ /** @description problem+json. SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE. */
3644
3824
  503: {
3645
3825
  headers: {
3646
3826
  [name: string]: unknown;
@@ -3657,10 +3837,12 @@ export interface operations {
3657
3837
  header: {
3658
3838
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
3659
3839
  "X-Site-Key": string;
3660
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3840
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3661
3841
  "X-Market"?: string;
3662
- /** @description BCP-47 language tag. Omit to use the market's language. */
3663
- "Accept-Language"?: string;
3842
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3843
+ "X-Country"?: string;
3844
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3845
+ "X-Locale"?: string;
3664
3846
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
3665
3847
  "X-Shopper-Ip"?: string;
3666
3848
  };
@@ -3678,7 +3860,7 @@ export interface operations {
3678
3860
  "application/json": components["schemas"]["MyCompanyDto"];
3679
3861
  };
3680
3862
  };
3681
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site). */
3863
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
3682
3864
  400: {
3683
3865
  headers: {
3684
3866
  [name: string]: unknown;
@@ -3740,10 +3922,12 @@ export interface operations {
3740
3922
  header: {
3741
3923
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3742
3924
  "X-Site-Key": string;
3743
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
3925
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3744
3926
  "X-Market"?: string;
3745
- /** @description BCP-47 language tag. Omit to use the market's language. */
3746
- "Accept-Language"?: string;
3927
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
3928
+ "X-Country"?: string;
3929
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
3930
+ "X-Locale"?: string;
3747
3931
  /** @description Optional. When it names the attempt's cart, the answer carries the order's access token (complete) or opens the order (orders). */
3748
3932
  "X-Cart-Token"?: string;
3749
3933
  /** @description The order's access token, from the completion answer. A header only — never a query parameter. */
@@ -3767,7 +3951,7 @@ export interface operations {
3767
3951
  "application/json": components["schemas"]["OrderDto"];
3768
3952
  };
3769
3953
  };
3770
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
3954
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
3771
3955
  400: {
3772
3956
  headers: {
3773
3957
  [name: string]: unknown;
@@ -3846,10 +4030,14 @@ export interface operations {
3846
4030
  header: {
3847
4031
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3848
4032
  "X-Site-Key": string;
3849
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4033
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3850
4034
  "X-Market"?: string;
3851
- /** @description BCP-47 language tag. Omit to use the market's language. */
3852
- "Accept-Language"?: string;
4035
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4036
+ "X-Country"?: string;
4037
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4038
+ "X-Locale"?: string;
4039
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
4040
+ "X-Shopper-Session"?: string;
3853
4041
  };
3854
4042
  path?: never;
3855
4043
  cookie?: never;
@@ -3865,7 +4053,7 @@ export interface operations {
3865
4053
  "application/json": components["schemas"]["ListingResponse"];
3866
4054
  };
3867
4055
  };
3868
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
4056
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country); INVALID_PAGE; PRICE_QUERY_UNSUPPORTED (a price sort, filter or facet where prices are not shown to this shopper, or on the ex-VAT basis where the country's ex amounts are incomplete) or STOCK_QUERY_UNSUPPORTED (a stock filter or facet where stock is not shown to this shopper). */
3869
4057
  400: {
3870
4058
  headers: {
3871
4059
  [name: string]: unknown;
@@ -3874,7 +4062,7 @@ export interface operations {
3874
4062
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3875
4063
  };
3876
4064
  };
3877
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4065
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
3878
4066
  401: {
3879
4067
  headers: {
3880
4068
  [name: string]: unknown;
@@ -3883,7 +4071,7 @@ export interface operations {
3883
4071
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3884
4072
  };
3885
4073
  };
3886
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4074
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
3887
4075
  403: {
3888
4076
  headers: {
3889
4077
  [name: string]: unknown;
@@ -3910,7 +4098,7 @@ export interface operations {
3910
4098
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3911
4099
  };
3912
4100
  };
3913
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4101
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3914
4102
  503: {
3915
4103
  headers: {
3916
4104
  [name: string]: unknown;
@@ -3927,10 +4115,14 @@ export interface operations {
3927
4115
  header: {
3928
4116
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
3929
4117
  "X-Site-Key": string;
3930
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4118
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
3931
4119
  "X-Market"?: string;
3932
- /** @description BCP-47 language tag. Omit to use the market's language. */
3933
- "Accept-Language"?: string;
4120
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4121
+ "X-Country"?: string;
4122
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4123
+ "X-Locale"?: string;
4124
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
4125
+ "X-Shopper-Session"?: string;
3934
4126
  };
3935
4127
  path: {
3936
4128
  sku: string;
@@ -3948,7 +4140,7 @@ export interface operations {
3948
4140
  "application/json": components["schemas"]["ProductDto"];
3949
4141
  };
3950
4142
  };
3951
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
4143
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). */
3952
4144
  400: {
3953
4145
  headers: {
3954
4146
  [name: string]: unknown;
@@ -3957,7 +4149,7 @@ export interface operations {
3957
4149
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3958
4150
  };
3959
4151
  };
3960
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4152
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
3961
4153
  401: {
3962
4154
  headers: {
3963
4155
  [name: string]: unknown;
@@ -3966,7 +4158,7 @@ export interface operations {
3966
4158
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3967
4159
  };
3968
4160
  };
3969
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4161
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
3970
4162
  403: {
3971
4163
  headers: {
3972
4164
  [name: string]: unknown;
@@ -3993,7 +4185,7 @@ export interface operations {
3993
4185
  "application/problem+json": components["schemas"]["StorefrontProblem"];
3994
4186
  };
3995
4187
  };
3996
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4188
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
3997
4189
  503: {
3998
4190
  headers: {
3999
4191
  [name: string]: unknown;
@@ -4017,10 +4209,14 @@ export interface operations {
4017
4209
  header: {
4018
4210
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
4019
4211
  "X-Site-Key": string;
4020
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4212
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4021
4213
  "X-Market"?: string;
4022
- /** @description BCP-47 language tag. Omit to use the market's language. */
4023
- "Accept-Language"?: string;
4214
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4215
+ "X-Country"?: string;
4216
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4217
+ "X-Locale"?: string;
4218
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
4219
+ "X-Shopper-Session"?: string;
4024
4220
  };
4025
4221
  path: {
4026
4222
  key: string;
@@ -4038,7 +4234,7 @@ export interface operations {
4038
4234
  "application/json": components["schemas"]["FacetValuesResponse"];
4039
4235
  };
4040
4236
  };
4041
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site), INVALID_PAGE, or INVALID_QUERY (q present but blank, or longer than 100 characters), or FACET_NOT_SEARCHABLE (the facet exists but has no list of values to search in: a range, a toggle or a tree). */
4237
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country); INVALID_PAGE; INVALID_QUERY (q present but blank, or longer than 100 characters), FACET_NOT_SEARCHABLE (the facet exists but has no list of values to search in: a range, a toggle or a tree), or PRICE_QUERY_UNSUPPORTED (a price sort, filter or facet where prices are not shown to this shopper, or on the ex-VAT basis where the country's ex amounts are incomplete) or STOCK_QUERY_UNSUPPORTED (a stock filter or facet where stock is not shown to this shopper). */
4042
4238
  400: {
4043
4239
  headers: {
4044
4240
  [name: string]: unknown;
@@ -4047,7 +4243,7 @@ export interface operations {
4047
4243
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4048
4244
  };
4049
4245
  };
4050
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4246
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
4051
4247
  401: {
4052
4248
  headers: {
4053
4249
  [name: string]: unknown;
@@ -4056,7 +4252,7 @@ export interface operations {
4056
4252
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4057
4253
  };
4058
4254
  };
4059
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4255
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
4060
4256
  403: {
4061
4257
  headers: {
4062
4258
  [name: string]: unknown;
@@ -4083,7 +4279,7 @@ export interface operations {
4083
4279
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4084
4280
  };
4085
4281
  };
4086
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4282
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4087
4283
  503: {
4088
4284
  headers: {
4089
4285
  [name: string]: unknown;
@@ -4103,10 +4299,14 @@ export interface operations {
4103
4299
  header: {
4104
4300
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
4105
4301
  "X-Site-Key": string;
4106
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4302
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4107
4303
  "X-Market"?: string;
4108
- /** @description BCP-47 language tag. Omit to use the market's language. */
4109
- "Accept-Language"?: string;
4304
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4305
+ "X-Country"?: string;
4306
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4307
+ "X-Locale"?: string;
4308
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
4309
+ "X-Shopper-Session"?: string;
4110
4310
  };
4111
4311
  path: {
4112
4312
  slugOrId: string;
@@ -4124,7 +4324,7 @@ export interface operations {
4124
4324
  "application/json": components["schemas"]["ProductDto"];
4125
4325
  };
4126
4326
  };
4127
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
4327
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). */
4128
4328
  400: {
4129
4329
  headers: {
4130
4330
  [name: string]: unknown;
@@ -4133,7 +4333,7 @@ export interface operations {
4133
4333
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4134
4334
  };
4135
4335
  };
4136
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4336
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
4137
4337
  401: {
4138
4338
  headers: {
4139
4339
  [name: string]: unknown;
@@ -4142,7 +4342,7 @@ export interface operations {
4142
4342
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4143
4343
  };
4144
4344
  };
4145
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4345
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
4146
4346
  403: {
4147
4347
  headers: {
4148
4348
  [name: string]: unknown;
@@ -4169,7 +4369,7 @@ export interface operations {
4169
4369
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4170
4370
  };
4171
4371
  };
4172
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4372
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4173
4373
  503: {
4174
4374
  headers: {
4175
4375
  [name: string]: unknown;
@@ -4195,10 +4395,14 @@ export interface operations {
4195
4395
  header: {
4196
4396
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
4197
4397
  "X-Site-Key": string;
4198
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4398
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4199
4399
  "X-Market"?: string;
4200
- /** @description BCP-47 language tag. Omit to use the market's language. */
4201
- "Accept-Language"?: string;
4400
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4401
+ "X-Country"?: string;
4402
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4403
+ "X-Locale"?: string;
4404
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
4405
+ "X-Shopper-Session"?: string;
4202
4406
  };
4203
4407
  path: {
4204
4408
  slugOrId: string;
@@ -4216,7 +4420,7 @@ export interface operations {
4216
4420
  "application/json": components["schemas"]["VariantPageDto"];
4217
4421
  };
4218
4422
  };
4219
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site), INVALID_PAGE, or INVALID_FILTER (an unknown option axis in filter[], or a non-boolean filter[in-stock]). */
4423
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country); INVALID_PAGE; INVALID_FILTER (an unknown option axis in filter[], or a non-boolean filter[in-stock]), or STOCK_QUERY_UNSUPPORTED (filter[in-stock] where stock is not shown to this shopper). */
4220
4424
  400: {
4221
4425
  headers: {
4222
4426
  [name: string]: unknown;
@@ -4225,7 +4429,7 @@ export interface operations {
4225
4429
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4226
4430
  };
4227
4431
  };
4228
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4432
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
4229
4433
  401: {
4230
4434
  headers: {
4231
4435
  [name: string]: unknown;
@@ -4234,7 +4438,7 @@ export interface operations {
4234
4438
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4235
4439
  };
4236
4440
  };
4237
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4441
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
4238
4442
  403: {
4239
4443
  headers: {
4240
4444
  [name: string]: unknown;
@@ -4261,7 +4465,7 @@ export interface operations {
4261
4465
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4262
4466
  };
4263
4467
  };
4264
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4468
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4265
4469
  503: {
4266
4470
  headers: {
4267
4471
  [name: string]: unknown;
@@ -4281,10 +4485,14 @@ export interface operations {
4281
4485
  header: {
4282
4486
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
4283
4487
  "X-Site-Key": string;
4284
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4488
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4285
4489
  "X-Market"?: string;
4286
- /** @description BCP-47 language tag. Omit to use the market's language. */
4287
- "Accept-Language"?: string;
4490
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4491
+ "X-Country"?: string;
4492
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4493
+ "X-Locale"?: string;
4494
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
4495
+ "X-Shopper-Session"?: string;
4288
4496
  };
4289
4497
  path?: never;
4290
4498
  cookie?: never;
@@ -4300,7 +4508,7 @@ export interface operations {
4300
4508
  "application/json": components["schemas"]["SuggestResponse"];
4301
4509
  };
4302
4510
  };
4303
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site), INVALID_PAGE, or INVALID_QUERY (q missing, blank or longer than 100 characters). */
4511
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country); INVALID_QUERY (q missing, blank or longer than 100 characters). */
4304
4512
  400: {
4305
4513
  headers: {
4306
4514
  [name: string]: unknown;
@@ -4309,7 +4517,7 @@ export interface operations {
4309
4517
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4310
4518
  };
4311
4519
  };
4312
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4520
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
4313
4521
  401: {
4314
4522
  headers: {
4315
4523
  [name: string]: unknown;
@@ -4318,7 +4526,7 @@ export interface operations {
4318
4526
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4319
4527
  };
4320
4528
  };
4321
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4529
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
4322
4530
  403: {
4323
4531
  headers: {
4324
4532
  [name: string]: unknown;
@@ -4345,7 +4553,7 @@ export interface operations {
4345
4553
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4346
4554
  };
4347
4555
  };
4348
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4556
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4349
4557
  503: {
4350
4558
  headers: {
4351
4559
  [name: string]: unknown;
@@ -4362,10 +4570,12 @@ export interface operations {
4362
4570
  header: {
4363
4571
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
4364
4572
  "X-Site-Key": string;
4365
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4573
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4366
4574
  "X-Market"?: string;
4367
- /** @description BCP-47 language tag. Omit to use the market's language. */
4368
- "Accept-Language"?: string;
4575
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4576
+ "X-Country"?: string;
4577
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4578
+ "X-Locale"?: string;
4369
4579
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
4370
4580
  "X-Shopper-Ip"?: string;
4371
4581
  };
@@ -4383,7 +4593,7 @@ export interface operations {
4383
4593
  "application/json": components["schemas"]["SessionDto"];
4384
4594
  };
4385
4595
  };
4386
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site). */
4596
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
4387
4597
  400: {
4388
4598
  headers: {
4389
4599
  [name: string]: unknown;
@@ -4445,10 +4655,12 @@ export interface operations {
4445
4655
  header: {
4446
4656
  /** @description The site's server key (sfk_srv_…). Account routes answer 403 SERVER_KEY_REQUIRED to any other key; server-side only. */
4447
4657
  "X-Site-Key": string;
4448
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4658
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4449
4659
  "X-Market"?: string;
4450
- /** @description BCP-47 language tag. Omit to use the market's language. */
4451
- "Accept-Language"?: string;
4660
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4661
+ "X-Country"?: string;
4662
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4663
+ "X-Locale"?: string;
4452
4664
  /** @description The shopper's IP address as the frontend server saw it. Trusted only with a verified server key; the sign-in rate limits are per shopper IP. */
4453
4665
  "X-Shopper-Ip"?: string;
4454
4666
  };
@@ -4470,7 +4682,7 @@ export interface operations {
4470
4682
  "application/json": components["schemas"]["SignedInDto"];
4471
4683
  };
4472
4684
  };
4473
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site). */
4685
+ /** @description problem+json. Not answered by this route: it has no 400 of its own, and X-Market, X-Country and X-Locale play no part in it. */
4474
4686
  400: {
4475
4687
  headers: {
4476
4688
  [name: string]: unknown;
@@ -4532,10 +4744,16 @@ export interface operations {
4532
4744
  header: {
4533
4745
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
4534
4746
  "X-Site-Key": string;
4535
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4747
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4536
4748
  "X-Market"?: string;
4537
- /** @description BCP-47 language tag. Omit to use the market's language. */
4749
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4750
+ "X-Country"?: string;
4751
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4752
+ "X-Locale"?: string;
4753
+ /** @description Read for suggestedLocale only, a hint for a locale picker. It selects nothing here or on any other route. */
4538
4754
  "Accept-Language"?: string;
4755
+ /** @description Optional. The shopper session (sfs_…) of a signed-in shopper, server-to-server with the site's server key only: the request resolves with the session's principal, so its prices, offer and stock visibility apply, and the answer is private, no-store. On a site without accounts it is not read. Not in the CORS allow-list. */
4756
+ "X-Shopper-Session"?: string;
4539
4757
  };
4540
4758
  path?: never;
4541
4759
  cookie?: never;
@@ -4551,7 +4769,7 @@ export interface operations {
4551
4769
  "application/json": components["schemas"]["SiteDto"];
4552
4770
  };
4553
4771
  };
4554
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site) or INVALID_PAGE. */
4772
+ /** @description problem+json. MARKET_REQUIRED (several markets, no X-Market and no default binding), MARKET_NOT_FOUND (an unknown or inactive market), COUNTRY_NOT_ALLOWED (the country is not in the market) or LOCALE_NOT_ALLOWED (the locale is not allowed for the market and country). */
4555
4773
  400: {
4556
4774
  headers: {
4557
4775
  [name: string]: unknown;
@@ -4560,7 +4778,7 @@ export interface operations {
4560
4778
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4561
4779
  };
4562
4780
  };
4563
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4781
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
4564
4782
  401: {
4565
4783
  headers: {
4566
4784
  [name: string]: unknown;
@@ -4569,7 +4787,7 @@ export interface operations {
4569
4787
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4570
4788
  };
4571
4789
  };
4572
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4790
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). A catalog read never answers PERMISSION_DENIED: a shopper who may not see prices reads the catalog with offerStatus loginRequired, and a price or stock query, where the operation takes one, is its 400. */
4573
4791
  403: {
4574
4792
  headers: {
4575
4793
  [name: string]: unknown;
@@ -4596,7 +4814,7 @@ export interface operations {
4596
4814
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4597
4815
  };
4598
4816
  };
4599
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4817
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4600
4818
  503: {
4601
4819
  headers: {
4602
4820
  [name: string]: unknown;
@@ -4612,9 +4830,11 @@ export interface operations {
4612
4830
  query?: {
4613
4831
  /** @description Which URLs to list. Defaults to product. */
4614
4832
  type?: "brand" | "collection" | "product";
4833
+ /** @description The page binding (`{market}/{COUNTRY}/{locale}`, one of `GET /v1/site` bindings) whose URLs are listed; defaults to the default binding. A secondary (non-indexable) binding lists nothing (an empty 200). An id the site does not publish is a 404 with code NOT_FOUND. The sitemap is always the public, anonymous one: X-Market, X-Country, X-Locale and a shopper session are ignored. */
4834
+ binding?: string;
4615
4835
  /** @description Inclusive ISO-8601 timestamp; only entries changed at or after it. An offset-free value is read as UTC. */
4616
4836
  since?: string;
4617
- /** @description Cursor mode: start with "start", then pass each response's nextCursor until it is null. No result window applies. Not combined with page > 1. A value this endpoint did not issue for the same type is a 400 with code INVALID_CURSOR. */
4837
+ /** @description Cursor mode: start with "start", then pass each response's nextCursor until it is null. No result window applies. Not combined with page > 1. A value this endpoint did not issue for the same site, binding, type and since is a 400 with code INVALID_CURSOR. A cursor continues on the catalog generation its walk started on; once that generation is gone (brand cursors: once another is active) or after an hour it is a 409 with code CURSOR_EXPIRED: restart from "start". */
4618
4838
  cursor?: string;
4619
4839
  /** @description Page mode only (no cursor). 1-based page. page × pageSize must not exceed 10000 (default pageSize 500, max 1000). Use cursor=start to walk past that. */
4620
4840
  page?: number;
@@ -4624,10 +4844,12 @@ export interface operations {
4624
4844
  header: {
4625
4845
  /** @description Publishable, preview or secret site key. Required on every request; secret keys are server-side only. */
4626
4846
  "X-Site-Key": string;
4627
- /** @description Market code (e.g. "se"). Omit for the site's default market. */
4847
+ /** @description Market code (e.g. "eur"). Optional when the site has one market; else the default binding's market. */
4628
4848
  "X-Market"?: string;
4629
- /** @description BCP-47 language tag. Omit to use the market's language. */
4630
- "Accept-Language"?: string;
4849
+ /** @description ISO 3166-1 alpha-2 country (e.g. "DE"). Optional when the market has one country; catalog reads fall back to the market's default country, cart and checkout require it. */
4850
+ "X-Country"?: string;
4851
+ /** @description Locale tag as the site spells it (e.g. "sv"). Optional: the country's default locale. Accept-Language selects nothing. */
4852
+ "X-Locale"?: string;
4631
4853
  };
4632
4854
  path?: never;
4633
4855
  cookie?: never;
@@ -4643,7 +4865,7 @@ export interface operations {
4643
4865
  "application/json": components["schemas"]["SitemapResponse"];
4644
4866
  };
4645
4867
  };
4646
- /** @description problem+json. MARKET_UNKNOWN (no such market on this site), INVALID_PAGE, or INVALID_TYPE (an unknown type), INVALID_SINCE (since not an ISO-8601 timestamp) or INVALID_CURSOR (a cursor that is not start or a nextCursor issued for this type). */
4868
+ /** @description problem+json. INVALID_PAGE, INVALID_TYPE (an unknown type), INVALID_SINCE (since not an ISO-8601 timestamp) or INVALID_CURSOR (a cursor that is not start or a nextCursor issued for this site, binding, type and since). MARKET_REQUIRED, MARKET_NOT_FOUND, COUNTRY_NOT_ALLOWED or LOCALE_NOT_ALLOWED when the site's config gives no usable binding (several markets and no default binding, or a binding its market no longer allows): these come from the config, never from a request header. */
4647
4869
  400: {
4648
4870
  headers: {
4649
4871
  [name: string]: unknown;
@@ -4652,7 +4874,7 @@ export interface operations {
4652
4874
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4653
4875
  };
4654
4876
  };
4655
- /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID. */
4877
+ /** @description problem+json. SITE_KEY_MISSING or SITE_KEY_INVALID; SESSION_INVALID when an X-Shopper-Session is sent on a site with accounts and does not validate (unknown, expired or revoked) — never a silent signed-out answer. Render signed-out and clear the session cookie. */
4656
4878
  401: {
4657
4879
  headers: {
4658
4880
  [name: string]: unknown;
@@ -4661,7 +4883,7 @@ export interface operations {
4661
4883
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4662
4884
  };
4663
4885
  };
4664
- /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret key was sent from a browser. */
4886
+ /** @description problem+json. SECRET_KEY_FROM_BROWSER: a secret or server key was sent from a browser. With X-Shopper-Session: SERVER_KEY_REQUIRED (any key but the site's server key) or SESSION_FROM_BROWSER (the header with an Origin header). */
4665
4887
  403: {
4666
4888
  headers: {
4667
4889
  [name: string]: unknown;
@@ -4670,7 +4892,7 @@ export interface operations {
4670
4892
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4671
4893
  };
4672
4894
  };
4673
- /** @description problem+json. SITE_INACTIVE, or NOT_FOUND for an unrouted path. */
4895
+ /** @description problem+json. NOT_FOUND (a binding this site does not publish), or SITE_INACTIVE when the site itself is not live. */
4674
4896
  404: {
4675
4897
  headers: {
4676
4898
  [name: string]: unknown;
@@ -4679,6 +4901,15 @@ export interface operations {
4679
4901
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4680
4902
  };
4681
4903
  };
4904
+ /** @description problem+json. CURSOR_EXPIRED: the cursor's catalog generation is gone (a brand cursor: another generation is active) or the cursor is more than an hour old. Restart the walk from cursor=start. */
4905
+ 409: {
4906
+ headers: {
4907
+ [name: string]: unknown;
4908
+ };
4909
+ content: {
4910
+ "application/problem+json": components["schemas"]["StorefrontProblem"];
4911
+ };
4912
+ };
4682
4913
  /** @description problem+json. RATE_LIMITED; retryAfterSeconds and the Retry-After header say how long to wait. */
4683
4914
  429: {
4684
4915
  headers: {
@@ -4688,7 +4919,7 @@ export interface operations {
4688
4919
  "application/problem+json": components["schemas"]["StorefrontProblem"];
4689
4920
  };
4690
4921
  };
4691
- /** @description problem+json. SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4922
+ /** @description problem+json. PRICE_CONTEXT_NOT_READY (the request's price context is not projected yet; Retry-After) or PRICE_CONTEXT_UNAVAILABLE (it cannot be priced); SITE_KEYS_SYNCING (a secret or server key before the site's first key sync; Retry-After), SITE_REGISTRY_WARMING or INDEX_UNAVAILABLE — retry, the request was not wrong. */
4692
4923
  503: {
4693
4924
  headers: {
4694
4925
  [name: string]: unknown;