@doswiftly/storefront-operations 1.0.5
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/README.md +195 -0
- package/fragments.graphql +1152 -0
- package/index.js +15 -0
- package/mutations.graphql +433 -0
- package/package.json +35 -0
- package/queries.graphql +355 -0
|
@@ -0,0 +1,1152 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# DoSwiftly Storefront API - Fragments
|
|
3
|
+
# SSOT: Backend defines all reusable fragments
|
|
4
|
+
# ============================================
|
|
5
|
+
|
|
6
|
+
# ============================================
|
|
7
|
+
# Common Fragments
|
|
8
|
+
# ============================================
|
|
9
|
+
|
|
10
|
+
fragment PageInfo on PageInfo {
|
|
11
|
+
hasNextPage
|
|
12
|
+
hasPreviousPage
|
|
13
|
+
startCursor
|
|
14
|
+
endCursor
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
fragment UserError on UserError {
|
|
18
|
+
message
|
|
19
|
+
code
|
|
20
|
+
field
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
fragment Image on Image {
|
|
24
|
+
id
|
|
25
|
+
url
|
|
26
|
+
altText
|
|
27
|
+
width
|
|
28
|
+
height
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
# Simple money (for originalPrice fields and non-converted prices)
|
|
32
|
+
fragment Money on Money {
|
|
33
|
+
amount
|
|
34
|
+
currencyCode
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# Full price with conversion transparency (for price fields that support currency conversion)
|
|
38
|
+
fragment PriceMoney on PriceMoney {
|
|
39
|
+
amount
|
|
40
|
+
currencyCode
|
|
41
|
+
baseAmount
|
|
42
|
+
baseCurrencyCode
|
|
43
|
+
exchangeRate
|
|
44
|
+
marginApplied
|
|
45
|
+
rateTimestamp
|
|
46
|
+
isConverted
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
fragment SelectedOption on SelectedOption {
|
|
50
|
+
name
|
|
51
|
+
value
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
# ============================================
|
|
55
|
+
# Product Fragments
|
|
56
|
+
# ============================================
|
|
57
|
+
|
|
58
|
+
fragment ProductVariant on ProductVariant {
|
|
59
|
+
id
|
|
60
|
+
title
|
|
61
|
+
sku
|
|
62
|
+
price {
|
|
63
|
+
...PriceMoney
|
|
64
|
+
}
|
|
65
|
+
originalPrice {
|
|
66
|
+
...Money
|
|
67
|
+
}
|
|
68
|
+
compareAtPrice {
|
|
69
|
+
...PriceMoney
|
|
70
|
+
}
|
|
71
|
+
originalCompareAtPrice {
|
|
72
|
+
...Money
|
|
73
|
+
}
|
|
74
|
+
available
|
|
75
|
+
quantityAvailable
|
|
76
|
+
image {
|
|
77
|
+
...Image
|
|
78
|
+
}
|
|
79
|
+
selectedOptions {
|
|
80
|
+
...SelectedOption
|
|
81
|
+
}
|
|
82
|
+
barcode
|
|
83
|
+
weight
|
|
84
|
+
position
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
fragment ProductBase on Product {
|
|
88
|
+
id
|
|
89
|
+
handle
|
|
90
|
+
title
|
|
91
|
+
description
|
|
92
|
+
descriptionHtml
|
|
93
|
+
featuredImage {
|
|
94
|
+
...Image
|
|
95
|
+
}
|
|
96
|
+
priceRange {
|
|
97
|
+
minVariantPrice {
|
|
98
|
+
...PriceMoney
|
|
99
|
+
}
|
|
100
|
+
maxVariantPrice {
|
|
101
|
+
...PriceMoney
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
originalPriceRange {
|
|
105
|
+
minVariantPrice {
|
|
106
|
+
...Money
|
|
107
|
+
}
|
|
108
|
+
maxVariantPrice {
|
|
109
|
+
...Money
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
compareAtPriceRange {
|
|
113
|
+
minVariantPrice {
|
|
114
|
+
...PriceMoney
|
|
115
|
+
}
|
|
116
|
+
maxVariantPrice {
|
|
117
|
+
...PriceMoney
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
originalCompareAtPriceRange {
|
|
121
|
+
minVariantPrice {
|
|
122
|
+
...Money
|
|
123
|
+
}
|
|
124
|
+
maxVariantPrice {
|
|
125
|
+
...Money
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
totalInventory
|
|
129
|
+
vendor
|
|
130
|
+
productType
|
|
131
|
+
type
|
|
132
|
+
collectRecipientInfo
|
|
133
|
+
tags
|
|
134
|
+
createdAt
|
|
135
|
+
updatedAt
|
|
136
|
+
averageRating
|
|
137
|
+
reviewCount
|
|
138
|
+
availableForSale
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
fragment ProductFull on Product {
|
|
142
|
+
...ProductBase
|
|
143
|
+
images(first: 20) {
|
|
144
|
+
...Image
|
|
145
|
+
}
|
|
146
|
+
variants(first: 100) {
|
|
147
|
+
...ProductVariant
|
|
148
|
+
}
|
|
149
|
+
seo {
|
|
150
|
+
title
|
|
151
|
+
description
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
# ============================================
|
|
156
|
+
# Collection Fragments
|
|
157
|
+
# ============================================
|
|
158
|
+
|
|
159
|
+
fragment Collection on Collection {
|
|
160
|
+
id
|
|
161
|
+
handle
|
|
162
|
+
title
|
|
163
|
+
description
|
|
164
|
+
descriptionHtml
|
|
165
|
+
image {
|
|
166
|
+
...Image
|
|
167
|
+
}
|
|
168
|
+
seo {
|
|
169
|
+
title
|
|
170
|
+
description
|
|
171
|
+
}
|
|
172
|
+
createdAt
|
|
173
|
+
updatedAt
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
# ============================================
|
|
177
|
+
# Category Fragments
|
|
178
|
+
# ============================================
|
|
179
|
+
|
|
180
|
+
fragment Category on Category {
|
|
181
|
+
id
|
|
182
|
+
name
|
|
183
|
+
slug
|
|
184
|
+
description
|
|
185
|
+
image {
|
|
186
|
+
...Image
|
|
187
|
+
}
|
|
188
|
+
level
|
|
189
|
+
path
|
|
190
|
+
productCount
|
|
191
|
+
sortOrder
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
# ============================================
|
|
195
|
+
# Customer Fragments
|
|
196
|
+
# ============================================
|
|
197
|
+
|
|
198
|
+
fragment MailingAddress on MailingAddress {
|
|
199
|
+
id
|
|
200
|
+
address1
|
|
201
|
+
address2
|
|
202
|
+
city
|
|
203
|
+
company
|
|
204
|
+
country
|
|
205
|
+
countryCode
|
|
206
|
+
firstName
|
|
207
|
+
lastName
|
|
208
|
+
phone
|
|
209
|
+
province
|
|
210
|
+
provinceCode
|
|
211
|
+
zip
|
|
212
|
+
isDefault
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
fragment CustomerAccessToken on CustomerAccessToken {
|
|
216
|
+
accessToken
|
|
217
|
+
expiresAt
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
fragment Customer on Customer {
|
|
221
|
+
id
|
|
222
|
+
email
|
|
223
|
+
firstName
|
|
224
|
+
lastName
|
|
225
|
+
displayName
|
|
226
|
+
phone
|
|
227
|
+
emailVerified
|
|
228
|
+
acceptsMarketing
|
|
229
|
+
defaultAddress {
|
|
230
|
+
...MailingAddress
|
|
231
|
+
}
|
|
232
|
+
ordersCount
|
|
233
|
+
totalSpent {
|
|
234
|
+
...Money
|
|
235
|
+
}
|
|
236
|
+
createdAt
|
|
237
|
+
updatedAt
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
fragment Order on Order {
|
|
241
|
+
id
|
|
242
|
+
orderNumber
|
|
243
|
+
totalPrice {
|
|
244
|
+
...Money
|
|
245
|
+
}
|
|
246
|
+
subtotalPrice {
|
|
247
|
+
...Money
|
|
248
|
+
}
|
|
249
|
+
totalTax {
|
|
250
|
+
...Money
|
|
251
|
+
}
|
|
252
|
+
totalShipping {
|
|
253
|
+
...Money
|
|
254
|
+
}
|
|
255
|
+
financialStatus
|
|
256
|
+
fulfillmentStatus
|
|
257
|
+
processedAt
|
|
258
|
+
shippingAddress {
|
|
259
|
+
...MailingAddress
|
|
260
|
+
}
|
|
261
|
+
lineItemsCount
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
# Order with shipments for tracking pages
|
|
265
|
+
fragment OrderWithShipments on Order {
|
|
266
|
+
id
|
|
267
|
+
orderNumber
|
|
268
|
+
totalPrice {
|
|
269
|
+
...Money
|
|
270
|
+
}
|
|
271
|
+
subtotalPrice {
|
|
272
|
+
...Money
|
|
273
|
+
}
|
|
274
|
+
totalTax {
|
|
275
|
+
...Money
|
|
276
|
+
}
|
|
277
|
+
totalShipping {
|
|
278
|
+
...Money
|
|
279
|
+
}
|
|
280
|
+
financialStatus
|
|
281
|
+
fulfillmentStatus
|
|
282
|
+
processedAt
|
|
283
|
+
shippingAddress {
|
|
284
|
+
...MailingAddress
|
|
285
|
+
}
|
|
286
|
+
lineItemsCount
|
|
287
|
+
shipments {
|
|
288
|
+
...Shipment
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
# ============================================
|
|
293
|
+
# Cart Fragments
|
|
294
|
+
# ============================================
|
|
295
|
+
|
|
296
|
+
fragment CartCost on CartCost {
|
|
297
|
+
totalAmount {
|
|
298
|
+
...PriceMoney
|
|
299
|
+
}
|
|
300
|
+
subtotalAmount {
|
|
301
|
+
...PriceMoney
|
|
302
|
+
}
|
|
303
|
+
totalTaxAmount {
|
|
304
|
+
...PriceMoney
|
|
305
|
+
}
|
|
306
|
+
totalDutyAmount {
|
|
307
|
+
...PriceMoney
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
fragment CartLineCost on CartLineCost {
|
|
312
|
+
amountPerQuantity {
|
|
313
|
+
...PriceMoney
|
|
314
|
+
}
|
|
315
|
+
subtotalAmount {
|
|
316
|
+
...PriceMoney
|
|
317
|
+
}
|
|
318
|
+
totalAmount {
|
|
319
|
+
...PriceMoney
|
|
320
|
+
}
|
|
321
|
+
compareAtAmountPerQuantity {
|
|
322
|
+
...PriceMoney
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
fragment CartLine on CartLine {
|
|
327
|
+
id
|
|
328
|
+
quantity
|
|
329
|
+
merchandise {
|
|
330
|
+
...ProductVariant
|
|
331
|
+
}
|
|
332
|
+
cost {
|
|
333
|
+
...CartLineCost
|
|
334
|
+
}
|
|
335
|
+
attributes {
|
|
336
|
+
key
|
|
337
|
+
value
|
|
338
|
+
}
|
|
339
|
+
productId
|
|
340
|
+
productTitle
|
|
341
|
+
productHandle
|
|
342
|
+
productType
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
fragment CartBuyerIdentity on CartBuyerIdentity {
|
|
346
|
+
email
|
|
347
|
+
phone
|
|
348
|
+
countryCode
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
fragment CartDiscountCode on CartDiscountCode {
|
|
352
|
+
code
|
|
353
|
+
applicable
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
fragment CartDiscountAllocation on CartDiscountAllocation {
|
|
357
|
+
discountCode
|
|
358
|
+
amount {
|
|
359
|
+
...Money
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
fragment Cart on Cart {
|
|
364
|
+
id
|
|
365
|
+
checkoutUrl
|
|
366
|
+
totalQuantity
|
|
367
|
+
cost {
|
|
368
|
+
...CartCost
|
|
369
|
+
}
|
|
370
|
+
lines(first: 100) {
|
|
371
|
+
...CartLine
|
|
372
|
+
}
|
|
373
|
+
buyerIdentity {
|
|
374
|
+
...CartBuyerIdentity
|
|
375
|
+
}
|
|
376
|
+
discountCodes {
|
|
377
|
+
...CartDiscountCode
|
|
378
|
+
}
|
|
379
|
+
discountAllocations {
|
|
380
|
+
...CartDiscountAllocation
|
|
381
|
+
}
|
|
382
|
+
note
|
|
383
|
+
attributes {
|
|
384
|
+
key
|
|
385
|
+
value
|
|
386
|
+
}
|
|
387
|
+
createdAt
|
|
388
|
+
updatedAt
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
# ============================================
|
|
392
|
+
# Shop Fragments
|
|
393
|
+
# ============================================
|
|
394
|
+
|
|
395
|
+
fragment ShopColors on ShopColors {
|
|
396
|
+
primary
|
|
397
|
+
secondary
|
|
398
|
+
accent
|
|
399
|
+
background
|
|
400
|
+
text
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
fragment ShopFonts on ShopFonts {
|
|
404
|
+
primary
|
|
405
|
+
heading
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
fragment SocialLinks on SocialLinks {
|
|
409
|
+
facebook
|
|
410
|
+
instagram
|
|
411
|
+
twitter
|
|
412
|
+
youtube
|
|
413
|
+
tiktok
|
|
414
|
+
linkedin
|
|
415
|
+
pinterest
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
fragment ShopAddress on ShopAddress {
|
|
419
|
+
address1
|
|
420
|
+
address2
|
|
421
|
+
city
|
|
422
|
+
state
|
|
423
|
+
postalCode
|
|
424
|
+
country
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
fragment BusinessHour on BusinessHour {
|
|
428
|
+
day
|
|
429
|
+
openTime
|
|
430
|
+
closeTime
|
|
431
|
+
isClosed
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
fragment ShopBranding on ShopBranding {
|
|
435
|
+
logo {
|
|
436
|
+
...Image
|
|
437
|
+
}
|
|
438
|
+
favicon {
|
|
439
|
+
...Image
|
|
440
|
+
}
|
|
441
|
+
colors {
|
|
442
|
+
...ShopColors
|
|
443
|
+
}
|
|
444
|
+
fonts {
|
|
445
|
+
...ShopFonts
|
|
446
|
+
}
|
|
447
|
+
socialLinks {
|
|
448
|
+
...SocialLinks
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
fragment Shop on Shop {
|
|
453
|
+
id
|
|
454
|
+
name
|
|
455
|
+
description
|
|
456
|
+
primaryDomain
|
|
457
|
+
currencyCode
|
|
458
|
+
supportedCurrencies
|
|
459
|
+
paymentCurrencies
|
|
460
|
+
logo {
|
|
461
|
+
...Image
|
|
462
|
+
}
|
|
463
|
+
contactEmail
|
|
464
|
+
contactPhone
|
|
465
|
+
address {
|
|
466
|
+
...ShopAddress
|
|
467
|
+
}
|
|
468
|
+
businessHours {
|
|
469
|
+
...BusinessHour
|
|
470
|
+
}
|
|
471
|
+
branding {
|
|
472
|
+
...ShopBranding
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
# ============================================
|
|
477
|
+
# Payment Method Fragments (R23 - Payment Methods)
|
|
478
|
+
# ============================================
|
|
479
|
+
|
|
480
|
+
fragment PaymentMethod on PaymentMethod {
|
|
481
|
+
id
|
|
482
|
+
name
|
|
483
|
+
provider
|
|
484
|
+
type
|
|
485
|
+
icon
|
|
486
|
+
description
|
|
487
|
+
isDefault
|
|
488
|
+
supportedCurrencies
|
|
489
|
+
position
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
fragment AvailablePaymentMethods on AvailablePaymentMethods {
|
|
493
|
+
methods {
|
|
494
|
+
...PaymentMethod
|
|
495
|
+
}
|
|
496
|
+
defaultMethod {
|
|
497
|
+
...PaymentMethod
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
# ============================================
|
|
502
|
+
# Checkout Fragments
|
|
503
|
+
# ============================================
|
|
504
|
+
|
|
505
|
+
fragment CheckoutUserError on CheckoutUserError {
|
|
506
|
+
field
|
|
507
|
+
message
|
|
508
|
+
code
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
fragment ShippingRate on ShippingRate {
|
|
512
|
+
handle
|
|
513
|
+
title
|
|
514
|
+
price {
|
|
515
|
+
...Money
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
fragment TaxLine on TaxLine {
|
|
520
|
+
title
|
|
521
|
+
rate
|
|
522
|
+
price {
|
|
523
|
+
...Money
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
fragment DiscountAffectedItem on DiscountAffectedItem {
|
|
528
|
+
productId
|
|
529
|
+
variantId
|
|
530
|
+
title
|
|
531
|
+
quantity
|
|
532
|
+
originalPrice {
|
|
533
|
+
...Money
|
|
534
|
+
}
|
|
535
|
+
discountedPrice {
|
|
536
|
+
...Money
|
|
537
|
+
}
|
|
538
|
+
savings {
|
|
539
|
+
...Money
|
|
540
|
+
}
|
|
541
|
+
isFreeItem
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
fragment DiscountApplication on DiscountApplication {
|
|
545
|
+
code
|
|
546
|
+
applicable
|
|
547
|
+
type
|
|
548
|
+
value {
|
|
549
|
+
...Money
|
|
550
|
+
}
|
|
551
|
+
title
|
|
552
|
+
# BXGY (Buy X Get Y) specific fields
|
|
553
|
+
affectedItems {
|
|
554
|
+
...DiscountAffectedItem
|
|
555
|
+
}
|
|
556
|
+
buyQuantity
|
|
557
|
+
getQuantity
|
|
558
|
+
getDiscountPercent
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
fragment DiscountCode on DiscountCode {
|
|
562
|
+
code
|
|
563
|
+
applicable
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
fragment CheckoutLineItem on CheckoutLineItem {
|
|
567
|
+
id
|
|
568
|
+
title
|
|
569
|
+
variantTitle
|
|
570
|
+
quantity
|
|
571
|
+
unitPrice {
|
|
572
|
+
...Money
|
|
573
|
+
}
|
|
574
|
+
totalPrice {
|
|
575
|
+
...Money
|
|
576
|
+
}
|
|
577
|
+
variantId
|
|
578
|
+
productId
|
|
579
|
+
sku
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
# GAP-001: Gift Card Checkout Integration
|
|
583
|
+
fragment AppliedGiftCard on AppliedGiftCard {
|
|
584
|
+
maskedCode
|
|
585
|
+
lastCharacters
|
|
586
|
+
appliedAmount {
|
|
587
|
+
...Money
|
|
588
|
+
}
|
|
589
|
+
remainingBalance {
|
|
590
|
+
...Money
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
fragment Checkout on Checkout {
|
|
595
|
+
id
|
|
596
|
+
ready
|
|
597
|
+
completed
|
|
598
|
+
completedOrderId
|
|
599
|
+
webUrl
|
|
600
|
+
lineItems {
|
|
601
|
+
...CheckoutLineItem
|
|
602
|
+
}
|
|
603
|
+
totalQuantity
|
|
604
|
+
shippingAddress {
|
|
605
|
+
...MailingAddress
|
|
606
|
+
}
|
|
607
|
+
billingAddress {
|
|
608
|
+
...MailingAddress
|
|
609
|
+
}
|
|
610
|
+
shippingLine {
|
|
611
|
+
...ShippingRate
|
|
612
|
+
}
|
|
613
|
+
availableShippingRates {
|
|
614
|
+
...ShippingRate
|
|
615
|
+
}
|
|
616
|
+
shippingRatesReady
|
|
617
|
+
email
|
|
618
|
+
phone
|
|
619
|
+
customerId
|
|
620
|
+
discountCodes {
|
|
621
|
+
...DiscountCode
|
|
622
|
+
}
|
|
623
|
+
discountApplications {
|
|
624
|
+
...DiscountApplication
|
|
625
|
+
}
|
|
626
|
+
availablePaymentMethods {
|
|
627
|
+
...PaymentMethod
|
|
628
|
+
}
|
|
629
|
+
selectedPaymentMethodId
|
|
630
|
+
subtotalPrice {
|
|
631
|
+
...Money
|
|
632
|
+
}
|
|
633
|
+
totalShippingPrice {
|
|
634
|
+
...Money
|
|
635
|
+
}
|
|
636
|
+
totalTax {
|
|
637
|
+
...Money
|
|
638
|
+
}
|
|
639
|
+
taxLines {
|
|
640
|
+
...TaxLine
|
|
641
|
+
}
|
|
642
|
+
totalDiscounts {
|
|
643
|
+
...Money
|
|
644
|
+
}
|
|
645
|
+
totalPrice {
|
|
646
|
+
...Money
|
|
647
|
+
}
|
|
648
|
+
# GAP-001: Gift Card Checkout Integration
|
|
649
|
+
appliedGiftCards {
|
|
650
|
+
...AppliedGiftCard
|
|
651
|
+
}
|
|
652
|
+
totalGiftCardAmount {
|
|
653
|
+
...Money
|
|
654
|
+
}
|
|
655
|
+
paymentDue {
|
|
656
|
+
...Money
|
|
657
|
+
}
|
|
658
|
+
currencyCode
|
|
659
|
+
note
|
|
660
|
+
createdAt
|
|
661
|
+
updatedAt
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
# ============================================
|
|
665
|
+
# Shipment Fragments (R29 - Shipment Tracking)
|
|
666
|
+
# ============================================
|
|
667
|
+
|
|
668
|
+
fragment ShipmentEvent on ShipmentEvent {
|
|
669
|
+
id
|
|
670
|
+
status
|
|
671
|
+
description
|
|
672
|
+
location
|
|
673
|
+
occurredAt
|
|
674
|
+
providerEventCode
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
fragment ShipmentPackage on ShipmentPackage {
|
|
678
|
+
weight
|
|
679
|
+
length
|
|
680
|
+
width
|
|
681
|
+
height
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
fragment ShipmentItem on ShipmentItem {
|
|
685
|
+
id
|
|
686
|
+
title
|
|
687
|
+
variantTitle
|
|
688
|
+
sku
|
|
689
|
+
quantity
|
|
690
|
+
imageUrl
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
fragment Shipment on Shipment {
|
|
694
|
+
id
|
|
695
|
+
orderId
|
|
696
|
+
provider
|
|
697
|
+
serviceCode
|
|
698
|
+
trackingNumber
|
|
699
|
+
trackingUrl
|
|
700
|
+
labelUrl
|
|
701
|
+
status
|
|
702
|
+
estimatedDeliveryDate
|
|
703
|
+
shippedAt
|
|
704
|
+
deliveredAt
|
|
705
|
+
recipientAddress {
|
|
706
|
+
...MailingAddress
|
|
707
|
+
}
|
|
708
|
+
packages {
|
|
709
|
+
...ShipmentPackage
|
|
710
|
+
}
|
|
711
|
+
items {
|
|
712
|
+
...ShipmentItem
|
|
713
|
+
}
|
|
714
|
+
events {
|
|
715
|
+
...ShipmentEvent
|
|
716
|
+
}
|
|
717
|
+
createdAt
|
|
718
|
+
updatedAt
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
fragment ShipmentBasic on Shipment {
|
|
722
|
+
id
|
|
723
|
+
orderId
|
|
724
|
+
provider
|
|
725
|
+
trackingNumber
|
|
726
|
+
trackingUrl
|
|
727
|
+
status
|
|
728
|
+
estimatedDeliveryDate
|
|
729
|
+
shippedAt
|
|
730
|
+
deliveredAt
|
|
731
|
+
createdAt
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
# ============================================
|
|
735
|
+
# Return Fragments (R30 - Returns/RMA)
|
|
736
|
+
# ============================================
|
|
737
|
+
|
|
738
|
+
fragment ReturnShippingLabel on ReturnShippingLabel {
|
|
739
|
+
url
|
|
740
|
+
carrier
|
|
741
|
+
trackingNumber
|
|
742
|
+
expiresAt
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
fragment ReturnItemPhoto on ReturnItemPhoto {
|
|
746
|
+
id
|
|
747
|
+
url
|
|
748
|
+
alt
|
|
749
|
+
description
|
|
750
|
+
createdAt
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
fragment ReturnItem on ReturnItem {
|
|
754
|
+
id
|
|
755
|
+
variantId
|
|
756
|
+
productTitle
|
|
757
|
+
variantTitle
|
|
758
|
+
sku
|
|
759
|
+
imageUrl
|
|
760
|
+
quantity
|
|
761
|
+
reason
|
|
762
|
+
condition
|
|
763
|
+
unitPrice {
|
|
764
|
+
...Money
|
|
765
|
+
}
|
|
766
|
+
photos {
|
|
767
|
+
...ReturnItemPhoto
|
|
768
|
+
}
|
|
769
|
+
status
|
|
770
|
+
approvedQuantity
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
fragment Return on Return {
|
|
774
|
+
id
|
|
775
|
+
returnNumber
|
|
776
|
+
orderId
|
|
777
|
+
orderNumber
|
|
778
|
+
status
|
|
779
|
+
reason
|
|
780
|
+
customerNote
|
|
781
|
+
compensationType
|
|
782
|
+
items {
|
|
783
|
+
...ReturnItem
|
|
784
|
+
}
|
|
785
|
+
refundAmount {
|
|
786
|
+
...Money
|
|
787
|
+
}
|
|
788
|
+
shippingLabel {
|
|
789
|
+
...ReturnShippingLabel
|
|
790
|
+
}
|
|
791
|
+
requestedAt
|
|
792
|
+
approvedAt
|
|
793
|
+
receivedAt
|
|
794
|
+
refundedAt
|
|
795
|
+
completedAt
|
|
796
|
+
createdAt
|
|
797
|
+
updatedAt
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
fragment ReturnBasic on Return {
|
|
801
|
+
id
|
|
802
|
+
returnNumber
|
|
803
|
+
orderId
|
|
804
|
+
orderNumber
|
|
805
|
+
status
|
|
806
|
+
reason
|
|
807
|
+
createdAt
|
|
808
|
+
updatedAt
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
fragment ReturnReasonOption on ReturnReasonOption {
|
|
812
|
+
value
|
|
813
|
+
label
|
|
814
|
+
description
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
# ============================================
|
|
818
|
+
# Gift Card Fragments (R32 - Gift Cards)
|
|
819
|
+
# ============================================
|
|
820
|
+
|
|
821
|
+
fragment GiftCardTransaction on GiftCardTransaction {
|
|
822
|
+
id
|
|
823
|
+
type
|
|
824
|
+
amount {
|
|
825
|
+
...Money
|
|
826
|
+
}
|
|
827
|
+
balanceAfter {
|
|
828
|
+
...Money
|
|
829
|
+
}
|
|
830
|
+
orderId
|
|
831
|
+
createdAt
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
fragment GiftCard on GiftCard {
|
|
835
|
+
id
|
|
836
|
+
maskedCode
|
|
837
|
+
lastCharacters
|
|
838
|
+
status
|
|
839
|
+
initialAmount {
|
|
840
|
+
...Money
|
|
841
|
+
}
|
|
842
|
+
balance {
|
|
843
|
+
...Money
|
|
844
|
+
}
|
|
845
|
+
expiresAt
|
|
846
|
+
recipientName
|
|
847
|
+
message
|
|
848
|
+
transactions {
|
|
849
|
+
...GiftCardTransaction
|
|
850
|
+
}
|
|
851
|
+
createdAt
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
fragment GiftCardError on GiftCardError {
|
|
855
|
+
code
|
|
856
|
+
message
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
fragment GiftCardValidation on GiftCardValidation {
|
|
860
|
+
valid
|
|
861
|
+
availableBalance {
|
|
862
|
+
...Money
|
|
863
|
+
}
|
|
864
|
+
error {
|
|
865
|
+
...GiftCardError
|
|
866
|
+
}
|
|
867
|
+
giftCard {
|
|
868
|
+
...GiftCard
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
# ============================================
|
|
873
|
+
# Shipping Method Fragments (R33 - Shipping Methods)
|
|
874
|
+
# ============================================
|
|
875
|
+
|
|
876
|
+
fragment ShippingCarrier on ShippingCarrier {
|
|
877
|
+
id
|
|
878
|
+
name
|
|
879
|
+
logoUrl
|
|
880
|
+
serviceCode
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
fragment DeliveryEstimate on DeliveryEstimate {
|
|
884
|
+
minDays
|
|
885
|
+
maxDays
|
|
886
|
+
description
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
fragment FreeShippingProgress on FreeShippingProgress {
|
|
890
|
+
qualifies
|
|
891
|
+
currentAmount {
|
|
892
|
+
...Money
|
|
893
|
+
}
|
|
894
|
+
threshold {
|
|
895
|
+
...Money
|
|
896
|
+
}
|
|
897
|
+
remaining {
|
|
898
|
+
...Money
|
|
899
|
+
}
|
|
900
|
+
progressPercent
|
|
901
|
+
message
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
fragment AvailableShippingMethod on AvailableShippingMethod {
|
|
905
|
+
id
|
|
906
|
+
name
|
|
907
|
+
description
|
|
908
|
+
carrier {
|
|
909
|
+
...ShippingCarrier
|
|
910
|
+
}
|
|
911
|
+
price {
|
|
912
|
+
...Money
|
|
913
|
+
}
|
|
914
|
+
isFree
|
|
915
|
+
estimatedDelivery {
|
|
916
|
+
...DeliveryEstimate
|
|
917
|
+
}
|
|
918
|
+
freeShippingProgress {
|
|
919
|
+
...FreeShippingProgress
|
|
920
|
+
}
|
|
921
|
+
sortOrder
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
# ============================================
|
|
925
|
+
# Attribute Filter Fragments (R35 - Dynamic Attributes)
|
|
926
|
+
# ============================================
|
|
927
|
+
|
|
928
|
+
fragment AttributeSwatch on AttributeSwatch {
|
|
929
|
+
colorHex
|
|
930
|
+
imageUrl
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
fragment AttributeRangeBounds on AttributeRangeBounds {
|
|
934
|
+
min
|
|
935
|
+
max
|
|
936
|
+
currencyCode
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
fragment AttributeFilterValue on AttributeFilterValue {
|
|
940
|
+
id
|
|
941
|
+
value
|
|
942
|
+
label
|
|
943
|
+
productCount
|
|
944
|
+
swatch {
|
|
945
|
+
...AttributeSwatch
|
|
946
|
+
}
|
|
947
|
+
priceModifier {
|
|
948
|
+
...Money
|
|
949
|
+
}
|
|
950
|
+
sortOrder
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
fragment AttributeDefinition on AttributeDefinition {
|
|
954
|
+
id
|
|
955
|
+
name
|
|
956
|
+
handle
|
|
957
|
+
type
|
|
958
|
+
isFilterable
|
|
959
|
+
isVisible
|
|
960
|
+
displayOrder
|
|
961
|
+
filterValues {
|
|
962
|
+
...AttributeFilterValue
|
|
963
|
+
}
|
|
964
|
+
rangeBounds {
|
|
965
|
+
...AttributeRangeBounds
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
fragment PriceRangeFilter on PriceRange {
|
|
970
|
+
min {
|
|
971
|
+
...Money
|
|
972
|
+
}
|
|
973
|
+
max {
|
|
974
|
+
...Money
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
fragment CategoryFilterOption on CategoryFilterOption {
|
|
979
|
+
id
|
|
980
|
+
name
|
|
981
|
+
slug
|
|
982
|
+
productCount
|
|
983
|
+
level
|
|
984
|
+
parentId
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
fragment AvailableFilters on AvailableFilters {
|
|
988
|
+
attributes {
|
|
989
|
+
...AttributeDefinition
|
|
990
|
+
}
|
|
991
|
+
priceRange {
|
|
992
|
+
...PriceRangeFilter
|
|
993
|
+
}
|
|
994
|
+
categories {
|
|
995
|
+
...CategoryFilterOption
|
|
996
|
+
}
|
|
997
|
+
activeFilterCount
|
|
998
|
+
totalProducts
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
# ============================================
|
|
1002
|
+
# Loyalty Program Fragments
|
|
1003
|
+
# ============================================
|
|
1004
|
+
|
|
1005
|
+
fragment LoyaltyPageInfo on LoyaltyPageInfo {
|
|
1006
|
+
hasNextPage
|
|
1007
|
+
hasPreviousPage
|
|
1008
|
+
startCursor
|
|
1009
|
+
endCursor
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
fragment LoyaltyTier on LoyaltyTier {
|
|
1013
|
+
id
|
|
1014
|
+
name
|
|
1015
|
+
type
|
|
1016
|
+
minPoints
|
|
1017
|
+
minAnnualSpend {
|
|
1018
|
+
...Money
|
|
1019
|
+
}
|
|
1020
|
+
pointsMultiplier
|
|
1021
|
+
customBenefits {
|
|
1022
|
+
name
|
|
1023
|
+
description
|
|
1024
|
+
icon
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
fragment LoyaltyPointsSummary on LoyaltyPointsSummary {
|
|
1029
|
+
totalPoints
|
|
1030
|
+
currentPoints
|
|
1031
|
+
pendingPoints
|
|
1032
|
+
redeemedPoints
|
|
1033
|
+
expiredPoints
|
|
1034
|
+
expiringPoints
|
|
1035
|
+
nextExpiryDate
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
fragment TierProgress on TierProgress {
|
|
1039
|
+
currentTier {
|
|
1040
|
+
...LoyaltyTier
|
|
1041
|
+
}
|
|
1042
|
+
nextTier {
|
|
1043
|
+
...LoyaltyTier
|
|
1044
|
+
}
|
|
1045
|
+
pointsToNextTier
|
|
1046
|
+
progressPercent
|
|
1047
|
+
spendToNextTier {
|
|
1048
|
+
...Money
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
fragment LoyaltyMember on LoyaltyMember {
|
|
1053
|
+
id
|
|
1054
|
+
customerId
|
|
1055
|
+
points {
|
|
1056
|
+
...LoyaltyPointsSummary
|
|
1057
|
+
}
|
|
1058
|
+
tier {
|
|
1059
|
+
...LoyaltyTier
|
|
1060
|
+
}
|
|
1061
|
+
tierProgress {
|
|
1062
|
+
...TierProgress
|
|
1063
|
+
}
|
|
1064
|
+
annualSpend {
|
|
1065
|
+
...Money
|
|
1066
|
+
}
|
|
1067
|
+
lastActivityAt
|
|
1068
|
+
enrolledAt
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
fragment LoyaltyTransaction on LoyaltyTransaction {
|
|
1072
|
+
id
|
|
1073
|
+
type
|
|
1074
|
+
points
|
|
1075
|
+
balanceAfter
|
|
1076
|
+
orderId
|
|
1077
|
+
description
|
|
1078
|
+
expiresAt
|
|
1079
|
+
createdAt
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
fragment LoyaltyReward on LoyaltyReward {
|
|
1083
|
+
id
|
|
1084
|
+
name
|
|
1085
|
+
slug
|
|
1086
|
+
type
|
|
1087
|
+
pointsCost
|
|
1088
|
+
discountPercent
|
|
1089
|
+
discountAmount {
|
|
1090
|
+
...Money
|
|
1091
|
+
}
|
|
1092
|
+
description
|
|
1093
|
+
image {
|
|
1094
|
+
...Image
|
|
1095
|
+
}
|
|
1096
|
+
available
|
|
1097
|
+
tierRequired {
|
|
1098
|
+
...LoyaltyTier
|
|
1099
|
+
}
|
|
1100
|
+
remainingRedemptions
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
fragment PointsEstimate on PointsEstimate {
|
|
1104
|
+
basePoints
|
|
1105
|
+
bonusPoints
|
|
1106
|
+
totalPoints
|
|
1107
|
+
multiplier
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
fragment LoyaltyAction on LoyaltyAction {
|
|
1111
|
+
type
|
|
1112
|
+
enabled
|
|
1113
|
+
points
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
fragment LoyaltySettings on LoyaltySettings {
|
|
1117
|
+
enabled
|
|
1118
|
+
pointsName
|
|
1119
|
+
pointsPerCurrency
|
|
1120
|
+
pointsExpiryMonths
|
|
1121
|
+
availableActions {
|
|
1122
|
+
...LoyaltyAction
|
|
1123
|
+
}
|
|
1124
|
+
referralEnabled
|
|
1125
|
+
referralPoints
|
|
1126
|
+
referralBonusPoints
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
fragment ReferralStats on ReferralStats {
|
|
1130
|
+
referralCode
|
|
1131
|
+
shareUrl
|
|
1132
|
+
totalReferred
|
|
1133
|
+
completedReferrals
|
|
1134
|
+
pendingReferrals
|
|
1135
|
+
totalPointsEarned
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
# GAP-003: PRODUCT and GIFT_CARD Reward Types
|
|
1139
|
+
fragment RedeemRewardPayload on RedeemRewardPayload {
|
|
1140
|
+
success
|
|
1141
|
+
discountCode
|
|
1142
|
+
productDiscountCode
|
|
1143
|
+
giftCardCode
|
|
1144
|
+
userErrors
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
fragment GenerateReferralCodePayload on GenerateReferralCodePayload {
|
|
1148
|
+
success
|
|
1149
|
+
referralCode
|
|
1150
|
+
shareUrl
|
|
1151
|
+
userErrors
|
|
1152
|
+
}
|