@propeller-commerce/propeller-sdk-v2 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +115 -4
  2. package/dist/cjs/generated/operationVariables.d.ts +21 -0
  3. package/dist/cjs/generated/operations/category.js +30 -1
  4. package/dist/cjs/generated/operations/categoryAddProductsClusters.js +30 -1
  5. package/dist/cjs/generated/operations/categoryBySlug.js +30 -1
  6. package/dist/cjs/generated/operations/categoryBySource.js +30 -1
  7. package/dist/cjs/generated/operations/categoryChildren.js +30 -1
  8. package/dist/cjs/generated/operations/categoryCreate.js +30 -1
  9. package/dist/cjs/generated/operations/categoryHierarchy.js +30 -1
  10. package/dist/cjs/generated/operations/categoryMoveAbove.js +30 -1
  11. package/dist/cjs/generated/operations/categoryMoveBelow.js +30 -1
  12. package/dist/cjs/generated/operations/categoryRemoveProductsClusters.js +30 -1
  13. package/dist/cjs/generated/operations/categoryUpdate.js +30 -1
  14. package/dist/cjs/generated/operations/crossupsell.js +30 -1
  15. package/dist/cjs/generated/operations/crossupsellCreate.js +30 -1
  16. package/dist/cjs/generated/operations/crossupsellUpdate.js +30 -1
  17. package/dist/cjs/generated/operations/crossupsells.js +30 -1
  18. package/dist/cjs/generated/operations/favoriteList.js +30 -1
  19. package/dist/cjs/generated/operations/machine.js +33 -4
  20. package/dist/cjs/generated/operations/machineCreate.js +33 -4
  21. package/dist/cjs/generated/operations/machineUpsert.js +33 -4
  22. package/dist/cjs/generated/operations/machines.js +33 -4
  23. package/dist/cjs/generated/operations/products.js +30 -1
  24. package/dist/cjs/service/CategoryService.d.ts +2 -0
  25. package/dist/cjs/service/CrossupsellService.d.ts +3 -0
  26. package/dist/cjs/service/ProductService.d.ts +2 -0
  27. package/dist/cjs/type/CartBaseItem.d.ts +13 -2
  28. package/dist/cjs/type/CartMainItem.d.ts +13 -2
  29. package/dist/cjs/type/TenderMainItem.d.ts +13 -2
  30. package/dist/esm/generated/operations/category.js +30 -1
  31. package/dist/esm/generated/operations/categoryAddProductsClusters.js +30 -1
  32. package/dist/esm/generated/operations/categoryBySlug.js +30 -1
  33. package/dist/esm/generated/operations/categoryBySource.js +30 -1
  34. package/dist/esm/generated/operations/categoryChildren.js +30 -1
  35. package/dist/esm/generated/operations/categoryCreate.js +30 -1
  36. package/dist/esm/generated/operations/categoryHierarchy.js +30 -1
  37. package/dist/esm/generated/operations/categoryMoveAbove.js +30 -1
  38. package/dist/esm/generated/operations/categoryMoveBelow.js +30 -1
  39. package/dist/esm/generated/operations/categoryRemoveProductsClusters.js +30 -1
  40. package/dist/esm/generated/operations/categoryUpdate.js +30 -1
  41. package/dist/esm/generated/operations/crossupsell.js +30 -1
  42. package/dist/esm/generated/operations/crossupsellCreate.js +30 -1
  43. package/dist/esm/generated/operations/crossupsellUpdate.js +30 -1
  44. package/dist/esm/generated/operations/crossupsells.js +30 -1
  45. package/dist/esm/generated/operations/favoriteList.js +30 -1
  46. package/dist/esm/generated/operations/machine.js +33 -4
  47. package/dist/esm/generated/operations/machineCreate.js +33 -4
  48. package/dist/esm/generated/operations/machineUpsert.js +33 -4
  49. package/dist/esm/generated/operations/machines.js +33 -4
  50. package/dist/esm/generated/operations/products.js +30 -1
  51. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,117 @@ All notable changes to `@propeller-commerce/propeller-sdk-v2` are documented her
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.17.0] - 2026-09-23
8
+
9
+ Spare-parts machine fields come back in every language the tenant authored,
10
+ instead of only the one the query asked for.
11
+
12
+ ### Changed
13
+
14
+ - **`SparePartsMachineMinimalFields` no longer passes `(language: $language)`
15
+ to `name`, `description` and `slug`.** The field argument narrowed each of
16
+ them to a single language, which defeated the cross-language fallback every
17
+ consumer implements (`getLocalizedValue` returns the first non-empty entry).
18
+ A machine authored without a slug in the tree language came back with an
19
+ empty `slug`, the UI could not build an href, and the row was dropped from
20
+ the list entirely — a customer saw three of four machines with nothing saying
21
+ so (PWP-993).
22
+
23
+ The query-level `machine(… language: $language)` argument is untouched: it
24
+ still selects the tree. Only the per-node localized fields widen.
25
+
26
+ Affects `machine`, `machines`, `machineCreate` and `machineUpsert`. All four
27
+ keep `$language` — `MediaImageFields.alt(language: $language)` still
28
+ references it — so no operation is left with an unused variable.
29
+
30
+ **Consumers that assumed `name[0]` is the requested language must resolve by
31
+ language instead.** `getLocalizedValue` / `getLanguageString` in core-ui
32
+ already do, so react-ui and vue-ui needed no change.
33
+
34
+ Verified against a tenant whose machines are authored EN-only, where both
35
+ forms return one entry; the multilingual path follows the behaviour recorded
36
+ in PWP-1010(b) and still wants confirming on a multilingual tenant.
37
+
38
+ ### Documentation
39
+
40
+ - **`sum` / `sumNet` on `CartMainItem`, `CartBaseItem` and `TenderMainItem` now
41
+ lead with the warning that they are PER UOM, not line totals**, and point at
42
+ `totalSum` / `totalSumNet`. The description was always accurate but the name
43
+ reads like a line total, so `items.reduce((a, l) => a + l.sum, 0)` looks
44
+ right, compiles green, and returns a number that is wrong by a factor of the
45
+ quantity — a 30-piece line at €15.09 produced €15.09 (PWP-1006).
46
+
47
+ ## [0.16.0] - 2026-08-04
48
+
49
+ Puts product attributes on the grid. `ProductGridFields` now selects a lean
50
+ attribute shape, so listings can render specs without a second round trip to
51
+ fetch each product in full.
52
+
53
+ Additive and backward-compatible: the new operation variable is optional, and
54
+ no service method signature changed.
55
+
56
+ ### Added
57
+
58
+ - **`AttributeResultGridFields`** — a new fragment on `AttributeResult`
59
+ selecting only `attributeDescription { name }` plus the four value branches
60
+ that listings use: `AttributeTextValue.textValues`,
61
+ `AttributeEnumValue.enumValues`, `AttributeIntValue.intValue` and
62
+ `AttributeDecimalValue.decimalValue`. This is deliberately *not*
63
+ `AttributeResultProductFields`, which pulls the full 18-field description,
64
+ the `attribute` union and all six value types — far too much payload when it
65
+ multiplies by every tile in a grid.
66
+ - `attributes (input: $attributeResultSearchInput)` on **`ProductGridFields`**.
67
+ - `$attributeResultSearchInput: AttributeResultSearchInput` declared on the
68
+ **21 operations** that transitively spread `ProductGridFields` — the
69
+ `category*` queries and mutations, `products`, `crossupsell(s)`,
70
+ `crossupsellCreate` / `Update`, `favoriteList`, `machine(s)`, `machineCreate`
71
+ and `machineUpsert`. The fragment reaches them through `ClusterGridFields`,
72
+ `CrossupsellFields`, `FavoriteListFields`, `ProductsResponseFields` and
73
+ `SparePartFields`, and GraphQL rejects an operation that spreads a fragment
74
+ using a variable it does not declare, so all 21 are required. The `product`
75
+ query already had it.
76
+ - `attributeResultSearchInput` on the three **hand-authored** service variables
77
+ interfaces, which codegen does not regenerate:
78
+ `ProductsQueryVariables` (`ProductService.getProducts`),
79
+ `CategoryQueryVariables` (`CategoryService.getCategory`) and
80
+ `CrossupsellsQueryVariables` (`CrossupsellService.getCrossupsells`). The other
81
+ 18 operations use generated interfaces and picked the field up automatically.
82
+ Without this the value reached the wire at runtime — the method bodies spread
83
+ `{ ...variables }` — but TypeScript callers could not pass it without a cast.
84
+ `ProductQueryVariables` already exposed it and is unchanged.
85
+ - `tests/service/ProductGridAttributes.integration.test.ts` — real-API tests
86
+ covering the shape, the union branches, and that
87
+ `$attributeResultSearchInput` genuinely reaches the server. They run through
88
+ the service layer with the variables annotated as their real interfaces, so a
89
+ regression in any of those hand-authored types is a compile error rather than
90
+ a silent pass.
91
+
92
+ ### Fixed
93
+
94
+ - Docs build. Docusaurus 3 compiles `.md` as MDX, where a bare `<` starts a JSX
95
+ tag; the 0.15.0 stock-filtering prose wrote the inclusive operators as
96
+ `"<= N"` and broke both `guides/stock-filtering.md` and the generated
97
+ `changelog.md`. The comparisons are now wrapped in inline code.
98
+
99
+ ### Notes
100
+
101
+ The corresponding `<Op>Variables` interfaces gained an optional
102
+ `attributeResultSearchInput`, so existing calls compile unchanged. Pass it to
103
+ control how many attributes come back per product:
104
+
105
+ ```typescript
106
+ const grid = await products.getProducts({
107
+ input: { page: 1, offset: 24 },
108
+ attributeResultSearchInput: { page: 1, offset: 25 },
109
+ });
110
+ ```
111
+
112
+ `AttributeColorValue` and `AttributeDateTimeValue` are intentionally not
113
+ selected by the grid fragment — an attribute of either type arrives carrying
114
+ only `__typename`. Read those through the full `product` query instead.
115
+
116
+ ---
117
+
7
118
  ## [0.15.0] - 2026-08-04
8
119
 
9
120
  Exposes the backend inventory/stock filter so storefronts can filter catalogue
@@ -35,15 +146,15 @@ paging.
35
146
  ### Notes
36
147
 
37
148
  `NumberSearchInput`'s range operators are **inclusive** despite their names:
38
- `greaterThan: N` is stock **>= N** and `lessThan: N` is stock **<= N**.
149
+ `greaterThan: N` is stock `>= N` and `lessThan: N` is stock `<= N`.
39
150
  Never-stocked products have no inventory record and count as **0**. So:
40
151
 
41
- - in stock — `{ totalQuantity: { greaterThan: 1 } }` (>= 1; correctly includes
152
+ - in stock — `{ totalQuantity: { greaterThan: 1 } }` (`>= 1`; correctly includes
42
153
  products with exactly 1 left)
43
154
  - out of stock — `{ totalQuantity: { equal: 0 } }`, or
44
- `{ totalQuantity: { lessThan: 0 } }` (<= 0) to also catch negative balances
155
+ `{ totalQuantity: { lessThan: 0 } }` (`<= 0`) to also catch negative balances
45
156
 
46
- Do **not** use `lessThan: 1` for out-of-stock — it means <= 1 and includes
157
+ Do **not** use `lessThan: 1` for out-of-stock — it means `<= 1` and includes
47
158
  in-stock products with one item remaining.
48
159
 
49
160
  The committed schema snapshot is refreshed to the production introspection that
@@ -984,6 +984,7 @@ export interface CategoryAddProductsClustersVariables {
984
984
  priceCalculateProductInput?: PriceCalculateProductInput;
985
985
  imageSearchFilters?: MediaImageProductSearchInput;
986
986
  imageVariantFilters?: TransformationsInput;
987
+ attributeResultSearchInput?: AttributeResultSearchInput;
987
988
  }
988
989
  /**
989
990
  * Variables for the `categoryBySlug` GraphQL operation. Generated from the
@@ -1002,6 +1003,7 @@ export interface CategoryBySlugVariables {
1002
1003
  priceCalculateProductInput?: PriceCalculateProductInput;
1003
1004
  imageSearchFilters?: MediaImageProductSearchInput;
1004
1005
  imageVariantFilters?: TransformationsInput;
1006
+ attributeResultSearchInput?: AttributeResultSearchInput;
1005
1007
  }
1006
1008
  /**
1007
1009
  * Variables for the `categoryBySource` GraphQL operation. Generated from the
@@ -1020,6 +1022,7 @@ export interface CategoryBySourceVariables {
1020
1022
  priceCalculateProductInput?: PriceCalculateProductInput;
1021
1023
  imageSearchFilters?: MediaImageProductSearchInput;
1022
1024
  imageVariantFilters?: TransformationsInput;
1025
+ attributeResultSearchInput?: AttributeResultSearchInput;
1023
1026
  }
1024
1027
  /**
1025
1028
  * Variables for the `categoryChildren` GraphQL operation. Generated from the
@@ -1037,6 +1040,7 @@ export interface CategoryChildrenVariables {
1037
1040
  priceCalculateProductInput?: PriceCalculateProductInput;
1038
1041
  imageSearchFilters?: MediaImageProductSearchInput;
1039
1042
  imageVariantFilters?: TransformationsInput;
1043
+ attributeResultSearchInput?: AttributeResultSearchInput;
1040
1044
  }
1041
1045
  /**
1042
1046
  * Variables for the `categoryCreate` GraphQL operation. Generated from the
@@ -1054,6 +1058,7 @@ export interface CategoryCreateVariables {
1054
1058
  priceCalculateProductInput?: PriceCalculateProductInput;
1055
1059
  imageSearchFilters?: MediaImageProductSearchInput;
1056
1060
  imageVariantFilters?: TransformationsInput;
1061
+ attributeResultSearchInput?: AttributeResultSearchInput;
1057
1062
  }
1058
1063
  /**
1059
1064
  * Variables for the `categoryCsvImport` GraphQL operation. Generated from the
@@ -1087,6 +1092,7 @@ export interface CategoryHierarchyVariables {
1087
1092
  priceCalculateProductInput?: PriceCalculateProductInput;
1088
1093
  imageSearchFilters?: MediaImageProductSearchInput;
1089
1094
  imageVariantFilters?: TransformationsInput;
1095
+ attributeResultSearchInput?: AttributeResultSearchInput;
1090
1096
  }
1091
1097
  /**
1092
1098
  * Variables for the `categoryMoveAbove` GraphQL operation. Generated from the
@@ -1105,6 +1111,7 @@ export interface CategoryMoveAboveVariables {
1105
1111
  priceCalculateProductInput?: PriceCalculateProductInput;
1106
1112
  imageSearchFilters?: MediaImageProductSearchInput;
1107
1113
  imageVariantFilters?: TransformationsInput;
1114
+ attributeResultSearchInput?: AttributeResultSearchInput;
1108
1115
  }
1109
1116
  /**
1110
1117
  * Variables for the `categoryMoveBelow` GraphQL operation. Generated from the
@@ -1123,6 +1130,7 @@ export interface CategoryMoveBelowVariables {
1123
1130
  priceCalculateProductInput?: PriceCalculateProductInput;
1124
1131
  imageSearchFilters?: MediaImageProductSearchInput;
1125
1132
  imageVariantFilters?: TransformationsInput;
1133
+ attributeResultSearchInput?: AttributeResultSearchInput;
1126
1134
  }
1127
1135
  /**
1128
1136
  * Variables for the `categoryRemoveProductsClusters` GraphQL operation. Generated from the
@@ -1141,6 +1149,7 @@ export interface CategoryRemoveProductsClustersVariables {
1141
1149
  priceCalculateProductInput?: PriceCalculateProductInput;
1142
1150
  imageSearchFilters?: MediaImageProductSearchInput;
1143
1151
  imageVariantFilters?: TransformationsInput;
1152
+ attributeResultSearchInput?: AttributeResultSearchInput;
1144
1153
  }
1145
1154
  /**
1146
1155
  * Variables for the `categoryUpdate` GraphQL operation. Generated from the
@@ -1159,6 +1168,7 @@ export interface CategoryUpdateVariables {
1159
1168
  priceCalculateProductInput?: PriceCalculateProductInput;
1160
1169
  imageSearchFilters?: MediaImageProductSearchInput;
1161
1170
  imageVariantFilters?: TransformationsInput;
1171
+ attributeResultSearchInput?: AttributeResultSearchInput;
1162
1172
  }
1163
1173
  /**
1164
1174
  * Variables for the `category` GraphQL operation. Generated from the
@@ -1178,6 +1188,7 @@ export interface CategoryVariables {
1178
1188
  imageSearchFilters?: MediaImageProductSearchInput;
1179
1189
  imageVariantFilters?: TransformationsInput;
1180
1190
  filterAvailableAttributeInput?: FilterAvailableAttributeInput;
1191
+ attributeResultSearchInput?: AttributeResultSearchInput;
1181
1192
  }
1182
1193
  /**
1183
1194
  * Variables for the `channelCreate` GraphQL operation. Generated from the
@@ -2041,6 +2052,7 @@ export interface CrossupsellCreateVariables {
2041
2052
  imageSearchFilters?: MediaImageProductSearchInput;
2042
2053
  language?: string;
2043
2054
  imageVariantFilters?: TransformationsInput;
2055
+ attributeResultSearchInput?: AttributeResultSearchInput;
2044
2056
  }
2045
2057
  /**
2046
2058
  * Variables for the `crossupsellDelete` GraphQL operation. Generated from the
@@ -2064,6 +2076,7 @@ export interface CrossupsellsVariables {
2064
2076
  imageSearchFilters?: MediaImageProductSearchInput;
2065
2077
  imageVariantFilters?: TransformationsInput;
2066
2078
  priceCalculateProductInput: PriceCalculateProductInput;
2079
+ attributeResultSearchInput?: AttributeResultSearchInput;
2067
2080
  }
2068
2081
  /**
2069
2082
  * Variables for the `crossupsellUpdate` GraphQL operation. Generated from the
@@ -2080,6 +2093,7 @@ export interface CrossupsellUpdateVariables {
2080
2093
  imageSearchFilters?: MediaImageProductSearchInput;
2081
2094
  language?: string;
2082
2095
  imageVariantFilters?: TransformationsInput;
2096
+ attributeResultSearchInput?: AttributeResultSearchInput;
2083
2097
  }
2084
2098
  /**
2085
2099
  * Variables for the `crossupsell` GraphQL operation. Generated from the
@@ -2095,6 +2109,7 @@ export interface CrossupsellVariables {
2095
2109
  imageSearchFilters?: MediaImageProductSearchInput;
2096
2110
  language?: string;
2097
2111
  imageVariantFilters?: TransformationsInput;
2112
+ attributeResultSearchInput?: AttributeResultSearchInput;
2098
2113
  }
2099
2114
  /**
2100
2115
  * Variables for the `customerAddressCreate` GraphQL operation. Generated from the
@@ -2468,6 +2483,7 @@ export interface FavoriteListVariables {
2468
2483
  priceCalculateProductInput?: PriceCalculateProductInput;
2469
2484
  imageSearchFilters?: MediaImageProductSearchInput;
2470
2485
  imageVariantFilters?: TransformationsInput;
2486
+ attributeResultSearchInput?: AttributeResultSearchInput;
2471
2487
  }
2472
2488
  /**
2473
2489
  * Variables for the `gqlApiKeyCreate` GraphQL operation. Generated from the
@@ -2599,6 +2615,7 @@ export interface MachineCreateVariables {
2599
2615
  imageVariantFilters?: TransformationsInput;
2600
2616
  priceCalculateProductInput?: PriceCalculateProductInput;
2601
2617
  imageSearchFilters?: MediaImageProductSearchInput;
2618
+ attributeResultSearchInput?: AttributeResultSearchInput;
2602
2619
  }
2603
2620
  /**
2604
2621
  * Variables for the `machineDelete` GraphQL operation. Generated from the
@@ -2624,6 +2641,7 @@ export interface MachinesVariables {
2624
2641
  imageVariantFilters?: TransformationsInput;
2625
2642
  priceCalculateProductInput?: PriceCalculateProductInput;
2626
2643
  imageSearchFilters?: MediaImageProductSearchInput;
2644
+ attributeResultSearchInput?: AttributeResultSearchInput;
2627
2645
  }
2628
2646
  /**
2629
2647
  * Variables for the `machineUpsert` GraphQL operation. Generated from the
@@ -2641,6 +2659,7 @@ export interface MachineUpsertVariables {
2641
2659
  imageVariantFilters?: TransformationsInput;
2642
2660
  priceCalculateProductInput?: PriceCalculateProductInput;
2643
2661
  imageSearchFilters?: MediaImageProductSearchInput;
2662
+ attributeResultSearchInput?: AttributeResultSearchInput;
2644
2663
  }
2645
2664
  /**
2646
2665
  * Variables for the `machine` GraphQL operation. Generated from the
@@ -2661,6 +2680,7 @@ export interface MachineVariables {
2661
2680
  imageVariantFilters?: TransformationsInput;
2662
2681
  priceCalculateProductInput?: PriceCalculateProductInput;
2663
2682
  imageSearchFilters?: MediaImageProductSearchInput;
2683
+ attributeResultSearchInput?: AttributeResultSearchInput;
2664
2684
  }
2665
2685
  /**
2666
2686
  * Variables for the `magicTokenCreate` GraphQL operation. Generated from the
@@ -3755,6 +3775,7 @@ export interface ProductsVariables {
3755
3775
  imageSearchFilters?: MediaImageProductSearchInput;
3756
3776
  imageVariantFilters?: TransformationsInput;
3757
3777
  filterAvailableAttributeInput?: FilterAvailableAttributeInput;
3778
+ attributeResultSearchInput?: AttributeResultSearchInput;
3758
3779
  }
3759
3780
  /**
3760
3781
  * Variables for the `productUnassignFromCluster` GraphQL operation. Generated from the
@@ -376,6 +376,11 @@ fragment ProductGridFields on Product {
376
376
  ...IBaseProductFields
377
377
  productId
378
378
  categoryId
379
+ attributes(input: \$attributeResultSearchInput) {
380
+ items {
381
+ ...AttributeResultGridFields
382
+ }
383
+ }
379
384
  inventory {
380
385
  ...ProductInventoryFields
381
386
  }
@@ -424,6 +429,30 @@ fragment ProductGridFields on Product {
424
429
  containerClass
425
430
  }
426
431
 
432
+ fragment AttributeResultGridFields on AttributeResult {
433
+ attributeDescription {
434
+ name
435
+ }
436
+ value {
437
+ __typename
438
+ ... on AttributeTextValue {
439
+ textValues {
440
+ language
441
+ values
442
+ }
443
+ }
444
+ ... on AttributeEnumValue {
445
+ enumValues
446
+ }
447
+ ... on AttributeIntValue {
448
+ intValue
449
+ }
450
+ ... on AttributeDecimalValue {
451
+ decimalValue
452
+ }
453
+ }
454
+ }
455
+
427
456
  fragment ProductInventoryFields on ProductInventory {
428
457
  productId
429
458
  totalQuantity
@@ -624,7 +653,7 @@ fragment AttributeFilterFields on AttributeFilter {
624
653
  }
625
654
  }
626
655
 
627
- query category(\$categoryId: Float, \$slug: String, \$hidden: YesNo, \$language: String, \$priceCalculateProductInput: PriceCalculateProductInput, \$categoryProductSearchInput: CategoryProductSearchInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$filterAvailableAttributeInput: FilterAvailableAttributeInput) {
656
+ query category(\$categoryId: Float, \$slug: String, \$hidden: YesNo, \$language: String, \$priceCalculateProductInput: PriceCalculateProductInput, \$categoryProductSearchInput: CategoryProductSearchInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$attributeResultSearchInput: AttributeResultSearchInput) {
628
657
  category(categoryId: \$categoryId, slug: \$slug, hidden: \$hidden) {
629
658
  ...CategoryFields
630
659
  }
@@ -385,6 +385,11 @@ fragment ProductGridFields on Product {
385
385
  ...IBaseProductFields
386
386
  productId
387
387
  categoryId
388
+ attributes(input: \$attributeResultSearchInput) {
389
+ items {
390
+ ...AttributeResultGridFields
391
+ }
392
+ }
388
393
  inventory {
389
394
  ...ProductInventoryFields
390
395
  }
@@ -433,6 +438,30 @@ fragment ProductGridFields on Product {
433
438
  containerClass
434
439
  }
435
440
 
441
+ fragment AttributeResultGridFields on AttributeResult {
442
+ attributeDescription {
443
+ name
444
+ }
445
+ value {
446
+ __typename
447
+ ... on AttributeTextValue {
448
+ textValues {
449
+ language
450
+ values
451
+ }
452
+ }
453
+ ... on AttributeEnumValue {
454
+ enumValues
455
+ }
456
+ ... on AttributeIntValue {
457
+ intValue
458
+ }
459
+ ... on AttributeDecimalValue {
460
+ decimalValue
461
+ }
462
+ }
463
+ }
464
+
436
465
  fragment ProductInventoryFields on ProductInventory {
437
466
  productId
438
467
  totalQuantity
@@ -633,7 +662,7 @@ fragment AttributeFilterFields on AttributeFilter {
633
662
  }
634
663
  }
635
664
 
636
- mutation categoryAddProductsClusters(\$id: Int!, \$input: CategoryAddProductsClustersInput!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!) {
665
+ mutation categoryAddProductsClusters(\$id: Int!, \$input: CategoryAddProductsClustersInput!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$attributeResultSearchInput: AttributeResultSearchInput) {
637
666
  categoryAddProductsClusters(id: \$id, input: \$input) {
638
667
  ...CategoryAddProductsClustersResponseFields
639
668
  }
@@ -376,6 +376,11 @@ fragment ProductGridFields on Product {
376
376
  ...IBaseProductFields
377
377
  productId
378
378
  categoryId
379
+ attributes(input: \$attributeResultSearchInput) {
380
+ items {
381
+ ...AttributeResultGridFields
382
+ }
383
+ }
379
384
  inventory {
380
385
  ...ProductInventoryFields
381
386
  }
@@ -424,6 +429,30 @@ fragment ProductGridFields on Product {
424
429
  containerClass
425
430
  }
426
431
 
432
+ fragment AttributeResultGridFields on AttributeResult {
433
+ attributeDescription {
434
+ name
435
+ }
436
+ value {
437
+ __typename
438
+ ... on AttributeTextValue {
439
+ textValues {
440
+ language
441
+ values
442
+ }
443
+ }
444
+ ... on AttributeEnumValue {
445
+ enumValues
446
+ }
447
+ ... on AttributeIntValue {
448
+ intValue
449
+ }
450
+ ... on AttributeDecimalValue {
451
+ decimalValue
452
+ }
453
+ }
454
+ }
455
+
427
456
  fragment ProductInventoryFields on ProductInventory {
428
457
  productId
429
458
  totalQuantity
@@ -624,7 +653,7 @@ fragment AttributeFilterFields on AttributeFilter {
624
653
  }
625
654
  }
626
655
 
627
- query categoryBySlug(\$slug: String!, \$language: String!, \$hidden: YesNo, \$categoryProductSearchInput: CategoryProductSearchInput, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!) {
656
+ query categoryBySlug(\$slug: String!, \$language: String!, \$hidden: YesNo, \$categoryProductSearchInput: CategoryProductSearchInput, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$attributeResultSearchInput: AttributeResultSearchInput) {
628
657
  categoryBySlug(slug: \$slug, language: \$language, hidden: \$hidden) {
629
658
  ...CategoryFields
630
659
  }
@@ -376,6 +376,11 @@ fragment ProductGridFields on Product {
376
376
  ...IBaseProductFields
377
377
  productId
378
378
  categoryId
379
+ attributes(input: \$attributeResultSearchInput) {
380
+ items {
381
+ ...AttributeResultGridFields
382
+ }
383
+ }
379
384
  inventory {
380
385
  ...ProductInventoryFields
381
386
  }
@@ -424,6 +429,30 @@ fragment ProductGridFields on Product {
424
429
  containerClass
425
430
  }
426
431
 
432
+ fragment AttributeResultGridFields on AttributeResult {
433
+ attributeDescription {
434
+ name
435
+ }
436
+ value {
437
+ __typename
438
+ ... on AttributeTextValue {
439
+ textValues {
440
+ language
441
+ values
442
+ }
443
+ }
444
+ ... on AttributeEnumValue {
445
+ enumValues
446
+ }
447
+ ... on AttributeIntValue {
448
+ intValue
449
+ }
450
+ ... on AttributeDecimalValue {
451
+ decimalValue
452
+ }
453
+ }
454
+ }
455
+
427
456
  fragment ProductInventoryFields on ProductInventory {
428
457
  productId
429
458
  totalQuantity
@@ -624,7 +653,7 @@ fragment AttributeFilterFields on AttributeFilter {
624
653
  }
625
654
  }
626
655
 
627
- query categoryBySource(\$source: SourceInput!, \$hidden: YesNo, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!) {
656
+ query categoryBySource(\$source: SourceInput!, \$hidden: YesNo, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$attributeResultSearchInput: AttributeResultSearchInput) {
628
657
  categoryBySource(source: \$source, hidden: \$hidden) {
629
658
  ...CategoryFields
630
659
  }
@@ -376,6 +376,11 @@ fragment ProductGridFields on Product {
376
376
  ...IBaseProductFields
377
377
  productId
378
378
  categoryId
379
+ attributes(input: \$attributeResultSearchInput) {
380
+ items {
381
+ ...AttributeResultGridFields
382
+ }
383
+ }
379
384
  inventory {
380
385
  ...ProductInventoryFields
381
386
  }
@@ -424,6 +429,30 @@ fragment ProductGridFields on Product {
424
429
  containerClass
425
430
  }
426
431
 
432
+ fragment AttributeResultGridFields on AttributeResult {
433
+ attributeDescription {
434
+ name
435
+ }
436
+ value {
437
+ __typename
438
+ ... on AttributeTextValue {
439
+ textValues {
440
+ language
441
+ values
442
+ }
443
+ }
444
+ ... on AttributeEnumValue {
445
+ enumValues
446
+ }
447
+ ... on AttributeIntValue {
448
+ intValue
449
+ }
450
+ ... on AttributeDecimalValue {
451
+ decimalValue
452
+ }
453
+ }
454
+ }
455
+
427
456
  fragment ProductInventoryFields on ProductInventory {
428
457
  productId
429
458
  totalQuantity
@@ -624,7 +653,7 @@ fragment AttributeFilterFields on AttributeFilter {
624
653
  }
625
654
  }
626
655
 
627
- query categoryChildren(\$categoryId: Int!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!) {
656
+ query categoryChildren(\$categoryId: Int!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$attributeResultSearchInput: AttributeResultSearchInput) {
628
657
  categoryChildren(categoryId: \$categoryId) {
629
658
  ...CategoryFields
630
659
  }
@@ -376,6 +376,11 @@ fragment ProductGridFields on Product {
376
376
  ...IBaseProductFields
377
377
  productId
378
378
  categoryId
379
+ attributes(input: \$attributeResultSearchInput) {
380
+ items {
381
+ ...AttributeResultGridFields
382
+ }
383
+ }
379
384
  inventory {
380
385
  ...ProductInventoryFields
381
386
  }
@@ -424,6 +429,30 @@ fragment ProductGridFields on Product {
424
429
  containerClass
425
430
  }
426
431
 
432
+ fragment AttributeResultGridFields on AttributeResult {
433
+ attributeDescription {
434
+ name
435
+ }
436
+ value {
437
+ __typename
438
+ ... on AttributeTextValue {
439
+ textValues {
440
+ language
441
+ values
442
+ }
443
+ }
444
+ ... on AttributeEnumValue {
445
+ enumValues
446
+ }
447
+ ... on AttributeIntValue {
448
+ intValue
449
+ }
450
+ ... on AttributeDecimalValue {
451
+ decimalValue
452
+ }
453
+ }
454
+ }
455
+
427
456
  fragment ProductInventoryFields on ProductInventory {
428
457
  productId
429
458
  totalQuantity
@@ -624,7 +653,7 @@ fragment AttributeFilterFields on AttributeFilter {
624
653
  }
625
654
  }
626
655
 
627
- mutation categoryCreate(\$input: CreateCategoryInput!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!) {
656
+ mutation categoryCreate(\$input: CreateCategoryInput!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$attributeResultSearchInput: AttributeResultSearchInput) {
628
657
  categoryCreate(input: \$input) {
629
658
  ...CategoryFields
630
659
  }
@@ -376,6 +376,11 @@ fragment ProductGridFields on Product {
376
376
  ...IBaseProductFields
377
377
  productId
378
378
  categoryId
379
+ attributes(input: \$attributeResultSearchInput) {
380
+ items {
381
+ ...AttributeResultGridFields
382
+ }
383
+ }
379
384
  inventory {
380
385
  ...ProductInventoryFields
381
386
  }
@@ -424,6 +429,30 @@ fragment ProductGridFields on Product {
424
429
  containerClass
425
430
  }
426
431
 
432
+ fragment AttributeResultGridFields on AttributeResult {
433
+ attributeDescription {
434
+ name
435
+ }
436
+ value {
437
+ __typename
438
+ ... on AttributeTextValue {
439
+ textValues {
440
+ language
441
+ values
442
+ }
443
+ }
444
+ ... on AttributeEnumValue {
445
+ enumValues
446
+ }
447
+ ... on AttributeIntValue {
448
+ intValue
449
+ }
450
+ ... on AttributeDecimalValue {
451
+ decimalValue
452
+ }
453
+ }
454
+ }
455
+
427
456
  fragment ProductInventoryFields on ProductInventory {
428
457
  productId
429
458
  totalQuantity
@@ -624,7 +653,7 @@ fragment AttributeFilterFields on AttributeFilter {
624
653
  }
625
654
  }
626
655
 
627
- query categoryHierarchy(\$categoryId: Int!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!) {
656
+ query categoryHierarchy(\$categoryId: Int!, \$categoryProductSearchInput: CategoryProductSearchInput, \$language: String, \$filterAvailableAttributeInput: FilterAvailableAttributeInput, \$priceCalculateProductInput: PriceCalculateProductInput, \$imageSearchFilters: MediaImageProductSearchInput, \$imageVariantFilters: TransformationsInput!, \$attributeResultSearchInput: AttributeResultSearchInput) {
628
657
  categoryHierarchy(categoryId: \$categoryId) {
629
658
  ...CategoryFields
630
659
  }