@open-mercato/core 0.9.1-develop.7474.1.51db10479d → 0.9.1-develop.7475.1.28ca93ed97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/generated/entities/catalog_price_history_entry/index.js +53 -0
  3. package/dist/generated/entities/catalog_price_history_entry/index.js.map +7 -0
  4. package/dist/generated/entities/customer_group_terms/index.js +2 -0
  5. package/dist/generated/entities/customer_group_terms/index.js.map +2 -2
  6. package/dist/generated/entities/ecommerce_store/index.js +33 -0
  7. package/dist/generated/entities/ecommerce_store/index.js.map +7 -0
  8. package/dist/generated/entities/ecommerce_store_channel_binding/index.js +29 -0
  9. package/dist/generated/entities/ecommerce_store_channel_binding/index.js.map +7 -0
  10. package/dist/generated/entities/ecommerce_store_domain_binding/index.js +23 -0
  11. package/dist/generated/entities/ecommerce_store_domain_binding/index.js.map +7 -0
  12. package/dist/generated/entities.ids.generated.js +8 -1
  13. package/dist/generated/entities.ids.generated.js.map +2 -2
  14. package/dist/generated/entity-fields-registry.js +72 -0
  15. package/dist/generated/entity-fields-registry.js.map +2 -2
  16. package/dist/helpers/integration/customerGroupsFixtures.js.map +2 -2
  17. package/dist/modules/catalog/acl.js +8 -1
  18. package/dist/modules/catalog/acl.js.map +2 -2
  19. package/dist/modules/catalog/api/config/omnibus/route.js +184 -0
  20. package/dist/modules/catalog/api/config/omnibus/route.js.map +7 -0
  21. package/dist/modules/catalog/api/prices/history/route.js +131 -0
  22. package/dist/modules/catalog/api/prices/history/route.js.map +7 -0
  23. package/dist/modules/catalog/api/prices/omnibus-preview/route.js +184 -0
  24. package/dist/modules/catalog/api/prices/omnibus-preview/route.js.map +7 -0
  25. package/dist/modules/catalog/api/products/route.js +54 -245
  26. package/dist/modules/catalog/api/products/route.js.map +3 -3
  27. package/dist/modules/catalog/api/tags/route.js +6 -0
  28. package/dist/modules/catalog/api/tags/route.js.map +2 -2
  29. package/dist/modules/catalog/backend/config/catalog/page.js +3 -1
  30. package/dist/modules/catalog/backend/config/catalog/page.js.map +2 -2
  31. package/dist/modules/catalog/cli.js +80 -2
  32. package/dist/modules/catalog/cli.js.map +2 -2
  33. package/dist/modules/catalog/commands/categories.js +51 -2
  34. package/dist/modules/catalog/commands/categories.js.map +2 -2
  35. package/dist/modules/catalog/commands/prices.js +43 -1
  36. package/dist/modules/catalog/commands/prices.js.map +2 -2
  37. package/dist/modules/catalog/commands/products.js +71 -0
  38. package/dist/modules/catalog/commands/products.js.map +2 -2
  39. package/dist/modules/catalog/commands/variants.js +7 -0
  40. package/dist/modules/catalog/commands/variants.js.map +2 -2
  41. package/dist/modules/catalog/components/OmnibusSettings.js +703 -0
  42. package/dist/modules/catalog/components/OmnibusSettings.js.map +7 -0
  43. package/dist/modules/catalog/components/PriceEditorOmnibusRow.js +152 -0
  44. package/dist/modules/catalog/components/PriceEditorOmnibusRow.js.map +7 -0
  45. package/dist/modules/catalog/components/lookupSources.js +31 -0
  46. package/dist/modules/catalog/components/lookupSources.js.map +7 -0
  47. package/dist/modules/catalog/components/prices/PriceScopeSelectors.js +8 -2
  48. package/dist/modules/catalog/components/prices/PriceScopeSelectors.js.map +2 -2
  49. package/dist/modules/catalog/components/products/VariantBuilder.js +11 -1
  50. package/dist/modules/catalog/components/products/VariantBuilder.js.map +2 -2
  51. package/dist/modules/catalog/data/entities.js +122 -1
  52. package/dist/modules/catalog/data/entities.js.map +2 -2
  53. package/dist/modules/catalog/data/validators.js +78 -0
  54. package/dist/modules/catalog/data/validators.js.map +2 -2
  55. package/dist/modules/catalog/di.js +18 -0
  56. package/dist/modules/catalog/di.js.map +2 -2
  57. package/dist/modules/catalog/lib/omnibus.js +285 -0
  58. package/dist/modules/catalog/lib/omnibus.js.map +7 -0
  59. package/dist/modules/catalog/lib/omnibusBackfill.js +146 -0
  60. package/dist/modules/catalog/lib/omnibusBackfill.js.map +7 -0
  61. package/dist/modules/catalog/lib/omnibusCache.js +89 -0
  62. package/dist/modules/catalog/lib/omnibusCache.js.map +7 -0
  63. package/dist/modules/catalog/lib/omnibusConfig.js +64 -0
  64. package/dist/modules/catalog/lib/omnibusConfig.js.map +7 -0
  65. package/dist/modules/catalog/lib/omnibusHistoryQueries.js +191 -0
  66. package/dist/modules/catalog/lib/omnibusHistoryQueries.js.map +7 -0
  67. package/dist/modules/catalog/lib/omnibusPresentedEntry.js +73 -0
  68. package/dist/modules/catalog/lib/omnibusPresentedEntry.js.map +7 -0
  69. package/dist/modules/catalog/lib/omnibusProductListEnrichment.js +94 -0
  70. package/dist/modules/catalog/lib/omnibusProductListEnrichment.js.map +7 -0
  71. package/dist/modules/catalog/lib/omnibusTypes.js +115 -0
  72. package/dist/modules/catalog/lib/omnibusTypes.js.map +7 -0
  73. package/dist/modules/catalog/lib/optionSchemaTranslations.js +55 -0
  74. package/dist/modules/catalog/lib/optionSchemaTranslations.js.map +7 -0
  75. package/dist/modules/catalog/lib/priceHistoryQuery.js +103 -0
  76. package/dist/modules/catalog/lib/priceHistoryQuery.js.map +7 -0
  77. package/dist/modules/catalog/lib/pricing.js +26 -2
  78. package/dist/modules/catalog/lib/pricing.js.map +2 -2
  79. package/dist/modules/catalog/lib/productFilters.js +273 -0
  80. package/dist/modules/catalog/lib/productFilters.js.map +7 -0
  81. package/dist/modules/catalog/lib/productScopeKeys.js +105 -0
  82. package/dist/modules/catalog/lib/productScopeKeys.js.map +7 -0
  83. package/dist/modules/catalog/lib/productScopeReindex.js +73 -0
  84. package/dist/modules/catalog/lib/productScopeReindex.js.map +7 -0
  85. package/dist/modules/catalog/migrations/Migration20261005105352_catalog.js +39 -0
  86. package/dist/modules/catalog/migrations/Migration20261005105352_catalog.js.map +7 -0
  87. package/dist/modules/catalog/migrations/Migration20261005150824_catalog.js +39 -0
  88. package/dist/modules/catalog/migrations/Migration20261005150824_catalog.js.map +7 -0
  89. package/dist/modules/catalog/services/catalogOmnibusService.js +480 -0
  90. package/dist/modules/catalog/services/catalogOmnibusService.js.map +7 -0
  91. package/dist/modules/catalog/setup.js +3 -1
  92. package/dist/modules/catalog/setup.js.map +2 -2
  93. package/dist/modules/catalog/subscribers/product-scope-keys-category-deleted.js +16 -0
  94. package/dist/modules/catalog/subscribers/product-scope-keys-category-deleted.js.map +7 -0
  95. package/dist/modules/catalog/subscribers/product-scope-keys-category-updated.js +17 -0
  96. package/dist/modules/catalog/subscribers/product-scope-keys-category-updated.js.map +7 -0
  97. package/dist/modules/catalog/translations.js +10 -0
  98. package/dist/modules/catalog/translations.js.map +2 -2
  99. package/dist/modules/configs/lib/upgrade-actions.js +28 -0
  100. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  101. package/dist/modules/customer_groups/api/customer-groups/[id]/terms/route.js +5 -0
  102. package/dist/modules/customer_groups/api/customer-groups/[id]/terms/route.js.map +2 -2
  103. package/dist/modules/customer_groups/components/CustomerGroupTermsSection.js +111 -3
  104. package/dist/modules/customer_groups/components/CustomerGroupTermsSection.js.map +2 -2
  105. package/dist/modules/customer_groups/components/customerGroupAssortmentScope.js +43 -0
  106. package/dist/modules/customer_groups/components/customerGroupAssortmentScope.js.map +7 -0
  107. package/dist/modules/customer_groups/data/entities.js +3 -0
  108. package/dist/modules/customer_groups/data/entities.js.map +2 -2
  109. package/dist/modules/customer_groups/data/validators.js +9 -0
  110. package/dist/modules/customer_groups/data/validators.js.map +2 -2
  111. package/dist/modules/customer_groups/migrations/Migration20261005110250_customer_groups.js +17 -0
  112. package/dist/modules/customer_groups/migrations/Migration20261005110250_customer_groups.js.map +7 -0
  113. package/dist/modules/customer_groups/services/customerGroupsService.js +62 -15
  114. package/dist/modules/customer_groups/services/customerGroupsService.js.map +2 -2
  115. package/dist/modules/ecommerce/acl.js +13 -0
  116. package/dist/modules/ecommerce/acl.js.map +7 -0
  117. package/dist/modules/ecommerce/api/domain-mappings/route.js +72 -0
  118. package/dist/modules/ecommerce/api/domain-mappings/route.js.map +7 -0
  119. package/dist/modules/ecommerce/api/openapi.js +27 -0
  120. package/dist/modules/ecommerce/api/openapi.js.map +7 -0
  121. package/dist/modules/ecommerce/api/store-channel-bindings/[id]/assortment-count/route.js +109 -0
  122. package/dist/modules/ecommerce/api/store-channel-bindings/[id]/assortment-count/route.js.map +7 -0
  123. package/dist/modules/ecommerce/api/store-channel-bindings/crud.js +265 -0
  124. package/dist/modules/ecommerce/api/store-channel-bindings/crud.js.map +7 -0
  125. package/dist/modules/ecommerce/api/store-channel-bindings/route.js +67 -0
  126. package/dist/modules/ecommerce/api/store-channel-bindings/route.js.map +7 -0
  127. package/dist/modules/ecommerce/api/store-domain-bindings/crud.js +296 -0
  128. package/dist/modules/ecommerce/api/store-domain-bindings/crud.js.map +7 -0
  129. package/dist/modules/ecommerce/api/store-domain-bindings/route.js +73 -0
  130. package/dist/modules/ecommerce/api/store-domain-bindings/route.js.map +7 -0
  131. package/dist/modules/ecommerce/api/storefront/categories/[slug]/route.js +87 -0
  132. package/dist/modules/ecommerce/api/storefront/categories/[slug]/route.js.map +7 -0
  133. package/dist/modules/ecommerce/api/storefront/categories/openapiSchemas.js +50 -0
  134. package/dist/modules/ecommerce/api/storefront/categories/openapiSchemas.js.map +7 -0
  135. package/dist/modules/ecommerce/api/storefront/categories/route.js +75 -0
  136. package/dist/modules/ecommerce/api/storefront/categories/route.js.map +7 -0
  137. package/dist/modules/ecommerce/api/storefront/context/route.js +163 -0
  138. package/dist/modules/ecommerce/api/storefront/context/route.js.map +7 -0
  139. package/dist/modules/ecommerce/api/storefront/products/[idOrHandle]/route.js +87 -0
  140. package/dist/modules/ecommerce/api/storefront/products/[idOrHandle]/route.js.map +7 -0
  141. package/dist/modules/ecommerce/api/storefront/products/openapiSchemas.js +177 -0
  142. package/dist/modules/ecommerce/api/storefront/products/openapiSchemas.js.map +7 -0
  143. package/dist/modules/ecommerce/api/storefront/products/route.js +78 -0
  144. package/dist/modules/ecommerce/api/storefront/products/route.js.map +7 -0
  145. package/dist/modules/ecommerce/api/storefront/search/suggest/openapiSchemas.js +25 -0
  146. package/dist/modules/ecommerce/api/storefront/search/suggest/openapiSchemas.js.map +7 -0
  147. package/dist/modules/ecommerce/api/storefront/search/suggest/route.js +75 -0
  148. package/dist/modules/ecommerce/api/storefront/search/suggest/route.js.map +7 -0
  149. package/dist/modules/ecommerce/api/storefront/storefrontRouteSupport.js +58 -0
  150. package/dist/modules/ecommerce/api/storefront/storefrontRouteSupport.js.map +7 -0
  151. package/dist/modules/ecommerce/api/stores/[id]/branding/route.js +183 -0
  152. package/dist/modules/ecommerce/api/stores/[id]/branding/route.js.map +7 -0
  153. package/dist/modules/ecommerce/api/stores/[id]/preview-branding/route.js +92 -0
  154. package/dist/modules/ecommerce/api/stores/[id]/preview-branding/route.js.map +7 -0
  155. package/dist/modules/ecommerce/api/stores/crud.js +401 -0
  156. package/dist/modules/ecommerce/api/stores/crud.js.map +7 -0
  157. package/dist/modules/ecommerce/api/stores/route.js +64 -0
  158. package/dist/modules/ecommerce/api/stores/route.js.map +7 -0
  159. package/dist/modules/ecommerce/backend/config/ecommerce/[id]/page.js +9 -0
  160. package/dist/modules/ecommerce/backend/config/ecommerce/[id]/page.js.map +7 -0
  161. package/dist/modules/ecommerce/backend/config/ecommerce/[id]/page.meta.js +16 -0
  162. package/dist/modules/ecommerce/backend/config/ecommerce/[id]/page.meta.js.map +7 -0
  163. package/dist/modules/ecommerce/backend/config/ecommerce/page.js +9 -0
  164. package/dist/modules/ecommerce/backend/config/ecommerce/page.js.map +7 -0
  165. package/dist/modules/ecommerce/backend/config/ecommerce/page.meta.js +16 -0
  166. package/dist/modules/ecommerce/backend/config/ecommerce/page.meta.js.map +7 -0
  167. package/dist/modules/ecommerce/commands/stores.js +110 -0
  168. package/dist/modules/ecommerce/commands/stores.js.map +7 -0
  169. package/dist/modules/ecommerce/components/ChannelAssortmentCount.js +90 -0
  170. package/dist/modules/ecommerce/components/ChannelAssortmentCount.js.map +7 -0
  171. package/dist/modules/ecommerce/components/ChannelBindingFormSections.js +33 -0
  172. package/dist/modules/ecommerce/components/ChannelBindingFormSections.js.map +7 -0
  173. package/dist/modules/ecommerce/components/ChannelLookupPicker.js +11 -0
  174. package/dist/modules/ecommerce/components/ChannelLookupPicker.js.map +7 -0
  175. package/dist/modules/ecommerce/components/DomainStatusWarning.js +24 -0
  176. package/dist/modules/ecommerce/components/DomainStatusWarning.js.map +7 -0
  177. package/dist/modules/ecommerce/components/StoreAvailabilityDefaultsSection.js +190 -0
  178. package/dist/modules/ecommerce/components/StoreAvailabilityDefaultsSection.js.map +7 -0
  179. package/dist/modules/ecommerce/components/StoreBrandingControls.js +67 -0
  180. package/dist/modules/ecommerce/components/StoreBrandingControls.js.map +7 -0
  181. package/dist/modules/ecommerce/components/StoreBrandingPreview.js +69 -0
  182. package/dist/modules/ecommerce/components/StoreBrandingPreview.js.map +7 -0
  183. package/dist/modules/ecommerce/components/StoreBrandingTab.js +218 -0
  184. package/dist/modules/ecommerce/components/StoreBrandingTab.js.map +7 -0
  185. package/dist/modules/ecommerce/components/StoreChannelBindingDialog.js +270 -0
  186. package/dist/modules/ecommerce/components/StoreChannelBindingDialog.js.map +7 -0
  187. package/dist/modules/ecommerce/components/StoreChannelsTab.js +313 -0
  188. package/dist/modules/ecommerce/components/StoreChannelsTab.js.map +7 -0
  189. package/dist/modules/ecommerce/components/StoreCreateDialog.js +164 -0
  190. package/dist/modules/ecommerce/components/StoreCreateDialog.js.map +7 -0
  191. package/dist/modules/ecommerce/components/StoreDomainBindingDialog.js +162 -0
  192. package/dist/modules/ecommerce/components/StoreDomainBindingDialog.js.map +7 -0
  193. package/dist/modules/ecommerce/components/StoreDomainsTab.js +357 -0
  194. package/dist/modules/ecommerce/components/StoreDomainsTab.js.map +7 -0
  195. package/dist/modules/ecommerce/components/StoreEditPage.js +155 -0
  196. package/dist/modules/ecommerce/components/StoreEditPage.js.map +7 -0
  197. package/dist/modules/ecommerce/components/StoreGeneralTab.js +167 -0
  198. package/dist/modules/ecommerce/components/StoreGeneralTab.js.map +7 -0
  199. package/dist/modules/ecommerce/components/StoreListPage.js +290 -0
  200. package/dist/modules/ecommerce/components/StoreListPage.js.map +7 -0
  201. package/dist/modules/ecommerce/components/StoreSeoTab.js +132 -0
  202. package/dist/modules/ecommerce/components/StoreSeoTab.js.map +7 -0
  203. package/dist/modules/ecommerce/components/StoreStatusBadge.js +20 -0
  204. package/dist/modules/ecommerce/components/StoreStatusBadge.js.map +7 -0
  205. package/dist/modules/ecommerce/components/channelLookups.js +28 -0
  206. package/dist/modules/ecommerce/components/channelLookups.js.map +7 -0
  207. package/dist/modules/ecommerce/components/storeAdmin.js +41 -0
  208. package/dist/modules/ecommerce/components/storeAdmin.js.map +7 -0
  209. package/dist/modules/ecommerce/components/storeBrandingForm.js +197 -0
  210. package/dist/modules/ecommerce/components/storeBrandingForm.js.map +7 -0
  211. package/dist/modules/ecommerce/components/storeChannels.js +140 -0
  212. package/dist/modules/ecommerce/components/storeChannels.js.map +7 -0
  213. package/dist/modules/ecommerce/components/storeDomains.js +167 -0
  214. package/dist/modules/ecommerce/components/storeDomains.js.map +7 -0
  215. package/dist/modules/ecommerce/components/storeEditTabs.js +62 -0
  216. package/dist/modules/ecommerce/components/storeEditTabs.js.map +7 -0
  217. package/dist/modules/ecommerce/components/storeGeneral.js +95 -0
  218. package/dist/modules/ecommerce/components/storeGeneral.js.map +7 -0
  219. package/dist/modules/ecommerce/components/storeSeo.js +69 -0
  220. package/dist/modules/ecommerce/components/storeSeo.js.map +7 -0
  221. package/dist/modules/ecommerce/components/useChannelAssortmentCount.js +45 -0
  222. package/dist/modules/ecommerce/components/useChannelAssortmentCount.js.map +7 -0
  223. package/dist/modules/ecommerce/components/useStoreAccess.js +28 -0
  224. package/dist/modules/ecommerce/components/useStoreAccess.js.map +7 -0
  225. package/dist/modules/ecommerce/data/enrichers.js +157 -0
  226. package/dist/modules/ecommerce/data/enrichers.js.map +7 -0
  227. package/dist/modules/ecommerce/data/entities.js +197 -0
  228. package/dist/modules/ecommerce/data/entities.js.map +7 -0
  229. package/dist/modules/ecommerce/data/validators.js +406 -0
  230. package/dist/modules/ecommerce/data/validators.js.map +7 -0
  231. package/dist/modules/ecommerce/di.js +11 -0
  232. package/dist/modules/ecommerce/di.js.map +7 -0
  233. package/dist/modules/ecommerce/events.js +27 -0
  234. package/dist/modules/ecommerce/events.js.map +7 -0
  235. package/dist/modules/ecommerce/index.js +16 -0
  236. package/dist/modules/ecommerce/index.js.map +7 -0
  237. package/dist/modules/ecommerce/lib/assortmentCount.js +112 -0
  238. package/dist/modules/ecommerce/lib/assortmentCount.js.map +7 -0
  239. package/dist/modules/ecommerce/lib/brandingStyles.js +184 -0
  240. package/dist/modules/ecommerce/lib/brandingStyles.js.map +7 -0
  241. package/dist/modules/ecommerce/lib/buyerContext.js +284 -0
  242. package/dist/modules/ecommerce/lib/buyerContext.js.map +7 -0
  243. package/dist/modules/ecommerce/lib/cacheInvalidation.js +186 -0
  244. package/dist/modules/ecommerce/lib/cacheInvalidation.js.map +7 -0
  245. package/dist/modules/ecommerce/lib/cacheKeys.js +236 -0
  246. package/dist/modules/ecommerce/lib/cacheKeys.js.map +7 -0
  247. package/dist/modules/ecommerce/lib/createConflictRecheck.js +29 -0
  248. package/dist/modules/ecommerce/lib/createConflictRecheck.js.map +7 -0
  249. package/dist/modules/ecommerce/lib/crudEvents.js +94 -0
  250. package/dist/modules/ecommerce/lib/crudEvents.js.map +7 -0
  251. package/dist/modules/ecommerce/lib/crudSupport.js +64 -0
  252. package/dist/modules/ecommerce/lib/crudSupport.js.map +7 -0
  253. package/dist/modules/ecommerce/lib/domainBindingRebind.js +99 -0
  254. package/dist/modules/ecommerce/lib/domainBindingRebind.js.map +7 -0
  255. package/dist/modules/ecommerce/lib/domainMappingSummaries.js +39 -0
  256. package/dist/modules/ecommerce/lib/domainMappingSummaries.js.map +7 -0
  257. package/dist/modules/ecommerce/lib/exclusiveFlag.js +57 -0
  258. package/dist/modules/ecommerce/lib/exclusiveFlag.js.map +7 -0
  259. package/dist/modules/ecommerce/lib/references.js +70 -0
  260. package/dist/modules/ecommerce/lib/references.js.map +7 -0
  261. package/dist/modules/ecommerce/lib/seedDraftStore.js +99 -0
  262. package/dist/modules/ecommerce/lib/seedDraftStore.js.map +7 -0
  263. package/dist/modules/ecommerce/lib/storeBindingCascade.js +109 -0
  264. package/dist/modules/ecommerce/lib/storeBindingCascade.js.map +7 -0
  265. package/dist/modules/ecommerce/lib/storeBranding.js +40 -0
  266. package/dist/modules/ecommerce/lib/storeBranding.js.map +7 -0
  267. package/dist/modules/ecommerce/lib/storeBrandingRoute.js +76 -0
  268. package/dist/modules/ecommerce/lib/storeBrandingRoute.js.map +7 -0
  269. package/dist/modules/ecommerce/lib/storeContext.js +393 -0
  270. package/dist/modules/ecommerce/lib/storeContext.js.map +7 -0
  271. package/dist/modules/ecommerce/lib/storeContextService.js +43 -0
  272. package/dist/modules/ecommerce/lib/storeContextService.js.map +7 -0
  273. package/dist/modules/ecommerce/lib/storeLocale.js +60 -0
  274. package/dist/modules/ecommerce/lib/storeLocale.js.map +7 -0
  275. package/dist/modules/ecommerce/lib/storeNotifications.js +41 -0
  276. package/dist/modules/ecommerce/lib/storeNotifications.js.map +7 -0
  277. package/dist/modules/ecommerce/lib/storefrontCatalogSupport.js +248 -0
  278. package/dist/modules/ecommerce/lib/storefrontCatalogSupport.js.map +7 -0
  279. package/dist/modules/ecommerce/lib/storefrontCategories.js +241 -0
  280. package/dist/modules/ecommerce/lib/storefrontCategories.js.map +7 -0
  281. package/dist/modules/ecommerce/lib/storefrontCategoryCache.js +71 -0
  282. package/dist/modules/ecommerce/lib/storefrontCategoryCache.js.map +7 -0
  283. package/dist/modules/ecommerce/lib/storefrontDetail.js +447 -0
  284. package/dist/modules/ecommerce/lib/storefrontDetail.js.map +7 -0
  285. package/dist/modules/ecommerce/lib/storefrontFacets.js +441 -0
  286. package/dist/modules/ecommerce/lib/storefrontFacets.js.map +7 -0
  287. package/dist/modules/ecommerce/lib/storefrontOptionFilter.js +15 -0
  288. package/dist/modules/ecommerce/lib/storefrontOptionFilter.js.map +7 -0
  289. package/dist/modules/ecommerce/lib/storefrontPricing.js +393 -0
  290. package/dist/modules/ecommerce/lib/storefrontPricing.js.map +7 -0
  291. package/dist/modules/ecommerce/lib/storefrontProductCache.js +90 -0
  292. package/dist/modules/ecommerce/lib/storefrontProductCache.js.map +7 -0
  293. package/dist/modules/ecommerce/lib/storefrontProductScope.js +107 -0
  294. package/dist/modules/ecommerce/lib/storefrontProductScope.js.map +7 -0
  295. package/dist/modules/ecommerce/lib/storefrontProducts.js +670 -0
  296. package/dist/modules/ecommerce/lib/storefrontProducts.js.map +7 -0
  297. package/dist/modules/ecommerce/lib/storefrontQuery.js +156 -0
  298. package/dist/modules/ecommerce/lib/storefrontQuery.js.map +7 -0
  299. package/dist/modules/ecommerce/lib/storefrontRateLimit.js +99 -0
  300. package/dist/modules/ecommerce/lib/storefrontRateLimit.js.map +7 -0
  301. package/dist/modules/ecommerce/lib/storefrontSearch.js +303 -0
  302. package/dist/modules/ecommerce/lib/storefrontSearch.js.map +7 -0
  303. package/dist/modules/ecommerce/lib/storefrontSearchCache.js +35 -0
  304. package/dist/modules/ecommerce/lib/storefrontSearchCache.js.map +7 -0
  305. package/dist/modules/ecommerce/lib/subscriberSupport.js +33 -0
  306. package/dist/modules/ecommerce/lib/subscriberSupport.js.map +7 -0
  307. package/dist/modules/ecommerce/lib/types.js +1 -0
  308. package/dist/modules/ecommerce/lib/types.js.map +7 -0
  309. package/dist/modules/ecommerce/migrations/Migration20261005113233_ecommerce.js +32 -0
  310. package/dist/modules/ecommerce/migrations/Migration20261005113233_ecommerce.js.map +7 -0
  311. package/dist/modules/ecommerce/migrations/Migration20261006112733_ecommerce.js +17 -0
  312. package/dist/modules/ecommerce/migrations/Migration20261006112733_ecommerce.js.map +7 -0
  313. package/dist/modules/ecommerce/notifications.client.js +47 -0
  314. package/dist/modules/ecommerce/notifications.client.js.map +7 -0
  315. package/dist/modules/ecommerce/notifications.js +48 -0
  316. package/dist/modules/ecommerce/notifications.js.map +7 -0
  317. package/dist/modules/ecommerce/search.js +83 -0
  318. package/dist/modules/ecommerce/search.js.map +7 -0
  319. package/dist/modules/ecommerce/setup.js +17 -0
  320. package/dist/modules/ecommerce/setup.js.map +7 -0
  321. package/dist/modules/ecommerce/subscribers/assortment-empty-notifications.js +14 -0
  322. package/dist/modules/ecommerce/subscribers/assortment-empty-notifications.js.map +7 -0
  323. package/dist/modules/ecommerce/subscribers/availability-policy-cache-invalidation.js +14 -0
  324. package/dist/modules/ecommerce/subscribers/availability-policy-cache-invalidation.js.map +7 -0
  325. package/dist/modules/ecommerce/subscribers/catalog-category-cache-invalidation.js +14 -0
  326. package/dist/modules/ecommerce/subscribers/catalog-category-cache-invalidation.js.map +7 -0
  327. package/dist/modules/ecommerce/subscribers/catalog-price-cache-invalidation.js +14 -0
  328. package/dist/modules/ecommerce/subscribers/catalog-price-cache-invalidation.js.map +7 -0
  329. package/dist/modules/ecommerce/subscribers/catalog-product-cache-invalidation.js +14 -0
  330. package/dist/modules/ecommerce/subscribers/catalog-product-cache-invalidation.js.map +7 -0
  331. package/dist/modules/ecommerce/subscribers/catalog-variant-cache-invalidation.js +14 -0
  332. package/dist/modules/ecommerce/subscribers/catalog-variant-cache-invalidation.js.map +7 -0
  333. package/dist/modules/ecommerce/subscribers/customer-group-cache-invalidation.js +14 -0
  334. package/dist/modules/ecommerce/subscribers/customer-group-cache-invalidation.js.map +7 -0
  335. package/dist/modules/ecommerce/subscribers/customer-group-membership-cache-invalidation.js +14 -0
  336. package/dist/modules/ecommerce/subscribers/customer-group-membership-cache-invalidation.js.map +7 -0
  337. package/dist/modules/ecommerce/subscribers/customer-group-terms-cache-invalidation.js +14 -0
  338. package/dist/modules/ecommerce/subscribers/customer-group-terms-cache-invalidation.js.map +7 -0
  339. package/dist/modules/ecommerce/subscribers/customer-user-deleted-cache-invalidation.js +14 -0
  340. package/dist/modules/ecommerce/subscribers/customer-user-deleted-cache-invalidation.js.map +7 -0
  341. package/dist/modules/ecommerce/subscribers/customer-user-updated-cache-invalidation.js +14 -0
  342. package/dist/modules/ecommerce/subscribers/customer-user-updated-cache-invalidation.js.map +7 -0
  343. package/dist/modules/ecommerce/subscribers/domain-binding-rebind.js +16 -0
  344. package/dist/modules/ecommerce/subscribers/domain-binding-rebind.js.map +7 -0
  345. package/dist/modules/ecommerce/subscribers/domain-mapping-cache-invalidation.js +14 -0
  346. package/dist/modules/ecommerce/subscribers/domain-mapping-cache-invalidation.js.map +7 -0
  347. package/dist/modules/ecommerce/subscribers/store-cache-invalidation.js +14 -0
  348. package/dist/modules/ecommerce/subscribers/store-cache-invalidation.js.map +7 -0
  349. package/dist/modules/ecommerce/subscribers/store-channel-binding-cache-invalidation.js +14 -0
  350. package/dist/modules/ecommerce/subscribers/store-channel-binding-cache-invalidation.js.map +7 -0
  351. package/dist/modules/ecommerce/subscribers/store-domain-binding-cache-invalidation.js +14 -0
  352. package/dist/modules/ecommerce/subscribers/store-domain-binding-cache-invalidation.js.map +7 -0
  353. package/dist/modules/ecommerce/subscribers/store-notifications.js +14 -0
  354. package/dist/modules/ecommerce/subscribers/store-notifications.js.map +7 -0
  355. package/dist/modules/query_index/lib/batch.js +23 -9
  356. package/dist/modules/query_index/lib/batch.js.map +2 -2
  357. package/dist/modules/query_index/lib/doc-enrichers.js +212 -0
  358. package/dist/modules/query_index/lib/doc-enrichers.js.map +7 -0
  359. package/dist/modules/query_index/lib/document.js +2 -0
  360. package/dist/modules/query_index/lib/document.js.map +2 -2
  361. package/dist/modules/query_index/lib/engine.js +68 -1
  362. package/dist/modules/query_index/lib/engine.js.map +2 -2
  363. package/dist/modules/query_index/lib/indexer.js +7 -0
  364. package/dist/modules/query_index/lib/indexer.js.map +2 -2
  365. package/dist/modules/query_index/lib/search-tokens.js +2 -0
  366. package/dist/modules/query_index/lib/search-tokens.js.map +2 -2
  367. package/dist/modules/query_index/migrations/Migration20261005201500_query_index.js +17 -0
  368. package/dist/modules/query_index/migrations/Migration20261005201500_query_index.js.map +7 -0
  369. package/dist/modules/translations/components/TranslationManager.js +3 -3
  370. package/dist/modules/translations/components/TranslationManager.js.map +2 -2
  371. package/dist/modules/translations/data/validators.js +1 -1
  372. package/dist/modules/translations/data/validators.js.map +1 -1
  373. package/dist/modules/translations/lib/batch.js +21 -1
  374. package/dist/modules/translations/lib/batch.js.map +2 -2
  375. package/dist/modules/translations/lib/helpers.js +3 -0
  376. package/dist/modules/translations/lib/helpers.js.map +2 -2
  377. package/dist/modules/translations/lib/resolve-field-list.js +14 -2
  378. package/dist/modules/translations/lib/resolve-field-list.js.map +2 -2
  379. package/generated/entities/catalog_price_history_entry/index.ts +25 -0
  380. package/generated/entities/customer_group_terms/index.ts +1 -0
  381. package/generated/entities/ecommerce_store/index.ts +15 -0
  382. package/generated/entities/ecommerce_store_channel_binding/index.ts +13 -0
  383. package/generated/entities/ecommerce_store_domain_binding/index.ts +10 -0
  384. package/generated/entities.ids.generated.ts +8 -1
  385. package/generated/entity-fields-registry.ts +72 -0
  386. package/package.json +7 -7
  387. package/src/helpers/integration/customerGroupsFixtures.ts +2 -0
  388. package/src/modules/auth/i18n/de.json +8 -0
  389. package/src/modules/auth/i18n/en.json +8 -0
  390. package/src/modules/auth/i18n/es.json +8 -0
  391. package/src/modules/auth/i18n/ko.json +8 -0
  392. package/src/modules/auth/i18n/pl.json +8 -0
  393. package/src/modules/catalog/AGENTS.md +5 -2
  394. package/src/modules/catalog/acl.ts +7 -0
  395. package/src/modules/catalog/api/config/omnibus/route.ts +204 -0
  396. package/src/modules/catalog/api/prices/history/route.ts +139 -0
  397. package/src/modules/catalog/api/prices/omnibus-preview/route.ts +202 -0
  398. package/src/modules/catalog/api/products/route.ts +53 -308
  399. package/src/modules/catalog/api/tags/route.ts +6 -0
  400. package/src/modules/catalog/backend/config/catalog/page.tsx +2 -0
  401. package/src/modules/catalog/cli.ts +84 -1
  402. package/src/modules/catalog/commands/categories.ts +54 -2
  403. package/src/modules/catalog/commands/prices.ts +43 -1
  404. package/src/modules/catalog/commands/products.ts +84 -1
  405. package/src/modules/catalog/commands/variants.ts +7 -0
  406. package/src/modules/catalog/components/OmnibusSettings.tsx +832 -0
  407. package/src/modules/catalog/components/PriceEditorOmnibusRow.tsx +219 -0
  408. package/src/modules/catalog/components/lookupSources.ts +29 -0
  409. package/src/modules/catalog/components/prices/PriceScopeSelectors.tsx +9 -0
  410. package/src/modules/catalog/components/products/VariantBuilder.tsx +9 -0
  411. package/src/modules/catalog/data/entities.ts +123 -1
  412. package/src/modules/catalog/data/validators.ts +118 -0
  413. package/src/modules/catalog/di.ts +23 -0
  414. package/src/modules/catalog/i18n/de.json +77 -0
  415. package/src/modules/catalog/i18n/en.json +77 -0
  416. package/src/modules/catalog/i18n/es.json +77 -0
  417. package/src/modules/catalog/i18n/ko.json +77 -0
  418. package/src/modules/catalog/i18n/pl.json +77 -0
  419. package/src/modules/catalog/lib/omnibus.ts +406 -0
  420. package/src/modules/catalog/lib/omnibusBackfill.ts +198 -0
  421. package/src/modules/catalog/lib/omnibusCache.ts +111 -0
  422. package/src/modules/catalog/lib/omnibusConfig.ts +73 -0
  423. package/src/modules/catalog/lib/omnibusHistoryQueries.ts +248 -0
  424. package/src/modules/catalog/lib/omnibusPresentedEntry.ts +76 -0
  425. package/src/modules/catalog/lib/omnibusProductListEnrichment.ts +125 -0
  426. package/src/modules/catalog/lib/omnibusTypes.ts +202 -0
  427. package/src/modules/catalog/lib/optionSchemaTranslations.ts +55 -0
  428. package/src/modules/catalog/lib/priceHistoryQuery.ts +155 -0
  429. package/src/modules/catalog/lib/pricing.ts +42 -4
  430. package/src/modules/catalog/lib/productFilters.ts +349 -0
  431. package/src/modules/catalog/lib/productScopeKeys.ts +162 -0
  432. package/src/modules/catalog/lib/productScopeReindex.ts +139 -0
  433. package/src/modules/catalog/migrations/.snapshot-open-mercato.json +572 -0
  434. package/src/modules/catalog/migrations/Migration20261005105352_catalog.ts +39 -0
  435. package/src/modules/catalog/migrations/Migration20261005150824_catalog.ts +39 -0
  436. package/src/modules/catalog/services/catalogOmnibusService.ts +642 -0
  437. package/src/modules/catalog/setup.ts +2 -0
  438. package/src/modules/catalog/subscribers/product-scope-keys-category-deleted.ts +18 -0
  439. package/src/modules/catalog/subscribers/product-scope-keys-category-updated.ts +19 -0
  440. package/src/modules/catalog/translations.ts +12 -0
  441. package/src/modules/configs/i18n/de.json +5 -1
  442. package/src/modules/configs/i18n/en.json +5 -1
  443. package/src/modules/configs/i18n/es.json +5 -1
  444. package/src/modules/configs/i18n/ko.json +5 -1
  445. package/src/modules/configs/i18n/pl.json +5 -1
  446. package/src/modules/configs/lib/upgrade-actions.ts +35 -0
  447. package/src/modules/customer_groups/api/customer-groups/[id]/terms/route.ts +7 -0
  448. package/src/modules/customer_groups/components/CustomerGroupTermsSection.tsx +124 -2
  449. package/src/modules/customer_groups/components/customerGroupAssortmentScope.ts +46 -0
  450. package/src/modules/customer_groups/data/entities.ts +4 -0
  451. package/src/modules/customer_groups/data/validators.ts +14 -0
  452. package/src/modules/customer_groups/i18n/de.json +12 -0
  453. package/src/modules/customer_groups/i18n/en.json +12 -0
  454. package/src/modules/customer_groups/i18n/es.json +12 -0
  455. package/src/modules/customer_groups/i18n/ko.json +12 -0
  456. package/src/modules/customer_groups/i18n/pl.json +12 -0
  457. package/src/modules/customer_groups/migrations/.snapshot-open-mercato.json +17 -0
  458. package/src/modules/customer_groups/migrations/Migration20261005110250_customer_groups.ts +15 -0
  459. package/src/modules/customer_groups/services/customerGroupsService.ts +74 -23
  460. package/src/modules/ecommerce/acl.ts +9 -0
  461. package/src/modules/ecommerce/api/domain-mappings/route.ts +76 -0
  462. package/src/modules/ecommerce/api/openapi.ts +28 -0
  463. package/src/modules/ecommerce/api/store-channel-bindings/[id]/assortment-count/route.ts +141 -0
  464. package/src/modules/ecommerce/api/store-channel-bindings/crud.ts +283 -0
  465. package/src/modules/ecommerce/api/store-channel-bindings/route.ts +67 -0
  466. package/src/modules/ecommerce/api/store-domain-bindings/crud.ts +324 -0
  467. package/src/modules/ecommerce/api/store-domain-bindings/route.ts +73 -0
  468. package/src/modules/ecommerce/api/storefront/categories/[slug]/route.ts +94 -0
  469. package/src/modules/ecommerce/api/storefront/categories/openapiSchemas.ts +63 -0
  470. package/src/modules/ecommerce/api/storefront/categories/route.ts +78 -0
  471. package/src/modules/ecommerce/api/storefront/context/route.ts +203 -0
  472. package/src/modules/ecommerce/api/storefront/products/[idOrHandle]/route.ts +94 -0
  473. package/src/modules/ecommerce/api/storefront/products/openapiSchemas.ts +193 -0
  474. package/src/modules/ecommerce/api/storefront/products/route.ts +81 -0
  475. package/src/modules/ecommerce/api/storefront/search/suggest/openapiSchemas.ts +25 -0
  476. package/src/modules/ecommerce/api/storefront/search/suggest/route.ts +78 -0
  477. package/src/modules/ecommerce/api/storefront/storefrontRouteSupport.ts +68 -0
  478. package/src/modules/ecommerce/api/stores/[id]/branding/route.ts +205 -0
  479. package/src/modules/ecommerce/api/stores/[id]/preview-branding/route.ts +99 -0
  480. package/src/modules/ecommerce/api/stores/crud.ts +457 -0
  481. package/src/modules/ecommerce/api/stores/route.ts +66 -0
  482. package/src/modules/ecommerce/backend/config/ecommerce/[id]/page.meta.ts +12 -0
  483. package/src/modules/ecommerce/backend/config/ecommerce/[id]/page.tsx +5 -0
  484. package/src/modules/ecommerce/backend/config/ecommerce/page.meta.ts +12 -0
  485. package/src/modules/ecommerce/backend/config/ecommerce/page.tsx +5 -0
  486. package/src/modules/ecommerce/commands/stores.ts +154 -0
  487. package/src/modules/ecommerce/components/ChannelAssortmentCount.tsx +138 -0
  488. package/src/modules/ecommerce/components/ChannelBindingFormSections.tsx +40 -0
  489. package/src/modules/ecommerce/components/ChannelLookupPicker.tsx +5 -0
  490. package/src/modules/ecommerce/components/DomainStatusWarning.tsx +32 -0
  491. package/src/modules/ecommerce/components/StoreAvailabilityDefaultsSection.tsx +219 -0
  492. package/src/modules/ecommerce/components/StoreBrandingControls.tsx +73 -0
  493. package/src/modules/ecommerce/components/StoreBrandingPreview.tsx +77 -0
  494. package/src/modules/ecommerce/components/StoreBrandingTab.tsx +242 -0
  495. package/src/modules/ecommerce/components/StoreChannelBindingDialog.tsx +306 -0
  496. package/src/modules/ecommerce/components/StoreChannelsTab.tsx +375 -0
  497. package/src/modules/ecommerce/components/StoreCreateDialog.tsx +204 -0
  498. package/src/modules/ecommerce/components/StoreDomainBindingDialog.tsx +198 -0
  499. package/src/modules/ecommerce/components/StoreDomainsTab.tsx +426 -0
  500. package/src/modules/ecommerce/components/StoreEditPage.tsx +193 -0
  501. package/src/modules/ecommerce/components/StoreGeneralTab.tsx +189 -0
  502. package/src/modules/ecommerce/components/StoreListPage.tsx +326 -0
  503. package/src/modules/ecommerce/components/StoreSeoTab.tsx +152 -0
  504. package/src/modules/ecommerce/components/StoreStatusBadge.tsx +22 -0
  505. package/src/modules/ecommerce/components/channelLookups.ts +24 -0
  506. package/src/modules/ecommerce/components/storeAdmin.ts +56 -0
  507. package/src/modules/ecommerce/components/storeBrandingForm.ts +230 -0
  508. package/src/modules/ecommerce/components/storeChannels.ts +210 -0
  509. package/src/modules/ecommerce/components/storeDomains.ts +221 -0
  510. package/src/modules/ecommerce/components/storeEditTabs.tsx +76 -0
  511. package/src/modules/ecommerce/components/storeGeneral.ts +155 -0
  512. package/src/modules/ecommerce/components/storeSeo.ts +78 -0
  513. package/src/modules/ecommerce/components/useChannelAssortmentCount.ts +67 -0
  514. package/src/modules/ecommerce/components/useStoreAccess.ts +36 -0
  515. package/src/modules/ecommerce/data/enrichers.ts +213 -0
  516. package/src/modules/ecommerce/data/entities.ts +168 -0
  517. package/src/modules/ecommerce/data/validators.ts +587 -0
  518. package/src/modules/ecommerce/di.ts +9 -0
  519. package/src/modules/ecommerce/events.ts +27 -0
  520. package/src/modules/ecommerce/i18n/de.json +341 -0
  521. package/src/modules/ecommerce/i18n/en.json +341 -0
  522. package/src/modules/ecommerce/i18n/es.json +341 -0
  523. package/src/modules/ecommerce/i18n/ko.json +341 -0
  524. package/src/modules/ecommerce/i18n/pl.json +341 -0
  525. package/src/modules/ecommerce/index.ts +14 -0
  526. package/src/modules/ecommerce/lib/assortmentCount.ts +175 -0
  527. package/src/modules/ecommerce/lib/brandingStyles.ts +215 -0
  528. package/src/modules/ecommerce/lib/buyerContext.ts +401 -0
  529. package/src/modules/ecommerce/lib/cacheInvalidation.ts +302 -0
  530. package/src/modules/ecommerce/lib/cacheKeys.ts +340 -0
  531. package/src/modules/ecommerce/lib/createConflictRecheck.ts +31 -0
  532. package/src/modules/ecommerce/lib/crudEvents.ts +128 -0
  533. package/src/modules/ecommerce/lib/crudSupport.ts +85 -0
  534. package/src/modules/ecommerce/lib/domainBindingRebind.ts +138 -0
  535. package/src/modules/ecommerce/lib/domainMappingSummaries.ts +71 -0
  536. package/src/modules/ecommerce/lib/exclusiveFlag.ts +90 -0
  537. package/src/modules/ecommerce/lib/references.ts +93 -0
  538. package/src/modules/ecommerce/lib/seedDraftStore.ts +125 -0
  539. package/src/modules/ecommerce/lib/storeBindingCascade.ts +138 -0
  540. package/src/modules/ecommerce/lib/storeBranding.ts +48 -0
  541. package/src/modules/ecommerce/lib/storeBrandingRoute.ts +91 -0
  542. package/src/modules/ecommerce/lib/storeContext.ts +669 -0
  543. package/src/modules/ecommerce/lib/storeContextService.ts +71 -0
  544. package/src/modules/ecommerce/lib/storeLocale.ts +88 -0
  545. package/src/modules/ecommerce/lib/storeNotifications.ts +55 -0
  546. package/src/modules/ecommerce/lib/storefrontCatalogSupport.ts +427 -0
  547. package/src/modules/ecommerce/lib/storefrontCategories.ts +419 -0
  548. package/src/modules/ecommerce/lib/storefrontCategoryCache.ts +113 -0
  549. package/src/modules/ecommerce/lib/storefrontDetail.ts +654 -0
  550. package/src/modules/ecommerce/lib/storefrontFacets.ts +697 -0
  551. package/src/modules/ecommerce/lib/storefrontOptionFilter.ts +44 -0
  552. package/src/modules/ecommerce/lib/storefrontPricing.ts +583 -0
  553. package/src/modules/ecommerce/lib/storefrontProductCache.ts +126 -0
  554. package/src/modules/ecommerce/lib/storefrontProductScope.ts +181 -0
  555. package/src/modules/ecommerce/lib/storefrontProducts.ts +963 -0
  556. package/src/modules/ecommerce/lib/storefrontQuery.ts +215 -0
  557. package/src/modules/ecommerce/lib/storefrontRateLimit.ts +126 -0
  558. package/src/modules/ecommerce/lib/storefrontSearch.ts +454 -0
  559. package/src/modules/ecommerce/lib/storefrontSearchCache.ts +49 -0
  560. package/src/modules/ecommerce/lib/subscriberSupport.ts +41 -0
  561. package/src/modules/ecommerce/lib/types.ts +69 -0
  562. package/src/modules/ecommerce/migrations/.snapshot-open-mercato.json +829 -0
  563. package/src/modules/ecommerce/migrations/Migration20261005113233_ecommerce.ts +32 -0
  564. package/src/modules/ecommerce/migrations/Migration20261006112733_ecommerce.ts +15 -0
  565. package/src/modules/ecommerce/notifications.client.ts +46 -0
  566. package/src/modules/ecommerce/notifications.ts +46 -0
  567. package/src/modules/ecommerce/search.ts +93 -0
  568. package/src/modules/ecommerce/setup.ts +15 -0
  569. package/src/modules/ecommerce/subscribers/assortment-empty-notifications.ts +12 -0
  570. package/src/modules/ecommerce/subscribers/availability-policy-cache-invalidation.ts +12 -0
  571. package/src/modules/ecommerce/subscribers/catalog-category-cache-invalidation.ts +12 -0
  572. package/src/modules/ecommerce/subscribers/catalog-price-cache-invalidation.ts +12 -0
  573. package/src/modules/ecommerce/subscribers/catalog-product-cache-invalidation.ts +12 -0
  574. package/src/modules/ecommerce/subscribers/catalog-variant-cache-invalidation.ts +12 -0
  575. package/src/modules/ecommerce/subscribers/customer-group-cache-invalidation.ts +12 -0
  576. package/src/modules/ecommerce/subscribers/customer-group-membership-cache-invalidation.ts +12 -0
  577. package/src/modules/ecommerce/subscribers/customer-group-terms-cache-invalidation.ts +12 -0
  578. package/src/modules/ecommerce/subscribers/customer-user-deleted-cache-invalidation.ts +12 -0
  579. package/src/modules/ecommerce/subscribers/customer-user-updated-cache-invalidation.ts +12 -0
  580. package/src/modules/ecommerce/subscribers/domain-binding-rebind.ts +14 -0
  581. package/src/modules/ecommerce/subscribers/domain-mapping-cache-invalidation.ts +12 -0
  582. package/src/modules/ecommerce/subscribers/store-cache-invalidation.ts +12 -0
  583. package/src/modules/ecommerce/subscribers/store-channel-binding-cache-invalidation.ts +12 -0
  584. package/src/modules/ecommerce/subscribers/store-domain-binding-cache-invalidation.ts +12 -0
  585. package/src/modules/ecommerce/subscribers/store-notifications.ts +12 -0
  586. package/src/modules/query_index/lib/batch.ts +25 -9
  587. package/src/modules/query_index/lib/doc-enrichers.ts +306 -0
  588. package/src/modules/query_index/lib/document.ts +2 -0
  589. package/src/modules/query_index/lib/engine.ts +58 -1
  590. package/src/modules/query_index/lib/indexer.ts +8 -0
  591. package/src/modules/query_index/lib/search-tokens.ts +2 -0
  592. package/src/modules/query_index/migrations/Migration20261005201500_query_index.ts +42 -0
  593. package/src/modules/translations/components/TranslationManager.tsx +3 -3
  594. package/src/modules/translations/data/validators.ts +1 -1
  595. package/src/modules/translations/lib/batch.ts +47 -0
  596. package/src/modules/translations/lib/helpers.ts +4 -0
  597. package/src/modules/translations/lib/resolve-field-list.ts +16 -2
@@ -121,6 +121,83 @@
121
121
  "catalog.nav.group": "Katalog",
122
122
  "catalog.notifications.product.lowStock.body": "{productName}{sku, select, other { ({sku})}} hat niedrigen Lagerbestand ({currentStock} verbleibend, Schwellenwert: {threshold})",
123
123
  "catalog.notifications.product.lowStock.title": "Niedriger Lagerbestand",
124
+ "catalog.omnibus.errors.countryCodeEu": "Geben Sie einzelne Mitgliedstaaten statt „EU“ an.",
125
+ "catalog.omnibus.errors.countryCodeFormat": "Verwenden Sie einen zweistelligen ISO-Ländercode.",
126
+ "catalog.omnibus.errors.countryCodeUnknown": "Unbekannter Ländercode.",
127
+ "catalog.omnibus.errors.duplicateChannel": "Dieser Kanal ist bereits konfiguriert.",
128
+ "catalog.omnibus.errors.fieldNotSupported": "Diese Einstellung wird nicht unterstützt.",
129
+ "catalog.omnibus.errors.invalid": "Korrigieren Sie die markierten Felder und versuchen Sie es erneut.",
130
+ "catalog.omnibus.errors.invalidValue": "Ungültiger Wert.",
131
+ "catalog.omnibus.errors.load": "Omnibus-Einstellungen konnten nicht geladen werden.",
132
+ "catalog.omnibus.errors.lookbackRange": "Geben Sie eine ganze Zahl von Tagen zwischen 1 und 365 ein.",
133
+ "catalog.omnibus.errors.presentedPriceKindRequired": "Wählen Sie eine standardmäßig angezeigte Preisart oder konfigurieren Sie einen Kanal mit eigener Preisart.",
134
+ "catalog.omnibus.errors.required": "Dieses Feld ist erforderlich.",
135
+ "catalog.omnibus.errors.save": "Omnibus-Einstellungen konnten nicht gespeichert werden.",
136
+ "catalog.omnibus.messages.saved": "Omnibus-Einstellungen gespeichert.",
137
+ "catalog.omnibus.priceEditor.insufficientHistory": "Die Preishistorie deckt nicht den gesamten Zeitraum ab; der Referenzpreis ist möglicherweise unvollständig.",
138
+ "catalog.omnibus.priceEditor.insufficientHistorySince": "Die Preishistorie ist erst seit {{date}} verfügbar; der Referenzpreis ist möglicherweise unvollständig.",
139
+ "catalog.omnibus.priceEditor.loadError": "Der Omnibus-Referenzpreis konnte nicht geladen werden.",
140
+ "catalog.omnibus.priceEditor.loading": "Omnibus-Referenzpreis wird geladen…",
141
+ "catalog.omnibus.priceEditor.lowestInDays": "Niedrigster Preis der letzten {{days}} Tage",
142
+ "catalog.omnibus.priceEditor.missingChannel": "Wählen Sie einen Kanal, um den Referenzpreis zu berechnen.",
143
+ "catalog.omnibus.priceEditor.notApplicable": "Omnibus-Referenzpreis nicht anwendbar",
144
+ "catalog.omnibus.priceEditor.perChannelReference": "Der Referenzpreis wird pro Vertriebskanal berechnet.",
145
+ "catalog.omnibus.priceEditor.previousPrice": "Preis vor der Ermäßigung: {{price}}",
146
+ "catalog.omnibus.priceEditor.progressiveRef": "Referenzpreis (für die schrittweise Ermäßigung eingefroren)",
147
+ "catalog.omnibus.reason.announcedPromotion": "Angekündigte Aktion",
148
+ "catalog.omnibus.reason.insufficientHistory": "Unvollständige Historie",
149
+ "catalog.omnibus.reason.missingChannelContext": "Kanal erforderlich",
150
+ "catalog.omnibus.reason.newArrivalReducedWindow": "Neuheit: kürzerer Zeitraum",
151
+ "catalog.omnibus.reason.noHistory": "Keine Preishistorie",
152
+ "catalog.omnibus.reason.notAnnounced": "Keine angekündigte Ermäßigung",
153
+ "catalog.omnibus.reason.notInEuMarket": "Kein EU-Markt",
154
+ "catalog.omnibus.reason.perishableExempt": "Ausnahme für verderbliche Waren",
155
+ "catalog.omnibus.reason.perishableLastPrice": "Verderbliche Waren: letzter Preis",
156
+ "catalog.omnibus.reason.progressiveReductionFrozen": "Schrittweise Ermäßigung",
157
+ "catalog.omnibus.settings.actions.cancel": "Abbrechen",
158
+ "catalog.omnibus.settings.actions.retry": "Erneut versuchen",
159
+ "catalog.omnibus.settings.actions.save": "Speichern",
160
+ "catalog.omnibus.settings.actions.saving": "Wird gespeichert…",
161
+ "catalog.omnibus.settings.axis.gross": "Brutto (B2C)",
162
+ "catalog.omnibus.settings.axis.net": "Netto (B2B)",
163
+ "catalog.omnibus.settings.backfill.channels": "Kanäle ohne Backfill: {{channels}}",
164
+ "catalog.omnibus.settings.backfill.globalScope": "Alle Kanäle (ohne Bereich)",
165
+ "catalog.omnibus.settings.backfill.requiredDescription": "Vor dem Aktivieren von Omnibus muss die Preishistorie für jeden betroffenen EU-Kanal nachgetragen werden. Führen Sie „mercato catalog omnibus:backfill --tenant <tenantId>“ aus (fügen Sie „--channel-id <channelId>“ pro Kanal hinzu) und speichern Sie dann erneut.",
166
+ "catalog.omnibus.settings.backfill.requiredTitle": "Backfill vor dem Aktivieren erforderlich",
167
+ "catalog.omnibus.settings.backfill.staleDescription": "Führen Sie den Backfill erneut aus, damit der längere Zeitraum eine Basishistorie hat: {{scopes}}",
168
+ "catalog.omnibus.settings.backfill.staleTitle": "Vergleichszeitraum seit dem letzten Backfill verlängert",
169
+ "catalog.omnibus.settings.channels.add": "Kanal hinzufügen",
170
+ "catalog.omnibus.settings.channels.axisInherit": "Globale Einstellung verwenden",
171
+ "catalog.omnibus.settings.channels.channel": "Kanal",
172
+ "catalog.omnibus.settings.channels.countryCode": "Mitgliedstaat",
173
+ "catalog.omnibus.settings.channels.countryCodeDescription": "Für Kanäle außerhalb der EU leer lassen.",
174
+ "catalog.omnibus.settings.channels.countryCodePlaceholder": "z. B. DE",
175
+ "catalog.omnibus.settings.channels.description": "Ordnen Sie Vertriebskanäle einem Mitgliedstaat zu und überschreiben Sie pro Kanal die angezeigte Preisart, den Vergleichszeitraum oder die Vergleichsbasis.",
176
+ "catalog.omnibus.settings.channels.empty": "Keine Kanalüberschreibungen. Die globalen Einstellungen gelten für alle Kanäle.",
177
+ "catalog.omnibus.settings.channels.lookbackDays": "Abweichender Vergleichszeitraum (Tage)",
178
+ "catalog.omnibus.settings.channels.lookbackDaysDescription": "Leer lassen, um den globalen Zeitraum zu verwenden.",
179
+ "catalog.omnibus.settings.channels.minimizationAxis": "Preise vergleichen nach",
180
+ "catalog.omnibus.settings.channels.presentedPriceKind": "Angezeigte Preisart",
181
+ "catalog.omnibus.settings.channels.remove": "Kanalüberschreibung entfernen",
182
+ "catalog.omnibus.settings.channels.title": "Kanalüberschreibungen",
183
+ "catalog.omnibus.settings.defaultPresentedPriceKind": "Standardmäßig angezeigte Preisart",
184
+ "catalog.omnibus.settings.defaultPresentedPriceKindDescription": "Die Preisart, die Käufern angezeigt wird, wenn ein Kanal keine Überschreibung hat. Erforderlich, wenn Omnibus ohne Kanalüberschreibungen aktiviert ist.",
185
+ "catalog.omnibus.settings.description": "Zeigen Sie den niedrigsten Preis aus dem Vergleichszeitraum neben angekündigten Preisermäßigungen an (EU-Richtlinie 2019/2161).",
186
+ "catalog.omnibus.settings.enabled": "Omnibus-Referenzpreise aktivieren",
187
+ "catalog.omnibus.settings.enabledCountryCodes": "EU-Mitgliedstaaten",
188
+ "catalog.omnibus.settings.enabledCountryCodesDescription": "Zweistellige ISO-Codes der Mitgliedstaaten, in denen Omnibus gilt. Leer lassen, um es für alle Kanäle zu deaktivieren.",
189
+ "catalog.omnibus.settings.enabledCountryCodesPlaceholder": "z. B. PL, DE",
190
+ "catalog.omnibus.settings.enabledDescription": "Wenn aktiviert, stellen Produkte in EU-Kanälen den niedrigsten Preis aus dem Vergleichszeitraum bereit.",
191
+ "catalog.omnibus.settings.loading": "Omnibus-Einstellungen werden geladen…",
192
+ "catalog.omnibus.settings.lookbackDays": "Vergleichszeitraum (Tage)",
193
+ "catalog.omnibus.settings.lookbackDaysDescription": "Zwischen 1 und 365 Tagen. Die Richtlinie verlangt mindestens 30.",
194
+ "catalog.omnibus.settings.minimizationAxis": "Preise vergleichen nach",
195
+ "catalog.omnibus.settings.noChannelMode.bestEffort": "Bestmöglich (globale Einstellungen verwenden)",
196
+ "catalog.omnibus.settings.noChannelMode.requireChannel": "Kanal erforderlich",
197
+ "catalog.omnibus.settings.noChannelModeLabel": "Anfragen ohne Kanal",
198
+ "catalog.omnibus.settings.readOnly": "Sie können diese Einstellungen ansehen, aber nicht ändern.",
199
+ "catalog.omnibus.settings.removeCountry": "{{code}} entfernen",
200
+ "catalog.omnibus.settings.title": "Omnibus-Preisverfolgung",
124
201
  "catalog.options.list.title": "Optionen",
125
202
  "catalog.priceKinds.actions.add": "Preisart hinzufügen",
126
203
  "catalog.priceKinds.actions.cancel": "Abbrechen",
@@ -121,6 +121,83 @@
121
121
  "catalog.nav.group": "Catalog",
122
122
  "catalog.notifications.product.lowStock.body": "{productName}{sku, select, other { ({sku})}} is running low on stock ({currentStock} remaining, threshold: {threshold})",
123
123
  "catalog.notifications.product.lowStock.title": "Low Stock Alert",
124
+ "catalog.omnibus.errors.countryCodeEu": "List individual member states instead of \"EU\".",
125
+ "catalog.omnibus.errors.countryCodeFormat": "Use a two-letter ISO country code.",
126
+ "catalog.omnibus.errors.countryCodeUnknown": "Unknown country code.",
127
+ "catalog.omnibus.errors.duplicateChannel": "This channel is already configured.",
128
+ "catalog.omnibus.errors.fieldNotSupported": "This setting is not supported.",
129
+ "catalog.omnibus.errors.invalid": "Fix the highlighted fields and try again.",
130
+ "catalog.omnibus.errors.invalidValue": "Invalid value.",
131
+ "catalog.omnibus.errors.load": "Failed to load Omnibus settings.",
132
+ "catalog.omnibus.errors.lookbackRange": "Enter a whole number of days between 1 and 365.",
133
+ "catalog.omnibus.errors.presentedPriceKindRequired": "Select a default presented price kind, or configure a channel with its own price kind.",
134
+ "catalog.omnibus.errors.required": "This field is required.",
135
+ "catalog.omnibus.errors.save": "Failed to save Omnibus settings.",
136
+ "catalog.omnibus.messages.saved": "Omnibus settings saved.",
137
+ "catalog.omnibus.priceEditor.insufficientHistory": "Price history does not cover the full window; the reference may be incomplete.",
138
+ "catalog.omnibus.priceEditor.insufficientHistorySince": "Price history is only available since {{date}}; the reference may be incomplete.",
139
+ "catalog.omnibus.priceEditor.loadError": "Could not load the Omnibus reference price.",
140
+ "catalog.omnibus.priceEditor.loading": "Loading Omnibus reference price…",
141
+ "catalog.omnibus.priceEditor.lowestInDays": "Lowest price in the last {{days}} days",
142
+ "catalog.omnibus.priceEditor.missingChannel": "Select a channel to compute the reference price.",
143
+ "catalog.omnibus.priceEditor.notApplicable": "Omnibus reference price not applicable",
144
+ "catalog.omnibus.priceEditor.perChannelReference": "The reference price is computed per sales channel.",
145
+ "catalog.omnibus.priceEditor.previousPrice": "Price before the reduction: {{price}}",
146
+ "catalog.omnibus.priceEditor.progressiveRef": "Reference price (frozen for the progressive reduction)",
147
+ "catalog.omnibus.reason.announcedPromotion": "Announced promotion",
148
+ "catalog.omnibus.reason.insufficientHistory": "Insufficient history",
149
+ "catalog.omnibus.reason.missingChannelContext": "Channel required",
150
+ "catalog.omnibus.reason.newArrivalReducedWindow": "New arrival: shorter window",
151
+ "catalog.omnibus.reason.noHistory": "No price history",
152
+ "catalog.omnibus.reason.notAnnounced": "No announced reduction",
153
+ "catalog.omnibus.reason.notInEuMarket": "Not an EU market",
154
+ "catalog.omnibus.reason.perishableExempt": "Perishable goods exemption",
155
+ "catalog.omnibus.reason.perishableLastPrice": "Perishable goods: last price",
156
+ "catalog.omnibus.reason.progressiveReductionFrozen": "Progressive reduction",
157
+ "catalog.omnibus.settings.actions.cancel": "Cancel",
158
+ "catalog.omnibus.settings.actions.retry": "Retry",
159
+ "catalog.omnibus.settings.actions.save": "Save",
160
+ "catalog.omnibus.settings.actions.saving": "Saving…",
161
+ "catalog.omnibus.settings.axis.gross": "Gross (B2C)",
162
+ "catalog.omnibus.settings.axis.net": "Net (B2B)",
163
+ "catalog.omnibus.settings.backfill.channels": "Channels without backfill: {{channels}}",
164
+ "catalog.omnibus.settings.backfill.globalScope": "All channels (unscoped)",
165
+ "catalog.omnibus.settings.backfill.requiredDescription": "Price history must be backfilled for every in-scope EU channel before Omnibus can be enabled. Run \"mercato catalog omnibus:backfill --tenant <tenantId>\" (add \"--channel-id <channelId>\" per channel), then save again.",
166
+ "catalog.omnibus.settings.backfill.requiredTitle": "Backfill required before enabling",
167
+ "catalog.omnibus.settings.backfill.staleDescription": "Re-run the backfill so the longer window has baseline history: {{scopes}}",
168
+ "catalog.omnibus.settings.backfill.staleTitle": "Lookback increased since the last backfill",
169
+ "catalog.omnibus.settings.channels.add": "Add channel",
170
+ "catalog.omnibus.settings.channels.axisInherit": "Use global setting",
171
+ "catalog.omnibus.settings.channels.channel": "Channel",
172
+ "catalog.omnibus.settings.channels.countryCode": "Member state",
173
+ "catalog.omnibus.settings.channels.countryCodeDescription": "Leave empty for non-EU channels.",
174
+ "catalog.omnibus.settings.channels.countryCodePlaceholder": "e.g. PL",
175
+ "catalog.omnibus.settings.channels.description": "Map sales channels to a member state and override the presented price kind, lookback or comparison axis per channel.",
176
+ "catalog.omnibus.settings.channels.empty": "No channel overrides. Global settings apply to every channel.",
177
+ "catalog.omnibus.settings.channels.lookbackDays": "Lookback override (days)",
178
+ "catalog.omnibus.settings.channels.lookbackDaysDescription": "Leave empty to use the global window.",
179
+ "catalog.omnibus.settings.channels.minimizationAxis": "Compare prices by",
180
+ "catalog.omnibus.settings.channels.presentedPriceKind": "Presented price kind",
181
+ "catalog.omnibus.settings.channels.remove": "Remove channel override",
182
+ "catalog.omnibus.settings.channels.title": "Channel overrides",
183
+ "catalog.omnibus.settings.defaultPresentedPriceKind": "Default presented price kind",
184
+ "catalog.omnibus.settings.defaultPresentedPriceKindDescription": "The price kind shown to shoppers, used when a channel has no override. Required when Omnibus is enabled without channel overrides.",
185
+ "catalog.omnibus.settings.description": "Show the lowest price from the lookback period next to announced price reductions (EU Directive 2019/2161).",
186
+ "catalog.omnibus.settings.enabled": "Enable Omnibus reference prices",
187
+ "catalog.omnibus.settings.enabledCountryCodes": "EU member states",
188
+ "catalog.omnibus.settings.enabledCountryCodesDescription": "Two-letter ISO codes of the member states where Omnibus applies. Leave empty to disable it for every channel.",
189
+ "catalog.omnibus.settings.enabledCountryCodesPlaceholder": "e.g. PL, DE",
190
+ "catalog.omnibus.settings.enabledDescription": "When enabled, products in EU channels expose the lowest price from the lookback window.",
191
+ "catalog.omnibus.settings.loading": "Loading Omnibus settings…",
192
+ "catalog.omnibus.settings.lookbackDays": "Lookback window (days)",
193
+ "catalog.omnibus.settings.lookbackDaysDescription": "Between 1 and 365 days. The directive requires at least 30.",
194
+ "catalog.omnibus.settings.minimizationAxis": "Compare prices by",
195
+ "catalog.omnibus.settings.noChannelMode.bestEffort": "Best effort (use global settings)",
196
+ "catalog.omnibus.settings.noChannelMode.requireChannel": "Require a channel",
197
+ "catalog.omnibus.settings.noChannelModeLabel": "Requests without a channel",
198
+ "catalog.omnibus.settings.readOnly": "You can view these settings but not change them.",
199
+ "catalog.omnibus.settings.removeCountry": "Remove {{code}}",
200
+ "catalog.omnibus.settings.title": "Omnibus price tracking",
124
201
  "catalog.options.list.title": "Options",
125
202
  "catalog.priceKinds.actions.add": "Add price kind",
126
203
  "catalog.priceKinds.actions.cancel": "Cancel",
@@ -121,6 +121,83 @@
121
121
  "catalog.nav.group": "Catálogo",
122
122
  "catalog.notifications.product.lowStock.body": "{productName}{sku, select, other { ({sku})}} tiene poco stock ({currentStock} restante, umbral: {threshold})",
123
123
  "catalog.notifications.product.lowStock.title": "Alerta de stock bajo",
124
+ "catalog.omnibus.errors.countryCodeEu": "Indica cada Estado miembro en lugar de «EU».",
125
+ "catalog.omnibus.errors.countryCodeFormat": "Usa un código de país ISO de dos letras.",
126
+ "catalog.omnibus.errors.countryCodeUnknown": "Código de país desconocido.",
127
+ "catalog.omnibus.errors.duplicateChannel": "Este canal ya está configurado.",
128
+ "catalog.omnibus.errors.fieldNotSupported": "Este ajuste no es compatible.",
129
+ "catalog.omnibus.errors.invalid": "Corrige los campos resaltados e inténtalo de nuevo.",
130
+ "catalog.omnibus.errors.invalidValue": "Valor no válido.",
131
+ "catalog.omnibus.errors.load": "No se pudieron cargar los ajustes de Omnibus.",
132
+ "catalog.omnibus.errors.lookbackRange": "Introduce un número entero de días entre 1 y 365.",
133
+ "catalog.omnibus.errors.presentedPriceKindRequired": "Selecciona un tipo de precio mostrado predeterminado o configura un canal con su propio tipo de precio.",
134
+ "catalog.omnibus.errors.required": "Este campo es obligatorio.",
135
+ "catalog.omnibus.errors.save": "No se pudieron guardar los ajustes de Omnibus.",
136
+ "catalog.omnibus.messages.saved": "Ajustes de Omnibus guardados.",
137
+ "catalog.omnibus.priceEditor.insufficientHistory": "El historial de precios no cubre todo el periodo; el precio de referencia puede estar incompleto.",
138
+ "catalog.omnibus.priceEditor.insufficientHistorySince": "El historial de precios solo está disponible desde {{date}}; el precio de referencia puede estar incompleto.",
139
+ "catalog.omnibus.priceEditor.loadError": "No se pudo cargar el precio de referencia de Omnibus.",
140
+ "catalog.omnibus.priceEditor.loading": "Cargando el precio de referencia de Omnibus…",
141
+ "catalog.omnibus.priceEditor.lowestInDays": "Precio más bajo de los últimos {{days}} días",
142
+ "catalog.omnibus.priceEditor.missingChannel": "Selecciona un canal para calcular el precio de referencia.",
143
+ "catalog.omnibus.priceEditor.notApplicable": "El precio de referencia de Omnibus no es aplicable",
144
+ "catalog.omnibus.priceEditor.perChannelReference": "El precio de referencia se calcula por canal de venta.",
145
+ "catalog.omnibus.priceEditor.previousPrice": "Precio antes de la reducción: {{price}}",
146
+ "catalog.omnibus.priceEditor.progressiveRef": "Precio de referencia (congelado para la reducción progresiva)",
147
+ "catalog.omnibus.reason.announcedPromotion": "Promoción anunciada",
148
+ "catalog.omnibus.reason.insufficientHistory": "Historial insuficiente",
149
+ "catalog.omnibus.reason.missingChannelContext": "Canal obligatorio",
150
+ "catalog.omnibus.reason.newArrivalReducedWindow": "Novedad: periodo más corto",
151
+ "catalog.omnibus.reason.noHistory": "Sin historial de precios",
152
+ "catalog.omnibus.reason.notAnnounced": "Sin reducción anunciada",
153
+ "catalog.omnibus.reason.notInEuMarket": "Mercado fuera de la UE",
154
+ "catalog.omnibus.reason.perishableExempt": "Exención para productos perecederos",
155
+ "catalog.omnibus.reason.perishableLastPrice": "Productos perecederos: último precio",
156
+ "catalog.omnibus.reason.progressiveReductionFrozen": "Reducción progresiva",
157
+ "catalog.omnibus.settings.actions.cancel": "Cancelar",
158
+ "catalog.omnibus.settings.actions.retry": "Reintentar",
159
+ "catalog.omnibus.settings.actions.save": "Guardar",
160
+ "catalog.omnibus.settings.actions.saving": "Guardando…",
161
+ "catalog.omnibus.settings.axis.gross": "Bruto (B2C)",
162
+ "catalog.omnibus.settings.axis.net": "Neto (B2B)",
163
+ "catalog.omnibus.settings.backfill.channels": "Canales sin historial completado: {{channels}}",
164
+ "catalog.omnibus.settings.backfill.globalScope": "Todos los canales (sin ámbito)",
165
+ "catalog.omnibus.settings.backfill.requiredDescription": "Antes de activar Omnibus, el historial de precios debe completarse para cada canal de la UE incluido. Ejecuta «mercato catalog omnibus:backfill --tenant <tenantId>» (añade «--channel-id <channelId>» por canal) y vuelve a guardar.",
166
+ "catalog.omnibus.settings.backfill.requiredTitle": "Es necesario completar el historial antes de activar",
167
+ "catalog.omnibus.settings.backfill.staleDescription": "Vuelve a completar el historial para que el periodo más largo tenga un historial base: {{scopes}}",
168
+ "catalog.omnibus.settings.backfill.staleTitle": "El periodo de comparación aumentó desde el último completado del historial",
169
+ "catalog.omnibus.settings.channels.add": "Añadir canal",
170
+ "catalog.omnibus.settings.channels.axisInherit": "Usar el ajuste global",
171
+ "catalog.omnibus.settings.channels.channel": "Canal",
172
+ "catalog.omnibus.settings.channels.countryCode": "Estado miembro",
173
+ "catalog.omnibus.settings.channels.countryCodeDescription": "Déjalo vacío para canales fuera de la UE.",
174
+ "catalog.omnibus.settings.channels.countryCodePlaceholder": "p. ej. ES",
175
+ "catalog.omnibus.settings.channels.description": "Asigna canales de venta a un Estado miembro y sobrescribe por canal el tipo de precio mostrado, el periodo de comparación o la base de comparación.",
176
+ "catalog.omnibus.settings.channels.empty": "No hay sobrescrituras de canal. Los ajustes globales se aplican a todos los canales.",
177
+ "catalog.omnibus.settings.channels.lookbackDays": "Periodo de comparación propio (días)",
178
+ "catalog.omnibus.settings.channels.lookbackDaysDescription": "Déjalo vacío para usar el periodo global.",
179
+ "catalog.omnibus.settings.channels.minimizationAxis": "Comparar precios por",
180
+ "catalog.omnibus.settings.channels.presentedPriceKind": "Tipo de precio mostrado",
181
+ "catalog.omnibus.settings.channels.remove": "Eliminar la sobrescritura del canal",
182
+ "catalog.omnibus.settings.channels.title": "Sobrescrituras por canal",
183
+ "catalog.omnibus.settings.defaultPresentedPriceKind": "Tipo de precio mostrado predeterminado",
184
+ "catalog.omnibus.settings.defaultPresentedPriceKindDescription": "El tipo de precio que se muestra a los compradores cuando un canal no tiene sobrescritura. Obligatorio si Omnibus está activado sin sobrescrituras de canal.",
185
+ "catalog.omnibus.settings.description": "Muestra el precio más bajo del periodo de comparación junto a las reducciones de precio anunciadas (Directiva UE 2019/2161).",
186
+ "catalog.omnibus.settings.enabled": "Activar precios de referencia de Omnibus",
187
+ "catalog.omnibus.settings.enabledCountryCodes": "Estados miembros de la UE",
188
+ "catalog.omnibus.settings.enabledCountryCodesDescription": "Códigos ISO de dos letras de los Estados miembros donde se aplica Omnibus. Déjalo vacío para desactivarlo en todos los canales.",
189
+ "catalog.omnibus.settings.enabledCountryCodesPlaceholder": "p. ej. PL, DE",
190
+ "catalog.omnibus.settings.enabledDescription": "Si está activado, los productos de los canales de la UE exponen el precio más bajo del periodo de comparación.",
191
+ "catalog.omnibus.settings.loading": "Cargando los ajustes de Omnibus…",
192
+ "catalog.omnibus.settings.lookbackDays": "Periodo de comparación (días)",
193
+ "catalog.omnibus.settings.lookbackDaysDescription": "Entre 1 y 365 días. La directiva exige al menos 30.",
194
+ "catalog.omnibus.settings.minimizationAxis": "Comparar precios por",
195
+ "catalog.omnibus.settings.noChannelMode.bestEffort": "Mejor esfuerzo (usar ajustes globales)",
196
+ "catalog.omnibus.settings.noChannelMode.requireChannel": "Exigir un canal",
197
+ "catalog.omnibus.settings.noChannelModeLabel": "Solicitudes sin canal",
198
+ "catalog.omnibus.settings.readOnly": "Puedes ver estos ajustes, pero no modificarlos.",
199
+ "catalog.omnibus.settings.removeCountry": "Eliminar {{code}}",
200
+ "catalog.omnibus.settings.title": "Seguimiento de precios Omnibus",
124
201
  "catalog.options.list.title": "Opciones",
125
202
  "catalog.priceKinds.actions.add": "Agregar tipo de precio",
126
203
  "catalog.priceKinds.actions.cancel": "Cancelar",
@@ -121,6 +121,83 @@
121
121
  "catalog.nav.group": "카탈로그",
122
122
  "catalog.notifications.product.lowStock.body": "{productName}{sku, select, other { ({sku})}}의 재고가 부족합니다 (남은 수량: {currentStock}, 기준값: {threshold})",
123
123
  "catalog.notifications.product.lowStock.title": "재고 부족 알림",
124
+ "catalog.omnibus.errors.countryCodeEu": "\"EU\" 대신 개별 회원국을 입력하세요.",
125
+ "catalog.omnibus.errors.countryCodeFormat": "두 글자 ISO 국가 코드를 사용하세요.",
126
+ "catalog.omnibus.errors.countryCodeUnknown": "알 수 없는 국가 코드입니다.",
127
+ "catalog.omnibus.errors.duplicateChannel": "이 채널은 이미 구성되어 있습니다.",
128
+ "catalog.omnibus.errors.fieldNotSupported": "지원되지 않는 설정입니다.",
129
+ "catalog.omnibus.errors.invalid": "표시된 필드를 수정한 후 다시 시도하세요.",
130
+ "catalog.omnibus.errors.invalidValue": "잘못된 값입니다.",
131
+ "catalog.omnibus.errors.load": "Omnibus 설정을 불러오지 못했습니다.",
132
+ "catalog.omnibus.errors.lookbackRange": "1에서 365 사이의 정수 일수를 입력하세요.",
133
+ "catalog.omnibus.errors.presentedPriceKindRequired": "기본 표시 가격 유형을 선택하거나 자체 가격 유형이 있는 채널을 구성하세요.",
134
+ "catalog.omnibus.errors.required": "필수 입력 항목입니다.",
135
+ "catalog.omnibus.errors.save": "Omnibus 설정을 저장하지 못했습니다.",
136
+ "catalog.omnibus.messages.saved": "Omnibus 설정이 저장되었습니다.",
137
+ "catalog.omnibus.priceEditor.insufficientHistory": "가격 이력이 전체 기간을 포함하지 않아 기준 가격이 불완전할 수 있습니다.",
138
+ "catalog.omnibus.priceEditor.insufficientHistorySince": "가격 이력은 {{date}}부터만 제공되어 기준 가격이 불완전할 수 있습니다.",
139
+ "catalog.omnibus.priceEditor.loadError": "Omnibus 기준 가격을 불러오지 못했습니다.",
140
+ "catalog.omnibus.priceEditor.loading": "Omnibus 기준 가격을 불러오는 중…",
141
+ "catalog.omnibus.priceEditor.lowestInDays": "최근 {{days}}일 중 최저 가격",
142
+ "catalog.omnibus.priceEditor.missingChannel": "기준 가격을 계산하려면 채널을 선택하세요.",
143
+ "catalog.omnibus.priceEditor.notApplicable": "Omnibus 기준 가격이 적용되지 않음",
144
+ "catalog.omnibus.priceEditor.perChannelReference": "기준 가격은 판매 채널별로 계산됩니다.",
145
+ "catalog.omnibus.priceEditor.previousPrice": "인하 전 가격: {{price}}",
146
+ "catalog.omnibus.priceEditor.progressiveRef": "기준 가격(단계적 인하로 고정됨)",
147
+ "catalog.omnibus.reason.announcedPromotion": "공지된 프로모션",
148
+ "catalog.omnibus.reason.insufficientHistory": "이력 부족",
149
+ "catalog.omnibus.reason.missingChannelContext": "채널 필요",
150
+ "catalog.omnibus.reason.newArrivalReducedWindow": "신상품: 단축 기간",
151
+ "catalog.omnibus.reason.noHistory": "가격 이력 없음",
152
+ "catalog.omnibus.reason.notAnnounced": "공지된 인하 없음",
153
+ "catalog.omnibus.reason.notInEuMarket": "EU 시장 아님",
154
+ "catalog.omnibus.reason.perishableExempt": "부패성 상품 면제",
155
+ "catalog.omnibus.reason.perishableLastPrice": "부패성 상품: 최종 가격",
156
+ "catalog.omnibus.reason.progressiveReductionFrozen": "단계적 인하",
157
+ "catalog.omnibus.settings.actions.cancel": "취소",
158
+ "catalog.omnibus.settings.actions.retry": "다시 시도",
159
+ "catalog.omnibus.settings.actions.save": "저장",
160
+ "catalog.omnibus.settings.actions.saving": "저장 중…",
161
+ "catalog.omnibus.settings.axis.gross": "총액(B2C)",
162
+ "catalog.omnibus.settings.axis.net": "순액(B2B)",
163
+ "catalog.omnibus.settings.backfill.channels": "백필되지 않은 채널: {{channels}}",
164
+ "catalog.omnibus.settings.backfill.globalScope": "모든 채널(범위 없음)",
165
+ "catalog.omnibus.settings.backfill.requiredDescription": "Omnibus를 활성화하려면 먼저 대상 EU 채널마다 가격 이력을 백필해야 합니다. \"mercato catalog omnibus:backfill --tenant <tenantId>\"를 실행한 후(채널마다 \"--channel-id <channelId>\" 추가) 다시 저장하세요.",
166
+ "catalog.omnibus.settings.backfill.requiredTitle": "활성화 전에 백필이 필요합니다",
167
+ "catalog.omnibus.settings.backfill.staleDescription": "더 긴 기간에 기준 이력이 있도록 백필을 다시 실행하세요: {{scopes}}",
168
+ "catalog.omnibus.settings.backfill.staleTitle": "마지막 백필 이후 비교 기간이 늘어났습니다",
169
+ "catalog.omnibus.settings.channels.add": "채널 추가",
170
+ "catalog.omnibus.settings.channels.axisInherit": "전역 설정 사용",
171
+ "catalog.omnibus.settings.channels.channel": "채널",
172
+ "catalog.omnibus.settings.channels.countryCode": "회원국",
173
+ "catalog.omnibus.settings.channels.countryCodeDescription": "EU 외 채널은 비워 두세요.",
174
+ "catalog.omnibus.settings.channels.countryCodePlaceholder": "예: PL",
175
+ "catalog.omnibus.settings.channels.description": "판매 채널을 회원국에 연결하고 채널별로 표시 가격 유형, 비교 기간 또는 비교 기준을 재정의합니다.",
176
+ "catalog.omnibus.settings.channels.empty": "채널 재정의가 없습니다. 모든 채널에 전역 설정이 적용됩니다.",
177
+ "catalog.omnibus.settings.channels.lookbackDays": "비교 기간 재정의(일)",
178
+ "catalog.omnibus.settings.channels.lookbackDaysDescription": "전역 기간을 사용하려면 비워 두세요.",
179
+ "catalog.omnibus.settings.channels.minimizationAxis": "가격 비교 기준",
180
+ "catalog.omnibus.settings.channels.presentedPriceKind": "표시 가격 유형",
181
+ "catalog.omnibus.settings.channels.remove": "채널 재정의 삭제",
182
+ "catalog.omnibus.settings.channels.title": "채널 재정의",
183
+ "catalog.omnibus.settings.defaultPresentedPriceKind": "기본 표시 가격 유형",
184
+ "catalog.omnibus.settings.defaultPresentedPriceKindDescription": "채널에 재정의가 없을 때 구매자에게 표시되는 가격 유형입니다. 채널 재정의 없이 Omnibus를 활성화할 때 필요합니다.",
185
+ "catalog.omnibus.settings.description": "공지된 가격 인하 옆에 비교 기간의 최저 가격을 표시합니다(EU 지침 2019/2161).",
186
+ "catalog.omnibus.settings.enabled": "Omnibus 기준 가격 활성화",
187
+ "catalog.omnibus.settings.enabledCountryCodes": "EU 회원국",
188
+ "catalog.omnibus.settings.enabledCountryCodesDescription": "Omnibus가 적용되는 회원국의 두 글자 ISO 코드입니다. 모든 채널에서 비활성화하려면 비워 두세요.",
189
+ "catalog.omnibus.settings.enabledCountryCodesPlaceholder": "예: PL, DE",
190
+ "catalog.omnibus.settings.enabledDescription": "활성화하면 EU 채널의 상품이 비교 기간의 최저 가격을 제공합니다.",
191
+ "catalog.omnibus.settings.loading": "Omnibus 설정을 불러오는 중…",
192
+ "catalog.omnibus.settings.lookbackDays": "비교 기간(일)",
193
+ "catalog.omnibus.settings.lookbackDaysDescription": "1일에서 365일 사이입니다. 지침은 최소 30일을 요구합니다.",
194
+ "catalog.omnibus.settings.minimizationAxis": "가격 비교 기준",
195
+ "catalog.omnibus.settings.noChannelMode.bestEffort": "최선(전역 설정 사용)",
196
+ "catalog.omnibus.settings.noChannelMode.requireChannel": "채널 필수",
197
+ "catalog.omnibus.settings.noChannelModeLabel": "채널이 없는 요청",
198
+ "catalog.omnibus.settings.readOnly": "이 설정을 볼 수는 있지만 변경할 수는 없습니다.",
199
+ "catalog.omnibus.settings.removeCountry": "{{code}} 삭제",
200
+ "catalog.omnibus.settings.title": "Omnibus 가격 추적",
124
201
  "catalog.options.list.title": "옵션",
125
202
  "catalog.priceKinds.actions.add": "가격 종류 추가",
126
203
  "catalog.priceKinds.actions.cancel": "취소",
@@ -121,6 +121,83 @@
121
121
  "catalog.nav.group": "Katalog",
122
122
  "catalog.notifications.product.lowStock.body": "{productName}{sku, select, other { ({sku})}} ma niski stan magazynowy (pozostało {currentStock}, próg: {threshold})",
123
123
  "catalog.notifications.product.lowStock.title": "Alert niskiego stanu magazynowego",
124
+ "catalog.omnibus.errors.countryCodeEu": "Podaj poszczególne państwa członkowskie zamiast „EU”.",
125
+ "catalog.omnibus.errors.countryCodeFormat": "Użyj dwuliterowego kodu kraju ISO.",
126
+ "catalog.omnibus.errors.countryCodeUnknown": "Nieznany kod kraju.",
127
+ "catalog.omnibus.errors.duplicateChannel": "Ten kanał jest już skonfigurowany.",
128
+ "catalog.omnibus.errors.fieldNotSupported": "To ustawienie nie jest obsługiwane.",
129
+ "catalog.omnibus.errors.invalid": "Popraw zaznaczone pola i spróbuj ponownie.",
130
+ "catalog.omnibus.errors.invalidValue": "Nieprawidłowa wartość.",
131
+ "catalog.omnibus.errors.load": "Nie udało się wczytać ustawień Omnibus.",
132
+ "catalog.omnibus.errors.lookbackRange": "Podaj liczbę całkowitą dni od 1 do 365.",
133
+ "catalog.omnibus.errors.presentedPriceKindRequired": "Wybierz domyślny prezentowany rodzaj ceny lub skonfiguruj kanał z własnym rodzajem ceny.",
134
+ "catalog.omnibus.errors.required": "To pole jest wymagane.",
135
+ "catalog.omnibus.errors.save": "Nie udało się zapisać ustawień Omnibus.",
136
+ "catalog.omnibus.messages.saved": "Ustawienia Omnibus zostały zapisane.",
137
+ "catalog.omnibus.priceEditor.insufficientHistory": "Historia cen nie obejmuje całego okresu; cena referencyjna może być niepełna.",
138
+ "catalog.omnibus.priceEditor.insufficientHistorySince": "Historia cen jest dostępna dopiero od {{date}}; cena referencyjna może być niepełna.",
139
+ "catalog.omnibus.priceEditor.loadError": "Nie udało się wczytać ceny referencyjnej Omnibus.",
140
+ "catalog.omnibus.priceEditor.loading": "Wczytywanie ceny referencyjnej Omnibus…",
141
+ "catalog.omnibus.priceEditor.lowestInDays": "Najniższa cena z ostatnich {{days}} dni",
142
+ "catalog.omnibus.priceEditor.missingChannel": "Wybierz kanał, aby obliczyć cenę referencyjną.",
143
+ "catalog.omnibus.priceEditor.notApplicable": "Cena referencyjna Omnibus nie ma zastosowania",
144
+ "catalog.omnibus.priceEditor.perChannelReference": "Cena referencyjna jest obliczana dla każdego kanału sprzedaży.",
145
+ "catalog.omnibus.priceEditor.previousPrice": "Cena przed obniżką: {{price}}",
146
+ "catalog.omnibus.priceEditor.progressiveRef": "Cena referencyjna (zamrożona dla obniżki stopniowej)",
147
+ "catalog.omnibus.reason.announcedPromotion": "Ogłoszona promocja",
148
+ "catalog.omnibus.reason.insufficientHistory": "Niepełna historia",
149
+ "catalog.omnibus.reason.missingChannelContext": "Wymagany kanał",
150
+ "catalog.omnibus.reason.newArrivalReducedWindow": "Nowość: krótszy okres",
151
+ "catalog.omnibus.reason.noHistory": "Brak historii cen",
152
+ "catalog.omnibus.reason.notAnnounced": "Brak ogłoszonej obniżki",
153
+ "catalog.omnibus.reason.notInEuMarket": "Rynek spoza UE",
154
+ "catalog.omnibus.reason.perishableExempt": "Zwolnienie dla towarów nietrwałych",
155
+ "catalog.omnibus.reason.perishableLastPrice": "Towary nietrwałe: ostatnia cena",
156
+ "catalog.omnibus.reason.progressiveReductionFrozen": "Obniżka stopniowa",
157
+ "catalog.omnibus.settings.actions.cancel": "Anuluj",
158
+ "catalog.omnibus.settings.actions.retry": "Spróbuj ponownie",
159
+ "catalog.omnibus.settings.actions.save": "Zapisz",
160
+ "catalog.omnibus.settings.actions.saving": "Zapisywanie…",
161
+ "catalog.omnibus.settings.axis.gross": "Brutto (B2C)",
162
+ "catalog.omnibus.settings.axis.net": "Netto (B2B)",
163
+ "catalog.omnibus.settings.backfill.channels": "Kanały bez uzupełnionej historii: {{channels}}",
164
+ "catalog.omnibus.settings.backfill.globalScope": "Wszystkie kanały (bez zakresu)",
165
+ "catalog.omnibus.settings.backfill.requiredDescription": "Przed włączeniem Omnibus historia cen musi zostać uzupełniona dla każdego objętego kanału UE. Uruchom „mercato catalog omnibus:backfill --tenant <tenantId>” (dodaj „--channel-id <channelId>” dla każdego kanału), a następnie zapisz ponownie.",
166
+ "catalog.omnibus.settings.backfill.requiredTitle": "Przed włączeniem wymagane jest uzupełnienie historii",
167
+ "catalog.omnibus.settings.backfill.staleDescription": "Uruchom ponownie uzupełnianie historii, aby dłuższy okres miał historię bazową: {{scopes}}",
168
+ "catalog.omnibus.settings.backfill.staleTitle": "Okres porównawczy wydłużono od ostatniego uzupełnienia historii",
169
+ "catalog.omnibus.settings.channels.add": "Dodaj kanał",
170
+ "catalog.omnibus.settings.channels.axisInherit": "Użyj ustawienia globalnego",
171
+ "catalog.omnibus.settings.channels.channel": "Kanał",
172
+ "catalog.omnibus.settings.channels.countryCode": "Państwo członkowskie",
173
+ "catalog.omnibus.settings.channels.countryCodeDescription": "Pozostaw puste dla kanałów spoza UE.",
174
+ "catalog.omnibus.settings.channels.countryCodePlaceholder": "np. PL",
175
+ "catalog.omnibus.settings.channels.description": "Przypisz kanały sprzedaży do państwa członkowskiego i nadpisz dla każdego kanału prezentowany rodzaj ceny, okres porównawczy lub podstawę porównania.",
176
+ "catalog.omnibus.settings.channels.empty": "Brak nadpisań dla kanałów. Ustawienia globalne dotyczą każdego kanału.",
177
+ "catalog.omnibus.settings.channels.lookbackDays": "Nadpisany okres porównawczy (dni)",
178
+ "catalog.omnibus.settings.channels.lookbackDaysDescription": "Pozostaw puste, aby użyć okresu globalnego.",
179
+ "catalog.omnibus.settings.channels.minimizationAxis": "Porównuj ceny według",
180
+ "catalog.omnibus.settings.channels.presentedPriceKind": "Prezentowany rodzaj ceny",
181
+ "catalog.omnibus.settings.channels.remove": "Usuń nadpisanie kanału",
182
+ "catalog.omnibus.settings.channels.title": "Nadpisania dla kanałów",
183
+ "catalog.omnibus.settings.defaultPresentedPriceKind": "Domyślny prezentowany rodzaj ceny",
184
+ "catalog.omnibus.settings.defaultPresentedPriceKindDescription": "Rodzaj ceny pokazywany kupującym, używany gdy kanał nie ma nadpisania. Wymagany, gdy Omnibus jest włączony bez nadpisań kanałów.",
185
+ "catalog.omnibus.settings.description": "Pokazuj najniższą cenę z okresu porównawczego obok ogłoszonych obniżek cen (dyrektywa UE 2019/2161).",
186
+ "catalog.omnibus.settings.enabled": "Włącz ceny referencyjne Omnibus",
187
+ "catalog.omnibus.settings.enabledCountryCodes": "Państwa członkowskie UE",
188
+ "catalog.omnibus.settings.enabledCountryCodesDescription": "Dwuliterowe kody ISO państw członkowskich, w których obowiązuje Omnibus. Pozostaw puste, aby wyłączyć go dla wszystkich kanałów.",
189
+ "catalog.omnibus.settings.enabledCountryCodesPlaceholder": "np. PL, DE",
190
+ "catalog.omnibus.settings.enabledDescription": "Po włączeniu produkty w kanałach UE udostępniają najniższą cenę z okresu porównawczego.",
191
+ "catalog.omnibus.settings.loading": "Wczytywanie ustawień Omnibus…",
192
+ "catalog.omnibus.settings.lookbackDays": "Okres porównawczy (dni)",
193
+ "catalog.omnibus.settings.lookbackDaysDescription": "Od 1 do 365 dni. Dyrektywa wymaga co najmniej 30.",
194
+ "catalog.omnibus.settings.minimizationAxis": "Porównuj ceny według",
195
+ "catalog.omnibus.settings.noChannelMode.bestEffort": "Najlepsze dopasowanie (ustawienia globalne)",
196
+ "catalog.omnibus.settings.noChannelMode.requireChannel": "Wymagaj kanału",
197
+ "catalog.omnibus.settings.noChannelModeLabel": "Żądania bez kanału",
198
+ "catalog.omnibus.settings.readOnly": "Możesz przeglądać te ustawienia, ale nie możesz ich zmieniać.",
199
+ "catalog.omnibus.settings.removeCountry": "Usuń {{code}}",
200
+ "catalog.omnibus.settings.title": "Śledzenie cen Omnibus",
124
201
  "catalog.options.list.title": "Opcje",
125
202
  "catalog.priceKinds.actions.add": "Dodaj rodzaj ceny",
126
203
  "catalog.priceKinds.actions.cancel": "Anuluj",