@doswiftly/storefront-operations 5.4.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/mutations.graphql CHANGED
@@ -15,72 +15,93 @@ mutation CartCreate($input: CartCreateInput) {
15
15
  userErrors {
16
16
  ...UserError
17
17
  }
18
+ warnings {
19
+ ...CartWarning
20
+ }
18
21
  }
19
22
  }
20
23
 
21
- mutation CartLinesAdd($cartId: ID!, $lines: [CartLineInput!]!) {
22
- cartLinesAdd(cartId: $cartId, lines: $lines) {
24
+ mutation CartAddLines($id: ID!, $lines: [CartLineInput!]!) {
25
+ cartAddLines(id: $id, lines: $lines) {
23
26
  cart {
24
27
  ...Cart
25
28
  }
26
29
  userErrors {
27
30
  ...UserError
28
31
  }
32
+ warnings {
33
+ ...CartWarning
34
+ }
29
35
  }
30
36
  }
31
37
 
32
- mutation CartLinesUpdate($cartId: ID!, $lines: [CartLineUpdateInput!]!) {
33
- cartLinesUpdate(cartId: $cartId, lines: $lines) {
38
+ mutation CartUpdateLines($id: ID!, $lines: [CartLineUpdateInput!]!) {
39
+ cartUpdateLines(id: $id, lines: $lines) {
34
40
  cart {
35
41
  ...Cart
36
42
  }
37
43
  userErrors {
38
44
  ...UserError
39
45
  }
46
+ warnings {
47
+ ...CartWarning
48
+ }
40
49
  }
41
50
  }
42
51
 
43
- mutation CartLinesRemove($cartId: ID!, $lineIds: [ID!]!) {
44
- cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {
52
+ mutation CartRemoveLines($id: ID!, $lineIds: [ID!]!) {
53
+ cartRemoveLines(id: $id, lineIds: $lineIds) {
45
54
  cart {
46
55
  ...Cart
47
56
  }
48
57
  userErrors {
49
58
  ...UserError
50
59
  }
60
+ warnings {
61
+ ...CartWarning
62
+ }
51
63
  }
52
64
  }
53
65
 
54
- mutation CartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]!) {
55
- cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {
66
+ mutation CartApplyDiscountCodes($id: ID!, $discountCodes: [String!]!) {
67
+ cartApplyDiscountCodes(id: $id, discountCodes: $discountCodes) {
56
68
  cart {
57
69
  ...Cart
58
70
  }
59
71
  userErrors {
60
72
  ...UserError
61
73
  }
74
+ warnings {
75
+ ...CartWarning
76
+ }
62
77
  }
63
78
  }
64
79
 
65
- mutation CartBuyerIdentityUpdate($cartId: ID!, $buyerIdentity: CartBuyerIdentityInput!) {
66
- cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {
80
+ mutation CartUpdateBuyerIdentity($id: ID!, $buyerIdentity: CartBuyerIdentityInput!) {
81
+ cartUpdateBuyerIdentity(id: $id, buyerIdentity: $buyerIdentity) {
67
82
  cart {
68
83
  ...Cart
69
84
  }
70
85
  userErrors {
71
86
  ...UserError
72
87
  }
88
+ warnings {
89
+ ...CartWarning
90
+ }
73
91
  }
74
92
  }
75
93
 
76
- mutation CartNoteUpdate($cartId: ID!, $note: String!) {
77
- cartNoteUpdate(cartId: $cartId, note: $note) {
94
+ mutation CartUpdateNote($id: ID!, $note: String!) {
95
+ cartUpdateNote(id: $id, note: $note) {
78
96
  cart {
79
97
  ...Cart
80
98
  }
81
99
  userErrors {
82
100
  ...UserError
83
101
  }
102
+ warnings {
103
+ ...CartWarning
104
+ }
84
105
  }
85
106
  }
86
107
 
@@ -88,8 +109,8 @@ mutation CartNoteUpdate($cartId: ID!, $note: String!) {
88
109
  # Customer Auth Mutations
89
110
  # ============================================
90
111
 
91
- mutation CustomerCreate($input: CustomerCreateInput!) {
92
- customerCreate(input: $input) {
112
+ mutation CustomerSignup($input: CustomerCreateInput!) {
113
+ customerSignup(input: $input) {
93
114
  customer {
94
115
  ...Customer
95
116
  }
@@ -103,7 +124,7 @@ mutation CustomerCreate($input: CustomerCreateInput!) {
103
124
  }
104
125
 
105
126
  mutation CustomerLogin($input: CustomerAccessTokenCreateInput!) {
106
- customerAccessTokenCreate(input: $input) {
127
+ customerLogin(input: $input) {
107
128
  customerAccessToken {
108
129
  ...CustomerAccessToken
109
130
  }
@@ -113,8 +134,8 @@ mutation CustomerLogin($input: CustomerAccessTokenCreateInput!) {
113
134
  }
114
135
  }
115
136
 
116
- mutation CustomerLogout($customerAccessToken: String!) {
117
- customerAccessTokenDelete(customerAccessToken: $customerAccessToken) {
137
+ mutation CustomerLogout {
138
+ customerLogout {
118
139
  deletedAccessToken
119
140
  deletedCustomerAccessTokenId
120
141
  userErrors {
@@ -123,8 +144,8 @@ mutation CustomerLogout($customerAccessToken: String!) {
123
144
  }
124
145
  }
125
146
 
126
- mutation CustomerTokenRenew($customerAccessToken: String!) {
127
- customerAccessTokenRenew(customerAccessToken: $customerAccessToken) {
147
+ mutation CustomerRefreshToken {
148
+ customerRefreshToken {
128
149
  customerAccessToken {
129
150
  ...CustomerAccessToken
130
151
  }
@@ -138,8 +159,8 @@ mutation CustomerTokenRenew($customerAccessToken: String!) {
138
159
  # Customer Profile Mutations
139
160
  # ============================================
140
161
 
141
- mutation CustomerUpdate($customer: CustomerUpdateInput!, $customerAccessToken: String!) {
142
- customerUpdate(customer: $customer, customerAccessToken: $customerAccessToken) {
162
+ mutation CustomerUpdate($customer: CustomerUpdateInput!) {
163
+ customerUpdate(customer: $customer) {
143
164
  customer {
144
165
  ...Customer
145
166
  }
@@ -153,8 +174,8 @@ mutation CustomerUpdate($customer: CustomerUpdateInput!, $customerAccessToken: S
153
174
  # Customer Address Mutations
154
175
  # ============================================
155
176
 
156
- mutation CustomerAddressCreate($address: MailingAddressInput!, $customerAccessToken: String!) {
157
- customerAddressCreate(address: $address, customerAccessToken: $customerAccessToken) {
177
+ mutation CustomerAddAddress($address: MailingAddressInput!) {
178
+ customerAddAddress(address: $address) {
158
179
  address {
159
180
  ...MailingAddress
160
181
  }
@@ -164,8 +185,8 @@ mutation CustomerAddressCreate($address: MailingAddressInput!, $customerAccessTo
164
185
  }
165
186
  }
166
187
 
167
- mutation CustomerAddressUpdate($id: ID!, $address: MailingAddressInput!, $customerAccessToken: String!) {
168
- customerAddressUpdate(id: $id, address: $address, customerAccessToken: $customerAccessToken) {
188
+ mutation CustomerUpdateAddress($id: ID!, $address: MailingAddressInput!) {
189
+ customerUpdateAddress(id: $id, address: $address) {
169
190
  address {
170
191
  ...MailingAddress
171
192
  }
@@ -175,8 +196,8 @@ mutation CustomerAddressUpdate($id: ID!, $address: MailingAddressInput!, $custom
175
196
  }
176
197
  }
177
198
 
178
- mutation CustomerAddressDelete($id: ID!, $customerAccessToken: String!) {
179
- customerAddressDelete(id: $id, customerAccessToken: $customerAccessToken) {
199
+ mutation CustomerRemoveAddress($id: ID!) {
200
+ customerRemoveAddress(id: $id) {
180
201
  deletedAddressId
181
202
  userErrors {
182
203
  ...UserError
@@ -184,8 +205,8 @@ mutation CustomerAddressDelete($id: ID!, $customerAccessToken: String!) {
184
205
  }
185
206
  }
186
207
 
187
- mutation CustomerDefaultAddressUpdate($addressId: ID!, $customerAccessToken: String!) {
188
- customerDefaultAddressUpdate(addressId: $addressId, customerAccessToken: $customerAccessToken) {
208
+ mutation CustomerSetDefaultAddress($addressId: ID!) {
209
+ customerSetDefaultAddress(addressId: $addressId) {
189
210
  customer {
190
211
  ...Customer
191
212
  }
@@ -199,16 +220,30 @@ mutation CustomerDefaultAddressUpdate($addressId: ID!, $customerAccessToken: Str
199
220
  # Customer Password Mutations
200
221
  # ============================================
201
222
 
202
- mutation CustomerPasswordRecover($email: String!) {
203
- customerRecover(email: $email) {
223
+ mutation CustomerRequestPasswordReset($email: String!) {
224
+ customerRequestPasswordReset(email: $email) {
204
225
  userErrors {
205
226
  ...UserError
206
227
  }
207
228
  }
208
229
  }
209
230
 
210
- mutation CustomerPasswordReset($id: ID!, $input: String!, $password: String!) {
211
- customerReset(id: $id, input: $input, password: $password) {
231
+ mutation CustomerActivate($token: String!, $password: String!) {
232
+ customerActivate(token: $token, password: $password) {
233
+ customer {
234
+ ...Customer
235
+ }
236
+ customerAccessToken {
237
+ ...CustomerAccessToken
238
+ }
239
+ userErrors {
240
+ ...UserError
241
+ }
242
+ }
243
+ }
244
+
245
+ mutation CustomerResetPassword($token: String!, $newPassword: String!) {
246
+ customerResetPassword(token: $token, newPassword: $newPassword) {
212
247
  customer {
213
248
  ...Customer
214
249
  }
@@ -231,7 +266,7 @@ mutation CheckoutCreate($input: CheckoutCreateInput!) {
231
266
  ...Checkout
232
267
  }
233
268
  userErrors {
234
- ...CheckoutUserError
269
+ ...UserError
235
270
  }
236
271
  }
237
272
  }
@@ -242,7 +277,7 @@ mutation CheckoutShippingAddressUpdate($checkoutId: ID!, $shippingAddress: Check
242
277
  ...Checkout
243
278
  }
244
279
  userErrors {
245
- ...CheckoutUserError
280
+ ...UserError
246
281
  }
247
282
  }
248
283
  }
@@ -253,7 +288,7 @@ mutation CheckoutBillingAddressUpdate($checkoutId: ID!, $billingAddress: Checkou
253
288
  ...Checkout
254
289
  }
255
290
  userErrors {
256
- ...CheckoutUserError
291
+ ...UserError
257
292
  }
258
293
  }
259
294
  }
@@ -264,7 +299,7 @@ mutation CheckoutEmailUpdate($checkoutId: ID!, $email: String!) {
264
299
  ...Checkout
265
300
  }
266
301
  userErrors {
267
- ...CheckoutUserError
302
+ ...UserError
268
303
  }
269
304
  }
270
305
  }
@@ -275,7 +310,7 @@ mutation CheckoutShippingLineUpdate($checkoutId: ID!, $shippingRateHandle: Strin
275
310
  ...Checkout
276
311
  }
277
312
  userErrors {
278
- ...CheckoutUserError
313
+ ...UserError
279
314
  }
280
315
  }
281
316
  }
@@ -286,7 +321,7 @@ mutation CheckoutDiscountCodeApply($checkoutId: ID!, $discountCode: String!) {
286
321
  ...Checkout
287
322
  }
288
323
  userErrors {
289
- ...CheckoutUserError
324
+ ...UserError
290
325
  }
291
326
  }
292
327
  }
@@ -297,7 +332,7 @@ mutation CheckoutDiscountCodeRemove($checkoutId: ID!, $discountCode: String!) {
297
332
  ...Checkout
298
333
  }
299
334
  userErrors {
300
- ...CheckoutUserError
335
+ ...UserError
301
336
  }
302
337
  }
303
338
  }
@@ -305,7 +340,7 @@ mutation CheckoutDiscountCodeRemove($checkoutId: ID!, $discountCode: String!) {
305
340
  mutation CheckoutDiscountCodeValidate($checkoutId: ID!, $discountCode: String!) {
306
341
  checkoutDiscountCodeValidate(checkoutId: $checkoutId, discountCode: $discountCode) {
307
342
  result {
308
- valid
343
+ isValid
309
344
  discount {
310
345
  code
311
346
  title
@@ -322,7 +357,7 @@ mutation CheckoutDiscountCodeValidate($checkoutId: ID!, $discountCode: String!)
322
357
  }
323
358
  }
324
359
  userErrors {
325
- ...CheckoutUserError
360
+ ...UserError
326
361
  }
327
362
  }
328
363
  }
@@ -333,7 +368,7 @@ mutation CheckoutPaymentMethodUpdate($checkoutId: ID!, $paymentMethodId: ID!) {
333
368
  ...Checkout
334
369
  }
335
370
  userErrors {
336
- ...CheckoutUserError
371
+ ...UserError
337
372
  }
338
373
  }
339
374
  }
@@ -348,7 +383,7 @@ mutation CheckoutComplete($checkoutId: ID!, $input: CheckoutCompleteInput) {
348
383
  }
349
384
  paymentUrl
350
385
  userErrors {
351
- ...CheckoutUserError
386
+ ...UserError
352
387
  }
353
388
  }
354
389
  }
@@ -363,7 +398,7 @@ mutation CheckoutGiftCardApply($checkoutId: ID!, $giftCardCode: String!) {
363
398
  ...Checkout
364
399
  }
365
400
  userErrors {
366
- ...CheckoutUserError
401
+ ...UserError
367
402
  }
368
403
  }
369
404
  }
@@ -374,7 +409,7 @@ mutation CheckoutGiftCardRemove($checkoutId: ID!, $giftCardCode: String!) {
374
409
  ...Checkout
375
410
  }
376
411
  userErrors {
377
- ...CheckoutUserError
412
+ ...UserError
378
413
  }
379
414
  }
380
415
  }
@@ -385,7 +420,7 @@ mutation CheckoutGiftCardRecipientUpdate($input: CheckoutGiftCardRecipientInput!
385
420
  ...Checkout
386
421
  }
387
422
  userErrors {
388
- ...CheckoutUserError
423
+ ...UserError
389
424
  }
390
425
  }
391
426
  }
@@ -394,8 +429,8 @@ mutation CheckoutGiftCardRecipientUpdate($input: CheckoutGiftCardRecipientInput!
394
429
  # Return Mutations (R30 - Returns/RMA)
395
430
  # ============================================
396
431
 
397
- mutation ReturnCreate($input: ReturnCreateInput!, $customerAccessToken: String!) {
398
- returnCreate(input: $input, customerAccessToken: $customerAccessToken) {
432
+ mutation ReturnCreate($input: ReturnCreateInput!) {
433
+ returnCreate(input: $input) {
399
434
  return {
400
435
  ...Return
401
436
  }
@@ -405,8 +440,8 @@ mutation ReturnCreate($input: ReturnCreateInput!, $customerAccessToken: String!)
405
440
  }
406
441
  }
407
442
 
408
- mutation ReturnCancel($id: ID!, $customerAccessToken: String!) {
409
- returnCancel(id: $id, customerAccessToken: $customerAccessToken) {
443
+ mutation ReturnCancel($id: ID!) {
444
+ returnCancel(id: $id) {
410
445
  return {
411
446
  ...Return
412
447
  }
@@ -447,8 +482,19 @@ mutation ReviewCreate($input: ReviewCreateInput!) {
447
482
  }
448
483
  }
449
484
 
450
- mutation ReviewVote($reviewId: ID!, $isHelpful: Boolean!) {
451
- reviewVote(reviewId: $reviewId, isHelpful: $isHelpful) {
485
+ mutation ReviewUpvote($reviewId: ID!) {
486
+ reviewUpvote(reviewId: $reviewId) {
487
+ review {
488
+ ...ProductReview
489
+ }
490
+ userErrors {
491
+ ...UserError
492
+ }
493
+ }
494
+ }
495
+
496
+ mutation ReviewDownvote($reviewId: ID!) {
497
+ reviewDownvote(reviewId: $reviewId) {
452
498
  review {
453
499
  ...ProductReview
454
500
  }
@@ -502,13 +548,16 @@ mutation WishlistDelete($wishlistId: ID!) {
502
548
  # Cart Attributes
503
549
  # ============================================
504
550
 
505
- mutation CartAttributesUpdate($cartId: ID!, $attributes: [CartAttributeInput!]!) {
506
- cartAttributesUpdate(cartId: $cartId, attributes: $attributes) {
551
+ mutation CartUpdateAttributes($id: ID!, $attributes: [CartAttributeInput!]!) {
552
+ cartUpdateAttributes(id: $id, attributes: $attributes) {
507
553
  cart {
508
554
  ...Cart
509
555
  }
510
556
  userErrors {
511
557
  ...UserError
512
558
  }
559
+ warnings {
560
+ ...CartWarning
561
+ }
513
562
  }
514
563
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doswiftly/storefront-operations",
3
- "version": "5.4.1",
3
+ "version": "6.0.0",
4
4
  "description": "GraphQL operations for DoSwiftly Storefront - SSOT from backend",
5
5
  "homepage": "https://doswiftly.pl",
6
6
  "publishConfig": {
package/queries.graphql CHANGED
@@ -40,9 +40,9 @@ query Products(
40
40
  $first: Int = 20
41
41
  $after: String
42
42
  $query: String
43
- $sortKey: ProductSortKeys = BEST_SELLING
43
+ $sortKey: ProductSortKeys = RELEVANCE
44
44
  $reverse: Boolean = false
45
- $filters: ProductFilterInput
45
+ $filters: [ProductFilter!]
46
46
  ) {
47
47
  products(first: $first, after: $after, query: $query, sortKey: $sortKey, reverse: $reverse, filters: $filters) {
48
48
  edges {
@@ -51,6 +51,9 @@ query Products(
51
51
  }
52
52
  cursor
53
53
  }
54
+ nodes {
55
+ ...ProductCard
56
+ }
54
57
  pageInfo {
55
58
  ...PageInfo
56
59
  }
@@ -58,7 +61,7 @@ query Products(
58
61
  }
59
62
  }
60
63
 
61
- query ProductSearch($query: String!, $first: Int = 20, $after: String, $filters: ProductFilterInput) {
64
+ query ProductSearch($query: String!, $first: Int = 20, $after: String, $filters: [ProductFilter!]) {
62
65
  products(query: $query, first: $first, after: $after, filters: $filters) {
63
66
  edges {
64
67
  node {
@@ -66,6 +69,9 @@ query ProductSearch($query: String!, $first: Int = 20, $after: String, $filters:
66
69
  }
67
70
  cursor
68
71
  }
72
+ nodes {
73
+ ...ProductCard
74
+ }
69
75
  pageInfo {
70
76
  ...PageInfo
71
77
  }
@@ -73,20 +79,35 @@ query ProductSearch($query: String!, $first: Int = 20, $after: String, $filters:
73
79
  }
74
80
  }
75
81
 
82
+ query PredictiveSearch($query: String!, $limit: Int = 10) {
83
+ predictiveSearch(query: $query, limit: $limit) {
84
+ products {
85
+ ...ProductCard
86
+ }
87
+ queries {
88
+ text
89
+ styledText
90
+ }
91
+ }
92
+ }
93
+
76
94
  # ============================================
77
95
  # Collections
78
96
  # ============================================
79
97
 
80
- query Collection($id: ID, $handle: String, $productsFirst: Int = 20, $productsAfter: String) {
98
+ query Collection($id: ID, $handle: String, $productsFirst: Int = 20, $productsAfter: String, $productsFilters: [ProductFilter!]) {
81
99
  collection(id: $id, handle: $handle) {
82
100
  ...Collection
83
- products(first: $productsFirst, after: $productsAfter) {
101
+ products(first: $productsFirst, after: $productsAfter, filters: $productsFilters) {
84
102
  edges {
85
103
  node {
86
104
  ...ProductCard
87
105
  }
88
106
  cursor
89
107
  }
108
+ nodes {
109
+ ...ProductCard
110
+ }
90
111
  pageInfo {
91
112
  ...PageInfo
92
113
  }
@@ -155,11 +176,23 @@ query Cart($id: ID!) {
155
176
  # Customer (requires auth)
156
177
  # ============================================
157
178
 
158
- query Customer($customerAccessToken: String!) {
159
- customer(customerAccessToken: $customerAccessToken) {
179
+ query Customer {
180
+ customer {
160
181
  ...Customer
161
182
  addresses(first: 10) {
162
- ...MailingAddress
183
+ edges {
184
+ cursor
185
+ node {
186
+ ...MailingAddress
187
+ }
188
+ }
189
+ nodes {
190
+ ...MailingAddress
191
+ }
192
+ pageInfo {
193
+ ...PageInfo
194
+ }
195
+ totalCount
163
196
  }
164
197
  orders(first: 10) {
165
198
  edges {
@@ -178,15 +211,15 @@ query Customer($customerAccessToken: String!) {
178
211
 
179
212
  # Lightweight customer profile query (no orders, no addresses list)
180
213
  # Use for settings/profile pages that only need basic customer info.
181
- query CustomerProfile($customerAccessToken: String!) {
182
- customer(customerAccessToken: $customerAccessToken) {
214
+ query CustomerProfile {
215
+ customer {
183
216
  ...Customer
184
217
  }
185
218
  }
186
219
 
187
220
  # Single order query — more efficient than fetching all customer data
188
- query CustomerOrder($orderId: ID!, $customerAccessToken: String!) {
189
- customerOrder(orderId: $orderId, customerAccessToken: $customerAccessToken) {
221
+ query CustomerOrder($orderId: ID!) {
222
+ customerOrder(orderId: $orderId) {
190
223
  ...Order
191
224
  }
192
225
  }
@@ -215,8 +248,8 @@ query AvailablePaymentMethods {
215
248
  # Shipments (R29 - Shipment Tracking)
216
249
  # ============================================
217
250
 
218
- query Shipment($id: ID!, $customerAccessToken: String!) {
219
- shipment(id: $id, customerAccessToken: $customerAccessToken) {
251
+ query Shipment($id: ID!) {
252
+ shipment(id: $id) {
220
253
  shipment {
221
254
  ...Shipment
222
255
  }
@@ -241,8 +274,8 @@ query ShipmentByTrackingNumber($trackingNumber: String!) {
241
274
  # Returns (R30 - Returns/RMA)
242
275
  # ============================================
243
276
 
244
- query Return($id: ID!, $customerAccessToken: String!) {
245
- return(id: $id, customerAccessToken: $customerAccessToken) {
277
+ query Return($id: ID!) {
278
+ return(id: $id) {
246
279
  return {
247
280
  ...Return
248
281
  }
@@ -252,8 +285,8 @@ query Return($id: ID!, $customerAccessToken: String!) {
252
285
  }
253
286
  }
254
287
 
255
- query ReturnsByOrder($orderId: ID!, $customerAccessToken: String!) {
256
- returnsByOrder(orderId: $orderId, customerAccessToken: $customerAccessToken) {
288
+ query ReturnsByOrder($orderId: ID!) {
289
+ returnsByOrder(orderId: $orderId) {
257
290
  edges {
258
291
  node {
259
292
  ...Return
@@ -279,12 +312,7 @@ query ReturnReasons {
279
312
 
280
313
  query GiftCard($code: String!) {
281
314
  giftCard(code: $code) {
282
- giftCard {
283
- ...GiftCard
284
- }
285
- userErrors {
286
- ...UserError
287
- }
315
+ ...GiftCard
288
316
  }
289
317
  }
290
318
 
@@ -411,9 +439,24 @@ query ReviewStats($productId: ID!) {
411
439
  # Wishlists
412
440
  # ============================================
413
441
 
414
- query Wishlists {
415
- wishlists {
416
- ...Wishlist
442
+ query Wishlists($first: Int = 20, $after: String) {
443
+ wishlists(first: $first, after: $after) {
444
+ edges {
445
+ cursor
446
+ node {
447
+ ...Wishlist
448
+ }
449
+ }
450
+ nodes {
451
+ ...Wishlist
452
+ }
453
+ pageInfo {
454
+ hasNextPage
455
+ hasPreviousPage
456
+ startCursor
457
+ endCursor
458
+ }
459
+ totalCount
417
460
  }
418
461
  }
419
462
 
@@ -470,21 +513,6 @@ query ProductRecommendations($productId: ID!, $limit: Int = 8, $intent: Recommen
470
513
  }
471
514
  }
472
515
 
473
- query SimilarProducts($productId: String!, $first: Int = 6) {
474
- similarProducts(productId: $productId, first: $first) {
475
- items {
476
- ...ProductRecommendation
477
- }
478
- totalCount
479
- }
480
- }
481
-
482
- query CartRecommendations($cartId: String!, $first: Int = 4) {
483
- cartRecommendations(cartId: $cartId, first: $first) {
484
- ...CartRecommendation
485
- }
486
- }
487
-
488
516
  # ============================================
489
517
  # Content: Pages
490
518
  # ============================================
@@ -536,7 +564,7 @@ query UrlRedirects($first: Int = 250, $after: String) {
536
564
  }
537
565
 
538
566
  # ============================================
539
- # Store Availability: per-location stock (Shopify parity — BOPIS / multi-location)
567
+ # Store Availability: per-location stock (BOPIS / multi-location)
540
568
  # ============================================
541
569
  # Field returns null for single-location shops (storefront can skip the store picker).
542
570
  # `near`, `locationType`, and `@inContext(preferredLocationId)` shape the ordering.
@@ -553,7 +581,7 @@ query ProductStoreAvailability($handle: String, $id: ID) {
553
581
  }
554
582
 
555
583
  # ============================================
556
- # Locations (store picker UI, Shopify parity)
584
+ # Locations (store picker UI)
557
585
  # ============================================
558
586
 
559
587
  query Locations(