@jetshop/core 5.17.0-alpha.1fa8c1a3 → 5.17.0-alpha.2384b5c5

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