@doswiftly/storefront-operations 17.0.0 → 18.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/AGENTS.md +1 -1
- package/CHANGELOG.md +544 -0
- package/README.md +7 -7
- package/fragments.graphql +43 -25
- package/llms-full.txt +66 -30
- package/mutations.graphql +1 -1
- package/operations.json +45 -29
- package/package.json +4 -2
- package/schema.graphql +777 -275
package/fragments.graphql
CHANGED
|
@@ -510,7 +510,7 @@ fragment Cart on Cart {
|
|
|
510
510
|
selectedPaymentMethod {
|
|
511
511
|
...CartSelectedPaymentMethod
|
|
512
512
|
}
|
|
513
|
-
|
|
513
|
+
selectedPaymentInstrument
|
|
514
514
|
appliedGiftCards {
|
|
515
515
|
...CartAppliedGiftCard
|
|
516
516
|
}
|
|
@@ -550,13 +550,15 @@ fragment CartAppliedGiftCard on CartAppliedGiftCard {
|
|
|
550
550
|
}
|
|
551
551
|
}
|
|
552
552
|
|
|
553
|
-
# Payment method (integration provider) selected on a cart — id, name, provider code, type category (CARD/BLIK/BANK_TRANSFER/etc.), icon, description, isDefault, supportedCurrencies. Storefront UI używa do iconography + selection display.
|
|
553
|
+
# Payment method (integration provider) selected on a cart — id, name, provider code, type category (CARD/BLIK/BANK_TRANSFER/etc.), icon image (transformable), description, isDefault, supportedCurrencies. Storefront UI używa do iconography + selection display.
|
|
554
554
|
fragment CartSelectedPaymentMethod on PaymentMethod {
|
|
555
555
|
id
|
|
556
556
|
name
|
|
557
557
|
provider
|
|
558
558
|
type
|
|
559
|
-
icon
|
|
559
|
+
icon {
|
|
560
|
+
...ImageThumbnail
|
|
561
|
+
}
|
|
560
562
|
description
|
|
561
563
|
isDefault
|
|
562
564
|
supportedCurrencies
|
|
@@ -701,29 +703,33 @@ fragment ShopConfigFields on Shop {
|
|
|
701
703
|
# Payment Methods
|
|
702
704
|
# ============================================
|
|
703
705
|
|
|
704
|
-
# A single concrete instrument exposed by a gateway provider (BLIK code, branded bank, wallet, card brand). Pass `
|
|
705
|
-
fragment
|
|
706
|
-
|
|
707
|
-
|
|
706
|
+
# A single concrete instrument exposed by a gateway provider (BLIK code, branded bank, wallet, card brand). Pass `code` as `preferredInstrument` in `cartSelectPaymentMethod` for direct deep-link to that instrument screen on the gateway. `displayHint` is a semantic UX hint (`PROMINENT_BUTTON`, `BRANDED_TILE`, `DROPDOWN_OPTION`, `RADIO_OPTION`) — storefront branches rendering accordingly. `enabled: false` means the gateway reported the instrument as temporarily disabled — gray out, don't hide.
|
|
707
|
+
fragment PaymentInstrument on PaymentInstrument {
|
|
708
|
+
provider
|
|
709
|
+
code
|
|
708
710
|
type
|
|
709
711
|
displayName
|
|
710
712
|
displayHint
|
|
711
|
-
|
|
713
|
+
brandImage {
|
|
714
|
+
...ImageThumbnail
|
|
715
|
+
}
|
|
712
716
|
enabled
|
|
713
717
|
}
|
|
714
718
|
|
|
715
719
|
# Single payment method enabled for the shop — method-centric.
|
|
716
|
-
# `type` is the category (CARD, BLIK, BANK_TRANSFER, CASH_ON_DELIVERY, OTHER) — drive iconography here.
|
|
717
|
-
# `provider`, `providersAvailable`, `preferredProvider` are `
|
|
720
|
+
# `type` is the category (CARD, BLIK, BANK_TRANSFER, INSTALLMENT, WALLET, CASH_ON_DELIVERY, OTHER) — drive iconography here.
|
|
721
|
+
# `provider`, `providersAvailable`, `preferredProvider` are `PaymentProvider` enum (UPPERCASE: `PAYU`, `PRZELEWY24`, ...).
|
|
718
722
|
# `available` is `false` when the resolving gateway is temporarily unavailable or reported the method as disabled — gray-out the tile, don't hide it; `unavailableReason` carries the diagnostic.
|
|
719
|
-
# `instruments` lists concrete gateway-side instruments (BLIK code, branded banks, wallets) when the gateway exposes granular data — pass `
|
|
723
|
+
# `instruments` lists concrete gateway-side instruments (BLIK code, branded banks, wallets) when the gateway exposes granular data — pass `code` as `preferredInstrument` in `cartSelectPaymentMethod` for direct deep-link to that instrument screen on the gateway.
|
|
720
724
|
# Spread on the checkout payment step.
|
|
721
725
|
fragment PaymentMethod on PaymentMethod {
|
|
722
726
|
id
|
|
723
727
|
name
|
|
724
728
|
provider
|
|
725
729
|
type
|
|
726
|
-
icon
|
|
730
|
+
icon {
|
|
731
|
+
...ImageThumbnail
|
|
732
|
+
}
|
|
727
733
|
description
|
|
728
734
|
isDefault
|
|
729
735
|
supportedCurrencies
|
|
@@ -733,7 +739,7 @@ fragment PaymentMethod on PaymentMethod {
|
|
|
733
739
|
available
|
|
734
740
|
unavailableReason
|
|
735
741
|
instruments {
|
|
736
|
-
...
|
|
742
|
+
...PaymentInstrument
|
|
737
743
|
}
|
|
738
744
|
}
|
|
739
745
|
|
|
@@ -798,14 +804,16 @@ fragment ShipmentPackage on ShipmentPackage {
|
|
|
798
804
|
height
|
|
799
805
|
}
|
|
800
806
|
|
|
801
|
-
# One item in a shipment — title, variant, sku, quantity, image
|
|
807
|
+
# One item in a shipment — title, variant, sku, quantity, live variant image (transformable). Spread inside `Shipment.items[]` for the tracking page item list. `image` is live from the current variant (snapshot fallback when variant has been deleted since fulfillment — returns null, render a placeholder).
|
|
802
808
|
fragment ShipmentItem on ShipmentItem {
|
|
803
809
|
id
|
|
804
810
|
title
|
|
805
811
|
variantTitle
|
|
806
812
|
sku
|
|
807
813
|
quantity
|
|
808
|
-
|
|
814
|
+
image {
|
|
815
|
+
...ImageThumbnail
|
|
816
|
+
}
|
|
809
817
|
}
|
|
810
818
|
|
|
811
819
|
# Full shipment shape — provider, tracking number + URL, label URL, status, ETA, recipient address, packages, items, full event timeline. Spread on the tracking page.
|
|
@@ -879,7 +887,9 @@ fragment ReturnItem on ReturnItem {
|
|
|
879
887
|
productTitle
|
|
880
888
|
variantTitle
|
|
881
889
|
sku
|
|
882
|
-
|
|
890
|
+
image {
|
|
891
|
+
...ImageThumbnail
|
|
892
|
+
}
|
|
883
893
|
quantity
|
|
884
894
|
reason
|
|
885
895
|
condition
|
|
@@ -973,11 +983,13 @@ fragment GiftCardValidation on GiftCardValidation {
|
|
|
973
983
|
# Shipping Methods
|
|
974
984
|
# ============================================
|
|
975
985
|
|
|
976
|
-
# Carrier offering the shipping method — id, display name, logo
|
|
986
|
+
# Carrier offering the shipping method — id, display name, logo image (transformable), internal service code.
|
|
977
987
|
fragment ShippingCarrier on ShippingCarrier {
|
|
978
988
|
id
|
|
979
989
|
name
|
|
980
|
-
|
|
990
|
+
logo {
|
|
991
|
+
...ImageThumbnail
|
|
992
|
+
}
|
|
981
993
|
serviceCode
|
|
982
994
|
}
|
|
983
995
|
|
|
@@ -1030,10 +1042,12 @@ fragment AvailableShippingMethod on AvailableShippingMethod {
|
|
|
1030
1042
|
# Attribute Filters
|
|
1031
1043
|
# ============================================
|
|
1032
1044
|
|
|
1033
|
-
# Visual swatch for an attribute filter value — color hex (for color filters) or image
|
|
1045
|
+
# Visual swatch for an attribute filter value — color hex (for color filters) or image (for pattern/material swatches).
|
|
1034
1046
|
fragment AttributeSwatch on AttributeSwatch {
|
|
1035
1047
|
colorHex
|
|
1036
|
-
|
|
1048
|
+
image {
|
|
1049
|
+
...ImageThumbnail
|
|
1050
|
+
}
|
|
1037
1051
|
}
|
|
1038
1052
|
|
|
1039
1053
|
# Numeric range bounds for slider-style filters — min, max, currency code (when relevant).
|
|
@@ -1136,7 +1150,9 @@ fragment LoyaltyTier on LoyaltyTier {
|
|
|
1136
1150
|
customBenefits {
|
|
1137
1151
|
name
|
|
1138
1152
|
description
|
|
1139
|
-
icon
|
|
1153
|
+
icon {
|
|
1154
|
+
...ImageThumbnail
|
|
1155
|
+
}
|
|
1140
1156
|
}
|
|
1141
1157
|
}
|
|
1142
1158
|
|
|
@@ -1293,7 +1309,9 @@ fragment ProductReview on ProductReview {
|
|
|
1293
1309
|
content
|
|
1294
1310
|
pros
|
|
1295
1311
|
cons
|
|
1296
|
-
images
|
|
1312
|
+
images {
|
|
1313
|
+
...ImageThumbnail
|
|
1314
|
+
}
|
|
1297
1315
|
authorName
|
|
1298
1316
|
isVerifiedPurchase
|
|
1299
1317
|
helpfulCount
|
|
@@ -1541,7 +1559,7 @@ fragment MenuItem on MenuItem {
|
|
|
1541
1559
|
... on Collection { id handle title }
|
|
1542
1560
|
... on ShopPage { id handle title }
|
|
1543
1561
|
... on Product { id handle title }
|
|
1544
|
-
... on Brand { id handle name logo }
|
|
1562
|
+
... on Brand { id handle name logo { ...ImageThumbnail } }
|
|
1545
1563
|
}
|
|
1546
1564
|
image {
|
|
1547
1565
|
...Image
|
|
@@ -1558,7 +1576,7 @@ fragment MenuItem on MenuItem {
|
|
|
1558
1576
|
... on Collection { id handle title }
|
|
1559
1577
|
... on ShopPage { id handle title }
|
|
1560
1578
|
... on Product { id handle title }
|
|
1561
|
-
... on Brand { id handle name logo }
|
|
1579
|
+
... on Brand { id handle name logo { ...ImageThumbnail } }
|
|
1562
1580
|
}
|
|
1563
1581
|
items {
|
|
1564
1582
|
id
|
|
@@ -1572,7 +1590,7 @@ fragment MenuItem on MenuItem {
|
|
|
1572
1590
|
... on Collection { id handle title }
|
|
1573
1591
|
... on ShopPage { id handle title }
|
|
1574
1592
|
... on Product { id handle title }
|
|
1575
|
-
... on Brand { id handle name logo }
|
|
1593
|
+
... on Brand { id handle name logo { ...ImageThumbnail } }
|
|
1576
1594
|
}
|
|
1577
1595
|
}
|
|
1578
1596
|
}
|
package/llms-full.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DoSwiftly Storefront Operations — Full Reference
|
|
2
2
|
|
|
3
|
-
> Schema version: **
|
|
3
|
+
> Schema version: **18.0.0**
|
|
4
4
|
> 52 queries · 41 mutations · 104 fragments
|
|
5
5
|
|
|
6
6
|
Auto-generated from `.graphql` source files. Do not edit by hand — this file is
|
|
@@ -1975,7 +1975,7 @@ mutation CartSelectShippingMethod($input: CartSelectShippingMethodInput!) {
|
|
|
1975
1975
|
|
|
1976
1976
|
**Section**: Cart Completion Mutations
|
|
1977
1977
|
|
|
1978
|
-
**Description**: Selects a payment method on the cart by category (`methodType` — BLIK, CARD, BANK_TRANSFER, ...). Optional `
|
|
1978
|
+
**Description**: Selects a payment method on the cart by category (`methodType` — BLIK, CARD, BANK_TRANSFER, ...). Optional `preferredProvider` overrides the merchant priority when the buyer explicitly picks a gateway from `PaymentMethod.providersAvailable`. The backend resolves the gateway routing from `MerchantPaymentConfig` at `cartComplete`; the selection persisted here is the category. Errors: `PAYMENT_METHOD_REQUIRED`, `CART_NOT_FOUND`, `CART_UNAUTHENTICATED`.
|
|
1979
1979
|
|
|
1980
1980
|
**Variables**:
|
|
1981
1981
|
- `$input`: `CartSelectPaymentMethodInput!`
|
|
@@ -3202,7 +3202,7 @@ fragment Cart on Cart {
|
|
|
3202
3202
|
selectedPaymentMethod {
|
|
3203
3203
|
...CartSelectedPaymentMethod
|
|
3204
3204
|
}
|
|
3205
|
-
|
|
3205
|
+
selectedPaymentInstrument
|
|
3206
3206
|
appliedGiftCards {
|
|
3207
3207
|
...CartAppliedGiftCard
|
|
3208
3208
|
}
|
|
@@ -3267,7 +3267,9 @@ fragment CartAppliedGiftCard on CartAppliedGiftCard {
|
|
|
3267
3267
|
|
|
3268
3268
|
**Section**: Cart
|
|
3269
3269
|
|
|
3270
|
-
**Description**: Payment method (integration provider) selected on a cart — id, name, provider code, type category (CARD/BLIK/BANK_TRANSFER/etc.), icon, description, isDefault, supportedCurrencies. Storefront UI używa do iconography + selection display.
|
|
3270
|
+
**Description**: Payment method (integration provider) selected on a cart — id, name, provider code, type category (CARD/BLIK/BANK_TRANSFER/etc.), icon image (transformable), description, isDefault, supportedCurrencies. Storefront UI używa do iconography + selection display.
|
|
3271
|
+
|
|
3272
|
+
**Uses fragments**: `ImageThumbnail`
|
|
3271
3273
|
|
|
3272
3274
|
**GraphQL**:
|
|
3273
3275
|
```graphql
|
|
@@ -3276,7 +3278,9 @@ fragment CartSelectedPaymentMethod on PaymentMethod {
|
|
|
3276
3278
|
name
|
|
3277
3279
|
provider
|
|
3278
3280
|
type
|
|
3279
|
-
icon
|
|
3281
|
+
icon {
|
|
3282
|
+
...ImageThumbnail
|
|
3283
|
+
}
|
|
3280
3284
|
description
|
|
3281
3285
|
isDefault
|
|
3282
3286
|
supportedCurrencies
|
|
@@ -3502,21 +3506,25 @@ fragment ShopConfigFields on Shop {
|
|
|
3502
3506
|
}
|
|
3503
3507
|
```
|
|
3504
3508
|
|
|
3505
|
-
### Fragment: `
|
|
3509
|
+
### Fragment: `PaymentInstrument` on `PaymentInstrument`
|
|
3506
3510
|
|
|
3507
3511
|
**Section**: Payment Methods
|
|
3508
3512
|
|
|
3509
|
-
**Description**: A single concrete instrument exposed by a gateway provider (BLIK code, branded bank, wallet, card brand). Pass `
|
|
3513
|
+
**Description**: A single concrete instrument exposed by a gateway provider (BLIK code, branded bank, wallet, card brand). Pass `code` as `preferredInstrument` in `cartSelectPaymentMethod` for direct deep-link to that instrument screen on the gateway. `displayHint` is a semantic UX hint (`PROMINENT_BUTTON`, `BRANDED_TILE`, `DROPDOWN_OPTION`, `RADIO_OPTION`) — storefront branches rendering accordingly. `enabled: false` means the gateway reported the instrument as temporarily disabled — gray out, don't hide.
|
|
3514
|
+
|
|
3515
|
+
**Uses fragments**: `ImageThumbnail`
|
|
3510
3516
|
|
|
3511
3517
|
**GraphQL**:
|
|
3512
3518
|
```graphql
|
|
3513
|
-
fragment
|
|
3514
|
-
|
|
3515
|
-
|
|
3519
|
+
fragment PaymentInstrument on PaymentInstrument {
|
|
3520
|
+
provider
|
|
3521
|
+
code
|
|
3516
3522
|
type
|
|
3517
3523
|
displayName
|
|
3518
3524
|
displayHint
|
|
3519
|
-
|
|
3525
|
+
brandImage {
|
|
3526
|
+
...ImageThumbnail
|
|
3527
|
+
}
|
|
3520
3528
|
enabled
|
|
3521
3529
|
}
|
|
3522
3530
|
```
|
|
@@ -3525,9 +3533,9 @@ fragment PaymentMethodInstrument on PaymentMethodInstrument {
|
|
|
3525
3533
|
|
|
3526
3534
|
**Section**: Payment Methods
|
|
3527
3535
|
|
|
3528
|
-
**Description**: Single payment method enabled for the shop — method-centric. `type` is the category (CARD, BLIK, BANK_TRANSFER, CASH_ON_DELIVERY, OTHER) — drive iconography here. `provider`, `providersAvailable`, `preferredProvider` are `
|
|
3536
|
+
**Description**: Single payment method enabled for the shop — method-centric. `type` is the category (CARD, BLIK, BANK_TRANSFER, INSTALLMENT, WALLET, CASH_ON_DELIVERY, OTHER) — drive iconography here. `provider`, `providersAvailable`, `preferredProvider` are `PaymentProvider` enum (UPPERCASE: `PAYU`, `PRZELEWY24`, ...). `available` is `false` when the resolving gateway is temporarily unavailable or reported the method as disabled — gray-out the tile, don't hide it; `unavailableReason` carries the diagnostic. `instruments` lists concrete gateway-side instruments (BLIK code, branded banks, wallets) when the gateway exposes granular data — pass `code` as `preferredInstrument` in `cartSelectPaymentMethod` for direct deep-link to that instrument screen on the gateway. Spread on the checkout payment step.
|
|
3529
3537
|
|
|
3530
|
-
**Uses fragments**: `
|
|
3538
|
+
**Uses fragments**: `ImageThumbnail`, `PaymentInstrument`
|
|
3531
3539
|
|
|
3532
3540
|
**GraphQL**:
|
|
3533
3541
|
```graphql
|
|
@@ -3536,7 +3544,9 @@ fragment PaymentMethod on PaymentMethod {
|
|
|
3536
3544
|
name
|
|
3537
3545
|
provider
|
|
3538
3546
|
type
|
|
3539
|
-
icon
|
|
3547
|
+
icon {
|
|
3548
|
+
...ImageThumbnail
|
|
3549
|
+
}
|
|
3540
3550
|
description
|
|
3541
3551
|
isDefault
|
|
3542
3552
|
supportedCurrencies
|
|
@@ -3546,7 +3556,7 @@ fragment PaymentMethod on PaymentMethod {
|
|
|
3546
3556
|
available
|
|
3547
3557
|
unavailableReason
|
|
3548
3558
|
instruments {
|
|
3549
|
-
...
|
|
3559
|
+
...PaymentInstrument
|
|
3550
3560
|
}
|
|
3551
3561
|
}
|
|
3552
3562
|
```
|
|
@@ -3644,7 +3654,9 @@ fragment ShipmentPackage on ShipmentPackage {
|
|
|
3644
3654
|
|
|
3645
3655
|
**Section**: Shipments / Tracking
|
|
3646
3656
|
|
|
3647
|
-
**Description**: One item in a shipment — title, variant, sku, quantity, image
|
|
3657
|
+
**Description**: One item in a shipment — title, variant, sku, quantity, live variant image (transformable). Spread inside `Shipment.items[]` for the tracking page item list. `image` is live from the current variant (snapshot fallback when variant has been deleted since fulfillment — returns null, render a placeholder).
|
|
3658
|
+
|
|
3659
|
+
**Uses fragments**: `ImageThumbnail`
|
|
3648
3660
|
|
|
3649
3661
|
**GraphQL**:
|
|
3650
3662
|
```graphql
|
|
@@ -3654,7 +3666,9 @@ fragment ShipmentItem on ShipmentItem {
|
|
|
3654
3666
|
variantTitle
|
|
3655
3667
|
sku
|
|
3656
3668
|
quantity
|
|
3657
|
-
|
|
3669
|
+
image {
|
|
3670
|
+
...ImageThumbnail
|
|
3671
|
+
}
|
|
3658
3672
|
}
|
|
3659
3673
|
```
|
|
3660
3674
|
|
|
@@ -3758,7 +3772,7 @@ fragment ReturnItemPhoto on ReturnItemPhoto {
|
|
|
3758
3772
|
|
|
3759
3773
|
**Description**: Single line in a return request — variant identity, quantity requested, reason, condition, photos, status, approved quantity (set by merchant after review). Spread inside `Return.items[]`.
|
|
3760
3774
|
|
|
3761
|
-
**Uses fragments**: `Money`, `ReturnItemPhoto`
|
|
3775
|
+
**Uses fragments**: `ImageThumbnail`, `Money`, `ReturnItemPhoto`
|
|
3762
3776
|
|
|
3763
3777
|
**GraphQL**:
|
|
3764
3778
|
```graphql
|
|
@@ -3768,7 +3782,9 @@ fragment ReturnItem on ReturnItem {
|
|
|
3768
3782
|
productTitle
|
|
3769
3783
|
variantTitle
|
|
3770
3784
|
sku
|
|
3771
|
-
|
|
3785
|
+
image {
|
|
3786
|
+
...ImageThumbnail
|
|
3787
|
+
}
|
|
3772
3788
|
quantity
|
|
3773
3789
|
reason
|
|
3774
3790
|
condition
|
|
@@ -3905,14 +3921,18 @@ fragment GiftCardValidation on GiftCardValidation {
|
|
|
3905
3921
|
|
|
3906
3922
|
**Section**: Shipping Methods
|
|
3907
3923
|
|
|
3908
|
-
**Description**: Carrier offering the shipping method — id, display name, logo
|
|
3924
|
+
**Description**: Carrier offering the shipping method — id, display name, logo image (transformable), internal service code.
|
|
3925
|
+
|
|
3926
|
+
**Uses fragments**: `ImageThumbnail`
|
|
3909
3927
|
|
|
3910
3928
|
**GraphQL**:
|
|
3911
3929
|
```graphql
|
|
3912
3930
|
fragment ShippingCarrier on ShippingCarrier {
|
|
3913
3931
|
id
|
|
3914
3932
|
name
|
|
3915
|
-
|
|
3933
|
+
logo {
|
|
3934
|
+
...ImageThumbnail
|
|
3935
|
+
}
|
|
3916
3936
|
serviceCode
|
|
3917
3937
|
}
|
|
3918
3938
|
```
|
|
@@ -3994,13 +4014,17 @@ fragment AvailableShippingMethod on AvailableShippingMethod {
|
|
|
3994
4014
|
|
|
3995
4015
|
**Section**: Attribute Filters
|
|
3996
4016
|
|
|
3997
|
-
**Description**: Visual swatch for an attribute filter value — color hex (for color filters) or image
|
|
4017
|
+
**Description**: Visual swatch for an attribute filter value — color hex (for color filters) or image (for pattern/material swatches).
|
|
4018
|
+
|
|
4019
|
+
**Uses fragments**: `ImageThumbnail`
|
|
3998
4020
|
|
|
3999
4021
|
**GraphQL**:
|
|
4000
4022
|
```graphql
|
|
4001
4023
|
fragment AttributeSwatch on AttributeSwatch {
|
|
4002
4024
|
colorHex
|
|
4003
|
-
|
|
4025
|
+
image {
|
|
4026
|
+
...ImageThumbnail
|
|
4027
|
+
}
|
|
4004
4028
|
}
|
|
4005
4029
|
```
|
|
4006
4030
|
|
|
@@ -4157,7 +4181,7 @@ fragment LoyaltyPageInfo on LoyaltyPageInfo {
|
|
|
4157
4181
|
|
|
4158
4182
|
**Description**: Loyalty tier definition — name, type enum (`BRONZE` / `SILVER` / `GOLD` / `PLATINUM` / `DIAMOND`), entry threshold (`minPoints` and/or `minAnnualSpend`), points multiplier, custom benefits list. Returned by `loyaltyTiers` and embedded in member tier data.
|
|
4159
4183
|
|
|
4160
|
-
**Uses fragments**: `Money`
|
|
4184
|
+
**Uses fragments**: `ImageThumbnail`, `Money`
|
|
4161
4185
|
|
|
4162
4186
|
**GraphQL**:
|
|
4163
4187
|
```graphql
|
|
@@ -4173,7 +4197,9 @@ fragment LoyaltyTier on LoyaltyTier {
|
|
|
4173
4197
|
customBenefits {
|
|
4174
4198
|
name
|
|
4175
4199
|
description
|
|
4176
|
-
icon
|
|
4200
|
+
icon {
|
|
4201
|
+
...ImageThumbnail
|
|
4202
|
+
}
|
|
4177
4203
|
}
|
|
4178
4204
|
}
|
|
4179
4205
|
```
|
|
@@ -4424,6 +4450,8 @@ fragment GenerateReferralCodePayload on GenerateReferralCodePayload {
|
|
|
4424
4450
|
|
|
4425
4451
|
**Description**: Single product review — rating, title, body, optional pros/cons, image attachments, author, verified-purchase flag, helpful/unhelpful counts, optional merchant response. Only `APPROVED` reviews are exposed to the storefront.
|
|
4426
4452
|
|
|
4453
|
+
**Uses fragments**: `ImageThumbnail`
|
|
4454
|
+
|
|
4427
4455
|
**GraphQL**:
|
|
4428
4456
|
```graphql
|
|
4429
4457
|
fragment ProductReview on ProductReview {
|
|
@@ -4434,7 +4462,9 @@ fragment ProductReview on ProductReview {
|
|
|
4434
4462
|
content
|
|
4435
4463
|
pros
|
|
4436
4464
|
cons
|
|
4437
|
-
images
|
|
4465
|
+
images {
|
|
4466
|
+
...ImageThumbnail
|
|
4467
|
+
}
|
|
4438
4468
|
authorName
|
|
4439
4469
|
isVerifiedPurchase
|
|
4440
4470
|
helpfulCount
|
|
@@ -4792,7 +4822,7 @@ fragment ShopPage on ShopPage {
|
|
|
4792
4822
|
|
|
4793
4823
|
**Description**: One menu item with up to 3 levels of nested children — title, URL, type (`HTTP` / `FRONTPAGE` / `SEARCH` / `CATALOG` / `BLOG` / `PRODUCT` / `COLLECTION` / `CATEGORY` / `PAGE` / `BRAND`), `resourceId` for typed items, optional image, and a typed `resource` union (Category / Collection / ShopPage / Product / Brand) carrying the linked resource's handle. Two ways to render the link target: (1) use the pre-resolved `url` if your storefront follows the standard `/categories|/collections|/pages|/products|/brands/<handle>` route convention; (2) read `resource.__typename` + the per-type `handle` and build your own paths if your storefront uses different routing. Switch on `type` to decide which static (FRONTPAGE/SEARCH/CATALOG/BLOG) or dynamic target to render.
|
|
4794
4824
|
|
|
4795
|
-
**Uses fragments**: `Image`
|
|
4825
|
+
**Uses fragments**: `Image`, `ImageThumbnail`
|
|
4796
4826
|
|
|
4797
4827
|
**GraphQL**:
|
|
4798
4828
|
```graphql
|
|
@@ -4828,7 +4858,9 @@ fragment MenuItem on MenuItem {
|
|
|
4828
4858
|
id
|
|
4829
4859
|
handle
|
|
4830
4860
|
name
|
|
4831
|
-
logo
|
|
4861
|
+
logo {
|
|
4862
|
+
...ImageThumbnail
|
|
4863
|
+
}
|
|
4832
4864
|
}
|
|
4833
4865
|
}
|
|
4834
4866
|
image {
|
|
@@ -4866,7 +4898,9 @@ fragment MenuItem on MenuItem {
|
|
|
4866
4898
|
id
|
|
4867
4899
|
handle
|
|
4868
4900
|
name
|
|
4869
|
-
logo
|
|
4901
|
+
logo {
|
|
4902
|
+
...ImageThumbnail
|
|
4903
|
+
}
|
|
4870
4904
|
}
|
|
4871
4905
|
}
|
|
4872
4906
|
items {
|
|
@@ -4901,7 +4935,9 @@ fragment MenuItem on MenuItem {
|
|
|
4901
4935
|
id
|
|
4902
4936
|
handle
|
|
4903
4937
|
name
|
|
4904
|
-
logo
|
|
4938
|
+
logo {
|
|
4939
|
+
...ImageThumbnail
|
|
4940
|
+
}
|
|
4905
4941
|
}
|
|
4906
4942
|
}
|
|
4907
4943
|
}
|
package/mutations.graphql
CHANGED
|
@@ -330,7 +330,7 @@ mutation CartSelectShippingMethod($input: CartSelectShippingMethodInput!) {
|
|
|
330
330
|
}
|
|
331
331
|
|
|
332
332
|
# Selects a payment method on the cart by category (`methodType` — BLIK, CARD, BANK_TRANSFER, ...).
|
|
333
|
-
# Optional `
|
|
333
|
+
# Optional `preferredProvider` overrides the merchant priority when the buyer explicitly picks
|
|
334
334
|
# a gateway from `PaymentMethod.providersAvailable`. The backend resolves the gateway routing
|
|
335
335
|
# from `MerchantPaymentConfig` at `cartComplete`; the selection persisted here is the category.
|
|
336
336
|
# Errors: `PAYMENT_METHOD_REQUIRED`, `CART_NOT_FOUND`, `CART_UNAUTHENTICATED`.
|
package/operations.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "
|
|
2
|
+
"schemaVersion": "18.0.0",
|
|
3
3
|
"queries": [
|
|
4
4
|
{
|
|
5
5
|
"name": "Shop",
|
|
@@ -1518,7 +1518,7 @@
|
|
|
1518
1518
|
"name": "CartSelectPaymentMethod",
|
|
1519
1519
|
"kind": "mutation",
|
|
1520
1520
|
"section": "Cart Completion Mutations",
|
|
1521
|
-
"description": "Selects a payment method on the cart by category (`methodType` — BLIK, CARD, BANK_TRANSFER, ...). Optional `
|
|
1521
|
+
"description": "Selects a payment method on the cart by category (`methodType` — BLIK, CARD, BANK_TRANSFER, ...). Optional `preferredProvider` overrides the merchant priority when the buyer explicitly picks a gateway from `PaymentMethod.providersAvailable`. The backend resolves the gateway routing from `MerchantPaymentConfig` at `cartComplete`; the selection persisted here is the category. Errors: `PAYMENT_METHOD_REQUIRED`, `CART_NOT_FOUND`, `CART_UNAUTHENTICATED`.",
|
|
1522
1522
|
"variables": [
|
|
1523
1523
|
{
|
|
1524
1524
|
"name": "input",
|
|
@@ -2197,7 +2197,7 @@
|
|
|
2197
2197
|
"MailingAddress",
|
|
2198
2198
|
"PageInfo"
|
|
2199
2199
|
],
|
|
2200
|
-
"body": "fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost {\n ...CartCost\n }\n lines(first: 100) {\n edges {\n cursor\n node {\n ... on CartLine {\n ...CartLine\n }\n }\n }\n nodes {\n ... on CartLine {\n ...CartLine\n }\n }\n pageInfo {\n ...PageInfo\n }\n totalCount\n }\n buyerIdentity {\n ...CartBuyerIdentity\n }\n discountCodes {\n ...CartDiscountCode\n }\n discountAllocations {\n ...CartDiscountAllocation\n }\n note\n attributes {\n key\n value\n }\n email\n phone\n shippingAddress {\n ...MailingAddress\n }\n billingAddress {\n ...MailingAddress\n }\n selectedShippingMethod {\n ...CartShippingMethod\n }\n selectedPaymentMethod {\n ...CartSelectedPaymentMethod\n }\n
|
|
2200
|
+
"body": "fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost {\n ...CartCost\n }\n lines(first: 100) {\n edges {\n cursor\n node {\n ... on CartLine {\n ...CartLine\n }\n }\n }\n nodes {\n ... on CartLine {\n ...CartLine\n }\n }\n pageInfo {\n ...PageInfo\n }\n totalCount\n }\n buyerIdentity {\n ...CartBuyerIdentity\n }\n discountCodes {\n ...CartDiscountCode\n }\n discountAllocations {\n ...CartDiscountAllocation\n }\n note\n attributes {\n key\n value\n }\n email\n phone\n shippingAddress {\n ...MailingAddress\n }\n billingAddress {\n ...MailingAddress\n }\n selectedShippingMethod {\n ...CartShippingMethod\n }\n selectedPaymentMethod {\n ...CartSelectedPaymentMethod\n }\n selectedPaymentInstrument\n appliedGiftCards {\n ...CartAppliedGiftCard\n }\n requiresShipping\n createdAt\n updatedAt\n status\n completedOrder {\n id\n orderNumber\n accessToken\n status\n paymentStatus\n fulfillmentStatus\n }\n}",
|
|
2201
2201
|
"onType": "Cart"
|
|
2202
2202
|
},
|
|
2203
2203
|
{
|
|
@@ -2228,10 +2228,12 @@
|
|
|
2228
2228
|
"name": "CartSelectedPaymentMethod",
|
|
2229
2229
|
"kind": "fragment",
|
|
2230
2230
|
"section": "Cart",
|
|
2231
|
-
"description": "Payment method (integration provider) selected on a cart — id, name, provider code, type category (CARD/BLIK/BANK_TRANSFER/etc.), icon, description, isDefault, supportedCurrencies. Storefront UI używa do iconography + selection display.",
|
|
2231
|
+
"description": "Payment method (integration provider) selected on a cart — id, name, provider code, type category (CARD/BLIK/BANK_TRANSFER/etc.), icon image (transformable), description, isDefault, supportedCurrencies. Storefront UI używa do iconography + selection display.",
|
|
2232
2232
|
"variables": [],
|
|
2233
|
-
"fragmentRefs": [
|
|
2234
|
-
|
|
2233
|
+
"fragmentRefs": [
|
|
2234
|
+
"ImageThumbnail"
|
|
2235
|
+
],
|
|
2236
|
+
"body": "fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon {\n ...ImageThumbnail\n }\n description\n isDefault\n supportedCurrencies\n position\n}",
|
|
2235
2237
|
"onType": "PaymentMethod"
|
|
2236
2238
|
},
|
|
2237
2239
|
{
|
|
@@ -2350,25 +2352,28 @@
|
|
|
2350
2352
|
"onType": "Shop"
|
|
2351
2353
|
},
|
|
2352
2354
|
{
|
|
2353
|
-
"name": "
|
|
2355
|
+
"name": "PaymentInstrument",
|
|
2354
2356
|
"kind": "fragment",
|
|
2355
2357
|
"section": "Payment Methods",
|
|
2356
|
-
"description": "A single concrete instrument exposed by a gateway provider (BLIK code, branded bank, wallet, card brand). Pass `
|
|
2358
|
+
"description": "A single concrete instrument exposed by a gateway provider (BLIK code, branded bank, wallet, card brand). Pass `code` as `preferredInstrument` in `cartSelectPaymentMethod` for direct deep-link to that instrument screen on the gateway. `displayHint` is a semantic UX hint (`PROMINENT_BUTTON`, `BRANDED_TILE`, `DROPDOWN_OPTION`, `RADIO_OPTION`) — storefront branches rendering accordingly. `enabled: false` means the gateway reported the instrument as temporarily disabled — gray out, don't hide.",
|
|
2357
2359
|
"variables": [],
|
|
2358
|
-
"fragmentRefs": [
|
|
2359
|
-
|
|
2360
|
-
|
|
2360
|
+
"fragmentRefs": [
|
|
2361
|
+
"ImageThumbnail"
|
|
2362
|
+
],
|
|
2363
|
+
"body": "fragment PaymentInstrument on PaymentInstrument {\n provider\n code\n type\n displayName\n displayHint\n brandImage {\n ...ImageThumbnail\n }\n enabled\n}",
|
|
2364
|
+
"onType": "PaymentInstrument"
|
|
2361
2365
|
},
|
|
2362
2366
|
{
|
|
2363
2367
|
"name": "PaymentMethod",
|
|
2364
2368
|
"kind": "fragment",
|
|
2365
2369
|
"section": "Payment Methods",
|
|
2366
|
-
"description": "Single payment method enabled for the shop — method-centric. `type` is the category (CARD, BLIK, BANK_TRANSFER, CASH_ON_DELIVERY, OTHER) — drive iconography here. `provider`, `providersAvailable`, `preferredProvider` are `
|
|
2370
|
+
"description": "Single payment method enabled for the shop — method-centric. `type` is the category (CARD, BLIK, BANK_TRANSFER, INSTALLMENT, WALLET, CASH_ON_DELIVERY, OTHER) — drive iconography here. `provider`, `providersAvailable`, `preferredProvider` are `PaymentProvider` enum (UPPERCASE: `PAYU`, `PRZELEWY24`, ...). `available` is `false` when the resolving gateway is temporarily unavailable or reported the method as disabled — gray-out the tile, don't hide it; `unavailableReason` carries the diagnostic. `instruments` lists concrete gateway-side instruments (BLIK code, branded banks, wallets) when the gateway exposes granular data — pass `code` as `preferredInstrument` in `cartSelectPaymentMethod` for direct deep-link to that instrument screen on the gateway. Spread on the checkout payment step.",
|
|
2367
2371
|
"variables": [],
|
|
2368
2372
|
"fragmentRefs": [
|
|
2369
|
-
"
|
|
2373
|
+
"ImageThumbnail",
|
|
2374
|
+
"PaymentInstrument"
|
|
2370
2375
|
],
|
|
2371
|
-
"body": "fragment PaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n providersAvailable\n preferredProvider\n available\n unavailableReason\n instruments {\n ...
|
|
2376
|
+
"body": "fragment PaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon {\n ...ImageThumbnail\n }\n description\n isDefault\n supportedCurrencies\n position\n providersAvailable\n preferredProvider\n available\n unavailableReason\n instruments {\n ...PaymentInstrument\n }\n}",
|
|
2372
2377
|
"onType": "PaymentMethod"
|
|
2373
2378
|
},
|
|
2374
2379
|
{
|
|
@@ -2427,10 +2432,12 @@
|
|
|
2427
2432
|
"name": "ShipmentItem",
|
|
2428
2433
|
"kind": "fragment",
|
|
2429
2434
|
"section": "Shipments / Tracking",
|
|
2430
|
-
"description": "One item in a shipment — title, variant, sku, quantity, image
|
|
2435
|
+
"description": "One item in a shipment — title, variant, sku, quantity, live variant image (transformable). Spread inside `Shipment.items[]` for the tracking page item list. `image` is live from the current variant (snapshot fallback when variant has been deleted since fulfillment — returns null, render a placeholder).",
|
|
2431
2436
|
"variables": [],
|
|
2432
|
-
"fragmentRefs": [
|
|
2433
|
-
|
|
2437
|
+
"fragmentRefs": [
|
|
2438
|
+
"ImageThumbnail"
|
|
2439
|
+
],
|
|
2440
|
+
"body": "fragment ShipmentItem on ShipmentItem {\n id\n title\n variantTitle\n sku\n quantity\n image {\n ...ImageThumbnail\n }\n}",
|
|
2434
2441
|
"onType": "ShipmentItem"
|
|
2435
2442
|
},
|
|
2436
2443
|
{
|
|
@@ -2485,10 +2492,11 @@
|
|
|
2485
2492
|
"description": "Single line in a return request — variant identity, quantity requested, reason, condition, photos, status, approved quantity (set by merchant after review). Spread inside `Return.items[]`.",
|
|
2486
2493
|
"variables": [],
|
|
2487
2494
|
"fragmentRefs": [
|
|
2495
|
+
"ImageThumbnail",
|
|
2488
2496
|
"Money",
|
|
2489
2497
|
"ReturnItemPhoto"
|
|
2490
2498
|
],
|
|
2491
|
-
"body": "fragment ReturnItem on ReturnItem {\n id\n variantId\n productTitle\n variantTitle\n sku\n
|
|
2499
|
+
"body": "fragment ReturnItem on ReturnItem {\n id\n variantId\n productTitle\n variantTitle\n sku\n image {\n ...ImageThumbnail\n }\n quantity\n reason\n condition\n unitPrice {\n ...Money\n }\n photos {\n ...ReturnItemPhoto\n }\n status\n approvedQuantity\n}",
|
|
2492
2500
|
"onType": "ReturnItem"
|
|
2493
2501
|
},
|
|
2494
2502
|
{
|
|
@@ -2555,10 +2563,12 @@
|
|
|
2555
2563
|
"name": "ShippingCarrier",
|
|
2556
2564
|
"kind": "fragment",
|
|
2557
2565
|
"section": "Shipping Methods",
|
|
2558
|
-
"description": "Carrier offering the shipping method — id, display name, logo
|
|
2566
|
+
"description": "Carrier offering the shipping method — id, display name, logo image (transformable), internal service code.",
|
|
2559
2567
|
"variables": [],
|
|
2560
|
-
"fragmentRefs": [
|
|
2561
|
-
|
|
2568
|
+
"fragmentRefs": [
|
|
2569
|
+
"ImageThumbnail"
|
|
2570
|
+
],
|
|
2571
|
+
"body": "fragment ShippingCarrier on ShippingCarrier {\n id\n name\n logo {\n ...ImageThumbnail\n }\n serviceCode\n}",
|
|
2562
2572
|
"onType": "ShippingCarrier"
|
|
2563
2573
|
},
|
|
2564
2574
|
{
|
|
@@ -2602,10 +2612,12 @@
|
|
|
2602
2612
|
"name": "AttributeSwatch",
|
|
2603
2613
|
"kind": "fragment",
|
|
2604
2614
|
"section": "Attribute Filters",
|
|
2605
|
-
"description": "Visual swatch for an attribute filter value — color hex (for color filters) or image
|
|
2615
|
+
"description": "Visual swatch for an attribute filter value — color hex (for color filters) or image (for pattern/material swatches).",
|
|
2606
2616
|
"variables": [],
|
|
2607
|
-
"fragmentRefs": [
|
|
2608
|
-
|
|
2617
|
+
"fragmentRefs": [
|
|
2618
|
+
"ImageThumbnail"
|
|
2619
|
+
],
|
|
2620
|
+
"body": "fragment AttributeSwatch on AttributeSwatch {\n colorHex\n image {\n ...ImageThumbnail\n }\n}",
|
|
2609
2621
|
"onType": "AttributeSwatch"
|
|
2610
2622
|
},
|
|
2611
2623
|
{
|
|
@@ -2697,9 +2709,10 @@
|
|
|
2697
2709
|
"description": "Loyalty tier definition — name, type enum (`BRONZE` / `SILVER` / `GOLD` / `PLATINUM` / `DIAMOND`), entry threshold (`minPoints` and/or `minAnnualSpend`), points multiplier, custom benefits list. Returned by `loyaltyTiers` and embedded in member tier data.",
|
|
2698
2710
|
"variables": [],
|
|
2699
2711
|
"fragmentRefs": [
|
|
2712
|
+
"ImageThumbnail",
|
|
2700
2713
|
"Money"
|
|
2701
2714
|
],
|
|
2702
|
-
"body": "fragment LoyaltyTier on LoyaltyTier {\n id\n name\n type\n minPoints\n minAnnualSpend {\n ...Money\n }\n pointsMultiplier\n customBenefits {\n name\n description\n icon\n }\n}",
|
|
2715
|
+
"body": "fragment LoyaltyTier on LoyaltyTier {\n id\n name\n type\n minPoints\n minAnnualSpend {\n ...Money\n }\n pointsMultiplier\n customBenefits {\n name\n description\n icon {\n ...ImageThumbnail\n }\n }\n}",
|
|
2703
2716
|
"onType": "LoyaltyTier"
|
|
2704
2717
|
},
|
|
2705
2718
|
{
|
|
@@ -2836,8 +2849,10 @@
|
|
|
2836
2849
|
"section": "Reviews",
|
|
2837
2850
|
"description": "Single product review — rating, title, body, optional pros/cons, image attachments, author, verified-purchase flag, helpful/unhelpful counts, optional merchant response. Only `APPROVED` reviews are exposed to the storefront.",
|
|
2838
2851
|
"variables": [],
|
|
2839
|
-
"fragmentRefs": [
|
|
2840
|
-
|
|
2852
|
+
"fragmentRefs": [
|
|
2853
|
+
"ImageThumbnail"
|
|
2854
|
+
],
|
|
2855
|
+
"body": "fragment ProductReview on ProductReview {\n id\n productId\n rating\n title\n content\n pros\n cons\n images {\n ...ImageThumbnail\n }\n authorName\n isVerifiedPurchase\n helpfulCount\n unhelpfulCount\n response\n responseAt\n createdAt\n}",
|
|
2841
2856
|
"onType": "ProductReview"
|
|
2842
2857
|
},
|
|
2843
2858
|
{
|
|
@@ -3009,9 +3024,10 @@
|
|
|
3009
3024
|
"description": "One menu item with up to 3 levels of nested children — title, URL, type (`HTTP` / `FRONTPAGE` / `SEARCH` / `CATALOG` / `BLOG` / `PRODUCT` / `COLLECTION` / `CATEGORY` / `PAGE` / `BRAND`), `resourceId` for typed items, optional image, and a typed `resource` union (Category / Collection / ShopPage / Product / Brand) carrying the linked resource's handle. Two ways to render the link target: (1) use the pre-resolved `url` if your storefront follows the standard `/categories|/collections|/pages|/products|/brands/<handle>` route convention; (2) read `resource.__typename` + the per-type `handle` and build your own paths if your storefront uses different routing. Switch on `type` to decide which static (FRONTPAGE/SEARCH/CATALOG/BLOG) or dynamic target to render.",
|
|
3010
3025
|
"variables": [],
|
|
3011
3026
|
"fragmentRefs": [
|
|
3012
|
-
"Image"
|
|
3027
|
+
"Image",
|
|
3028
|
+
"ImageThumbnail"
|
|
3013
3029
|
],
|
|
3014
|
-
"body": "fragment MenuItem on MenuItem {\n id\n title\n url\n type\n resourceId\n resource {\n __typename\n ... on Category {\n id\n handle\n name\n }\n ... on Collection {\n id\n handle\n title\n }\n ... on ShopPage {\n id\n handle\n title\n }\n ... on Product {\n id\n handle\n title\n }\n ... on Brand {\n id\n handle\n name\n logo\n }\n }\n image {\n ...Image\n }\n items {\n id\n title\n url\n type\n resourceId\n resource {\n __typename\n ... on Category {\n id\n handle\n name\n }\n ... on Collection {\n id\n handle\n title\n }\n ... on ShopPage {\n id\n handle\n title\n }\n ... on Product {\n id\n handle\n title\n }\n ... on Brand {\n id\n handle\n name\n logo\n }\n }\n items {\n id\n title\n url\n type\n resourceId\n resource {\n __typename\n ... on Category {\n id\n handle\n name\n }\n ... on Collection {\n id\n handle\n title\n }\n ... on ShopPage {\n id\n handle\n title\n }\n ... on Product {\n id\n handle\n title\n }\n ... on Brand {\n id\n handle\n name\n logo\n }\n }\n }\n }\n}",
|
|
3030
|
+
"body": "fragment MenuItem on MenuItem {\n id\n title\n url\n type\n resourceId\n resource {\n __typename\n ... on Category {\n id\n handle\n name\n }\n ... on Collection {\n id\n handle\n title\n }\n ... on ShopPage {\n id\n handle\n title\n }\n ... on Product {\n id\n handle\n title\n }\n ... on Brand {\n id\n handle\n name\n logo {\n ...ImageThumbnail\n }\n }\n }\n image {\n ...Image\n }\n items {\n id\n title\n url\n type\n resourceId\n resource {\n __typename\n ... on Category {\n id\n handle\n name\n }\n ... on Collection {\n id\n handle\n title\n }\n ... on ShopPage {\n id\n handle\n title\n }\n ... on Product {\n id\n handle\n title\n }\n ... on Brand {\n id\n handle\n name\n logo {\n ...ImageThumbnail\n }\n }\n }\n items {\n id\n title\n url\n type\n resourceId\n resource {\n __typename\n ... on Category {\n id\n handle\n name\n }\n ... on Collection {\n id\n handle\n title\n }\n ... on ShopPage {\n id\n handle\n title\n }\n ... on Product {\n id\n handle\n title\n }\n ... on Brand {\n id\n handle\n name\n logo {\n ...ImageThumbnail\n }\n }\n }\n }\n }\n}",
|
|
3015
3031
|
"onType": "MenuItem"
|
|
3016
3032
|
},
|
|
3017
3033
|
{
|