@graphcommerce/magento-product 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/Api/ProductListItem.gql.ts +16 -0
  2. package/Api/ProductListItem.graphql +18 -0
  3. package/Api/ProductPageItem.gql.ts +16 -0
  4. package/Api/ProductPageItem.graphql +11 -0
  5. package/CHANGELOG.md +280 -0
  6. package/_playwright/productURL.fixture.ts +28 -0
  7. package/components/JsonLdProduct/JsonLdProduct.gql.ts +16 -0
  8. package/components/JsonLdProduct/JsonLdProduct.graphql +22 -0
  9. package/components/JsonLdProduct/JsonLdProductOffer.gql.ts +16 -0
  10. package/components/JsonLdProduct/JsonLdProductOffer.graphql +13 -0
  11. package/components/JsonLdProduct/index.tsx +37 -0
  12. package/components/ProductAddToCart/ProductAddToCart.gql.ts +15 -0
  13. package/components/ProductAddToCart/ProductAddToCart.graphql +21 -0
  14. package/components/ProductCustomizable/CustomizableAreaOption.gql.ts +4 -0
  15. package/components/ProductCustomizable/CustomizableAreaOption.graphql +11 -0
  16. package/components/ProductCustomizable/CustomizableCheckboxOption.gql.ts +4 -0
  17. package/components/ProductCustomizable/CustomizableCheckboxOption.graphql +11 -0
  18. package/components/ProductCustomizable/CustomizableDateOption.gql.ts +4 -0
  19. package/components/ProductCustomizable/CustomizableDateOption.graphql +10 -0
  20. package/components/ProductCustomizable/CustomizableDropDownOption.gql.ts +4 -0
  21. package/components/ProductCustomizable/CustomizableDropDownOption.graphql +12 -0
  22. package/components/ProductCustomizable/CustomizableFieldOption.gql.ts +4 -0
  23. package/components/ProductCustomizable/CustomizableFieldOption.graphql +11 -0
  24. package/components/ProductCustomizable/CustomizableFileOption.gql.ts +4 -0
  25. package/components/ProductCustomizable/CustomizableFileOption.graphql +13 -0
  26. package/components/ProductCustomizable/CustomizableMultipleOption.gql.ts +4 -0
  27. package/components/ProductCustomizable/CustomizableMultipleOption.graphql +12 -0
  28. package/components/ProductCustomizable/CustomizableOption.gql.ts +20 -0
  29. package/components/ProductCustomizable/CustomizableOption.graphql +6 -0
  30. package/components/ProductCustomizable/CustomizableRadioOption.gql.ts +4 -0
  31. package/components/ProductCustomizable/CustomizableRadioOption.graphql +12 -0
  32. package/components/ProductCustomizable/ProductCustomizable.gql.ts +14 -0
  33. package/components/ProductCustomizable/ProductCustomizable.graphql +13 -0
  34. package/components/ProductList/ProductList.gql.ts +17 -0
  35. package/components/ProductList/ProductList.graphql +11 -0
  36. package/components/ProductList/ProductListQueryFragment.gql.ts +4 -0
  37. package/components/ProductList/ProductListQueryFragment.graphql +14 -0
  38. package/components/ProductListCount/ProductListCount.gql.ts +4 -0
  39. package/components/ProductListCount/ProductListCount.graphql +3 -0
  40. package/components/ProductListCount/index.tsx +55 -0
  41. package/components/ProductListFilters/FilterCheckboxType.tsx +66 -0
  42. package/components/ProductListFilters/FilterEqualType.tsx +169 -0
  43. package/components/ProductListFilters/FilterRangeType.tsx +170 -0
  44. package/components/ProductListFilters/ProductFiltersQueryFragment.gql.ts +4 -0
  45. package/components/ProductListFilters/ProductFiltersQueryFragment.graphql +5 -0
  46. package/components/ProductListFilters/ProductListFilters.gql.ts +4 -0
  47. package/components/ProductListFilters/ProductListFilters.graphql +12 -0
  48. package/components/ProductListFilters/index.tsx +61 -0
  49. package/components/ProductListFiltersContainer/index.tsx +140 -0
  50. package/components/ProductListItem/index.tsx +223 -0
  51. package/components/ProductListItems/ProductListItems.gql.ts +4 -0
  52. package/components/ProductListItems/ProductListItems.graphql +7 -0
  53. package/components/ProductListItems/ProductListItemsBase.tsx +60 -0
  54. package/components/ProductListItems/ProductListParamsProvider.tsx +20 -0
  55. package/components/ProductListItems/filterTypes.tsx +45 -0
  56. package/components/ProductListItems/filteredProductList.tsx +74 -0
  57. package/components/ProductListItems/getFilterTypes.ts +51 -0
  58. package/components/ProductListItems/index.tsx +6 -0
  59. package/components/ProductListItems/renderer.tsx +16 -0
  60. package/components/ProductListLink/ProductListLink.tsx +50 -0
  61. package/components/ProductListPagination/ProductListPagination.gql.ts +4 -0
  62. package/components/ProductListPagination/ProductListPagination.graphql +6 -0
  63. package/components/ProductListPagination/index.tsx +31 -0
  64. package/components/ProductListPrice/ProductListPrice.gql.ts +4 -0
  65. package/components/ProductListPrice/ProductListPrice.graphql +12 -0
  66. package/components/ProductListPrice/index.tsx +36 -0
  67. package/components/ProductListSort/ProductListSort.gql.ts +4 -0
  68. package/components/ProductListSort/ProductListSort.graphql +10 -0
  69. package/components/ProductListSort/index.tsx +72 -0
  70. package/components/ProductPage/ProductPageQueryFragment.gql.ts +4 -0
  71. package/components/ProductPage/ProductPageQueryFragment.graphql +10 -0
  72. package/components/ProductPageCategory/ProductPageCategory.gql.ts +16 -0
  73. package/components/ProductPageCategory/ProductPageCategory.graphql +8 -0
  74. package/components/ProductPageCategory/index.ts +17 -0
  75. package/components/ProductPageDescription/ProductPageDescription.gql.ts +16 -0
  76. package/components/ProductPageDescription/ProductPageDescription.graphql +9 -0
  77. package/components/ProductPageDescription/index.tsx +54 -0
  78. package/components/ProductPageGallery/ProductImage.gql.ts +4 -0
  79. package/components/ProductPageGallery/ProductImage.graphql +4 -0
  80. package/components/ProductPageGallery/ProductImage.tsx +10 -0
  81. package/components/ProductPageGallery/ProductPageGallery.gql.ts +16 -0
  82. package/components/ProductPageGallery/ProductPageGallery.graphql +10 -0
  83. package/components/ProductPageGallery/ProductVideo.gql.ts +4 -0
  84. package/components/ProductPageGallery/ProductVideo.graphql +10 -0
  85. package/components/ProductPageGallery/ProductVideo.tsx +11 -0
  86. package/components/ProductPageGallery/index.tsx +37 -0
  87. package/components/ProductPageMeta/ProductPageMeta.gql.ts +16 -0
  88. package/components/ProductPageMeta/ProductPageMeta.graphql +7 -0
  89. package/components/ProductPageMeta/index.tsx +17 -0
  90. package/components/ProductPagePrice/ProductPagePrice.gql.ts +16 -0
  91. package/components/ProductPagePrice/ProductPagePrice.graphql +50 -0
  92. package/components/ProductRelated/RelatedProducts.gql.ts +16 -0
  93. package/components/ProductRelated/RelatedProducts.graphql +5 -0
  94. package/components/ProductSidebarDelivery/index.tsx +47 -0
  95. package/components/ProductSpecs/ProductSpecs.gql.ts +4 -0
  96. package/components/ProductSpecs/ProductSpecs.graphql +12 -0
  97. package/components/ProductSpecs/index.tsx +52 -0
  98. package/components/ProductStaticPaths/ProductStaticPaths.gql.ts +13 -0
  99. package/components/ProductStaticPaths/ProductStaticPaths.graphql +12 -0
  100. package/components/ProductStaticPaths/getProductStaticPaths.ts +32 -0
  101. package/components/ProductUpsells/UpsellProducts.gql.ts +16 -0
  102. package/components/ProductUpsells/UpsellProducts.graphql +5 -0
  103. package/components/ProductWeight/ProductWeight.gql.ts +12 -0
  104. package/components/ProductWeight/ProductWeight.graphql +3 -0
  105. package/components/ProductWeight/index.tsx +30 -0
  106. package/components/index.ts +45 -0
  107. package/context/productListParamsContext.ts +7 -0
  108. package/hooks/ProductLink.gql.ts +16 -0
  109. package/hooks/ProductLink.graphql +5 -0
  110. package/hooks/useProductLink.ts +20 -0
  111. package/hooks/useProductListLink.ts +38 -0
  112. package/hooks/useProductListLinkPush.ts +22 -0
  113. package/hooks/useProductListParamsContext.ts +4 -0
  114. package/index.ts +9 -0
  115. package/next-env.d.ts +4 -0
  116. package/package.json +40 -0
  117. package/tsconfig.json +5 -0
@@ -0,0 +1,28 @@
1
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+ import { test as base } from '@graphcommerce/graphql/_playwright/apolloClient.fixture'
3
+ import { ProductStaticPathsDocument } from '../components/ProductStaticPaths/ProductStaticPaths.gql'
4
+ import { ProductTypenames } from '../components/ProductStaticPaths/getProductStaticPaths'
5
+ import { productLink } from '../hooks/useProductLink'
6
+
7
+ type ProductUrls = {
8
+ all: string[]
9
+ } & Record<`${ProductTypenames}`, string>
10
+
11
+ const test = base.extend<{ productURL: ProductUrls }>({
12
+ productURL: async ({ apolloClient, baseURL }, use) => {
13
+ const query = await apolloClient.query({
14
+ query: ProductStaticPathsDocument,
15
+ variables: { currentPage: 1, pageSize: 1000 },
16
+ })
17
+
18
+ const productUrls: Partial<Omit<ProductUrls, 'all'>> = {}
19
+ const urls = (query.data.products?.items ?? []).map((p) => {
20
+ productUrls[`${p?.__typename}`] = `${baseURL}${productLink(p!)}`
21
+ return `${baseURL}${productLink(p!)}`
22
+ })
23
+
24
+ await use({ all: urls, ...productUrls } as ProductUrls)
25
+ },
26
+ })
27
+
28
+ export { test }
@@ -0,0 +1,16 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type JsonLdProduct_BundleProduct_Fragment = { uid: string, name?: Types.Maybe<string>, sku?: Types.Maybe<string>, url_key?: Types.Maybe<string>, description?: Types.Maybe<{ html: string }>, media_gallery?: Types.Maybe<Array<Types.Maybe<{ __typename: 'ProductImage', url?: Types.Maybe<string>, label?: Types.Maybe<string> } | { __typename: 'ProductVideo', label?: Types.Maybe<string> }>>>, categories?: Types.Maybe<Array<Types.Maybe<{ uid: string, url_key?: Types.Maybe<string>, name?: Types.Maybe<string> }>>>, price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
5
+
6
+ export type JsonLdProduct_ConfigurableProduct_Fragment = { uid: string, name?: Types.Maybe<string>, sku?: Types.Maybe<string>, url_key?: Types.Maybe<string>, description?: Types.Maybe<{ html: string }>, media_gallery?: Types.Maybe<Array<Types.Maybe<{ __typename: 'ProductImage', url?: Types.Maybe<string>, label?: Types.Maybe<string> } | { __typename: 'ProductVideo', label?: Types.Maybe<string> }>>>, categories?: Types.Maybe<Array<Types.Maybe<{ uid: string, url_key?: Types.Maybe<string>, name?: Types.Maybe<string> }>>>, price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
7
+
8
+ export type JsonLdProduct_DownloadableProduct_Fragment = { uid: string, name?: Types.Maybe<string>, sku?: Types.Maybe<string>, url_key?: Types.Maybe<string>, description?: Types.Maybe<{ html: string }>, media_gallery?: Types.Maybe<Array<Types.Maybe<{ __typename: 'ProductImage', url?: Types.Maybe<string>, label?: Types.Maybe<string> } | { __typename: 'ProductVideo', label?: Types.Maybe<string> }>>>, categories?: Types.Maybe<Array<Types.Maybe<{ uid: string, url_key?: Types.Maybe<string>, name?: Types.Maybe<string> }>>>, price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
9
+
10
+ export type JsonLdProduct_GroupedProduct_Fragment = { uid: string, name?: Types.Maybe<string>, sku?: Types.Maybe<string>, url_key?: Types.Maybe<string>, description?: Types.Maybe<{ html: string }>, media_gallery?: Types.Maybe<Array<Types.Maybe<{ __typename: 'ProductImage', url?: Types.Maybe<string>, label?: Types.Maybe<string> } | { __typename: 'ProductVideo', label?: Types.Maybe<string> }>>>, categories?: Types.Maybe<Array<Types.Maybe<{ uid: string, url_key?: Types.Maybe<string>, name?: Types.Maybe<string> }>>>, price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
11
+
12
+ export type JsonLdProduct_SimpleProduct_Fragment = { uid: string, name?: Types.Maybe<string>, sku?: Types.Maybe<string>, url_key?: Types.Maybe<string>, description?: Types.Maybe<{ html: string }>, media_gallery?: Types.Maybe<Array<Types.Maybe<{ __typename: 'ProductImage', url?: Types.Maybe<string>, label?: Types.Maybe<string> } | { __typename: 'ProductVideo', label?: Types.Maybe<string> }>>>, categories?: Types.Maybe<Array<Types.Maybe<{ uid: string, url_key?: Types.Maybe<string>, name?: Types.Maybe<string> }>>>, price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
13
+
14
+ export type JsonLdProduct_VirtualProduct_Fragment = { uid: string, name?: Types.Maybe<string>, sku?: Types.Maybe<string>, url_key?: Types.Maybe<string>, description?: Types.Maybe<{ html: string }>, media_gallery?: Types.Maybe<Array<Types.Maybe<{ __typename: 'ProductImage', url?: Types.Maybe<string>, label?: Types.Maybe<string> } | { __typename: 'ProductVideo', label?: Types.Maybe<string> }>>>, categories?: Types.Maybe<Array<Types.Maybe<{ uid: string, url_key?: Types.Maybe<string>, name?: Types.Maybe<string> }>>>, price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
15
+
16
+ export type JsonLdProductFragment = JsonLdProduct_BundleProduct_Fragment | JsonLdProduct_ConfigurableProduct_Fragment | JsonLdProduct_DownloadableProduct_Fragment | JsonLdProduct_GroupedProduct_Fragment | JsonLdProduct_SimpleProduct_Fragment | JsonLdProduct_VirtualProduct_Fragment;
@@ -0,0 +1,22 @@
1
+ fragment JsonLdProduct on ProductInterface {
2
+ uid
3
+ name
4
+ sku
5
+ description {
6
+ html
7
+ }
8
+ media_gallery {
9
+ label
10
+ __typename
11
+ ... on ProductImage {
12
+ url
13
+ }
14
+ }
15
+ url_key
16
+ categories {
17
+ uid
18
+ url_key
19
+ name
20
+ }
21
+ ...JsonLdProductOffer
22
+ }
@@ -0,0 +1,16 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type JsonLdProductOffer_BundleProduct_Fragment = { price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
5
+
6
+ export type JsonLdProductOffer_ConfigurableProduct_Fragment = { price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
7
+
8
+ export type JsonLdProductOffer_DownloadableProduct_Fragment = { price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
9
+
10
+ export type JsonLdProductOffer_GroupedProduct_Fragment = { price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
11
+
12
+ export type JsonLdProductOffer_SimpleProduct_Fragment = { price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
13
+
14
+ export type JsonLdProductOffer_VirtualProduct_Fragment = { price_range: { minimum_price: { regular_price: { value?: Types.Maybe<number>, currency?: Types.Maybe<Types.CurrencyEnum> }, final_price: { value?: Types.Maybe<number> } } } };
15
+
16
+ export type JsonLdProductOfferFragment = JsonLdProductOffer_BundleProduct_Fragment | JsonLdProductOffer_ConfigurableProduct_Fragment | JsonLdProductOffer_DownloadableProduct_Fragment | JsonLdProductOffer_GroupedProduct_Fragment | JsonLdProductOffer_SimpleProduct_Fragment | JsonLdProductOffer_VirtualProduct_Fragment;
@@ -0,0 +1,13 @@
1
+ fragment JsonLdProductOffer on ProductInterface {
2
+ price_range {
3
+ minimum_price {
4
+ regular_price {
5
+ value
6
+ currency
7
+ }
8
+ final_price {
9
+ value
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,37 @@
1
+ import { ProductImage } from '@graphcommerce/graphql'
2
+ import { Product } from 'schema-dts'
3
+ import { JsonLdProductFragment } from './JsonLdProduct.gql'
4
+ import { JsonLdProductOfferFragment } from './JsonLdProductOffer.gql'
5
+
6
+ export function jsonLdProduct(props: JsonLdProductFragment): Product {
7
+ const { name, sku, media_gallery, categories, description, url_key } = props
8
+
9
+ return {
10
+ '@type': 'Product',
11
+ name: name ?? undefined,
12
+ sku: sku ?? undefined,
13
+ image: media_gallery
14
+ ? media_gallery?.map((img) => (img as ProductImage)?.url ?? '')
15
+ : undefined,
16
+ category: categories?.[0]?.name ?? undefined,
17
+ identifier: url_key ?? undefined,
18
+ description: description?.html
19
+ ? (description.html ?? '').replace(/(<([^>]+)>)/gi, '')
20
+ : undefined,
21
+ }
22
+ }
23
+
24
+ export function jsonLdProductOffer(props: JsonLdProductOfferFragment): Partial<Product> {
25
+ const { price_range } = props
26
+
27
+ return {
28
+ offers: {
29
+ '@type': 'AggregateOffer',
30
+ itemCondition: 'https://schema.org/NewCondition',
31
+ offerCount: 1,
32
+ priceCurrency: price_range.minimum_price.regular_price.currency ?? undefined,
33
+ highPrice: price_range?.minimum_price?.regular_price.value ?? undefined,
34
+ lowPrice: price_range.minimum_price.final_price.value ?? undefined,
35
+ },
36
+ }
37
+ }
@@ -0,0 +1,15 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
5
+
6
+ export const ProductAddToCartDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"ProductAddToCart"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"cartId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"sku"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quantity"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}},"defaultValue":{"kind":"IntValue","value":"1"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"enteredOptions"}},"type":{"kind":"ListType","type":{"kind":"NamedType","name":{"kind":"Name","value":"EnteredOptionInput"}}},"defaultValue":{"kind":"ListValue","values":[]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"addProductsToCart"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"cartId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"cartId"}}},{"kind":"Argument","name":{"kind":"Name","value":"cartItems"},"value":{"kind":"ListValue","values":[{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"sku"},"value":{"kind":"Variable","name":{"kind":"Name","value":"sku"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"quantity"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quantity"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"entered_options"},"value":{"kind":"Variable","name":{"kind":"Name","value":"enteredOptions"}}}]}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"cart"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"quantity"}}]}},{"kind":"Field","name":{"kind":"Name","value":"total_quantity"}},{"kind":"Field","name":{"kind":"Name","value":"prices"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"grand_total"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"applied_taxes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"amount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"label"}}]}},{"kind":"Field","name":{"kind":"Name","value":"discounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"amount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"label"}}]}},{"kind":"Field","name":{"kind":"Name","value":"subtotal_excluding_tax"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"subtotal_including_tax"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"subtotal_with_discount_excluding_tax"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"shipping_addresses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selected_shipping_method"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"carrier_code"}},{"kind":"Field","name":{"kind":"Name","value":"method_code"}},{"kind":"Field","name":{"kind":"Name","value":"method_title"}},{"kind":"Field","name":{"kind":"Name","value":"carrier_title"}},{"kind":"Field","name":{"kind":"Name","value":"amount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"available_shipping_methods"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"carrier_code"}},{"kind":"Field","name":{"kind":"Name","value":"method_code"}},{"kind":"Field","name":{"kind":"Name","value":"price_incl_tax"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"price_excl_tax"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"user_errors"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}}]}}]} as unknown as DocumentNode<ProductAddToCartMutation, ProductAddToCartMutationVariables>;
7
+ export type ProductAddToCartMutationVariables = Types.Exact<{
8
+ cartId: Types.Scalars['String'];
9
+ sku: Types.Scalars['String'];
10
+ quantity?: Types.Maybe<Types.Scalars['Float']>;
11
+ enteredOptions?: Types.Maybe<Array<Types.Maybe<Types.EnteredOptionInput>> | Types.Maybe<Types.EnteredOptionInput>>;
12
+ }>;
13
+
14
+
15
+ export type ProductAddToCartMutation = { addProductsToCart?: Types.Maybe<{ cart: { __typename: 'Cart', id: string, total_quantity: number, items?: Types.Maybe<Array<Types.Maybe<{ __typename: 'BundleCartItem', uid: string, quantity: number } | { __typename: 'ConfigurableCartItem', uid: string, quantity: number } | { __typename: 'DownloadableCartItem', uid: string, quantity: number } | { __typename: 'SimpleCartItem', uid: string, quantity: number } | { __typename: 'VirtualCartItem', uid: string, quantity: number }>>>, prices?: Types.Maybe<{ __typename: 'CartPrices', grand_total?: Types.Maybe<{ currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }>, applied_taxes?: Types.Maybe<Array<Types.Maybe<{ label: string, amount: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>>>, discounts?: Types.Maybe<Array<Types.Maybe<{ label: string, amount: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>>>, subtotal_excluding_tax?: Types.Maybe<{ currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }>, subtotal_including_tax?: Types.Maybe<{ currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }>, subtotal_with_discount_excluding_tax?: Types.Maybe<{ currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }> }>, shipping_addresses: Array<Types.Maybe<{ selected_shipping_method?: Types.Maybe<{ carrier_code: string, method_code: string, method_title: string, carrier_title: string, amount: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, available_shipping_methods?: Types.Maybe<Array<Types.Maybe<{ carrier_code: string, method_code?: Types.Maybe<string>, price_incl_tax: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, price_excl_tax: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>>> }>> }, user_errors: Array<Types.Maybe<{ code: Types.CartUserInputErrorType, message: string }>> }> };
@@ -0,0 +1,21 @@
1
+ mutation ProductAddToCart(
2
+ $cartId: String!
3
+ $sku: String!
4
+ $quantity: Float = 1
5
+ $enteredOptions: [EnteredOptionInput] = []
6
+ ) {
7
+ addProductsToCart(
8
+ cartId: $cartId
9
+ cartItems: [{ sku: $sku, quantity: $quantity, entered_options: $enteredOptions }]
10
+ ) {
11
+ cart {
12
+ id
13
+ __typename
14
+ ...CartItemCountChanged
15
+ }
16
+ user_errors {
17
+ code
18
+ message
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableAreaOptionFragment = { product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, areaValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> };
@@ -0,0 +1,11 @@
1
+ fragment CustomizableAreaOption on CustomizableAreaOption {
2
+ ...CustomizableOption
3
+ product_sku
4
+ areaValue: value {
5
+ max_characters
6
+ price
7
+ price_type
8
+ sku
9
+ uid
10
+ }
11
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableCheckboxOptionFragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, checkboxValue?: Types.Maybe<Array<Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string, option_type_id?: Types.Maybe<number>, title?: Types.Maybe<string> }>>> };
@@ -0,0 +1,11 @@
1
+ fragment CustomizableCheckboxOption on CustomizableCheckboxOption {
2
+ ...CustomizableOption
3
+ checkboxValue: value {
4
+ price
5
+ price_type
6
+ sku
7
+ uid
8
+ option_type_id
9
+ title
10
+ }
11
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableDateOptionFragment = { product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dateValue?: Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> };
@@ -0,0 +1,10 @@
1
+ fragment CustomizableDateOption on CustomizableDateOption {
2
+ ...CustomizableOption
3
+ product_sku
4
+ dateValue: value {
5
+ price
6
+ price_type
7
+ sku
8
+ uid
9
+ }
10
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableDropDownOptionFragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dropdownValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> };
@@ -0,0 +1,12 @@
1
+ fragment CustomizableDropDownOption on CustomizableDropDownOption {
2
+ ...CustomizableOption
3
+ dropdownValue: value {
4
+ option_type_id
5
+ price
6
+ price_type
7
+ sku
8
+ sort_order
9
+ title
10
+ uid
11
+ }
12
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableFieldOptionFragment = { product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fieldValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> };
@@ -0,0 +1,11 @@
1
+ fragment CustomizableFieldOption on CustomizableFieldOption {
2
+ ...CustomizableOption
3
+ product_sku
4
+ fieldValue: value {
5
+ max_characters
6
+ price
7
+ price_type
8
+ sku
9
+ uid
10
+ }
11
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableFileOptionFragment = { product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fileValue?: Types.Maybe<{ file_extension?: Types.Maybe<string>, image_size_x?: Types.Maybe<number>, image_size_y?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> };
@@ -0,0 +1,13 @@
1
+ fragment CustomizableFileOption on CustomizableFileOption {
2
+ ...CustomizableOption
3
+ product_sku
4
+ fileValue: value {
5
+ file_extension
6
+ image_size_x
7
+ image_size_y
8
+ price
9
+ price_type
10
+ sku
11
+ uid
12
+ }
13
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableMultipleOptionFragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, multipleValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> };
@@ -0,0 +1,12 @@
1
+ fragment CustomizableMultipleOption on CustomizableMultipleOption {
2
+ ...CustomizableOption
3
+ multipleValue: value {
4
+ option_type_id
5
+ price
6
+ price_type
7
+ sku
8
+ sort_order
9
+ title
10
+ uid
11
+ }
12
+ }
@@ -0,0 +1,20 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableOption_CustomizableAreaOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
5
+
6
+ export type CustomizableOption_CustomizableCheckboxOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
7
+
8
+ export type CustomizableOption_CustomizableDateOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
9
+
10
+ export type CustomizableOption_CustomizableDropDownOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
11
+
12
+ export type CustomizableOption_CustomizableFieldOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
13
+
14
+ export type CustomizableOption_CustomizableFileOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
15
+
16
+ export type CustomizableOption_CustomizableMultipleOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
17
+
18
+ export type CustomizableOption_CustomizableRadioOption_Fragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string> };
19
+
20
+ export type CustomizableOptionFragment = CustomizableOption_CustomizableAreaOption_Fragment | CustomizableOption_CustomizableCheckboxOption_Fragment | CustomizableOption_CustomizableDateOption_Fragment | CustomizableOption_CustomizableDropDownOption_Fragment | CustomizableOption_CustomizableFieldOption_Fragment | CustomizableOption_CustomizableFileOption_Fragment | CustomizableOption_CustomizableMultipleOption_Fragment | CustomizableOption_CustomizableRadioOption_Fragment;
@@ -0,0 +1,6 @@
1
+ fragment CustomizableOption on CustomizableOptionInterface {
2
+ uid
3
+ required
4
+ sort_order
5
+ title
6
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type CustomizableRadioOptionFragment = { uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, value?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> };
@@ -0,0 +1,12 @@
1
+ fragment CustomizableRadioOption on CustomizableRadioOption {
2
+ ...CustomizableOption
3
+ value {
4
+ option_type_id
5
+ price
6
+ price_type
7
+ sku
8
+ sort_order
9
+ title
10
+ uid
11
+ }
12
+ }
@@ -0,0 +1,14 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type ProductCustomizable_BundleProduct_Fragment = { options?: Types.Maybe<Array<Types.Maybe<{ __typename: 'CustomizableAreaOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, areaValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableCheckboxOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, checkboxValue?: Types.Maybe<Array<Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string, option_type_id?: Types.Maybe<number>, title?: Types.Maybe<string> }>>> } | { __typename: 'CustomizableDateOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dateValue?: Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableDropDownOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dropdownValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableFieldOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fieldValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableFileOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fileValue?: Types.Maybe<{ file_extension?: Types.Maybe<string>, image_size_x?: Types.Maybe<number>, image_size_y?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableMultipleOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, multipleValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableRadioOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, value?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> }>>> };
5
+
6
+ export type ProductCustomizable_ConfigurableProduct_Fragment = { options?: Types.Maybe<Array<Types.Maybe<{ __typename: 'CustomizableAreaOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, areaValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableCheckboxOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, checkboxValue?: Types.Maybe<Array<Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string, option_type_id?: Types.Maybe<number>, title?: Types.Maybe<string> }>>> } | { __typename: 'CustomizableDateOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dateValue?: Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableDropDownOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dropdownValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableFieldOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fieldValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableFileOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fileValue?: Types.Maybe<{ file_extension?: Types.Maybe<string>, image_size_x?: Types.Maybe<number>, image_size_y?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableMultipleOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, multipleValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableRadioOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, value?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> }>>> };
7
+
8
+ export type ProductCustomizable_DownloadableProduct_Fragment = { options?: Types.Maybe<Array<Types.Maybe<{ __typename: 'CustomizableAreaOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, areaValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableCheckboxOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, checkboxValue?: Types.Maybe<Array<Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string, option_type_id?: Types.Maybe<number>, title?: Types.Maybe<string> }>>> } | { __typename: 'CustomizableDateOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dateValue?: Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableDropDownOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dropdownValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableFieldOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fieldValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableFileOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fileValue?: Types.Maybe<{ file_extension?: Types.Maybe<string>, image_size_x?: Types.Maybe<number>, image_size_y?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableMultipleOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, multipleValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableRadioOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, value?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> }>>> };
9
+
10
+ export type ProductCustomizable_SimpleProduct_Fragment = { options?: Types.Maybe<Array<Types.Maybe<{ __typename: 'CustomizableAreaOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, areaValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableCheckboxOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, checkboxValue?: Types.Maybe<Array<Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string, option_type_id?: Types.Maybe<number>, title?: Types.Maybe<string> }>>> } | { __typename: 'CustomizableDateOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dateValue?: Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableDropDownOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dropdownValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableFieldOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fieldValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableFileOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fileValue?: Types.Maybe<{ file_extension?: Types.Maybe<string>, image_size_x?: Types.Maybe<number>, image_size_y?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableMultipleOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, multipleValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableRadioOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, value?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> }>>> };
11
+
12
+ export type ProductCustomizable_VirtualProduct_Fragment = { options?: Types.Maybe<Array<Types.Maybe<{ __typename: 'CustomizableAreaOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, areaValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableCheckboxOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, checkboxValue?: Types.Maybe<Array<Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string, option_type_id?: Types.Maybe<number>, title?: Types.Maybe<string> }>>> } | { __typename: 'CustomizableDateOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dateValue?: Types.Maybe<{ price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableDropDownOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, dropdownValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableFieldOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fieldValue?: Types.Maybe<{ max_characters?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableFileOption', product_sku?: Types.Maybe<string>, uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, fileValue?: Types.Maybe<{ file_extension?: Types.Maybe<string>, image_size_x?: Types.Maybe<number>, image_size_y?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, uid: string }> } | { __typename: 'CustomizableMultipleOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, multipleValue?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> } | { __typename: 'CustomizableRadioOption', uid: string, required?: Types.Maybe<boolean>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, value?: Types.Maybe<Array<Types.Maybe<{ option_type_id?: Types.Maybe<number>, price?: Types.Maybe<number>, price_type?: Types.Maybe<Types.PriceTypeEnum>, sku?: Types.Maybe<string>, sort_order?: Types.Maybe<number>, title?: Types.Maybe<string>, uid: string }>>> }>>> };
13
+
14
+ export type ProductCustomizableFragment = ProductCustomizable_BundleProduct_Fragment | ProductCustomizable_ConfigurableProduct_Fragment | ProductCustomizable_DownloadableProduct_Fragment | ProductCustomizable_SimpleProduct_Fragment | ProductCustomizable_VirtualProduct_Fragment;
@@ -0,0 +1,13 @@
1
+ fragment ProductCustomizable on CustomizableProductInterface {
2
+ options {
3
+ __typename
4
+ ...CustomizableAreaOption
5
+ ...CustomizableCheckboxOption
6
+ ...CustomizableDateOption
7
+ ...CustomizableDropDownOption
8
+ ...CustomizableMultipleOption
9
+ ...CustomizableFieldOption
10
+ ...CustomizableFileOption
11
+ ...CustomizableRadioOption
12
+ }
13
+ }
@@ -0,0 +1,17 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
5
+
6
+ export const ProductListDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ProductList"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"pageSize"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"23"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"currentPage"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"defaultValue":{"kind":"IntValue","value":"1"}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"filters"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ProductAttributeFilterInput"}},"defaultValue":{"kind":"ObjectValue","fields":[]}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"sort"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ProductAttributeSortInput"}},"defaultValue":{"kind":"ObjectValue","fields":[]}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"search"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"categoryUid"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"products"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"pageSize"},"value":{"kind":"Variable","name":{"kind":"Name","value":"pageSize"}}},{"kind":"Argument","name":{"kind":"Name","value":"currentPage"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentPage"}}},{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"Variable","name":{"kind":"Name","value":"filters"}}},{"kind":"Argument","name":{"kind":"Name","value":"sort"},"value":{"kind":"Variable","name":{"kind":"Name","value":"sort"}}},{"kind":"Argument","name":{"kind":"Name","value":"search"},"value":{"kind":"Variable","name":{"kind":"Name","value":"search"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"total_count"}},{"kind":"Field","name":{"kind":"Name","value":"page_info"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"current_page"}},{"kind":"Field","name":{"kind":"Name","value":"total_pages"}}]}},{"kind":"Field","name":{"kind":"Name","value":"sort_fields"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"default"}},{"kind":"Field","name":{"kind":"Name","value":"options"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"url_key"}},{"kind":"Field","name":{"kind":"Name","value":"sku"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"small_image"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"url"}},{"kind":"Field","name":{"kind":"Name","value":"label"}}]}},{"kind":"Field","name":{"kind":"Name","value":"price_range"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"maximum_price"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"regular_price"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"discount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"amount_off"}},{"kind":"Field","name":{"kind":"Name","value":"percent_off"}}]}},{"kind":"Field","name":{"kind":"Name","value":"final_price"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"minimum_price"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"regular_price"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"Field","name":{"kind":"Name","value":"discount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"amount_off"}},{"kind":"Field","name":{"kind":"Name","value":"percent_off"}}]}},{"kind":"Field","name":{"kind":"Name","value":"final_price"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currency"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"rating_summary"}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ConfigurableProduct"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"configurable_options"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attribute_code"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"values"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"store_label"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"swatch_data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"TextSwatchData"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ColorSwatchData"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"value"}}]}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ImageSwatchData"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"value"}},{"kind":"Field","name":{"kind":"Name","value":"thumbnail"}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"variants"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"code"}}]}},{"kind":"Field","name":{"kind":"Name","value":"product"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"sku"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"small_image"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"url"}}]}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"filters"},"name":{"kind":"Name","value":"products"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"filter"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"category_uid"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"Variable","name":{"kind":"Name","value":"categoryUid"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"aggregations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"attribute_code"}},{"kind":"Field","name":{"kind":"Name","value":"options"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"value"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}}]}}]}}]} as unknown as DocumentNode<ProductListQuery, ProductListQueryVariables>;
7
+ export type ProductListQueryVariables = Types.Exact<{
8
+ pageSize?: Types.Maybe<Types.Scalars['Int']>;
9
+ currentPage?: Types.Maybe<Types.Scalars['Int']>;
10
+ filters?: Types.Maybe<Types.ProductAttributeFilterInput>;
11
+ sort?: Types.Maybe<Types.ProductAttributeSortInput>;
12
+ search?: Types.Maybe<Types.Scalars['String']>;
13
+ categoryUid: Types.Scalars['String'];
14
+ }>;
15
+
16
+
17
+ export type ProductListQuery = { products?: Types.Maybe<{ total_count?: Types.Maybe<number>, page_info?: Types.Maybe<{ current_page?: Types.Maybe<number>, total_pages?: Types.Maybe<number> }>, sort_fields?: Types.Maybe<{ default?: Types.Maybe<string>, options?: Types.Maybe<Array<Types.Maybe<{ label?: Types.Maybe<string>, value?: Types.Maybe<string> }>>> }>, items?: Types.Maybe<Array<Types.Maybe<{ __typename: 'BundleProduct', uid: string, url_key?: Types.Maybe<string>, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'ConfigurableProduct', uid: string, url_key?: Types.Maybe<string>, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, rating_summary: number, configurable_options?: Types.Maybe<Array<Types.Maybe<{ attribute_code?: Types.Maybe<string>, uid: string, label?: Types.Maybe<string>, values?: Types.Maybe<Array<Types.Maybe<{ store_label?: Types.Maybe<string>, uid?: Types.Maybe<string>, swatch_data?: Types.Maybe<{ __typename: 'ColorSwatchData', value?: Types.Maybe<string> } | { __typename: 'ImageSwatchData', value?: Types.Maybe<string>, thumbnail?: Types.Maybe<string> } | { __typename: 'TextSwatchData', value?: Types.Maybe<string> }> }>>> }>>>, variants?: Types.Maybe<Array<Types.Maybe<{ attributes?: Types.Maybe<Array<Types.Maybe<{ uid: string, code?: Types.Maybe<string> }>>>, product?: Types.Maybe<{ uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, small_image?: Types.Maybe<{ label?: Types.Maybe<string>, url?: Types.Maybe<string> }> }> }>>>, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'DownloadableProduct', uid: string, url_key?: Types.Maybe<string>, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'GroupedProduct', uid: string, url_key?: Types.Maybe<string>, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'SimpleProduct', uid: string, url_key?: Types.Maybe<string>, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'VirtualProduct', uid: string, url_key?: Types.Maybe<string>, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } }>>> }>, filters?: Types.Maybe<{ aggregations?: Types.Maybe<Array<Types.Maybe<{ label?: Types.Maybe<string>, count?: Types.Maybe<number>, attribute_code: string, options?: Types.Maybe<Array<Types.Maybe<{ label?: Types.Maybe<string>, value: string, count?: Types.Maybe<number> }>>> }>>> }> };
@@ -0,0 +1,11 @@
1
+ query ProductList(
2
+ $pageSize: Int = 23
3
+ $currentPage: Int = 1
4
+ $filters: ProductAttributeFilterInput = {}
5
+ $sort: ProductAttributeSortInput = {}
6
+ $search: String = ""
7
+ $categoryUid: String!
8
+ ) {
9
+ ...ProductListQueryFragment
10
+ ...ProductFiltersQueryFragment
11
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type ProductListQueryFragment = { products?: Types.Maybe<{ total_count?: Types.Maybe<number>, page_info?: Types.Maybe<{ current_page?: Types.Maybe<number>, total_pages?: Types.Maybe<number> }>, sort_fields?: Types.Maybe<{ default?: Types.Maybe<string>, options?: Types.Maybe<Array<Types.Maybe<{ label?: Types.Maybe<string>, value?: Types.Maybe<string> }>>> }>, items?: Types.Maybe<Array<Types.Maybe<{ __typename: 'BundleProduct', uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, url_key?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'ConfigurableProduct', uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, url_key?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } }, configurable_options?: Types.Maybe<Array<Types.Maybe<{ attribute_code?: Types.Maybe<string>, uid: string, label?: Types.Maybe<string>, values?: Types.Maybe<Array<Types.Maybe<{ store_label?: Types.Maybe<string>, uid?: Types.Maybe<string>, swatch_data?: Types.Maybe<{ __typename: 'ColorSwatchData', value?: Types.Maybe<string> } | { __typename: 'ImageSwatchData', value?: Types.Maybe<string>, thumbnail?: Types.Maybe<string> } | { __typename: 'TextSwatchData', value?: Types.Maybe<string> }> }>>> }>>>, variants?: Types.Maybe<Array<Types.Maybe<{ attributes?: Types.Maybe<Array<Types.Maybe<{ uid: string, code?: Types.Maybe<string> }>>>, product?: Types.Maybe<{ uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, small_image?: Types.Maybe<{ label?: Types.Maybe<string>, url?: Types.Maybe<string> }> }> }>>> } | { __typename: 'DownloadableProduct', uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, url_key?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'GroupedProduct', uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, url_key?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'SimpleProduct', uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, url_key?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } } | { __typename: 'VirtualProduct', uid: string, sku?: Types.Maybe<string>, name?: Types.Maybe<string>, url_key?: Types.Maybe<string>, rating_summary: number, small_image?: Types.Maybe<{ url?: Types.Maybe<string>, label?: Types.Maybe<string> }>, price_range: { maximum_price?: Types.Maybe<{ regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } }>, minimum_price: { regular_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> }, discount?: Types.Maybe<{ amount_off?: Types.Maybe<number>, percent_off?: Types.Maybe<number> }>, final_price: { currency?: Types.Maybe<Types.CurrencyEnum>, value?: Types.Maybe<number> } } } }>>> }> };
@@ -0,0 +1,14 @@
1
+ fragment ProductListQueryFragment on Query {
2
+ products(
3
+ pageSize: $pageSize
4
+ currentPage: $currentPage
5
+ filter: $filters
6
+ sort: $sort
7
+ search: $search
8
+ ) {
9
+ ...ProductListCount
10
+ ...ProductListPagination
11
+ ...ProductListSort
12
+ ...ProductListItems
13
+ }
14
+ }
@@ -0,0 +1,4 @@
1
+ /* eslint-disable */
2
+ import * as Types from '@graphcommerce/graphql';
3
+
4
+ export type ProductListCountFragment = { total_count?: Types.Maybe<number> };
@@ -0,0 +1,3 @@
1
+ fragment ProductListCount on Products {
2
+ total_count
3
+ }