@jetshop/core 5.17.2 → 6.0.0

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 (297) hide show
  1. package/ChannelHandler/ChannelHandler.js.map +1 -1
  2. package/ChannelHandler/PreserveRedirectRouteQuery.gql +4 -4
  3. package/ChannelHandler/redirectUtils.d.ts +2 -2
  4. package/ChannelHandler/redirectUtils.js +5 -3
  5. package/ChannelHandler/redirectUtils.js.map +1 -1
  6. package/ChannelHandler/redirectUtils.test.js +5 -5
  7. package/ChannelHandler/redirectUtilsGroupedChannels.test.js +5 -5
  8. package/analytics/Analytics.d.ts +3 -3
  9. package/analytics/Analytics.js.map +1 -1
  10. package/analytics/AnalyticsProvider.d.ts +2 -2
  11. package/analytics/trackerRegistry.d.ts +2 -2
  12. package/analytics/utils/script.d.ts +1 -1
  13. package/analytics/webVitals.js +5 -5
  14. package/analytics/webVitals.js.map +1 -1
  15. package/boot/NetworkStatusNotifier.d.ts +2 -0
  16. package/boot/NetworkStatusNotifier.js +4 -0
  17. package/boot/NetworkStatusNotifier.js.map +1 -0
  18. package/boot/SharedTree.d.ts +1 -1
  19. package/boot/SharedTree.js +1 -1
  20. package/boot/SharedTree.js.map +1 -1
  21. package/boot/apollo.d.ts +1 -2
  22. package/boot/apollo.js +13 -8
  23. package/boot/apollo.js.map +1 -1
  24. package/boot/client/startClient.js +21 -8
  25. package/boot/client/startClient.js.map +1 -1
  26. package/boot/server/IntervalQuery.d.ts +2 -2
  27. package/boot/server/IntervalQuery.js +2 -2
  28. package/boot/server/IntervalQuery.js.map +1 -1
  29. package/boot/server/IntervalQuery.test.js +9 -13
  30. package/boot/server/PersistedApolloClient.test.js +8 -7
  31. package/boot/server/breakpointMiddleware.d.ts +1 -1
  32. package/boot/server/createApolloServer.d.ts +4 -3
  33. package/boot/server/createApolloServer.js +5 -5
  34. package/boot/server/createApolloServer.js.map +1 -1
  35. package/boot/server/createRenderer.js +8 -11
  36. package/boot/server/createRenderer.js.map +1 -1
  37. package/boot/server/entrypoint.js +7 -4
  38. package/boot/server/entrypoint.js.map +1 -1
  39. package/boot/server/index.js +1 -2
  40. package/boot/server/index.js.map +1 -1
  41. package/boot/server/persistedQueries/PersistedClient.d.ts +3 -3
  42. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +1 -1
  43. package/boot/utils/queryLoggingMiddleware.d.ts +1 -1
  44. package/boot/utils/queryLoggingMiddleware.js +2 -2
  45. package/boot/utils/queryLoggingMiddleware.js.map +1 -1
  46. package/cart/AddToCartFormik.d.ts +4 -4
  47. package/cart/AddToCartFormik.js +2 -2
  48. package/cart/AddToCartFormik.js.map +1 -1
  49. package/cart/useAddToCart.d.ts +4 -4
  50. package/components/Auth/CustomerUpdateForm.d.ts +1 -1
  51. package/components/Auth/ForgotPasswordProvider.d.ts +6 -8
  52. package/components/Auth/ForgotPasswordProvider.js +18 -18
  53. package/components/Auth/ForgotPasswordProvider.js.map +1 -1
  54. package/components/Auth/ResetPasswordProvider.d.ts +6 -4
  55. package/components/Auth/ResetPasswordProvider.js +1 -1
  56. package/components/Auth/ResetPasswordProvider.js.map +1 -1
  57. package/components/Auth/SSN.js +4 -4
  58. package/components/Auth/SSN.js.map +1 -1
  59. package/components/Auth/SSNLookupContainer.d.ts +1 -1
  60. package/components/Auth/SignupFormContainer.d.ts +3 -6
  61. package/components/Auth/SignupFormContainer.js.map +1 -1
  62. package/components/Auth/UpdatePasswordForm.d.ts +1 -1
  63. package/components/Auth/UpdatePasswordForm.js +6 -6
  64. package/components/Auth/UpdatePasswordForm.js.map +1 -1
  65. package/components/Auth/formatSignupInput.d.ts +1 -1
  66. package/components/Auth/signup-context.d.ts +2 -2
  67. package/components/Auth/signup-context.js +2 -3
  68. package/components/Auth/signup-context.js.map +1 -1
  69. package/components/Auth/signupSubmit.js +4 -4
  70. package/components/Auth/signupSubmit.js.map +1 -1
  71. package/components/Auth/useAddressFields.js +3 -3
  72. package/components/Auth/useAddressFields.js.map +1 -1
  73. package/components/Auth/useAddressFields.test.js +10 -8
  74. package/components/Auth/useCustomer.d.ts +3 -3
  75. package/components/Auth/useCustomer.js +1 -1
  76. package/components/Auth/useCustomer.js.map +1 -1
  77. package/components/AuthContext/AuthProvider.js +2 -2
  78. package/components/AuthContext/AuthProvider.js.map +1 -1
  79. package/components/AuthContext/AuthProvider.test.js +1 -1
  80. package/components/AuthContext/LogOut.d.ts +2 -2
  81. package/components/ChannelContext/ChannelProvider.d.ts +1 -1
  82. package/components/ChannelContext/useCountrySettings.d.ts +1 -1
  83. package/components/ChannelContext/useCountrySettings.js +1 -1
  84. package/components/ChannelContext/useCountrySettings.js.map +1 -1
  85. package/components/ConfigProvider.d.ts +1 -6
  86. package/components/ConfigProvider.js.map +1 -1
  87. package/components/DynamicRoute/ActiveFiltersQuery.gql +4 -4
  88. package/components/DynamicRoute/CategoryRoute.d.ts +3 -3
  89. package/components/DynamicRoute/CategoryRoute.js +6 -3
  90. package/components/DynamicRoute/CategoryRoute.js.map +1 -1
  91. package/components/DynamicRoute/ContentRoute.d.ts +1 -1
  92. package/components/DynamicRoute/GenericError.d.ts +18 -0
  93. package/components/DynamicRoute/GenericError.js +61 -0
  94. package/components/DynamicRoute/GenericError.js.map +1 -0
  95. package/components/DynamicRoute/PreviewRoute.d.ts +1 -1
  96. package/components/DynamicRoute/PreviewRoute.js +1 -1
  97. package/components/DynamicRoute/PreviewRoute.js.map +1 -1
  98. package/components/DynamicRoute/ProductByArticlenumber.d.ts +2 -2
  99. package/components/DynamicRoute/ProductByArticlenumber.js +2 -2
  100. package/components/DynamicRoute/ProductByArticlenumber.js.map +1 -1
  101. package/components/DynamicRoute/ProductRoute.d.ts +3 -3
  102. package/components/DynamicRoute/ProductRoute.js.map +1 -1
  103. package/components/DynamicRoute/RouteResolver.d.ts +3 -3
  104. package/components/DynamicRoute/RouteResolver.js +2 -1
  105. package/components/DynamicRoute/RouteResolver.js.map +1 -1
  106. package/components/DynamicRoute/Status.d.ts +4 -3
  107. package/components/DynamicRoute/Status.js.map +1 -1
  108. package/components/DynamicRoute/index.d.ts +5 -5
  109. package/components/DynamicRoute/index.js +47 -42
  110. package/components/DynamicRoute/index.js.map +1 -1
  111. package/components/Filters/utils/replaceInSearch.d.ts +1 -1
  112. package/components/Filters/utils/replaceInSearch.js.map +1 -1
  113. package/components/Fonts/CustomFont.d.ts +1 -1
  114. package/components/Fonts/injectFont.d.ts +2 -2
  115. package/components/Fonts/injectFont.js +2 -2
  116. package/components/Fonts/injectFont.js.map +1 -1
  117. package/components/Mutation/AddToCartFormik.d.ts +1 -1
  118. package/components/Mutation/AddToCartFormik.js +2 -2
  119. package/components/Mutation/AddToCartFormik.js.map +1 -1
  120. package/components/Mutation/DecrementQuantity.d.ts +2 -2
  121. package/components/Mutation/DecrementQuantity.js +1 -1
  122. package/components/Mutation/DecrementQuantity.js.map +1 -1
  123. package/components/Mutation/IncrementQuantity.d.ts +2 -2
  124. package/components/Mutation/IncrementQuantity.js +1 -1
  125. package/components/Mutation/IncrementQuantity.js.map +1 -1
  126. package/components/Mutation/RemoveFromCart.d.ts +3 -3
  127. package/components/Mutation/RemoveFromCart.js +1 -1
  128. package/components/Mutation/RemoveFromCart.js.map +1 -1
  129. package/components/Mutation/SetQuantity.d.ts +2 -2
  130. package/components/Mutation/SetQuantity.js +1 -1
  131. package/components/Mutation/SetQuantity.js.map +1 -1
  132. package/components/Mutation/SubscribeToNewsletter.d.ts +1 -1
  133. package/components/Mutation/SubscribeToNewsletter.js +1 -1
  134. package/components/Mutation/SubscribeToNewsletter.js.map +1 -1
  135. package/components/Mutation/SubscribeToStockNotifications.d.ts +1 -1
  136. package/components/Mutation/SubscribeToStockNotifications.js +6 -2
  137. package/components/Mutation/SubscribeToStockNotifications.js.map +1 -1
  138. package/components/Mutation/cartMutationUtils.d.ts +1 -2
  139. package/components/Mutation/cartMutationUtils.js.map +1 -1
  140. package/components/Mutation/useDecrementQuantity.d.ts +1 -1
  141. package/components/Mutation/useDecrementQuantity.js +1 -1
  142. package/components/Mutation/useDecrementQuantity.js.map +1 -1
  143. package/components/Mutation/useIncrementQuantity.d.ts +1 -1
  144. package/components/Mutation/useIncrementQuantity.js +1 -1
  145. package/components/Mutation/useIncrementQuantity.js.map +1 -1
  146. package/components/Mutation/useRemoveFromCart.d.ts +1 -1
  147. package/components/Mutation/useRemoveFromCart.js +1 -1
  148. package/components/Mutation/useRemoveFromCart.js.map +1 -1
  149. package/components/Mutation/useSetQuantity.d.ts +1 -1
  150. package/components/Mutation/useSetQuantity.js +1 -1
  151. package/components/Mutation/useSetQuantity.js.map +1 -1
  152. package/components/Notifications/Notifications.d.ts +3 -3
  153. package/components/Notifications/Notifications.js +2 -3
  154. package/components/Notifications/Notifications.js.map +1 -1
  155. package/components/Notifications/notificationMachine.d.ts +1 -1
  156. package/components/Notifications/notificationsMachine.d.ts +3 -3
  157. package/components/Notifications/useNotification.d.ts +1 -1
  158. package/components/OpenGraph/OpenGraphGeneralPageData.d.ts +1 -1
  159. package/components/Pagination/PaginationProvider.d.ts +1 -1
  160. package/components/ProductConfigurationProvider/ProductConfigurationProvider.js +6 -6
  161. package/components/ProductConfigurationProvider/ProductConfigurationProvider.js.map +1 -1
  162. package/components/Query/CartProvider.d.ts +1 -1
  163. package/components/Query/CartProvider.js +1 -1
  164. package/components/Query/CartProvider.js.map +1 -1
  165. package/components/SortOrder/SortOrderContainer.d.ts +1 -1
  166. package/components/SortOrder/SortOrderContext.d.ts +1 -1
  167. package/components/StructuredData/StructuredBreadcrumbData.d.ts +2 -2
  168. package/data/cache.d.ts +1 -1
  169. package/data/cache.js +62 -12
  170. package/data/cache.js.map +1 -1
  171. package/data/fragments/ProductListsFragments.gql +8 -8
  172. package/data/fragments/StockStatusFragment.gql +1 -0
  173. package/errorReporting.shared.d.ts +1 -1
  174. package/global.d.ts +80 -2
  175. package/helpers/getErrorDetail.d.ts +1 -1
  176. package/helpers/getErrorDetail.js +2 -2
  177. package/helpers/getErrorDetail.js.map +1 -1
  178. package/helpers/getHeaders.d.ts +1 -1
  179. package/hooks/Filters/useBooleanFilter.d.ts +1 -1
  180. package/hooks/Filters/useBooleanFilter.js +1 -2
  181. package/hooks/Filters/useBooleanFilter.js.map +1 -1
  182. package/hooks/Filters/useFilters.d.ts +1 -1
  183. package/hooks/Filters/useFilters.js +1 -2
  184. package/hooks/Filters/useFilters.js.map +1 -1
  185. package/hooks/Filters/useListFilter.d.ts +2 -2
  186. package/hooks/Filters/useListFilter.js +1 -2
  187. package/hooks/Filters/useListFilter.js.map +1 -1
  188. package/hooks/Filters/useMultiFilter.d.ts +3 -3
  189. package/hooks/Filters/useMultiFilter.js +1 -2
  190. package/hooks/Filters/useMultiFilter.js.map +1 -1
  191. package/hooks/Filters/useRangeFilter.d.ts +2 -2
  192. package/hooks/Filters/useRangeFilter.js +1 -2
  193. package/hooks/Filters/useRangeFilter.js.map +1 -1
  194. package/hooks/Filters/useSortOrder.d.ts +6 -1
  195. package/hooks/Filters/useSortOrder.js +4 -3
  196. package/hooks/Filters/useSortOrder.js.map +1 -1
  197. package/hooks/PackageProducts/usePackageProductItem.d.ts +2 -2
  198. package/hooks/PackageProducts/usePackageProductItem.js +1 -1
  199. package/hooks/PackageProducts/usePackageProductItem.js.map +1 -1
  200. package/hooks/PackageProducts/usePackageProducts.js +17 -17
  201. package/hooks/PackageProducts/usePackageProducts.js.map +1 -1
  202. package/hooks/PackageProducts/usePackageProducts.test.js +1 -1
  203. package/hooks/ProductList/ProductListContext.js +1 -1
  204. package/hooks/ProductList/ProductListContext.js.map +1 -1
  205. package/hooks/ProductList/action-creators.d.ts +1 -1
  206. package/hooks/ProductList/index.d.ts +11 -11
  207. package/hooks/ProductList/list-transforms.js +1 -1
  208. package/hooks/ProductList/list-transforms.js.map +1 -1
  209. package/hooks/ProductList/product-list-reducer.d.ts +1 -1
  210. package/hooks/ProductList/product-list-reducer.js +1 -1
  211. package/hooks/ProductList/product-list-reducer.js.map +1 -1
  212. package/hooks/ProductList/useProductList.js +1 -1
  213. package/hooks/ProductList/useProductList.js.map +1 -1
  214. package/hooks/ProductList/useProductListItems.js +1 -1
  215. package/hooks/ProductList/useProductListItems.js.map +1 -1
  216. package/hooks/Subscriptions/useNewsletterSubscription.js +3 -3
  217. package/hooks/Subscriptions/useNewsletterSubscription.js.map +1 -1
  218. package/hooks/Subscriptions/useStockNotifications.d.ts +1 -1
  219. package/hooks/Subscriptions/useStockNotifications.js +3 -3
  220. package/hooks/Subscriptions/useStockNotifications.js.map +1 -1
  221. package/hooks/Subscriptions/useStoreSubscriptions.d.ts +1 -1
  222. package/hooks/Subscriptions/useStoreSubscriptions.js +3 -6
  223. package/hooks/Subscriptions/useStoreSubscriptions.js.map +1 -1
  224. package/hooks/Subscriptions/useStoresubscriptions.test.js +5 -7
  225. package/hooks/useAddMultipleToCart.d.ts +4 -4
  226. package/hooks/useAddMultipleToCart.js +1 -1
  227. package/hooks/useAddMultipleToCart.js.map +1 -1
  228. package/hooks/useAddMultipleToCart.test.js +1 -1
  229. package/hooks/useCustomerOrders.test.js +7 -5
  230. package/hooks/useCustomerOrdersQuery.d.ts +2 -2
  231. package/hooks/useCustomerOrdersQuery.js +1 -1
  232. package/hooks/useCustomerOrdersQuery.js.map +1 -1
  233. package/hooks/useDeleteAccountMutation.d.ts +1 -1
  234. package/hooks/useDeleteAccountMutation.js +3 -3
  235. package/hooks/useDeleteAccountMutation.js.map +1 -1
  236. package/hooks/useInfinitePagination.d.ts +1 -1
  237. package/hooks/useInfinitePagination.js +4 -1
  238. package/hooks/useInfinitePagination.js.map +1 -1
  239. package/hooks/useLoginMutation.d.ts +3 -3
  240. package/hooks/useLoginMutation.js +2 -2
  241. package/hooks/useLoginMutation.js.map +1 -1
  242. package/hooks/useLoginRedirect.js +2 -2
  243. package/hooks/useLoginRedirect.js.map +1 -1
  244. package/hooks/useOrderDetailQuery.d.ts +3 -3
  245. package/hooks/useOrderDetailQuery.js +1 -1
  246. package/hooks/useOrderDetailQuery.js.map +1 -1
  247. package/hooks/usePreconnectLinks.d.ts +1 -1
  248. package/hooks/usePreconnectLinks.js +3 -3
  249. package/hooks/usePreconnectLinks.js.map +1 -1
  250. package/hooks/useProductVariants/useProductVariants.d.ts +1 -1
  251. package/hooks/useRoutePreload.js +1 -1
  252. package/hooks/useRoutePreload.js.map +1 -1
  253. package/hooks/useStockStatus.d.ts +8 -0
  254. package/hooks/useStockStatus.js +26 -0
  255. package/hooks/useStockStatus.js.map +1 -0
  256. package/hooks/useThunkReducer.d.ts +1 -1
  257. package/integrations/sluggishSchemaExtension.js +1 -1
  258. package/integrations/sluggishSchemaExtension.js.map +1 -1
  259. package/package.json +26 -46
  260. package/polyfills.d.ts +1 -1
  261. package/polyfills.js +4 -20
  262. package/polyfills.js.map +1 -1
  263. package/resolvers/filters/boolFilter.js +24 -27
  264. package/resolvers/filters/boolFilter.js.map +1 -1
  265. package/resolvers/filters/filterParams.js +8 -8
  266. package/resolvers/filters/filterParams.js.map +1 -1
  267. package/resolvers/filters/filters.js +5 -5
  268. package/resolvers/filters/filters.js.map +1 -1
  269. package/resolvers/filters/index.d.ts +0 -4
  270. package/resolvers/filters/listFilter.js +24 -29
  271. package/resolvers/filters/listFilter.js.map +1 -1
  272. package/resolvers/filters/listFilterItem.js +21 -27
  273. package/resolvers/filters/listFilterItem.js.map +1 -1
  274. package/resolvers/filters/multiListFilter.js +41 -42
  275. package/resolvers/filters/multiListFilter.js.map +1 -1
  276. package/resolvers/filters/multiListFilterList.js +1 -1
  277. package/resolvers/filters/multiListFilterList.js.map +1 -1
  278. package/resolvers/filters/rangeFilter.js +27 -43
  279. package/resolvers/filters/rangeFilter.js.map +1 -1
  280. package/resolvers/index.d.ts +1 -1
  281. package/server/graphql.js +6 -7
  282. package/server/graphql.js.map +1 -1
  283. package/test-utils/ProviderPyramid.js +1 -1
  284. package/types.d.ts +1814 -1965
  285. package/analytics/integrations/gtm/README.md +0 -3
  286. package/components/Fonts/GoogleFont.d.ts +0 -10
  287. package/components/Fonts/GoogleFont.js +0 -35
  288. package/components/Fonts/GoogleFont.js.map +0 -1
  289. package/components/Fonts/TypekitFont.d.ts +0 -16
  290. package/components/Fonts/TypekitFont.js +0 -25
  291. package/components/Fonts/TypekitFont.js.map +0 -1
  292. package/integrations/addwishSchemaExtension.d.ts +0 -35
  293. package/integrations/addwishSchemaExtension.js +0 -141
  294. package/integrations/addwishSchemaExtension.js.map +0 -1
  295. package/integrations/nostoSchemaExtension.d.ts +0 -5
  296. package/integrations/nostoSchemaExtension.js +0 -77
  297. package/integrations/nostoSchemaExtension.js.map +0 -1
package/types.d.ts CHANGED
@@ -9,8 +9,8 @@ export type Scalars = {
9
9
  Boolean: boolean;
10
10
  Int: number;
11
11
  Float: number;
12
- Decimal: any;
13
12
  Uri: any;
13
+ Decimal: any;
14
14
  /** The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard. */
15
15
  DateTime: any;
16
16
  /** The `Paging` scalar type represents a numeric values between <1; 100> */
@@ -18,76 +18,102 @@ export type Scalars = {
18
18
  };
19
19
 
20
20
 
21
- export type ActivateExternalCustomerByIdInput = {
22
- externalCustomerId: Scalars['String'];
21
+
22
+ export type CustomStringField = CustomField & {
23
+ __typename?: 'CustomStringField';
24
+ value: Scalars['String'];
25
+ type?: Maybe<ProductCustomFieldType>;
26
+ key?: Maybe<Scalars['String']>;
27
+ title?: Maybe<Scalars['String']>;
23
28
  };
24
29
 
25
- export type ActivateExternalCustomerByIdResult = {
26
- __typename?: 'ActivateExternalCustomerByIdResult';
27
- success: Scalars['Boolean'];
28
- token?: Maybe<Token>;
30
+ export enum ProductCustomFieldType {
31
+ String = 'STRING',
32
+ Bool = 'BOOL',
33
+ List = 'LIST',
34
+ Html = 'HTML',
35
+ MultiLevelList = 'MULTI_LEVEL_LIST'
36
+ }
37
+
38
+ export type CustomField = {
39
+ type?: Maybe<ProductCustomFieldType>;
40
+ key?: Maybe<Scalars['String']>;
41
+ title?: Maybe<Scalars['String']>;
29
42
  };
30
43
 
31
- export type ActivateExternalCustomerByTokenInput = {
32
- externalCustomerToken: Scalars['String'];
44
+ export type CustomBoolField = CustomField & {
45
+ __typename?: 'CustomBoolField';
46
+ value: Scalars['Boolean'];
47
+ type?: Maybe<ProductCustomFieldType>;
48
+ key?: Maybe<Scalars['String']>;
49
+ title?: Maybe<Scalars['String']>;
33
50
  };
34
51
 
35
- export type ActivateExternalCustomerByTokenResult = {
36
- __typename?: 'ActivateExternalCustomerByTokenResult';
37
- success: Scalars['Boolean'];
38
- customer?: Maybe<ExternalCustomer>;
52
+ export type CustomHtmlField = CustomField & {
53
+ __typename?: 'CustomHtmlField';
54
+ value: Scalars['String'];
55
+ type?: Maybe<ProductCustomFieldType>;
56
+ key?: Maybe<Scalars['String']>;
57
+ title?: Maybe<Scalars['String']>;
39
58
  };
40
59
 
41
- export enum ActivationStatusSource {
42
- PreexistingCustomer = 'PREEXISTING_CUSTOMER',
43
- ActivationRequired = 'ACTIVATION_REQUIRED',
44
- AdditionalUserDataRequired = 'ADDITIONAL_USER_DATA_REQUIRED',
45
- NonExistingCustomer = 'NON_EXISTING_CUSTOMER',
46
- CountryNotValid = 'COUNTRY_NOT_VALID'
47
- }
60
+ export type CustomListField = CustomField & {
61
+ __typename?: 'CustomListField';
62
+ value?: Maybe<Array<Maybe<Scalars['String']>>>;
63
+ type?: Maybe<ProductCustomFieldType>;
64
+ key?: Maybe<Scalars['String']>;
65
+ title?: Maybe<Scalars['String']>;
66
+ };
48
67
 
49
- export type ActiveFilters = {
50
- __typename?: 'ActiveFilters';
51
- listFilters?: Maybe<Array<Maybe<ListFilterInput>>>;
52
- rangeFilters?: Maybe<Array<Maybe<RangeFilterInput>>>;
53
- booleanFilters?: Maybe<Array<Maybe<BooleanFilterInput>>>;
54
- multiListFilters?: Maybe<Array<Maybe<MultiListFilterInput>>>;
68
+ export type CustomMultiLevelListField = CustomField & {
69
+ __typename?: 'CustomMultiLevelListField';
70
+ items?: Maybe<Array<Maybe<CustomMultiLevelListFieldItem>>>;
71
+ type?: Maybe<ProductCustomFieldType>;
72
+ key?: Maybe<Scalars['String']>;
73
+ title?: Maybe<Scalars['String']>;
55
74
  };
56
75
 
57
- export type AddMultipleToCartInput = {
58
- articleNumber: Scalars['String'];
59
- /** Default value is 1. */
60
- quantity?: Maybe<Scalars['Int']>;
61
- comments?: Maybe<Array<Maybe<InputComment>>>;
62
- configurationIds?: Maybe<Array<Maybe<Scalars['ID']>>>;
63
- preOrderDate?: Maybe<Scalars['DateTime']>;
76
+ export type CustomMultiLevelListFieldItem = {
77
+ __typename?: 'CustomMultiLevelListFieldItem';
78
+ id: Scalars['Int'];
79
+ parentId?: Maybe<Scalars['Int']>;
80
+ title: Scalars['String'];
81
+ value: Scalars['String'];
64
82
  };
65
83
 
66
- export type AddToCartInput = {
67
- /** Not specifying cart id will create new cart. */
68
- cartId?: Maybe<Scalars['String']>;
69
- articleNumber: Scalars['String'];
70
- /** Default value is 1. */
71
- quantity?: Maybe<Scalars['Int']>;
72
- comments?: Maybe<Array<Maybe<InputComment>>>;
73
- configurationIds?: Maybe<Array<Maybe<Scalars['ID']>>>;
74
- preOrderDate?: Maybe<Scalars['DateTime']>;
84
+ export type ListFilter = Filter & {
85
+ __typename?: 'ListFilter';
86
+ items: Array<Maybe<ListFilterItem>>;
87
+ id: Scalars['String'];
88
+ name: Scalars['String'];
89
+ hasActiveItems: Scalars['Boolean'];
75
90
  };
76
91
 
77
- export type AddToCustomerProductListInput = {
78
- articleNumber: Scalars['String'];
79
- quantity?: Maybe<Scalars['Int']>;
80
- description?: Maybe<Scalars['String']>;
92
+ export type ListFilterItem = {
93
+ __typename?: 'ListFilterItem';
94
+ text: Scalars['String'];
95
+ id: Scalars['String'];
96
+ value: Scalars['String'];
97
+ resultCount?: Maybe<Scalars['Int']>;
98
+ isActive?: Maybe<Scalars['Boolean']>;
81
99
  };
82
100
 
83
- export type AlternateRoute = {
84
- __typename?: 'AlternateRoute';
85
- channelId?: Maybe<Scalars['Int']>;
86
- culture?: Maybe<Scalars['String']>;
87
- route?: Maybe<Scalars['String']>;
88
- alias?: Maybe<Scalars['String']>;
101
+ export type Filter = {
102
+ id: Scalars['String'];
103
+ name: Scalars['String'];
104
+ };
105
+
106
+ export type NumericRangeFilter = Filter & {
107
+ __typename?: 'NumericRangeFilter';
108
+ min: Scalars['Decimal'];
109
+ max: Scalars['Decimal'];
110
+ id: Scalars['String'];
111
+ name: Scalars['String'];
112
+ isActive: Scalars['Boolean'];
113
+ value?: Maybe<Array<Maybe<Scalars['Decimal']>>>;
89
114
  };
90
115
 
116
+
91
117
  export type BooleanFilter = Filter & {
92
118
  __typename?: 'BooleanFilter';
93
119
  default?: Maybe<Scalars['Boolean']>;
@@ -96,22 +122,25 @@ export type BooleanFilter = Filter & {
96
122
  value?: Maybe<Scalars['Boolean']>;
97
123
  };
98
124
 
99
- export type BooleanFilterInput = {
125
+ export type MultiListFilter = Filter & {
126
+ __typename?: 'MultiListFilter';
127
+ lists: Array<Maybe<MultiListFilterList>>;
100
128
  id: Scalars['String'];
101
- /** null is equivalent to excluding the filter. */
102
- value?: Maybe<Scalars['Boolean']>;
129
+ name: Scalars['String'];
130
+ isActive: Scalars['Boolean'];
103
131
  };
104
132
 
105
- export type BoolValue = {
106
- __typename?: 'BoolValue';
107
- value?: Maybe<Scalars['Boolean']>;
133
+ export type MultiListFilterList = {
134
+ __typename?: 'MultiListFilterList';
135
+ id: Scalars['String'];
136
+ name: Scalars['String'];
137
+ items: Array<Maybe<ListFilterItem>>;
138
+ hasActiveItems: Scalars['Boolean'];
108
139
  };
109
140
 
110
- export type BusinessCustomer = Customer & {
111
- __typename?: 'BusinessCustomer';
112
- /** @deprecated Use `organizationNumber` instead. */
113
- organizationId?: Maybe<Scalars['String']>;
114
- organizationNumber?: Maybe<Scalars['String']>;
141
+ export type PrivateCustomer = Customer & {
142
+ __typename?: 'PrivateCustomer';
143
+ pid?: Maybe<Scalars['String']>;
115
144
  id: Scalars['ID'];
116
145
  memberId?: Maybe<Scalars['String']>;
117
146
  email?: Maybe<Scalars['String']>;
@@ -134,314 +163,131 @@ export type BusinessCustomer = Customer & {
134
163
  };
135
164
 
136
165
 
137
- export type BusinessCustomerOrderHeadersArgs = {
166
+ export type PrivateCustomerOrderHeadersArgs = {
138
167
  first?: Maybe<Scalars['Int']>;
139
168
  offset?: Maybe<Scalars['Int']>;
140
169
  };
141
170
 
142
- export type Cart = {
143
- __typename?: 'Cart';
144
- id?: Maybe<Scalars['String']>;
145
- totalQuantity?: Maybe<Scalars['Int']>;
146
- productTotal?: Maybe<Price>;
147
- productPreviousTotal?: Maybe<Price>;
148
- discountTotal?: Maybe<Price>;
149
- aggregatedDiscounts?: Maybe<Array<Maybe<Discount>>>;
150
- externalCheckoutUrl?: Maybe<Scalars['Uri']>;
151
- items?: Maybe<Array<Maybe<CartItem>>>;
171
+ export type Language = {
172
+ __typename?: 'Language';
173
+ id: Scalars['String'];
174
+ name: Scalars['String'];
175
+ culture: Scalars['String'];
176
+ isDefault?: Maybe<Scalars['Boolean']>;
152
177
  };
153
178
 
154
- export type CartItem = {
155
- __typename?: 'CartItem';
156
- id: Scalars['String'];
157
- quantity: Scalars['Int'];
158
- articleNumber: Scalars['String'];
159
- /** @deprecated Please use images on product instead. */
160
- images?: Maybe<Array<Maybe<ProductImage>>>;
161
- subHeading?: Maybe<Scalars['String']>;
162
- variant?: Maybe<ProductVariant>;
163
- variantOptionNames?: Maybe<Array<Maybe<Scalars['String']>>>;
164
- customerComments?: Maybe<Array<Maybe<CartItemComment>>>;
165
- discounts?: Maybe<Array<Maybe<Discount>>>;
166
- /** Total price, including discounts */
167
- total: Price;
168
- /** Total price, excluding discounts */
169
- previousTotal: Price;
170
- /** Unit price, including discounts */
171
- unitPrice: Price;
172
- /** Unit price, excluding discounts */
173
- previousUnitPrice: Price;
174
- /** Discount total */
175
- discount?: Maybe<Price>;
176
- product?: Maybe<Product>;
177
- configurations?: Maybe<Array<Maybe<SelectedProductConfiguration>>>;
178
- preOrderDate?: Maybe<Scalars['DateTime']>;
179
+ export type CustomerAddress = {
180
+ __typename?: 'CustomerAddress';
181
+ id?: Maybe<Scalars['Int']>;
182
+ addressName?: Maybe<Scalars['String']>;
183
+ firstName?: Maybe<Scalars['String']>;
184
+ lastName?: Maybe<Scalars['String']>;
185
+ companyAtt?: Maybe<Scalars['String']>;
186
+ company?: Maybe<Scalars['String']>;
187
+ department?: Maybe<Scalars['String']>;
188
+ streetName?: Maybe<Scalars['String']>;
189
+ co?: Maybe<Scalars['String']>;
190
+ postalCode?: Maybe<Scalars['String']>;
191
+ city?: Maybe<Scalars['String']>;
192
+ municipality?: Maybe<Scalars['String']>;
193
+ region?: Maybe<Scalars['String']>;
194
+ country?: Maybe<Country>;
195
+ phone?: Maybe<Scalars['String']>;
196
+ mobilePhone?: Maybe<Scalars['String']>;
179
197
  };
180
198
 
181
- export type CartItemComment = {
182
- __typename?: 'CartItemComment';
199
+ export type Country = {
200
+ __typename?: 'Country';
201
+ id: Scalars['ID'];
202
+ code?: Maybe<Scalars['String']>;
183
203
  name?: Maybe<Scalars['String']>;
184
- value?: Maybe<Scalars['String']>;
204
+ isDefault?: Maybe<Scalars['Boolean']>;
185
205
  };
186
206
 
187
- export type CartMutation = {
188
- __typename?: 'CartMutation';
189
- cart?: Maybe<Cart>;
207
+ export type OrderHeaderResult = {
208
+ __typename?: 'OrderHeaderResult';
209
+ result?: Maybe<Array<Maybe<OrderHeader>>>;
210
+ totalResults?: Maybe<Scalars['Int']>;
190
211
  };
191
212
 
192
- export type Category = Document & {
193
- __typename?: 'Category';
194
- id: Scalars['Int'];
195
- /** @deprecated Use parent.id instead */
196
- parentId?: Maybe<Scalars['Int']>;
197
- name: Scalars['String'];
198
- level: Scalars['Int'];
199
- /** The time interval of the campaign/category */
200
- activeDateSpan?: Maybe<CategoryActiveDateSpan>;
201
- /**
202
- * Whether or not this category and all its children are considered hidden
203
- * @deprecated This field should no longer be used and will always be false.
204
- */
205
- isHidden: Scalars['Boolean'];
206
- /** When empty will display the value of the name field */
207
- mainHeader?: Maybe<Scalars['String']>;
208
- content?: Maybe<Scalars['String']>;
209
- externalId?: Maybe<Scalars['String']>;
210
- externalDiscountId?: Maybe<Scalars['String']>;
211
- images?: Maybe<Array<Maybe<CategoryImage>>>;
212
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
213
- products?: Maybe<PagedResult>;
214
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
215
- head?: Maybe<HtmlHead>;
216
- /**
217
- * The primary route of this Category. NB: Carries a performance cost, as asking
218
- * for this will result in a separate API call in the backend.
219
- */
220
- primaryRoute?: Maybe<Route>;
221
- breadcrumbText?: Maybe<Scalars['String']>;
222
- hasSubcategories?: Maybe<Scalars['Boolean']>;
223
- subcategories?: Maybe<Array<Maybe<Category>>>;
224
- /** @deprecated Use parent instead */
225
- parentCategory?: Maybe<Category>;
226
- parent?: Maybe<Category>;
227
- /**
228
- * A dynamic category has no fixed products; products are dynamically included
229
- * based on filters defined on the category in Admin. N.B. Products found on a
230
- * dynamic category has no route that includes said category, instead
231
- * product.primaryRoute will have to be used.
232
- */
233
- isDynamic: Scalars['Boolean'];
234
- /**
235
- * The category's dynamic filtersNB: Carries a performance cost, as asking for
236
- * this will result in a separate API call in the backend.
237
- */
238
- dynamicFiltering?: Maybe<Array<Maybe<CategoryDynamicFilter>>>;
239
- /**
240
- * Get content data set via the Content Editor. NB: Carries a performance cost,
241
- * as asking for this will result in a separate API call in the backend.
242
- */
243
- data?: Maybe<Content>;
244
- /**
245
- * When set to false, the category will be excluded from sitemap. The frontend
246
- * implementation should use this value to set meta tags to exclude the category
247
- * from being indexed by crawlers. Defaults to true.
248
- */
249
- allowWebIndexing?: Maybe<Scalars['Boolean']>;
250
- };
251
-
252
-
253
- export type CategoryProductsArgs = {
254
- first?: Maybe<Scalars['Paging']>;
255
- offset?: Maybe<Scalars['Int']>;
256
- orderBy?: Maybe<ProductOrderOptions>;
257
- orderByDirection?: Maybe<SortDirection>;
258
- filters?: Maybe<FilterInput>;
259
- };
260
-
261
- export type CategoryActiveDateSpan = {
262
- __typename?: 'CategoryActiveDateSpan';
263
- startDate?: Maybe<Scalars['DateTime']>;
264
- endDate?: Maybe<Scalars['DateTime']>;
265
- };
266
-
267
- export type CategoryAutoCompleteResult = {
268
- __typename?: 'CategoryAutoCompleteResult';
269
- result?: Maybe<Array<Maybe<Category>>>;
270
- };
271
-
272
- export type CategoryDynamicFilter = {
273
- __typename?: 'CategoryDynamicFilter';
274
- type?: Maybe<Scalars['String']>;
275
- value?: Maybe<CategoryDynamicFilterValue>;
213
+ export type OrderHeader = {
214
+ __typename?: 'OrderHeader';
215
+ id: Scalars['ID'];
216
+ orderNumber?: Maybe<Scalars['String']>;
217
+ status?: Maybe<OrderStatus>;
218
+ statusTimeline?: Maybe<Array<Maybe<OrderStatus>>>;
219
+ /** If this is false, a call to `order` for this order will result in a failure. */
220
+ hasOrderDetails?: Maybe<Scalars['Boolean']>;
221
+ total?: Maybe<Price>;
222
+ orderDate?: Maybe<Scalars['DateTime']>;
223
+ trackingId?: Maybe<Scalars['String']>;
224
+ currency?: Maybe<Currency>;
276
225
  };
277
226
 
278
- export type CategoryDynamicFilterValue = StringValue | ListStringValue | BoolValue;
279
-
280
- export type CategoryImage = {
281
- __typename?: 'CategoryImage';
282
- width?: Maybe<Scalars['Int']>;
283
- height?: Maybe<Scalars['Int']>;
284
- url?: Maybe<Scalars['Uri']>;
227
+ export type OrderStatus = {
228
+ __typename?: 'OrderStatus';
229
+ id?: Maybe<Scalars['ID']>;
230
+ description?: Maybe<Scalars['String']>;
231
+ timestamp?: Maybe<Scalars['DateTime']>;
285
232
  };
286
233
 
287
- export type CategorySearchResult = {
288
- __typename?: 'CategorySearchResult';
289
- result?: Maybe<Array<Maybe<Category>>>;
290
- totalResults?: Maybe<Scalars['Int']>;
291
- };
292
234
 
293
- export type ChangeByOneItemQuantityInput = {
294
- cartId: Scalars['String'];
295
- itemId: Scalars['String'];
235
+ export type Price = {
236
+ __typename?: 'Price';
237
+ incVat: Scalars['Decimal'];
238
+ exVat: Scalars['Decimal'];
239
+ vat: Scalars['Decimal'];
296
240
  };
297
241
 
298
- /**
299
- * Every channel has its own URL and can have different design, selection of
300
- * products, prices and own settings for example shipping and payment.
301
- */
302
- export type Channel = {
303
- __typename?: 'Channel';
304
- id: Scalars['Int'];
242
+ export type Currency = {
243
+ __typename?: 'Currency';
244
+ id: Scalars['String'];
305
245
  name?: Maybe<Scalars['String']>;
306
- displayName?: Maybe<Scalars['String']>;
307
- groupName?: Maybe<Scalars['String']>;
308
246
  isDefault?: Maybe<Scalars['Boolean']>;
309
- url?: Maybe<Scalars['Uri']>;
310
- settings?: Maybe<ChannelSettings>;
311
- languages?: Maybe<Array<Maybe<Language>>>;
312
- defaultLanguage?: Maybe<Language>;
313
- currencies?: Maybe<Array<Maybe<Currency>>>;
314
- defaultCurrency?: Maybe<Currency>;
315
- countries?: Maybe<Array<Maybe<Country>>>;
316
- /** The root url of images, this can be used to build image urls if needed. */
317
- imageUrl?: Maybe<Scalars['String']>;
318
- /** This channel requires a user to be authorized. */
319
- requiresAuth?: Maybe<Scalars['Boolean']>;
320
- };
321
-
322
- export type ChannelSettings = {
323
- __typename?: 'ChannelSettings';
324
- pricesIncVat?: Maybe<Scalars['Boolean']>;
325
- countrySettings?: Maybe<Array<Maybe<CountrySettings>>>;
326
- tracking?: Maybe<Tracking>;
327
- nostoAccountId?: Maybe<Scalars['String']>;
247
+ format?: Maybe<CurrencyFormat>;
328
248
  };
329
249
 
330
- export type Consent = {
331
- __typename?: 'Consent';
332
- id: Scalars['ID'];
333
- name?: Maybe<Scalars['String']>;
334
- title?: Maybe<Scalars['String']>;
335
- text?: Maybe<Scalars['String']>;
336
- linkText?: Maybe<Scalars['String']>;
337
- page?: Maybe<Page>;
338
- isMandatory?: Maybe<Scalars['Boolean']>;
250
+ export type CurrencyFormat = {
251
+ __typename?: 'CurrencyFormat';
252
+ /** @deprecated For currency formatting to a specific culture, instead use whichever culture makes sense contextually. */
253
+ culture: Scalars['String'];
254
+ code: Scalars['String'];
255
+ decimals: Scalars['Int'];
339
256
  };
340
257
 
341
- export type Content = {
342
- __typename?: 'Content';
343
- name?: Maybe<Scalars['String']>;
344
- id: Scalars['ID'];
345
- items?: Maybe<Array<Maybe<ContentItem>>>;
346
- tags?: Maybe<Array<Maybe<Scalars['String']>>>;
258
+ export type CustomerCommunication = {
259
+ __typename?: 'CustomerCommunication';
260
+ acceptsEmail?: Maybe<Scalars['Boolean']>;
261
+ acceptsPostal?: Maybe<Scalars['Boolean']>;
262
+ acceptsSms?: Maybe<Scalars['Boolean']>;
347
263
  };
348
264
 
349
- export type ContentItem = {
350
- __typename?: 'ContentItem';
265
+ export type Store = {
266
+ __typename?: 'Store';
267
+ id: Scalars['Int'];
268
+ externalId?: Maybe<Scalars['String']>;
351
269
  name?: Maybe<Scalars['String']>;
352
- type: Scalars['String'];
353
- properties?: Maybe<Array<Maybe<ContentItemProperty>>>;
354
- children?: Maybe<Array<Maybe<ContentItem>>>;
355
- };
356
-
357
-
358
- export type ContentItemPropertiesArgs = {
359
- getImageAsImageValue?: Maybe<Scalars['Boolean']>;
360
- };
361
-
362
- export type ContentItemProperty = {
363
- __typename?: 'ContentItemProperty';
364
- name: Scalars['String'];
365
- type: Scalars['String'];
366
- valueType?: Maybe<ContentPropertyValueType>;
367
- value?: Maybe<ContentItemPropertyValue>;
270
+ city?: Maybe<Scalars['String']>;
271
+ region?: Maybe<Scalars['String']>;
272
+ address1?: Maybe<Scalars['String']>;
273
+ address2?: Maybe<Scalars['String']>;
274
+ description?: Maybe<Scalars['String']>;
275
+ other?: Maybe<Scalars['String']>;
276
+ openHours?: Maybe<Scalars['String']>;
277
+ contact?: Maybe<Scalars['String']>;
278
+ coordinates?: Maybe<Coordinates>;
368
279
  };
369
280
 
370
- export type ContentItemPropertyValue = StringValue | ImageValue | BoolValue | Product | Category;
371
-
372
- export enum ContentPropertyValueType {
373
- Object = 'OBJECT',
374
- Scalar = 'SCALAR'
375
- }
376
-
377
281
  export type Coordinates = {
378
282
  __typename?: 'Coordinates';
379
283
  latitude: Scalars['Decimal'];
380
284
  longitude: Scalars['Decimal'];
381
285
  };
382
286
 
383
- export type Country = {
384
- __typename?: 'Country';
385
- id: Scalars['ID'];
386
- code?: Maybe<Scalars['String']>;
387
- name?: Maybe<Scalars['String']>;
388
- isDefault?: Maybe<Scalars['Boolean']>;
389
- };
390
-
391
- export type CountrySettings = {
392
- __typename?: 'CountrySettings';
393
- countryCode: Scalars['String'];
394
- paymentTypes?: Maybe<Array<Maybe<PaymentType>>>;
395
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
396
- privateCustomerFields?: Maybe<Array<Maybe<CustomerField>>>;
397
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
398
- businessCustomerFields?: Maybe<Array<Maybe<CustomerField>>>;
399
- shipping?: Maybe<Shipping>;
400
- /**
401
- * NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.
402
- *
403
- * This will use localization, and will work well when requesting one `channel`,
404
- * but may give unpredictable results when getting multiple channels via `channels`
405
- */
406
- privateCustomerConsents?: Maybe<Array<Maybe<Consent>>>;
407
- /**
408
- * NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.
409
- *
410
- * This will use localization, and will work well when requesting one `channel`,
411
- * but may give unpredictable results when getting multiple channels via `channels`
412
- */
413
- businessCustomerConsents?: Maybe<Array<Maybe<Consent>>>;
414
- };
415
-
416
- export type CreateCustomerProductListInput = {
417
- /** The type of list created. Omit this and the default type will be used. */
418
- typeId?: Maybe<Scalars['Int']>;
287
+ export type CustomerExternalAttribute = {
288
+ __typename?: 'CustomerExternalAttribute';
419
289
  name: Scalars['String'];
420
- description?: Maybe<Scalars['String']>;
421
- };
422
-
423
- export type Currency = {
424
- __typename?: 'Currency';
425
- id: Scalars['String'];
426
- name?: Maybe<Scalars['String']>;
427
- isDefault?: Maybe<Scalars['Boolean']>;
428
- format?: Maybe<CurrencyFormat>;
429
- };
430
-
431
- export type CurrencyFormat = {
432
- __typename?: 'CurrencyFormat';
433
- /** @deprecated For currency formatting to a specific culture, instead use whichever culture makes sense contextually. */
434
- culture: Scalars['String'];
435
- code: Scalars['String'];
436
- decimals: Scalars['Int'];
437
- };
438
-
439
- export type CustomBoolField = CustomField & {
440
- __typename?: 'CustomBoolField';
441
- value: Scalars['Boolean'];
442
- type?: Maybe<ProductCustomFieldType>;
443
- key?: Maybe<Scalars['String']>;
444
- title?: Maybe<Scalars['String']>;
290
+ value: Scalars['String'];
445
291
  };
446
292
 
447
293
  export type Customer = {
@@ -472,395 +318,467 @@ export type CustomerOrderHeadersArgs = {
472
318
  offset?: Maybe<Scalars['Int']>;
473
319
  };
474
320
 
475
- export type CustomerAddress = {
476
- __typename?: 'CustomerAddress';
477
- id?: Maybe<Scalars['Int']>;
478
- addressName?: Maybe<Scalars['String']>;
479
- firstName?: Maybe<Scalars['String']>;
480
- lastName?: Maybe<Scalars['String']>;
481
- companyAtt?: Maybe<Scalars['String']>;
482
- company?: Maybe<Scalars['String']>;
483
- department?: Maybe<Scalars['String']>;
484
- streetName?: Maybe<Scalars['String']>;
485
- co?: Maybe<Scalars['String']>;
486
- postalCode?: Maybe<Scalars['String']>;
487
- city?: Maybe<Scalars['String']>;
488
- municipality?: Maybe<Scalars['String']>;
489
- region?: Maybe<Scalars['String']>;
490
- country?: Maybe<Country>;
491
- phone?: Maybe<Scalars['String']>;
492
- mobilePhone?: Maybe<Scalars['String']>;
493
- };
321
+ export type BusinessCustomer = Customer & {
322
+ __typename?: 'BusinessCustomer';
323
+ /** @deprecated Use `organizationNumber` instead. */
324
+ organizationId?: Maybe<Scalars['String']>;
325
+ organizationNumber?: Maybe<Scalars['String']>;
326
+ id: Scalars['ID'];
327
+ memberId?: Maybe<Scalars['String']>;
328
+ email?: Maybe<Scalars['String']>;
329
+ /** Customer id for external system */
330
+ externalId?: Maybe<Scalars['String']>;
331
+ /** @deprecated Use communication.acceptsEmail */
332
+ subscribedToNewsletter?: Maybe<Scalars['Boolean']>;
333
+ language?: Maybe<Language>;
334
+ billingAddress?: Maybe<CustomerAddress>;
335
+ deliveryAddresses?: Maybe<Array<Maybe<CustomerAddress>>>;
336
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
337
+ orderHeaders?: Maybe<OrderHeaderResult>;
338
+ communication?: Maybe<CustomerCommunication>;
339
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
340
+ store?: Maybe<Store>;
341
+ dynamicContent?: Maybe<Scalars['String']>;
342
+ externalAttributes?: Maybe<Array<Maybe<CustomerExternalAttribute>>>;
343
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
344
+ googleUserId?: Maybe<Scalars['String']>;
345
+ };
494
346
 
495
- export type CustomerCommunication = {
496
- __typename?: 'CustomerCommunication';
497
- acceptsEmail?: Maybe<Scalars['Boolean']>;
498
- acceptsPostal?: Maybe<Scalars['Boolean']>;
499
- acceptsSms?: Maybe<Scalars['Boolean']>;
347
+
348
+ export type BusinessCustomerOrderHeadersArgs = {
349
+ first?: Maybe<Scalars['Int']>;
350
+ offset?: Maybe<Scalars['Int']>;
500
351
  };
501
352
 
502
- export type CustomerExternalAttribute = {
503
- __typename?: 'CustomerExternalAttribute';
504
- name: Scalars['String'];
505
- value: Scalars['String'];
353
+ export type Query = {
354
+ __typename?: 'Query';
355
+ store?: Maybe<Store>;
356
+ stores: Array<Maybe<Store>>;
357
+ startPage?: Maybe<StartPage>;
358
+ searchAutoComplete?: Maybe<SearchAutoCompleteResult>;
359
+ search?: Maybe<SearchResult>;
360
+ /** get product, category or page by path. */
361
+ route?: Maybe<Route>;
362
+ product?: Maybe<Product>;
363
+ products: Array<Maybe<Product>>;
364
+ /** Fetch a single page by ID. */
365
+ page?: Maybe<Page>;
366
+ /** Fetch all non-hidden pages. If you are using nested pages, only root level pages will be returned. */
367
+ pages: Array<Maybe<Page>>;
368
+ /** fetch order by id */
369
+ order?: Maybe<Order>;
370
+ /** Fetches my pages content */
371
+ myPagesContent?: Maybe<MyPagesContent>;
372
+ /** get customer product list by id, null gets default product list */
373
+ customerProductList?: Maybe<CustomerProductList>;
374
+ customerProductLists: Array<Maybe<CustomerProductList>>;
375
+ /** Fetches customer-unique offers */
376
+ customerLoyalty?: Maybe<CustomerLoyalty>;
377
+ /** Lookup a customer by a mobile phone number */
378
+ customerLookup?: Maybe<Customer>;
379
+ customer?: Maybe<Customer>;
380
+ /**
381
+ * Used in the sign up process when the shop has a third party customer repository, e.g. Voyado.
382
+ *
383
+ * Error codes: INVALID_VALUE (if `key` is null), ExternalCustomerLookupFailed
384
+ */
385
+ externalCustomerLookup?: Maybe<ExternalCustomerResult>;
386
+ /** Get information on person by Key(personal id number or phone number) */
387
+ personLookup?: Maybe<PersonLookup>;
388
+ /** Returns content found, either by a list of content Ids, or filtered by tags. In the case of filtering by ids, not found content Ids are listed as well. */
389
+ content?: Maybe<MultipleContent>;
390
+ /** get channel by id, null gets default channel */
391
+ channel?: Maybe<Channel>;
392
+ /** get all channels */
393
+ channels: Array<Maybe<Channel>>;
394
+ /** get categories by channel id, culture, root and culture */
395
+ categories: Array<Maybe<Category>>;
396
+ /** get category by id */
397
+ category?: Maybe<Category>;
398
+ cart?: Maybe<Cart>;
506
399
  };
507
400
 
508
- export type CustomerField = {
509
- __typename?: 'CustomerField';
510
- id: Scalars['ID'];
511
- required: Scalars['Boolean'];
512
- pattern?: Maybe<Scalars['String']>;
513
- fields?: Maybe<Array<Maybe<CustomerField>>>;
514
- name: Scalars['ID'];
401
+
402
+ export type QueryStoreArgs = {
403
+ id: Scalars['Int'];
515
404
  };
516
405
 
517
- export type CustomerLoyalty = {
518
- __typename?: 'CustomerLoyalty';
519
- bonusChecks?: Maybe<Array<Maybe<CustomerLoyaltyBonusCheck>>>;
520
- pointCards?: Maybe<Array<Maybe<CustomerLoyaltyPointCard>>>;
521
- discounts?: Maybe<Array<Maybe<CustomerLoyaltyDiscount>>>;
522
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
523
- bonusPoints?: Maybe<CustomerLoyaltyBonusPoints>;
406
+
407
+ export type QueryStoresArgs = {
408
+ includeInactive?: Scalars['Boolean'];
524
409
  };
525
410
 
526
411
 
527
- export type CustomerLoyaltyDiscountsArgs = {
528
- includeRedeemed?: Scalars['Boolean'];
412
+ export type QueryStartPageArgs = {
413
+ id?: Maybe<Scalars['Int']>;
529
414
  };
530
415
 
531
- export type CustomerLoyaltyBonusCheck = {
532
- __typename?: 'CustomerLoyaltyBonusCheck';
533
- externalId?: Maybe<Scalars['String']>;
534
- name?: Maybe<Scalars['String']>;
535
- startDate?: Maybe<Scalars['DateTime']>;
536
- endDate?: Maybe<Scalars['DateTime']>;
537
- redeemed?: Maybe<Scalars['Boolean']>;
538
- redeemedOn?: Maybe<Scalars['DateTime']>;
539
- /** For display purposes, not guaranteed to match up with a currency on the channel. */
540
- currency?: Maybe<Scalars['String']>;
541
- value?: Maybe<Scalars['Decimal']>;
416
+
417
+ export type QuerySearchAutoCompleteArgs = {
418
+ term: Scalars['String'];
542
419
  };
543
420
 
544
- export type CustomerLoyaltyBonusPoints = {
545
- __typename?: 'CustomerLoyaltyBonusPoints';
546
- points?: Maybe<Scalars['Int']>;
421
+
422
+ export type QuerySearchArgs = {
423
+ term: Scalars['String'];
547
424
  };
548
425
 
549
- export type CustomerLoyaltyDiscount = {
550
- __typename?: 'CustomerLoyaltyDiscount';
551
- name?: Maybe<Scalars['String']>;
552
- description?: Maybe<Scalars['String']>;
553
- startDate?: Maybe<Scalars['DateTime']>;
554
- endDate?: Maybe<Scalars['DateTime']>;
555
- externalData?: Maybe<CustomerLoyaltyDiscountOfferExternalData>;
556
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
557
- category?: Maybe<Category>;
558
- isActivatedByDiscountCode: Scalars['Boolean'];
559
- discountCode?: Maybe<Scalars['String']>;
426
+
427
+ export type QueryRouteArgs = {
428
+ path: Scalars['String'];
560
429
  };
561
430
 
562
- export type CustomerLoyaltyDiscountOfferExternalData = {
563
- __typename?: 'CustomerLoyaltyDiscountOfferExternalData';
564
- name?: Maybe<Scalars['String']>;
565
- description?: Maybe<Scalars['String']>;
566
- startDate?: Maybe<Scalars['DateTime']>;
567
- endDate?: Maybe<Scalars['DateTime']>;
568
- externalId?: Maybe<Scalars['String']>;
569
- externalReference?: Maybe<Scalars['String']>;
570
- heading?: Maybe<Scalars['String']>;
571
- redeemed?: Maybe<Scalars['Boolean']>;
572
- redeemedOn?: Maybe<Scalars['DateTime']>;
573
- imageUrl?: Maybe<Scalars['String']>;
574
- link?: Maybe<Scalars['String']>;
431
+
432
+ export type QueryProductArgs = {
433
+ articleNumber?: Maybe<Scalars['String']>;
434
+ id?: Maybe<Scalars['Int']>;
435
+ barcode?: Maybe<Scalars['String']>;
575
436
  };
576
437
 
577
- export type CustomerLoyaltyPointCard = {
578
- __typename?: 'CustomerLoyaltyPointCard';
579
- externalId?: Maybe<Scalars['String']>;
580
- name?: Maybe<Scalars['String']>;
581
- lastStampTime?: Maybe<Scalars['DateTime']>;
582
- numberOfSlots?: Maybe<Scalars['Int']>;
583
- numberOfSlotsRemaining?: Maybe<Scalars['Int']>;
584
- isActive?: Maybe<Scalars['Boolean']>;
438
+
439
+ export type QueryProductsArgs = {
440
+ articleNumbers?: Maybe<Array<Maybe<Scalars['String']>>>;
441
+ ids?: Maybe<Array<Maybe<Scalars['Int']>>>;
442
+ barcodes?: Maybe<Array<Maybe<Scalars['String']>>>;
585
443
  };
586
444
 
587
- export type CustomerProductList = {
588
- __typename?: 'CustomerProductList';
589
- id: Scalars['ID'];
445
+
446
+ export type QueryPageArgs = {
447
+ id: Scalars['Int'];
448
+ };
449
+
450
+
451
+ export type QueryOrderArgs = {
452
+ id?: Maybe<Scalars['Int']>;
453
+ orderId?: Maybe<Scalars['ID']>;
454
+ };
455
+
456
+
457
+ export type QueryCustomerProductListArgs = {
458
+ id?: Maybe<Scalars['ID']>;
590
459
  shareToken?: Maybe<Scalars['String']>;
591
- name?: Maybe<Scalars['String']>;
592
- description?: Maybe<Scalars['String']>;
593
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
594
- type?: Maybe<CustomerProductListType>;
595
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
596
- items?: Maybe<Array<Maybe<CustomerProductListItem>>>;
597
460
  };
598
461
 
599
- export type CustomerProductListItem = {
600
- __typename?: 'CustomerProductListItem';
601
- description?: Maybe<Scalars['String']>;
602
- quantity?: Maybe<Scalars['Int']>;
603
- variant?: Maybe<ProductVariant>;
604
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
605
- product?: Maybe<Product>;
462
+
463
+ export type QueryCustomerLookupArgs = {
464
+ phoneNumber?: Maybe<Scalars['String']>;
606
465
  };
607
466
 
608
- export type CustomerProductListResult = {
609
- __typename?: 'CustomerProductListResult';
610
- success?: Maybe<Scalars['Boolean']>;
611
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
612
- customerProductList?: Maybe<CustomerProductList>;
467
+
468
+ export type QueryExternalCustomerLookupArgs = {
469
+ key?: Maybe<Scalars['String']>;
613
470
  };
614
471
 
615
- export type CustomerProductListType = {
616
- __typename?: 'CustomerProductListType';
617
- id: Scalars['ID'];
618
- name?: Maybe<Scalars['String']>;
472
+
473
+ export type QueryPersonLookupArgs = {
474
+ key: Scalars['String'];
619
475
  };
620
476
 
621
- export enum CustomerType {
622
- Private = 'PRIVATE',
623
- Company = 'COMPANY'
624
- }
625
477
 
626
- /** Fields that are required to have a value is determined by CustomerFields found in CountrySettings */
627
- export type CustomerUpdateBillingAddressInput = {
628
- mobilePhone?: Maybe<Scalars['String']>;
629
- phone?: Maybe<Scalars['String']>;
630
- region?: Maybe<Scalars['String']>;
631
- countryCode?: Maybe<Scalars['String']>;
632
- city?: Maybe<Scalars['String']>;
633
- postalCode?: Maybe<Scalars['String']>;
634
- streetName?: Maybe<Scalars['String']>;
635
- co?: Maybe<Scalars['String']>;
636
- department?: Maybe<Scalars['String']>;
637
- municipality?: Maybe<Scalars['String']>;
638
- companyAtt?: Maybe<Scalars['String']>;
639
- company?: Maybe<Scalars['String']>;
640
- lastName?: Maybe<Scalars['String']>;
641
- firstName?: Maybe<Scalars['String']>;
642
- addressName?: Maybe<Scalars['String']>;
478
+ export type QueryContentArgs = {
479
+ ids?: Maybe<Array<Maybe<Scalars['String']>>>;
480
+ tags?: Maybe<Array<Maybe<Scalars['String']>>>;
643
481
  };
644
482
 
645
- export type CustomerUpdateConsentInput = {
483
+
484
+ export type QueryChannelArgs = {
646
485
  id?: Maybe<Scalars['String']>;
647
- value?: Maybe<Scalars['Boolean']>;
648
486
  };
649
487
 
650
- export type CustomerUpdateDeliveryAddressInput = {
651
- /** If this field is left empty, a new DeliveryAddress will be created. */
652
- id?: Maybe<Scalars['Int']>;
653
- mobilePhone?: Maybe<Scalars['String']>;
654
- phone?: Maybe<Scalars['String']>;
655
- region?: Maybe<Scalars['String']>;
656
- countryCode?: Maybe<Scalars['String']>;
657
- city?: Maybe<Scalars['String']>;
658
- postalCode?: Maybe<Scalars['String']>;
659
- streetName?: Maybe<Scalars['String']>;
660
- co?: Maybe<Scalars['String']>;
661
- department?: Maybe<Scalars['String']>;
662
- municipality?: Maybe<Scalars['String']>;
663
- companyAtt?: Maybe<Scalars['String']>;
664
- company?: Maybe<Scalars['String']>;
665
- lastName?: Maybe<Scalars['String']>;
666
- firstName?: Maybe<Scalars['String']>;
667
- addressName?: Maybe<Scalars['String']>;
668
- };
669
488
 
670
- export type CustomerUpdateExternalAttribute = {
671
- name: Scalars['String'];
672
- value: Scalars['String'];
489
+ export type QueryCategoriesArgs = {
490
+ root?: Maybe<Scalars['Int']>;
491
+ levels?: Maybe<Scalars['Int']>;
492
+ includeHidden?: Maybe<Scalars['Boolean']>;
673
493
  };
674
494
 
675
- export type CustomerUpdateInput = {
676
- pid?: Maybe<Scalars['String']>;
677
- emailAddress?: Maybe<Scalars['String']>;
678
- organizationNumber?: Maybe<Scalars['String']>;
679
- billingAddress: CustomerUpdateBillingAddressInput;
680
- deliveryAddresses?: Maybe<Array<Maybe<CustomerUpdateDeliveryAddressInput>>>;
681
- preferences?: Maybe<CustomerUpdatePreferenceInput>;
682
- consents?: Maybe<Array<Maybe<CustomerUpdateConsentInput>>>;
683
- externalAttributes?: Maybe<Array<Maybe<CustomerUpdateExternalAttribute>>>;
684
- dynamicContent?: Maybe<Scalars['String']>;
685
- };
686
495
 
687
- export type CustomerUpdatePreferenceInput = {
688
- type?: Maybe<CustomerUpdatePreferencesCommunicationInput>;
689
- storeLocationId?: Maybe<Scalars['Int']>;
496
+ export type QueryCategoryArgs = {
497
+ id: Scalars['ID'];
690
498
  };
691
499
 
692
- export type CustomerUpdatePreferencesCommunicationInput = {
693
- acceptsEmail?: Maybe<Scalars['Boolean']>;
694
- acceptsPostal?: Maybe<Scalars['Boolean']>;
695
- acceptsSms?: Maybe<Scalars['Boolean']>;
696
- culture?: Maybe<Scalars['String']>;
500
+
501
+ export type QueryCartArgs = {
502
+ id?: Maybe<Scalars['String']>;
697
503
  };
698
504
 
699
- /** Responds with a bool value whether the update has been successful or not */
700
- export type CustomerUpdateResponse = {
701
- __typename?: 'CustomerUpdateResponse';
702
- success: Scalars['Boolean'];
505
+ export type StartPage = Document & {
506
+ __typename?: 'StartPage';
507
+ id: Scalars['Int'];
508
+ name: Scalars['String'];
509
+ images?: Maybe<Array<Maybe<Image>>>;
510
+ isActive?: Maybe<Scalars['Boolean']>;
511
+ content?: Maybe<Scalars['String']>;
512
+ items?: Maybe<Array<Maybe<StartPageItem>>>;
513
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
514
+ head?: Maybe<HtmlHead>;
515
+ /** The primary route of this StartPage */
516
+ primaryRoute?: Maybe<Route>;
517
+ breadcrumbText?: Maybe<Scalars['String']>;
518
+ /** Get content data set via the Content Editor. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
519
+ data?: Maybe<Content>;
703
520
  };
704
521
 
705
- export type CustomField = {
706
- type?: Maybe<ProductCustomFieldType>;
707
- key?: Maybe<Scalars['String']>;
522
+ export type Image = {
523
+ __typename?: 'Image';
708
524
  title?: Maybe<Scalars['String']>;
525
+ url?: Maybe<Scalars['Uri']>;
526
+ width?: Maybe<Scalars['Int']>;
527
+ height?: Maybe<Scalars['Int']>;
709
528
  };
710
529
 
711
- export type CustomHtmlField = CustomField & {
712
- __typename?: 'CustomHtmlField';
713
- value: Scalars['String'];
714
- type?: Maybe<ProductCustomFieldType>;
715
- key?: Maybe<Scalars['String']>;
716
- title?: Maybe<Scalars['String']>;
530
+ export type StartPageItem = {
531
+ __typename?: 'StartPageItem';
532
+ id: Scalars['Int'];
533
+ row?: Maybe<Scalars['Int']>;
534
+ column?: Maybe<Scalars['Int']>;
535
+ item: StartPageItemObject;
717
536
  };
718
537
 
719
- export type CustomItem = {
720
- __typename?: 'CustomItem';
538
+ export type StartPageItemObject = Product | CustomItem;
539
+
540
+ export type Product = Document & {
541
+ __typename?: 'Product';
721
542
  id: Scalars['Int'];
543
+ articleNumber: Scalars['String'];
722
544
  name: Scalars['String'];
723
- content?: Maybe<Scalars['String']>;
724
- linkUrl?: Maybe<Scalars['Uri']>;
725
- image?: Maybe<Image>;
545
+ subName: Scalars['String'];
546
+ shortDescription: Scalars['String'];
547
+ description: Scalars['String'];
548
+ /** Product header if it differs from the actual product name, usually displayed instead of the product name in the header tag at the product page. */
549
+ mainHeader: Scalars['String'];
550
+ publishedDate?: Maybe<Scalars['DateTime']>;
551
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
552
+ canonicalCategory?: Maybe<Category>;
553
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
554
+ categories?: Maybe<Array<Maybe<Category>>>;
555
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
556
+ campaigns?: Maybe<Array<Maybe<Category>>>;
557
+ hasVariants: Scalars['Boolean'];
558
+ hasVariantsWithDifferingPrices: Scalars['Boolean'];
559
+ variants?: Maybe<ProductVariants>;
560
+ images?: Maybe<Array<Maybe<ProductImage>>>;
561
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
562
+ relatedProducts?: Maybe<Array<Maybe<Product>>>;
563
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
564
+ badges?: Maybe<Array<Maybe<ProductBadge>>>;
565
+ /**
566
+ * The current price.
567
+ * - Will be a Customer specific price if that Customer has a separate price list.
568
+ * - Will be the member price if Customer is logged in and `Product.hasMemberPrice` is true.
569
+ * - Will be the non-member price if Customer is not logged in and `Product.hasMemberPrice` is true.
570
+ */
571
+ price?: Maybe<Price>;
572
+ hidePrice?: Maybe<Scalars['Boolean']>;
573
+ /** The previous price (i.e. this will be higher than `price` if the product is discounted). Will be a Customer specific previous price, if that Customer has a separate price list. */
574
+ previousPrice?: Maybe<Price>;
575
+ /** Default price for the product in the channel, disregards Customer specific prices. */
576
+ defaultPrice?: Maybe<Price>;
577
+ /** Default previous price for the product in the channel, disregards Customer specific prices. */
578
+ defaultPreviousPrice?: Maybe<Price>;
579
+ /** Not in use. Always null. */
580
+ recommendedPrice?: Maybe<Price>;
581
+ /** The time interval of the discounted price. If the product has variants, the time interval will be that of the variant which price is shown on the product. */
582
+ priceDateSpan?: Maybe<ProductPriceDateSpan>;
583
+ /** Indicates if this product and its variants has member prices. */
584
+ hasMemberPrice?: Maybe<Scalars['Boolean']>;
585
+ /**
586
+ * The price a Customer would get if member prices are active and the Customer is logged in.
587
+ * - Will be null if `Product.hasMemberPrice` is false.
588
+ * - Will be set if `Product.hasMemberPrice` is true.
589
+ */
590
+ memberPrice?: Maybe<Price>;
591
+ /**
592
+ * Specifies input field(s) for the Customer to populate on the Product that will then carry through to the Order.
593
+ * If 'required' is true the Product should not be purchasable until the field is populated.
594
+ */
595
+ customerComments?: Maybe<Array<Maybe<ProductComment>>>;
596
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
597
+ stockStatus?: Maybe<StockStatus>;
598
+ customFields?: Maybe<Array<Maybe<CustomField>>>;
599
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
600
+ warehouseStock?: Maybe<Array<Maybe<Warehouse>>>;
601
+ head?: Maybe<HtmlHead>;
602
+ /** The primary route of this Product. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
603
+ primaryRoute?: Maybe<Route>;
604
+ breadcrumbText?: Maybe<Scalars['String']>;
605
+ recommendedProducts?: Maybe<RecommendedProducts>;
606
+ /** The product is recommended to only be purchasable in multiples of the distributionPackageSize. (Different shops may have different levels of leniency on this rule). */
607
+ distributionPackageSize: Scalars['Int'];
608
+ barcode?: Maybe<Scalars['String']>;
609
+ /**
610
+ * Configurations on a product are used to assemble a complete product,
611
+ *
612
+ * For example, if the product is a ring then the ring may have two configurations; measures of circumference and choice of engraving
613
+ *
614
+ * In this field, all the configurations of the product will be presented, the configuration name and its various options.
615
+ */
616
+ configurations?: Maybe<Array<Maybe<ProductConfiguration>>>;
617
+ hasConfigurations: Scalars['Boolean'];
618
+ hasFamilyMembers: Scalars['Boolean'];
619
+ /** Calculates the price of the product based on the configuration choices that's been made. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
620
+ configurationPrice?: Maybe<ProductConfigurationPrice>;
621
+ /** Quantity suffix e.g pcs, box, etc. */
622
+ quantitySuffix?: Maybe<Scalars['String']>;
623
+ isPreOrder?: Maybe<Scalars['Boolean']>;
624
+ preOrder?: Maybe<ProductPreOrder>;
625
+ isPackage?: Maybe<Scalars['Boolean']>;
626
+ /**
627
+ * ## Description
628
+ * NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.
629
+ * ## Error Codes
630
+ * ### InvalidAmountOfArticleNumbers
631
+ * Number of input products doesn't match package products
632
+ * ### InvalidArticleNumber
633
+ * Product or variant article number doesn't match any products
634
+ * ### UnableToGetPackagePrice
635
+ * Failed to calculate package price
636
+ */
637
+ package?: Maybe<Package>;
638
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
639
+ upsell?: Maybe<Upsell>;
640
+ inPackages?: Maybe<Array<Product>>;
641
+ hasUpsell?: Maybe<Scalars['Boolean']>;
642
+ /** All other products in the same family as the product. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
643
+ familyMembers?: Maybe<Array<Product>>;
644
+ /** Get Product History within the set number of days */
645
+ history?: Maybe<ProductHistory>;
726
646
  };
727
647
 
728
- export type CustomListField = CustomField & {
729
- __typename?: 'CustomListField';
730
- value?: Maybe<Array<Maybe<Scalars['String']>>>;
731
- type?: Maybe<ProductCustomFieldType>;
732
- key?: Maybe<Scalars['String']>;
733
- title?: Maybe<Scalars['String']>;
734
- };
735
648
 
736
- export type CustomMultiLevelListField = CustomField & {
737
- __typename?: 'CustomMultiLevelListField';
738
- items?: Maybe<Array<Maybe<CustomMultiLevelListFieldItem>>>;
739
- type?: Maybe<ProductCustomFieldType>;
740
- key?: Maybe<Scalars['String']>;
741
- title?: Maybe<Scalars['String']>;
649
+ export type ProductCategoriesArgs = {
650
+ includeHidden?: Maybe<Scalars['Boolean']>;
742
651
  };
743
652
 
744
- export type CustomMultiLevelListFieldItem = {
745
- __typename?: 'CustomMultiLevelListFieldItem';
746
- id: Scalars['Int'];
747
- parentId?: Maybe<Scalars['Int']>;
748
- title: Scalars['String'];
749
- value: Scalars['String'];
653
+
654
+ export type ProductImagesArgs = {
655
+ includeVariantImages?: Maybe<Scalars['Boolean']>;
656
+ limit?: Maybe<Scalars['Int']>;
750
657
  };
751
658
 
752
- export type CustomStringField = CustomField & {
753
- __typename?: 'CustomStringField';
754
- value: Scalars['String'];
755
- type?: Maybe<ProductCustomFieldType>;
756
- key?: Maybe<Scalars['String']>;
757
- title?: Maybe<Scalars['String']>;
659
+
660
+ export type ProductWarehouseStockArgs = {
661
+ includeInactive?: Maybe<Scalars['Boolean']>;
758
662
  };
759
663
 
760
664
 
665
+ export type ProductConfigurationPriceArgs = {
666
+ options?: Maybe<Array<ProductConfigurationPriceInput>>;
667
+ };
668
+
761
669
 
762
- export type DeleteCustomerProductListResult = {
763
- __typename?: 'DeleteCustomerProductListResult';
764
- success?: Maybe<Scalars['Boolean']>;
670
+ export type ProductPackageArgs = {
671
+ articleNumbers?: Maybe<Array<Maybe<PackagePriceInput>>>;
765
672
  };
766
673
 
767
- export type Discount = {
768
- __typename?: 'Discount';
769
- externalId?: Maybe<Scalars['ID']>;
770
- name?: Maybe<Scalars['String']>;
771
- value?: Maybe<Price>;
772
- type?: Maybe<DiscountType>;
773
- description?: Maybe<Scalars['String']>;
774
- campaign?: Maybe<Category>;
674
+
675
+ export type ProductHistoryArgs = {
676
+ days?: Maybe<Scalars['Int']>;
775
677
  };
776
678
 
777
- export enum DiscountType {
778
- /** No discount defined */
779
- Undefined = 'UNDEFINED',
780
- /** Discount drops price of the order total by defined amount */
781
- FixedAmount = 'FIXED_AMOUNT',
782
- /** Discount drops price of the product by X % */
783
- Percent = 'PERCENT',
784
- /** Discount will get the amount of the cheapest product and use this as a discount */
785
- Items = 'ITEMS',
786
- /** Discount drops total price of the product if there is at least X of them in cart */
787
- ItemsPercentageLimit = 'ITEMS_PERCENTAGE_LIMIT',
788
- /** Only a collection of products */
789
- OnlyUseLandingPage = 'ONLY_USE_LANDING_PAGE',
790
- /** Discount drops price of the least expensive product in cart */
791
- PercentOnLeastExpensiveItem = 'PERCENT_ON_LEAST_EXPENSIVE_ITEM',
792
- /** Discount drops price of the most expensive product in cart */
793
- PercentOnMostExpensiveItem = 'PERCENT_ON_MOST_EXPENSIVE_ITEM',
794
- /** Discount allows to get a free gift when the product is added */
795
- FreeProduct = 'FREE_PRODUCT',
796
- /** Discount allows to get free shipping option for the product */
797
- FreeShipping = 'FREE_SHIPPING',
798
- /** Discount drops price for the package when all products in the package is added to cart */
799
- PackageDiscount = 'PACKAGE_DISCOUNT',
800
- /** Discount on the order total from a voucher */
801
- BonusVoucherDiscount = 'BONUS_VOUCHER_DISCOUNT',
802
- /** Discount allows to buy amount of X of the article, but pay only for amount of Y */
803
- BuyXArticlesPayYAmount = 'BUY_X_ARTICLES_PAY_Y_AMOUNT'
804
- }
805
-
806
- export type Document = {
679
+ export type Category = Document & {
680
+ __typename?: 'Category';
681
+ id: Scalars['Int'];
682
+ /** @deprecated Use parent.id instead */
683
+ parentId?: Maybe<Scalars['Int']>;
684
+ name: Scalars['String'];
685
+ level: Scalars['Int'];
686
+ /** The time interval of the campaign/category */
687
+ activeDateSpan?: Maybe<CategoryActiveDateSpan>;
688
+ /**
689
+ * Whether or not this category and all its children are considered hidden
690
+ * @deprecated This field should no longer be used and will always be false.
691
+ */
692
+ isHidden: Scalars['Boolean'];
693
+ /** When empty will display the value of the name field */
694
+ mainHeader?: Maybe<Scalars['String']>;
695
+ content?: Maybe<Scalars['String']>;
696
+ externalId?: Maybe<Scalars['String']>;
697
+ externalDiscountId?: Maybe<Scalars['String']>;
698
+ images?: Maybe<Array<Maybe<CategoryImage>>>;
699
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
700
+ products?: Maybe<PagedResult>;
701
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
807
702
  head?: Maybe<HtmlHead>;
703
+ /** The primary route of this Category. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
808
704
  primaryRoute?: Maybe<Route>;
809
705
  breadcrumbText?: Maybe<Scalars['String']>;
706
+ hasSubcategories?: Maybe<Scalars['Boolean']>;
707
+ subcategories?: Maybe<Array<Maybe<Category>>>;
708
+ /** @deprecated Use parent instead */
709
+ parentCategory?: Maybe<Category>;
710
+ parent?: Maybe<Category>;
711
+ /** A dynamic category has no fixed products; products are dynamically included based on filters defined on the category in Admin. N.B. Products found on a dynamic category has no route that includes said category, instead product.primaryRoute will have to be used. */
712
+ isDynamic: Scalars['Boolean'];
713
+ /** The category's dynamic filtersNB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
714
+ dynamicFiltering?: Maybe<Array<Maybe<CategoryDynamicFilter>>>;
715
+ /** Get content data set via the Content Editor. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
716
+ data?: Maybe<Content>;
717
+ /** When set to false, the category will be excluded from sitemap. The frontend implementation should use this value to set meta tags to exclude the category from being indexed by crawlers. Defaults to true. */
718
+ allowWebIndexing?: Maybe<Scalars['Boolean']>;
810
719
  };
811
720
 
812
- export type ExternalCustomer = {
813
- __typename?: 'ExternalCustomer';
814
- externalId?: Maybe<Scalars['String']>;
815
- email?: Maybe<MaskedProperty>;
816
- firstName?: Maybe<MaskedProperty>;
817
- lastName?: Maybe<MaskedProperty>;
818
- co?: Maybe<MaskedProperty>;
819
- address?: Maybe<MaskedProperty>;
820
- city?: Maybe<MaskedProperty>;
821
- postalCode?: Maybe<MaskedProperty>;
822
- country?: Maybe<MaskedProperty>;
823
- countryCode?: Maybe<Scalars['String']>;
824
- phoneNumber?: Maybe<MaskedProperty>;
825
- mobilePhoneNumber?: Maybe<MaskedProperty>;
826
- pid?: Maybe<MaskedProperty>;
721
+
722
+ export type CategoryProductsArgs = {
723
+ first?: Maybe<Scalars['Paging']>;
724
+ offset?: Maybe<Scalars['Int']>;
725
+ orderBy?: Maybe<ProductOrderOptions>;
726
+ orderByDirection?: Maybe<SortDirection>;
727
+ filters?: Maybe<FilterInput>;
827
728
  };
828
729
 
829
- /**
830
- * The activation status has 4 states;
831
- * PREEXISTING_CUSTOMER: No customer info will be returned and the customer is advised to login to the preexisting account.
832
- * ACTIVATION_REQUIRED: The customer account needs to be activated. Email (masked),
833
- * FirstName (masked) and externalId will be the only fields set on `customer`.
834
- * ADDITIONAL_USER_DATA_REQUIRED: Additional data needed to register the customer,
835
- * the existing customer info will be available with masking on customer.
836
- * NON_EXISTING_CUSTOMER: Customer does not exist in any system and will have to do a sign up.
837
- * COUNTRY_NOT_VALID: The customer account may not be activated on this channel as
838
- * it's missing the customer country. Email (masked), FirstName (masked),
839
- * externalId and countryCode will be the only fields set on `customer`.
840
- */
841
- export type ExternalCustomerResult = {
842
- __typename?: 'ExternalCustomerResult';
843
- status?: Maybe<ActivationStatusSource>;
844
- customer?: Maybe<ExternalCustomer>;
730
+ export type CategoryActiveDateSpan = {
731
+ __typename?: 'CategoryActiveDateSpan';
732
+ startDate?: Maybe<Scalars['DateTime']>;
733
+ endDate?: Maybe<Scalars['DateTime']>;
845
734
  };
846
735
 
847
- export type ExternalOrderData = {
848
- __typename?: 'ExternalOrderData';
849
- name: Scalars['String'];
850
- value: Scalars['String'];
736
+ export type CategoryImage = {
737
+ __typename?: 'CategoryImage';
738
+ width?: Maybe<Scalars['Int']>;
739
+ height?: Maybe<Scalars['Int']>;
740
+ url?: Maybe<Scalars['Uri']>;
851
741
  };
852
742
 
853
- export type FacebookConversionsApi = {
854
- __typename?: 'FacebookConversionsApi';
855
- accessToken?: Maybe<Scalars['String']>;
856
- pixelId?: Maybe<Scalars['String']>;
743
+ export type PagedResult = {
744
+ __typename?: 'PagedResult';
745
+ totalResults?: Maybe<Scalars['Int']>;
746
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
747
+ sortOrders?: Maybe<Array<Maybe<ProductSortOrder>>>;
748
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
749
+ filters?: Maybe<Array<Maybe<Filter>>>;
750
+ result: Array<Maybe<Product>>;
857
751
  };
858
752
 
859
- export type Filter = {
860
- id: Scalars['String'];
861
- name: Scalars['String'];
753
+
754
+ export type PagedResultFiltersArgs = {
755
+ ids?: Maybe<Array<Maybe<Scalars['String']>>>;
756
+ };
757
+
758
+ export type ProductSortOrder = {
759
+ __typename?: 'ProductSortOrder';
760
+ text: Scalars['String'];
761
+ value: ProductOrderOptions;
762
+ isDefault: Scalars['Boolean'];
763
+ defaultDirection: SortDirection;
862
764
  };
863
765
 
766
+ export enum ProductOrderOptions {
767
+ ArticleNumber = 'ARTICLE_NUMBER',
768
+ Name = 'NAME',
769
+ PublishDate = 'PUBLISH_DATE',
770
+ Price = 'PRICE',
771
+ SubHeading = 'SUB_HEADING',
772
+ Custom = 'CUSTOM',
773
+ Bestseller = 'BESTSELLER'
774
+ }
775
+
776
+ export enum SortDirection {
777
+ Ascending = 'ASCENDING',
778
+ Descending = 'DESCENDING'
779
+ }
780
+
781
+
864
782
  export type FilterInput = {
865
783
  listFilters?: Maybe<Array<Maybe<ListFilterInput>>>;
866
784
  rangeFilters?: Maybe<Array<Maybe<RangeFilterInput>>>;
@@ -868,28 +786,26 @@ export type FilterInput = {
868
786
  multiListFilters?: Maybe<Array<Maybe<MultiListFilterInput>>>;
869
787
  };
870
788
 
871
- export type FreeShippingLimit = {
872
- __typename?: 'FreeShippingLimit';
873
- incVat?: Maybe<Scalars['Decimal']>;
874
- exVat?: Maybe<Scalars['Decimal']>;
789
+ export type ListFilterInput = {
790
+ id: Scalars['String'];
791
+ values?: Maybe<Array<Maybe<Scalars['String']>>>;
875
792
  };
876
793
 
877
- export type GoogleAnalytics = {
878
- __typename?: 'GoogleAnalytics';
879
- trackingId?: Maybe<Scalars['String']>;
880
- useArticleNumberAsId?: Maybe<Scalars['Boolean']>;
794
+ export type RangeFilterInput = {
795
+ id: Scalars['String'];
796
+ min?: Maybe<Scalars['Decimal']>;
797
+ max?: Maybe<Scalars['Decimal']>;
881
798
  };
882
799
 
883
- export type GoogleAnalytics4 = {
884
- __typename?: 'GoogleAnalytics4';
885
- trackingId?: Maybe<Scalars['String']>;
886
- useArticleNumberAsId?: Maybe<Scalars['Boolean']>;
800
+ export type BooleanFilterInput = {
801
+ id: Scalars['String'];
802
+ /** null is equivalent to excluding the filter. */
803
+ value?: Maybe<Scalars['Boolean']>;
887
804
  };
888
805
 
889
- export type GoogleTagManager = {
890
- __typename?: 'GoogleTagManager';
891
- containerId?: Maybe<Scalars['String']>;
892
- useGa4Events?: Maybe<Scalars['Boolean']>;
806
+ export type MultiListFilterInput = {
807
+ id: Scalars['String'];
808
+ values?: Maybe<Array<Maybe<Scalars['String']>>>;
893
809
  };
894
810
 
895
811
  export type HtmlHead = {
@@ -904,60 +820,50 @@ export type HtmlMetaTag = {
904
820
  content?: Maybe<Scalars['String']>;
905
821
  };
906
822
 
907
- export type Image = {
908
- __typename?: 'Image';
909
- title?: Maybe<Scalars['String']>;
910
- url?: Maybe<Scalars['Uri']>;
911
- width?: Maybe<Scalars['Int']>;
912
- height?: Maybe<Scalars['Int']>;
913
- };
914
-
915
- export type ImageValue = {
916
- __typename?: 'ImageValue';
917
- value?: Maybe<Scalars['String']>;
918
- focalPointX?: Maybe<Scalars['Int']>;
919
- focalPointY?: Maybe<Scalars['Int']>;
920
- };
921
-
922
- export type InputComment = {
923
- name: Scalars['String'];
924
- value?: Maybe<Scalars['String']>;
925
- };
926
-
927
- export type Language = {
928
- __typename?: 'Language';
823
+ /** Represents a route to either a Category, a Product, a Page or the StartPage. */
824
+ export type Route = {
825
+ __typename?: 'Route';
929
826
  id: Scalars['String'];
930
- name: Scalars['String'];
931
- culture: Scalars['String'];
932
- isDefault?: Maybe<Scalars['Boolean']>;
827
+ path: Scalars['String'];
828
+ canonicalPath?: Maybe<Scalars['String']>;
829
+ slug: Scalars['String'];
830
+ /** The Category, Product, Page or StartPage that the Route resolves to. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
831
+ object?: Maybe<Document>;
832
+ /** Parents are resolved by traversing the path, starting from the end, and are guaranteed to be returned in that order. NB: Carries a performance cost, as asking for this will result in a different, slightly more expensive (the more categories a shop has, the more expensive this gets), route query in the backend. */
833
+ parents?: Maybe<Array<Maybe<Route>>>;
834
+ /** Alternative routes for this object, if it exists in another channel and/or in another language.NB: Carries no additional performance cost. */
835
+ alternateRoutes?: Maybe<Array<Maybe<AlternateRoute>>>;
836
+ /** N.B. for troubleshooting routes only! */
837
+ debug?: Maybe<Scalars['String']>;
838
+ /** Breadcrumb texts; starting with the root parent, ending on this route. */
839
+ breadcrumbs?: Maybe<Array<Maybe<Scalars['String']>>>;
933
840
  };
934
841
 
935
- export type Link = {
936
- __typename?: 'Link';
937
- target?: Maybe<Scalars['String']>;
938
- link?: Maybe<Scalars['Uri']>;
842
+ export type Document = {
843
+ head?: Maybe<HtmlHead>;
844
+ primaryRoute?: Maybe<Route>;
845
+ breadcrumbText?: Maybe<Scalars['String']>;
939
846
  };
940
847
 
941
- export type ListFilter = Filter & {
942
- __typename?: 'ListFilter';
943
- items: Array<Maybe<ListFilterItem>>;
944
- id: Scalars['String'];
945
- name: Scalars['String'];
946
- hasActiveItems: Scalars['Boolean'];
848
+ export type AlternateRoute = {
849
+ __typename?: 'AlternateRoute';
850
+ channelId?: Maybe<Scalars['Int']>;
851
+ culture?: Maybe<Scalars['String']>;
852
+ route?: Maybe<Scalars['String']>;
853
+ alias?: Maybe<Scalars['String']>;
947
854
  };
948
855
 
949
- export type ListFilterInput = {
950
- id: Scalars['String'];
951
- values?: Maybe<Array<Maybe<Scalars['String']>>>;
856
+ export type CategoryDynamicFilter = {
857
+ __typename?: 'CategoryDynamicFilter';
858
+ type?: Maybe<Scalars['String']>;
859
+ value?: Maybe<CategoryDynamicFilterValue>;
952
860
  };
953
861
 
954
- export type ListFilterItem = {
955
- __typename?: 'ListFilterItem';
956
- text: Scalars['String'];
957
- id: Scalars['String'];
958
- value: Scalars['String'];
959
- resultCount?: Maybe<Scalars['Int']>;
960
- isActive?: Maybe<Scalars['Boolean']>;
862
+ export type CategoryDynamicFilterValue = StringValue | ListStringValue | BoolValue;
863
+
864
+ export type StringValue = {
865
+ __typename?: 'StringValue';
866
+ value?: Maybe<Scalars['String']>;
961
867
  };
962
868
 
963
869
  export type ListStringValue = {
@@ -965,470 +871,463 @@ export type ListStringValue = {
965
871
  value?: Maybe<Array<Maybe<Scalars['String']>>>;
966
872
  };
967
873
 
968
- export type LoginExternalCustomerInput = {
969
- externalCustomerToken: Scalars['String'];
874
+ export type BoolValue = {
875
+ __typename?: 'BoolValue';
876
+ value?: Maybe<Scalars['Boolean']>;
970
877
  };
971
878
 
972
- export type LoginExternalCustomerResult = {
973
- __typename?: 'LoginExternalCustomerResult';
974
- token?: Maybe<Token>;
879
+ export type Content = {
880
+ __typename?: 'Content';
881
+ name?: Maybe<Scalars['String']>;
882
+ id: Scalars['ID'];
883
+ items?: Maybe<Array<Maybe<ContentItem>>>;
884
+ tags?: Maybe<Array<Maybe<Scalars['String']>>>;
975
885
  };
976
886
 
977
- /** The response will contain a authorization token if the login was successful */
978
- export type LoginResponse = {
979
- __typename?: 'LoginResponse';
980
- token: Token;
981
- customerId?: Maybe<Scalars['Int']>;
982
- };
887
+ export type ContentItem = {
888
+ __typename?: 'ContentItem';
889
+ name?: Maybe<Scalars['String']>;
890
+ type: Scalars['String'];
891
+ properties?: Maybe<Array<Maybe<ContentItemProperty>>>;
892
+ children?: Maybe<Array<Maybe<ContentItem>>>;
893
+ };
983
894
 
984
- export type MaskedProperty = {
985
- __typename?: 'MaskedProperty';
986
- masked?: Maybe<Scalars['String']>;
987
- encrypted?: Maybe<Scalars['String']>;
895
+
896
+ export type ContentItemPropertiesArgs = {
897
+ getImageAsImageValue?: Maybe<Scalars['Boolean']>;
988
898
  };
989
899
 
990
- export type MultiListFilter = Filter & {
991
- __typename?: 'MultiListFilter';
992
- lists: Array<Maybe<MultiListFilterList>>;
993
- id: Scalars['String'];
900
+ export type ContentItemProperty = {
901
+ __typename?: 'ContentItemProperty';
994
902
  name: Scalars['String'];
995
- isActive: Scalars['Boolean'];
903
+ type: Scalars['String'];
904
+ valueType?: Maybe<ContentPropertyValueType>;
905
+ value?: Maybe<ContentItemPropertyValue>;
996
906
  };
997
907
 
998
- export type MultiListFilterInput = {
999
- id: Scalars['String'];
1000
- values?: Maybe<Array<Maybe<Scalars['String']>>>;
908
+ export enum ContentPropertyValueType {
909
+ Object = 'OBJECT',
910
+ Scalar = 'SCALAR'
911
+ }
912
+
913
+ export type ContentItemPropertyValue = StringValue | ImageValue | BoolValue | Product | Category;
914
+
915
+ export type ImageValue = {
916
+ __typename?: 'ImageValue';
917
+ value?: Maybe<Scalars['String']>;
918
+ focalPointX?: Maybe<Scalars['Int']>;
919
+ focalPointY?: Maybe<Scalars['Int']>;
1001
920
  };
1002
921
 
1003
- export type MultiListFilterList = {
1004
- __typename?: 'MultiListFilterList';
1005
- id: Scalars['String'];
1006
- name: Scalars['String'];
1007
- items: Array<Maybe<ListFilterItem>>;
1008
- hasActiveItems: Scalars['Boolean'];
922
+ export type ProductVariants = {
923
+ __typename?: 'ProductVariants';
924
+ /** Available product variant options. */
925
+ options: Array<Maybe<ProductVariantOption>>;
926
+ /** Product variants, contains all possible values of options. */
927
+ values: Array<Maybe<ProductVariant>>;
1009
928
  };
1010
929
 
1011
- export type MultipleContent = {
1012
- __typename?: 'MultipleContent';
1013
- notFoundIds: Array<Maybe<Scalars['ID']>>;
1014
- content: Array<Maybe<Content>>;
930
+ export type ProductVariantOption = {
931
+ __typename?: 'ProductVariantOption';
932
+ name?: Maybe<Scalars['String']>;
933
+ values: Array<Maybe<Scalars['String']>>;
1015
934
  };
1016
935
 
1017
- export type Mutation = {
1018
- __typename?: 'Mutation';
1019
- subscribeToStockNotifications?: Maybe<Scalars['Boolean']>;
1020
- /**
1021
- * This mutation's purpose is to subscribe a customer to a newsletter. In order
1022
- * to subscribe a customer a valid email address is required
1023
- *
1024
- * Responds with a boolean value whether the subscription has been successful or not
1025
- */
1026
- subscribeToNewsletter?: Maybe<Scalars['Boolean']>;
1027
- /**
1028
- * ## Description
1029
- * Adds items to product list, null id adds items to the default product list.
1030
- * ## Error Codes
1031
- * ### Unauthorized
1032
- * Unauthorized
1033
- * ### AddToProductListFailed
1034
- * Error in underlying API call, more info may be contained in the error message.
1035
- * ### InvalidArticleNumber
1036
- * Article number cannot be empty
1037
- * ### ProductNotFound
1038
- * No match on article number
1039
- * ### MoreThanOneMatchOnArticleNumber
1040
- * Article number matched more than one article
1041
- */
1042
- addToCustomerProductList?: Maybe<CustomerProductListResult>;
1043
- /**
1044
- * ## Description
1045
- * Creates a product list for a logged in customer
1046
- * ## Error Codes
1047
- * ### Unauthorized
1048
- *
1049
- * ### UnableToCreateProductList
1050
- * Error in underlying API call, more info may be contained in the error message.
1051
- */
1052
- createCustomerProductList?: Maybe<CustomerProductListResult>;
1053
- /**
1054
- * ## Description
1055
- * Deletes a product list for a logged in customer
1056
- * ## Error Codes
1057
- * ### Unauthorized
1058
- *
1059
- * ### ProductListNotFound
1060
- * Argument `id` did not match any list for this customer.
1061
- * ### UnableToDeleteProductList
1062
- * Error in underlying API call, more info may be contained in the error message.
1063
- */
1064
- deleteCustomerProductList?: Maybe<DeleteCustomerProductListResult>;
1065
- /**
1066
- * ## Description
1067
- * Removes an item from a product list for a logged in customer, null id removes item in the default product list.
1068
- * ## Error Codes
1069
- * ### Unauthorized
1070
- *
1071
- * ### ProductListNotFound
1072
- * Argument `id` did not match any list for this customer.
1073
- * ### RemoveFromProductListFailed
1074
- * Error in underlying API call, more info may be contained in the error message.
1075
- * ### ProductNotFound
1076
- * Argument `articleNumbers` did not match any products or variants.
1077
- * ### MoreThanOneMatchOnArticleNumber
1078
- * Argument `articleNumbers` matched more than one product/variant.
1079
- * ### InvalidArticleNumber
1080
- * Argument `articleNumbers` cannot be null or empty.
1081
- */
1082
- removeFromCustomerProductList?: Maybe<CustomerProductListResult>;
1083
- /**
1084
- * ## Description
1085
- * Updates an item in product list, null id updates item in the default product list.
1086
- * ## Error Codes
1087
- * ### Unauthorized
1088
- *
1089
- * ### ProductListNotFound
1090
- * Argument `id` did not match any list for this customer.
1091
- * ### UnableToUpdateProductListItem
1092
- * Error in underlying API call, more info may be contained in the error message.
1093
- * ### ProductNotFound
1094
- * Argument `articleNumber` did not match any products or variants.
1095
- * ### MoreThanOneMatchOnArticleNumber
1096
- * Argument `articleNumber` matched more than one product/variant.
1097
- * ### InvalidArticleNumber
1098
- * Argument `articleNumber` cannot be null or empty.
1099
- */
1100
- updateCustomerProductListItem?: Maybe<CustomerProductListResult>;
1101
- /**
1102
- * ## Description
1103
- * Updates a product list for a logged in customer
1104
- * ## Error Codes
1105
- * ### Unauthorized
1106
- *
1107
- * ### ProductListNotFound
1108
- * Argument `id` did not match any list for this customer.
1109
- * ### UnableToUpdateProductList
1110
- * Error in underlying API call, more info may be contained in the error message.
1111
- */
1112
- updateCustomerProductList?: Maybe<CustomerProductListResult>;
1113
- /**
1114
- * Error codes: CustomerNotFound, CustomerAlreadyActivated,
1115
- * UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput
1116
- */
1117
- activateExternalCustomerById?: Maybe<ActivateExternalCustomerByIdResult>;
1118
- /**
1119
- * Error codes: CustomerNotFound, CustomerAlreadyActivated,
1120
- * UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput
1121
- */
1122
- activateExternalCustomerByToken?: Maybe<ActivateExternalCustomerByTokenResult>;
1123
- /**
1124
- * This mutation deletes a customer. An authorization token is needed in the
1125
- * request, in order to be able to delete the customer.
1126
- */
1127
- deleteCustomer?: Maybe<Scalars['Boolean']>;
1128
- loginExternalCustomer?: Maybe<LoginExternalCustomerResult>;
1129
- /**
1130
- * LoginMutation will log a user in.
1131
- * One of email, pid, externalId, memberNumber or customerId is required, along with a password.
1132
- * Returns an authorization token if the login was successful.
1133
- */
1134
- login?: Maybe<LoginResponse>;
1135
- /** Requires a valid email and returns boolean value if successful, otherwise an error will be thrown */
1136
- requestPasswordReset?: Maybe<RequestPasswordResetResult>;
1137
- /** Requires a valid resetPasswordToken and a new password and if successful will return a authentication token */
1138
- resetPassword?: Maybe<ResetPassword>;
1139
- /**
1140
- * The SignUp-mutation is used for creating a customer.
1141
- *
1142
- * If the sign up is successful the customer may be considered to be logged on and an authentication token will be returned
1143
- */
1144
- signUp?: Maybe<SignUpResponse>;
1145
- /**
1146
- * ## Description
1147
- * This mutation's purpose is to update a existing customer's group using an
1148
- * access code. An authorization token is needed in the request, in order to be
1149
- * able to update the customer.
1150
- * ## Error Codes
1151
- * ### Unauthorized
1152
- * Unauthorized
1153
- * ### UnableToUpdateCustomer
1154
- * Error in underlying API call, more info may be contained in the error message.
1155
- * ### CustomerAlreadyUpdated
1156
- * Customer already in the customer group
1157
- * ### CustomerNotFound
1158
- * No match on customer with access code
1159
- */
1160
- updateCustomerGroup?: Maybe<UpdateCustomerGroupResult>;
1161
- /**
1162
- * This mutation's purpose is to update an existing customer's information. An
1163
- * authorization token is needed in the request, in order to be able to update the customer.
1164
- */
1165
- updateCustomer?: Maybe<CustomerUpdateResponse>;
1166
- /**
1167
- * This mutation's purpose is to update a existing customer's price list using an
1168
- * access code. An authorization token is needed in the request, in order to be
1169
- * able to update the customer.
1170
- */
1171
- updateCustomerPriceList?: Maybe<UpdateCustomerPriceListResult>;
1172
- /** The updatePassword mutation updates the customers password. Both the old password and a new password is a requirement. */
1173
- updatePassword?: Maybe<UpdatePasswordResult>;
1174
- /**
1175
- * Adds products to the cart where you can add comments to the products and
1176
- * determine their quantities. Replies with the affected cart if a cartId has
1177
- * been presented, otherwise a new cart will be created.
1178
- */
1179
- addMultipleToCart?: Maybe<CartMutation>;
1180
- /**
1181
- * Adds a product to the cart where you can add a comment to the product and
1182
- * determine the quantity. Replies with the affected cart if a cartId has been
1183
- * presented, otherwise a new cart will be created.
1184
- */
1185
- addToCart?: Maybe<CartMutation>;
936
+ export type ProductVariant = {
937
+ __typename?: 'ProductVariant';
938
+ id: Scalars['String'];
939
+ articleNumber: Scalars['String'];
940
+ /** Variant values (combination of option values) */
941
+ values: Array<Maybe<Scalars['String']>>;
1186
942
  /**
1187
- * This mutation is used to reduce the quantity of a product in the cart, replies
1188
- * with the affected cart ruled by the cartId in the input.
943
+ * The current price.
944
+ * - Will be a Customer specific price if that Customer has a separate price list.
945
+ * - Will be the member price if Customer is logged in and `Product.hasMemberPrice` is true.
946
+ * - Will be the non-member price if Customer is not logged in and `Product.hasMemberPrice` is true.
1189
947
  */
1190
- decrementItemQuantity?: Maybe<CartMutation>;
1191
- /** Used to add a specific quantity to a product in the cart. Replies with the affected cart ruled by the cartId in the input */
1192
- setItemQuantity?: Maybe<CartMutation>;
948
+ price?: Maybe<Price>;
949
+ /** The previous price (i.e. this will be higher than `price` if the product is discounted). Will be a Customer specific previous price, if that Customer has a separate price list. */
950
+ previousPrice?: Maybe<Price>;
951
+ /** Default price for the product in the channel, disregards Customer specific prices. */
952
+ defaultPrice?: Maybe<Price>;
953
+ /** Default previous price for the product in the channel, disregards Customer specific prices. */
954
+ defaultPreviousPrice?: Maybe<Price>;
955
+ /** Not in use. Always null. */
956
+ recommendedPrice?: Maybe<Price>;
957
+ /** The time interval of the discounted price. */
958
+ priceDateSpan?: Maybe<ProductPriceDateSpan>;
1193
959
  /**
1194
- * This mutation is used to increase the quantity of a product in the cart,
1195
- * replies with the affected cart ruled by the cartId in the input
960
+ * The price a Customer would get if member prices are active and the Customer is logged in.
961
+ * - Will be null if `Product.hasMemberPrice` is false.
962
+ * - Will be set if `Product.hasMemberPrice` is true.
1196
963
  */
1197
- incrementItemQuantity?: Maybe<CartMutation>;
1198
- /** Removes a specific product in the cart, replies with the affected cart */
1199
- removeFromCart?: Maybe<CartMutation>;
1200
- /** Removes specific items from the cart, replies with the affected cart */
1201
- removeMultipleFromCart?: Maybe<CartMutation>;
1202
- /** Responds with the affected cart. */
1203
- updateCart?: Maybe<UpdateCartMutation>;
1204
- toggleListFilterItem?: Maybe<ListFilter>;
1205
- clearListFilter?: Maybe<ListFilter>;
1206
- clearAllFilters?: Maybe<Scalars['Boolean']>;
1207
- setBoolFilter?: Maybe<BooleanFilter>;
1208
- setRangeFilter?: Maybe<NumericRangeFilter>;
1209
- clearRangeFilter?: Maybe<NumericRangeFilter>;
1210
- toggleMultiListFilterItem?: Maybe<MultiListFilter>;
1211
- setMultiListFilter?: Maybe<MultiListFilter>;
1212
- clearMultiListFilter?: Maybe<MultiListFilter>;
1213
- clearMultiListFilterList?: Maybe<MultiListFilter>;
964
+ memberPrice?: Maybe<Price>;
965
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
966
+ stockStatus?: Maybe<StockStatus>;
967
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
968
+ warehouseStock?: Maybe<Array<Maybe<Warehouse>>>;
969
+ images?: Maybe<Array<Maybe<ProductImage>>>;
970
+ barcode?: Maybe<Scalars['String']>;
971
+ /** Get Product History within the set number of days */
972
+ history?: Maybe<ProductVariantHistory>;
1214
973
  };
1215
974
 
1216
975
 
1217
- export type MutationSubscribeToStockNotificationsArgs = {
1218
- email: Scalars['String'];
1219
- articleNumber: Scalars['String'];
976
+ export type ProductVariantWarehouseStockArgs = {
977
+ includeInactive?: Maybe<Scalars['Boolean']>;
1220
978
  };
1221
979
 
1222
980
 
1223
- export type MutationSubscribeToNewsletterArgs = {
1224
- email: Scalars['String'];
981
+ export type ProductVariantHistoryArgs = {
982
+ days?: Maybe<Scalars['Int']>;
983
+ };
984
+
985
+ export type ProductPriceDateSpan = {
986
+ __typename?: 'ProductPriceDateSpan';
987
+ startDate?: Maybe<Scalars['DateTime']>;
988
+ endDate?: Maybe<Scalars['DateTime']>;
989
+ };
990
+
991
+ export type StockStatus = {
992
+ __typename?: 'StockStatus';
993
+ /** Globally unique id. */
994
+ id: Scalars['ID'];
995
+ /** The stock status id, not globally unique. */
996
+ stockStatusId: Scalars['ID'];
997
+ text?: Maybe<Scalars['String']>;
998
+ buyable: Scalars['Boolean'];
999
+ stockNotificationEnabled?: Maybe<Scalars['Boolean']>;
1000
+ stockDate?: Maybe<Scalars['DateTime']>;
1001
+ maxOrderQuantity?: Maybe<Scalars['Int']>;
1225
1002
  };
1226
1003
 
1227
-
1228
- export type MutationAddToCustomerProductListArgs = {
1229
- id?: Maybe<Scalars['ID']>;
1230
- items: Array<AddToCustomerProductListInput>;
1004
+ export type Warehouse = {
1005
+ __typename?: 'Warehouse';
1006
+ stockLevel?: Maybe<Scalars['Int']>;
1007
+ location?: Maybe<Store>;
1231
1008
  };
1232
1009
 
1233
-
1234
- export type MutationCreateCustomerProductListArgs = {
1235
- input: CreateCustomerProductListInput;
1010
+ export type ProductImage = {
1011
+ __typename?: 'ProductImage';
1012
+ /** Alternate text for the image, commonly used for the alt attribute of img-tags. */
1013
+ alt?: Maybe<Scalars['String']>;
1014
+ /** Extra information, commonly used for the title attribute of img-tag. Should be shown on hover. */
1015
+ title?: Maybe<Scalars['String']>;
1016
+ /** @deprecated Images will no longer be offered in different sizes. Instead use 'url' in conjunction with our image resizing service. */
1017
+ sizes: Array<Maybe<ProductImageSize>>;
1018
+ url?: Maybe<Scalars['Uri']>;
1019
+ modifiedDate?: Maybe<Scalars['String']>;
1236
1020
  };
1237
1021
 
1238
-
1239
- export type MutationDeleteCustomerProductListArgs = {
1240
- id: Scalars['ID'];
1022
+ export type ProductImageSize = {
1023
+ __typename?: 'ProductImageSize';
1024
+ width?: Maybe<Scalars['Int']>;
1025
+ height?: Maybe<Scalars['Int']>;
1026
+ url?: Maybe<Scalars['Uri']>;
1241
1027
  };
1242
1028
 
1243
-
1244
- export type MutationRemoveFromCustomerProductListArgs = {
1245
- id?: Maybe<Scalars['ID']>;
1246
- articleNumbers?: Maybe<Array<Scalars['String']>>;
1029
+ export type ProductVariantHistory = {
1030
+ __typename?: 'ProductVariantHistory';
1031
+ previousPrice?: Maybe<Array<Maybe<PriceHistory>>>;
1247
1032
  };
1248
1033
 
1249
-
1250
- export type MutationUpdateCustomerProductListItemArgs = {
1251
- input: UpdateCustomerProductListItemInput;
1034
+ export type PriceHistory = {
1035
+ __typename?: 'PriceHistory';
1036
+ timestamp?: Maybe<Scalars['DateTime']>;
1037
+ price?: Maybe<Price>;
1252
1038
  };
1253
1039
 
1254
-
1255
- export type MutationUpdateCustomerProductListArgs = {
1256
- input: UpdateCustomerProductListInput;
1040
+ export type ProductBadge = {
1041
+ __typename?: 'ProductBadge';
1042
+ name?: Maybe<Scalars['String']>;
1043
+ url?: Maybe<Scalars['Uri']>;
1044
+ location?: Maybe<ProductBadgeLocation>;
1045
+ style?: Maybe<Scalars['String']>;
1046
+ text?: Maybe<Scalars['String']>;
1257
1047
  };
1258
1048
 
1049
+ export enum ProductBadgeLocation {
1050
+ Custom = 'CUSTOM',
1051
+ TopLeft = 'TOP_LEFT',
1052
+ TopRight = 'TOP_RIGHT',
1053
+ BottomLeft = 'BOTTOM_LEFT',
1054
+ BottomRight = 'BOTTOM_RIGHT'
1055
+ }
1259
1056
 
1260
- export type MutationActivateExternalCustomerByIdArgs = {
1261
- input?: Maybe<ActivateExternalCustomerByIdInput>;
1057
+ export type ProductComment = {
1058
+ __typename?: 'ProductComment';
1059
+ name: Scalars['String'];
1060
+ required: Scalars['Boolean'];
1262
1061
  };
1263
1062
 
1264
-
1265
- export type MutationActivateExternalCustomerByTokenArgs = {
1266
- input?: Maybe<ActivateExternalCustomerByTokenInput>;
1063
+ export type RecommendedProducts = {
1064
+ __typename?: 'RecommendedProducts';
1065
+ /** Customers who bought this product also bought these products. */
1066
+ bought?: Maybe<Array<Maybe<Product>>>;
1067
+ /** Customers who viewed this product also viewed these products. */
1068
+ viewed?: Maybe<Array<Maybe<Product>>>;
1069
+ /** A shuffled top list of popular products. */
1070
+ shuffledToplist?: Maybe<Array<Maybe<Product>>>;
1267
1071
  };
1268
1072
 
1269
1073
 
1270
- export type MutationLoginExternalCustomerArgs = {
1271
- input?: Maybe<LoginExternalCustomerInput>;
1074
+ export type RecommendedProductsBoughtArgs = {
1075
+ count?: Maybe<Scalars['Int']>;
1272
1076
  };
1273
1077
 
1274
1078
 
1275
- export type MutationLoginArgs = {
1276
- password?: Maybe<Scalars['String']>;
1277
- email?: Maybe<Scalars['String']>;
1278
- pid?: Maybe<Scalars['String']>;
1279
- externalId?: Maybe<Scalars['String']>;
1280
- memberNumber?: Maybe<Scalars['String']>;
1281
- externalHashId?: Maybe<Scalars['String']>;
1282
- timeStamp?: Maybe<Scalars['String']>;
1283
- customerId?: Maybe<Scalars['Int']>;
1284
- cartId?: Maybe<Scalars['String']>;
1079
+ export type RecommendedProductsViewedArgs = {
1080
+ count?: Maybe<Scalars['Int']>;
1285
1081
  };
1286
1082
 
1287
1083
 
1288
- export type MutationRequestPasswordResetArgs = {
1289
- email: Scalars['String'];
1084
+ export type RecommendedProductsShuffledToplistArgs = {
1085
+ count?: Maybe<Scalars['Int']>;
1290
1086
  };
1291
1087
 
1292
-
1293
- export type MutationResetPasswordArgs = {
1294
- resetPasswordToken: Scalars['String'];
1295
- newPassword: Scalars['String'];
1088
+ export type ProductConfiguration = {
1089
+ __typename?: 'ProductConfiguration';
1090
+ name?: Maybe<Scalars['String']>;
1091
+ options: Array<Maybe<ProductConfigurationOption>>;
1296
1092
  };
1297
1093
 
1298
-
1299
- export type MutationSignUpArgs = {
1300
- input: SignUpInput;
1094
+ /**
1095
+ * Options by which you can configure a product.
1096
+ *
1097
+ * For instance, if you're selling rope the available options might be the dimensions; 10mm, 20mm, 30mm, etc.
1098
+ *
1099
+ * Price is either used as is, or if the configuration is using a price calculation (e.g. the rope is priced by length) it will be used in the calculation formula; e.g. (Length * Price).
1100
+ */
1101
+ export type ProductConfigurationOption = {
1102
+ __typename?: 'ProductConfigurationOption';
1103
+ id: Scalars['ID'];
1104
+ name?: Maybe<Scalars['String']>;
1105
+ price?: Maybe<Price>;
1106
+ /** This will be set if the configuration requires price calculation, e.g. you might sell rope and price it by length. */
1107
+ priceCalculation?: Maybe<ProductConfigurationPriceCalculation>;
1301
1108
  };
1302
1109
 
1303
-
1304
- export type MutationUpdateCustomerGroupArgs = {
1305
- customerGroupAccessCode: Scalars['String'];
1110
+ /**
1111
+ * Describes how the price is calculated on a configuration option.
1112
+ *
1113
+ * E.g. the configuration is for a carpet and it has a price calculation formula that reads: 'Width * Length * Price / 10000'.
1114
+ *
1115
+ * In this case, the variables would contain 'Width' and 'Length' whereas the 'Price' is taken from the selected option.
1116
+ */
1117
+ export type ProductConfigurationPriceCalculation = {
1118
+ __typename?: 'ProductConfigurationPriceCalculation';
1119
+ id: Scalars['ID'];
1120
+ name?: Maybe<Scalars['String']>;
1121
+ formula?: Maybe<Scalars['String']>;
1122
+ variables?: Maybe<Array<Maybe<ProductConfigurationPriceCalculationVariable>>>;
1306
1123
  };
1307
1124
 
1308
-
1309
- export type MutationUpdateCustomerArgs = {
1310
- input: CustomerUpdateInput;
1125
+ export type ProductConfigurationPriceCalculationVariable = {
1126
+ __typename?: 'ProductConfigurationPriceCalculationVariable';
1127
+ id: Scalars['ID'];
1128
+ name?: Maybe<Scalars['String']>;
1311
1129
  };
1312
1130
 
1313
-
1314
- export type MutationUpdateCustomerPriceListArgs = {
1315
- priceListAccessCode: Scalars['String'];
1131
+ export type ProductConfigurationPrice = {
1132
+ __typename?: 'ProductConfigurationPrice';
1133
+ price?: Maybe<Price>;
1134
+ previousPrice?: Maybe<Price>;
1316
1135
  };
1317
1136
 
1318
-
1319
- export type MutationUpdatePasswordArgs = {
1320
- oldPassword: Scalars['String'];
1321
- newPassword: Scalars['String'];
1137
+ export type ProductConfigurationPriceInput = {
1138
+ optionId: Scalars['ID'];
1322
1139
  };
1323
1140
 
1324
-
1325
- export type MutationAddMultipleToCartArgs = {
1326
- cartId?: Maybe<Scalars['String']>;
1327
- items: Array<Maybe<AddMultipleToCartInput>>;
1141
+ export type ProductPreOrder = {
1142
+ __typename?: 'ProductPreOrder';
1143
+ fromDate?: Maybe<Scalars['DateTime']>;
1144
+ toDate?: Maybe<Scalars['DateTime']>;
1328
1145
  };
1329
1146
 
1330
-
1331
- export type MutationAddToCartArgs = {
1332
- input: AddToCartInput;
1147
+ export type Package = {
1148
+ __typename?: 'Package';
1149
+ id: Scalars['ID'];
1150
+ items: Array<PackageItem>;
1151
+ /** The current package price with any potential discount */
1152
+ price?: Maybe<Price>;
1153
+ /** The previous package price without any potential discount */
1154
+ previousPrice?: Maybe<Price>;
1155
+ /** Total package discount amount */
1156
+ discountValue?: Maybe<Price>;
1157
+ /** Total package discount in percentage */
1158
+ discountPercentage?: Maybe<Scalars['Decimal']>;
1333
1159
  };
1334
1160
 
1335
-
1336
- export type MutationDecrementItemQuantityArgs = {
1337
- input: ChangeByOneItemQuantityInput;
1161
+ export type PackageItem = {
1162
+ __typename?: 'PackageItem';
1163
+ product?: Maybe<Product>;
1164
+ minQuantity: Scalars['Int'];
1165
+ discount?: Maybe<PackageDiscount>;
1166
+ /** The current package price with any potential discount */
1167
+ price?: Maybe<Price>;
1168
+ /** The previous package price without any potential discount */
1169
+ previousPrice?: Maybe<Price>;
1338
1170
  };
1339
1171
 
1172
+ export type PackageDiscount = PackageDiscountPercentage | PackageDiscountValue;
1340
1173
 
1341
- export type MutationSetItemQuantityArgs = {
1342
- input: SetItemQuantityInput;
1174
+ export type PackageDiscountPercentage = {
1175
+ __typename?: 'PackageDiscountPercentage';
1176
+ percentage: Scalars['Decimal'];
1343
1177
  };
1344
1178
 
1179
+ export type PackageDiscountValue = {
1180
+ __typename?: 'PackageDiscountValue';
1181
+ valueIncVat: Scalars['Decimal'];
1182
+ valueExVat: Scalars['Decimal'];
1183
+ valueVat: Scalars['Decimal'];
1184
+ };
1345
1185
 
1346
- export type MutationIncrementItemQuantityArgs = {
1347
- input: ChangeByOneItemQuantityInput;
1186
+ export type PackagePriceInput = {
1187
+ product: Scalars['ID'];
1188
+ variant?: Maybe<Scalars['ID']>;
1348
1189
  };
1349
1190
 
1191
+ export type Upsell = {
1192
+ __typename?: 'Upsell';
1193
+ id: Scalars['ID'];
1194
+ items: Array<UpsellItem>;
1195
+ };
1350
1196
 
1351
- export type MutationRemoveFromCartArgs = {
1352
- input: RemoveFromCartInput;
1197
+ export type UpsellItem = {
1198
+ __typename?: 'UpsellItem';
1199
+ product?: Maybe<Product>;
1200
+ minQuantity: Scalars['Int'];
1201
+ discount: UpsellDiscount;
1353
1202
  };
1354
1203
 
1204
+ export type UpsellDiscount = UpsellDiscountPercentage | UpsellDiscountValue;
1355
1205
 
1356
- export type MutationRemoveMultipleFromCartArgs = {
1357
- input: RemoveMultipleFromCartInput;
1206
+ export type UpsellDiscountPercentage = {
1207
+ __typename?: 'UpsellDiscountPercentage';
1208
+ percentage: Scalars['Decimal'];
1358
1209
  };
1359
1210
 
1211
+ export type UpsellDiscountValue = {
1212
+ __typename?: 'UpsellDiscountValue';
1213
+ valueIncVat: Scalars['Decimal'];
1214
+ valueExVat: Scalars['Decimal'];
1215
+ valueVat: Scalars['Decimal'];
1216
+ };
1360
1217
 
1361
- export type MutationUpdateCartArgs = {
1362
- input: UpdateCartInput;
1218
+ export type ProductHistory = {
1219
+ __typename?: 'ProductHistory';
1220
+ previousPrice?: Maybe<Array<Maybe<PriceHistory>>>;
1363
1221
  };
1364
1222
 
1223
+ export type CustomItem = {
1224
+ __typename?: 'CustomItem';
1225
+ id: Scalars['Int'];
1226
+ name: Scalars['String'];
1227
+ content?: Maybe<Scalars['String']>;
1228
+ linkUrl?: Maybe<Scalars['Uri']>;
1229
+ image?: Maybe<Image>;
1230
+ };
1365
1231
 
1366
- export type MutationToggleListFilterItemArgs = {
1367
- value: Scalars['String'];
1368
- parentId: Scalars['String'];
1369
- set?: Maybe<Scalars['Boolean']>;
1232
+ export type SearchAutoCompleteResult = {
1233
+ __typename?: 'SearchAutoCompleteResult';
1234
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1235
+ products?: Maybe<ProductAutoCompleteResult>;
1236
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1237
+ categories?: Maybe<CategoryAutoCompleteResult>;
1370
1238
  };
1371
1239
 
1372
1240
 
1373
- export type MutationClearListFilterArgs = {
1374
- id: Scalars['String'];
1241
+ export type SearchAutoCompleteResultCategoriesArgs = {
1242
+ first?: Maybe<Scalars['Paging']>;
1375
1243
  };
1376
1244
 
1377
-
1378
- export type MutationSetBoolFilterArgs = {
1379
- value: Scalars['Boolean'];
1380
- id: Scalars['String'];
1245
+ export type ProductAutoCompleteResult = {
1246
+ __typename?: 'ProductAutoCompleteResult';
1247
+ result: Array<Maybe<Product>>;
1381
1248
  };
1382
1249
 
1383
-
1384
- export type MutationSetRangeFilterArgs = {
1385
- value: Array<Scalars['Decimal']>;
1386
- id: Scalars['String'];
1250
+ export type CategoryAutoCompleteResult = {
1251
+ __typename?: 'CategoryAutoCompleteResult';
1252
+ result?: Maybe<Array<Maybe<Category>>>;
1387
1253
  };
1388
1254
 
1389
-
1390
- export type MutationClearRangeFilterArgs = {
1391
- id: Scalars['String'];
1255
+ export type SearchResult = {
1256
+ __typename?: 'SearchResult';
1257
+ products?: Maybe<ProductSearchResult>;
1258
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1259
+ categories?: Maybe<CategorySearchResult>;
1392
1260
  };
1393
1261
 
1394
1262
 
1395
- export type MutationToggleMultiListFilterItemArgs = {
1396
- value: Scalars['String'];
1397
- listIndex: Scalars['Int'];
1398
- filter: MultiListFilter;
1263
+ export type SearchResultProductsArgs = {
1264
+ paging?: Maybe<PagingInput>;
1265
+ filters?: Maybe<FilterInput>;
1399
1266
  };
1400
1267
 
1401
1268
 
1402
- export type MutationSetMultiListFilterArgs = {
1403
- values?: Maybe<Array<Scalars['String']>>;
1404
- id: Scalars['String'];
1269
+ export type SearchResultCategoriesArgs = {
1270
+ paging?: Maybe<PagingInput>;
1405
1271
  };
1406
1272
 
1273
+ export type ProductSearchResult = {
1274
+ __typename?: 'ProductSearchResult';
1275
+ result: Array<Maybe<Product>>;
1276
+ filters?: Maybe<Array<Maybe<Filter>>>;
1277
+ totalResults?: Maybe<Scalars['Int']>;
1278
+ };
1407
1279
 
1408
- export type MutationClearMultiListFilterArgs = {
1409
- id: Scalars['String'];
1280
+ export type PagingInput = {
1281
+ first?: Maybe<Scalars['Paging']>;
1282
+ offset?: Maybe<Scalars['Int']>;
1410
1283
  };
1411
1284
 
1285
+ export type CategorySearchResult = {
1286
+ __typename?: 'CategorySearchResult';
1287
+ result?: Maybe<Array<Maybe<Category>>>;
1288
+ totalResults?: Maybe<Scalars['Int']>;
1289
+ };
1412
1290
 
1413
- export type MutationClearMultiListFilterListArgs = {
1414
- listIndex: Scalars['Int'];
1415
- filter: MultiListFilter;
1291
+ export type Page = Document & {
1292
+ __typename?: 'Page';
1293
+ id: Scalars['ID'];
1294
+ name: Scalars['String'];
1295
+ mainHeader?: Maybe<Scalars['String']>;
1296
+ content?: Maybe<Scalars['String']>;
1297
+ hasExternalUrl?: Maybe<Scalars['Boolean']>;
1298
+ /** External URL if page is set to URL, null if not. */
1299
+ externalUrl?: Maybe<Link>;
1300
+ images?: Maybe<Array<Maybe<Image>>>;
1301
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1302
+ head?: Maybe<HtmlHead>;
1303
+ /** The primary route of this Page. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1304
+ primaryRoute?: Maybe<Route>;
1305
+ breadcrumbText?: Maybe<Scalars['String']>;
1306
+ /** Get content data set via the Content Editor. NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1307
+ data?: Maybe<Content>;
1308
+ /**
1309
+ * * If this page was fetched by ID using the `page(id)` query, `parent` will be returned even if it is hidden.
1310
+ * * If this page was fetched using the `pages` query, `parent` will not be returned if it is hidden
1311
+ */
1312
+ parent?: Maybe<Page>;
1313
+ /**
1314
+ * * If this page was fetched by ID using the `page(id)` query, `subPages` will be returned even if they are hidden. This can be overridden with the `includeHidden` flag.
1315
+ * * If this page was fetched using the `pages` query, `subPages` will not be returned if they are hidden. The `includeHidden` flag has no effect on this.
1316
+ */
1317
+ subPages?: Maybe<Array<Page>>;
1318
+ /** When set to false, the page will be excluded from sitemap. The frontend implementation should use this value to set meta tags to exclude the page from being indexed by crawlers. Defaults to true. */
1319
+ allowWebIndexing?: Maybe<Scalars['Boolean']>;
1416
1320
  };
1417
1321
 
1418
- export type MyPagesContent = {
1419
- __typename?: 'MyPagesContent';
1420
- /** Text that will show on the landing page on MyPages */
1421
- welcomeText?: Maybe<Scalars['String']>;
1322
+
1323
+ export type PageSubPagesArgs = {
1324
+ includeHidden?: Maybe<Scalars['Boolean']>;
1422
1325
  };
1423
1326
 
1424
- export type NumericRangeFilter = Filter & {
1425
- __typename?: 'NumericRangeFilter';
1426
- min: Scalars['Decimal'];
1427
- max: Scalars['Decimal'];
1428
- id: Scalars['String'];
1429
- name: Scalars['String'];
1430
- isActive: Scalars['Boolean'];
1431
- value?: Maybe<Array<Maybe<Scalars['Decimal']>>>;
1327
+ export type Link = {
1328
+ __typename?: 'Link';
1329
+ target?: Maybe<Scalars['String']>;
1330
+ link?: Maybe<Scalars['Uri']>;
1432
1331
  };
1433
1332
 
1434
1333
  export type Order = {
@@ -1447,7 +1346,6 @@ export type Order = {
1447
1346
  currency?: Maybe<Currency>;
1448
1347
  attachments?: Maybe<Array<Maybe<OrderAttachment>>>;
1449
1348
  orderPurchaseLocation?: Maybe<Scalars['String']>;
1450
- orderComments?: Maybe<Array<Maybe<OrderComment>>>;
1451
1349
  };
1452
1350
 
1453
1351
 
@@ -1456,6 +1354,48 @@ export type OrderItemsArgs = {
1456
1354
  offset?: Maybe<Scalars['Int']>;
1457
1355
  };
1458
1356
 
1357
+ export type OrderItem = {
1358
+ __typename?: 'OrderItem';
1359
+ articleNumber?: Maybe<Scalars['String']>;
1360
+ /** Name of the Product at the time the order was placed (may since have changed). Use this as a fallback if the 'product' field itself is null. */
1361
+ name?: Maybe<Scalars['String']>;
1362
+ quantity?: Maybe<Scalars['Int']>;
1363
+ unitPrice?: Maybe<Price>;
1364
+ total?: Maybe<Price>;
1365
+ discounts?: Maybe<Array<Maybe<OrderItemDiscount>>>;
1366
+ /** N.B. this may be null if the Product has since been removed. */
1367
+ product?: Maybe<Product>;
1368
+ /** N.B. this may be null if the Product itself or the Variant has since been removed. */
1369
+ variant?: Maybe<ProductVariant>;
1370
+ /** N.B. this may be null if the Product has since been removed. */
1371
+ variantOptionNames?: Maybe<Array<Maybe<Scalars['String']>>>;
1372
+ /** Value of the Variant at the time the order was placed (may since have changed). Use this as a fallback if the 'variant' field itself is null. Will be null when the OrderItem is not a Variant. */
1373
+ variantValue?: Maybe<Scalars['String']>;
1374
+ preOrderDate?: Maybe<Scalars['DateTime']>;
1375
+ /** list of name, value fields from orders coming from external systems. */
1376
+ externalOrderData?: Maybe<Array<Maybe<ExternalOrderData>>>;
1377
+ };
1378
+
1379
+ export type OrderItemDiscount = {
1380
+ __typename?: 'OrderItemDiscount';
1381
+ value?: Maybe<Price>;
1382
+ };
1383
+
1384
+ export type ExternalOrderData = {
1385
+ __typename?: 'ExternalOrderData';
1386
+ name: Scalars['String'];
1387
+ value: Scalars['String'];
1388
+ };
1389
+
1390
+ export type OrderInfo = {
1391
+ __typename?: 'OrderInfo';
1392
+ firstName?: Maybe<Scalars['String']>;
1393
+ lastName?: Maybe<Scalars['String']>;
1394
+ company?: Maybe<Scalars['String']>;
1395
+ phone?: Maybe<Scalars['String']>;
1396
+ address?: Maybe<OrderAddress>;
1397
+ };
1398
+
1459
1399
  export type OrderAddress = {
1460
1400
  __typename?: 'OrderAddress';
1461
1401
  street?: Maybe<Scalars['String']>;
@@ -1466,16 +1406,10 @@ export type OrderAddress = {
1466
1406
  country?: Maybe<Country>;
1467
1407
  };
1468
1408
 
1469
- export type OrderAttachment = {
1470
- __typename?: 'OrderAttachment';
1471
- id: Scalars['ID'];
1472
- url?: Maybe<Scalars['String']>;
1473
- };
1474
-
1475
- export type OrderComment = {
1476
- __typename?: 'OrderComment';
1477
- title?: Maybe<Scalars['String']>;
1478
- text?: Maybe<Scalars['String']>;
1409
+ export type OrderPaymentMethod = {
1410
+ __typename?: 'OrderPaymentMethod';
1411
+ name?: Maybe<Scalars['String']>;
1412
+ fee?: Maybe<Price>;
1479
1413
  };
1480
1414
 
1481
1415
  export type OrderDeliveryMethod = {
@@ -1499,206 +1433,141 @@ export type OrderGiftVoucher = {
1499
1433
  validUntil?: Maybe<Scalars['DateTime']>;
1500
1434
  };
1501
1435
 
1502
- export type OrderHeader = {
1503
- __typename?: 'OrderHeader';
1436
+ export type OrderAttachment = {
1437
+ __typename?: 'OrderAttachment';
1504
1438
  id: Scalars['ID'];
1505
- orderNumber?: Maybe<Scalars['String']>;
1506
- status?: Maybe<OrderStatus>;
1507
- statusTimeline?: Maybe<Array<Maybe<OrderStatus>>>;
1508
- /** If this is false, a call to `order` for this order will result in a failure. */
1509
- hasOrderDetails?: Maybe<Scalars['Boolean']>;
1510
- total?: Maybe<Price>;
1511
- orderDate?: Maybe<Scalars['DateTime']>;
1512
- trackingId?: Maybe<Scalars['String']>;
1513
- currency?: Maybe<Currency>;
1514
- };
1515
-
1516
- export type OrderHeaderResult = {
1517
- __typename?: 'OrderHeaderResult';
1518
- result?: Maybe<Array<Maybe<OrderHeader>>>;
1519
- totalResults?: Maybe<Scalars['Int']>;
1520
- };
1521
-
1522
- export type OrderInfo = {
1523
- __typename?: 'OrderInfo';
1524
- firstName?: Maybe<Scalars['String']>;
1525
- lastName?: Maybe<Scalars['String']>;
1526
- company?: Maybe<Scalars['String']>;
1527
- phone?: Maybe<Scalars['String']>;
1528
- address?: Maybe<OrderAddress>;
1529
- };
1530
-
1531
- export type OrderItem = {
1532
- __typename?: 'OrderItem';
1533
- articleNumber?: Maybe<Scalars['String']>;
1534
- /**
1535
- * Name of the Product at the time the order was placed (may since have changed).
1536
- * Use this as a fallback if the 'product' field itself is null.
1537
- */
1538
- name?: Maybe<Scalars['String']>;
1539
- quantity?: Maybe<Scalars['Int']>;
1540
- unitPrice?: Maybe<Price>;
1541
- total?: Maybe<Price>;
1542
- discounts?: Maybe<Array<Maybe<OrderItemDiscount>>>;
1543
- /** N.B. this may be null if the Product has since been removed. */
1544
- product?: Maybe<Product>;
1545
- /** N.B. this may be null if the Product itself or the Variant has since been removed. */
1546
- variant?: Maybe<ProductVariant>;
1547
- /** N.B. this may be null if the Product has since been removed. */
1548
- variantOptionNames?: Maybe<Array<Maybe<Scalars['String']>>>;
1549
- /**
1550
- * Value of the Variant at the time the order was placed (may since have
1551
- * changed). Use this as a fallback if the 'variant' field itself is null. Will
1552
- * be null when the OrderItem is not a Variant.
1553
- */
1554
- variantValue?: Maybe<Scalars['String']>;
1555
- preOrderDate?: Maybe<Scalars['DateTime']>;
1556
- /** list of name, value fields from orders coming from external systems. */
1557
- externalOrderData?: Maybe<Array<Maybe<ExternalOrderData>>>;
1439
+ url?: Maybe<Scalars['String']>;
1558
1440
  };
1559
1441
 
1560
- export type OrderItemDiscount = {
1561
- __typename?: 'OrderItemDiscount';
1562
- value?: Maybe<Price>;
1442
+ export type MyPagesContent = {
1443
+ __typename?: 'MyPagesContent';
1444
+ /** Text that will show on the landing page on MyPages */
1445
+ welcomeText?: Maybe<Scalars['String']>;
1563
1446
  };
1564
1447
 
1565
- export type OrderPaymentMethod = {
1566
- __typename?: 'OrderPaymentMethod';
1448
+ export type CustomerProductList = {
1449
+ __typename?: 'CustomerProductList';
1450
+ id: Scalars['ID'];
1451
+ shareToken?: Maybe<Scalars['String']>;
1567
1452
  name?: Maybe<Scalars['String']>;
1568
- fee?: Maybe<Price>;
1569
- };
1570
-
1571
- export type OrderStatus = {
1572
- __typename?: 'OrderStatus';
1573
- id?: Maybe<Scalars['ID']>;
1574
1453
  description?: Maybe<Scalars['String']>;
1575
- timestamp?: Maybe<Scalars['DateTime']>;
1576
- };
1577
-
1578
- export type Package = {
1579
- __typename?: 'Package';
1580
- id: Scalars['ID'];
1581
- items: Array<PackageItem>;
1582
- /** The current package price with any potential discount */
1583
- price?: Maybe<Price>;
1584
- /** The previous package price without any potential discount */
1585
- previousPrice?: Maybe<Price>;
1586
- /** Total package discount amount */
1587
- discountValue?: Maybe<Price>;
1588
- /** Total package discount in percentage */
1589
- discountPercentage?: Maybe<Scalars['Decimal']>;
1590
- };
1591
-
1592
- export type PackageDiscount = PackageDiscountPercentage | PackageDiscountValue;
1593
-
1594
- export type PackageDiscountPercentage = {
1595
- __typename?: 'PackageDiscountPercentage';
1596
- percentage: Scalars['Decimal'];
1454
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1455
+ type?: Maybe<CustomerProductListType>;
1456
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1457
+ items?: Maybe<Array<Maybe<CustomerProductListItem>>>;
1597
1458
  };
1598
1459
 
1599
- export type PackageDiscountValue = {
1600
- __typename?: 'PackageDiscountValue';
1601
- valueIncVat: Scalars['Decimal'];
1602
- valueExVat: Scalars['Decimal'];
1603
- valueVat: Scalars['Decimal'];
1460
+ export type CustomerProductListType = {
1461
+ __typename?: 'CustomerProductListType';
1462
+ id: Scalars['ID'];
1463
+ name?: Maybe<Scalars['String']>;
1604
1464
  };
1605
1465
 
1606
- export type PackageItem = {
1607
- __typename?: 'PackageItem';
1466
+ export type CustomerProductListItem = {
1467
+ __typename?: 'CustomerProductListItem';
1468
+ description?: Maybe<Scalars['String']>;
1469
+ quantity?: Maybe<Scalars['Int']>;
1470
+ variant?: Maybe<ProductVariant>;
1471
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1608
1472
  product?: Maybe<Product>;
1609
- minQuantity: Scalars['Int'];
1610
- discount?: Maybe<PackageDiscount>;
1611
- /** The current package price with any potential discount */
1612
- price?: Maybe<Price>;
1613
- /** The previous package price without any potential discount */
1614
- previousPrice?: Maybe<Price>;
1615
- };
1616
-
1617
- export type PackagePriceInput = {
1618
- product: Scalars['ID'];
1619
- variant?: Maybe<Scalars['ID']>;
1620
1473
  };
1621
1474
 
1622
- export type Page = Document & {
1623
- __typename?: 'Page';
1624
- id: Scalars['ID'];
1625
- name: Scalars['String'];
1626
- mainHeader?: Maybe<Scalars['String']>;
1627
- content?: Maybe<Scalars['String']>;
1628
- hasExternalUrl?: Maybe<Scalars['Boolean']>;
1629
- /** External URL if page is set to URL, null if not. */
1630
- externalUrl?: Maybe<Link>;
1631
- images?: Maybe<Array<Maybe<Image>>>;
1475
+ export type CustomerLoyalty = {
1476
+ __typename?: 'CustomerLoyalty';
1477
+ bonusChecks?: Maybe<Array<Maybe<CustomerLoyaltyBonusCheck>>>;
1478
+ pointCards?: Maybe<Array<Maybe<CustomerLoyaltyPointCard>>>;
1479
+ discounts?: Maybe<Array<Maybe<CustomerLoyaltyDiscount>>>;
1632
1480
  /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1633
- head?: Maybe<HtmlHead>;
1634
- /**
1635
- * The primary route of this Page. NB: Carries a performance cost, as asking for
1636
- * this will result in a separate API call in the backend.
1637
- */
1638
- primaryRoute?: Maybe<Route>;
1639
- breadcrumbText?: Maybe<Scalars['String']>;
1640
- /**
1641
- * Get content data set via the Content Editor. NB: Carries a performance cost,
1642
- * as asking for this will result in a separate API call in the backend.
1643
- */
1644
- data?: Maybe<Content>;
1645
- /**
1646
- * * If this page was fetched by ID using the `page(id)` query, `parent` will be returned even if it is hidden.
1647
- * * If this page was fetched using the `pages` query, `parent` will not be returned if it is hidden
1648
- */
1649
- parent?: Maybe<Page>;
1650
- /**
1651
- * * If this page was fetched by ID using the `page(id)` query, `subPages` will
1652
- * be returned even if they are hidden. This can be overridden with the
1653
- * `includeHidden` flag.
1654
- * * If this page was fetched using the `pages` query, `subPages` will not be
1655
- * returned if they are hidden. The `includeHidden` flag has no effect on this.
1656
- */
1657
- subPages?: Maybe<Array<Page>>;
1658
- /**
1659
- * When set to false, the page will be excluded from sitemap. The frontend
1660
- * implementation should use this value to set meta tags to exclude the page from
1661
- * being indexed by crawlers. Defaults to true.
1662
- */
1663
- allowWebIndexing?: Maybe<Scalars['Boolean']>;
1481
+ bonusPoints?: Maybe<CustomerLoyaltyBonusPoints>;
1664
1482
  };
1665
1483
 
1666
1484
 
1667
- export type PageSubPagesArgs = {
1668
- includeHidden?: Maybe<Scalars['Boolean']>;
1485
+ export type CustomerLoyaltyDiscountsArgs = {
1486
+ includeRedeemed?: Scalars['Boolean'];
1669
1487
  };
1670
1488
 
1671
- export type PagedResult = {
1672
- __typename?: 'PagedResult';
1673
- totalResults?: Maybe<Scalars['Int']>;
1674
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1675
- sortOrders?: Maybe<Array<Maybe<ProductSortOrder>>>;
1676
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1677
- filters?: Maybe<Array<Maybe<Filter>>>;
1678
- result: Array<Maybe<Product>>;
1489
+ export type CustomerLoyaltyBonusCheck = {
1490
+ __typename?: 'CustomerLoyaltyBonusCheck';
1491
+ externalId?: Maybe<Scalars['String']>;
1492
+ name?: Maybe<Scalars['String']>;
1493
+ startDate?: Maybe<Scalars['DateTime']>;
1494
+ endDate?: Maybe<Scalars['DateTime']>;
1495
+ redeemed?: Maybe<Scalars['Boolean']>;
1496
+ redeemedOn?: Maybe<Scalars['DateTime']>;
1497
+ /** For display purposes, not guaranteed to match up with a currency on the channel. */
1498
+ currency?: Maybe<Scalars['String']>;
1499
+ value?: Maybe<Scalars['Decimal']>;
1679
1500
  };
1680
1501
 
1502
+ export type CustomerLoyaltyPointCard = {
1503
+ __typename?: 'CustomerLoyaltyPointCard';
1504
+ externalId?: Maybe<Scalars['String']>;
1505
+ name?: Maybe<Scalars['String']>;
1506
+ lastStampTime?: Maybe<Scalars['DateTime']>;
1507
+ numberOfSlots?: Maybe<Scalars['Int']>;
1508
+ numberOfSlotsRemaining?: Maybe<Scalars['Int']>;
1509
+ isActive?: Maybe<Scalars['Boolean']>;
1510
+ };
1681
1511
 
1682
- export type PagedResultFiltersArgs = {
1683
- ids?: Maybe<Array<Maybe<Scalars['String']>>>;
1512
+ export type CustomerLoyaltyDiscount = {
1513
+ __typename?: 'CustomerLoyaltyDiscount';
1514
+ name?: Maybe<Scalars['String']>;
1515
+ description?: Maybe<Scalars['String']>;
1516
+ startDate?: Maybe<Scalars['DateTime']>;
1517
+ endDate?: Maybe<Scalars['DateTime']>;
1518
+ externalData?: Maybe<CustomerLoyaltyDiscountOfferExternalData>;
1519
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1520
+ category?: Maybe<Category>;
1521
+ isActivatedByDiscountCode: Scalars['Boolean'];
1522
+ discountCode?: Maybe<Scalars['String']>;
1684
1523
  };
1685
1524
 
1525
+ export type CustomerLoyaltyDiscountOfferExternalData = {
1526
+ __typename?: 'CustomerLoyaltyDiscountOfferExternalData';
1527
+ name?: Maybe<Scalars['String']>;
1528
+ description?: Maybe<Scalars['String']>;
1529
+ startDate?: Maybe<Scalars['DateTime']>;
1530
+ endDate?: Maybe<Scalars['DateTime']>;
1531
+ externalId?: Maybe<Scalars['String']>;
1532
+ externalReference?: Maybe<Scalars['String']>;
1533
+ heading?: Maybe<Scalars['String']>;
1534
+ redeemed?: Maybe<Scalars['Boolean']>;
1535
+ redeemedOn?: Maybe<Scalars['DateTime']>;
1536
+ imageUrl?: Maybe<Scalars['String']>;
1537
+ link?: Maybe<Scalars['String']>;
1538
+ };
1686
1539
 
1687
- export type PagingInput = {
1688
- first?: Maybe<Scalars['Paging']>;
1689
- offset?: Maybe<Scalars['Int']>;
1540
+ export type CustomerLoyaltyBonusPoints = {
1541
+ __typename?: 'CustomerLoyaltyBonusPoints';
1542
+ points?: Maybe<Scalars['Int']>;
1690
1543
  };
1691
1544
 
1692
- export type PaymentType = {
1693
- __typename?: 'paymentType';
1694
- name: Scalars['String'];
1695
- apiClientId: Scalars['String'];
1696
- availableForBusiness: Scalars['Boolean'];
1697
- availableForPrivate: Scalars['Boolean'];
1545
+ /**
1546
+ * The activation status has 4 states;
1547
+ * PREEXISTING_CUSTOMER: No customer info will be returned and the customer is advised to login to the preexisting account.
1548
+ * ACTIVATION_REQUIRED: The customer account needs to be activated. Email (masked), FirstName (masked) and externalId will be the only fields set on `customer`.
1549
+ * ADDITIONAL_USER_DATA_REQUIRED: Additional data needed to register the customer, the existing customer info will be available with masking on customer.
1550
+ * NON_EXISTING_CUSTOMER: Customer does not exist in any system and will have to do a sign up.
1551
+ * COUNTRY_NOT_VALID: The customer account may not be activated on this channel as it's missing the customer country. Email (masked), FirstName (masked), externalId and countryCode will be the only fields set on `customer`.
1552
+ */
1553
+ export type ExternalCustomerResult = {
1554
+ __typename?: 'ExternalCustomerResult';
1555
+ status?: Maybe<ActivationStatusSource>;
1556
+ customer?: Maybe<ExternalCustomer>;
1698
1557
  };
1699
1558
 
1700
- export type PersonLookup = {
1701
- __typename?: 'PersonLookup';
1559
+ export enum ActivationStatusSource {
1560
+ PreexistingCustomer = 'PREEXISTING_CUSTOMER',
1561
+ ActivationRequired = 'ACTIVATION_REQUIRED',
1562
+ AdditionalUserDataRequired = 'ADDITIONAL_USER_DATA_REQUIRED',
1563
+ NonExistingCustomer = 'NON_EXISTING_CUSTOMER',
1564
+ CountryNotValid = 'COUNTRY_NOT_VALID'
1565
+ }
1566
+
1567
+ export type ExternalCustomer = {
1568
+ __typename?: 'ExternalCustomer';
1569
+ externalId?: Maybe<Scalars['String']>;
1570
+ email?: Maybe<MaskedProperty>;
1702
1571
  firstName?: Maybe<MaskedProperty>;
1703
1572
  lastName?: Maybe<MaskedProperty>;
1704
1573
  co?: Maybe<MaskedProperty>;
@@ -1706,738 +1575,749 @@ export type PersonLookup = {
1706
1575
  city?: Maybe<MaskedProperty>;
1707
1576
  postalCode?: Maybe<MaskedProperty>;
1708
1577
  country?: Maybe<MaskedProperty>;
1578
+ countryCode?: Maybe<Scalars['String']>;
1709
1579
  phoneNumber?: Maybe<MaskedProperty>;
1710
1580
  mobilePhoneNumber?: Maybe<MaskedProperty>;
1711
- };
1712
-
1713
- export type Price = {
1714
- __typename?: 'Price';
1715
- incVat: Scalars['Decimal'];
1716
- exVat: Scalars['Decimal'];
1717
- vat: Scalars['Decimal'];
1718
- };
1719
-
1720
- export type PriceHistory = {
1721
- __typename?: 'PriceHistory';
1722
- timestamp?: Maybe<Scalars['DateTime']>;
1723
- price?: Maybe<Price>;
1724
- };
1725
-
1726
- export type PrivateCustomer = Customer & {
1727
- __typename?: 'PrivateCustomer';
1728
- pid?: Maybe<Scalars['String']>;
1729
- id: Scalars['ID'];
1730
- memberId?: Maybe<Scalars['String']>;
1731
- email?: Maybe<Scalars['String']>;
1732
- /** Customer id for external system */
1733
- externalId?: Maybe<Scalars['String']>;
1734
- /** @deprecated Use communication.acceptsEmail */
1735
- subscribedToNewsletter?: Maybe<Scalars['Boolean']>;
1736
- language?: Maybe<Language>;
1737
- billingAddress?: Maybe<CustomerAddress>;
1738
- deliveryAddresses?: Maybe<Array<Maybe<CustomerAddress>>>;
1739
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1740
- orderHeaders?: Maybe<OrderHeaderResult>;
1741
- communication?: Maybe<CustomerCommunication>;
1742
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1743
- store?: Maybe<Store>;
1744
- dynamicContent?: Maybe<Scalars['String']>;
1745
- externalAttributes?: Maybe<Array<Maybe<CustomerExternalAttribute>>>;
1746
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1747
- googleUserId?: Maybe<Scalars['String']>;
1748
- };
1749
-
1750
-
1751
- export type PrivateCustomerOrderHeadersArgs = {
1752
- first?: Maybe<Scalars['Int']>;
1753
- offset?: Maybe<Scalars['Int']>;
1754
- };
1755
-
1756
- export type Product = Document & {
1757
- __typename?: 'Product';
1758
- id: Scalars['Int'];
1759
- articleNumber: Scalars['String'];
1760
- name: Scalars['String'];
1761
- subName: Scalars['String'];
1762
- shortDescription: Scalars['String'];
1763
- description: Scalars['String'];
1764
- /**
1765
- * Product header if it differs from the actual product name, usually displayed
1766
- * instead of the product name in the header tag at the product page.
1767
- */
1768
- mainHeader: Scalars['String'];
1769
- publishedDate?: Maybe<Scalars['DateTime']>;
1770
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1771
- canonicalCategory?: Maybe<Category>;
1772
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1773
- categories?: Maybe<Array<Maybe<Category>>>;
1774
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1775
- campaigns?: Maybe<Array<Maybe<Category>>>;
1776
- hasVariants: Scalars['Boolean'];
1777
- hasVariantsWithDifferingPrices: Scalars['Boolean'];
1778
- variants?: Maybe<ProductVariants>;
1779
- images?: Maybe<Array<Maybe<ProductImage>>>;
1780
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1781
- relatedProducts?: Maybe<Array<Maybe<Product>>>;
1782
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1783
- badges?: Maybe<Array<Maybe<ProductBadge>>>;
1784
- /**
1785
- * The current price.
1786
- * - Will be a Customer specific price if that Customer has a separate price list.
1787
- * - Will be the member price if Customer is logged in and `Product.hasMemberPrice` is true.
1788
- * - Will be the non-member price if Customer is not logged in and `Product.hasMemberPrice` is true.
1789
- */
1790
- price?: Maybe<Price>;
1791
- hidePrice?: Maybe<Scalars['Boolean']>;
1792
- /**
1793
- * The previous price (i.e. this will be higher than `price` if the product is
1794
- * discounted). Will be a Customer specific previous price, if that Customer has
1795
- * a separate price list.
1796
- */
1797
- previousPrice?: Maybe<Price>;
1798
- /** Default price for the product in the channel, disregards Customer specific prices. */
1799
- defaultPrice?: Maybe<Price>;
1800
- /** Default previous price for the product in the channel, disregards Customer specific prices. */
1801
- defaultPreviousPrice?: Maybe<Price>;
1802
- /** Not in use. Always null. */
1803
- recommendedPrice?: Maybe<Price>;
1804
- /**
1805
- * The time interval of the discounted price. If the product has variants, the
1806
- * time interval will be that of the variant which price is shown on the product.
1807
- */
1808
- priceDateSpan?: Maybe<ProductPriceDateSpan>;
1809
- /** Indicates if this product and its variants has member prices. */
1810
- hasMemberPrice?: Maybe<Scalars['Boolean']>;
1811
- /**
1812
- * The price a Customer would get if member prices are active and the Customer is logged in.
1813
- * - Will be null if `Product.hasMemberPrice` is false.
1814
- * - Will be set if `Product.hasMemberPrice` is true.
1815
- */
1816
- memberPrice?: Maybe<Price>;
1817
- /**
1818
- * Specifies input field(s) for the Customer to populate on the Product that will then carry through to the Order.
1819
- * If 'required' is true the Product should not be purchasable until the field is populated.
1820
- */
1821
- customerComments?: Maybe<Array<Maybe<ProductComment>>>;
1581
+ pid?: Maybe<MaskedProperty>;
1582
+ };
1583
+
1584
+ export type MaskedProperty = {
1585
+ __typename?: 'MaskedProperty';
1586
+ masked?: Maybe<Scalars['String']>;
1587
+ encrypted?: Maybe<Scalars['String']>;
1588
+ };
1589
+
1590
+ export type PersonLookup = {
1591
+ __typename?: 'PersonLookup';
1592
+ firstName?: Maybe<MaskedProperty>;
1593
+ lastName?: Maybe<MaskedProperty>;
1594
+ co?: Maybe<MaskedProperty>;
1595
+ address?: Maybe<MaskedProperty>;
1596
+ city?: Maybe<MaskedProperty>;
1597
+ postalCode?: Maybe<MaskedProperty>;
1598
+ country?: Maybe<MaskedProperty>;
1599
+ phoneNumber?: Maybe<MaskedProperty>;
1600
+ mobilePhoneNumber?: Maybe<MaskedProperty>;
1601
+ };
1602
+
1603
+ export type MultipleContent = {
1604
+ __typename?: 'MultipleContent';
1605
+ notFoundIds: Array<Maybe<Scalars['ID']>>;
1606
+ content: Array<Maybe<Content>>;
1607
+ };
1608
+
1609
+ /** Every channel has its own URL and can have different design, selection of products, prices and own settings for example shipping and payment. */
1610
+ export type Channel = {
1611
+ __typename?: 'Channel';
1612
+ id: Scalars['Int'];
1613
+ name?: Maybe<Scalars['String']>;
1614
+ displayName?: Maybe<Scalars['String']>;
1615
+ groupName?: Maybe<Scalars['String']>;
1616
+ isDefault?: Maybe<Scalars['Boolean']>;
1617
+ url?: Maybe<Scalars['Uri']>;
1618
+ settings?: Maybe<ChannelSettings>;
1619
+ languages?: Maybe<Array<Maybe<Language>>>;
1620
+ defaultLanguage?: Maybe<Language>;
1621
+ currencies?: Maybe<Array<Maybe<Currency>>>;
1622
+ defaultCurrency?: Maybe<Currency>;
1623
+ countries?: Maybe<Array<Maybe<Country>>>;
1624
+ /** The root url of images, this can be used to build image urls if needed. */
1625
+ imageUrl?: Maybe<Scalars['String']>;
1626
+ /** This channel requires a user to be authorized. */
1627
+ requiresAuth?: Maybe<Scalars['Boolean']>;
1628
+ };
1629
+
1630
+ export type ChannelSettings = {
1631
+ __typename?: 'ChannelSettings';
1632
+ pricesIncVat?: Maybe<Scalars['Boolean']>;
1633
+ countrySettings?: Maybe<Array<Maybe<CountrySettings>>>;
1634
+ tracking?: Maybe<Tracking>;
1635
+ nostoAccountId?: Maybe<Scalars['String']>;
1636
+ };
1637
+
1638
+ export type CountrySettings = {
1639
+ __typename?: 'CountrySettings';
1640
+ countryCode: Scalars['String'];
1641
+ paymentTypes?: Maybe<Array<Maybe<PaymentType>>>;
1822
1642
  /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1823
- stockStatus?: Maybe<StockStatus>;
1824
- customFields?: Maybe<Array<Maybe<CustomField>>>;
1643
+ privateCustomerFields?: Maybe<Array<Maybe<CustomerField>>>;
1825
1644
  /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1826
- warehouseStock?: Maybe<Array<Maybe<Warehouse>>>;
1827
- head?: Maybe<HtmlHead>;
1828
- /**
1829
- * The primary route of this Product. NB: Carries a performance cost, as asking
1830
- * for this will result in a separate API call in the backend.
1831
- */
1832
- primaryRoute?: Maybe<Route>;
1833
- breadcrumbText?: Maybe<Scalars['String']>;
1834
- recommendedProducts?: Maybe<RecommendedProducts>;
1835
- /**
1836
- * The product is recommended to only be purchasable in multiples of the
1837
- * distributionPackageSize. (Different shops may have different levels of
1838
- * leniency on this rule).
1839
- */
1840
- distributionPackageSize: Scalars['Int'];
1841
- barcode?: Maybe<Scalars['String']>;
1645
+ businessCustomerFields?: Maybe<Array<Maybe<CustomerField>>>;
1646
+ shipping?: Maybe<Shipping>;
1842
1647
  /**
1843
- * Configurations on a product are used to assemble a complete product,
1844
- *
1845
- * For example, if the product is a ring then the ring may have two
1846
- * configurations; measures of circumference and choice of engraving
1648
+ * NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.
1847
1649
  *
1848
- * In this field, all the configurations of the product will be presented, the configuration name and its various options.
1650
+ * This will use localization, and will work well when requesting one `channel`, but may give unpredictable results when getting multiple channels via `channels`
1849
1651
  */
1850
- configurations?: Maybe<Array<Maybe<ProductConfiguration>>>;
1851
- hasConfigurations: Scalars['Boolean'];
1852
- hasFamilyMembers: Scalars['Boolean'];
1853
- /**
1854
- * Calculates the price of the product based on the configuration choices that's
1855
- * been made. NB: Carries a performance cost, as asking for this will result in a
1856
- * separate API call in the backend.
1857
- */
1858
- configurationPrice?: Maybe<ProductConfigurationPrice>;
1859
- /** Quantity suffix e.g pcs, box, etc. */
1860
- quantitySuffix?: Maybe<Scalars['String']>;
1861
- isPreOrder?: Maybe<Scalars['Boolean']>;
1862
- preOrder?: Maybe<ProductPreOrder>;
1863
- isPackage?: Maybe<Scalars['Boolean']>;
1652
+ privateCustomerConsents?: Maybe<Array<Maybe<Consent>>>;
1864
1653
  /**
1865
- * ## Description
1866
1654
  * NB: Carries a performance cost, as asking for this will result in a separate API call in the backend.
1867
- * ## Error Codes
1868
- * ### InvalidAmountOfArticleNumbers
1869
- * Number of input products doesn't match package products
1870
- * ### InvalidArticleNumber
1871
- * Product or variant article number doesn't match any products
1872
- * ### UnableToGetPackagePrice
1873
- * Failed to calculate package price
1874
- */
1875
- package?: Maybe<Package>;
1876
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1877
- upsell?: Maybe<Upsell>;
1878
- inPackages?: Maybe<Array<Product>>;
1879
- hasUpsell?: Maybe<Scalars['Boolean']>;
1880
- /**
1881
- * All other products in the same family as the product. NB: Carries a
1882
- * performance cost, as asking for this will result in a separate API call in the backend.
1655
+ *
1656
+ * This will use localization, and will work well when requesting one `channel`, but may give unpredictable results when getting multiple channels via `channels`
1883
1657
  */
1884
- familyMembers?: Maybe<Array<Product>>;
1885
- /** Get Product History within the set number of days */
1886
- history?: Maybe<ProductHistory>;
1658
+ businessCustomerConsents?: Maybe<Array<Maybe<Consent>>>;
1887
1659
  };
1888
1660
 
1661
+ export type PaymentType = {
1662
+ __typename?: 'paymentType';
1663
+ name: Scalars['String'];
1664
+ apiClientId: Scalars['String'];
1665
+ availableForBusiness: Scalars['Boolean'];
1666
+ availableForPrivate: Scalars['Boolean'];
1667
+ };
1889
1668
 
1890
- export type ProductCategoriesArgs = {
1891
- includeHidden?: Maybe<Scalars['Boolean']>;
1669
+ export type CustomerField = {
1670
+ __typename?: 'CustomerField';
1671
+ id: Scalars['ID'];
1672
+ required: Scalars['Boolean'];
1673
+ pattern?: Maybe<Scalars['String']>;
1674
+ fields?: Maybe<Array<Maybe<CustomerField>>>;
1675
+ name: Scalars['ID'];
1892
1676
  };
1893
1677
 
1678
+ export type Shipping = {
1679
+ __typename?: 'Shipping';
1680
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
1681
+ freeShippingLimit?: Maybe<FreeShippingLimit>;
1682
+ };
1894
1683
 
1895
- export type ProductImagesArgs = {
1896
- includeVariantImages?: Maybe<Scalars['Boolean']>;
1897
- limit?: Maybe<Scalars['Int']>;
1684
+ export type FreeShippingLimit = {
1685
+ __typename?: 'FreeShippingLimit';
1686
+ incVat?: Maybe<Scalars['Decimal']>;
1687
+ exVat?: Maybe<Scalars['Decimal']>;
1898
1688
  };
1899
1689
 
1690
+ export type Consent = {
1691
+ __typename?: 'Consent';
1692
+ id: Scalars['ID'];
1693
+ name?: Maybe<Scalars['String']>;
1694
+ title?: Maybe<Scalars['String']>;
1695
+ text?: Maybe<Scalars['String']>;
1696
+ linkText?: Maybe<Scalars['String']>;
1697
+ page?: Maybe<Page>;
1698
+ isMandatory?: Maybe<Scalars['Boolean']>;
1699
+ };
1900
1700
 
1901
- export type ProductWarehouseStockArgs = {
1902
- includeInactive?: Maybe<Scalars['Boolean']>;
1701
+ export type Tracking = {
1702
+ __typename?: 'Tracking';
1703
+ ga?: Maybe<GoogleAnalytics>;
1704
+ ga4?: Maybe<GoogleAnalytics4>;
1705
+ gtm?: Maybe<GoogleTagManager>;
1706
+ fca?: Maybe<FacebookConversionsApi>;
1903
1707
  };
1904
1708
 
1709
+ export type GoogleAnalytics = {
1710
+ __typename?: 'GoogleAnalytics';
1711
+ trackingId?: Maybe<Scalars['String']>;
1712
+ useArticleNumberAsId?: Maybe<Scalars['Boolean']>;
1713
+ };
1905
1714
 
1906
- export type ProductConfigurationPriceArgs = {
1907
- options?: Maybe<Array<ProductConfigurationPriceInput>>;
1715
+ export type GoogleAnalytics4 = {
1716
+ __typename?: 'GoogleAnalytics4';
1717
+ trackingId?: Maybe<Scalars['String']>;
1718
+ useArticleNumberAsId?: Maybe<Scalars['Boolean']>;
1908
1719
  };
1909
1720
 
1721
+ export type GoogleTagManager = {
1722
+ __typename?: 'GoogleTagManager';
1723
+ containerId?: Maybe<Scalars['String']>;
1724
+ useGa4Events?: Maybe<Scalars['Boolean']>;
1725
+ };
1910
1726
 
1911
- export type ProductPackageArgs = {
1912
- articleNumbers?: Maybe<Array<Maybe<PackagePriceInput>>>;
1727
+ export type FacebookConversionsApi = {
1728
+ __typename?: 'FacebookConversionsApi';
1729
+ accessToken?: Maybe<Scalars['String']>;
1730
+ pixelId?: Maybe<Scalars['String']>;
1913
1731
  };
1914
1732
 
1733
+ export type Cart = {
1734
+ __typename?: 'Cart';
1735
+ id?: Maybe<Scalars['String']>;
1736
+ totalQuantity?: Maybe<Scalars['Int']>;
1737
+ productTotal?: Maybe<Price>;
1738
+ productPreviousTotal?: Maybe<Price>;
1739
+ discountTotal?: Maybe<Price>;
1740
+ aggregatedDiscounts?: Maybe<Array<Maybe<Discount>>>;
1741
+ externalCheckoutUrl?: Maybe<Scalars['Uri']>;
1742
+ items?: Maybe<Array<Maybe<CartItem>>>;
1743
+ };
1915
1744
 
1916
- export type ProductHistoryArgs = {
1917
- days?: Maybe<Scalars['Int']>;
1745
+ export type Discount = {
1746
+ __typename?: 'Discount';
1747
+ externalId?: Maybe<Scalars['ID']>;
1748
+ name?: Maybe<Scalars['String']>;
1749
+ value?: Maybe<Price>;
1750
+ type?: Maybe<DiscountType>;
1751
+ description?: Maybe<Scalars['String']>;
1752
+ campaign?: Maybe<Category>;
1918
1753
  };
1919
1754
 
1920
- export type ProductAutoCompleteResult = {
1921
- __typename?: 'ProductAutoCompleteResult';
1922
- result: Array<Maybe<Product>>;
1755
+ export enum DiscountType {
1756
+ /** No discount defined */
1757
+ Undefined = 'UNDEFINED',
1758
+ /** Discount drops price of the order total by defined amount */
1759
+ FixedAmount = 'FIXED_AMOUNT',
1760
+ /** Discount drops price of the product by X % */
1761
+ Percent = 'PERCENT',
1762
+ /** Discount will get the amount of the cheapest product and use this as a discount */
1763
+ Items = 'ITEMS',
1764
+ /** Discount drops total price of the product if there is at least X of them in cart */
1765
+ ItemsPercentageLimit = 'ITEMS_PERCENTAGE_LIMIT',
1766
+ /** Only a collection of products */
1767
+ OnlyUseLandingPage = 'ONLY_USE_LANDING_PAGE',
1768
+ /** Discount drops price of the least expensive product in cart */
1769
+ PercentOnLeastExpensiveItem = 'PERCENT_ON_LEAST_EXPENSIVE_ITEM',
1770
+ /** Discount drops price of the most expensive product in cart */
1771
+ PercentOnMostExpensiveItem = 'PERCENT_ON_MOST_EXPENSIVE_ITEM',
1772
+ /** Discount allows to get a free gift when the product is added */
1773
+ FreeProduct = 'FREE_PRODUCT',
1774
+ /** Discount allows to get free shipping option for the product */
1775
+ FreeShipping = 'FREE_SHIPPING',
1776
+ /** Discount drops price for the package when all products in the package is added to cart */
1777
+ PackageDiscount = 'PACKAGE_DISCOUNT',
1778
+ /** Discount on the order total from a voucher */
1779
+ BonusVoucherDiscount = 'BONUS_VOUCHER_DISCOUNT',
1780
+ /** Discount allows to buy amount of X of the article, but pay only for amount of Y */
1781
+ BuyXArticlesPayYAmount = 'BUY_X_ARTICLES_PAY_Y_AMOUNT'
1782
+ }
1783
+
1784
+ export type CartItem = {
1785
+ __typename?: 'CartItem';
1786
+ id: Scalars['String'];
1787
+ quantity: Scalars['Int'];
1788
+ articleNumber: Scalars['String'];
1789
+ /** @deprecated Please use images on product instead. */
1790
+ images?: Maybe<Array<Maybe<ProductImage>>>;
1791
+ subHeading?: Maybe<Scalars['String']>;
1792
+ variant?: Maybe<ProductVariant>;
1793
+ variantOptionNames?: Maybe<Array<Maybe<Scalars['String']>>>;
1794
+ customerComments?: Maybe<Array<Maybe<CartItemComment>>>;
1795
+ discounts?: Maybe<Array<Maybe<Discount>>>;
1796
+ /** Total price, including discounts */
1797
+ total: Price;
1798
+ /** Total price, excluding discounts */
1799
+ previousTotal: Price;
1800
+ /** Unit price, including discounts */
1801
+ unitPrice: Price;
1802
+ /** Unit price, excluding discounts */
1803
+ previousUnitPrice: Price;
1804
+ /** Discount total */
1805
+ discount?: Maybe<Price>;
1806
+ product?: Maybe<Product>;
1807
+ configurations?: Maybe<Array<Maybe<SelectedProductConfiguration>>>;
1808
+ preOrderDate?: Maybe<Scalars['DateTime']>;
1923
1809
  };
1924
1810
 
1925
- export type ProductBadge = {
1926
- __typename?: 'ProductBadge';
1811
+ export type CartItemComment = {
1812
+ __typename?: 'CartItemComment';
1927
1813
  name?: Maybe<Scalars['String']>;
1928
- url?: Maybe<Scalars['Uri']>;
1929
- location?: Maybe<ProductBadgeLocation>;
1930
- style?: Maybe<Scalars['String']>;
1931
- text?: Maybe<Scalars['String']>;
1932
- };
1933
-
1934
- export enum ProductBadgeLocation {
1935
- Custom = 'CUSTOM',
1936
- TopLeft = 'TOP_LEFT',
1937
- TopRight = 'TOP_RIGHT',
1938
- BottomLeft = 'BOTTOM_LEFT',
1939
- BottomRight = 'BOTTOM_RIGHT'
1940
- }
1941
-
1942
- export type ProductComment = {
1943
- __typename?: 'ProductComment';
1944
- name: Scalars['String'];
1945
- required: Scalars['Boolean'];
1814
+ value?: Maybe<Scalars['String']>;
1946
1815
  };
1947
1816
 
1948
- export type ProductConfiguration = {
1949
- __typename?: 'ProductConfiguration';
1817
+ export type SelectedProductConfiguration = {
1818
+ __typename?: 'SelectedProductConfiguration';
1950
1819
  name?: Maybe<Scalars['String']>;
1951
- options: Array<Maybe<ProductConfigurationOption>>;
1820
+ option: SelectedProductConfigurationOption;
1952
1821
  };
1953
1822
 
1954
- /**
1955
- * Options by which you can configure a product.
1956
- *
1957
- * For instance, if you're selling rope the available options might be the dimensions; 10mm, 20mm, 30mm, etc.
1958
- *
1959
- * Price is either used as is, or if the configuration is using a price calculation
1960
- * (e.g. the rope is priced by length) it will be used in the calculation formula;
1961
- * e.g. (Length * Price).
1962
- */
1963
- export type ProductConfigurationOption = {
1964
- __typename?: 'ProductConfigurationOption';
1823
+ export type SelectedProductConfigurationOption = {
1824
+ __typename?: 'SelectedProductConfigurationOption';
1965
1825
  id: Scalars['ID'];
1966
1826
  name?: Maybe<Scalars['String']>;
1967
- price?: Maybe<Price>;
1968
- /** This will be set if the configuration requires price calculation, e.g. you might sell rope and price it by length. */
1969
- priceCalculation?: Maybe<ProductConfigurationPriceCalculation>;
1970
- };
1971
-
1972
- export type ProductConfigurationPrice = {
1973
- __typename?: 'ProductConfigurationPrice';
1974
- price?: Maybe<Price>;
1975
- previousPrice?: Maybe<Price>;
1976
1827
  };
1977
1828
 
1978
- /**
1979
- * Describes how the price is calculated on a configuration option.
1980
- *
1981
- * E.g. the configuration is for a carpet and it has a price calculation formula that reads: 'Width * Length * Price / 10000'.
1982
- *
1983
- * In this case, the variables would contain 'Width' and 'Length' whereas the 'Price' is taken from the selected option.
1984
- */
1985
- export type ProductConfigurationPriceCalculation = {
1986
- __typename?: 'ProductConfigurationPriceCalculation';
1987
- id: Scalars['ID'];
1988
- name?: Maybe<Scalars['String']>;
1989
- formula?: Maybe<Scalars['String']>;
1990
- variables?: Maybe<Array<Maybe<ProductConfigurationPriceCalculationVariable>>>;
1829
+ export type Mutation = {
1830
+ __typename?: 'Mutation';
1831
+ subscribeToStockNotifications?: Maybe<Scalars['Boolean']>;
1832
+ /**
1833
+ * This mutation's purpose is to subscribe a customer to a newsletter. In order to subscribe a customer a valid email address is required
1834
+ *
1835
+ * Responds with a boolean value whether the subscription has been successful or not
1836
+ */
1837
+ subscribeToNewsletter?: Maybe<Scalars['Boolean']>;
1838
+ /**
1839
+ * ## Description
1840
+ * Adds items to product list, null id adds items to the default product list.
1841
+ * ## Error Codes
1842
+ * ### Unauthorized
1843
+ * Unauthorized
1844
+ * ### AddToProductListFailed
1845
+ * Error in underlying API call, more info may be contained in the error message.
1846
+ * ### InvalidArticleNumber
1847
+ * Article number cannot be empty
1848
+ * ### ProductNotFound
1849
+ * No match on article number
1850
+ * ### MoreThanOneMatchOnArticleNumber
1851
+ * Article number matched more than one article
1852
+ */
1853
+ addToCustomerProductList?: Maybe<CustomerProductListResult>;
1854
+ /**
1855
+ * ## Description
1856
+ * Creates a product list for a logged in customer
1857
+ * ## Error Codes
1858
+ * ### Unauthorized
1859
+ *
1860
+ * ### UnableToCreateProductList
1861
+ * Error in underlying API call, more info may be contained in the error message.
1862
+ */
1863
+ createCustomerProductList?: Maybe<CustomerProductListResult>;
1864
+ /**
1865
+ * ## Description
1866
+ * Deletes a product list for a logged in customer
1867
+ * ## Error Codes
1868
+ * ### Unauthorized
1869
+ *
1870
+ * ### ProductListNotFound
1871
+ * Argument `id` did not match any list for this customer.
1872
+ * ### UnableToDeleteProductList
1873
+ * Error in underlying API call, more info may be contained in the error message.
1874
+ */
1875
+ deleteCustomerProductList?: Maybe<DeleteCustomerProductListResult>;
1876
+ /**
1877
+ * ## Description
1878
+ * Removes an item from a product list for a logged in customer, null id removes item in the default product list.
1879
+ * ## Error Codes
1880
+ * ### Unauthorized
1881
+ *
1882
+ * ### ProductListNotFound
1883
+ * Argument `id` did not match any list for this customer.
1884
+ * ### RemoveFromProductListFailed
1885
+ * Error in underlying API call, more info may be contained in the error message.
1886
+ * ### ProductNotFound
1887
+ * Argument `articleNumbers` did not match any products or variants.
1888
+ * ### MoreThanOneMatchOnArticleNumber
1889
+ * Argument `articleNumbers` matched more than one product/variant.
1890
+ * ### InvalidArticleNumber
1891
+ * Argument `articleNumbers` cannot be null or empty.
1892
+ */
1893
+ removeFromCustomerProductList?: Maybe<CustomerProductListResult>;
1894
+ /**
1895
+ * ## Description
1896
+ * Updates an item in product list, null id updates item in the default product list.
1897
+ * ## Error Codes
1898
+ * ### Unauthorized
1899
+ *
1900
+ * ### ProductListNotFound
1901
+ * Argument `id` did not match any list for this customer.
1902
+ * ### UnableToUpdateProductListItem
1903
+ * Error in underlying API call, more info may be contained in the error message.
1904
+ * ### ProductNotFound
1905
+ * Argument `articleNumber` did not match any products or variants.
1906
+ * ### MoreThanOneMatchOnArticleNumber
1907
+ * Argument `articleNumber` matched more than one product/variant.
1908
+ * ### InvalidArticleNumber
1909
+ * Argument `articleNumber` cannot be null or empty.
1910
+ */
1911
+ updateCustomerProductListItem?: Maybe<CustomerProductListResult>;
1912
+ /**
1913
+ * ## Description
1914
+ * Updates a product list for a logged in customer
1915
+ * ## Error Codes
1916
+ * ### Unauthorized
1917
+ *
1918
+ * ### ProductListNotFound
1919
+ * Argument `id` did not match any list for this customer.
1920
+ * ### UnableToUpdateProductList
1921
+ * Error in underlying API call, more info may be contained in the error message.
1922
+ */
1923
+ updateCustomerProductList?: Maybe<CustomerProductListResult>;
1924
+ /** Error codes: CustomerNotFound, CustomerAlreadyActivated, UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput */
1925
+ activateExternalCustomerById?: Maybe<ActivateExternalCustomerByIdResult>;
1926
+ /** Error codes: CustomerNotFound, CustomerAlreadyActivated, UnableToActivateCustomer, UnableToLoginCustomer, InvalidCustomerActivateInput */
1927
+ activateExternalCustomerByToken?: Maybe<ActivateExternalCustomerByTokenResult>;
1928
+ /** This mutation deletes a customer. An authorization token is needed in the request, in order to be able to delete the customer. */
1929
+ deleteCustomer?: Maybe<Scalars['Boolean']>;
1930
+ loginExternalCustomer?: Maybe<LoginExternalCustomerResult>;
1931
+ /**
1932
+ * LoginMutation will log a user in.
1933
+ * One of email, pid, externalId, memberNumber or customerId is required, along with a password.
1934
+ * Returns an authorization token if the login was successful.
1935
+ */
1936
+ login?: Maybe<LoginResponse>;
1937
+ /** Requires a valid email and returns boolean value if successful, otherwise an error will be thrown */
1938
+ requestPasswordReset?: Maybe<RequestPasswordResetResult>;
1939
+ /** Requires a valid resetPasswordToken and a new password and if successful will return a authentication token */
1940
+ resetPassword?: Maybe<ResetPassword>;
1941
+ /**
1942
+ * The SignUp-mutation is used for creating a customer.
1943
+ *
1944
+ * If the sign up is successful the customer may be considered to be logged on and an authentication token will be returned
1945
+ */
1946
+ signUp?: Maybe<SignUpResponse>;
1947
+ /**
1948
+ * ## Description
1949
+ * This mutation's purpose is to update a existing customer's group using an access code. An authorization token is needed in the request, in order to be able to update the customer.
1950
+ * ## Error Codes
1951
+ * ### Unauthorized
1952
+ * Unauthorized
1953
+ * ### UnableToUpdateCustomer
1954
+ * Error in underlying API call, more info may be contained in the error message.
1955
+ * ### CustomerAlreadyUpdated
1956
+ * Customer already in the customer group
1957
+ * ### CustomerNotFound
1958
+ * No match on customer with access code
1959
+ */
1960
+ updateCustomerGroup?: Maybe<UpdateCustomerGroupResult>;
1961
+ /** This mutation's purpose is to update an existing customer's information. An authorization token is needed in the request, in order to be able to update the customer. */
1962
+ updateCustomer?: Maybe<CustomerUpdateResponse>;
1963
+ /** This mutation's purpose is to update a existing customer's price list using an access code. An authorization token is needed in the request, in order to be able to update the customer. */
1964
+ updateCustomerPriceList?: Maybe<UpdateCustomerPriceListResult>;
1965
+ /** The updatePassword mutation updates the customers password. Both the old password and a new password is a requirement. */
1966
+ updatePassword?: Maybe<UpdatePasswordResult>;
1967
+ /** Adds products to the cart where you can add comments to the products and determine their quantities. Replies with the affected cart if a cartId has been presented, otherwise a new cart will be created. */
1968
+ addMultipleToCart?: Maybe<CartMutation>;
1969
+ /** Adds a product to the cart where you can add a comment to the product and determine the quantity. Replies with the affected cart if a cartId has been presented, otherwise a new cart will be created. */
1970
+ addToCart?: Maybe<CartMutation>;
1971
+ /** This mutation is used to reduce the quantity of a product in the cart, replies with the affected cart ruled by the cartId in the input. */
1972
+ decrementItemQuantity?: Maybe<CartMutation>;
1973
+ /** Used to add a specific quantity to a product in the cart. Replies with the affected cart ruled by the cartId in the input */
1974
+ setItemQuantity?: Maybe<CartMutation>;
1975
+ /** This mutation is used to increase the quantity of a product in the cart, replies with the affected cart ruled by the cartId in the input */
1976
+ incrementItemQuantity?: Maybe<CartMutation>;
1977
+ /** Removes a specific product in the cart, replies with the affected cart */
1978
+ removeFromCart?: Maybe<CartMutation>;
1979
+ /** Removes specific items from the cart, replies with the affected cart */
1980
+ removeMultipleFromCart?: Maybe<CartMutation>;
1981
+ /** Responds with the affected cart. */
1982
+ updateCart?: Maybe<UpdateCartMutation>;
1983
+ toggleListFilterItem?: Maybe<ListFilter>;
1984
+ clearListFilter?: Maybe<ListFilter>;
1985
+ clearAllFilters?: Maybe<Scalars['Boolean']>;
1986
+ setBoolFilter?: Maybe<BooleanFilter>;
1987
+ setRangeFilter?: Maybe<NumericRangeFilter>;
1988
+ clearRangeFilter?: Maybe<NumericRangeFilter>;
1989
+ toggleMultiListFilterItem?: Maybe<MultiListFilter>;
1990
+ setMultiListFilter?: Maybe<MultiListFilter>;
1991
+ clearMultiListFilter?: Maybe<MultiListFilter>;
1992
+ clearMultiListFilterList?: Maybe<MultiListFilter>;
1991
1993
  };
1992
1994
 
1993
- export type ProductConfigurationPriceCalculationVariable = {
1994
- __typename?: 'ProductConfigurationPriceCalculationVariable';
1995
- id: Scalars['ID'];
1996
- name?: Maybe<Scalars['String']>;
1997
- };
1998
1995
 
1999
- export type ProductConfigurationPriceInput = {
2000
- optionId: Scalars['ID'];
1996
+ export type MutationSubscribeToStockNotificationsArgs = {
1997
+ email: Scalars['String'];
1998
+ articleNumber: Scalars['String'];
2001
1999
  };
2002
2000
 
2003
- export enum ProductCustomFieldType {
2004
- String = 'STRING',
2005
- Bool = 'BOOL',
2006
- List = 'LIST',
2007
- Html = 'HTML',
2008
- MultiLevelList = 'MULTI_LEVEL_LIST'
2009
- }
2010
2001
 
2011
- export type ProductHistory = {
2012
- __typename?: 'ProductHistory';
2013
- previousPrice?: Maybe<Array<Maybe<PriceHistory>>>;
2002
+ export type MutationSubscribeToNewsletterArgs = {
2003
+ email: Scalars['String'];
2014
2004
  };
2015
2005
 
2016
- export type ProductImage = {
2017
- __typename?: 'ProductImage';
2018
- /** Alternate text for the image, commonly used for the alt attribute of img-tags. */
2019
- alt?: Maybe<Scalars['String']>;
2020
- /** Extra information, commonly used for the title attribute of img-tag. Should be shown on hover. */
2021
- title?: Maybe<Scalars['String']>;
2022
- /** @deprecated Images will no longer be offered in different sizes. Instead use 'url' in conjunction with our image resizing service. */
2023
- sizes: Array<Maybe<ProductImageSize>>;
2024
- url?: Maybe<Scalars['Uri']>;
2025
- modifiedDate?: Maybe<Scalars['String']>;
2026
- };
2027
2006
 
2028
- export type ProductImageSize = {
2029
- __typename?: 'ProductImageSize';
2030
- width?: Maybe<Scalars['Int']>;
2031
- height?: Maybe<Scalars['Int']>;
2032
- url?: Maybe<Scalars['Uri']>;
2007
+ export type MutationAddToCustomerProductListArgs = {
2008
+ id?: Maybe<Scalars['ID']>;
2009
+ items: Array<AddToCustomerProductListInput>;
2033
2010
  };
2034
2011
 
2035
- export enum ProductOrderOptions {
2036
- ArticleNumber = 'ARTICLE_NUMBER',
2037
- Name = 'NAME',
2038
- PublishDate = 'PUBLISH_DATE',
2039
- Price = 'PRICE',
2040
- SubHeading = 'SUB_HEADING',
2041
- Custom = 'CUSTOM',
2042
- Bestseller = 'BESTSELLER'
2043
- }
2044
2012
 
2045
- export type ProductPreOrder = {
2046
- __typename?: 'ProductPreOrder';
2047
- fromDate?: Maybe<Scalars['DateTime']>;
2048
- toDate?: Maybe<Scalars['DateTime']>;
2013
+ export type MutationCreateCustomerProductListArgs = {
2014
+ input: CreateCustomerProductListInput;
2049
2015
  };
2050
2016
 
2051
- export type ProductPriceDateSpan = {
2052
- __typename?: 'ProductPriceDateSpan';
2053
- startDate?: Maybe<Scalars['DateTime']>;
2054
- endDate?: Maybe<Scalars['DateTime']>;
2017
+
2018
+ export type MutationDeleteCustomerProductListArgs = {
2019
+ id: Scalars['ID'];
2055
2020
  };
2056
2021
 
2057
- export type ProductSearchResult = {
2058
- __typename?: 'ProductSearchResult';
2059
- result: Array<Maybe<Product>>;
2060
- filters?: Maybe<Array<Maybe<Filter>>>;
2061
- totalResults?: Maybe<Scalars['Int']>;
2022
+
2023
+ export type MutationRemoveFromCustomerProductListArgs = {
2024
+ id?: Maybe<Scalars['ID']>;
2025
+ articleNumbers?: Maybe<Array<Scalars['String']>>;
2062
2026
  };
2063
2027
 
2064
- export type ProductSortOrder = {
2065
- __typename?: 'ProductSortOrder';
2066
- text: Scalars['String'];
2067
- value: ProductOrderOptions;
2068
- isDefault: Scalars['Boolean'];
2069
- defaultDirection: SortDirection;
2028
+
2029
+ export type MutationUpdateCustomerProductListItemArgs = {
2030
+ input: UpdateCustomerProductListItemInput;
2070
2031
  };
2071
2032
 
2072
- export type ProductVariant = {
2073
- __typename?: 'ProductVariant';
2074
- id: Scalars['String'];
2075
- articleNumber: Scalars['String'];
2076
- /** Variant values (combination of option values) */
2077
- values: Array<Maybe<Scalars['String']>>;
2078
- /**
2079
- * The current price.
2080
- * - Will be a Customer specific price if that Customer has a separate price list.
2081
- * - Will be the member price if Customer is logged in and `Product.hasMemberPrice` is true.
2082
- * - Will be the non-member price if Customer is not logged in and `Product.hasMemberPrice` is true.
2083
- */
2084
- price?: Maybe<Price>;
2085
- /**
2086
- * The previous price (i.e. this will be higher than `price` if the product is
2087
- * discounted). Will be a Customer specific previous price, if that Customer has
2088
- * a separate price list.
2089
- */
2090
- previousPrice?: Maybe<Price>;
2091
- /** Default price for the product in the channel, disregards Customer specific prices. */
2092
- defaultPrice?: Maybe<Price>;
2093
- /** Default previous price for the product in the channel, disregards Customer specific prices. */
2094
- defaultPreviousPrice?: Maybe<Price>;
2095
- /** Not in use. Always null. */
2096
- recommendedPrice?: Maybe<Price>;
2097
- /** The time interval of the discounted price. */
2098
- priceDateSpan?: Maybe<ProductPriceDateSpan>;
2099
- /**
2100
- * The price a Customer would get if member prices are active and the Customer is logged in.
2101
- * - Will be null if `Product.hasMemberPrice` is false.
2102
- * - Will be set if `Product.hasMemberPrice` is true.
2103
- */
2104
- memberPrice?: Maybe<Price>;
2105
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2106
- stockStatus?: Maybe<StockStatus>;
2107
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2108
- warehouseStock?: Maybe<Array<Maybe<Warehouse>>>;
2109
- images?: Maybe<Array<Maybe<ProductImage>>>;
2110
- barcode?: Maybe<Scalars['String']>;
2111
- /** Get Product History within the set number of days */
2112
- history?: Maybe<ProductVariantHistory>;
2033
+
2034
+ export type MutationUpdateCustomerProductListArgs = {
2035
+ input: UpdateCustomerProductListInput;
2113
2036
  };
2114
2037
 
2115
2038
 
2116
- export type ProductVariantWarehouseStockArgs = {
2117
- includeInactive?: Maybe<Scalars['Boolean']>;
2039
+ export type MutationActivateExternalCustomerByIdArgs = {
2040
+ input?: Maybe<ActivateExternalCustomerByIdInput>;
2118
2041
  };
2119
2042
 
2120
2043
 
2121
- export type ProductVariantHistoryArgs = {
2122
- days?: Maybe<Scalars['Int']>;
2044
+ export type MutationActivateExternalCustomerByTokenArgs = {
2045
+ input?: Maybe<ActivateExternalCustomerByTokenInput>;
2123
2046
  };
2124
2047
 
2125
- export type ProductVariantHistory = {
2126
- __typename?: 'ProductVariantHistory';
2127
- previousPrice?: Maybe<Array<Maybe<PriceHistory>>>;
2048
+
2049
+ export type MutationLoginExternalCustomerArgs = {
2050
+ input?: Maybe<LoginExternalCustomerInput>;
2128
2051
  };
2129
2052
 
2130
- export type ProductVariantOption = {
2131
- __typename?: 'ProductVariantOption';
2132
- name?: Maybe<Scalars['String']>;
2133
- values: Array<Maybe<Scalars['String']>>;
2053
+
2054
+ export type MutationLoginArgs = {
2055
+ password?: Maybe<Scalars['String']>;
2056
+ email?: Maybe<Scalars['String']>;
2057
+ pid?: Maybe<Scalars['String']>;
2058
+ externalId?: Maybe<Scalars['String']>;
2059
+ memberNumber?: Maybe<Scalars['String']>;
2060
+ externalHashId?: Maybe<Scalars['String']>;
2061
+ timeStamp?: Maybe<Scalars['String']>;
2062
+ customerId?: Maybe<Scalars['Int']>;
2134
2063
  };
2135
2064
 
2136
- export type ProductVariants = {
2137
- __typename?: 'ProductVariants';
2138
- /** Available product variant options. */
2139
- options: Array<Maybe<ProductVariantOption>>;
2140
- /** Product variants, contains all possible values of options. */
2141
- values: Array<Maybe<ProductVariant>>;
2065
+
2066
+ export type MutationRequestPasswordResetArgs = {
2067
+ email: Scalars['String'];
2142
2068
  };
2143
2069
 
2144
- export type Query = {
2145
- __typename?: 'Query';
2146
- store?: Maybe<Store>;
2147
- stores: Array<Maybe<Store>>;
2148
- startPage?: Maybe<StartPage>;
2149
- searchAutoComplete?: Maybe<SearchAutoCompleteResult>;
2150
- search?: Maybe<SearchResult>;
2151
- /** get product, category or page by path. */
2152
- route?: Maybe<Route>;
2153
- product?: Maybe<Product>;
2154
- products: Array<Maybe<Product>>;
2155
- /** Fetch a single page by ID. */
2156
- page?: Maybe<Page>;
2157
- /** Fetch all non-hidden pages. If you are using nested pages, only root level pages will be returned. */
2158
- pages: Array<Maybe<Page>>;
2159
- /** fetch order by id */
2160
- order?: Maybe<Order>;
2161
- /** Fetches my pages content */
2162
- myPagesContent?: Maybe<MyPagesContent>;
2163
- /** get customer product list by id, null gets default product list */
2164
- customerProductList?: Maybe<CustomerProductList>;
2165
- customerProductLists: Array<Maybe<CustomerProductList>>;
2166
- /** Fetches customer-unique offers */
2167
- customerLoyalty?: Maybe<CustomerLoyalty>;
2168
- /** Lookup a customer by a mobile phone number */
2169
- customerLookup?: Maybe<Customer>;
2170
- customer?: Maybe<Customer>;
2171
- /**
2172
- * Used in the sign up process when the shop has a third party customer repository, e.g. Voyado.
2173
- *
2174
- * Error codes: INVALID_VALUE (if `key` is null), ExternalCustomerLookupFailed
2175
- */
2176
- externalCustomerLookup?: Maybe<ExternalCustomerResult>;
2177
- /** Get information on person by Key(personal id number or phone number) */
2178
- personLookup?: Maybe<PersonLookup>;
2179
- /**
2180
- * Returns content found, either by a list of content Ids, or filtered by tags.
2181
- * In the case of filtering by ids, not found content Ids are listed as well.
2182
- */
2183
- content?: Maybe<MultipleContent>;
2184
- /** get channel by id, null gets default channel */
2185
- channel?: Maybe<Channel>;
2186
- /** get all channels */
2187
- channels: Array<Maybe<Channel>>;
2188
- /** get categories by channel id, culture, root and culture */
2189
- categories: Array<Maybe<Category>>;
2190
- /** get category by id */
2191
- category?: Maybe<Category>;
2192
- cart?: Maybe<Cart>;
2070
+
2071
+ export type MutationResetPasswordArgs = {
2072
+ resetPasswordToken: Scalars['String'];
2073
+ newPassword: Scalars['String'];
2193
2074
  };
2194
2075
 
2195
2076
 
2196
- export type QueryStoreArgs = {
2197
- id: Scalars['Int'];
2077
+ export type MutationSignUpArgs = {
2078
+ input: SignUpInput;
2198
2079
  };
2199
2080
 
2200
2081
 
2201
- export type QueryStoresArgs = {
2202
- includeInactive?: Scalars['Boolean'];
2082
+ export type MutationUpdateCustomerGroupArgs = {
2083
+ customerGroupAccessCode: Scalars['String'];
2203
2084
  };
2204
2085
 
2205
2086
 
2206
- export type QueryStartPageArgs = {
2207
- id?: Maybe<Scalars['Int']>;
2087
+ export type MutationUpdateCustomerArgs = {
2088
+ input: CustomerUpdateInput;
2208
2089
  };
2209
2090
 
2210
2091
 
2211
- export type QuerySearchAutoCompleteArgs = {
2212
- term: Scalars['String'];
2092
+ export type MutationUpdateCustomerPriceListArgs = {
2093
+ priceListAccessCode: Scalars['String'];
2213
2094
  };
2214
2095
 
2215
2096
 
2216
- export type QuerySearchArgs = {
2217
- term: Scalars['String'];
2097
+ export type MutationUpdatePasswordArgs = {
2098
+ oldPassword: Scalars['String'];
2099
+ newPassword: Scalars['String'];
2218
2100
  };
2219
2101
 
2220
2102
 
2221
- export type QueryRouteArgs = {
2222
- path: Scalars['String'];
2103
+ export type MutationAddMultipleToCartArgs = {
2104
+ cartId?: Maybe<Scalars['String']>;
2105
+ items: Array<Maybe<AddMultipleToCartInput>>;
2223
2106
  };
2224
2107
 
2225
2108
 
2226
- export type QueryProductArgs = {
2227
- articleNumber?: Maybe<Scalars['String']>;
2228
- id?: Maybe<Scalars['Int']>;
2229
- barcode?: Maybe<Scalars['String']>;
2109
+ export type MutationAddToCartArgs = {
2110
+ input: AddToCartInput;
2230
2111
  };
2231
2112
 
2232
2113
 
2233
- export type QueryProductsArgs = {
2234
- articleNumbers?: Maybe<Array<Maybe<Scalars['String']>>>;
2235
- ids?: Maybe<Array<Maybe<Scalars['Int']>>>;
2236
- barcodes?: Maybe<Array<Maybe<Scalars['String']>>>;
2114
+ export type MutationDecrementItemQuantityArgs = {
2115
+ input: ChangeByOneItemQuantityInput;
2237
2116
  };
2238
2117
 
2239
2118
 
2240
- export type QueryPageArgs = {
2241
- id: Scalars['Int'];
2119
+ export type MutationSetItemQuantityArgs = {
2120
+ input: SetItemQuantityInput;
2242
2121
  };
2243
2122
 
2244
2123
 
2245
- export type QueryOrderArgs = {
2246
- id?: Maybe<Scalars['Int']>;
2247
- orderId?: Maybe<Scalars['ID']>;
2124
+ export type MutationIncrementItemQuantityArgs = {
2125
+ input: ChangeByOneItemQuantityInput;
2248
2126
  };
2249
2127
 
2250
2128
 
2251
- export type QueryCustomerProductListArgs = {
2252
- id?: Maybe<Scalars['ID']>;
2253
- shareToken?: Maybe<Scalars['String']>;
2129
+ export type MutationRemoveFromCartArgs = {
2130
+ input: RemoveFromCartInput;
2254
2131
  };
2255
2132
 
2256
2133
 
2257
- export type QueryCustomerLookupArgs = {
2258
- phoneNumber?: Maybe<Scalars['String']>;
2134
+ export type MutationRemoveMultipleFromCartArgs = {
2135
+ input: RemoveMultipleFromCartInput;
2259
2136
  };
2260
2137
 
2261
2138
 
2262
- export type QueryExternalCustomerLookupArgs = {
2263
- key?: Maybe<Scalars['String']>;
2139
+ export type MutationUpdateCartArgs = {
2140
+ input: UpdateCartInput;
2264
2141
  };
2265
2142
 
2266
2143
 
2267
- export type QueryPersonLookupArgs = {
2268
- key: Scalars['String'];
2144
+ export type MutationToggleListFilterItemArgs = {
2145
+ value: Scalars['String'];
2146
+ parentId: Scalars['String'];
2147
+ set?: Maybe<Scalars['Boolean']>;
2269
2148
  };
2270
2149
 
2271
2150
 
2272
- export type QueryContentArgs = {
2273
- ids?: Maybe<Array<Maybe<Scalars['String']>>>;
2274
- tags?: Maybe<Array<Maybe<Scalars['String']>>>;
2151
+ export type MutationClearListFilterArgs = {
2152
+ id: Scalars['String'];
2275
2153
  };
2276
2154
 
2277
2155
 
2278
- export type QueryChannelArgs = {
2279
- id?: Maybe<Scalars['String']>;
2156
+ export type MutationSetBoolFilterArgs = {
2157
+ value: Scalars['Boolean'];
2158
+ id: Scalars['String'];
2280
2159
  };
2281
2160
 
2282
2161
 
2283
- export type QueryCategoriesArgs = {
2284
- root?: Maybe<Scalars['Int']>;
2285
- levels?: Maybe<Scalars['Int']>;
2286
- includeHidden?: Maybe<Scalars['Boolean']>;
2162
+ export type MutationSetRangeFilterArgs = {
2163
+ value: Array<Scalars['Decimal']>;
2164
+ id: Scalars['String'];
2287
2165
  };
2288
2166
 
2289
2167
 
2290
- export type QueryCategoryArgs = {
2291
- id: Scalars['ID'];
2168
+ export type MutationClearRangeFilterArgs = {
2169
+ id: Scalars['String'];
2292
2170
  };
2293
2171
 
2294
2172
 
2295
- export type QueryCartArgs = {
2296
- id?: Maybe<Scalars['String']>;
2173
+ export type MutationToggleMultiListFilterItemArgs = {
2174
+ value: Scalars['String'];
2175
+ listIndex: Scalars['Int'];
2176
+ filter: MultiListFilter;
2297
2177
  };
2298
2178
 
2299
- export type RangeFilterInput = {
2179
+
2180
+ export type MutationSetMultiListFilterArgs = {
2181
+ values?: Maybe<Array<Scalars['String']>>;
2300
2182
  id: Scalars['String'];
2301
- min?: Maybe<Scalars['Decimal']>;
2302
- max?: Maybe<Scalars['Decimal']>;
2303
2183
  };
2304
2184
 
2305
- export type RecommendedProducts = {
2306
- __typename?: 'RecommendedProducts';
2307
- /** Customers who bought this product also bought these products. */
2308
- bought?: Maybe<Array<Maybe<Product>>>;
2309
- /** Customers who viewed this product also viewed these products. */
2310
- viewed?: Maybe<Array<Maybe<Product>>>;
2311
- /** A shuffled top list of popular products. */
2312
- shuffledToplist?: Maybe<Array<Maybe<Product>>>;
2185
+
2186
+ export type MutationClearMultiListFilterArgs = {
2187
+ id: Scalars['String'];
2313
2188
  };
2314
2189
 
2315
2190
 
2316
- export type RecommendedProductsBoughtArgs = {
2317
- count?: Maybe<Scalars['Int']>;
2191
+ export type MutationClearMultiListFilterListArgs = {
2192
+ listIndex: Scalars['Int'];
2193
+ filter: MultiListFilter;
2318
2194
  };
2319
2195
 
2196
+ export type CustomerProductListResult = {
2197
+ __typename?: 'CustomerProductListResult';
2198
+ success?: Maybe<Scalars['Boolean']>;
2199
+ /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2200
+ customerProductList?: Maybe<CustomerProductList>;
2201
+ };
2320
2202
 
2321
- export type RecommendedProductsViewedArgs = {
2322
- count?: Maybe<Scalars['Int']>;
2203
+ export type AddToCustomerProductListInput = {
2204
+ articleNumber: Scalars['String'];
2205
+ quantity?: Maybe<Scalars['Int']>;
2206
+ description?: Maybe<Scalars['String']>;
2323
2207
  };
2324
2208
 
2209
+ export type CreateCustomerProductListInput = {
2210
+ /** The type of list created. Omit this and the default type will be used. */
2211
+ typeId?: Maybe<Scalars['Int']>;
2212
+ name: Scalars['String'];
2213
+ description?: Maybe<Scalars['String']>;
2214
+ };
2325
2215
 
2326
- export type RecommendedProductsShuffledToplistArgs = {
2327
- count?: Maybe<Scalars['Int']>;
2216
+ export type DeleteCustomerProductListResult = {
2217
+ __typename?: 'DeleteCustomerProductListResult';
2218
+ success?: Maybe<Scalars['Boolean']>;
2328
2219
  };
2329
2220
 
2330
- export type RemoveFromCartInput = {
2331
- cartId: Scalars['String'];
2332
- itemId: Scalars['String'];
2221
+ export type UpdateCustomerProductListItemInput = {
2222
+ id: Scalars['ID'];
2223
+ articleNumber: Scalars['String'];
2224
+ /** Default value is 1. */
2225
+ quantity?: Maybe<Scalars['Int']>;
2226
+ description?: Maybe<Scalars['String']>;
2333
2227
  };
2334
2228
 
2335
- export type RemoveMultipleFromCartInput = {
2336
- cartId: Scalars['String'];
2337
- itemIds: Array<Scalars['String']>;
2229
+ export type UpdateCustomerProductListInput = {
2230
+ id: Scalars['ID'];
2231
+ typeId: Scalars['ID'];
2232
+ name: Scalars['String'];
2233
+ description?: Maybe<Scalars['String']>;
2338
2234
  };
2339
2235
 
2340
- export type RequestPasswordResetResult = {
2341
- __typename?: 'RequestPasswordResetResult';
2236
+ export type ActivateExternalCustomerByIdResult = {
2237
+ __typename?: 'ActivateExternalCustomerByIdResult';
2342
2238
  success: Scalars['Boolean'];
2239
+ token?: Maybe<Token>;
2343
2240
  };
2344
2241
 
2345
- export type ResetPassword = {
2346
- __typename?: 'ResetPassword';
2347
- token: Token;
2242
+ /**
2243
+ * Authorization token that is used for customer actions such as login, delete or update
2244
+ * The token contains three different roles:
2245
+ * 0: Standard.
2246
+ * 1: Lite
2247
+ * 2: VoyadoSemiLogin
2248
+ */
2249
+ export type Token = {
2250
+ __typename?: 'Token';
2251
+ value: Scalars['String'];
2348
2252
  };
2349
2253
 
2350
- /** Represents a route to either a Category, a Product, a Page or the StartPage. */
2351
- export type Route = {
2352
- __typename?: 'Route';
2353
- id: Scalars['String'];
2354
- path: Scalars['String'];
2355
- canonicalPath?: Maybe<Scalars['String']>;
2356
- slug: Scalars['String'];
2357
- /**
2358
- * The Category, Product, Page or StartPage that the Route resolves to. NB:
2359
- * Carries a performance cost, as asking for this will result in a separate API
2360
- * call in the backend.
2361
- */
2362
- object?: Maybe<Document>;
2363
- /**
2364
- * Parents are resolved by traversing the path, starting from the end, and are
2365
- * guaranteed to be returned in that order. NB: Carries a performance cost, as
2366
- * asking for this will result in a different, slightly more expensive (the more
2367
- * categories a shop has, the more expensive this gets), route query in the backend.
2368
- */
2369
- parents?: Maybe<Array<Maybe<Route>>>;
2370
- /**
2371
- * Alternative routes for this object, if it exists in another channel and/or in
2372
- * another language.NB: Carries no additional performance cost.
2373
- */
2374
- alternateRoutes?: Maybe<Array<Maybe<AlternateRoute>>>;
2375
- /** N.B. for troubleshooting routes only! */
2376
- debug?: Maybe<Scalars['String']>;
2377
- /** Breadcrumb texts; starting with the root parent, ending on this route. */
2378
- breadcrumbs?: Maybe<Array<Maybe<Scalars['String']>>>;
2254
+ export type ActivateExternalCustomerByIdInput = {
2255
+ externalCustomerId: Scalars['String'];
2379
2256
  };
2380
2257
 
2381
- export type SearchAutoCompleteResult = {
2382
- __typename?: 'SearchAutoCompleteResult';
2383
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2384
- products?: Maybe<ProductAutoCompleteResult>;
2385
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2386
- categories?: Maybe<CategoryAutoCompleteResult>;
2258
+ export type ActivateExternalCustomerByTokenResult = {
2259
+ __typename?: 'ActivateExternalCustomerByTokenResult';
2260
+ success: Scalars['Boolean'];
2261
+ customer?: Maybe<ExternalCustomer>;
2387
2262
  };
2388
2263
 
2389
-
2390
- export type SearchAutoCompleteResultCategoriesArgs = {
2391
- first?: Maybe<Scalars['Paging']>;
2264
+ export type ActivateExternalCustomerByTokenInput = {
2265
+ externalCustomerToken: Scalars['String'];
2392
2266
  };
2393
2267
 
2394
- export type SearchResult = {
2395
- __typename?: 'SearchResult';
2396
- products?: Maybe<ProductSearchResult>;
2397
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2398
- categories?: Maybe<CategorySearchResult>;
2268
+ export type LoginExternalCustomerResult = {
2269
+ __typename?: 'LoginExternalCustomerResult';
2270
+ token?: Maybe<Token>;
2399
2271
  };
2400
2272
 
2401
-
2402
- export type SearchResultProductsArgs = {
2403
- paging?: Maybe<PagingInput>;
2404
- filters?: Maybe<FilterInput>;
2273
+ export type LoginExternalCustomerInput = {
2274
+ externalCustomerToken: Scalars['String'];
2405
2275
  };
2406
2276
 
2407
-
2408
- export type SearchResultCategoriesArgs = {
2409
- paging?: Maybe<PagingInput>;
2277
+ /** The response will contain a authorization token if the login was successful */
2278
+ export type LoginResponse = {
2279
+ __typename?: 'LoginResponse';
2280
+ token: Token;
2410
2281
  };
2411
2282
 
2412
- export type SelectedProductConfiguration = {
2413
- __typename?: 'SelectedProductConfiguration';
2414
- name?: Maybe<Scalars['String']>;
2415
- option: SelectedProductConfigurationOption;
2283
+ export type RequestPasswordResetResult = {
2284
+ __typename?: 'RequestPasswordResetResult';
2285
+ success: Scalars['Boolean'];
2416
2286
  };
2417
2287
 
2418
- export type SelectedProductConfigurationOption = {
2419
- __typename?: 'SelectedProductConfigurationOption';
2420
- id: Scalars['ID'];
2421
- name?: Maybe<Scalars['String']>;
2288
+ export type ResetPassword = {
2289
+ __typename?: 'ResetPassword';
2290
+ token: Token;
2422
2291
  };
2423
2292
 
2424
- export type SetItemQuantityInput = {
2425
- cartId: Scalars['String'];
2426
- itemId: Scalars['String'];
2427
- quantity: Scalars['Int'];
2293
+ export type SignUpResponse = {
2294
+ __typename?: 'SignUpResponse';
2295
+ token: Token;
2428
2296
  };
2429
2297
 
2430
- export type Shipping = {
2431
- __typename?: 'Shipping';
2432
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2433
- freeShippingLimit?: Maybe<FreeShippingLimit>;
2298
+ export type SignUpInput = {
2299
+ type: CustomerType;
2300
+ pid?: Maybe<Scalars['String']>;
2301
+ organizationNumber?: Maybe<Scalars['String']>;
2302
+ emailAddress: Scalars['String'];
2303
+ password?: Maybe<Scalars['String']>;
2304
+ /** Customer id for external system */
2305
+ externalId?: Maybe<Scalars['String']>;
2306
+ billingAddress: SignUpBillingAddressInput;
2307
+ deliveryAddresses?: Maybe<Array<Maybe<SignUpDeliveryAddressInput>>>;
2308
+ preferences?: Maybe<SignUpPreferencesInput>;
2309
+ consents?: Maybe<Array<Maybe<SignUpConsentInput>>>;
2310
+ externalAttributes?: Maybe<Array<Maybe<SignUpExternalAttribute>>>;
2311
+ dynamicContent?: Maybe<Scalars['String']>;
2312
+ priceListAccessCode?: Maybe<Scalars['String']>;
2434
2313
  };
2435
2314
 
2436
- /**
2437
- * BillingAddress itself is a required field. Whether fields belonging to
2438
- * BillingAddress are required is determined by privateCustomerFields or
2439
- * businessCustomerFields, found on channel.settings.countrySettings.
2440
- */
2315
+ export enum CustomerType {
2316
+ Private = 'PRIVATE',
2317
+ Company = 'COMPANY'
2318
+ }
2319
+
2320
+ /** BillingAddress itself is a required field. Whether fields belonging to BillingAddress are required is determined by privateCustomerFields or businessCustomerFields, found on channel.settings.countrySettings. */
2441
2321
  export type SignUpBillingAddressInput = {
2442
2322
  mobilePhone?: Maybe<SignUpPropertyInput>;
2443
2323
  phone?: Maybe<SignUpPropertyInput>;
@@ -2455,12 +2335,79 @@ export type SignUpBillingAddressInput = {
2455
2335
  firstName?: Maybe<SignUpPropertyInput>;
2456
2336
  };
2457
2337
 
2338
+ /** This input is used for fields that can be auto filled with PersonLookup */
2339
+ export type SignUpPropertyInput = {
2340
+ /** If the user has made no change this should contain the encrypted value from PersonLookup, otherwise populate with the user input. */
2341
+ value?: Maybe<Scalars['String']>;
2342
+ /** Specifies if the value field is encrypted or not. */
2343
+ hasChanged?: Maybe<Scalars['Boolean']>;
2344
+ };
2345
+
2346
+ export type SignUpDeliveryAddressInput = {
2347
+ mobilePhone?: Maybe<Scalars['String']>;
2348
+ phone?: Maybe<Scalars['String']>;
2349
+ region?: Maybe<Scalars['String']>;
2350
+ countryCode?: Maybe<Scalars['String']>;
2351
+ city?: Maybe<Scalars['String']>;
2352
+ postalCode?: Maybe<Scalars['String']>;
2353
+ streetName?: Maybe<Scalars['String']>;
2354
+ co?: Maybe<Scalars['String']>;
2355
+ department?: Maybe<Scalars['String']>;
2356
+ municipality?: Maybe<Scalars['String']>;
2357
+ companyAtt?: Maybe<Scalars['String']>;
2358
+ company?: Maybe<Scalars['String']>;
2359
+ lastName?: Maybe<Scalars['String']>;
2360
+ firstName?: Maybe<Scalars['String']>;
2361
+ addressName?: Maybe<Scalars['String']>;
2362
+ };
2363
+
2364
+ export type SignUpPreferencesInput = {
2365
+ type?: Maybe<SignUpPreferencesCommunicationInput>;
2366
+ storeLocationId?: Maybe<Scalars['Int']>;
2367
+ };
2368
+
2369
+ export type SignUpPreferencesCommunicationInput = {
2370
+ acceptsEmail?: Maybe<Scalars['Boolean']>;
2371
+ acceptsPostal?: Maybe<Scalars['Boolean']>;
2372
+ acceptsSms?: Maybe<Scalars['Boolean']>;
2373
+ culture?: Maybe<Scalars['String']>;
2374
+ };
2375
+
2458
2376
  export type SignUpConsentInput = {
2459
2377
  id?: Maybe<Scalars['String']>;
2460
2378
  value?: Maybe<Scalars['Boolean']>;
2461
2379
  };
2462
2380
 
2463
- export type SignUpDeliveryAddressInput = {
2381
+ export type SignUpExternalAttribute = {
2382
+ name: Scalars['String'];
2383
+ value: Scalars['String'];
2384
+ };
2385
+
2386
+ export type UpdateCustomerGroupResult = {
2387
+ __typename?: 'UpdateCustomerGroupResult';
2388
+ success: Scalars['Boolean'];
2389
+ };
2390
+
2391
+ /** Responds with a bool value whether the update has been successful or not */
2392
+ export type CustomerUpdateResponse = {
2393
+ __typename?: 'CustomerUpdateResponse';
2394
+ success: Scalars['Boolean'];
2395
+ };
2396
+
2397
+ export type CustomerUpdateInput = {
2398
+ pid?: Maybe<Scalars['String']>;
2399
+ emailAddress?: Maybe<Scalars['String']>;
2400
+ organizationNumber?: Maybe<Scalars['String']>;
2401
+ billingAddress: CustomerUpdateBillingAddressInput;
2402
+ deliveryAddresses?: Maybe<Array<Maybe<CustomerUpdateDeliveryAddressInput>>>;
2403
+ preferences?: Maybe<CustomerUpdatePreferenceInput>;
2404
+ consents?: Maybe<Array<Maybe<CustomerUpdateConsentInput>>>;
2405
+ externalAttributes?: Maybe<Array<Maybe<CustomerUpdateExternalAttribute>>>;
2406
+ dynamicContent?: Maybe<Scalars['String']>;
2407
+ };
2408
+
2409
+ /** Fields that are required to have a value is determined by CustomerFields found in CountrySettings */
2410
+ export type CustomerUpdateBillingAddressInput = {
2464
2411
  mobilePhone?: Maybe<Scalars['String']>;
2465
2412
  phone?: Maybe<Scalars['String']>;
2466
2413
  region?: Maybe<Scalars['String']>;
@@ -2478,229 +2425,131 @@ export type SignUpDeliveryAddressInput = {
2478
2425
  addressName?: Maybe<Scalars['String']>;
2479
2426
  };
2480
2427
 
2481
- export type SignUpExternalAttribute = {
2482
- name: Scalars['String'];
2483
- value: Scalars['String'];
2428
+ export type CustomerUpdateDeliveryAddressInput = {
2429
+ /** If this field is left empty, a new DeliveryAddress will be created. */
2430
+ id?: Maybe<Scalars['Int']>;
2431
+ mobilePhone?: Maybe<Scalars['String']>;
2432
+ phone?: Maybe<Scalars['String']>;
2433
+ region?: Maybe<Scalars['String']>;
2434
+ countryCode?: Maybe<Scalars['String']>;
2435
+ city?: Maybe<Scalars['String']>;
2436
+ postalCode?: Maybe<Scalars['String']>;
2437
+ streetName?: Maybe<Scalars['String']>;
2438
+ co?: Maybe<Scalars['String']>;
2439
+ department?: Maybe<Scalars['String']>;
2440
+ municipality?: Maybe<Scalars['String']>;
2441
+ companyAtt?: Maybe<Scalars['String']>;
2442
+ company?: Maybe<Scalars['String']>;
2443
+ lastName?: Maybe<Scalars['String']>;
2444
+ firstName?: Maybe<Scalars['String']>;
2445
+ addressName?: Maybe<Scalars['String']>;
2484
2446
  };
2485
2447
 
2486
- export type SignUpInput = {
2487
- type: CustomerType;
2488
- pid?: Maybe<Scalars['String']>;
2489
- organizationNumber?: Maybe<Scalars['String']>;
2490
- emailAddress: Scalars['String'];
2491
- password?: Maybe<Scalars['String']>;
2492
- /** Customer id for external system */
2493
- externalId?: Maybe<Scalars['String']>;
2494
- billingAddress: SignUpBillingAddressInput;
2495
- deliveryAddresses?: Maybe<Array<Maybe<SignUpDeliveryAddressInput>>>;
2496
- preferences?: Maybe<SignUpPreferencesInput>;
2497
- consents?: Maybe<Array<Maybe<SignUpConsentInput>>>;
2498
- externalAttributes?: Maybe<Array<Maybe<SignUpExternalAttribute>>>;
2499
- dynamicContent?: Maybe<Scalars['String']>;
2500
- priceListAccessCode?: Maybe<Scalars['String']>;
2448
+ export type CustomerUpdatePreferenceInput = {
2449
+ type?: Maybe<CustomerUpdatePreferencesCommunicationInput>;
2450
+ storeLocationId?: Maybe<Scalars['Int']>;
2501
2451
  };
2502
2452
 
2503
- export type SignUpPreferencesCommunicationInput = {
2453
+ export type CustomerUpdatePreferencesCommunicationInput = {
2504
2454
  acceptsEmail?: Maybe<Scalars['Boolean']>;
2505
2455
  acceptsPostal?: Maybe<Scalars['Boolean']>;
2506
2456
  acceptsSms?: Maybe<Scalars['Boolean']>;
2507
2457
  culture?: Maybe<Scalars['String']>;
2508
2458
  };
2509
2459
 
2510
- export type SignUpPreferencesInput = {
2511
- type?: Maybe<SignUpPreferencesCommunicationInput>;
2512
- storeLocationId?: Maybe<Scalars['Int']>;
2513
- };
2514
-
2515
- /** This input is used for fields that can be auto filled with PersonLookup */
2516
- export type SignUpPropertyInput = {
2517
- /**
2518
- * If the user has made no change this should contain the encrypted value from
2519
- * PersonLookup, otherwise populate with the user input.
2520
- */
2521
- value?: Maybe<Scalars['String']>;
2522
- /** Specifies if the value field is encrypted or not. */
2523
- hasChanged?: Maybe<Scalars['Boolean']>;
2524
- };
2525
-
2526
- export type SignUpResponse = {
2527
- __typename?: 'SignUpResponse';
2528
- token: Token;
2460
+ export type CustomerUpdateConsentInput = {
2461
+ id?: Maybe<Scalars['String']>;
2462
+ value?: Maybe<Scalars['Boolean']>;
2529
2463
  };
2530
2464
 
2531
- export enum SortDirection {
2532
- Ascending = 'ASCENDING',
2533
- Descending = 'DESCENDING'
2534
- }
2535
-
2536
- export type StartPage = Document & {
2537
- __typename?: 'StartPage';
2538
- id: Scalars['Int'];
2465
+ export type CustomerUpdateExternalAttribute = {
2539
2466
  name: Scalars['String'];
2540
- images?: Maybe<Array<Maybe<Image>>>;
2541
- isActive?: Maybe<Scalars['Boolean']>;
2542
- content?: Maybe<Scalars['String']>;
2543
- items?: Maybe<Array<Maybe<StartPageItem>>>;
2544
- /** NB: Carries a performance cost, as asking for this will result in a separate API call in the backend. */
2545
- head?: Maybe<HtmlHead>;
2546
- /** The primary route of this StartPage */
2547
- primaryRoute?: Maybe<Route>;
2548
- breadcrumbText?: Maybe<Scalars['String']>;
2549
- /**
2550
- * Get content data set via the Content Editor. NB: Carries a performance cost,
2551
- * as asking for this will result in a separate API call in the backend.
2552
- */
2553
- data?: Maybe<Content>;
2554
- };
2555
-
2556
- export type StartPageItem = {
2557
- __typename?: 'StartPageItem';
2558
- id: Scalars['Int'];
2559
- row?: Maybe<Scalars['Int']>;
2560
- column?: Maybe<Scalars['Int']>;
2561
- item: StartPageItemObject;
2562
- };
2563
-
2564
- export type StartPageItemObject = Product | CustomItem;
2565
-
2566
- export type StockStatus = {
2567
- __typename?: 'StockStatus';
2568
- /** Globally unique id. */
2569
- id: Scalars['ID'];
2570
- /** The stock status id, not globally unique. */
2571
- stockStatusId: Scalars['ID'];
2572
- text?: Maybe<Scalars['String']>;
2573
- buyable: Scalars['Boolean'];
2574
- stockNotificationEnabled?: Maybe<Scalars['Boolean']>;
2575
- stockDate?: Maybe<Scalars['DateTime']>;
2576
- maxOrderQuantity?: Maybe<Scalars['Int']>;
2577
- };
2578
-
2579
- export type Store = {
2580
- __typename?: 'Store';
2581
- id: Scalars['Int'];
2582
- externalId?: Maybe<Scalars['String']>;
2583
- name?: Maybe<Scalars['String']>;
2584
- city?: Maybe<Scalars['String']>;
2585
- region?: Maybe<Scalars['String']>;
2586
- address1?: Maybe<Scalars['String']>;
2587
- address2?: Maybe<Scalars['String']>;
2588
- description?: Maybe<Scalars['String']>;
2589
- other?: Maybe<Scalars['String']>;
2590
- openHours?: Maybe<Scalars['String']>;
2591
- contact?: Maybe<Scalars['String']>;
2592
- coordinates?: Maybe<Coordinates>;
2593
- };
2594
-
2595
- export type StringValue = {
2596
- __typename?: 'StringValue';
2597
- value?: Maybe<Scalars['String']>;
2598
- };
2599
-
2600
- /**
2601
- * Authorization token that is used for customer actions such as login, delete or update
2602
- * The token contains three different roles:
2603
- * 0: Standard.
2604
- * 1: Lite
2605
- * 2: VoyadoSemiLogin
2606
- */
2607
- export type Token = {
2608
- __typename?: 'Token';
2609
2467
  value: Scalars['String'];
2610
2468
  };
2611
2469
 
2612
- export type Tracking = {
2613
- __typename?: 'Tracking';
2614
- ga?: Maybe<GoogleAnalytics>;
2615
- ga4?: Maybe<GoogleAnalytics4>;
2616
- gtm?: Maybe<GoogleTagManager>;
2617
- fca?: Maybe<FacebookConversionsApi>;
2618
- trackingConsents?: Maybe<TrackingConsents>;
2470
+ export type UpdateCustomerPriceListResult = {
2471
+ __typename?: 'UpdateCustomerPriceListResult';
2472
+ success: Scalars['Boolean'];
2619
2473
  };
2620
2474
 
2621
- export type TrackingConsents = {
2622
- __typename?: 'TrackingConsents';
2623
- useTrackingConsentApi?: Maybe<Scalars['Boolean']>;
2475
+ /** Responds with a boolean value whether the update has been successful or not */
2476
+ export type UpdatePasswordResult = {
2477
+ __typename?: 'UpdatePasswordResult';
2478
+ success: Scalars['Boolean'];
2624
2479
  };
2625
2480
 
2626
- export type UpdateCartInput = {
2627
- cartId?: Maybe<Scalars['String']>;
2628
- items?: Maybe<Array<UpdateCartItemInput>>;
2481
+ export type CartMutation = {
2482
+ __typename?: 'CartMutation';
2483
+ cart?: Maybe<Cart>;
2629
2484
  };
2630
2485
 
2631
- export type UpdateCartItemInput = {
2632
- id: Scalars['String'];
2633
- quantity?: Scalars['Int'];
2486
+ export type AddMultipleToCartInput = {
2487
+ articleNumber: Scalars['String'];
2488
+ /** Default value is 1. */
2489
+ quantity?: Maybe<Scalars['Int']>;
2634
2490
  comments?: Maybe<Array<Maybe<InputComment>>>;
2491
+ configurationIds?: Maybe<Array<Maybe<Scalars['ID']>>>;
2635
2492
  preOrderDate?: Maybe<Scalars['DateTime']>;
2636
2493
  };
2637
2494
 
2638
- export type UpdateCartMutation = {
2639
- __typename?: 'UpdateCartMutation';
2640
- cart?: Maybe<Cart>;
2641
- };
2642
-
2643
- export type UpdateCustomerGroupResult = {
2644
- __typename?: 'UpdateCustomerGroupResult';
2645
- success: Scalars['Boolean'];
2646
- };
2647
-
2648
- export type UpdateCustomerPriceListResult = {
2649
- __typename?: 'UpdateCustomerPriceListResult';
2650
- success: Scalars['Boolean'];
2651
- };
2652
-
2653
- export type UpdateCustomerProductListInput = {
2654
- id: Scalars['ID'];
2655
- typeId: Scalars['ID'];
2495
+ export type InputComment = {
2656
2496
  name: Scalars['String'];
2657
- description?: Maybe<Scalars['String']>;
2497
+ value?: Maybe<Scalars['String']>;
2658
2498
  };
2659
2499
 
2660
- export type UpdateCustomerProductListItemInput = {
2661
- id: Scalars['ID'];
2500
+ export type AddToCartInput = {
2501
+ /** Not specifying cart id will create new cart. */
2502
+ cartId?: Maybe<Scalars['String']>;
2662
2503
  articleNumber: Scalars['String'];
2663
2504
  /** Default value is 1. */
2664
2505
  quantity?: Maybe<Scalars['Int']>;
2665
- description?: Maybe<Scalars['String']>;
2506
+ comments?: Maybe<Array<Maybe<InputComment>>>;
2507
+ configurationIds?: Maybe<Array<Maybe<Scalars['ID']>>>;
2508
+ preOrderDate?: Maybe<Scalars['DateTime']>;
2666
2509
  };
2667
2510
 
2668
- /** Responds with a boolean value whether the update has been successful or not */
2669
- export type UpdatePasswordResult = {
2670
- __typename?: 'UpdatePasswordResult';
2671
- success: Scalars['Boolean'];
2511
+ export type ChangeByOneItemQuantityInput = {
2512
+ cartId: Scalars['String'];
2513
+ itemId: Scalars['String'];
2672
2514
  };
2673
2515
 
2674
- export type Upsell = {
2675
- __typename?: 'Upsell';
2676
- id: Scalars['ID'];
2677
- items: Array<UpsellItem>;
2516
+ export type SetItemQuantityInput = {
2517
+ cartId: Scalars['String'];
2518
+ itemId: Scalars['String'];
2519
+ quantity: Scalars['Int'];
2678
2520
  };
2679
2521
 
2680
- export type UpsellDiscount = UpsellDiscountPercentage | UpsellDiscountValue;
2522
+ export type RemoveFromCartInput = {
2523
+ cartId: Scalars['String'];
2524
+ itemId: Scalars['String'];
2525
+ };
2681
2526
 
2682
- export type UpsellDiscountPercentage = {
2683
- __typename?: 'UpsellDiscountPercentage';
2684
- percentage: Scalars['Decimal'];
2527
+ export type RemoveMultipleFromCartInput = {
2528
+ cartId: Scalars['String'];
2529
+ itemIds: Array<Scalars['String']>;
2685
2530
  };
2686
2531
 
2687
- export type UpsellDiscountValue = {
2688
- __typename?: 'UpsellDiscountValue';
2689
- valueIncVat: Scalars['Decimal'];
2690
- valueExVat: Scalars['Decimal'];
2691
- valueVat: Scalars['Decimal'];
2532
+ export type UpdateCartMutation = {
2533
+ __typename?: 'UpdateCartMutation';
2534
+ cart?: Maybe<Cart>;
2692
2535
  };
2693
2536
 
2694
- export type UpsellItem = {
2695
- __typename?: 'UpsellItem';
2696
- product?: Maybe<Product>;
2697
- minQuantity: Scalars['Int'];
2698
- discount: UpsellDiscount;
2537
+ export type UpdateCartInput = {
2538
+ cartId?: Maybe<Scalars['String']>;
2539
+ items?: Maybe<Array<UpdateCartItemInput>>;
2699
2540
  };
2700
2541
 
2542
+ export type UpdateCartItemInput = {
2543
+ id: Scalars['String'];
2544
+ quantity?: Scalars['Int'];
2545
+ comments?: Maybe<Array<Maybe<InputComment>>>;
2546
+ preOrderDate?: Maybe<Scalars['DateTime']>;
2547
+ };
2701
2548
 
2702
- export type Warehouse = {
2703
- __typename?: 'Warehouse';
2704
- stockLevel?: Maybe<Scalars['Int']>;
2705
- location?: Maybe<Store>;
2549
+ export type ActiveFilters = {
2550
+ __typename?: 'ActiveFilters';
2551
+ listFilters?: Maybe<Array<Maybe<ListFilterInput>>>;
2552
+ rangeFilters?: Maybe<Array<Maybe<RangeFilterInput>>>;
2553
+ booleanFilters?: Maybe<Array<Maybe<BooleanFilterInput>>>;
2554
+ multiListFilters?: Maybe<Array<Maybe<MultiListFilterInput>>>;
2706
2555
  };