oneentry 1.0.160 → 1.0.162

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 (238) hide show
  1. package/README.md +2 -0
  2. package/changelog.md +61 -0
  3. package/dist/admins/adminsApi.d.ts +15 -1
  4. package/dist/admins/adminsApi.js +29 -0
  5. package/dist/admins/adminsInterfaces.d.ts +39 -1
  6. package/dist/admins/adminsSchemas.d.ts +2 -0
  7. package/dist/admins/adminsSchemas.js +1 -0
  8. package/dist/attribute-sets/attributeSetsInterfaces.d.ts +2 -0
  9. package/dist/auth-provider/authProviderSchemas.d.ts +1 -0
  10. package/dist/base/lazySchema.d.ts +15 -0
  11. package/dist/base/lazySchema.js +20 -0
  12. package/dist/base/validation.d.ts +1 -0
  13. package/dist/base/validation.js +1 -0
  14. package/dist/blocks/blocksApi.d.ts +16 -8
  15. package/dist/blocks/blocksApi.js +24 -15
  16. package/dist/blocks/blocksInterfaces.d.ts +16 -8
  17. package/dist/discounts/discountsApi.d.ts +14 -1
  18. package/dist/discounts/discountsApi.js +21 -0
  19. package/dist/discounts/discountsInterfaces.d.ts +29 -1
  20. package/dist/filters/filtersInterfaces.d.ts +2 -2
  21. package/dist/filters/filtersSchemas.d.ts +1 -1
  22. package/dist/filters/filtersSchemas.js +4 -1
  23. package/dist/forms-data/formsDataApi.d.ts +14 -1
  24. package/dist/forms-data/formsDataApi.js +21 -0
  25. package/dist/forms-data/formsDataInterfaces.d.ts +78 -1
  26. package/dist/index.d.ts +4 -0
  27. package/dist/index.js +3 -0
  28. package/dist/menus/menusInterfaces.d.ts +4 -0
  29. package/dist/menus/menusSchemas.js +2 -0
  30. package/dist/orders/ordersApi.d.ts +15 -1
  31. package/dist/orders/ordersApi.js +22 -0
  32. package/dist/orders/ordersInterfaces.d.ts +29 -1
  33. package/dist/orders/ordersSchemas.d.ts +2 -0
  34. package/dist/orders/ordersSchemas.js +1 -0
  35. package/dist/pages/pagesApi.d.ts +14 -11
  36. package/dist/pages/pagesApi.js +21 -17
  37. package/dist/pages/pagesInterfaces.d.ts +37 -17
  38. package/dist/pages/pagesSchemas.d.ts +3 -7
  39. package/dist/pages/pagesSchemas.js +2 -8
  40. package/dist/payments/paymentsInterfaces.d.ts +2 -2
  41. package/dist/products/productsInterfaces.d.ts +1 -1
  42. package/dist/search/searchApi.d.ts +35 -0
  43. package/dist/search/searchApi.js +86 -0
  44. package/dist/search/searchInterfaces.d.ts +94 -0
  45. package/dist/search/searchInterfaces.js +2 -0
  46. package/dist/search/searchSchemas.d.ts +73 -0
  47. package/dist/search/searchSchemas.js +44 -0
  48. package/dist/templates-preview/templatesPreviewInterfaces.d.ts +0 -2
  49. package/dist/templates-preview/templatesPreviewSchemas.d.ts +0 -2
  50. package/dist/templates-preview/templatesPreviewSchemas.js +0 -1
  51. package/dist/types.d.ts +35 -0
  52. package/dist/types.js +2 -0
  53. package/dist/users/usersApi.d.ts +15 -1
  54. package/dist/users/usersApi.js +22 -0
  55. package/dist/users/usersInterfaces.d.ts +41 -1
  56. package/dist/users/usersSchemas.d.ts +1 -0
  57. package/dist/web-socket/lazySocket.d.ts +18 -0
  58. package/dist/web-socket/lazySocket.js +70 -0
  59. package/esm/admins/adminsApi.d.ts +66 -0
  60. package/esm/admins/adminsApi.js +90 -0
  61. package/esm/admins/adminsInterfaces.d.ts +139 -0
  62. package/esm/admins/adminsInterfaces.js +1 -0
  63. package/esm/admins/adminsSchemas.d.ts +50 -0
  64. package/esm/admins/adminsSchemas.js +32 -0
  65. package/esm/attribute-sets/attributeSetsApi.d.ts +67 -0
  66. package/esm/attribute-sets/attributeSetsApi.js +97 -0
  67. package/esm/attribute-sets/attributeSetsInterfaces.d.ts +287 -0
  68. package/esm/attribute-sets/attributeSetsInterfaces.js +1 -0
  69. package/esm/attribute-sets/attributeSetsSchemas.d.ts +84 -0
  70. package/esm/attribute-sets/attributeSetsSchemas.js +66 -0
  71. package/esm/auth-provider/authProviderApi.d.ts +262 -0
  72. package/esm/auth-provider/authProviderApi.js +362 -0
  73. package/esm/auth-provider/authProviderSchemas.d.ts +125 -0
  74. package/esm/auth-provider/authProviderSchemas.js +92 -0
  75. package/esm/auth-provider/authProvidersInterfaces.d.ts +430 -0
  76. package/esm/auth-provider/authProvidersInterfaces.js +1 -0
  77. package/esm/base/asyncModules.d.ts +123 -0
  78. package/esm/base/asyncModules.js +382 -0
  79. package/esm/base/lazySchema.d.ts +15 -0
  80. package/esm/base/lazySchema.js +17 -0
  81. package/esm/base/stateModule.d.ts +35 -0
  82. package/esm/base/stateModule.js +51 -0
  83. package/esm/base/syncModules.d.ts +245 -0
  84. package/esm/base/syncModules.js +555 -0
  85. package/esm/base/timeIntervals.d.ts +95 -0
  86. package/esm/base/timeIntervals.js +317 -0
  87. package/esm/base/utils.d.ts +354 -0
  88. package/esm/base/utils.js +1 -0
  89. package/esm/base/validation.d.ts +99 -0
  90. package/esm/base/validation.js +119 -0
  91. package/esm/blocks/blocksApi.d.ts +260 -0
  92. package/esm/blocks/blocksApi.js +403 -0
  93. package/esm/blocks/blocksInterfaces.d.ts +369 -0
  94. package/esm/blocks/blocksInterfaces.js +1 -0
  95. package/esm/blocks/blocksSchemas.d.ts +213 -0
  96. package/esm/blocks/blocksSchemas.js +40 -0
  97. package/esm/discounts/discountsApi.d.ts +94 -0
  98. package/esm/discounts/discountsApi.js +136 -0
  99. package/esm/discounts/discountsInterfaces.d.ts +295 -0
  100. package/esm/discounts/discountsInterfaces.js +1 -0
  101. package/esm/events/eventsApi.d.ts +108 -0
  102. package/esm/events/eventsApi.js +141 -0
  103. package/esm/events/eventsInterfaces.d.ts +176 -0
  104. package/esm/events/eventsInterfaces.js +1 -0
  105. package/esm/file-uploading/fileUploadingApi.d.ts +91 -0
  106. package/esm/file-uploading/fileUploadingApi.js +127 -0
  107. package/esm/file-uploading/fileUploadingInterfaces.d.ts +116 -0
  108. package/esm/file-uploading/fileUploadingInterfaces.js +1 -0
  109. package/esm/file-uploading/fileUploadingSchemas.d.ts +24 -0
  110. package/esm/file-uploading/fileUploadingSchemas.js +19 -0
  111. package/esm/filters/filtersApi.d.ts +32 -0
  112. package/esm/filters/filtersApi.js +36 -0
  113. package/esm/filters/filtersInterfaces.d.ts +56 -0
  114. package/esm/filters/filtersInterfaces.js +1 -0
  115. package/esm/filters/filtersSchemas.d.ts +32 -0
  116. package/esm/filters/filtersSchemas.js +29 -0
  117. package/esm/forms/formsApi.d.ts +44 -0
  118. package/esm/forms/formsApi.js +54 -0
  119. package/esm/forms/formsInterfaces.d.ts +237 -0
  120. package/esm/forms/formsInterfaces.js +1 -0
  121. package/esm/forms/formsSchemas.d.ts +56 -0
  122. package/esm/forms/formsSchemas.js +32 -0
  123. package/esm/forms-data/formsDataApi.d.ts +124 -0
  124. package/esm/forms-data/formsDataApi.js +210 -0
  125. package/esm/forms-data/formsDataInterfaces.d.ts +674 -0
  126. package/esm/forms-data/formsDataInterfaces.js +1 -0
  127. package/esm/forms-data/formsDataSchemas.d.ts +107 -0
  128. package/esm/forms-data/formsDataSchemas.js +83 -0
  129. package/esm/general-types/generalTypesApi.d.ts +29 -0
  130. package/esm/general-types/generalTypesApi.js +34 -0
  131. package/esm/general-types/generalTypesInterfaces.d.ts +29 -0
  132. package/esm/general-types/generalTypesInterfaces.js +1 -0
  133. package/esm/general-types/generalTypesSchemas.d.ts +68 -0
  134. package/esm/general-types/generalTypesSchemas.js +42 -0
  135. package/esm/index.d.ts +143 -0
  136. package/esm/index.js +124 -0
  137. package/esm/integration-collections/integrationCollectionsApi.d.ts +172 -0
  138. package/esm/integration-collections/integrationCollectionsApi.js +224 -0
  139. package/esm/integration-collections/integrationCollectionsInterfaces.d.ts +317 -0
  140. package/esm/integration-collections/integrationCollectionsInterfaces.js +1 -0
  141. package/esm/integration-collections/integrationCollectionsSchemas.d.ts +84 -0
  142. package/esm/integration-collections/integrationCollectionsSchemas.js +60 -0
  143. package/esm/locales/localesApi.d.ts +28 -0
  144. package/esm/locales/localesApi.js +33 -0
  145. package/esm/locales/localesInterfaces.d.ts +40 -0
  146. package/esm/locales/localesInterfaces.js +1 -0
  147. package/esm/locales/localesSchemas.d.ts +32 -0
  148. package/esm/locales/localesSchemas.js +23 -0
  149. package/esm/menus/menusApi.d.ts +30 -0
  150. package/esm/menus/menusApi.js +35 -0
  151. package/esm/menus/menusInterfaces.d.ts +91 -0
  152. package/esm/menus/menusInterfaces.js +2 -0
  153. package/esm/menus/menusSchemas.d.ts +16 -0
  154. package/esm/menus/menusSchemas.js +27 -0
  155. package/esm/orders/ordersApi.d.ts +213 -0
  156. package/esm/orders/ordersApi.js +288 -0
  157. package/esm/orders/ordersInterfaces.d.ts +765 -0
  158. package/esm/orders/ordersInterfaces.js +1 -0
  159. package/esm/orders/ordersSchemas.d.ts +314 -0
  160. package/esm/orders/ordersSchemas.js +172 -0
  161. package/esm/package.json +4 -0
  162. package/esm/pages/pagesApi.d.ts +163 -0
  163. package/esm/pages/pagesApi.js +397 -0
  164. package/esm/pages/pagesInterfaces.d.ts +327 -0
  165. package/esm/pages/pagesInterfaces.js +1 -0
  166. package/esm/pages/pagesSchemas.d.ts +117 -0
  167. package/esm/pages/pagesSchemas.js +54 -0
  168. package/esm/payments/paymentsApi.d.ts +88 -0
  169. package/esm/payments/paymentsApi.js +122 -0
  170. package/esm/payments/paymentsInterfaces.d.ts +189 -0
  171. package/esm/payments/paymentsInterfaces.js +1 -0
  172. package/esm/payments/paymentsSchemas.d.ts +94 -0
  173. package/esm/payments/paymentsSchemas.js +53 -0
  174. package/esm/product-statuses/productStatusesApi.d.ts +50 -0
  175. package/esm/product-statuses/productStatusesApi.js +68 -0
  176. package/esm/product-statuses/productStatusesInterfaces.d.ts +62 -0
  177. package/esm/product-statuses/productStatusesInterfaces.js +1 -0
  178. package/esm/product-statuses/productStatusesSchemas.d.ts +34 -0
  179. package/esm/product-statuses/productStatusesSchemas.js +27 -0
  180. package/esm/products/productsApi.d.ts +366 -0
  181. package/esm/products/productsApi.js +468 -0
  182. package/esm/products/productsInterfaces.d.ts +723 -0
  183. package/esm/products/productsInterfaces.js +1 -0
  184. package/esm/products/productsSchemas.d.ts +234 -0
  185. package/esm/products/productsSchemas.js +121 -0
  186. package/esm/search/searchApi.d.ts +35 -0
  187. package/esm/search/searchApi.js +47 -0
  188. package/esm/search/searchInterfaces.d.ts +94 -0
  189. package/esm/search/searchInterfaces.js +1 -0
  190. package/esm/search/searchSchemas.d.ts +73 -0
  191. package/esm/search/searchSchemas.js +41 -0
  192. package/esm/sitemap/sitemapApi.d.ts +37 -0
  193. package/esm/sitemap/sitemapApi.js +41 -0
  194. package/esm/sitemap/sitemapInterfaces.d.ts +51 -0
  195. package/esm/sitemap/sitemapInterfaces.js +1 -0
  196. package/esm/subscriptions/subscriptionsApi.d.ts +74 -0
  197. package/esm/subscriptions/subscriptionsApi.js +90 -0
  198. package/esm/subscriptions/subscriptionsInterfaces.d.ts +111 -0
  199. package/esm/subscriptions/subscriptionsInterfaces.js +1 -0
  200. package/esm/subscriptions/subscriptionsSchemas.d.ts +46 -0
  201. package/esm/subscriptions/subscriptionsSchemas.js +38 -0
  202. package/esm/system/systemApi.d.ts +46 -0
  203. package/esm/system/systemApi.js +53 -0
  204. package/esm/system/systemInterfaces.d.ts +29 -0
  205. package/esm/system/systemInterfaces.js +1 -0
  206. package/esm/templates/templatesApi.d.ts +53 -0
  207. package/esm/templates/templatesApi.js +78 -0
  208. package/esm/templates/templatesInterfaces.d.ts +68 -0
  209. package/esm/templates/templatesInterfaces.js +1 -0
  210. package/esm/templates/templatesSchemas.d.ts +48 -0
  211. package/esm/templates/templatesSchemas.js +28 -0
  212. package/esm/templates-preview/templatesPreviewApi.d.ts +40 -0
  213. package/esm/templates-preview/templatesPreviewApi.js +50 -0
  214. package/esm/templates-preview/templatesPreviewInterfaces.d.ts +129 -0
  215. package/esm/templates-preview/templatesPreviewInterfaces.js +1 -0
  216. package/esm/templates-preview/templatesPreviewSchemas.d.ts +79 -0
  217. package/esm/templates-preview/templatesPreviewSchemas.js +43 -0
  218. package/esm/types.d.ts +35 -0
  219. package/esm/types.js +1 -0
  220. package/esm/user-activity/userActivityApi.d.ts +31 -0
  221. package/esm/user-activity/userActivityApi.js +37 -0
  222. package/esm/user-activity/userActivityInterfaces.d.ts +42 -0
  223. package/esm/user-activity/userActivityInterfaces.js +1 -0
  224. package/esm/users/usersApi.d.ts +249 -0
  225. package/esm/users/usersApi.js +312 -0
  226. package/esm/users/usersInterfaces.d.ts +421 -0
  227. package/esm/users/usersInterfaces.js +1 -0
  228. package/esm/users/usersSchemas.d.ts +73 -0
  229. package/esm/users/usersSchemas.js +55 -0
  230. package/esm/web-socket/lazySocket.d.ts +18 -0
  231. package/esm/web-socket/lazySocket.js +67 -0
  232. package/esm/web-socket/wsApi.d.ts +27 -0
  233. package/esm/web-socket/wsApi.js +43 -0
  234. package/esm/web-socket/wsInterfaces.d.ts +16 -0
  235. package/esm/web-socket/wsInterfaces.js +1 -0
  236. package/package.json +5 -1
  237. package/types.d.ts +1 -0
  238. package/types.js +1 -0
@@ -0,0 +1,723 @@
1
+ import type { IAttributeValues, IError, ILocalizeInfo, IRating } from '../base/utils.js';
2
+ import type { BlockType } from '../blocks/blocksInterfaces.js';
3
+ import type { IFormConfig } from '../forms/formsInterfaces.js';
4
+ /**
5
+ * @interface IProductsApi
6
+ * @description This interface defines methods for retrieving and managing products in the system.
7
+ */
8
+ interface IProductsApi {
9
+ /**
10
+ * Search for all products with pagination and filter.
11
+ * @handleName getProducts
12
+ * @param {IFilterParams[]} [body] - Request body. Default [].
13
+ * @example
14
+ [
15
+ {
16
+ "attributeMarker": "price",
17
+ "conditionMarker": "mth",
18
+ "statusMarker": "waiting",
19
+ "conditionValue": 1,
20
+ "pageUrls": [
21
+ "23-laminat-floorwood-maxima"
22
+ ],
23
+ "isNested": false,
24
+ "title": ""
25
+ },
26
+ {
27
+ "attributeMarker": "price",
28
+ "conditionMarker": "lth",
29
+ "conditionValue": 3,
30
+ "pageUrls": [
31
+ "23-laminat-floorwood-maxima"
32
+ ],
33
+ "isNested": false,
34
+ "title": ""
35
+ }
36
+ ]
37
+ * @param {string} [langCode] - Language code. Default: "en_US".
38
+ * @param {IProductsQueryBase} [userQuery] - Optional set query parameters.
39
+ * @example
40
+ {
41
+ "limit": 30,
42
+ "offset": 0,
43
+ "sortOrder": "DESC",
44
+ "sortKey": "id",
45
+ "signPrice": "orders"
46
+ }
47
+ * @returns {IProductsResponse} Array with ProductEntity objects
48
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
49
+ */
50
+ getProducts(body?: IFilterParams[], langCode?: string, userQuery?: IProductsQueryBase): Promise<IProductsResponse | IError>;
51
+ /**
52
+ * Search for all product page objects with pagination that do not have a category.
53
+ * @handleName getProductsEmptyPage
54
+ * @param body
55
+ * @param {string} [langCode] - Language code. Default: "en_US".
56
+ * @param {IProductsQueryBase} [userQuery] - Optional set query parameters.
57
+ * @example
58
+ {
59
+ "limit": 30,
60
+ "offset": 0,
61
+ "sortOrder": "DESC",
62
+ "sortKey": "id",
63
+ "signPrice": "orders"
64
+ }
65
+ * @returns {IProductsResponse} Array with ProductEntity objects.
66
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
67
+ * @description This method searches for all product page objects with pagination that do not have a category.
68
+ */
69
+ getProductsEmptyPage(body?: object, langCode?: string, userQuery?: IProductsQueryBase): Promise<IAggregatedProductGroup[] | IError>;
70
+ /**
71
+ * Search for all products with pagination for the selected category.
72
+ * @handleName getProductsByPageId
73
+ * @param {number} id - Page id. Example: 12345.
74
+ * @param {IFilterParams[]} [body] - Request body. Default: [].
75
+ * @param {string} [langCode] - Language code. Default "en_US".
76
+ * @param {IProductsQueryBase} [userQuery] - Optional set query parameters.
77
+ * @example
78
+ {
79
+ "limit": 30,
80
+ "offset": 0,
81
+ "sortOrder": "DESC",
82
+ "sortKey": "id",
83
+ "signPrice": "orders"
84
+ }
85
+ * @returns {IProductsResponse} Array with ProductEntity objects
86
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
87
+ * @description This method searches for all products with pagination for the selected category.
88
+ */
89
+ getProductsByPageId(id: number, body?: IFilterParams[], langCode?: string, userQuery?: IProductsQueryBase): Promise<IProductsResponse | IError>;
90
+ /**
91
+ * Search for information about products and prices for the selected category.
92
+ * @handleName getProductsPriceByPageUrl
93
+ * @param {string} [url] - Page url. Example: "23-laminat-floorwood-maxima".
94
+ * @param {string} [langCode] - Language code. Default: "en_US".
95
+ * @param {IProductsPriceQuery} [userQuery] - Optional set query parameters.
96
+ * @example
97
+ {
98
+ "limit": 30,
99
+ "offset": 0,
100
+ "sortOrder": "DESC",
101
+ "signPrice": "orders",
102
+ "statusMarker": "in_stock"
103
+ }
104
+ * @returns {IProductsInfo} Array with ProductInformation objects.
105
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
106
+ * @description This method searches for information about products prices for the selected category.
107
+ */
108
+ getProductsPriceByPageUrl(url: string, langCode?: string, userQuery?: IProductsPriceQuery): Promise<IProductsInfo | IError>;
109
+ /**
110
+ * Search for all products with pagination for the selected category.
111
+ * @handleName getProductsByPageUrl
112
+ * @param {string} url - Page url. Example: "23-laminat-floorwood-maxima".
113
+ * @param {IFilterParams[]} [body] - Request body. Default: [].
114
+ * @param {string} [langCode] - Language code. Default: "en_US".
115
+ * @param {IProductsQueryBase} [userQuery] - Optional set query parameters.
116
+ * @example
117
+ {
118
+ "limit": 30,
119
+ "offset": 0,
120
+ "sortOrder": "DESC",
121
+ "sortKey": "id",
122
+ "signPrice": "orders"
123
+ }
124
+ * @returns {IProductsResponse} Array with ProductEntity objects.
125
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
126
+ * @description This method searches for all products with pagination for the selected category.
127
+ */
128
+ getProductsByPageUrl(url: string, body?: IFilterParams[], langCode?: string, userQuery?: IProductsQueryBase): Promise<IProductsResponse | IError>;
129
+ /**
130
+ * Find all related product page objects.
131
+ * @handleName getRelatedProductsById
132
+ * @param {number} [id] - Product page identifier for which to find relationship. Example: 12345.
133
+ * @param {string} [langCode] - Language code. Default: "en_US".
134
+ * @param {IProductsRelatedQuery} [userQuery] - Optional set query parameters.
135
+ * @example
136
+ {
137
+ "limit": 30,
138
+ "offset": 0,
139
+ "sortOrder": "DESC",
140
+ "sortKey": "id",
141
+ "signPrice": "orders",
142
+ "statusMarker": "in_stock",
143
+ "templateMarker": "template_12345"
144
+ }
145
+ * @returns {IProductsResponse} Array with ProductEntity objects
146
+ * @throws {IError} If there is an error during the fetch operation, it will return an error object.
147
+ * @description This method finds all related product page objects for the selected product page.
148
+ */
149
+ getRelatedProductsById(id: number, langCode?: string, userQuery?: IProductsRelatedQuery): Promise<IProductsResponse | IError>;
150
+ /**
151
+ * Find products by its ids.
152
+ * @handleName getProductsByIds
153
+ * @param {string} ids - Product page identifiers for which to find relationships. Example: "12345,67890".
154
+ * @param {string} [langCode] - Language code. Default: "en_US".
155
+ * @param {IProductsByIdsQuery} [userQuery] - Optional set query parameters.
156
+ * @example
157
+ {
158
+ "limit": 30,
159
+ "offset": 0,
160
+ "signPrice": "orders"
161
+ }
162
+ * @returns {IProductsEntity[]} Array with ProductEntity objects
163
+ * @throws {IError} If there is an error during the fetch operation, it will return an error object.
164
+ * @description This method finds products by its ids.
165
+ */
166
+ getProductsByIds(ids: string, langCode?: string, userQuery?: IProductsByIdsQuery): Promise<IProductsEntity[] | IError>;
167
+ /**
168
+ * Retrieve one product object.
169
+ * @handleName getProductById
170
+ * @param {number} id - Product id. Example: 12345.
171
+ * @param {string} [langCode] - Language code. Default: "en_US".
172
+ * @param {boolean} [isNormalized] - If true, the product object will be normalized.
173
+ * @returns {IProductsEntity} ProductEntity object.
174
+ * @throws {IError} If there is an error during the fetch operation, it will return an error object.
175
+ * @description This method retrieves one product object.
176
+ */
177
+ getProductById(id: number, langCode?: string, isNormalized?: boolean): Promise<IProductsEntity | IError>;
178
+ /**
179
+ * Getting a product block object by product id.
180
+ * @handleName getProductBlockById
181
+ * @param {number} id - Product id. Example: 12345.
182
+ * @returns {IProductBlock}
183
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
184
+ * @description This method gets a product block object by product id.
185
+ */
186
+ getProductBlockById(id: number): Promise<IProductBlock[] | IError>;
187
+ /**
188
+ * Quick search for product page objects with limited output.
189
+ * @handleName searchProduct
190
+ * @param {string} name - Text to search product page objects (search is based on the title field of the localizeInfos object with language consideration). Example: 'laminat'.
191
+ * @param {string} [langCode] - Language code. Default: "en_US".
192
+ * @returns {IProductsEntity[] | IProductSearchResult[]} Array with ProductEntity objects, or an array with short ProductSearchResult cards when the traficLimit config option is enabled
193
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
194
+ * @description This method performs a quick search for product page objects with limited output. With traficLimit enabled the raw quick search response is returned as short cards; otherwise full product entities are fetched for the found ids.
195
+ */
196
+ searchProduct(name: string, langCode?: string): Promise<IProductsEntity[] | IProductSearchResult[] | IError>;
197
+ /**
198
+ * Getting the number of products for the entire catalog.
199
+ * @handleName getProductsCount
200
+ * @param {object[]} [body] - Body parameters for filter. Deault: [].
201
+ * @example
202
+ [
203
+ {
204
+ "attributeMarker": "price",
205
+ "conditionMarker": "in",
206
+ "statusMarker": "status_1",
207
+ "conditionValue": {},
208
+ "pageUrls": [
209
+ "23-laminat-floorwood-maxima"
210
+ ],
211
+ "title": "Iphone 17 Pro"
212
+ },
213
+ {
214
+ "attributeMarker": "price",
215
+ "conditionMarker": "in",
216
+ "statusMarker": "status_1",
217
+ "conditionValue": {},
218
+ "pageUrls": [
219
+ "23-laminat-floorwood-maxima"
220
+ ],
221
+ "title": "Iphone 17 Pro"
222
+ }
223
+ ]
224
+ * @returns {IProductsCount} Object with product items count.
225
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
226
+ * @description This method calculates and returns the total number of products present across the entire catalog, optionally applying specified filters.
227
+ */
228
+ getProductsCount(body?: object[]): Promise<IProductsCount | IError>;
229
+ /**
230
+ * Getting the number of products on a catalog page by page ID.
231
+ * @handleName getProductsCountByPageId
232
+ * @param {string} id - Page id. Example: "12345".
233
+ * @param {object[]} body - Body parameters for filter. Deault: [].
234
+ * @example
235
+ [
236
+ {
237
+ "attributeMarker": "price",
238
+ "conditionMarker": "in",
239
+ "statusMarker": "status_1",
240
+ "conditionValue": {},
241
+ "pageUrls": [
242
+ "23-laminat-floorwood-maxima"
243
+ ],
244
+ "title": "Iphone 17 Pro"
245
+ },
246
+ {
247
+ "attributeMarker": "price",
248
+ "conditionMarker": "in",
249
+ "statusMarker": "status_1",
250
+ "conditionValue": {},
251
+ "pageUrls": [
252
+ "23-laminat-floorwood-maxima"
253
+ ],
254
+ "title": "Iphone 17 Pro"
255
+ }
256
+ ]
257
+ * @returns {IProductsCount} Object with product items count.
258
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
259
+ * @description This method calculates and returns the number of products available on a given catalog page, identified by its page ID, with optional filtering.
260
+ */
261
+ getProductsCountByPageId(id: string, body?: object[]): Promise<IProductsCount | IError>;
262
+ /**
263
+ * Getting the number of products on a catalog page by page URL.
264
+ * @handleName getProductsCountByPageUrl
265
+ * @param {string} url - Page url. Example: "catalog".
266
+ * @param {string} body - Body parameters for filter. Deault: [].
267
+ * @example
268
+ [
269
+ {
270
+ "attributeMarker": "price",
271
+ "conditionMarker": "in",
272
+ "statusMarker": "status_1",
273
+ "conditionValue": {},
274
+ "pageUrls": [
275
+ "23-laminat-floorwood-maxima"
276
+ ],
277
+ "title": "Iphone 17 Pro"
278
+ },
279
+ {
280
+ "attributeMarker": "price",
281
+ "conditionMarker": "in",
282
+ "statusMarker": "status_1",
283
+ "conditionValue": {},
284
+ "pageUrls": [
285
+ "23-laminat-floorwood-maxima"
286
+ ],
287
+ "title": "Iphone 17 Pro"
288
+ }
289
+ ]
290
+ * @returns {IProductsCount} Object with product items count.
291
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
292
+ * @description This method calculates and returns the number of products available on a given catalog page, identified by its URL, with optional filtering.
293
+ */
294
+ getProductsCountByPageUrl(url: string, body?: object[]): Promise<IProductsCount | IError>;
295
+ /**
296
+ * Semantic (vector) search for products.
297
+ * @handleName getProductsByVectorSearch
298
+ * @param {IVectorSearchProducts} body - Vector search body. Example: `{ queryText: "red running shoes" }`.
299
+ * @param {string} [langCode] - Language code. Default: "en_US".
300
+ * @param {number} [offset] - Parameter for pagination. Default: 0.
301
+ * @param {number} [limit] - Parameter for pagination. Default: 30.
302
+ * @returns {IProductsResponse} A promise that resolves to a products response (items + total) or an error.
303
+ * @throws {IError} - If there is an error during the fetch operation, it will return an error object.
304
+ * @description This method performs a semantic (vector) search for products.
305
+ */
306
+ getProductsByVectorSearch(body: IVectorSearchProducts, langCode?: string, offset?: number, limit?: number): Promise<IProductsResponse | IError>;
307
+ }
308
+ /**
309
+ * @interface IProductsQueryBase
310
+ * @property {number} offset - Parameter for pagination. Default: 0.
311
+ * @property {number} limit - Parameter for pagination. Default: 30.
312
+ * @property {string} sortOrder - Sort order "DESC" | "ASC". Default: "DESC".
313
+ * @property {string} sortKey - Field for sorting (default - null). Possible values: "id", "position", "title", "date", "price". Default: null.
314
+ * @property {string} [signPrice] - Order storage marker for price fixing. If the parameter is set, the price is fixed for a certain time.
315
+ * @see {@link https://js-sdk.oneentry.cloud/docs/products/#Fixing-the-price-signPrice Fixing the price} documentation.
316
+ * @description Base query parameters shared by the product listing endpoints (getProducts, getProductsEmptyPage, getProductsByPageId, getProductsByPageUrl): pagination, sorting and price fixing.
317
+ */
318
+ interface IProductsQueryBase {
319
+ offset?: number;
320
+ limit?: number;
321
+ sortOrder?: 'DESC' | 'ASC' | null;
322
+ sortKey?: 'id' | 'position' | 'title' | 'date' | 'price' | null;
323
+ signPrice?: string;
324
+ }
325
+ /**
326
+ * @interface IProductsRelatedQuery
327
+ * @augments IProductsQueryBase
328
+ * @property {string | null} [statusMarker] - Product page status marker, default null. Example: "in_stock".
329
+ * @property {string | null} [templateMarker] - Product page template marker, default null. Example: "template_12345".
330
+ * @description Query parameters for getRelatedProductsById: the base query plus product page status and template markers.
331
+ */
332
+ interface IProductsRelatedQuery extends IProductsQueryBase {
333
+ statusMarker?: string | null;
334
+ templateMarker?: string | null;
335
+ }
336
+ /**
337
+ * Query parameters for getProductsPriceByPageUrl: the base query without
338
+ * `sortKey`, plus the product page status marker.
339
+ * @typedef {object} IProductsPriceQuery
340
+ * @property {number} [offset] - Parameter for pagination. Default: 0.
341
+ * @property {number} [limit] - Parameter for pagination. Default: 30.
342
+ * @property {string} [sortOrder] - Sort order "DESC" | "ASC". Default: "DESC".
343
+ * @property {string} [signPrice] - Order storage marker for price fixing.
344
+ * @property {string | null} [statusMarker] - Product page status marker, default null. Example: "in_stock".
345
+ */
346
+ type IProductsPriceQuery = Omit<IProductsQueryBase, 'sortKey'> & {
347
+ statusMarker?: string | null;
348
+ };
349
+ /**
350
+ * Query parameters for getProductsByIds: only price fixing — `ids` is passed
351
+ * as a dedicated method argument.
352
+ * @typedef {object} IProductsByIdsQuery
353
+ * @property {string} [signPrice] - Order storage marker for price fixing.
354
+ */
355
+ type IProductsByIdsQuery = Pick<IProductsQueryBase, 'signPrice'>;
356
+ /**
357
+ * Query parameters for retrieving products.
358
+ * @deprecated Use the per-method query types instead — IProductsQueryBase
359
+ * (getProducts / getProductsEmptyPage / getProductsByPageId / getProductsByPageUrl),
360
+ * IProductsRelatedQuery (getRelatedProductsById), IProductsPriceQuery
361
+ * (getProductsPriceByPageUrl) or IProductsByIdsQuery (getProductsByIds).
362
+ * Kept as an alias of the base query for backward compatibility.
363
+ * @typedef {IProductsQueryBase} IProductsQuery
364
+ */
365
+ type IProductsQuery = IProductsQueryBase;
366
+ /**
367
+ * @interface IFilterParams
368
+ * @property {string | null} attributeMarker - The text identifier of the indexed attribute by which values are filtered. Default: null. Example: "color".
369
+ * @property {string | null} [conditionMarker] - Id of the filter condition by which the values are filtered. Default: null. Example: "equals".
370
+ * @property {number | string | null} conditionValue - The value that is being searched for, default null. Example: "new".
371
+ * @property {string | null} [pageUrl] - Url of the category page object. Example: ["23-laminat-floorwood-maxima"].
372
+ * @property {string[] | null} [pageUrls] - Url of the category page object. Example: ["23-laminat-floorwood-maxima"].
373
+ * @property {string | null} [statusMarker] - Text identifier of the product page status (default not set). Example: "in_stock".
374
+ * @property {string | null} [title] - Product name. Example: "Laminatboden Maxima".
375
+ * @property {boolean} [isNested] - Flag for nested attributes, default false. Example: true.
376
+ * @description This interface defines the structure of filter parameters used for querying products, including conditions, attributes, and pagination.
377
+ */
378
+ interface IFilterParams {
379
+ attributeMarker: string;
380
+ conditionMarker?: 'in' /** 'in' - Contains */ | 'nin' /** 'nin' - Does not contain */ | 'eq' /** 'eq' - Equal */ | 'neq' /** 'neq' - Not equal */ | 'mth' /** 'mth' - Greater than */ | 'lth' /** 'lth' - Less than */ | 'exs' /** 'exs' - Exists */ | 'nexs' /** 'nexs' - Does not exist */ | 'pat' /** 'pat' - Matches pattern */ | 'same' /** 'same' - Matches the value exactly */ | 'same_part' /** 'same_part' - Matches a part of the value exactly */ | null;
381
+ conditionValue: number | string | null;
382
+ pageUrl?: string | null;
383
+ pageUrls?: string[] | null;
384
+ statusMarker?: string;
385
+ title?: string;
386
+ isNested?: boolean;
387
+ }
388
+ /**
389
+ * @interface IProductAdditional
390
+ * @property {object} prices - Aggregated price range for the product across all variants.
391
+ * @property {number} prices.min - Minimum price value. Example: 5.
392
+ * @property {number} prices.max - Maximum price value. Example: 150.
393
+ * @description Additional indexed values attached to a product entity.
394
+ */
395
+ interface IProductAdditional {
396
+ prices: IProductPriceRange;
397
+ }
398
+ /**
399
+ * @interface IProductPriceRange
400
+ * @property {number} min - Minimum price across product variants. Example: 5.
401
+ * @property {number} max - Maximum price across product variants. Example: 150.
402
+ * @description Aggregated price range for a product, computed from all its variants.
403
+ */
404
+ interface IProductPriceRange {
405
+ min: number;
406
+ max: number;
407
+ }
408
+ /**
409
+ * @interface IProductPageRef
410
+ * @property {number} id - Unique identifier of the product-to-page link record. Example: 16.
411
+ * @property {number} pageId - Identifier of the page the product is linked to. Example: 4.
412
+ * @property {number} productId - Identifier of the product. Example: 15.
413
+ * @property {number} positionId - Sorting position identifier within the page. Example: 244.
414
+ * @property {string} categoryPath - Category path of the page the product belongs to. Example: "products".
415
+ * @description Reference linking a product to one of the pages it is published on.
416
+ */
417
+ interface IProductPageRef {
418
+ id: number;
419
+ pageId: number;
420
+ productId: number;
421
+ positionId: number;
422
+ categoryPath: string;
423
+ }
424
+ /**
425
+ * @interface IProductsEntity
426
+ * @property {number} id - The unique identifier. Example: 12345.
427
+ * @property {ILocalizeInfo} localizeInfos - The name of the products, taking into account localization. Example: {}.
428
+ * @property {string | null} statusIdentifier - Product page status identifiers (may be null). Example: "in_stock".
429
+ * @property {ILocalizeInfo} statusLocalizeInfos - Localized status name for the product. Example: `{ "title": "Sale" }`.
430
+ * @property {string | null} attributeSetIdentifier - Set of attributes id. Example: "set_12345".
431
+ * @property {number} position - Item number (for sorting). Example: 1.
432
+ * @property {number | null} price - The value of the product page price taken from the index. Example: 150.00.
433
+ * @property {object} additional - Additional value from the index.
434
+ * @example
435
+ {
436
+ "prices": {
437
+ "min": 5,
438
+ "max": 150
439
+ }
440
+ }
441
+ * @property {string | null} sku - Product SKU (Stock Keeping Unit), may be null. Example: "SKU_12345".
442
+ * @property {boolean} isSync - Indication of page indexing. Example: true.
443
+ * @property {IAttributeValues} attributeValues - Array of attribute values from the index, represented.
444
+ * @example
445
+ [
446
+ {
447
+ "id": "color",
448
+ "value": "red"
449
+ }
450
+ ]
451
+ * @property {string[]} categories - Product categories.
452
+ * @example
453
+ [
454
+ 1,
455
+ 2,
456
+ 3
457
+ ]
458
+ * @property {boolean} isVisible - A sign of page visibility. Example: true.
459
+ * @property {Array<IFormConfig>} [moduleFormConfigs] - Module form configurations (optional).
460
+ * @property {IRating} [rating] - Rating data.
461
+ * @property {boolean} isPositionLocked - Sorting position lock indicator (optional). Example: false.
462
+ * @property {number[]} relatedIds - Ids of related product pages.
463
+ * @example
464
+ [
465
+ 12345,
466
+ 67890
467
+ ]
468
+ * @property {unknown} [paymentStages] - Payment stages data (may be null). Example: null.
469
+ * @property {number} [distance] - Vector (semantic) search relevance distance. Present only in results of vector search. Example: 0.42.
470
+ * @property {Record<string, unknown>} [discountConfig] - Discount configuration object. Example: {}.
471
+ * @property {string | null} [templateIdentifier] - User id of the linked template. Example: "template_12345".
472
+ * @property {string | null} [shortDescTemplateIdentifier] - User id of the linked template for a short description. Example: "short_desc_template_12345".
473
+ * @property {string} [signedPrice] - The signed price of the product is obtained along with the product data when `signPrice` is set. Example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
474
+ * @see {@link https://js-sdk.oneentry.cloud/docs/orders/#Fixed-product-price-signedPrice Fixed product price} documentation.
475
+ * @property {IProductPageRef[]} [productPages] - Array of product page references linking the product to its pages.
476
+ * @example
477
+ [
478
+ {
479
+ "id": 16,
480
+ "pageId": 4,
481
+ "productId": 15,
482
+ "positionId": 244,
483
+ "categoryPath": "products"
484
+ }
485
+ ]
486
+ * @property {string[]} [blocks] - Array of block identifiers.
487
+ * @example
488
+ [
489
+ "block_12345",
490
+ "block_67890"
491
+ ]
492
+ * @description This interface defines the structure of a product entity, including its identifiers, attributes, and related information.
493
+ */
494
+ interface IProductsEntity {
495
+ id: number;
496
+ localizeInfos: ILocalizeInfo;
497
+ statusIdentifier: string | null;
498
+ statusLocalizeInfos: ILocalizeInfo;
499
+ attributeSetIdentifier: string | null;
500
+ position: number;
501
+ price: number | null;
502
+ additional: IProductAdditional;
503
+ sku: string | null;
504
+ isSync: boolean;
505
+ attributeValues: IAttributeValues;
506
+ categories: string[];
507
+ isVisible: boolean;
508
+ moduleFormConfigs?: Array<IFormConfig>;
509
+ rating?: IRating;
510
+ templateIdentifier?: string | null;
511
+ shortDescTemplateIdentifier?: string | null;
512
+ signedPrice?: string;
513
+ productPages?: IProductPageRef[];
514
+ blocks?: string[];
515
+ isPositionLocked?: boolean;
516
+ relatedIds?: number[];
517
+ paymentStages?: unknown;
518
+ distance?: number;
519
+ discountConfig?: Record<string, unknown>;
520
+ }
521
+ /**
522
+ * @interface IProductsResponse
523
+ * @property {number} total - The total number of products found. Example: 100.
524
+ * @property {IProductsEntity[]} items - An array of product entities.
525
+ * @example
526
+ [
527
+ {
528
+ "id": 12345,
529
+ "title": "Product 1"
530
+ },
531
+ {
532
+ "id": 67890,
533
+ "title": "Product 2"
534
+ }
535
+ ]
536
+ * @property {number} [totalFound] - Number of products matched before limits are applied; returned by block product endpoints (`similarProducts`, cart/wishlist recommendations, frequently ordered). Optional. Example: 2.
537
+ * @description This interface defines the structure of a response containing multiple product entities, including the total count and an array of product items.
538
+ */
539
+ interface IProductsResponse {
540
+ items: IProductsEntity[];
541
+ total: number;
542
+ totalFound?: number;
543
+ }
544
+ /**
545
+ * @interface IProductSearchResult
546
+ * @property {number} id - The identifier of the product. Example: 2957.
547
+ * @property {string} title - Product title in the requested language. Example: "Cosmo".
548
+ * @property {number} pageId - The identifier of the catalog page the product is linked to. Example: 10.
549
+ * @description This interface defines the short product card returned by the quick search endpoint when the traficLimit config option is enabled. It contains only identification fields, without attributeValues, localizeInfos and other fields of a full product entity.
550
+ */
551
+ interface IProductSearchResult {
552
+ id: number;
553
+ title: string;
554
+ pageId: number;
555
+ }
556
+ /**
557
+ * @interface IProductsCount
558
+ * @property {number} totalAll - The total number of products found. Example: 100.
559
+ * @property {number} totalInCategory - The total number of products found in category. Example: 50.
560
+ * @property {number} totalInCategoryWithNested - The total number of products found in nested category. Example: 10.
561
+ * @description This interface defines the structure of a response with total count of product items.
562
+ */
563
+ interface IProductsCount {
564
+ totalAll: number;
565
+ totalInCategory: number;
566
+ totalInCategoryWithNested: number;
567
+ }
568
+ /**
569
+ * @interface IProductsInfo
570
+ * @property {number} total - The total number of products found. Example: 100.
571
+ * @property {IProductInfo[]} items - An array of product information objects.
572
+ * @example
573
+ [
574
+ {
575
+ "id": 12345,
576
+ "price": 150.00
577
+ },
578
+ {
579
+ "id": 67890,
580
+ "price": 200.00
581
+ }
582
+ ]
583
+ * @description This interface defines the structure of a response containing product information, including the total count and an array of product items.
584
+ */
585
+ interface IProductsInfo {
586
+ items: Array<IProductInfo>;
587
+ total: number;
588
+ }
589
+ /**
590
+ * @interface IProductInfo
591
+ * @property {number} id - The unique identifier of the product. Example: 12345.
592
+ * @property {number} price - The price of the product. Example: 150.00.
593
+ * @property {string} [signedPrice] - The signed (fixed) price of the product, returned when `signPrice` is set. Example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...".
594
+ * @see {@link https://js-sdk.oneentry.cloud/docs/orders/#Fixed-product-price-signedPrice Fixed product price} documentation.
595
+ * @description This interface defines the structure of a product information object, including its identifier and price.
596
+ */
597
+ interface IProductInfo {
598
+ id: number;
599
+ price: number;
600
+ signedPrice?: string;
601
+ }
602
+ /**
603
+ * @interface IProductBlock
604
+ * @property {number} id - Unique identifier of the product block. Example: 3289.
605
+ * @property {string | null} attributeSetIdentifier - Identifier of the attribute set used in the product block, or null if not applicable. Example: "product_block".
606
+ * @property {ILocalizeInfo} localizeInfos - Localization information for the product block.
607
+ * @example
608
+ {
609
+ "title": "Box"
610
+ }
611
+ * @property {number} version - Version of the product block entity. Example: 1.
612
+ * @property {number} position - Position of the product block in a list or layout. Example: 1.
613
+ * @property {string} identifier - Unique string identifier for the product block. Example: "product_block_12345".
614
+ * @property {BlockType} type - Type of the product block, such as "product", "error_page", etc. Example: "product".
615
+ * @property {object} customSettings - Custom settings for the product block, including slider delay, product configuration, similar product rules, and conditions. Example: {}
616
+ * @property {string | null} templateIdentifier - Identifier for the template used by the product block, or null if not applicable. Example: "template_12345".
617
+ * @property {boolean} isVisible - Indicates whether the product block is visible. Example: true.
618
+ * @property {boolean} isSync - Indicates whether the product block is synchronized. Example: false.
619
+ * @property {IAttributeValues} attributeValues - Array of attribute values from the index, represented as a pair of user attribute id and attribute value.
620
+ * @example
621
+ [
622
+ {
623
+ "id": "color",
624
+ "value": "red"
625
+ }
626
+ ]
627
+ * @description This interface defines the structure of a product block entity, including its identifiers, attributes, and custom settings.
628
+ */
629
+ /**
630
+ * @interface IProductBlockSettings
631
+ * @property {number | null} sliderDelay - Slider auto-advance delay. Example: 5000.
632
+ * @property {string | null} sliderDelayType - Unit of `sliderDelay` (e.g. "ms", "s"). Example: "ms".
633
+ * @property {IProductBlockProductConfig} productConfig - Layout configuration for products inside the block.
634
+ * @property {IProductBlockSimilarRule[]} similarProductRules - Rules used to find similar products.
635
+ * @property {Record<string, unknown>} condition - Filter condition applied to products in the block; field set varies by condition type (e.g. `{ name: "cost", costFrom: 0, costTo: 130 }`).
636
+ * @property {Record<string, unknown> | null} [frequentlyOrderedConfig] - Configuration for the frequently-ordered products feature, or null when not configured.
637
+ * @description Custom settings of a product block — controls layout, sorting and similarity rules.
638
+ */
639
+ interface IProductBlockSettings {
640
+ sliderDelay: number | null;
641
+ sliderDelayType: string | null;
642
+ productConfig: IProductBlockProductConfig;
643
+ similarProductRules: IProductBlockSimilarRule[];
644
+ condition: Record<string, unknown>;
645
+ frequentlyOrderedConfig?: Record<string, unknown> | null;
646
+ }
647
+ /**
648
+ * @interface IProductBlockProductConfig
649
+ * @property {string | number} [quantity] - Number of products to render; absent when the block config is empty. Example: 9.
650
+ * @property {string | number} [countElementsPerRow] - Products per row; absent when the block config is empty. Example: 3.
651
+ * @property {string | number} [sortType] - Sort field. Example: "price".
652
+ * @property {string | number} [sortOrder] - Sort direction. Example: "ASC".
653
+ * @description Layout config for products inside a {@link IProductBlock}; an empty object when the block is not configured.
654
+ */
655
+ interface IProductBlockProductConfig {
656
+ quantity?: string | number;
657
+ countElementsPerRow?: string | number;
658
+ sortType?: string | number;
659
+ sortOrder?: string | number;
660
+ }
661
+ /**
662
+ * @interface IProductBlockSimilarRule
663
+ * @property {string} id - Rule identifier (UUID). Example: "812ee2bb-a90f-4743-9643-663f87acedf5".
664
+ * @property {string} title - Rule title; empty string when not set. Example: "".
665
+ * @property {string} attributeMarker - Marker of the product attribute the rule matches on. Example: "nameofproduct_3".
666
+ * @property {string} conditionMarker - Condition operator applied to the attribute. Example: "in".
667
+ * @property {string} conditionValue - Value the condition compares against. Example: "Blue".
668
+ * @property {string} statusMarker - Product status marker the rule is limited to; empty string when not limited. Example: "".
669
+ * @property {string[]} pageUrls - Page URLs the rule is scoped to; empty array when not restricted.
670
+ * @description Single rule used to compute similar products for a {@link IProductBlock}.
671
+ */
672
+ interface IProductBlockSimilarRule {
673
+ id: string;
674
+ title: string;
675
+ attributeMarker: string;
676
+ conditionMarker: string;
677
+ conditionValue: string;
678
+ statusMarker: string;
679
+ pageUrls: string[];
680
+ }
681
+ interface IProductBlock {
682
+ id: number;
683
+ attributeSetIdentifier: string | null;
684
+ localizeInfos: ILocalizeInfo;
685
+ version: number;
686
+ position: number;
687
+ identifier: string;
688
+ type: BlockType;
689
+ customSettings: IProductBlockSettings;
690
+ templateIdentifier: string | null;
691
+ isVisible: boolean;
692
+ isSync: boolean;
693
+ attributeValues: IAttributeValues;
694
+ }
695
+ /**
696
+ * @interface IAggregatedProductGroup
697
+ * @property {string} attrValue - Attribute value.
698
+ * @property {IProductsEntity[]} items - Array of product entities.
699
+ * @property {string[]} productIds - Array of product ids.
700
+ * @property {number} total - Total count.
701
+ */
702
+ interface IAggregatedProductGroup {
703
+ attrValue: string;
704
+ items: IProductsEntity[];
705
+ productIds: string[];
706
+ total: number;
707
+ }
708
+ /**
709
+ * Body for semantic (vector) product search.
710
+ * @interface IVectorSearchProducts
711
+ * @property {string} queryText - Natural-language search query. Example: "red running shoes".
712
+ * @property {number} [vectorDistanceThreshold] - Max vector distance for a hit. Example: 0.5.
713
+ * @property {number} [maxHits] - Max number of hits to return. Example: 50.
714
+ * @property {boolean} [debug] - Include debug info in the response. Example: false.
715
+ * @description Body for the products vector/search endpoint.
716
+ */
717
+ interface IVectorSearchProducts {
718
+ queryText: string;
719
+ vectorDistanceThreshold?: number;
720
+ maxHits?: number;
721
+ debug?: boolean;
722
+ }
723
+ export type { IAggregatedProductGroup, IFilterParams, IProductBlock, IProductInfo, IProductsApi, IProductsByIdsQuery, IProductsCount, IProductSearchResult, IProductsEntity, IProductsInfo, IProductsPriceQuery, IProductsQuery, IProductsQueryBase, IProductsRelatedQuery, IProductsResponse, IVectorSearchProducts, };