@doswiftly/storefront-operations 5.5.0 → 6.1.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/CHANGELOG.md +778 -0
- package/fragments.graphql +161 -150
- package/mutations.graphql +104 -55
- package/package.json +1 -1
- package/queries.graphql +72 -44
- package/schema.graphql +1767 -758
package/schema.graphql
CHANGED
|
@@ -3,9 +3,29 @@
|
|
|
3
3
|
# ------------------------------------------------------
|
|
4
4
|
|
|
5
5
|
"""
|
|
6
|
-
Sets contextual hints on an operation
|
|
6
|
+
Sets contextual hints on an operation — country, language, currency, buyer, preferredLocationId. Resolution priority: directive > request header > cookie > auto-detect > shop default.
|
|
7
7
|
"""
|
|
8
8
|
directive @inContext(
|
|
9
|
+
"""
|
|
10
|
+
B2B / impersonation buyer context. Use for explicit auth (admin acting as customer) or company-location catalog scoping. Browser storefronts should prefer cookie / Bearer header.
|
|
11
|
+
"""
|
|
12
|
+
buyer: BuyerInput
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
ISO 3166-1 alpha-2 country code (e.g. "PL", "DE"). Drives Markets pricing / shipping availability. Validated against shop config — unknown codes silently fall through to next priority layer.
|
|
16
|
+
"""
|
|
17
|
+
country: String
|
|
18
|
+
|
|
19
|
+
"""
|
|
20
|
+
ISO 4217 currency code (e.g. "EUR", "USD"). Constrained to `shop.supportedCurrencies` — unsupported codes silently fall through. Typically inferred from `country` via Markets.
|
|
21
|
+
"""
|
|
22
|
+
currency: String
|
|
23
|
+
|
|
24
|
+
"""
|
|
25
|
+
ISO 639-1 language code (e.g. "pl", "en"). Constrained to `shop.supportedLanguages` — unsupported codes silently fall through. Avoids `Accept-Language` ambiguity for SSR / Edge.
|
|
26
|
+
"""
|
|
27
|
+
language: String
|
|
28
|
+
|
|
9
29
|
"""
|
|
10
30
|
Biases field resolvers (e.g. storeAvailability) toward this location. Must reference an active InventoryLocation in the current shop — invalid / inactive IDs are silently ignored by resolvers.
|
|
11
31
|
"""
|
|
@@ -135,7 +155,7 @@ input AttributeInput {
|
|
|
135
155
|
}
|
|
136
156
|
|
|
137
157
|
"""
|
|
138
|
-
Surcharge calculation: FIXED (minor units) or PERCENT (thousandths of percent
|
|
158
|
+
Surcharge calculation: FIXED (minor units) or PERCENT (thousandths of percent)
|
|
139
159
|
"""
|
|
140
160
|
enum AttributeOptionSurchargeType {
|
|
141
161
|
FIXED
|
|
@@ -242,8 +262,10 @@ enum AttributeType {
|
|
|
242
262
|
|
|
243
263
|
"""Available filters for product listing"""
|
|
244
264
|
type AvailableFilters {
|
|
245
|
-
"""
|
|
246
|
-
activeFilterCount
|
|
265
|
+
"""
|
|
266
|
+
Number of currently active filters (renamed from activeFilterCount in Storefront 5.0)
|
|
267
|
+
"""
|
|
268
|
+
activeCount: Int!
|
|
247
269
|
|
|
248
270
|
"""Filterable attributes with values"""
|
|
249
271
|
attributes: [AttributeDefinition!]!
|
|
@@ -251,11 +273,13 @@ type AvailableFilters {
|
|
|
251
273
|
"""Categories available for filtering"""
|
|
252
274
|
categories: [CategoryFilterOption!]
|
|
253
275
|
|
|
276
|
+
"""
|
|
277
|
+
Total products matching current context, before filters (renamed from totalProducts in Storefront 5.0)
|
|
278
|
+
"""
|
|
279
|
+
matchCount: Int!
|
|
280
|
+
|
|
254
281
|
"""Price range for filtering"""
|
|
255
282
|
priceRange: PriceRange
|
|
256
|
-
|
|
257
|
-
"""Total products matching current context (before filters)"""
|
|
258
|
-
totalProducts: Int!
|
|
259
283
|
}
|
|
260
284
|
|
|
261
285
|
"""Context for available filters query"""
|
|
@@ -326,12 +350,12 @@ type AvailableShippingMethodsPayload {
|
|
|
326
350
|
|
|
327
351
|
"""Live carrier shipping rates payload"""
|
|
328
352
|
type AvailableShippingRatesPayload {
|
|
329
|
-
"""Whether the result was served from cache"""
|
|
330
|
-
cached: Boolean!
|
|
331
|
-
|
|
332
353
|
"""Providers that failed to return rates"""
|
|
333
354
|
errors: [CarrierRateError!]!
|
|
334
355
|
|
|
356
|
+
"""Whether the result was served from cache"""
|
|
357
|
+
isCached: Boolean!
|
|
358
|
+
|
|
335
359
|
"""Available rates sorted by price"""
|
|
336
360
|
rates: [CarrierShippingRate!]!
|
|
337
361
|
}
|
|
@@ -431,11 +455,11 @@ type BlogPost {
|
|
|
431
455
|
"""Full content (HTML)"""
|
|
432
456
|
content: String!
|
|
433
457
|
|
|
434
|
-
"""
|
|
435
|
-
|
|
458
|
+
"""Format of stored content (HTML or MARKDOWN)"""
|
|
459
|
+
contentFormat: ContentFormat!
|
|
436
460
|
|
|
437
461
|
"""Created date (ISO 8601)"""
|
|
438
|
-
createdAt:
|
|
462
|
+
createdAt: DateTime!
|
|
439
463
|
|
|
440
464
|
"""Short excerpt/summary"""
|
|
441
465
|
excerpt: String
|
|
@@ -450,10 +474,10 @@ type BlogPost {
|
|
|
450
474
|
isFeatured: Boolean!
|
|
451
475
|
|
|
452
476
|
"""Published date (ISO 8601)"""
|
|
453
|
-
publishedAt:
|
|
477
|
+
publishedAt: DateTime
|
|
454
478
|
|
|
455
479
|
"""Estimated reading time in minutes"""
|
|
456
|
-
|
|
480
|
+
readingTimeMinutes: Int!
|
|
457
481
|
|
|
458
482
|
"""SEO metadata"""
|
|
459
483
|
seo: SEO
|
|
@@ -471,7 +495,7 @@ type BlogPost {
|
|
|
471
495
|
title: String!
|
|
472
496
|
|
|
473
497
|
"""Updated date (ISO 8601)"""
|
|
474
|
-
updatedAt:
|
|
498
|
+
updatedAt: DateTime!
|
|
475
499
|
|
|
476
500
|
"""View count"""
|
|
477
501
|
viewCount: Int!
|
|
@@ -553,6 +577,42 @@ type BotProtectionProviderInfo {
|
|
|
553
577
|
siteKey: String!
|
|
554
578
|
}
|
|
555
579
|
|
|
580
|
+
"""Shop brand metadata (logo, colors, slogan)"""
|
|
581
|
+
type Brand {
|
|
582
|
+
"""Primary + secondary brand colors"""
|
|
583
|
+
colors: BrandColors
|
|
584
|
+
|
|
585
|
+
"""Cover image / hero banner"""
|
|
586
|
+
coverImage: Image
|
|
587
|
+
|
|
588
|
+
"""Primary logo"""
|
|
589
|
+
logo: Image
|
|
590
|
+
|
|
591
|
+
"""Short brand description"""
|
|
592
|
+
shortDescription: String
|
|
593
|
+
|
|
594
|
+
"""Marketing slogan / tagline"""
|
|
595
|
+
slogan: String
|
|
596
|
+
|
|
597
|
+
"""Square logo variant (favicons, app tiles)"""
|
|
598
|
+
squareLogo: Image
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
"""Single brand color group (background + foreground hex)"""
|
|
602
|
+
type BrandColorGroup {
|
|
603
|
+
"""Background color (hex, e.g. "#0F172A")"""
|
|
604
|
+
background: String
|
|
605
|
+
|
|
606
|
+
"""Foreground/text color (hex)"""
|
|
607
|
+
foreground: String
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
"""Pair of brand color groups (primary + secondary)"""
|
|
611
|
+
type BrandColors {
|
|
612
|
+
primary: BrandColorGroup
|
|
613
|
+
secondary: BrandColorGroup
|
|
614
|
+
}
|
|
615
|
+
|
|
556
616
|
"""Business hours for a day"""
|
|
557
617
|
type BusinessHour {
|
|
558
618
|
"""Closing time (HH:MM format)"""
|
|
@@ -601,6 +661,19 @@ type BusinessHoursWindow {
|
|
|
601
661
|
openHour: Int!
|
|
602
662
|
}
|
|
603
663
|
|
|
664
|
+
"""
|
|
665
|
+
Buyer context for `@inContext` — supports B2B impersonation and company-scoped catalog.
|
|
666
|
+
"""
|
|
667
|
+
input BuyerInput {
|
|
668
|
+
"""B2B company location ID (planned — multi-location buyer scoping)."""
|
|
669
|
+
companyLocationId: ID
|
|
670
|
+
|
|
671
|
+
"""
|
|
672
|
+
Customer JWT for explicit auth context (mobile / server-to-server / admin impersonation). For browser storefronts prefer the httpOnly `customerAccessToken` cookie or `Authorization: Bearer` header — directive args are propagated through query logs.
|
|
673
|
+
"""
|
|
674
|
+
customerAccessToken: String
|
|
675
|
+
}
|
|
676
|
+
|
|
604
677
|
"""Provider error when fetching rates"""
|
|
605
678
|
type CarrierRateError {
|
|
606
679
|
"""Error message"""
|
|
@@ -612,14 +685,14 @@ type CarrierRateError {
|
|
|
612
685
|
|
|
613
686
|
"""Live shipping rate from a carrier"""
|
|
614
687
|
type CarrierShippingRate {
|
|
615
|
-
"""Whether cash on delivery is available"""
|
|
616
|
-
cashOnDeliveryAvailable: Boolean!
|
|
617
|
-
|
|
618
688
|
"""Estimated delivery in business days"""
|
|
619
689
|
estimatedDeliveryDays: Int!
|
|
620
690
|
|
|
691
|
+
"""Whether cash on delivery is available"""
|
|
692
|
+
isCashOnDeliveryAvailable: Boolean!
|
|
693
|
+
|
|
621
694
|
"""Whether pickup is available for this service"""
|
|
622
|
-
|
|
695
|
+
isPickupAvailable: Boolean!
|
|
623
696
|
|
|
624
697
|
"""Rate price"""
|
|
625
698
|
price: Money!
|
|
@@ -635,7 +708,7 @@ type CarrierShippingRate {
|
|
|
635
708
|
}
|
|
636
709
|
|
|
637
710
|
"""Shopping cart"""
|
|
638
|
-
type Cart {
|
|
711
|
+
type Cart implements Node {
|
|
639
712
|
"""Cart attributes"""
|
|
640
713
|
attributes: [CartAttribute!]!
|
|
641
714
|
|
|
@@ -643,7 +716,7 @@ type Cart {
|
|
|
643
716
|
buyerIdentity: CartBuyerIdentity
|
|
644
717
|
|
|
645
718
|
"""Checkout URL"""
|
|
646
|
-
checkoutUrl:
|
|
719
|
+
checkoutUrl: URL
|
|
647
720
|
|
|
648
721
|
"""Cost breakdown"""
|
|
649
722
|
cost: CartCost!
|
|
@@ -660,8 +733,8 @@ type Cart {
|
|
|
660
733
|
"""Unique cart identifier"""
|
|
661
734
|
id: ID!
|
|
662
735
|
|
|
663
|
-
"""Cart line items"""
|
|
664
|
-
lines(first: Float
|
|
736
|
+
"""Cart line items (Relay Connection)"""
|
|
737
|
+
lines(after: String, before: String, first: Float, last: Float): CartLineConnection!
|
|
665
738
|
|
|
666
739
|
"""Cart note"""
|
|
667
740
|
note: String
|
|
@@ -676,6 +749,34 @@ type Cart {
|
|
|
676
749
|
updatedAt: DateTime!
|
|
677
750
|
}
|
|
678
751
|
|
|
752
|
+
"""Result of adding lines to cart"""
|
|
753
|
+
type CartAddLinesPayload {
|
|
754
|
+
"""Updated cart"""
|
|
755
|
+
cart: Cart
|
|
756
|
+
|
|
757
|
+
"""
|
|
758
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
759
|
+
"""
|
|
760
|
+
userErrors: [UserError!]!
|
|
761
|
+
|
|
762
|
+
"""Non-fatal warnings"""
|
|
763
|
+
warnings: [CartWarning!]!
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
"""Result of applying discount codes"""
|
|
767
|
+
type CartApplyDiscountCodesPayload {
|
|
768
|
+
"""Updated cart"""
|
|
769
|
+
cart: Cart
|
|
770
|
+
|
|
771
|
+
"""
|
|
772
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
773
|
+
"""
|
|
774
|
+
userErrors: [UserError!]!
|
|
775
|
+
|
|
776
|
+
"""Non-fatal warnings"""
|
|
777
|
+
warnings: [CartWarning!]!
|
|
778
|
+
}
|
|
779
|
+
|
|
679
780
|
"""Cart line attribute"""
|
|
680
781
|
type CartAttribute {
|
|
681
782
|
"""Attribute key"""
|
|
@@ -694,19 +795,10 @@ input CartAttributeInput {
|
|
|
694
795
|
value: String
|
|
695
796
|
}
|
|
696
797
|
|
|
697
|
-
"""Result of updating cart attributes"""
|
|
698
|
-
type CartAttributesUpdatePayload {
|
|
699
|
-
"""Updated cart"""
|
|
700
|
-
cart: Cart
|
|
701
|
-
|
|
702
|
-
"""User errors"""
|
|
703
|
-
userErrors: [UserError!]!
|
|
704
|
-
}
|
|
705
|
-
|
|
706
798
|
"""Buyer identity information"""
|
|
707
799
|
type CartBuyerIdentity {
|
|
708
|
-
"""
|
|
709
|
-
countryCode:
|
|
800
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
801
|
+
countryCode: CountryCode
|
|
710
802
|
|
|
711
803
|
"""Customer ID"""
|
|
712
804
|
customerId: ID
|
|
@@ -714,14 +806,17 @@ type CartBuyerIdentity {
|
|
|
714
806
|
"""Customer email"""
|
|
715
807
|
email: String
|
|
716
808
|
|
|
809
|
+
"""ISO 639-1 preferred language code"""
|
|
810
|
+
languageCode: LanguageCode
|
|
811
|
+
|
|
717
812
|
"""Customer phone"""
|
|
718
813
|
phone: String
|
|
719
814
|
}
|
|
720
815
|
|
|
721
816
|
"""Input for buyer identity"""
|
|
722
817
|
input CartBuyerIdentityInput {
|
|
723
|
-
"""
|
|
724
|
-
countryCode:
|
|
818
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
819
|
+
countryCode: CountryCode
|
|
725
820
|
|
|
726
821
|
"""Customer ID"""
|
|
727
822
|
customerId: ID
|
|
@@ -729,35 +824,44 @@ input CartBuyerIdentityInput {
|
|
|
729
824
|
"""Customer email"""
|
|
730
825
|
email: String
|
|
731
826
|
|
|
827
|
+
"""ISO 639-1 preferred language code"""
|
|
828
|
+
languageCode: LanguageCode
|
|
829
|
+
|
|
732
830
|
"""Customer phone"""
|
|
733
831
|
phone: String
|
|
734
832
|
}
|
|
735
833
|
|
|
736
|
-
"""Result of updating buyer identity"""
|
|
737
|
-
type CartBuyerIdentityUpdatePayload {
|
|
738
|
-
"""Updated cart"""
|
|
739
|
-
cart: Cart
|
|
740
|
-
|
|
741
|
-
"""User errors"""
|
|
742
|
-
userErrors: [UserError!]!
|
|
743
|
-
}
|
|
744
|
-
|
|
745
834
|
"""Cart cost breakdown"""
|
|
746
835
|
type CartCost {
|
|
747
|
-
"""Checkout charge amount"""
|
|
748
|
-
|
|
836
|
+
"""Checkout charge amount."""
|
|
837
|
+
checkoutCharge: Money
|
|
749
838
|
|
|
750
|
-
"""
|
|
751
|
-
|
|
839
|
+
"""Opt-in: checkoutCharge with conversion transparency."""
|
|
840
|
+
checkoutChargeWithConversion: PriceMoney
|
|
752
841
|
|
|
753
|
-
"""
|
|
754
|
-
|
|
842
|
+
"""Subtotal before taxes and shipping. Default field."""
|
|
843
|
+
subtotal: Money!
|
|
755
844
|
|
|
756
|
-
"""
|
|
757
|
-
|
|
845
|
+
"""Opt-in: subtotal with full conversion transparency."""
|
|
846
|
+
subtotalWithConversion: PriceMoney
|
|
758
847
|
|
|
759
|
-
"""Total
|
|
760
|
-
|
|
848
|
+
"""Total amount including taxes."""
|
|
849
|
+
total: Money!
|
|
850
|
+
|
|
851
|
+
"""Total duty amount."""
|
|
852
|
+
totalDuty: Money
|
|
853
|
+
|
|
854
|
+
"""Opt-in: totalDuty with conversion transparency."""
|
|
855
|
+
totalDutyWithConversion: PriceMoney
|
|
856
|
+
|
|
857
|
+
"""Total tax amount."""
|
|
858
|
+
totalTax: Money
|
|
859
|
+
|
|
860
|
+
"""Opt-in: totalTax with conversion transparency."""
|
|
861
|
+
totalTaxWithConversion: PriceMoney
|
|
862
|
+
|
|
863
|
+
"""Opt-in: total with conversion transparency."""
|
|
864
|
+
totalWithConversion: PriceMoney
|
|
761
865
|
}
|
|
762
866
|
|
|
763
867
|
"""Input for creating a cart"""
|
|
@@ -783,8 +887,13 @@ type CartCreatePayload {
|
|
|
783
887
|
"""Created cart"""
|
|
784
888
|
cart: Cart
|
|
785
889
|
|
|
786
|
-
"""
|
|
890
|
+
"""
|
|
891
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
892
|
+
"""
|
|
787
893
|
userErrors: [UserError!]!
|
|
894
|
+
|
|
895
|
+
"""Non-fatal warnings"""
|
|
896
|
+
warnings: [CartWarning!]!
|
|
788
897
|
}
|
|
789
898
|
|
|
790
899
|
"""Discount allocation showing how discount is applied"""
|
|
@@ -798,32 +907,19 @@ type CartDiscountAllocation {
|
|
|
798
907
|
|
|
799
908
|
"""Discount code applied to cart"""
|
|
800
909
|
type CartDiscountCode {
|
|
801
|
-
"""Whether the code is applicable"""
|
|
802
|
-
applicable: Boolean!
|
|
803
|
-
|
|
804
910
|
"""Discount code string"""
|
|
805
911
|
code: String!
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
"""Result of updating discount codes"""
|
|
809
|
-
type CartDiscountCodesUpdatePayload {
|
|
810
|
-
"""Updated cart"""
|
|
811
|
-
cart: Cart
|
|
812
912
|
|
|
813
|
-
"""
|
|
814
|
-
|
|
913
|
+
"""Whether the code is applicable"""
|
|
914
|
+
isApplicable: Boolean!
|
|
815
915
|
}
|
|
816
916
|
|
|
817
917
|
"""Single line item in the cart"""
|
|
818
918
|
type CartLine {
|
|
819
|
-
"""
|
|
820
|
-
Typed customer-filled attribute selections (Faza 1 R5 — surcharge + tax snapshot)
|
|
821
|
-
"""
|
|
919
|
+
"""Typed customer-filled attribute selections (surcharge + tax snapshot)"""
|
|
822
920
|
attributeSelections: [AttributeSelection!]!
|
|
823
921
|
|
|
824
|
-
"""
|
|
825
|
-
Shopify-compatible Line Item Properties — raw key/value pairs (e.g., gift wrap, engraving)
|
|
826
|
-
"""
|
|
922
|
+
"""Line Item Properties — raw key/value pairs"""
|
|
827
923
|
attributes: [Attribute!]!
|
|
828
924
|
|
|
829
925
|
"""Cost information for this line"""
|
|
@@ -832,9 +928,6 @@ type CartLine {
|
|
|
832
928
|
"""Unique line identifier"""
|
|
833
929
|
id: ID!
|
|
834
930
|
|
|
835
|
-
"""Product variant being purchased"""
|
|
836
|
-
merchandise: ProductVariant!
|
|
837
|
-
|
|
838
931
|
"""Parent product handle (slug)"""
|
|
839
932
|
productHandle: String
|
|
840
933
|
|
|
@@ -849,21 +942,60 @@ type CartLine {
|
|
|
849
942
|
|
|
850
943
|
"""Quantity of this item"""
|
|
851
944
|
quantity: Int!
|
|
945
|
+
|
|
946
|
+
"""Product variant being purchased"""
|
|
947
|
+
variant: ProductVariant!
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
"""Paginated cart lines"""
|
|
951
|
+
type CartLineConnection {
|
|
952
|
+
"""Cart line edges with cursors"""
|
|
953
|
+
edges: [CartLineEdge!]!
|
|
954
|
+
|
|
955
|
+
"""Cart line nodes (shortcut for edges.map(e => e.node))"""
|
|
956
|
+
nodes: [CartLine!]!
|
|
957
|
+
|
|
958
|
+
"""Pagination info"""
|
|
959
|
+
pageInfo: PageInfo!
|
|
960
|
+
|
|
961
|
+
"""Total count of cart lines"""
|
|
962
|
+
totalCount: Int!
|
|
852
963
|
}
|
|
853
964
|
|
|
854
965
|
"""Cost information for a single cart line"""
|
|
855
966
|
type CartLineCost {
|
|
856
|
-
"""
|
|
857
|
-
|
|
967
|
+
"""Compare-at price per unit if discounted."""
|
|
968
|
+
compareAtPricePerUnit: Money
|
|
858
969
|
|
|
859
|
-
"""
|
|
860
|
-
|
|
970
|
+
"""Opt-in: compareAtPricePerUnit with conversion transparency."""
|
|
971
|
+
compareAtPricePerUnitWithConversion: PriceMoney
|
|
861
972
|
|
|
862
|
-
"""
|
|
863
|
-
|
|
973
|
+
"""Price per unit. Default field — shop base currency."""
|
|
974
|
+
pricePerUnit: Money!
|
|
864
975
|
|
|
865
|
-
"""
|
|
866
|
-
|
|
976
|
+
"""Opt-in: pricePerUnit with conversion transparency."""
|
|
977
|
+
pricePerUnitWithConversion: PriceMoney
|
|
978
|
+
|
|
979
|
+
"""Subtotal before discounts."""
|
|
980
|
+
subtotal: Money!
|
|
981
|
+
|
|
982
|
+
"""Opt-in: subtotal with conversion transparency."""
|
|
983
|
+
subtotalWithConversion: PriceMoney
|
|
984
|
+
|
|
985
|
+
"""Total after discounts."""
|
|
986
|
+
total: Money!
|
|
987
|
+
|
|
988
|
+
"""Opt-in: total with conversion transparency."""
|
|
989
|
+
totalWithConversion: PriceMoney
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
"""Edge in a CartLine connection"""
|
|
993
|
+
type CartLineEdge {
|
|
994
|
+
"""Cursor for pagination"""
|
|
995
|
+
cursor: String!
|
|
996
|
+
|
|
997
|
+
"""Cart line node"""
|
|
998
|
+
node: CartLine!
|
|
867
999
|
}
|
|
868
1000
|
|
|
869
1001
|
"""Input for adding a line to cart"""
|
|
@@ -871,14 +1003,14 @@ input CartLineInput {
|
|
|
871
1003
|
"""Customer-filled AttributeDefinition selections (Faza 1 R5)"""
|
|
872
1004
|
attributeSelections: [AttributeSelectionInput!]
|
|
873
1005
|
|
|
874
|
-
"""Line attributes (
|
|
1006
|
+
"""Line attributes (Line Item Properties)"""
|
|
875
1007
|
attributes: [AttributeInput!]
|
|
876
1008
|
|
|
877
|
-
"""Product variant ID"""
|
|
878
|
-
merchandiseId: ID!
|
|
879
|
-
|
|
880
1009
|
"""Quantity to add"""
|
|
881
1010
|
quantity: Int! = 1
|
|
1011
|
+
|
|
1012
|
+
"""Product variant ID"""
|
|
1013
|
+
variantId: ID!
|
|
882
1014
|
}
|
|
883
1015
|
|
|
884
1016
|
"""Input for updating a cart line"""
|
|
@@ -888,7 +1020,7 @@ input CartLineUpdateInput {
|
|
|
888
1020
|
"""
|
|
889
1021
|
attributeSelections: [AttributeSelectionInput!]
|
|
890
1022
|
|
|
891
|
-
"""Updated
|
|
1023
|
+
"""Updated Line Item Properties (null preserves)"""
|
|
892
1024
|
attributes: [AttributeInput!]
|
|
893
1025
|
|
|
894
1026
|
"""Cart line ID to update"""
|
|
@@ -898,61 +1030,114 @@ input CartLineUpdateInput {
|
|
|
898
1030
|
quantity: Int!
|
|
899
1031
|
}
|
|
900
1032
|
|
|
901
|
-
"""
|
|
902
|
-
type
|
|
1033
|
+
"""Recommendations based on cart contents"""
|
|
1034
|
+
type CartRecommendations {
|
|
1035
|
+
"""Products frequently bought together with cart items"""
|
|
1036
|
+
frequentlyBoughtTogether: [ProductRecommendation!]!
|
|
1037
|
+
|
|
1038
|
+
"""Products to consider adding"""
|
|
1039
|
+
youMayAlsoLike: [ProductRecommendation!]!
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
"""Result of removing cart lines"""
|
|
1043
|
+
type CartRemoveLinesPayload {
|
|
903
1044
|
"""Updated cart"""
|
|
904
1045
|
cart: Cart
|
|
905
1046
|
|
|
906
|
-
"""
|
|
1047
|
+
"""
|
|
1048
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
1049
|
+
"""
|
|
907
1050
|
userErrors: [UserError!]!
|
|
1051
|
+
|
|
1052
|
+
"""Non-fatal warnings"""
|
|
1053
|
+
warnings: [CartWarning!]!
|
|
908
1054
|
}
|
|
909
1055
|
|
|
910
|
-
"""
|
|
911
|
-
|
|
1056
|
+
"""Cart data for shipping calculation"""
|
|
1057
|
+
input CartShippingInput {
|
|
1058
|
+
"""Currency code (ISO 4217)"""
|
|
1059
|
+
currencyCode: String
|
|
1060
|
+
|
|
1061
|
+
"""Cart subtotal in cents"""
|
|
1062
|
+
subtotal: Int
|
|
1063
|
+
|
|
1064
|
+
"""Total weight in grams"""
|
|
1065
|
+
totalWeight: Int
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1068
|
+
"""Result of updating cart attributes"""
|
|
1069
|
+
type CartUpdateAttributesPayload {
|
|
912
1070
|
"""Updated cart"""
|
|
913
1071
|
cart: Cart
|
|
914
1072
|
|
|
915
|
-
"""
|
|
1073
|
+
"""
|
|
1074
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
1075
|
+
"""
|
|
916
1076
|
userErrors: [UserError!]!
|
|
1077
|
+
|
|
1078
|
+
"""Non-fatal warnings"""
|
|
1079
|
+
warnings: [CartWarning!]!
|
|
917
1080
|
}
|
|
918
1081
|
|
|
919
|
-
"""Result of updating
|
|
920
|
-
type
|
|
1082
|
+
"""Result of updating buyer identity"""
|
|
1083
|
+
type CartUpdateBuyerIdentityPayload {
|
|
921
1084
|
"""Updated cart"""
|
|
922
1085
|
cart: Cart
|
|
923
1086
|
|
|
924
|
-
"""
|
|
1087
|
+
"""
|
|
1088
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
1089
|
+
"""
|
|
925
1090
|
userErrors: [UserError!]!
|
|
1091
|
+
|
|
1092
|
+
"""Non-fatal warnings"""
|
|
1093
|
+
warnings: [CartWarning!]!
|
|
926
1094
|
}
|
|
927
1095
|
|
|
928
|
-
"""Result of updating cart
|
|
929
|
-
type
|
|
1096
|
+
"""Result of updating cart lines"""
|
|
1097
|
+
type CartUpdateLinesPayload {
|
|
930
1098
|
"""Updated cart"""
|
|
931
1099
|
cart: Cart
|
|
932
1100
|
|
|
933
|
-
"""
|
|
1101
|
+
"""
|
|
1102
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
1103
|
+
"""
|
|
934
1104
|
userErrors: [UserError!]!
|
|
1105
|
+
|
|
1106
|
+
"""Non-fatal warnings"""
|
|
1107
|
+
warnings: [CartWarning!]!
|
|
935
1108
|
}
|
|
936
1109
|
|
|
937
|
-
"""
|
|
938
|
-
type
|
|
939
|
-
"""
|
|
940
|
-
|
|
1110
|
+
"""Result of updating cart note"""
|
|
1111
|
+
type CartUpdateNotePayload {
|
|
1112
|
+
"""Updated cart"""
|
|
1113
|
+
cart: Cart
|
|
941
1114
|
|
|
942
|
-
"""
|
|
943
|
-
|
|
1115
|
+
"""
|
|
1116
|
+
User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
|
|
1117
|
+
"""
|
|
1118
|
+
userErrors: [UserError!]!
|
|
1119
|
+
|
|
1120
|
+
"""Non-fatal warnings"""
|
|
1121
|
+
warnings: [CartWarning!]!
|
|
944
1122
|
}
|
|
945
1123
|
|
|
946
|
-
"""Cart
|
|
947
|
-
|
|
948
|
-
"""
|
|
949
|
-
|
|
1124
|
+
"""Cart warning (non-fatal advisory)"""
|
|
1125
|
+
type CartWarning {
|
|
1126
|
+
"""Typed warning code"""
|
|
1127
|
+
code: CartWarningCode!
|
|
950
1128
|
|
|
951
|
-
"""
|
|
952
|
-
|
|
1129
|
+
"""Warning message"""
|
|
1130
|
+
message: String!
|
|
953
1131
|
|
|
954
|
-
"""
|
|
955
|
-
|
|
1132
|
+
"""Target identifier (cart line ID lub field path)"""
|
|
1133
|
+
target: String!
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
"""Non-fatal cart warnings"""
|
|
1137
|
+
enum CartWarningCode {
|
|
1138
|
+
MERCHANDISE_NOT_AVAILABLE
|
|
1139
|
+
MERCHANDISE_NOT_ENOUGH_STOCK
|
|
1140
|
+
PAYMENTS_AMOUNT_REGION_MISMATCH
|
|
956
1141
|
}
|
|
957
1142
|
|
|
958
1143
|
"""Product category - hierarchical organization"""
|
|
@@ -1018,6 +1203,12 @@ type CategoryEdge {
|
|
|
1018
1203
|
node: Category!
|
|
1019
1204
|
}
|
|
1020
1205
|
|
|
1206
|
+
"""Category filter"""
|
|
1207
|
+
input CategoryFilter {
|
|
1208
|
+
"""Category ID"""
|
|
1209
|
+
id: ID
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1021
1212
|
"""Category filter option"""
|
|
1022
1213
|
type CategoryFilterOption {
|
|
1023
1214
|
"""Category ID"""
|
|
@@ -1062,12 +1253,12 @@ type Checkout {
|
|
|
1062
1253
|
"""Billing address"""
|
|
1063
1254
|
billingAddress: MailingAddress
|
|
1064
1255
|
|
|
1065
|
-
"""Whether checkout is completed"""
|
|
1066
|
-
completed: Boolean!
|
|
1067
|
-
|
|
1068
1256
|
"""Completed order ID"""
|
|
1069
1257
|
completedOrderId: String
|
|
1070
1258
|
|
|
1259
|
+
"""Cost breakdown (subtotal/total/totalTax/totalShipping/totalDiscounts)"""
|
|
1260
|
+
cost: CheckoutCost!
|
|
1261
|
+
|
|
1071
1262
|
"""Created at"""
|
|
1072
1263
|
createdAt: DateTime!
|
|
1073
1264
|
|
|
@@ -1089,6 +1280,12 @@ type Checkout {
|
|
|
1089
1280
|
"""Checkout ID"""
|
|
1090
1281
|
id: ID!
|
|
1091
1282
|
|
|
1283
|
+
"""Whether checkout is completed"""
|
|
1284
|
+
isCompleted: Boolean!
|
|
1285
|
+
|
|
1286
|
+
"""Whether checkout is ready for payment"""
|
|
1287
|
+
isReady: Boolean!
|
|
1288
|
+
|
|
1092
1289
|
"""Line items"""
|
|
1093
1290
|
lineItems: [CheckoutLineItem!]!
|
|
1094
1291
|
|
|
@@ -1101,9 +1298,6 @@ type Checkout {
|
|
|
1101
1298
|
"""Customer phone"""
|
|
1102
1299
|
phone: String
|
|
1103
1300
|
|
|
1104
|
-
"""Whether checkout is ready for payment"""
|
|
1105
|
-
ready: Boolean!
|
|
1106
|
-
|
|
1107
1301
|
"""Selected payment method ID (Requirements: R23.5)"""
|
|
1108
1302
|
selectedPaymentMethodId: ID
|
|
1109
1303
|
|
|
@@ -1116,30 +1310,15 @@ type Checkout {
|
|
|
1116
1310
|
"""Whether shipping rates are ready"""
|
|
1117
1311
|
shippingRatesReady: Boolean!
|
|
1118
1312
|
|
|
1119
|
-
"""Subtotal before discounts and taxes"""
|
|
1120
|
-
subtotalPrice: Money!
|
|
1121
|
-
|
|
1122
1313
|
"""Tax breakdown"""
|
|
1123
1314
|
taxLines: [TaxLine!]!
|
|
1124
1315
|
|
|
1125
|
-
"""Total discount amount"""
|
|
1126
|
-
totalDiscounts: Money!
|
|
1127
|
-
|
|
1128
1316
|
"""Total amount covered by gift cards"""
|
|
1129
1317
|
totalGiftCardAmount: Money!
|
|
1130
1318
|
|
|
1131
|
-
"""Total price"""
|
|
1132
|
-
totalPrice: Money!
|
|
1133
|
-
|
|
1134
1319
|
"""Total quantity"""
|
|
1135
1320
|
totalQuantity: Float!
|
|
1136
1321
|
|
|
1137
|
-
"""Total shipping price"""
|
|
1138
|
-
totalShippingPrice: Money!
|
|
1139
|
-
|
|
1140
|
-
"""Total tax amount"""
|
|
1141
|
-
totalTax: Money!
|
|
1142
|
-
|
|
1143
1322
|
"""Updated at"""
|
|
1144
1323
|
updatedAt: DateTime!
|
|
1145
1324
|
|
|
@@ -1149,20 +1328,14 @@ type Checkout {
|
|
|
1149
1328
|
|
|
1150
1329
|
"""Mailing address input"""
|
|
1151
1330
|
input CheckoutAddressInput {
|
|
1152
|
-
"""Address line 1"""
|
|
1153
|
-
address1: String!
|
|
1154
|
-
|
|
1155
|
-
"""Address line 2"""
|
|
1156
|
-
address2: String
|
|
1157
|
-
|
|
1158
1331
|
"""City"""
|
|
1159
1332
|
city: String!
|
|
1160
1333
|
|
|
1161
1334
|
"""Company name"""
|
|
1162
1335
|
company: String
|
|
1163
1336
|
|
|
1164
|
-
"""
|
|
1165
|
-
country:
|
|
1337
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
1338
|
+
country: CountryCode!
|
|
1166
1339
|
|
|
1167
1340
|
"""First name"""
|
|
1168
1341
|
firstName: String
|
|
@@ -1173,20 +1346,39 @@ input CheckoutAddressInput {
|
|
|
1173
1346
|
"""Phone number"""
|
|
1174
1347
|
phone: String
|
|
1175
1348
|
|
|
1176
|
-
"""
|
|
1177
|
-
|
|
1349
|
+
"""Postal / ZIP code"""
|
|
1350
|
+
postalCode: String!
|
|
1351
|
+
|
|
1352
|
+
"""State / province"""
|
|
1353
|
+
state: String
|
|
1354
|
+
|
|
1355
|
+
"""First line of street address"""
|
|
1356
|
+
streetLine1: String!
|
|
1178
1357
|
|
|
1179
|
-
"""
|
|
1180
|
-
|
|
1358
|
+
"""Second line of street address"""
|
|
1359
|
+
streetLine2: String
|
|
1181
1360
|
}
|
|
1182
1361
|
|
|
1183
|
-
"""Checkout
|
|
1184
|
-
type
|
|
1362
|
+
"""Checkout discount code apply payload"""
|
|
1363
|
+
type CheckoutApplyDiscountCodePayload {
|
|
1185
1364
|
"""Updated checkout"""
|
|
1186
1365
|
checkout: Checkout
|
|
1187
1366
|
|
|
1188
|
-
"""
|
|
1189
|
-
|
|
1367
|
+
"""
|
|
1368
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1369
|
+
"""
|
|
1370
|
+
userErrors: [UserError!]!
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
"""Checkout gift card apply payload"""
|
|
1374
|
+
type CheckoutApplyGiftCardPayload {
|
|
1375
|
+
"""Updated checkout"""
|
|
1376
|
+
checkout: Checkout
|
|
1377
|
+
|
|
1378
|
+
"""
|
|
1379
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1380
|
+
"""
|
|
1381
|
+
userErrors: [UserError!]!
|
|
1190
1382
|
}
|
|
1191
1383
|
|
|
1192
1384
|
"""Checkout complete input"""
|
|
@@ -1209,8 +1401,28 @@ type CheckoutCompletePayload {
|
|
|
1209
1401
|
"""Payment redirect URL (if payment required)"""
|
|
1210
1402
|
paymentUrl: String
|
|
1211
1403
|
|
|
1212
|
-
"""
|
|
1213
|
-
|
|
1404
|
+
"""
|
|
1405
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1406
|
+
"""
|
|
1407
|
+
userErrors: [UserError!]!
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
"""Checkout cost breakdown"""
|
|
1411
|
+
type CheckoutCost {
|
|
1412
|
+
"""Subtotal before discounts and taxes"""
|
|
1413
|
+
subtotal: Money!
|
|
1414
|
+
|
|
1415
|
+
"""Total amount (after discounts, including taxes and shipping)"""
|
|
1416
|
+
total: Money!
|
|
1417
|
+
|
|
1418
|
+
"""Total discount amount"""
|
|
1419
|
+
totalDiscounts: Money!
|
|
1420
|
+
|
|
1421
|
+
"""Total shipping cost"""
|
|
1422
|
+
totalShipping: Money!
|
|
1423
|
+
|
|
1424
|
+
"""Total tax amount"""
|
|
1425
|
+
totalTax: Money!
|
|
1214
1426
|
}
|
|
1215
1427
|
|
|
1216
1428
|
"""Checkout create input"""
|
|
@@ -1239,80 +1451,10 @@ type CheckoutCreatePayload {
|
|
|
1239
1451
|
"""Created checkout"""
|
|
1240
1452
|
checkout: Checkout
|
|
1241
1453
|
|
|
1242
|
-
"""
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
"""Checkout discount code apply payload"""
|
|
1247
|
-
type CheckoutDiscountCodeApplyPayload {
|
|
1248
|
-
"""Updated checkout"""
|
|
1249
|
-
checkout: Checkout
|
|
1250
|
-
|
|
1251
|
-
"""User errors"""
|
|
1252
|
-
userErrors: [CheckoutUserError!]!
|
|
1253
|
-
}
|
|
1254
|
-
|
|
1255
|
-
"""Checkout discount code remove payload"""
|
|
1256
|
-
type CheckoutDiscountCodeRemovePayload {
|
|
1257
|
-
"""Updated checkout"""
|
|
1258
|
-
checkout: Checkout
|
|
1259
|
-
|
|
1260
|
-
"""User errors"""
|
|
1261
|
-
userErrors: [CheckoutUserError!]!
|
|
1262
|
-
}
|
|
1263
|
-
|
|
1264
|
-
"""Checkout discount code validation result"""
|
|
1265
|
-
type CheckoutDiscountCodeValidatePayload {
|
|
1266
|
-
"""Validation result"""
|
|
1267
|
-
result: DiscountValidationResult!
|
|
1268
|
-
|
|
1269
|
-
"""User errors (for checkout-level issues)"""
|
|
1270
|
-
userErrors: [CheckoutUserError!]!
|
|
1271
|
-
}
|
|
1272
|
-
|
|
1273
|
-
"""Checkout email update payload"""
|
|
1274
|
-
type CheckoutEmailUpdatePayload {
|
|
1275
|
-
"""Updated checkout"""
|
|
1276
|
-
checkout: Checkout
|
|
1277
|
-
|
|
1278
|
-
"""User errors"""
|
|
1279
|
-
userErrors: [CheckoutUserError!]!
|
|
1280
|
-
}
|
|
1281
|
-
|
|
1282
|
-
"""Checkout error codes"""
|
|
1283
|
-
enum CheckoutErrorCode {
|
|
1284
|
-
ALREADY_COMPLETED
|
|
1285
|
-
BLANK
|
|
1286
|
-
CART_NOT_FOUND
|
|
1287
|
-
CHECKOUT_NOT_FOUND
|
|
1288
|
-
CUSTOMER_ALREADY_USED_ONCE_PER_CUSTOMER_DISCOUNT_NOTICE
|
|
1289
|
-
DISCOUNT_DISABLED
|
|
1290
|
-
DISCOUNT_LIMIT_REACHED
|
|
1291
|
-
DISCOUNT_NOT_FOUND
|
|
1292
|
-
EMPTY_CART
|
|
1293
|
-
GIFT_CARD_DEPLETED
|
|
1294
|
-
GIFT_CARD_DISABLED
|
|
1295
|
-
GIFT_CARD_EXPIRED
|
|
1296
|
-
GIFT_CARD_NOT_FOUND
|
|
1297
|
-
GIFT_CARD_UNUSABLE
|
|
1298
|
-
INVALID
|
|
1299
|
-
INVALID_PAYMENT_METHOD
|
|
1300
|
-
INVALID_SHIPPING_ADDRESS
|
|
1301
|
-
LINE_ITEM_NOT_FOUND
|
|
1302
|
-
MISSING_SHIPPING_METHOD
|
|
1303
|
-
NOT_ENOUGH_IN_STOCK
|
|
1304
|
-
NO_PAYMENT_METHODS
|
|
1305
|
-
SHIPPING_RATE_EXPIRED
|
|
1306
|
-
TOO_LONG
|
|
1307
|
-
}
|
|
1308
|
-
|
|
1309
|
-
"""Checkout gift card apply payload"""
|
|
1310
|
-
type CheckoutGiftCardApplyPayload {
|
|
1311
|
-
"""Updated checkout"""
|
|
1312
|
-
checkout: Checkout
|
|
1313
|
-
|
|
1314
|
-
"""User errors"""
|
|
1315
|
-
userErrors: [CheckoutUserError!]!
|
|
1454
|
+
"""
|
|
1455
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1456
|
+
"""
|
|
1457
|
+
userErrors: [UserError!]!
|
|
1316
1458
|
}
|
|
1317
1459
|
|
|
1318
1460
|
"""Gift card recipient input"""
|
|
@@ -1333,24 +1475,6 @@ input CheckoutGiftCardRecipientInput {
|
|
|
1333
1475
|
recipientName: String
|
|
1334
1476
|
}
|
|
1335
1477
|
|
|
1336
|
-
"""Checkout gift card recipient update payload"""
|
|
1337
|
-
type CheckoutGiftCardRecipientUpdatePayload {
|
|
1338
|
-
"""Updated checkout"""
|
|
1339
|
-
checkout: Checkout
|
|
1340
|
-
|
|
1341
|
-
"""User errors"""
|
|
1342
|
-
userErrors: [CheckoutUserError!]!
|
|
1343
|
-
}
|
|
1344
|
-
|
|
1345
|
-
"""Checkout gift card remove payload"""
|
|
1346
|
-
type CheckoutGiftCardRemovePayload {
|
|
1347
|
-
"""Updated checkout"""
|
|
1348
|
-
checkout: Checkout
|
|
1349
|
-
|
|
1350
|
-
"""User errors"""
|
|
1351
|
-
userErrors: [CheckoutUserError!]!
|
|
1352
|
-
}
|
|
1353
|
-
|
|
1354
1478
|
"""Checkout line item"""
|
|
1355
1479
|
type CheckoutLineItem {
|
|
1356
1480
|
"""Line item ID"""
|
|
@@ -1359,6 +1483,9 @@ type CheckoutLineItem {
|
|
|
1359
1483
|
"""Product image"""
|
|
1360
1484
|
image: Image
|
|
1361
1485
|
|
|
1486
|
+
"""Price per unit"""
|
|
1487
|
+
pricePerUnit: Money!
|
|
1488
|
+
|
|
1362
1489
|
"""Product ID"""
|
|
1363
1490
|
productId: String
|
|
1364
1491
|
|
|
@@ -1371,11 +1498,8 @@ type CheckoutLineItem {
|
|
|
1371
1498
|
"""Product title"""
|
|
1372
1499
|
title: String!
|
|
1373
1500
|
|
|
1374
|
-
"""Total price"""
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
"""Unit price"""
|
|
1378
|
-
unitPrice: Money!
|
|
1501
|
+
"""Total price for this line"""
|
|
1502
|
+
total: Money!
|
|
1379
1503
|
|
|
1380
1504
|
"""Product variant"""
|
|
1381
1505
|
variant: ProductVariant
|
|
@@ -1396,47 +1520,107 @@ input CheckoutLineItemInput {
|
|
|
1396
1520
|
variantId: ID!
|
|
1397
1521
|
}
|
|
1398
1522
|
|
|
1399
|
-
"""Checkout
|
|
1400
|
-
type
|
|
1523
|
+
"""Checkout discount code remove payload"""
|
|
1524
|
+
type CheckoutRemoveDiscountCodePayload {
|
|
1401
1525
|
"""Updated checkout"""
|
|
1402
1526
|
checkout: Checkout
|
|
1403
1527
|
|
|
1404
|
-
"""
|
|
1405
|
-
|
|
1528
|
+
"""
|
|
1529
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1530
|
+
"""
|
|
1531
|
+
userErrors: [UserError!]!
|
|
1406
1532
|
}
|
|
1407
1533
|
|
|
1408
|
-
"""Checkout
|
|
1409
|
-
type
|
|
1534
|
+
"""Checkout gift card remove payload"""
|
|
1535
|
+
type CheckoutRemoveGiftCardPayload {
|
|
1410
1536
|
"""Updated checkout"""
|
|
1411
1537
|
checkout: Checkout
|
|
1412
1538
|
|
|
1413
|
-
"""
|
|
1414
|
-
|
|
1539
|
+
"""
|
|
1540
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1541
|
+
"""
|
|
1542
|
+
userErrors: [UserError!]!
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
"""Checkout payment method update payload"""
|
|
1546
|
+
type CheckoutSelectPaymentMethodPayload {
|
|
1547
|
+
"""Updated checkout"""
|
|
1548
|
+
checkout: Checkout
|
|
1549
|
+
|
|
1550
|
+
"""
|
|
1551
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1552
|
+
"""
|
|
1553
|
+
userErrors: [UserError!]!
|
|
1415
1554
|
}
|
|
1416
1555
|
|
|
1417
1556
|
"""Checkout shipping line update payload"""
|
|
1418
|
-
type
|
|
1557
|
+
type CheckoutSelectShippingRatePayload {
|
|
1419
1558
|
"""Updated checkout"""
|
|
1420
1559
|
checkout: Checkout
|
|
1421
1560
|
|
|
1422
|
-
"""
|
|
1423
|
-
|
|
1561
|
+
"""
|
|
1562
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1563
|
+
"""
|
|
1564
|
+
userErrors: [UserError!]!
|
|
1424
1565
|
}
|
|
1425
1566
|
|
|
1426
|
-
"""Checkout
|
|
1427
|
-
type
|
|
1428
|
-
"""
|
|
1429
|
-
|
|
1567
|
+
"""Checkout billing address update payload"""
|
|
1568
|
+
type CheckoutUpdateBillingAddressPayload {
|
|
1569
|
+
"""Updated checkout"""
|
|
1570
|
+
checkout: Checkout
|
|
1430
1571
|
|
|
1431
|
-
"""
|
|
1432
|
-
|
|
1572
|
+
"""
|
|
1573
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1574
|
+
"""
|
|
1575
|
+
userErrors: [UserError!]!
|
|
1576
|
+
}
|
|
1433
1577
|
|
|
1434
|
-
|
|
1435
|
-
|
|
1578
|
+
"""Checkout email update payload"""
|
|
1579
|
+
type CheckoutUpdateEmailPayload {
|
|
1580
|
+
"""Updated checkout"""
|
|
1581
|
+
checkout: Checkout
|
|
1582
|
+
|
|
1583
|
+
"""
|
|
1584
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1585
|
+
"""
|
|
1586
|
+
userErrors: [UserError!]!
|
|
1587
|
+
}
|
|
1588
|
+
|
|
1589
|
+
"""Checkout gift card recipient update payload"""
|
|
1590
|
+
type CheckoutUpdateGiftCardRecipientPayload {
|
|
1591
|
+
"""Updated checkout"""
|
|
1592
|
+
checkout: Checkout
|
|
1593
|
+
|
|
1594
|
+
"""
|
|
1595
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1596
|
+
"""
|
|
1597
|
+
userErrors: [UserError!]!
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
"""Checkout shipping address update payload"""
|
|
1601
|
+
type CheckoutUpdateShippingAddressPayload {
|
|
1602
|
+
"""Updated checkout"""
|
|
1603
|
+
checkout: Checkout
|
|
1604
|
+
|
|
1605
|
+
"""
|
|
1606
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1607
|
+
"""
|
|
1608
|
+
userErrors: [UserError!]!
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
"""Checkout discount code validation result"""
|
|
1612
|
+
type CheckoutValidateDiscountCodePayload {
|
|
1613
|
+
"""Validation result"""
|
|
1614
|
+
result: DiscountValidationResult!
|
|
1615
|
+
|
|
1616
|
+
"""
|
|
1617
|
+
User errors (for checkout-level issues; code is namespaced — e.g. CHECKOUT_NOT_FOUND)
|
|
1618
|
+
"""
|
|
1619
|
+
userErrors: [UserError!]!
|
|
1436
1620
|
}
|
|
1437
1621
|
|
|
1438
1622
|
"""Collection - curated group of products"""
|
|
1439
|
-
type Collection {
|
|
1623
|
+
type Collection implements Node {
|
|
1440
1624
|
"""Creation timestamp"""
|
|
1441
1625
|
createdAt: DateTime!
|
|
1442
1626
|
|
|
@@ -1456,7 +1640,7 @@ type Collection {
|
|
|
1456
1640
|
image: Image
|
|
1457
1641
|
|
|
1458
1642
|
"""Products in collection"""
|
|
1459
|
-
products(after: String, first: Int
|
|
1643
|
+
products(after: String, before: String, filters: [ProductFilter!], first: Int, last: Int, reverse: Boolean = false, sortKey: ProductSortKeys = BEST_SELLING): ProductConnection!
|
|
1460
1644
|
|
|
1461
1645
|
"""SEO metadata"""
|
|
1462
1646
|
seo: SEO
|
|
@@ -1503,6 +1687,12 @@ enum CompensationType {
|
|
|
1503
1687
|
STORE_CREDIT
|
|
1504
1688
|
}
|
|
1505
1689
|
|
|
1690
|
+
"""Format of stored content (HTML or MARKDOWN)"""
|
|
1691
|
+
enum ContentFormat {
|
|
1692
|
+
HTML
|
|
1693
|
+
MARKDOWN
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1506
1696
|
"""Price range in converted currency"""
|
|
1507
1697
|
type ConvertedPriceRange {
|
|
1508
1698
|
"""Maximum variant price (converted)"""
|
|
@@ -1512,6 +1702,68 @@ type ConvertedPriceRange {
|
|
|
1512
1702
|
minVariantPrice: PriceMoney!
|
|
1513
1703
|
}
|
|
1514
1704
|
|
|
1705
|
+
"""Wspierany kraj sklepu (ISO 3166-1 alpha-2)"""
|
|
1706
|
+
type Country implements Node {
|
|
1707
|
+
"""Języki wspierane przez sklep dostępne w tym kraju"""
|
|
1708
|
+
availableLanguages: [Language!]!
|
|
1709
|
+
|
|
1710
|
+
"""Primary currency w tym kraju"""
|
|
1711
|
+
currency: Currency!
|
|
1712
|
+
|
|
1713
|
+
"""Globally-unique identifier (np. "country:PL")"""
|
|
1714
|
+
id: ID!
|
|
1715
|
+
|
|
1716
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
1717
|
+
isoCode: CountryCode!
|
|
1718
|
+
|
|
1719
|
+
"""English name kraju (np. "Poland", "Germany")"""
|
|
1720
|
+
name: String!
|
|
1721
|
+
|
|
1722
|
+
"""System jednostek (metric/imperial)"""
|
|
1723
|
+
unitSystem: UnitSystem!
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
1727
|
+
enum CountryCode {
|
|
1728
|
+
AT
|
|
1729
|
+
AU
|
|
1730
|
+
BE
|
|
1731
|
+
BG
|
|
1732
|
+
CA
|
|
1733
|
+
CH
|
|
1734
|
+
CY
|
|
1735
|
+
CZ
|
|
1736
|
+
DE
|
|
1737
|
+
DK
|
|
1738
|
+
EE
|
|
1739
|
+
ES
|
|
1740
|
+
FI
|
|
1741
|
+
FR
|
|
1742
|
+
GB
|
|
1743
|
+
GR
|
|
1744
|
+
HR
|
|
1745
|
+
HU
|
|
1746
|
+
IE
|
|
1747
|
+
IS
|
|
1748
|
+
IT
|
|
1749
|
+
LI
|
|
1750
|
+
LT
|
|
1751
|
+
LU
|
|
1752
|
+
LV
|
|
1753
|
+
MT
|
|
1754
|
+
NL
|
|
1755
|
+
NO
|
|
1756
|
+
NZ
|
|
1757
|
+
PL
|
|
1758
|
+
PT
|
|
1759
|
+
RO
|
|
1760
|
+
SE
|
|
1761
|
+
SI
|
|
1762
|
+
SK
|
|
1763
|
+
US
|
|
1764
|
+
ZZ
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1515
1767
|
"""Region to crop the image"""
|
|
1516
1768
|
enum CropRegion {
|
|
1517
1769
|
BOTTOM
|
|
@@ -1524,7 +1776,7 @@ enum CropRegion {
|
|
|
1524
1776
|
"""Currency information"""
|
|
1525
1777
|
type Currency {
|
|
1526
1778
|
"""ISO 4217 currency code"""
|
|
1527
|
-
code:
|
|
1779
|
+
code: CurrencyCode!
|
|
1528
1780
|
|
|
1529
1781
|
"""Number of decimal places"""
|
|
1530
1782
|
decimalPlaces: Float!
|
|
@@ -1535,8 +1787,179 @@ type Currency {
|
|
|
1535
1787
|
"""Currency symbol"""
|
|
1536
1788
|
symbol: String!
|
|
1537
1789
|
|
|
1538
|
-
"""Symbol position relative to amount
|
|
1539
|
-
symbolPosition:
|
|
1790
|
+
"""Symbol position relative to amount"""
|
|
1791
|
+
symbolPosition: CurrencySymbolPosition!
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
"""ISO 4217 currency code"""
|
|
1795
|
+
enum CurrencyCode {
|
|
1796
|
+
AED
|
|
1797
|
+
AFN
|
|
1798
|
+
ALL
|
|
1799
|
+
AMD
|
|
1800
|
+
ANG
|
|
1801
|
+
AOA
|
|
1802
|
+
ARS
|
|
1803
|
+
AUD
|
|
1804
|
+
AWG
|
|
1805
|
+
AZN
|
|
1806
|
+
BAM
|
|
1807
|
+
BBD
|
|
1808
|
+
BDT
|
|
1809
|
+
BGN
|
|
1810
|
+
BHD
|
|
1811
|
+
BIF
|
|
1812
|
+
BMD
|
|
1813
|
+
BND
|
|
1814
|
+
BOB
|
|
1815
|
+
BOV
|
|
1816
|
+
BRL
|
|
1817
|
+
BSD
|
|
1818
|
+
BTN
|
|
1819
|
+
BWP
|
|
1820
|
+
BYN
|
|
1821
|
+
BZD
|
|
1822
|
+
CAD
|
|
1823
|
+
CDF
|
|
1824
|
+
CHE
|
|
1825
|
+
CHF
|
|
1826
|
+
CHW
|
|
1827
|
+
CLF
|
|
1828
|
+
CLP
|
|
1829
|
+
CNY
|
|
1830
|
+
COP
|
|
1831
|
+
COU
|
|
1832
|
+
CRC
|
|
1833
|
+
CUC
|
|
1834
|
+
CUP
|
|
1835
|
+
CVE
|
|
1836
|
+
CZK
|
|
1837
|
+
DJF
|
|
1838
|
+
DKK
|
|
1839
|
+
DOP
|
|
1840
|
+
DZD
|
|
1841
|
+
EGP
|
|
1842
|
+
ERN
|
|
1843
|
+
ETB
|
|
1844
|
+
EUR
|
|
1845
|
+
FJD
|
|
1846
|
+
FKP
|
|
1847
|
+
GBP
|
|
1848
|
+
GEL
|
|
1849
|
+
GHS
|
|
1850
|
+
GIP
|
|
1851
|
+
GMD
|
|
1852
|
+
GNF
|
|
1853
|
+
GTQ
|
|
1854
|
+
GYD
|
|
1855
|
+
HKD
|
|
1856
|
+
HNL
|
|
1857
|
+
HTG
|
|
1858
|
+
HUF
|
|
1859
|
+
IDR
|
|
1860
|
+
ILS
|
|
1861
|
+
INR
|
|
1862
|
+
IQD
|
|
1863
|
+
IRR
|
|
1864
|
+
ISK
|
|
1865
|
+
JMD
|
|
1866
|
+
JOD
|
|
1867
|
+
JPY
|
|
1868
|
+
KES
|
|
1869
|
+
KGS
|
|
1870
|
+
KHR
|
|
1871
|
+
KMF
|
|
1872
|
+
KPW
|
|
1873
|
+
KRW
|
|
1874
|
+
KWD
|
|
1875
|
+
KYD
|
|
1876
|
+
KZT
|
|
1877
|
+
LAK
|
|
1878
|
+
LBP
|
|
1879
|
+
LKR
|
|
1880
|
+
LRD
|
|
1881
|
+
LSL
|
|
1882
|
+
LYD
|
|
1883
|
+
MAD
|
|
1884
|
+
MDL
|
|
1885
|
+
MGA
|
|
1886
|
+
MKD
|
|
1887
|
+
MMK
|
|
1888
|
+
MNT
|
|
1889
|
+
MOP
|
|
1890
|
+
MRU
|
|
1891
|
+
MUR
|
|
1892
|
+
MVR
|
|
1893
|
+
MWK
|
|
1894
|
+
MXN
|
|
1895
|
+
MXV
|
|
1896
|
+
MYR
|
|
1897
|
+
MZN
|
|
1898
|
+
NAD
|
|
1899
|
+
NGN
|
|
1900
|
+
NIO
|
|
1901
|
+
NOK
|
|
1902
|
+
NPR
|
|
1903
|
+
NZD
|
|
1904
|
+
OMR
|
|
1905
|
+
PAB
|
|
1906
|
+
PEN
|
|
1907
|
+
PGK
|
|
1908
|
+
PHP
|
|
1909
|
+
PKR
|
|
1910
|
+
PLN
|
|
1911
|
+
PYG
|
|
1912
|
+
QAR
|
|
1913
|
+
RON
|
|
1914
|
+
RSD
|
|
1915
|
+
RUB
|
|
1916
|
+
RWF
|
|
1917
|
+
SAR
|
|
1918
|
+
SBD
|
|
1919
|
+
SCR
|
|
1920
|
+
SDG
|
|
1921
|
+
SEK
|
|
1922
|
+
SGD
|
|
1923
|
+
SHP
|
|
1924
|
+
SLE
|
|
1925
|
+
SOS
|
|
1926
|
+
SRD
|
|
1927
|
+
SSP
|
|
1928
|
+
STN
|
|
1929
|
+
SVC
|
|
1930
|
+
SYP
|
|
1931
|
+
SZL
|
|
1932
|
+
THB
|
|
1933
|
+
TJS
|
|
1934
|
+
TMT
|
|
1935
|
+
TND
|
|
1936
|
+
TOP
|
|
1937
|
+
TRY
|
|
1938
|
+
TTD
|
|
1939
|
+
TWD
|
|
1940
|
+
TZS
|
|
1941
|
+
UAH
|
|
1942
|
+
UGX
|
|
1943
|
+
USD
|
|
1944
|
+
USN
|
|
1945
|
+
UYI
|
|
1946
|
+
UYU
|
|
1947
|
+
UYW
|
|
1948
|
+
UZS
|
|
1949
|
+
VED
|
|
1950
|
+
VES
|
|
1951
|
+
VND
|
|
1952
|
+
VUV
|
|
1953
|
+
WST
|
|
1954
|
+
XAF
|
|
1955
|
+
XCD
|
|
1956
|
+
XOF
|
|
1957
|
+
XPF
|
|
1958
|
+
XXX
|
|
1959
|
+
YER
|
|
1960
|
+
ZAR
|
|
1961
|
+
ZMW
|
|
1962
|
+
ZWG
|
|
1540
1963
|
}
|
|
1541
1964
|
|
|
1542
1965
|
"""Currency conversion result"""
|
|
@@ -1576,14 +1999,26 @@ enum CurrencyRateSource {
|
|
|
1576
1999
|
MANUAL
|
|
1577
2000
|
}
|
|
1578
2001
|
|
|
2002
|
+
"""Whether the currency symbol renders before or after the amount."""
|
|
2003
|
+
enum CurrencySymbolPosition {
|
|
2004
|
+
AFTER
|
|
2005
|
+
BEFORE
|
|
2006
|
+
}
|
|
2007
|
+
|
|
1579
2008
|
"""Customer - registered user"""
|
|
1580
|
-
type Customer {
|
|
1581
|
-
"""Saved addresses"""
|
|
1582
|
-
addresses(first: Int
|
|
2009
|
+
type Customer implements Node {
|
|
2010
|
+
"""Saved addresses (Relay Connection)"""
|
|
2011
|
+
addresses(after: String, before: String, first: Int, last: Int): MailingAddressConnection!
|
|
2012
|
+
|
|
2013
|
+
"""Company name (populated for COMPANY type)"""
|
|
2014
|
+
companyName: String
|
|
1583
2015
|
|
|
1584
2016
|
"""Account creation date"""
|
|
1585
2017
|
createdAt: DateTime!
|
|
1586
2018
|
|
|
2019
|
+
"""Business type discriminator (INDIVIDUAL/COMPANY)"""
|
|
2020
|
+
customerType: CustomerType!
|
|
2021
|
+
|
|
1587
2022
|
"""Default address"""
|
|
1588
2023
|
defaultAddress: MailingAddress
|
|
1589
2024
|
|
|
@@ -1594,10 +2029,7 @@ type Customer {
|
|
|
1594
2029
|
email: String!
|
|
1595
2030
|
|
|
1596
2031
|
"""Email marketing consent state"""
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
"""Whether email is verified"""
|
|
1600
|
-
emailVerified: Boolean!
|
|
2032
|
+
emailMarketing: EmailMarketingState!
|
|
1601
2033
|
|
|
1602
2034
|
"""First name"""
|
|
1603
2035
|
firstName: String
|
|
@@ -1605,23 +2037,38 @@ type Customer {
|
|
|
1605
2037
|
"""Unique identifier"""
|
|
1606
2038
|
id: ID!
|
|
1607
2039
|
|
|
2040
|
+
"""Whether email is verified"""
|
|
2041
|
+
isEmailVerified: Boolean!
|
|
2042
|
+
|
|
1608
2043
|
"""Last name"""
|
|
1609
2044
|
lastName: String
|
|
1610
2045
|
|
|
2046
|
+
"""Total orders count (UnsignedInt64 — BigInt-safe)"""
|
|
2047
|
+
orderCount: UnsignedInt64!
|
|
2048
|
+
|
|
1611
2049
|
"""Customer orders"""
|
|
1612
2050
|
orders(after: String, first: Int = 10): OrderConnection!
|
|
1613
2051
|
|
|
1614
|
-
"""Total orders count"""
|
|
1615
|
-
ordersCount: Int!
|
|
1616
|
-
|
|
1617
2052
|
"""Phone number"""
|
|
1618
2053
|
phone: String
|
|
1619
2054
|
|
|
2055
|
+
"""Polish business registry number — REGON"""
|
|
2056
|
+
regon: String
|
|
2057
|
+
|
|
2058
|
+
"""Customer tags for segmentation (e.g. vip, wholesale, b2b)"""
|
|
2059
|
+
tags: [String!]!
|
|
2060
|
+
|
|
2061
|
+
"""Polish tax ID — NIP"""
|
|
2062
|
+
taxId: String
|
|
2063
|
+
|
|
1620
2064
|
"""Total amount spent"""
|
|
1621
2065
|
totalSpent: Money!
|
|
1622
2066
|
|
|
1623
2067
|
"""Last update date"""
|
|
1624
2068
|
updatedAt: DateTime!
|
|
2069
|
+
|
|
2070
|
+
"""EU VAT number"""
|
|
2071
|
+
vatNumber: String
|
|
1625
2072
|
}
|
|
1626
2073
|
|
|
1627
2074
|
"""Customer access token"""
|
|
@@ -1629,8 +2076,8 @@ type CustomerAccessToken {
|
|
|
1629
2076
|
"""Access token string"""
|
|
1630
2077
|
accessToken: String!
|
|
1631
2078
|
|
|
1632
|
-
"""Token expiration"""
|
|
1633
|
-
expiresAt:
|
|
2079
|
+
"""Token expiration (ISO 8601)"""
|
|
2080
|
+
expiresAt: DateTime!
|
|
1634
2081
|
}
|
|
1635
2082
|
|
|
1636
2083
|
"""Input for customer login"""
|
|
@@ -1642,65 +2089,40 @@ input CustomerAccessTokenCreateInput {
|
|
|
1642
2089
|
password: String!
|
|
1643
2090
|
}
|
|
1644
2091
|
|
|
1645
|
-
"""
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
userErrors: [UserError!]!
|
|
1652
|
-
}
|
|
1653
|
-
|
|
1654
|
-
"""Result of token deletion (logout)"""
|
|
1655
|
-
type CustomerAccessTokenDeletePayload {
|
|
1656
|
-
"""Deleted access token"""
|
|
1657
|
-
deletedAccessToken: String
|
|
1658
|
-
|
|
1659
|
-
"""Deleted token ID"""
|
|
1660
|
-
deletedCustomerAccessTokenId: String
|
|
1661
|
-
|
|
1662
|
-
"""User errors"""
|
|
1663
|
-
userErrors: [UserError!]!
|
|
1664
|
-
}
|
|
2092
|
+
"""
|
|
2093
|
+
Result of customerActivateByUrl mutation — admin-created customer sets initial password
|
|
2094
|
+
"""
|
|
2095
|
+
type CustomerActivatePayload {
|
|
2096
|
+
"""Activated customer"""
|
|
2097
|
+
customer: Customer
|
|
1665
2098
|
|
|
1666
|
-
"""
|
|
1667
|
-
type CustomerAccessTokenRenewPayload {
|
|
1668
|
-
"""New access token"""
|
|
2099
|
+
"""Auto-login access token"""
|
|
1669
2100
|
customerAccessToken: CustomerAccessToken
|
|
1670
2101
|
|
|
1671
|
-
"""
|
|
2102
|
+
"""
|
|
2103
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2104
|
+
"""
|
|
1672
2105
|
userErrors: [UserError!]!
|
|
1673
2106
|
}
|
|
1674
2107
|
|
|
1675
2108
|
"""Result of address creation"""
|
|
1676
|
-
type
|
|
2109
|
+
type CustomerAddAddressPayload {
|
|
1677
2110
|
"""Created address"""
|
|
1678
2111
|
address: MailingAddress
|
|
1679
2112
|
|
|
1680
|
-
"""
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
"""Result of address deletion"""
|
|
1685
|
-
type CustomerAddressDeletePayload {
|
|
1686
|
-
"""Deleted address ID"""
|
|
1687
|
-
deletedAddressId: ID
|
|
1688
|
-
|
|
1689
|
-
"""User errors"""
|
|
1690
|
-
userErrors: [UserError!]!
|
|
1691
|
-
}
|
|
1692
|
-
|
|
1693
|
-
"""Result of address update"""
|
|
1694
|
-
type CustomerAddressUpdatePayload {
|
|
1695
|
-
"""Updated address"""
|
|
1696
|
-
address: MailingAddress
|
|
1697
|
-
|
|
1698
|
-
"""User errors"""
|
|
2113
|
+
"""
|
|
2114
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2115
|
+
"""
|
|
1699
2116
|
userErrors: [UserError!]!
|
|
1700
2117
|
}
|
|
1701
2118
|
|
|
1702
2119
|
"""Input for customer registration"""
|
|
1703
2120
|
input CustomerCreateInput {
|
|
2121
|
+
"""
|
|
2122
|
+
Opt-in to email marketing checkbox. true → state SUBSCRIBED (single opt-in) unless `marketingOptInLevel: CONFIRMED_OPT_IN` is also set (then PENDING + double opt-in confirmation email). false/null → no consent change.
|
|
2123
|
+
"""
|
|
2124
|
+
acceptsMarketing: Boolean
|
|
2125
|
+
|
|
1704
2126
|
"""Email address"""
|
|
1705
2127
|
email: String!
|
|
1706
2128
|
|
|
@@ -1710,6 +2132,11 @@ input CustomerCreateInput {
|
|
|
1710
2132
|
"""Last name"""
|
|
1711
2133
|
lastName: String
|
|
1712
2134
|
|
|
2135
|
+
"""
|
|
2136
|
+
Opt-in level. Default SINGLE_OPT_IN (signup = email proven implicitly). Set CONFIRMED_OPT_IN to force double opt-in via confirmation email.
|
|
2137
|
+
"""
|
|
2138
|
+
marketingOptInLevel: MarketingOptInLevel
|
|
2139
|
+
|
|
1713
2140
|
"""Password"""
|
|
1714
2141
|
password: String!
|
|
1715
2142
|
|
|
@@ -1717,27 +2144,6 @@ input CustomerCreateInput {
|
|
|
1717
2144
|
phone: String
|
|
1718
2145
|
}
|
|
1719
2146
|
|
|
1720
|
-
"""Result of customer creation"""
|
|
1721
|
-
type CustomerCreatePayload {
|
|
1722
|
-
"""Created customer"""
|
|
1723
|
-
customer: Customer
|
|
1724
|
-
|
|
1725
|
-
"""Access token for new customer"""
|
|
1726
|
-
customerAccessToken: CustomerAccessToken
|
|
1727
|
-
|
|
1728
|
-
"""User errors"""
|
|
1729
|
-
userErrors: [UserError!]!
|
|
1730
|
-
}
|
|
1731
|
-
|
|
1732
|
-
"""Result of default address update"""
|
|
1733
|
-
type CustomerDefaultAddressUpdatePayload {
|
|
1734
|
-
"""Updated customer"""
|
|
1735
|
-
customer: Customer
|
|
1736
|
-
|
|
1737
|
-
"""User errors"""
|
|
1738
|
-
userErrors: [UserError!]!
|
|
1739
|
-
}
|
|
1740
|
-
|
|
1741
2147
|
"""Customer group for B2B pricing"""
|
|
1742
2148
|
type CustomerGroup {
|
|
1743
2149
|
"""Group code"""
|
|
@@ -1759,26 +2165,147 @@ type CustomerGroup {
|
|
|
1759
2165
|
taxExempt: Boolean!
|
|
1760
2166
|
}
|
|
1761
2167
|
|
|
2168
|
+
"""Result of customer login"""
|
|
2169
|
+
type CustomerLoginPayload {
|
|
2170
|
+
"""Access token"""
|
|
2171
|
+
customerAccessToken: CustomerAccessToken
|
|
2172
|
+
|
|
2173
|
+
"""
|
|
2174
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2175
|
+
"""
|
|
2176
|
+
userErrors: [UserError!]!
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
"""Result of token deletion (logout)"""
|
|
2180
|
+
type CustomerLogoutPayload {
|
|
2181
|
+
"""Deleted access token"""
|
|
2182
|
+
deletedAccessToken: String
|
|
2183
|
+
|
|
2184
|
+
"""Deleted token ID"""
|
|
2185
|
+
deletedCustomerAccessTokenId: String
|
|
2186
|
+
|
|
2187
|
+
"""
|
|
2188
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2189
|
+
"""
|
|
2190
|
+
userErrors: [UserError!]!
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
"""Result of token renewal"""
|
|
2194
|
+
type CustomerRefreshTokenPayload {
|
|
2195
|
+
"""New access token"""
|
|
2196
|
+
customerAccessToken: CustomerAccessToken
|
|
2197
|
+
|
|
2198
|
+
"""
|
|
2199
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2200
|
+
"""
|
|
2201
|
+
userErrors: [UserError!]!
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
"""Result of address deletion"""
|
|
2205
|
+
type CustomerRemoveAddressPayload {
|
|
2206
|
+
"""Deleted address ID"""
|
|
2207
|
+
deletedAddressId: ID
|
|
2208
|
+
|
|
2209
|
+
"""
|
|
2210
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2211
|
+
"""
|
|
2212
|
+
userErrors: [UserError!]!
|
|
2213
|
+
}
|
|
2214
|
+
|
|
1762
2215
|
"""Result of password recovery"""
|
|
1763
|
-
type
|
|
1764
|
-
"""
|
|
2216
|
+
type CustomerRequestPasswordResetPayload {
|
|
2217
|
+
"""
|
|
2218
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2219
|
+
"""
|
|
2220
|
+
userErrors: [UserError!]!
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2223
|
+
"""Result of customerResetByUrl mutation — password reset via signed URL"""
|
|
2224
|
+
type CustomerResetPasswordPayload {
|
|
2225
|
+
"""Customer with reset password"""
|
|
2226
|
+
customer: Customer
|
|
2227
|
+
|
|
2228
|
+
"""Auto-login access token"""
|
|
2229
|
+
customerAccessToken: CustomerAccessToken
|
|
2230
|
+
|
|
2231
|
+
"""
|
|
2232
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2233
|
+
"""
|
|
1765
2234
|
userErrors: [UserError!]!
|
|
1766
2235
|
}
|
|
1767
2236
|
|
|
1768
|
-
"""Result of
|
|
1769
|
-
type
|
|
1770
|
-
"""Updated customer"""
|
|
1771
|
-
customer: Customer
|
|
2237
|
+
"""Result of default address update"""
|
|
2238
|
+
type CustomerSetDefaultAddressPayload {
|
|
2239
|
+
"""Updated customer"""
|
|
2240
|
+
customer: Customer
|
|
2241
|
+
|
|
2242
|
+
"""
|
|
2243
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2244
|
+
"""
|
|
2245
|
+
userErrors: [UserError!]!
|
|
2246
|
+
}
|
|
2247
|
+
|
|
2248
|
+
"""Result of customer creation"""
|
|
2249
|
+
type CustomerSignupPayload {
|
|
2250
|
+
"""Created customer"""
|
|
2251
|
+
customer: Customer
|
|
2252
|
+
|
|
2253
|
+
"""Access token for new customer"""
|
|
2254
|
+
customerAccessToken: CustomerAccessToken
|
|
2255
|
+
|
|
2256
|
+
"""
|
|
2257
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2258
|
+
"""
|
|
2259
|
+
userErrors: [UserError!]!
|
|
2260
|
+
}
|
|
2261
|
+
|
|
2262
|
+
"""Input for newsletter subscribe (guest-friendly)."""
|
|
2263
|
+
input CustomerSubscribeToMarketingInput {
|
|
2264
|
+
"""Email address to subscribe to newsletter"""
|
|
2265
|
+
email: String!
|
|
2266
|
+
|
|
2267
|
+
"""
|
|
2268
|
+
Opt-in level. Guest mutation always enforces CONFIRMED_OPT_IN regardless of value.
|
|
2269
|
+
"""
|
|
2270
|
+
marketingOptInLevel: MarketingOptInLevel
|
|
2271
|
+
}
|
|
2272
|
+
|
|
2273
|
+
"""Customer business type — INDIVIDUAL (B2C) or COMPANY (B2B)."""
|
|
2274
|
+
enum CustomerType {
|
|
2275
|
+
COMPANY
|
|
2276
|
+
INDIVIDUAL
|
|
2277
|
+
}
|
|
1772
2278
|
|
|
1773
|
-
|
|
1774
|
-
|
|
2279
|
+
"""Input for newsletter unsubscribe (guest-friendly)."""
|
|
2280
|
+
input CustomerUnsubscribeFromMarketingInput {
|
|
2281
|
+
"""Email address to unsubscribe"""
|
|
2282
|
+
email: String!
|
|
2283
|
+
}
|
|
1775
2284
|
|
|
1776
|
-
|
|
2285
|
+
"""Result of address update"""
|
|
2286
|
+
type CustomerUpdateAddressPayload {
|
|
2287
|
+
"""Updated address"""
|
|
2288
|
+
address: MailingAddress
|
|
2289
|
+
|
|
2290
|
+
"""
|
|
2291
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2292
|
+
"""
|
|
1777
2293
|
userErrors: [UserError!]!
|
|
1778
2294
|
}
|
|
1779
2295
|
|
|
1780
2296
|
"""Input for customer update"""
|
|
1781
2297
|
input CustomerUpdateInput {
|
|
2298
|
+
"""
|
|
2299
|
+
Email marketing toggle. true → state SUBSCRIBED bezpośrednio (auth'd customer = email proven). false → UNSUBSCRIBED. null/undefined → no change.
|
|
2300
|
+
"""
|
|
2301
|
+
acceptsMarketing: Boolean
|
|
2302
|
+
|
|
2303
|
+
"""Company name (required when customerType is COMPANY)"""
|
|
2304
|
+
companyName: String
|
|
2305
|
+
|
|
2306
|
+
"""Business type discriminator (INDIVIDUAL/COMPANY)"""
|
|
2307
|
+
customerType: CustomerType
|
|
2308
|
+
|
|
1782
2309
|
"""First name"""
|
|
1783
2310
|
firstName: String
|
|
1784
2311
|
|
|
@@ -1787,6 +2314,15 @@ input CustomerUpdateInput {
|
|
|
1787
2314
|
|
|
1788
2315
|
"""Phone number"""
|
|
1789
2316
|
phone: String
|
|
2317
|
+
|
|
2318
|
+
"""Polish business registry number — REGON (9 or 14 digits with checksum)"""
|
|
2319
|
+
regon: String
|
|
2320
|
+
|
|
2321
|
+
"""Polish tax ID — NIP (10 digits with checksum)"""
|
|
2322
|
+
taxId: String
|
|
2323
|
+
|
|
2324
|
+
"""EU VAT number (e.g. PL1234567890)"""
|
|
2325
|
+
vatNumber: String
|
|
1790
2326
|
}
|
|
1791
2327
|
|
|
1792
2328
|
"""Result of customer update"""
|
|
@@ -1794,7 +2330,9 @@ type CustomerUpdatePayload {
|
|
|
1794
2330
|
"""Updated customer"""
|
|
1795
2331
|
customer: Customer
|
|
1796
2332
|
|
|
1797
|
-
"""
|
|
2333
|
+
"""
|
|
2334
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2335
|
+
"""
|
|
1798
2336
|
userErrors: [UserError!]!
|
|
1799
2337
|
}
|
|
1800
2338
|
|
|
@@ -1803,6 +2341,11 @@ A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date
|
|
|
1803
2341
|
"""
|
|
1804
2342
|
scalar DateTime
|
|
1805
2343
|
|
|
2344
|
+
"""
|
|
2345
|
+
Decimal money amount, JSON-serialized as String. Format: "{int}.{dec}" e.g. "10.50".
|
|
2346
|
+
"""
|
|
2347
|
+
scalar Decimal
|
|
2348
|
+
|
|
1806
2349
|
"""Estimated delivery timeframe"""
|
|
1807
2350
|
type DeliveryEstimate {
|
|
1808
2351
|
"""Human-readable delivery estimate"""
|
|
@@ -1847,9 +2390,6 @@ type DiscountApplication {
|
|
|
1847
2390
|
"""Items affected by this discount (for BXGY type)"""
|
|
1848
2391
|
affectedItems: [DiscountAffectedItem!]
|
|
1849
2392
|
|
|
1850
|
-
"""Whether discount is applicable"""
|
|
1851
|
-
applicable: Boolean!
|
|
1852
|
-
|
|
1853
2393
|
"""Buy quantity for BXGY (e.g., 2 in "Buy 2 Get 1")"""
|
|
1854
2394
|
buyQuantity: Int
|
|
1855
2395
|
|
|
@@ -1862,6 +2402,9 @@ type DiscountApplication {
|
|
|
1862
2402
|
"""Get quantity for BXGY (e.g., 1 in "Buy 2 Get 1")"""
|
|
1863
2403
|
getQuantity: Int
|
|
1864
2404
|
|
|
2405
|
+
"""Whether discount is applicable"""
|
|
2406
|
+
isApplicable: Boolean!
|
|
2407
|
+
|
|
1865
2408
|
"""Discount title/description"""
|
|
1866
2409
|
title: String
|
|
1867
2410
|
|
|
@@ -1882,11 +2425,11 @@ enum DiscountApplicationType {
|
|
|
1882
2425
|
|
|
1883
2426
|
"""Discount code applied to checkout"""
|
|
1884
2427
|
type DiscountCode {
|
|
1885
|
-
"""Whether the code is currently applicable"""
|
|
1886
|
-
applicable: Boolean!
|
|
1887
|
-
|
|
1888
2428
|
"""Discount code string"""
|
|
1889
2429
|
code: String!
|
|
2430
|
+
|
|
2431
|
+
"""Whether the code is currently applicable"""
|
|
2432
|
+
isApplicable: Boolean!
|
|
1890
2433
|
}
|
|
1891
2434
|
|
|
1892
2435
|
"""Error codes for discount validation"""
|
|
@@ -1940,7 +2483,29 @@ type DiscountValidationResult {
|
|
|
1940
2483
|
error: DiscountValidationError
|
|
1941
2484
|
|
|
1942
2485
|
"""Whether the discount code is valid"""
|
|
1943
|
-
|
|
2486
|
+
isValid: Boolean!
|
|
2487
|
+
}
|
|
2488
|
+
|
|
2489
|
+
"""Shop domain (host, full URL, SSL state)"""
|
|
2490
|
+
type Domain {
|
|
2491
|
+
"""Host name (e.g. "shop.example.com")"""
|
|
2492
|
+
host: String!
|
|
2493
|
+
|
|
2494
|
+
"""Whether HTTPS is enforced"""
|
|
2495
|
+
isSslEnabled: Boolean!
|
|
2496
|
+
|
|
2497
|
+
"""Full URL z protocol"""
|
|
2498
|
+
url: URL!
|
|
2499
|
+
}
|
|
2500
|
+
|
|
2501
|
+
"""Customer email marketing consent state (Prisma-derived)."""
|
|
2502
|
+
enum EmailMarketingState {
|
|
2503
|
+
INVALID
|
|
2504
|
+
NOT_SUBSCRIBED
|
|
2505
|
+
PENDING
|
|
2506
|
+
REDACTED
|
|
2507
|
+
SUBSCRIBED
|
|
2508
|
+
UNSUBSCRIBED
|
|
1944
2509
|
}
|
|
1945
2510
|
|
|
1946
2511
|
"""Exchange rate between currencies"""
|
|
@@ -1961,6 +2526,60 @@ type ExchangeRate {
|
|
|
1961
2526
|
updatedAt: DateTime!
|
|
1962
2527
|
}
|
|
1963
2528
|
|
|
2529
|
+
"""Faceted filter for product listing"""
|
|
2530
|
+
type Filter {
|
|
2531
|
+
"""
|
|
2532
|
+
Unique filter identifier (e.g., "filter.v.option.color", "filter.v.price")
|
|
2533
|
+
"""
|
|
2534
|
+
id: ID!
|
|
2535
|
+
|
|
2536
|
+
"""Display label (e.g., "Color", "Price", "Availability")"""
|
|
2537
|
+
label: String!
|
|
2538
|
+
|
|
2539
|
+
"""Display hint (SWATCH for COLOR, IMAGE for pattern, TEXT default)"""
|
|
2540
|
+
presentation: FilterPresentation
|
|
2541
|
+
|
|
2542
|
+
"""Filter type (LIST | PRICE_RANGE | BOOLEAN)"""
|
|
2543
|
+
type: FilterType!
|
|
2544
|
+
|
|
2545
|
+
"""Available values for this filter, with product counts"""
|
|
2546
|
+
values: [FilterValue!]!
|
|
2547
|
+
}
|
|
2548
|
+
|
|
2549
|
+
"""Filter presentation hint"""
|
|
2550
|
+
enum FilterPresentation {
|
|
2551
|
+
IMAGE
|
|
2552
|
+
SWATCH
|
|
2553
|
+
TEXT
|
|
2554
|
+
}
|
|
2555
|
+
|
|
2556
|
+
"""Type of filter"""
|
|
2557
|
+
enum FilterType {
|
|
2558
|
+
BOOLEAN
|
|
2559
|
+
LIST
|
|
2560
|
+
PRICE_RANGE
|
|
2561
|
+
}
|
|
2562
|
+
|
|
2563
|
+
"""Filter value with product count"""
|
|
2564
|
+
type FilterValue {
|
|
2565
|
+
"""Number of products matching this value in current result set"""
|
|
2566
|
+
count: Int!
|
|
2567
|
+
|
|
2568
|
+
"""Unique identifier within filter"""
|
|
2569
|
+
id: ID!
|
|
2570
|
+
|
|
2571
|
+
"""
|
|
2572
|
+
Pre-built ProductFilter input — paste verbatim into `filters` arg to refetch with this value applied. Example: `{"variantOption":{"name":"Color","value":"Red"}}`
|
|
2573
|
+
"""
|
|
2574
|
+
input: JSON!
|
|
2575
|
+
|
|
2576
|
+
"""Display label (e.g., "Red", "Extra Large", "$50 - $200")"""
|
|
2577
|
+
label: String!
|
|
2578
|
+
|
|
2579
|
+
"""DoSwiftly: visual swatch (color hex or pattern image)"""
|
|
2580
|
+
swatch: AttributeSwatch
|
|
2581
|
+
}
|
|
2582
|
+
|
|
1964
2583
|
"""Free shipping progress indicator"""
|
|
1965
2584
|
type FreeShippingProgress {
|
|
1966
2585
|
"""Current cart subtotal"""
|
|
@@ -1993,8 +2612,8 @@ type GenerateReferralCodePayload {
|
|
|
1993
2612
|
"""Whether generation was successful"""
|
|
1994
2613
|
success: Boolean!
|
|
1995
2614
|
|
|
1996
|
-
"""
|
|
1997
|
-
userErrors: [
|
|
2615
|
+
"""Typed user errors"""
|
|
2616
|
+
userErrors: [UserError!]!
|
|
1998
2617
|
}
|
|
1999
2618
|
|
|
2000
2619
|
"""Geographic coordinates (latitude/longitude)"""
|
|
@@ -2023,10 +2642,9 @@ type GiftCard {
|
|
|
2023
2642
|
"""Initial gift card amount"""
|
|
2024
2643
|
initialAmount: Money!
|
|
2025
2644
|
|
|
2026
|
-
"""
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
"""Gift card code (masked for security)"""
|
|
2645
|
+
"""
|
|
2646
|
+
Gift card code (masked for security; client may slice last 4 chars for display)
|
|
2647
|
+
"""
|
|
2030
2648
|
maskedCode: String!
|
|
2031
2649
|
|
|
2032
2650
|
"""Personal message"""
|
|
@@ -2037,9 +2655,6 @@ type GiftCard {
|
|
|
2037
2655
|
|
|
2038
2656
|
"""Gift card status"""
|
|
2039
2657
|
status: GiftCardStatus!
|
|
2040
|
-
|
|
2041
|
-
"""Transaction history"""
|
|
2042
|
-
transactions: [GiftCardTransaction!]!
|
|
2043
2658
|
}
|
|
2044
2659
|
|
|
2045
2660
|
"""Gift card validation error"""
|
|
@@ -2062,15 +2677,6 @@ enum GiftCardErrorCode {
|
|
|
2062
2677
|
NOT_FOUND
|
|
2063
2678
|
}
|
|
2064
2679
|
|
|
2065
|
-
"""Result of gift card lookup"""
|
|
2066
|
-
type GiftCardPayload {
|
|
2067
|
-
"""Gift card if found"""
|
|
2068
|
-
giftCard: GiftCard
|
|
2069
|
-
|
|
2070
|
-
"""User errors"""
|
|
2071
|
-
userErrors: [UserError!]!
|
|
2072
|
-
}
|
|
2073
|
-
|
|
2074
2680
|
"""Gift card status"""
|
|
2075
2681
|
enum GiftCardStatus {
|
|
2076
2682
|
ACTIVE
|
|
@@ -2079,27 +2685,6 @@ enum GiftCardStatus {
|
|
|
2079
2685
|
USED
|
|
2080
2686
|
}
|
|
2081
2687
|
|
|
2082
|
-
"""Gift card transaction record"""
|
|
2083
|
-
type GiftCardTransaction {
|
|
2084
|
-
"""Transaction amount"""
|
|
2085
|
-
amount: Money!
|
|
2086
|
-
|
|
2087
|
-
"""Balance after transaction"""
|
|
2088
|
-
balanceAfter: Money!
|
|
2089
|
-
|
|
2090
|
-
"""Transaction timestamp"""
|
|
2091
|
-
createdAt: DateTime!
|
|
2092
|
-
|
|
2093
|
-
"""Transaction ID"""
|
|
2094
|
-
id: ID!
|
|
2095
|
-
|
|
2096
|
-
"""Order ID if related to order"""
|
|
2097
|
-
orderId: ID
|
|
2098
|
-
|
|
2099
|
-
"""Transaction type"""
|
|
2100
|
-
type: String!
|
|
2101
|
-
}
|
|
2102
|
-
|
|
2103
2688
|
"""Result of gift card validation"""
|
|
2104
2689
|
type GiftCardValidatePayload {
|
|
2105
2690
|
"""User errors"""
|
|
@@ -2121,7 +2706,7 @@ type GiftCardValidation {
|
|
|
2121
2706
|
giftCard: GiftCard
|
|
2122
2707
|
|
|
2123
2708
|
"""Whether the gift card is valid for use"""
|
|
2124
|
-
|
|
2709
|
+
isValid: Boolean!
|
|
2125
2710
|
}
|
|
2126
2711
|
|
|
2127
2712
|
"""Image with URL and metadata"""
|
|
@@ -2147,6 +2732,21 @@ type Image {
|
|
|
2147
2732
|
width: Int
|
|
2148
2733
|
}
|
|
2149
2734
|
|
|
2735
|
+
"""Paginated list of images (Relay Connection)"""
|
|
2736
|
+
type ImageConnection {
|
|
2737
|
+
"""Image edges with cursors"""
|
|
2738
|
+
edges: [ImageEdge!]!
|
|
2739
|
+
|
|
2740
|
+
"""Image nodes (shortcut for edges.map(e => e.node))"""
|
|
2741
|
+
nodes: [Image!]!
|
|
2742
|
+
|
|
2743
|
+
"""Pagination info"""
|
|
2744
|
+
pageInfo: PageInfo!
|
|
2745
|
+
|
|
2746
|
+
"""Total count of images"""
|
|
2747
|
+
totalCount: Int!
|
|
2748
|
+
}
|
|
2749
|
+
|
|
2150
2750
|
"""Image content type for output format"""
|
|
2151
2751
|
enum ImageContentType {
|
|
2152
2752
|
AVIF
|
|
@@ -2155,7 +2755,16 @@ enum ImageContentType {
|
|
|
2155
2755
|
WEBP
|
|
2156
2756
|
}
|
|
2157
2757
|
|
|
2158
|
-
"""
|
|
2758
|
+
"""Edge in an Image connection"""
|
|
2759
|
+
type ImageEdge {
|
|
2760
|
+
"""Cursor for pagination"""
|
|
2761
|
+
cursor: String!
|
|
2762
|
+
|
|
2763
|
+
"""Image node"""
|
|
2764
|
+
node: Image!
|
|
2765
|
+
}
|
|
2766
|
+
|
|
2767
|
+
"""Image transform options"""
|
|
2159
2768
|
input ImageTransformInput {
|
|
2160
2769
|
"""Crop region"""
|
|
2161
2770
|
crop: CropRegion
|
|
@@ -2173,6 +2782,11 @@ input ImageTransformInput {
|
|
|
2173
2782
|
scale: Int
|
|
2174
2783
|
}
|
|
2175
2784
|
|
|
2785
|
+
"""
|
|
2786
|
+
Opaque JSON payload — shape documented per field. Klient parsuje strukturę sam.
|
|
2787
|
+
"""
|
|
2788
|
+
scalar JSON
|
|
2789
|
+
|
|
2176
2790
|
"""Language configuration"""
|
|
2177
2791
|
type Language {
|
|
2178
2792
|
"""Language code (ISO 639-1)"""
|
|
@@ -2194,6 +2808,31 @@ type Language {
|
|
|
2194
2808
|
nativeName: String!
|
|
2195
2809
|
}
|
|
2196
2810
|
|
|
2811
|
+
"""ISO 639-1 language code"""
|
|
2812
|
+
enum LanguageCode {
|
|
2813
|
+
CS
|
|
2814
|
+
DA
|
|
2815
|
+
DE
|
|
2816
|
+
EN
|
|
2817
|
+
ES
|
|
2818
|
+
FI
|
|
2819
|
+
FR
|
|
2820
|
+
HR
|
|
2821
|
+
HU
|
|
2822
|
+
IT
|
|
2823
|
+
LT
|
|
2824
|
+
LV
|
|
2825
|
+
NL
|
|
2826
|
+
NO
|
|
2827
|
+
PL
|
|
2828
|
+
PT
|
|
2829
|
+
RO
|
|
2830
|
+
SK
|
|
2831
|
+
SL
|
|
2832
|
+
SV
|
|
2833
|
+
UK
|
|
2834
|
+
}
|
|
2835
|
+
|
|
2197
2836
|
"""Text direction for the language"""
|
|
2198
2837
|
enum LanguageDirection {
|
|
2199
2838
|
LTR
|
|
@@ -2204,6 +2843,9 @@ enum LanguageDirection {
|
|
|
2204
2843
|
Summary of a ProductVariant linked to an AttributeOption (Faza 1.5 configurator).
|
|
2205
2844
|
"""
|
|
2206
2845
|
type LinkedVariantSummary {
|
|
2846
|
+
"""Available stock (stock − active reservations, zawsze ≥ 0)."""
|
|
2847
|
+
availableStock: Int!
|
|
2848
|
+
|
|
2207
2849
|
"""Variant ID (w tenant DB)."""
|
|
2208
2850
|
id: ID!
|
|
2209
2851
|
|
|
@@ -2213,9 +2855,6 @@ type LinkedVariantSummary {
|
|
|
2213
2855
|
"""Parent product ID."""
|
|
2214
2856
|
productId: ID!
|
|
2215
2857
|
|
|
2216
|
-
"""Dostępna ilość (stock − active reservations, zawsze ≥ 0)."""
|
|
2217
|
-
quantityAvailable: Int!
|
|
2218
|
-
|
|
2219
2858
|
"""SKU jeśli zdefiniowany."""
|
|
2220
2859
|
sku: String
|
|
2221
2860
|
|
|
@@ -2228,13 +2867,28 @@ type LinkedVariantSummary {
|
|
|
2228
2867
|
|
|
2229
2868
|
"""Locale to currency mapping entry"""
|
|
2230
2869
|
type LocaleCurrencyMapping {
|
|
2231
|
-
"""Currency code (
|
|
2232
|
-
currency:
|
|
2870
|
+
"""Currency code (ISO 4217)"""
|
|
2871
|
+
currency: CurrencyCode!
|
|
2233
2872
|
|
|
2234
2873
|
"""Browser locale (e.g., "pl-PL", "en-US")"""
|
|
2235
2874
|
locale: String!
|
|
2236
2875
|
}
|
|
2237
2876
|
|
|
2877
|
+
"""Localization context dla storefronta"""
|
|
2878
|
+
type Localization {
|
|
2879
|
+
"""Wszystkie wsparte kraje (z aktywnych shipping zones)"""
|
|
2880
|
+
availableCountries: [Country!]!
|
|
2881
|
+
|
|
2882
|
+
"""Wszystkie wsparte języki sklepu"""
|
|
2883
|
+
availableLanguages: [Language!]!
|
|
2884
|
+
|
|
2885
|
+
"""Aktualny kraj klienta (z `@inContext` lub geo-detection)"""
|
|
2886
|
+
country: Country!
|
|
2887
|
+
|
|
2888
|
+
"""Aktualny język klienta (z `Accept-Language` lub `@inContext`)"""
|
|
2889
|
+
language: Language!
|
|
2890
|
+
}
|
|
2891
|
+
|
|
2238
2892
|
"""Inventory location (warehouse, store, pickup point)"""
|
|
2239
2893
|
type Location {
|
|
2240
2894
|
"""Physical address and coordinates"""
|
|
@@ -2251,12 +2905,12 @@ type Location {
|
|
|
2251
2905
|
"""Location display name"""
|
|
2252
2906
|
name: String!
|
|
2253
2907
|
|
|
2254
|
-
"""Whether this location supports BOPIS pickup"""
|
|
2255
|
-
pickupEnabled: Boolean!
|
|
2256
|
-
|
|
2257
2908
|
"""Optional merchant pickup instructions (e.g., "Show ID at counter")"""
|
|
2258
2909
|
pickupInstructions: String
|
|
2259
2910
|
|
|
2911
|
+
"""Whether this location supports BOPIS pickup"""
|
|
2912
|
+
supportsPickup: Boolean!
|
|
2913
|
+
|
|
2260
2914
|
"""
|
|
2261
2915
|
IANA timezone identifier (e.g., "Europe/Warsaw"). Falls back to shop timezone if null.
|
|
2262
2916
|
"""
|
|
@@ -2266,14 +2920,8 @@ type Location {
|
|
|
2266
2920
|
type: LocationType!
|
|
2267
2921
|
}
|
|
2268
2922
|
|
|
2269
|
-
"""Physical address of a location
|
|
2923
|
+
"""Physical address of a location"""
|
|
2270
2924
|
type LocationAddress {
|
|
2271
|
-
"""Street address line 1"""
|
|
2272
|
-
address1: String
|
|
2273
|
-
|
|
2274
|
-
"""Street address line 2 (apartment, suite)"""
|
|
2275
|
-
address2: String
|
|
2276
|
-
|
|
2277
2925
|
"""City"""
|
|
2278
2926
|
city: String
|
|
2279
2927
|
|
|
@@ -2295,14 +2943,20 @@ type LocationAddress {
|
|
|
2295
2943
|
"""Phone number"""
|
|
2296
2944
|
phone: String
|
|
2297
2945
|
|
|
2946
|
+
"""Postal / ZIP code"""
|
|
2947
|
+
postalCode: String
|
|
2948
|
+
|
|
2298
2949
|
"""State / province name"""
|
|
2299
|
-
|
|
2950
|
+
state: String
|
|
2300
2951
|
|
|
2301
2952
|
"""State / province code (e.g., CA, MZ)"""
|
|
2302
|
-
|
|
2953
|
+
stateCode: String
|
|
2303
2954
|
|
|
2304
|
-
"""
|
|
2305
|
-
|
|
2955
|
+
"""First line of street address"""
|
|
2956
|
+
streetLine1: String
|
|
2957
|
+
|
|
2958
|
+
"""Second line of street address (apartment, suite)"""
|
|
2959
|
+
streetLine2: String
|
|
2306
2960
|
}
|
|
2307
2961
|
|
|
2308
2962
|
"""Paginated location connection"""
|
|
@@ -2337,7 +2991,7 @@ enum LocationType {
|
|
|
2337
2991
|
"""Available point earning action"""
|
|
2338
2992
|
type LoyaltyAction {
|
|
2339
2993
|
"""Whether action is enabled"""
|
|
2340
|
-
|
|
2994
|
+
isEnabled: Boolean!
|
|
2341
2995
|
|
|
2342
2996
|
"""Points awarded for this action (if fixed)"""
|
|
2343
2997
|
points: Int
|
|
@@ -2355,13 +3009,13 @@ type LoyaltyMember {
|
|
|
2355
3009
|
customerId: ID!
|
|
2356
3010
|
|
|
2357
3011
|
"""Enrollment date"""
|
|
2358
|
-
enrolledAt:
|
|
3012
|
+
enrolledAt: DateTime!
|
|
2359
3013
|
|
|
2360
3014
|
"""Member ID"""
|
|
2361
3015
|
id: ID!
|
|
2362
3016
|
|
|
2363
3017
|
"""Last activity date"""
|
|
2364
|
-
lastActivityAt:
|
|
3018
|
+
lastActivityAt: DateTime
|
|
2365
3019
|
|
|
2366
3020
|
"""Points summary"""
|
|
2367
3021
|
points: LoyaltyPointsSummary!
|
|
@@ -2399,8 +3053,8 @@ type LoyaltyPointsSummary {
|
|
|
2399
3053
|
"""Points expiring soon (next 30 days)"""
|
|
2400
3054
|
expiringPoints: Int
|
|
2401
3055
|
|
|
2402
|
-
"""Next expiry date"""
|
|
2403
|
-
nextExpiryDate:
|
|
3056
|
+
"""Next expiry date (ISO 8601)"""
|
|
3057
|
+
nextExpiryDate: DateTime
|
|
2404
3058
|
|
|
2405
3059
|
"""Points pending (from incomplete orders)"""
|
|
2406
3060
|
pendingPoints: Int!
|
|
@@ -2414,9 +3068,6 @@ type LoyaltyPointsSummary {
|
|
|
2414
3068
|
|
|
2415
3069
|
"""Redeemable loyalty reward"""
|
|
2416
3070
|
type LoyaltyReward {
|
|
2417
|
-
"""Whether reward is available"""
|
|
2418
|
-
available: Boolean!
|
|
2419
|
-
|
|
2420
3071
|
"""Description"""
|
|
2421
3072
|
description: String
|
|
2422
3073
|
|
|
@@ -2432,14 +3083,17 @@ type LoyaltyReward {
|
|
|
2432
3083
|
"""Reward image"""
|
|
2433
3084
|
image: Image
|
|
2434
3085
|
|
|
3086
|
+
"""Whether reward is available"""
|
|
3087
|
+
isAvailable: Boolean!
|
|
3088
|
+
|
|
2435
3089
|
"""Reward name"""
|
|
2436
3090
|
name: String!
|
|
2437
3091
|
|
|
2438
3092
|
"""Points required to redeem"""
|
|
2439
3093
|
pointsCost: Int!
|
|
2440
3094
|
|
|
2441
|
-
"""
|
|
2442
|
-
|
|
3095
|
+
"""Redemptions remaining (null = unlimited)"""
|
|
3096
|
+
redemptionsRemaining: Int
|
|
2443
3097
|
|
|
2444
3098
|
"""URL-friendly slug"""
|
|
2445
3099
|
slug: String!
|
|
@@ -2457,7 +3111,7 @@ type LoyaltySettings {
|
|
|
2457
3111
|
availableActions: [LoyaltyAction!]!
|
|
2458
3112
|
|
|
2459
3113
|
"""Whether loyalty program is enabled"""
|
|
2460
|
-
|
|
3114
|
+
isEnabled: Boolean!
|
|
2461
3115
|
|
|
2462
3116
|
"""Months until points expire (null = no expiry)"""
|
|
2463
3117
|
pointsExpiryMonths: Int
|
|
@@ -2517,13 +3171,13 @@ type LoyaltyTransaction {
|
|
|
2517
3171
|
balanceAfter: Int!
|
|
2518
3172
|
|
|
2519
3173
|
"""Transaction date"""
|
|
2520
|
-
createdAt:
|
|
3174
|
+
createdAt: DateTime!
|
|
2521
3175
|
|
|
2522
3176
|
"""Description"""
|
|
2523
3177
|
description: String
|
|
2524
3178
|
|
|
2525
3179
|
"""Expiry date for earned points"""
|
|
2526
|
-
expiresAt:
|
|
3180
|
+
expiresAt: DateTime
|
|
2527
3181
|
|
|
2528
3182
|
"""Transaction ID"""
|
|
2529
3183
|
id: ID!
|
|
@@ -2574,13 +3228,7 @@ enum LoyaltyTransactionType {
|
|
|
2574
3228
|
}
|
|
2575
3229
|
|
|
2576
3230
|
"""Customer mailing address"""
|
|
2577
|
-
type MailingAddress {
|
|
2578
|
-
"""First line of address"""
|
|
2579
|
-
address1: String
|
|
2580
|
-
|
|
2581
|
-
"""Second line of address"""
|
|
2582
|
-
address2: String
|
|
2583
|
-
|
|
3231
|
+
type MailingAddress implements Node {
|
|
2584
3232
|
"""City"""
|
|
2585
3233
|
city: String
|
|
2586
3234
|
|
|
@@ -2590,50 +3238,87 @@ type MailingAddress {
|
|
|
2590
3238
|
"""Country"""
|
|
2591
3239
|
country: String
|
|
2592
3240
|
|
|
2593
|
-
"""
|
|
2594
|
-
countryCode:
|
|
3241
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
3242
|
+
countryCode: CountryCode
|
|
2595
3243
|
|
|
2596
3244
|
"""First name"""
|
|
2597
3245
|
firstName: String
|
|
2598
3246
|
|
|
3247
|
+
"""
|
|
3248
|
+
Country-aware ordered address lines. Format zależy od country: PL = [name, streetLine1, "postalCode city"]; US = [name, streetLine1, "city, state postalCode"]; default = [name, streetLine1, streetLine2, city, postalCode, country]. Use bezpośrednio jako lines w UI bez ręcznego konstruowania.
|
|
3249
|
+
"""
|
|
3250
|
+
formatted: [String!]!
|
|
3251
|
+
|
|
3252
|
+
"""
|
|
3253
|
+
Single-line area summary, e.g. "Warszawa, MZ, Poland"
|
|
3254
|
+
"""
|
|
3255
|
+
formattedArea: String
|
|
3256
|
+
|
|
2599
3257
|
"""Unique identifier"""
|
|
2600
3258
|
id: ID!
|
|
2601
3259
|
|
|
2602
|
-
"""Whether this is default address"""
|
|
3260
|
+
"""Whether this is default address (DoSwiftly extension)"""
|
|
2603
3261
|
isDefault: Boolean!
|
|
2604
3262
|
|
|
2605
3263
|
"""Last name"""
|
|
2606
3264
|
lastName: String
|
|
2607
3265
|
|
|
3266
|
+
"""Computed full name (firstName + " " + lastName)"""
|
|
3267
|
+
name: String
|
|
3268
|
+
|
|
2608
3269
|
"""Phone number"""
|
|
2609
3270
|
phone: String
|
|
2610
3271
|
|
|
2611
|
-
"""
|
|
2612
|
-
|
|
3272
|
+
"""Postal / ZIP code"""
|
|
3273
|
+
postalCode: String
|
|
3274
|
+
|
|
3275
|
+
"""State / province"""
|
|
3276
|
+
state: String
|
|
3277
|
+
|
|
3278
|
+
"""State / province code (ISO 3166-2 subdivision)"""
|
|
3279
|
+
stateCode: String
|
|
2613
3280
|
|
|
2614
|
-
"""
|
|
2615
|
-
|
|
3281
|
+
"""First line of street address"""
|
|
3282
|
+
streetLine1: String
|
|
2616
3283
|
|
|
2617
|
-
"""
|
|
2618
|
-
|
|
3284
|
+
"""Second line of street address"""
|
|
3285
|
+
streetLine2: String
|
|
2619
3286
|
}
|
|
2620
3287
|
|
|
2621
|
-
"""
|
|
2622
|
-
|
|
2623
|
-
"""
|
|
2624
|
-
|
|
3288
|
+
"""Paginated mailing addresses (Relay Connection)"""
|
|
3289
|
+
type MailingAddressConnection {
|
|
3290
|
+
"""Address edges with cursors"""
|
|
3291
|
+
edges: [MailingAddressEdge!]!
|
|
3292
|
+
|
|
3293
|
+
"""Address nodes (shortcut for edges.map(e => e.node))"""
|
|
3294
|
+
nodes: [MailingAddress!]!
|
|
3295
|
+
|
|
3296
|
+
"""Pagination info"""
|
|
3297
|
+
pageInfo: PageInfo!
|
|
3298
|
+
|
|
3299
|
+
"""Total count of addresses"""
|
|
3300
|
+
totalCount: Int!
|
|
3301
|
+
}
|
|
3302
|
+
|
|
3303
|
+
"""Edge in a MailingAddress connection"""
|
|
3304
|
+
type MailingAddressEdge {
|
|
3305
|
+
"""Cursor for pagination"""
|
|
3306
|
+
cursor: String!
|
|
2625
3307
|
|
|
2626
|
-
"""
|
|
2627
|
-
|
|
3308
|
+
"""MailingAddress node"""
|
|
3309
|
+
node: MailingAddress!
|
|
3310
|
+
}
|
|
2628
3311
|
|
|
3312
|
+
"""Input for mailing address"""
|
|
3313
|
+
input MailingAddressInput {
|
|
2629
3314
|
"""City"""
|
|
2630
3315
|
city: String
|
|
2631
3316
|
|
|
2632
3317
|
"""Company"""
|
|
2633
3318
|
company: String
|
|
2634
3319
|
|
|
2635
|
-
"""
|
|
2636
|
-
country:
|
|
3320
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
3321
|
+
country: CountryCode
|
|
2637
3322
|
|
|
2638
3323
|
"""First name"""
|
|
2639
3324
|
firstName: String
|
|
@@ -2644,11 +3329,26 @@ input MailingAddressInput {
|
|
|
2644
3329
|
"""Phone"""
|
|
2645
3330
|
phone: String
|
|
2646
3331
|
|
|
2647
|
-
"""
|
|
2648
|
-
|
|
3332
|
+
"""Postal / ZIP code"""
|
|
3333
|
+
postalCode: String
|
|
3334
|
+
|
|
3335
|
+
"""State / province"""
|
|
3336
|
+
state: String
|
|
2649
3337
|
|
|
2650
|
-
"""
|
|
2651
|
-
|
|
3338
|
+
"""First line of street address"""
|
|
3339
|
+
streetLine1: String
|
|
3340
|
+
|
|
3341
|
+
"""Second line of street address"""
|
|
3342
|
+
streetLine2: String
|
|
3343
|
+
}
|
|
3344
|
+
|
|
3345
|
+
"""
|
|
3346
|
+
Email marketing opt-in level — SINGLE_OPT_IN, CONFIRMED_OPT_IN, UNKNOWN.
|
|
3347
|
+
"""
|
|
3348
|
+
enum MarketingOptInLevel {
|
|
3349
|
+
CONFIRMED_OPT_IN
|
|
3350
|
+
SINGLE_OPT_IN
|
|
3351
|
+
UNKNOWN
|
|
2652
3352
|
}
|
|
2653
3353
|
|
|
2654
3354
|
"""Navigation menu"""
|
|
@@ -2662,9 +3362,6 @@ type Menu {
|
|
|
2662
3362
|
"""Top-level menu items"""
|
|
2663
3363
|
items: [MenuItem!]!
|
|
2664
3364
|
|
|
2665
|
-
"""The count of top-level items on the menu (equal to items.length)"""
|
|
2666
|
-
itemsCount: Int!
|
|
2667
|
-
|
|
2668
3365
|
"""Menu title"""
|
|
2669
3366
|
title: String!
|
|
2670
3367
|
}
|
|
@@ -2697,7 +3394,7 @@ type MenuItem {
|
|
|
2697
3394
|
"""
|
|
2698
3395
|
Resolved URL path computed server-side (e.g., /categories/funko, /products/toy-1, /pages/about, /collections/sale). Static types resolve to /, /search, /products, /blog. HTTP type returns the manually stored URL. Null only when type is a resource link (CATEGORY/COLLECTION/PAGE/PRODUCT) and the resource was deleted.
|
|
2699
3396
|
"""
|
|
2700
|
-
url:
|
|
3397
|
+
url: URL
|
|
2701
3398
|
}
|
|
2702
3399
|
|
|
2703
3400
|
union MenuItemResource = Category | Collection | Product | ShopPage
|
|
@@ -2718,142 +3415,197 @@ enum MenuItemType {
|
|
|
2718
3415
|
"""Monetary value with currency"""
|
|
2719
3416
|
type Money {
|
|
2720
3417
|
"""Decimal money amount"""
|
|
2721
|
-
amount:
|
|
3418
|
+
amount: Decimal!
|
|
2722
3419
|
|
|
2723
|
-
"""
|
|
2724
|
-
currencyCode:
|
|
3420
|
+
"""ISO 4217 currency code"""
|
|
3421
|
+
currencyCode: CurrencyCode!
|
|
2725
3422
|
}
|
|
2726
3423
|
|
|
2727
3424
|
type Mutation {
|
|
2728
|
-
"""
|
|
2729
|
-
|
|
3425
|
+
"""Add lines to cart"""
|
|
3426
|
+
cartAddLines(id: ID!, lines: [CartLineInput!]!): CartAddLinesPayload!
|
|
2730
3427
|
|
|
2731
|
-
"""
|
|
2732
|
-
|
|
3428
|
+
"""Apply discount codes"""
|
|
3429
|
+
cartApplyDiscountCodes(discountCodes: [String!]!, id: ID!): CartApplyDiscountCodesPayload!
|
|
2733
3430
|
|
|
2734
3431
|
"""Create new cart"""
|
|
2735
3432
|
cartCreate(input: CartCreateInput): CartCreatePayload!
|
|
2736
3433
|
|
|
2737
|
-
"""
|
|
2738
|
-
|
|
3434
|
+
"""Remove lines from cart"""
|
|
3435
|
+
cartRemoveLines(id: ID!, lineIds: [ID!]!): CartRemoveLinesPayload!
|
|
2739
3436
|
|
|
2740
|
-
"""
|
|
2741
|
-
|
|
3437
|
+
"""Update cart attributes"""
|
|
3438
|
+
cartUpdateAttributes(attributes: [CartAttributeInput!]!, id: ID!): CartUpdateAttributesPayload!
|
|
2742
3439
|
|
|
2743
|
-
"""
|
|
2744
|
-
|
|
3440
|
+
"""Update buyer identity"""
|
|
3441
|
+
cartUpdateBuyerIdentity(buyerIdentity: CartBuyerIdentityInput!, id: ID!): CartUpdateBuyerIdentityPayload!
|
|
2745
3442
|
|
|
2746
3443
|
"""Update cart lines"""
|
|
2747
|
-
|
|
3444
|
+
cartUpdateLines(id: ID!, lines: [CartLineUpdateInput!]!): CartUpdateLinesPayload!
|
|
2748
3445
|
|
|
2749
3446
|
"""Update cart note"""
|
|
2750
|
-
|
|
3447
|
+
cartUpdateNote(id: ID!, note: String!): CartUpdateNotePayload!
|
|
2751
3448
|
|
|
2752
|
-
"""
|
|
2753
|
-
|
|
3449
|
+
"""Apply discount code to checkout"""
|
|
3450
|
+
checkoutApplyDiscountCode(discountCode: String!, id: ID!): CheckoutApplyDiscountCodePayload!
|
|
3451
|
+
|
|
3452
|
+
"""Apply gift card to checkout"""
|
|
3453
|
+
checkoutApplyGiftCard(giftCardCode: String!, id: ID!): CheckoutApplyGiftCardPayload!
|
|
2754
3454
|
|
|
2755
3455
|
"""Complete checkout and create order"""
|
|
2756
|
-
checkoutComplete(
|
|
3456
|
+
checkoutComplete(id: ID!, input: CheckoutCompleteInput): CheckoutCompletePayload!
|
|
2757
3457
|
|
|
2758
3458
|
"""Create new checkout"""
|
|
2759
3459
|
checkoutCreate(input: CheckoutCreateInput!): CheckoutCreatePayload!
|
|
2760
3460
|
|
|
2761
|
-
"""Apply discount code to checkout"""
|
|
2762
|
-
checkoutDiscountCodeApply(checkoutId: ID!, discountCode: String!): CheckoutDiscountCodeApplyPayload!
|
|
2763
|
-
|
|
2764
3461
|
"""Remove discount code from checkout"""
|
|
2765
|
-
|
|
3462
|
+
checkoutRemoveDiscountCode(discountCode: String!, id: ID!): CheckoutRemoveDiscountCodePayload!
|
|
2766
3463
|
|
|
2767
|
-
"""
|
|
2768
|
-
|
|
3464
|
+
"""Remove gift card from checkout"""
|
|
3465
|
+
checkoutRemoveGiftCard(giftCardCode: String!, id: ID!): CheckoutRemoveGiftCardPayload!
|
|
2769
3466
|
|
|
2770
|
-
"""
|
|
2771
|
-
|
|
3467
|
+
"""Select payment method for checkout"""
|
|
3468
|
+
checkoutSelectPaymentMethod(id: ID!, paymentMethodId: ID!): CheckoutSelectPaymentMethodPayload!
|
|
2772
3469
|
|
|
2773
|
-
"""
|
|
2774
|
-
|
|
3470
|
+
"""Select shipping rate for checkout"""
|
|
3471
|
+
checkoutSelectShippingRate(
|
|
3472
|
+
id: ID!
|
|
2775
3473
|
|
|
2776
|
-
|
|
2777
|
-
|
|
3474
|
+
"""Shipping rate handle/id from checkout.availableShippingRates"""
|
|
3475
|
+
rateId: String!
|
|
3476
|
+
): CheckoutSelectShippingRatePayload!
|
|
2778
3477
|
|
|
2779
|
-
"""
|
|
2780
|
-
|
|
3478
|
+
"""Update checkout billing address"""
|
|
3479
|
+
checkoutUpdateBillingAddress(billingAddress: CheckoutAddressInput!, id: ID!): CheckoutUpdateBillingAddressPayload!
|
|
2781
3480
|
|
|
2782
|
-
"""Update checkout
|
|
2783
|
-
|
|
3481
|
+
"""Update checkout email"""
|
|
3482
|
+
checkoutUpdateEmail(email: String!, id: ID!): CheckoutUpdateEmailPayload!
|
|
3483
|
+
|
|
3484
|
+
"""Update gift card recipient info for a line item"""
|
|
3485
|
+
checkoutUpdateGiftCardRecipient(input: CheckoutGiftCardRecipientInput!): CheckoutUpdateGiftCardRecipientPayload!
|
|
2784
3486
|
|
|
2785
3487
|
"""Update checkout shipping address"""
|
|
2786
|
-
|
|
3488
|
+
checkoutUpdateShippingAddress(id: ID!, shippingAddress: CheckoutAddressInput!): CheckoutUpdateShippingAddressPayload!
|
|
3489
|
+
|
|
3490
|
+
"""Validate discount code without applying"""
|
|
3491
|
+
checkoutValidateDiscountCode(discountCode: String!, id: ID!): CheckoutValidateDiscountCodePayload!
|
|
3492
|
+
|
|
3493
|
+
"""
|
|
3494
|
+
Activate customer account using raw activation token (admin-created flow)
|
|
3495
|
+
"""
|
|
3496
|
+
customerActivate(
|
|
3497
|
+
password: String!
|
|
2787
3498
|
|
|
2788
|
-
|
|
2789
|
-
|
|
3499
|
+
"""Raw activation token from the activation email"""
|
|
3500
|
+
token: String!
|
|
3501
|
+
): CustomerActivatePayload!
|
|
3502
|
+
|
|
3503
|
+
"""Add customer address"""
|
|
3504
|
+
customerAddAddress(address: MailingAddressInput!): CustomerAddAddressPayload!
|
|
2790
3505
|
|
|
2791
3506
|
"""Login customer"""
|
|
2792
|
-
|
|
3507
|
+
customerLogin(input: CustomerAccessTokenCreateInput!): CustomerLoginPayload!
|
|
2793
3508
|
|
|
2794
|
-
"""Logout customer"""
|
|
2795
|
-
|
|
3509
|
+
"""Logout customer (clears auth cookie)"""
|
|
3510
|
+
customerLogout: CustomerLogoutPayload!
|
|
2796
3511
|
|
|
2797
3512
|
"""Refresh access token"""
|
|
2798
|
-
|
|
3513
|
+
customerRefreshToken: CustomerRefreshTokenPayload!
|
|
2799
3514
|
|
|
2800
|
-
"""
|
|
2801
|
-
|
|
3515
|
+
"""Remove customer address"""
|
|
3516
|
+
customerRemoveAddress(id: ID!): CustomerRemoveAddressPayload!
|
|
2802
3517
|
|
|
2803
|
-
"""
|
|
2804
|
-
|
|
3518
|
+
"""Request password reset email"""
|
|
3519
|
+
customerRequestPasswordReset(email: String!): CustomerRequestPasswordResetPayload!
|
|
2805
3520
|
|
|
2806
|
-
"""
|
|
2807
|
-
|
|
3521
|
+
"""Reset customer password via signed URL from email"""
|
|
3522
|
+
customerResetPassword(
|
|
3523
|
+
newPassword: String!
|
|
2808
3524
|
|
|
2809
|
-
|
|
2810
|
-
|
|
3525
|
+
"""Raw password-reset token from the password-reset email"""
|
|
3526
|
+
token: String!
|
|
3527
|
+
): CustomerResetPasswordPayload!
|
|
2811
3528
|
|
|
2812
3529
|
"""Set default address"""
|
|
2813
|
-
|
|
3530
|
+
customerSetDefaultAddress(addressId: ID!): CustomerSetDefaultAddressPayload!
|
|
3531
|
+
|
|
3532
|
+
"""Register new customer"""
|
|
3533
|
+
customerSignup(input: CustomerCreateInput!): CustomerSignupPayload!
|
|
2814
3534
|
|
|
2815
|
-
"""
|
|
2816
|
-
|
|
3535
|
+
"""Subscribe an email to the newsletter (guest-friendly, double opt-in)."""
|
|
3536
|
+
customerSubscribeToMarketing(input: CustomerSubscribeToMarketingInput!): SubscribeToMarketingPayload!
|
|
2817
3537
|
|
|
2818
|
-
"""
|
|
2819
|
-
|
|
3538
|
+
"""Unsubscribe an email from the newsletter (guest-friendly, idempotent)."""
|
|
3539
|
+
customerUnsubscribeFromMarketing(input: CustomerUnsubscribeFromMarketingInput!): UnsubscribeFromMarketingPayload!
|
|
2820
3540
|
|
|
2821
3541
|
"""Update customer profile"""
|
|
2822
|
-
customerUpdate(customer: CustomerUpdateInput
|
|
3542
|
+
customerUpdate(customer: CustomerUpdateInput!): CustomerUpdatePayload!
|
|
3543
|
+
|
|
3544
|
+
"""Update customer address"""
|
|
3545
|
+
customerUpdateAddress(address: MailingAddressInput!, id: ID!): CustomerUpdateAddressPayload!
|
|
2823
3546
|
|
|
2824
3547
|
"""Generate or retrieve referral code"""
|
|
2825
|
-
|
|
3548
|
+
loyaltyGenerateReferralCode: GenerateReferralCodePayload!
|
|
2826
3549
|
|
|
2827
3550
|
"""Redeem a loyalty reward"""
|
|
2828
|
-
|
|
3551
|
+
loyaltyRedeemReward(input: RedeemRewardInput!): RedeemRewardPayload!
|
|
2829
3552
|
|
|
2830
3553
|
"""Cancel a return request"""
|
|
2831
|
-
returnCancel(
|
|
3554
|
+
returnCancel(id: ID!): ReturnCancelPayload!
|
|
2832
3555
|
|
|
2833
3556
|
"""Create a return request"""
|
|
2834
|
-
returnCreate(
|
|
3557
|
+
returnCreate(input: ReturnCreateInput!): ReturnCreatePayload!
|
|
2835
3558
|
|
|
2836
3559
|
"""Create a product review"""
|
|
2837
3560
|
reviewCreate(input: ReviewCreateInput!): ReviewPayload!
|
|
2838
3561
|
|
|
2839
|
-
"""
|
|
2840
|
-
|
|
3562
|
+
"""
|
|
3563
|
+
Mark review as not helpful (downvote). Replaces any prior vote by same customer.
|
|
3564
|
+
"""
|
|
3565
|
+
reviewDownvote(reviewId: ID!): ReviewPayload!
|
|
3566
|
+
|
|
3567
|
+
"""
|
|
3568
|
+
Mark review as helpful (upvote). Replaces any prior vote by same customer.
|
|
3569
|
+
"""
|
|
3570
|
+
reviewUpvote(reviewId: ID!): ReviewPayload!
|
|
2841
3571
|
|
|
2842
3572
|
"""Add item to wishlist"""
|
|
2843
|
-
wishlistAddItem(
|
|
3573
|
+
wishlistAddItem(id: ID!, input: WishlistItemInput!): WishlistPayload!
|
|
2844
3574
|
|
|
2845
3575
|
"""Create a new wishlist"""
|
|
2846
3576
|
wishlistCreate(input: WishlistCreateInput!): WishlistPayload!
|
|
2847
3577
|
|
|
2848
3578
|
"""Delete a wishlist"""
|
|
2849
|
-
wishlistDelete(
|
|
3579
|
+
wishlistDelete(id: ID!): WishlistPayload!
|
|
2850
3580
|
|
|
2851
3581
|
"""Remove item from wishlist"""
|
|
2852
|
-
wishlistRemoveItem(
|
|
3582
|
+
wishlistRemoveItem(id: ID!, itemId: ID!): WishlistPayload!
|
|
3583
|
+
}
|
|
3584
|
+
|
|
3585
|
+
"""GraphQL Node interface — universal ID-based lookup"""
|
|
3586
|
+
interface Node {
|
|
3587
|
+
"""Globally-unique identifier"""
|
|
3588
|
+
id: ID!
|
|
3589
|
+
}
|
|
3590
|
+
|
|
3591
|
+
"""
|
|
3592
|
+
Type discriminator dla node()/nodes() queries (UUID nie zawiera type prefix)
|
|
3593
|
+
"""
|
|
3594
|
+
enum NodeType {
|
|
3595
|
+
ARTICLE
|
|
3596
|
+
CART
|
|
3597
|
+
CATEGORY
|
|
3598
|
+
COLLECTION
|
|
3599
|
+
CUSTOMER
|
|
3600
|
+
MAILING_ADDRESS
|
|
3601
|
+
ORDER
|
|
3602
|
+
PAGE
|
|
3603
|
+
PRODUCT
|
|
3604
|
+
PRODUCT_VARIANT
|
|
2853
3605
|
}
|
|
2854
3606
|
|
|
2855
3607
|
"""Customer order summary"""
|
|
2856
|
-
type Order {
|
|
3608
|
+
type Order implements Node {
|
|
2857
3609
|
"""When order was cancelled"""
|
|
2858
3610
|
cancelledAt: DateTime
|
|
2859
3611
|
|
|
@@ -2863,9 +3615,6 @@ type Order {
|
|
|
2863
3615
|
"""When order expired"""
|
|
2864
3616
|
expiredAt: DateTime
|
|
2865
3617
|
|
|
2866
|
-
"""Financial status"""
|
|
2867
|
-
financialStatus: OrderFinancialStatus!
|
|
2868
|
-
|
|
2869
3618
|
"""Fulfillment status"""
|
|
2870
3619
|
fulfillmentStatus: OrderFulfillmentStatus!
|
|
2871
3620
|
|
|
@@ -2873,13 +3622,16 @@ type Order {
|
|
|
2873
3622
|
id: ID!
|
|
2874
3623
|
|
|
2875
3624
|
"""Line items count"""
|
|
2876
|
-
|
|
3625
|
+
itemCount: Int!
|
|
2877
3626
|
|
|
2878
3627
|
"""Order number (human-readable)"""
|
|
2879
3628
|
orderNumber: String!
|
|
2880
3629
|
|
|
2881
|
-
"""
|
|
2882
|
-
|
|
3630
|
+
"""Payment status"""
|
|
3631
|
+
paymentStatus: OrderPaymentStatus!
|
|
3632
|
+
|
|
3633
|
+
"""Order date (ISO 8601)"""
|
|
3634
|
+
processedAt: DateTime!
|
|
2883
3635
|
|
|
2884
3636
|
"""Order shipments"""
|
|
2885
3637
|
shipments: [Shipment!]!
|
|
@@ -2890,17 +3642,8 @@ type Order {
|
|
|
2890
3642
|
"""Order lifecycle status"""
|
|
2891
3643
|
status: StorefrontOrderStatus!
|
|
2892
3644
|
|
|
2893
|
-
"""
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
"""Order total"""
|
|
2897
|
-
totalPrice: Money!
|
|
2898
|
-
|
|
2899
|
-
"""Total shipping"""
|
|
2900
|
-
totalShipping: Money
|
|
2901
|
-
|
|
2902
|
-
"""Total tax"""
|
|
2903
|
-
totalTax: Money
|
|
3645
|
+
"""Cost totals breakdown (subtotal/total/totalTax/totalShipping)"""
|
|
3646
|
+
totals: OrderTotals!
|
|
2904
3647
|
}
|
|
2905
3648
|
|
|
2906
3649
|
"""Paginated order connection"""
|
|
@@ -2924,8 +3667,20 @@ type OrderEdge {
|
|
|
2924
3667
|
node: Order!
|
|
2925
3668
|
}
|
|
2926
3669
|
|
|
2927
|
-
"""
|
|
2928
|
-
enum
|
|
3670
|
+
"""Fulfillment status of an order"""
|
|
3671
|
+
enum OrderFulfillmentStatus {
|
|
3672
|
+
DELIVERED
|
|
3673
|
+
FULFILLED
|
|
3674
|
+
IN_TRANSIT
|
|
3675
|
+
LOST
|
|
3676
|
+
PARTIALLY_FULFILLED
|
|
3677
|
+
PARTIALLY_RETURNED
|
|
3678
|
+
RETURNED
|
|
3679
|
+
UNFULFILLED
|
|
3680
|
+
}
|
|
3681
|
+
|
|
3682
|
+
"""Payment status of an order"""
|
|
3683
|
+
enum OrderPaymentStatus {
|
|
2929
3684
|
AUTHORIZED
|
|
2930
3685
|
CHARGEBACK
|
|
2931
3686
|
FAILED
|
|
@@ -2939,16 +3694,19 @@ enum OrderFinancialStatus {
|
|
|
2939
3694
|
VOIDED
|
|
2940
3695
|
}
|
|
2941
3696
|
|
|
2942
|
-
"""
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
3697
|
+
"""Order cost totals breakdown"""
|
|
3698
|
+
type OrderTotals {
|
|
3699
|
+
"""Order subtotal (before tax and shipping)"""
|
|
3700
|
+
subtotal: Money!
|
|
3701
|
+
|
|
3702
|
+
"""Order total (after tax and shipping)"""
|
|
3703
|
+
total: Money!
|
|
3704
|
+
|
|
3705
|
+
"""Total shipping cost"""
|
|
3706
|
+
totalShipping: Money
|
|
3707
|
+
|
|
3708
|
+
"""Total tax amount"""
|
|
3709
|
+
totalTax: Money
|
|
2952
3710
|
}
|
|
2953
3711
|
|
|
2954
3712
|
"""Package dimensions for rate calculation"""
|
|
@@ -3030,6 +3788,23 @@ enum PaymentMethodType {
|
|
|
3030
3788
|
PAYPAL
|
|
3031
3789
|
}
|
|
3032
3790
|
|
|
3791
|
+
"""Shop payment configuration (currency, country, providers)"""
|
|
3792
|
+
type PaymentSettings {
|
|
3793
|
+
"""Country code sklepu — driver dostępności metod płatności"""
|
|
3794
|
+
countryCode: CountryCode!
|
|
3795
|
+
|
|
3796
|
+
"""Primary currency użyty do procesowania płatności"""
|
|
3797
|
+
currencyCode: CurrencyCode!
|
|
3798
|
+
|
|
3799
|
+
"""Waluty displayable on storefront (Money.currencyCode allowlist)"""
|
|
3800
|
+
enabledPresentmentCurrencies: [CurrencyCode!]!
|
|
3801
|
+
|
|
3802
|
+
"""
|
|
3803
|
+
Kody aktywnych payment providerów dla tego sklepu (z IntegrationProvider table, type=PAYMENT). Np. ["payu", "cash_on_delivery"]. Storefront-dev używa do warunkowania UI checkout.
|
|
3804
|
+
"""
|
|
3805
|
+
paymentProviders: [String!]!
|
|
3806
|
+
}
|
|
3807
|
+
|
|
3033
3808
|
"""Points estimate for an order"""
|
|
3034
3809
|
type PointsEstimate {
|
|
3035
3810
|
"""Base points to earn"""
|
|
@@ -3045,6 +3820,15 @@ type PointsEstimate {
|
|
|
3045
3820
|
totalPoints: Int!
|
|
3046
3821
|
}
|
|
3047
3822
|
|
|
3823
|
+
"""Predictive search result for typeahead UI"""
|
|
3824
|
+
type PredictiveSearchResult {
|
|
3825
|
+
"""Top matching products (FTS-ranked)"""
|
|
3826
|
+
products: [Product!]!
|
|
3827
|
+
|
|
3828
|
+
"""Top product title suggestions with highlighted query matches"""
|
|
3829
|
+
queries: [SearchQuerySuggestion!]!
|
|
3830
|
+
}
|
|
3831
|
+
|
|
3048
3832
|
"""Price with full conversion transparency"""
|
|
3049
3833
|
type PriceMoney {
|
|
3050
3834
|
"""Price amount in display currency"""
|
|
@@ -3081,6 +3865,15 @@ type PriceRange {
|
|
|
3081
3865
|
min: Money!
|
|
3082
3866
|
}
|
|
3083
3867
|
|
|
3868
|
+
"""Price range filter (major units)"""
|
|
3869
|
+
input PriceRangeFilter {
|
|
3870
|
+
"""Maximum price (major units)"""
|
|
3871
|
+
max: Float
|
|
3872
|
+
|
|
3873
|
+
"""Minimum price (major units, e.g. 50.0 PLN)"""
|
|
3874
|
+
min: Float
|
|
3875
|
+
}
|
|
3876
|
+
|
|
3084
3877
|
"""Quantity-based pricing tier"""
|
|
3085
3878
|
type PricingTier {
|
|
3086
3879
|
"""Discount percentage from retail"""
|
|
@@ -3097,8 +3890,8 @@ type PricingTier {
|
|
|
3097
3890
|
}
|
|
3098
3891
|
|
|
3099
3892
|
"""Product - main catalog item"""
|
|
3100
|
-
type Product {
|
|
3101
|
-
"""Assigned AttributeSet ID (
|
|
3893
|
+
type Product implements Node {
|
|
3894
|
+
"""Assigned AttributeSet ID (shared template fields)"""
|
|
3102
3895
|
attributeSetId: ID
|
|
3103
3896
|
|
|
3104
3897
|
"""
|
|
@@ -3106,17 +3899,21 @@ type Product {
|
|
|
3106
3899
|
"""
|
|
3107
3900
|
attributes(filter: ProductAttributeFilterInput): [ProductAttributeDefinition!]!
|
|
3108
3901
|
|
|
3109
|
-
"""Whether product is available for sale (any variant in stock)"""
|
|
3110
|
-
availableForSale: Boolean!
|
|
3111
|
-
|
|
3112
3902
|
"""Average rating (1-5)"""
|
|
3113
3903
|
averageRating: Float
|
|
3114
3904
|
|
|
3115
|
-
"""
|
|
3116
|
-
|
|
3905
|
+
"""
|
|
3906
|
+
Product category (free-text classification, e.g. "Footwear", "Electronics")
|
|
3907
|
+
"""
|
|
3908
|
+
category: String
|
|
3909
|
+
|
|
3910
|
+
"""
|
|
3911
|
+
Compare-at price range (Money pair). Null gdy żaden variant nie ma compareAtPrice.
|
|
3912
|
+
"""
|
|
3913
|
+
compareAtPriceRange: ProductPriceRange
|
|
3117
3914
|
|
|
3118
|
-
"""
|
|
3119
|
-
|
|
3915
|
+
"""Opt-in: compare-at price range with conversion transparency."""
|
|
3916
|
+
compareAtPriceRangeWithConversion: ConvertedPriceRange
|
|
3120
3917
|
|
|
3121
3918
|
"""Creation timestamp"""
|
|
3122
3919
|
createdAt: DateTime!
|
|
@@ -3136,49 +3933,51 @@ type Product {
|
|
|
3136
3933
|
"""Unique identifier"""
|
|
3137
3934
|
id: ID!
|
|
3138
3935
|
|
|
3139
|
-
"""
|
|
3140
|
-
images(first: Float
|
|
3936
|
+
"""Product images (Relay Connection)"""
|
|
3937
|
+
images(after: String, before: String, first: Float, last: Float): ImageConnection!
|
|
3938
|
+
|
|
3939
|
+
"""Whether product is available for sale (any variant in stock)"""
|
|
3940
|
+
isAvailable: Boolean!
|
|
3941
|
+
|
|
3942
|
+
"""
|
|
3943
|
+
Whether the storefront should offer a direct purchase path (Add to cart / Buy now). Mirrors `visibility === PUBLIC`. BUNDLE_ONLY ("Komponent") products resolve to false — the PDP renders a Komponent banner explaining access is only via configurator.
|
|
3944
|
+
"""
|
|
3945
|
+
isPurchasable: Boolean!
|
|
3141
3946
|
|
|
3142
3947
|
"""
|
|
3143
3948
|
Per-product option definitions (Color, Size, …) with their available values. Use these to build a variant picker without aggregating `selectedOptions` manually.
|
|
3144
3949
|
"""
|
|
3145
3950
|
options: [ProductOption!]!
|
|
3146
3951
|
|
|
3147
|
-
"""
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
"""Original price range in shop base currency"""
|
|
3151
|
-
originalPriceRange: ProductPriceRange
|
|
3152
|
-
|
|
3153
|
-
"""Price range in customer preferred currency (auto-converted)"""
|
|
3154
|
-
priceRange: ConvertedPriceRange!
|
|
3155
|
-
|
|
3156
|
-
"""Product type/category (free text)"""
|
|
3157
|
-
productType: String
|
|
3952
|
+
"""Price range (Money pair). Default field — industry-standard schema."""
|
|
3953
|
+
priceRange: ProductPriceRange!
|
|
3158
3954
|
|
|
3159
3955
|
"""
|
|
3160
|
-
|
|
3956
|
+
Opt-in: price range with full conversion transparency (exchangeRate, baseCurrency, isConverted). Use dla currency-converter UI gdy customer ma preferred currency inną niż shop base.
|
|
3161
3957
|
"""
|
|
3162
|
-
|
|
3958
|
+
priceRangeWithConversion: ConvertedPriceRange
|
|
3163
3959
|
|
|
3164
3960
|
"""Similar products recommendations"""
|
|
3165
3961
|
recommendations(first: Int = 4): ProductRecommendations
|
|
3166
3962
|
|
|
3963
|
+
"""Whether storefront checkout requires recipient data for this product"""
|
|
3964
|
+
requiresRecipientInfo: Boolean!
|
|
3965
|
+
|
|
3167
3966
|
"""Number of reviews"""
|
|
3168
3967
|
reviewCount: Int
|
|
3169
3968
|
|
|
3170
3969
|
"""SEO metadata"""
|
|
3171
3970
|
seo: SEO
|
|
3172
3971
|
|
|
3972
|
+
"""Total stock across all variants"""
|
|
3973
|
+
stockTotal: Int
|
|
3974
|
+
|
|
3173
3975
|
"""Product tags"""
|
|
3174
3976
|
tags: [String!]!
|
|
3175
3977
|
|
|
3176
3978
|
"""Product title"""
|
|
3177
3979
|
title: String!
|
|
3178
3980
|
|
|
3179
|
-
"""Total inventory across all variants"""
|
|
3180
|
-
totalInventory: Int
|
|
3181
|
-
|
|
3182
3981
|
"""
|
|
3183
3982
|
Product type enum (PHYSICAL, DIGITAL, SERVICE, SUBSCRIPTION, GIFT_CARD)
|
|
3184
3983
|
"""
|
|
@@ -3187,8 +3986,8 @@ type Product {
|
|
|
3187
3986
|
"""Last update timestamp"""
|
|
3188
3987
|
updatedAt: DateTime!
|
|
3189
3988
|
|
|
3190
|
-
"""Product variants"""
|
|
3191
|
-
variants(first: Float
|
|
3989
|
+
"""Product variants (Relay Connection)"""
|
|
3990
|
+
variants(after: String, before: String, first: Float, last: Float): ProductVariantConnection!
|
|
3192
3991
|
|
|
3193
3992
|
"""Vendor/brand name"""
|
|
3194
3993
|
vendor: String
|
|
@@ -3200,7 +3999,7 @@ type Product {
|
|
|
3200
3999
|
"""Product attribute definition (configurator)"""
|
|
3201
4000
|
type ProductAttributeDefinition {
|
|
3202
4001
|
"""Billing mode — BUNDLED | SEPARATE_LINE; null = informational only"""
|
|
3203
|
-
billingMode:
|
|
4002
|
+
billingMode: AttributeBillingMode
|
|
3204
4003
|
|
|
3205
4004
|
"""Customer-facing description"""
|
|
3206
4005
|
description: String
|
|
@@ -3209,7 +4008,7 @@ type ProductAttributeDefinition {
|
|
|
3209
4008
|
displayOrder: Int!
|
|
3210
4009
|
|
|
3211
4010
|
"""Filling mode — MERCHANT | CUSTOMER | BOTH"""
|
|
3212
|
-
fillingMode:
|
|
4011
|
+
fillingMode: AttributeFillingMode!
|
|
3213
4012
|
|
|
3214
4013
|
"""Definition ID"""
|
|
3215
4014
|
id: ID!
|
|
@@ -3252,7 +4051,7 @@ input ProductAttributeFilterInput {
|
|
|
3252
4051
|
"""
|
|
3253
4052
|
Filter by filling mode — MERCHANT | CUSTOMER | BOTH (configurator UI uses CUSTOMER + BOTH)
|
|
3254
4053
|
"""
|
|
3255
|
-
fillingMode:
|
|
4054
|
+
fillingMode: AttributeFillingMode
|
|
3256
4055
|
}
|
|
3257
4056
|
|
|
3258
4057
|
"""Selectable option of a product attribute (configurator)"""
|
|
@@ -3288,7 +4087,7 @@ type ProductAttributeOption {
|
|
|
3288
4087
|
surchargeAmount: Int
|
|
3289
4088
|
|
|
3290
4089
|
"""Surcharge type — FIXED | PERCENT (Faza 2)"""
|
|
3291
|
-
surchargeType:
|
|
4090
|
+
surchargeType: AttributeOptionSurchargeType
|
|
3292
4091
|
|
|
3293
4092
|
"""Internal value (slug-style)"""
|
|
3294
4093
|
value: String!
|
|
@@ -3296,9 +4095,17 @@ type ProductAttributeOption {
|
|
|
3296
4095
|
|
|
3297
4096
|
"""Paginated product list"""
|
|
3298
4097
|
type ProductConnection {
|
|
3299
|
-
"""Product edges"""
|
|
4098
|
+
"""Product edges with cursors"""
|
|
3300
4099
|
edges: [ProductEdge!]!
|
|
3301
4100
|
|
|
4101
|
+
"""
|
|
4102
|
+
Faceted filters driven by current result set. Use FilterValue.input to construct refinement queries.
|
|
4103
|
+
"""
|
|
4104
|
+
filters: [Filter!]!
|
|
4105
|
+
|
|
4106
|
+
"""Product nodes (shortcut for edges.map(e => e.node))"""
|
|
4107
|
+
nodes: [Product!]!
|
|
4108
|
+
|
|
3302
4109
|
"""Pagination info"""
|
|
3303
4110
|
pageInfo: PageInfo!
|
|
3304
4111
|
|
|
@@ -3315,52 +4122,49 @@ type ProductEdge {
|
|
|
3315
4122
|
node: Product!
|
|
3316
4123
|
}
|
|
3317
4124
|
|
|
3318
|
-
"""
|
|
3319
|
-
input
|
|
3320
|
-
"""
|
|
4125
|
+
"""Single product filter"""
|
|
4126
|
+
input ProductFilter {
|
|
4127
|
+
"""
|
|
4128
|
+
DoSwiftly: dynamic attribute filters (configurator system). Product/variant metafield filters will be added in Wave 5.
|
|
4129
|
+
"""
|
|
3321
4130
|
attributes: [AttributeFilterInput!]
|
|
3322
4131
|
|
|
3323
|
-
"""Filter by availability"""
|
|
4132
|
+
"""Filter by availability for sale"""
|
|
3324
4133
|
available: Boolean
|
|
3325
4134
|
|
|
3326
|
-
"""
|
|
3327
|
-
|
|
3328
|
-
"""
|
|
3329
|
-
categoryId: ID
|
|
4135
|
+
"""Filter by category"""
|
|
4136
|
+
category: CategoryFilter
|
|
3330
4137
|
|
|
3331
4138
|
"""
|
|
3332
|
-
|
|
4139
|
+
DoSwiftly: filter by collection ID (supports comma-separated UUIDs). Use Collection.products(filters) for collection-scoped queries.
|
|
3333
4140
|
"""
|
|
3334
4141
|
collectionId: ID
|
|
3335
4142
|
|
|
3336
|
-
"""Filter by
|
|
3337
|
-
|
|
4143
|
+
"""Filter by variant price range"""
|
|
4144
|
+
price: PriceRangeFilter
|
|
3338
4145
|
|
|
3339
|
-
"""
|
|
3340
|
-
|
|
4146
|
+
"""
|
|
4147
|
+
Filter by product category (free-text classification, stored on Product.category). Distinct from `category: CategoryFilter` which selects by structured Category entity.
|
|
4148
|
+
"""
|
|
4149
|
+
productCategory: String
|
|
3341
4150
|
|
|
3342
|
-
"""
|
|
3343
|
-
|
|
4151
|
+
"""
|
|
4152
|
+
Filter by product type enum (PHYSICAL/DIGITAL/SERVICE/SUBSCRIPTION/GIFT_CARD). Distinct from `productCategory` (free-text classification).
|
|
4153
|
+
"""
|
|
4154
|
+
productType: ProductTypeEnum
|
|
3344
4155
|
|
|
3345
|
-
"""
|
|
3346
|
-
|
|
4156
|
+
"""
|
|
4157
|
+
Filter by product vendor (renamed from legacy `vendor` in ProductFilterInput)
|
|
4158
|
+
"""
|
|
4159
|
+
productVendor: String
|
|
3347
4160
|
|
|
3348
|
-
"""Filter by tag"""
|
|
4161
|
+
"""Filter by product tag"""
|
|
3349
4162
|
tag: String
|
|
3350
4163
|
|
|
3351
|
-
"""Filter by tags"""
|
|
3352
|
-
tags: [String!]
|
|
3353
|
-
|
|
3354
4164
|
"""
|
|
3355
|
-
Filter by
|
|
4165
|
+
Filter by single variant option (e.g. Color=Red). For multi-value filtering use multiple ProductFilter entries.
|
|
3356
4166
|
"""
|
|
3357
|
-
variantOption:
|
|
3358
|
-
|
|
3359
|
-
"""Filter by vendor"""
|
|
3360
|
-
vendor: String
|
|
3361
|
-
|
|
3362
|
-
"""Filter by vendor names"""
|
|
3363
|
-
vendors: [String!]
|
|
4167
|
+
variantOption: VariantOptionFilter
|
|
3364
4168
|
}
|
|
3365
4169
|
|
|
3366
4170
|
"""Product option"""
|
|
@@ -3373,10 +4177,10 @@ type ProductOption {
|
|
|
3373
4177
|
"""Option name (e.g. "Color", "Size")"""
|
|
3374
4178
|
name: String!
|
|
3375
4179
|
|
|
3376
|
-
"""Sort
|
|
3377
|
-
|
|
4180
|
+
"""Sort order among the product's options"""
|
|
4181
|
+
sortOrder: Int!
|
|
3378
4182
|
|
|
3379
|
-
"""Available values, ordered by
|
|
4183
|
+
"""Available values, ordered by sortOrder"""
|
|
3380
4184
|
values: [ProductOptionValue!]!
|
|
3381
4185
|
}
|
|
3382
4186
|
|
|
@@ -3400,8 +4204,8 @@ type ProductOptionValue {
|
|
|
3400
4204
|
"""Display name (e.g. "Red", "XL")"""
|
|
3401
4205
|
name: String!
|
|
3402
4206
|
|
|
3403
|
-
"""Sort
|
|
3404
|
-
|
|
4207
|
+
"""Sort order (0-based)"""
|
|
4208
|
+
sortOrder: Int!
|
|
3405
4209
|
}
|
|
3406
4210
|
|
|
3407
4211
|
"""Original price range in shop base currency"""
|
|
@@ -3451,7 +4255,7 @@ type ProductReview {
|
|
|
3451
4255
|
"""Review date"""
|
|
3452
4256
|
createdAt: DateTime!
|
|
3453
4257
|
|
|
3454
|
-
"""Helpful votes count"""
|
|
4258
|
+
"""Helpful votes count (upvotes)"""
|
|
3455
4259
|
helpfulCount: Int!
|
|
3456
4260
|
id: ID!
|
|
3457
4261
|
|
|
@@ -3476,6 +4280,9 @@ type ProductReview {
|
|
|
3476
4280
|
|
|
3477
4281
|
"""Review title"""
|
|
3478
4282
|
title: String
|
|
4283
|
+
|
|
4284
|
+
"""Unhelpful votes count (downvotes)"""
|
|
4285
|
+
unhelpfulCount: Int!
|
|
3479
4286
|
}
|
|
3480
4287
|
|
|
3481
4288
|
"""Paginated reviews connection"""
|
|
@@ -3495,10 +4302,13 @@ type ProductReviewEdge {
|
|
|
3495
4302
|
enum ProductSortKeys {
|
|
3496
4303
|
BEST_SELLING
|
|
3497
4304
|
CREATED_AT
|
|
4305
|
+
ID
|
|
3498
4306
|
PRICE
|
|
4307
|
+
PRODUCT_TYPE
|
|
3499
4308
|
RELEVANCE
|
|
3500
4309
|
TITLE
|
|
3501
4310
|
UPDATED_AT
|
|
4311
|
+
VENDOR
|
|
3502
4312
|
}
|
|
3503
4313
|
|
|
3504
4314
|
"""Product type classification"""
|
|
@@ -3512,14 +4322,19 @@ enum ProductTypeEnum {
|
|
|
3512
4322
|
|
|
3513
4323
|
"""Product variant - purchasable unit"""
|
|
3514
4324
|
type ProductVariant {
|
|
3515
|
-
"""
|
|
3516
|
-
|
|
4325
|
+
"""
|
|
4326
|
+
Available stock (computed: stock - reserved). Null when track is disabled.
|
|
4327
|
+
"""
|
|
4328
|
+
availableStock: Int
|
|
3517
4329
|
|
|
3518
4330
|
"""Barcode"""
|
|
3519
4331
|
barcode: String
|
|
3520
4332
|
|
|
3521
|
-
"""Compare at price
|
|
3522
|
-
compareAtPrice:
|
|
4333
|
+
"""Compare at price (Money). Null gdy variant nie jest na promocji."""
|
|
4334
|
+
compareAtPrice: Money
|
|
4335
|
+
|
|
4336
|
+
"""Opt-in: compare-at price with conversion transparency."""
|
|
4337
|
+
compareAtPriceWithConversion: PriceMoney
|
|
3523
4338
|
|
|
3524
4339
|
"""Unique identifier"""
|
|
3525
4340
|
id: ID!
|
|
@@ -3527,20 +4342,16 @@ type ProductVariant {
|
|
|
3527
4342
|
"""Variant image"""
|
|
3528
4343
|
image: Image
|
|
3529
4344
|
|
|
3530
|
-
"""
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
"""Original price in shop base currency"""
|
|
3534
|
-
originalPrice: Money
|
|
3535
|
-
|
|
3536
|
-
"""Position in product variants list"""
|
|
3537
|
-
position: Int
|
|
4345
|
+
"""Whether variant is available for purchase"""
|
|
4346
|
+
isAvailable: Boolean!
|
|
3538
4347
|
|
|
3539
|
-
"""
|
|
3540
|
-
price:
|
|
4348
|
+
"""Variant price (Money). Default field — industry-standard schema."""
|
|
4349
|
+
price: Money!
|
|
3541
4350
|
|
|
3542
|
-
"""
|
|
3543
|
-
|
|
4351
|
+
"""
|
|
4352
|
+
Opt-in: price with full conversion transparency. Use dla currency-converter UI.
|
|
4353
|
+
"""
|
|
4354
|
+
priceWithConversion: PriceMoney
|
|
3544
4355
|
|
|
3545
4356
|
"""Selected options for this variant"""
|
|
3546
4357
|
selectedOptions: [SelectedOption!]!
|
|
@@ -3548,8 +4359,11 @@ type ProductVariant {
|
|
|
3548
4359
|
"""SKU code"""
|
|
3549
4360
|
sku: String
|
|
3550
4361
|
|
|
4362
|
+
"""Sort order among product variants"""
|
|
4363
|
+
sortOrder: Int
|
|
4364
|
+
|
|
3551
4365
|
"""
|
|
3552
|
-
Per-location stock availability
|
|
4366
|
+
Per-location stock availability. Null for single-location shops. Resolved by StoreAvailabilityResolver with `near`, `locationType`, and `@inContext(preferredLocationId)` support.
|
|
3553
4367
|
"""
|
|
3554
4368
|
storeAvailability(
|
|
3555
4369
|
"""Cursor for pagination"""
|
|
@@ -3558,7 +4372,7 @@ type ProductVariant {
|
|
|
3558
4372
|
"""Number of locations to return"""
|
|
3559
4373
|
first: Int! = 10
|
|
3560
4374
|
|
|
3561
|
-
"""Filter by location type (DoSwiftly extension
|
|
4375
|
+
"""Filter by location type (DoSwiftly extension)"""
|
|
3562
4376
|
locationType: LocationType
|
|
3563
4377
|
|
|
3564
4378
|
"""Sort locations by proximity to these coordinates"""
|
|
@@ -3568,8 +4382,32 @@ type ProductVariant {
|
|
|
3568
4382
|
"""Variant title (e.g., "Large / Red")"""
|
|
3569
4383
|
title: String!
|
|
3570
4384
|
|
|
3571
|
-
"""
|
|
3572
|
-
weight:
|
|
4385
|
+
"""Variant weight (canonical unit GRAMS — Prisma stores integer grams)"""
|
|
4386
|
+
weight: Weight
|
|
4387
|
+
}
|
|
4388
|
+
|
|
4389
|
+
"""Paginated list of product variants (Relay Connection)"""
|
|
4390
|
+
type ProductVariantConnection {
|
|
4391
|
+
"""Variant edges with cursors"""
|
|
4392
|
+
edges: [ProductVariantEdge!]!
|
|
4393
|
+
|
|
4394
|
+
"""Variant nodes (shortcut for edges.map(e => e.node))"""
|
|
4395
|
+
nodes: [ProductVariant!]!
|
|
4396
|
+
|
|
4397
|
+
"""Pagination info"""
|
|
4398
|
+
pageInfo: PageInfo!
|
|
4399
|
+
|
|
4400
|
+
"""Total count of variants"""
|
|
4401
|
+
totalCount: Int!
|
|
4402
|
+
}
|
|
4403
|
+
|
|
4404
|
+
"""Edge in a ProductVariant connection"""
|
|
4405
|
+
type ProductVariantEdge {
|
|
4406
|
+
"""Cursor for pagination"""
|
|
4407
|
+
cursor: String!
|
|
4408
|
+
|
|
4409
|
+
"""Variant node"""
|
|
4410
|
+
node: ProductVariant!
|
|
3573
4411
|
}
|
|
3574
4412
|
|
|
3575
4413
|
"""Catalog placement — PUBLIC | HIDDEN | BUNDLE_ONLY (Faza 1.5)"""
|
|
@@ -3583,9 +4421,6 @@ type Query {
|
|
|
3583
4421
|
"""List of all currencies supported by the system (ECB rates)"""
|
|
3584
4422
|
allSupportedCurrencies: [Currency!]!
|
|
3585
4423
|
|
|
3586
|
-
"""Get available filters for product listing"""
|
|
3587
|
-
availableFilters(input: AvailableFiltersInput): AvailableFilters!
|
|
3588
|
-
|
|
3589
4424
|
"""Get available payment methods"""
|
|
3590
4425
|
availablePaymentMethods: AvailablePaymentMethods!
|
|
3591
4426
|
|
|
@@ -3643,13 +4478,6 @@ type Query {
|
|
|
3643
4478
|
"""Get cart by ID"""
|
|
3644
4479
|
cart(id: ID!): Cart
|
|
3645
4480
|
|
|
3646
|
-
"""Get recommendations based on cart contents"""
|
|
3647
|
-
cartRecommendations(
|
|
3648
|
-
"""Cart ID to base recommendations on"""
|
|
3649
|
-
cartId: String!
|
|
3650
|
-
first: Int = 4
|
|
3651
|
-
): CartRecommendations!
|
|
3652
|
-
|
|
3653
4481
|
"""Get category tree"""
|
|
3654
4482
|
categories(
|
|
3655
4483
|
"""Cursor for pagination"""
|
|
@@ -3725,14 +4553,14 @@ type Query {
|
|
|
3725
4553
|
code: String!
|
|
3726
4554
|
): Currency
|
|
3727
4555
|
|
|
3728
|
-
"""Get authenticated customer"""
|
|
3729
|
-
customer
|
|
4556
|
+
"""Get authenticated customer (cookie / Authorization Bearer)"""
|
|
4557
|
+
customer: Customer
|
|
3730
4558
|
|
|
3731
4559
|
"""Get available customer groups"""
|
|
3732
4560
|
customerGroups: [CustomerGroup!]
|
|
3733
4561
|
|
|
3734
4562
|
"""Get single order for authenticated customer"""
|
|
3735
|
-
customerOrder(
|
|
4563
|
+
customerOrder(orderId: ID!): Order
|
|
3736
4564
|
|
|
3737
4565
|
"""Estimate points for an order amount"""
|
|
3738
4566
|
estimatePoints(
|
|
@@ -3749,8 +4577,8 @@ type Query {
|
|
|
3749
4577
|
to: String!
|
|
3750
4578
|
): ExchangeRate
|
|
3751
4579
|
|
|
3752
|
-
"""Get gift card by code"""
|
|
3753
|
-
giftCard(code: String!):
|
|
4580
|
+
"""Get gift card by code (null if not found)"""
|
|
4581
|
+
giftCard(code: String!): GiftCard
|
|
3754
4582
|
|
|
3755
4583
|
"""Validate gift card for use"""
|
|
3756
4584
|
giftCardValidate(amount: Float, code: String!): GiftCardValidatePayload!
|
|
@@ -3758,6 +4586,9 @@ type Query {
|
|
|
3758
4586
|
"""Get available languages for this shop"""
|
|
3759
4587
|
languages: [Language!]!
|
|
3760
4588
|
|
|
4589
|
+
"""Localization context (kraje, języki, aktualny kraj/język klienta)"""
|
|
4590
|
+
localization: Localization!
|
|
4591
|
+
|
|
3761
4592
|
"""
|
|
3762
4593
|
Fetch a single active location by ID. Returns null when missing, inactive, or owned by another shop (tenant isolation via StorefrontShopGuard).
|
|
3763
4594
|
"""
|
|
@@ -3767,7 +4598,7 @@ type Query {
|
|
|
3767
4598
|
): Location
|
|
3768
4599
|
|
|
3769
4600
|
"""
|
|
3770
|
-
Paginated locations for the current shop
|
|
4601
|
+
Paginated locations for the current shop. Supports proximity (`near`), pickup-only filter (`hasPickupEnabled`), and `locationType` filter.
|
|
3771
4602
|
"""
|
|
3772
4603
|
locations(
|
|
3773
4604
|
"""Cursor for pagination"""
|
|
@@ -3804,6 +4635,14 @@ type Query {
|
|
|
3804
4635
|
"""Get a navigation menu by handle"""
|
|
3805
4636
|
menu(handle: String!): Menu
|
|
3806
4637
|
|
|
4638
|
+
"""Universal ID-based lookup (Relay Node spec)"""
|
|
4639
|
+
node(id: ID!, type: NodeType!): Node
|
|
4640
|
+
|
|
4641
|
+
"""
|
|
4642
|
+
Batch ID-based lookup; same NodeType dla all IDs. Missing/wrong IDs → null entries (preserved length).
|
|
4643
|
+
"""
|
|
4644
|
+
nodes(ids: [ID!]!, type: NodeType!): [Node]!
|
|
4645
|
+
|
|
3807
4646
|
"""Get a page by handle or ID"""
|
|
3808
4647
|
page(
|
|
3809
4648
|
"""Page handle"""
|
|
@@ -3831,6 +4670,9 @@ type Query {
|
|
|
3831
4670
|
sortKey: PageSortKeys! = TITLE
|
|
3832
4671
|
): ShopPageConnection!
|
|
3833
4672
|
|
|
4673
|
+
"""Get personalized product recommendations for the current customer"""
|
|
4674
|
+
personalizedRecommendations(first: Int = 10): ProductRecommendations!
|
|
4675
|
+
|
|
3834
4676
|
"""Get single product by ID or handle"""
|
|
3835
4677
|
product(
|
|
3836
4678
|
"""Product handle (slug)"""
|
|
@@ -3840,6 +4682,11 @@ type Query {
|
|
|
3840
4682
|
id: ID
|
|
3841
4683
|
): Product
|
|
3842
4684
|
|
|
4685
|
+
"""
|
|
4686
|
+
Get available filters for product listing (renamed from availableFilters in Storefront 5.0)
|
|
4687
|
+
"""
|
|
4688
|
+
productFilters(input: AvailableFiltersInput): AvailableFilters!
|
|
4689
|
+
|
|
3843
4690
|
"""Get recommended products similar to the given product"""
|
|
3844
4691
|
productRecommendations(
|
|
3845
4692
|
"""Type of recommendations (SIMILAR, COMPLEMENTARY, UPSELL)"""
|
|
@@ -3855,62 +4702,84 @@ type Query {
|
|
|
3855
4702
|
"""Get product reviews"""
|
|
3856
4703
|
productReviews(after: String, first: Int = 10, productId: ID!, reverse: Boolean = true, sortKey: ReviewSortKey = CREATED_AT): ProductReviewConnection!
|
|
3857
4704
|
|
|
3858
|
-
"""Search products"""
|
|
3859
|
-
productSearch(
|
|
3860
|
-
"""Cursor for pagination"""
|
|
3861
|
-
after: String
|
|
3862
|
-
|
|
3863
|
-
"""Filter options"""
|
|
3864
|
-
filters: ProductFilterInput
|
|
3865
|
-
|
|
3866
|
-
"""Number of items to fetch"""
|
|
3867
|
-
first: Int! = 20
|
|
3868
|
-
|
|
3869
|
-
"""Search query"""
|
|
3870
|
-
query: String!
|
|
3871
|
-
): ProductConnection!
|
|
3872
|
-
|
|
3873
4705
|
"""List products with pagination and filtering"""
|
|
3874
4706
|
products(
|
|
3875
|
-
"""Cursor for pagination"""
|
|
4707
|
+
"""Cursor for forward pagination"""
|
|
3876
4708
|
after: String
|
|
3877
4709
|
|
|
3878
|
-
"""
|
|
3879
|
-
|
|
4710
|
+
"""Cursor for backward pagination"""
|
|
4711
|
+
before: String
|
|
3880
4712
|
|
|
3881
|
-
"""
|
|
3882
|
-
|
|
4713
|
+
"""Array of ProductFilter objects (multi-filter pattern)"""
|
|
4714
|
+
filters: [ProductFilter!]
|
|
3883
4715
|
|
|
3884
|
-
"""
|
|
4716
|
+
"""Number of items to fetch (forward pagination, max 100)"""
|
|
4717
|
+
first: Int
|
|
4718
|
+
|
|
4719
|
+
"""Number of items to fetch (backward pagination, max 100)"""
|
|
4720
|
+
last: Int
|
|
4721
|
+
|
|
4722
|
+
"""
|
|
4723
|
+
Search query (syntax: tag:, product_type:, vendor:, available_for_sale:, variants.price:>10, AND/OR/NOT)
|
|
4724
|
+
"""
|
|
3885
4725
|
query: String
|
|
3886
4726
|
|
|
3887
4727
|
"""Reverse sort order"""
|
|
3888
4728
|
reverse: Boolean! = false
|
|
3889
4729
|
|
|
3890
4730
|
"""Sort key"""
|
|
3891
|
-
sortKey: ProductSortKeys =
|
|
4731
|
+
sortKey: ProductSortKeys = RELEVANCE
|
|
3892
4732
|
): ProductConnection!
|
|
3893
4733
|
|
|
3894
|
-
"""Get personalized product recommendations"""
|
|
3895
|
-
recommendations(first: Int = 10): ProductRecommendations!
|
|
3896
|
-
|
|
3897
4734
|
"""Get referral program statistics"""
|
|
3898
4735
|
referralStats: ReferralStats
|
|
3899
4736
|
|
|
3900
4737
|
"""Get return by ID"""
|
|
3901
|
-
return(
|
|
4738
|
+
return(id: ID!): ReturnPayload!
|
|
3902
4739
|
|
|
3903
4740
|
"""Get available return reasons"""
|
|
3904
4741
|
returnReasons: [ReturnReasonOption!]!
|
|
3905
4742
|
|
|
3906
4743
|
"""Get returns for an order"""
|
|
3907
|
-
returnsByOrder(
|
|
4744
|
+
returnsByOrder(orderId: ID!): ReturnConnection!
|
|
3908
4745
|
|
|
3909
4746
|
"""Get product review statistics"""
|
|
3910
4747
|
reviewStats(productId: ID!): ReviewStats!
|
|
3911
4748
|
|
|
4749
|
+
"""Search products (DoSwiftly alias for products() with required query)"""
|
|
4750
|
+
searchProducts(
|
|
4751
|
+
"""Cursor for forward pagination"""
|
|
4752
|
+
after: String
|
|
4753
|
+
|
|
4754
|
+
"""Cursor for backward pagination"""
|
|
4755
|
+
before: String
|
|
4756
|
+
|
|
4757
|
+
"""Array of ProductFilter objects"""
|
|
4758
|
+
filters: [ProductFilter!]
|
|
4759
|
+
|
|
4760
|
+
"""Number of items to fetch (forward pagination)"""
|
|
4761
|
+
first: Int
|
|
4762
|
+
|
|
4763
|
+
"""Number of items to fetch (backward pagination)"""
|
|
4764
|
+
last: Int
|
|
4765
|
+
|
|
4766
|
+
"""Search query (required)"""
|
|
4767
|
+
query: String!
|
|
4768
|
+
): ProductConnection!
|
|
4769
|
+
|
|
4770
|
+
"""
|
|
4771
|
+
Search suggestions (typeahead) — top-N products + styled query suggestions (Products only). Powered by PostgreSQL FTS with prefix matching for Polish morphology coverage.
|
|
4772
|
+
"""
|
|
4773
|
+
searchSuggestions(
|
|
4774
|
+
"""Maximum number of products to return (default 10, max 50)"""
|
|
4775
|
+
limit: Int = 10
|
|
4776
|
+
|
|
4777
|
+
"""Search query (typeahead input)"""
|
|
4778
|
+
query: String!
|
|
4779
|
+
): PredictiveSearchResult!
|
|
4780
|
+
|
|
3912
4781
|
"""Get shipment by ID"""
|
|
3913
|
-
shipment(
|
|
4782
|
+
shipment(id: ID!): ShipmentPayload!
|
|
3914
4783
|
|
|
3915
4784
|
"""Get shipment by tracking number"""
|
|
3916
4785
|
shipmentByTrackingNumber(trackingNumber: String!): ShipmentPayload!
|
|
@@ -3921,14 +4790,6 @@ type Query {
|
|
|
3921
4790
|
"""Get currency configuration for the current shop"""
|
|
3922
4791
|
shopCurrencyConfig: ShopCurrencyConfig!
|
|
3923
4792
|
|
|
3924
|
-
"""Get products similar to a specific product"""
|
|
3925
|
-
similarProducts(
|
|
3926
|
-
first: Int = 6
|
|
3927
|
-
|
|
3928
|
-
"""Product ID to find similar products for"""
|
|
3929
|
-
productId: String!
|
|
3930
|
-
): ProductRecommendations!
|
|
3931
|
-
|
|
3932
4793
|
"""Get translations for a language"""
|
|
3933
4794
|
translations(input: TranslationsInput!): Translations!
|
|
3934
4795
|
|
|
@@ -3948,7 +4809,13 @@ type Query {
|
|
|
3948
4809
|
): Wishlist
|
|
3949
4810
|
|
|
3950
4811
|
"""Get customer wishlists (requires customer auth)"""
|
|
3951
|
-
wishlists
|
|
4812
|
+
wishlists(
|
|
4813
|
+
"""Cursor: return items after this cursor"""
|
|
4814
|
+
after: String
|
|
4815
|
+
|
|
4816
|
+
"""First N items (1-100)"""
|
|
4817
|
+
first: Int = 20
|
|
4818
|
+
): WishlistConnection!
|
|
3952
4819
|
}
|
|
3953
4820
|
|
|
3954
4821
|
"""Type of product recommendations to return"""
|
|
@@ -3991,8 +4858,8 @@ type RedeemRewardPayload {
|
|
|
3991
4858
|
"""Whether redemption was successful"""
|
|
3992
4859
|
success: Boolean!
|
|
3993
4860
|
|
|
3994
|
-
"""
|
|
3995
|
-
userErrors: [
|
|
4861
|
+
"""Typed user errors"""
|
|
4862
|
+
userErrors: [UserError!]!
|
|
3996
4863
|
}
|
|
3997
4864
|
|
|
3998
4865
|
"""Referral program statistics"""
|
|
@@ -4338,6 +5205,15 @@ type SEO {
|
|
|
4338
5205
|
title: String
|
|
4339
5206
|
}
|
|
4340
5207
|
|
|
5208
|
+
"""Predictive search query suggestion (typeahead)"""
|
|
5209
|
+
type SearchQuerySuggestion {
|
|
5210
|
+
"""Suggestion with <mark> highlights matching the query prefix"""
|
|
5211
|
+
styledText: String!
|
|
5212
|
+
|
|
5213
|
+
"""Plain text suggestion (product title)"""
|
|
5214
|
+
text: String!
|
|
5215
|
+
}
|
|
5216
|
+
|
|
4341
5217
|
"""Selected product option"""
|
|
4342
5218
|
type SelectedOption {
|
|
4343
5219
|
"""Option name (e.g., "Size", "Color")"""
|
|
@@ -4360,8 +5236,8 @@ type Shipment {
|
|
|
4360
5236
|
"""When the shipment was delivered"""
|
|
4361
5237
|
deliveredAt: DateTime
|
|
4362
5238
|
|
|
4363
|
-
"""Estimated delivery
|
|
4364
|
-
|
|
5239
|
+
"""Estimated delivery timestamp"""
|
|
5240
|
+
estimatedDeliveryAt: DateTime
|
|
4365
5241
|
|
|
4366
5242
|
"""Tracking events timeline"""
|
|
4367
5243
|
events: [ShipmentEvent!]
|
|
@@ -4496,14 +5372,11 @@ enum ShipmentStatus {
|
|
|
4496
5372
|
|
|
4497
5373
|
"""Address input for shipping calculation"""
|
|
4498
5374
|
input ShippingAddressInput {
|
|
4499
|
-
"""Street address line 1"""
|
|
4500
|
-
address1: String
|
|
4501
|
-
|
|
4502
5375
|
"""City"""
|
|
4503
5376
|
city: String
|
|
4504
5377
|
|
|
4505
|
-
"""
|
|
4506
|
-
country:
|
|
5378
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
5379
|
+
country: CountryCode!
|
|
4507
5380
|
|
|
4508
5381
|
"""Email address"""
|
|
4509
5382
|
email: String
|
|
@@ -4517,11 +5390,14 @@ input ShippingAddressInput {
|
|
|
4517
5390
|
"""Phone number"""
|
|
4518
5391
|
phone: String
|
|
4519
5392
|
|
|
4520
|
-
"""Postal/ZIP code"""
|
|
5393
|
+
"""Postal / ZIP code"""
|
|
4521
5394
|
postalCode: String
|
|
4522
5395
|
|
|
4523
|
-
"""
|
|
4524
|
-
|
|
5396
|
+
"""State / province / region"""
|
|
5397
|
+
state: String
|
|
5398
|
+
|
|
5399
|
+
"""First line of street address"""
|
|
5400
|
+
streetLine1: String
|
|
4525
5401
|
}
|
|
4526
5402
|
|
|
4527
5403
|
"""Shipping carrier information"""
|
|
@@ -4559,6 +5435,9 @@ type Shop {
|
|
|
4559
5435
|
"""Bot protection configuration (platform-level)"""
|
|
4560
5436
|
botProtection: BotProtectionInfo
|
|
4561
5437
|
|
|
5438
|
+
"""Industry-standard brand metadata (logo + slogan + colors)"""
|
|
5439
|
+
brand: Brand
|
|
5440
|
+
|
|
4562
5441
|
"""Complete branding configuration"""
|
|
4563
5442
|
branding: ShopBranding
|
|
4564
5443
|
|
|
@@ -4568,14 +5447,20 @@ type Shop {
|
|
|
4568
5447
|
"""Contact email address"""
|
|
4569
5448
|
contactEmail: String
|
|
4570
5449
|
|
|
5450
|
+
"""Contact information policy"""
|
|
5451
|
+
contactInformation: ShopPolicy
|
|
5452
|
+
|
|
4571
5453
|
"""Contact phone number"""
|
|
4572
5454
|
contactPhone: String
|
|
4573
5455
|
|
|
4574
5456
|
"""Default currency code (ISO 4217)"""
|
|
4575
|
-
currencyCode:
|
|
5457
|
+
currencyCode: CurrencyCode!
|
|
5458
|
+
|
|
5459
|
+
"""Customer account URL (login/orders) — z primaryDomain"""
|
|
5460
|
+
customerAccountUrl: URL
|
|
4576
5461
|
|
|
4577
|
-
"""Default language code"""
|
|
4578
|
-
defaultLanguage:
|
|
5462
|
+
"""Default language code (ISO 639-1)"""
|
|
5463
|
+
defaultLanguage: LanguageCode
|
|
4579
5464
|
|
|
4580
5465
|
"""Shop description"""
|
|
4581
5466
|
description: String
|
|
@@ -4583,26 +5468,55 @@ type Shop {
|
|
|
4583
5468
|
"""Shop unique identifier"""
|
|
4584
5469
|
id: ID!
|
|
4585
5470
|
|
|
5471
|
+
"""Legal notice / impressum"""
|
|
5472
|
+
legalNotice: ShopPolicy
|
|
5473
|
+
|
|
4586
5474
|
"""Locale to currency mapping for auto-detection (SSOT)"""
|
|
4587
5475
|
localeToCurrencyMap: [LocaleCurrencyMapping!]!
|
|
4588
5476
|
|
|
4589
5477
|
"""Shop logo"""
|
|
4590
5478
|
logo: Image
|
|
4591
5479
|
|
|
5480
|
+
"""
|
|
5481
|
+
Money display format z `{{amount}}` placeholder, np. "{{amount}} zł"
|
|
5482
|
+
"""
|
|
5483
|
+
moneyFormat: String!
|
|
5484
|
+
|
|
4592
5485
|
"""Shop name"""
|
|
4593
5486
|
name: String!
|
|
4594
5487
|
|
|
4595
5488
|
"""Supported payment currencies"""
|
|
4596
|
-
paymentCurrencies: [
|
|
5489
|
+
paymentCurrencies: [CurrencyCode!]!
|
|
5490
|
+
|
|
5491
|
+
"""Payment configuration (currency, accepted cards, digital wallets)"""
|
|
5492
|
+
paymentSettings: PaymentSettings!
|
|
5493
|
+
|
|
5494
|
+
"""Primary domain (host + URL + SSL state)"""
|
|
5495
|
+
primaryDomain: Domain!
|
|
5496
|
+
|
|
5497
|
+
"""Privacy policy"""
|
|
5498
|
+
privacyPolicy: ShopPolicy
|
|
5499
|
+
|
|
5500
|
+
"""Refund / return policy"""
|
|
5501
|
+
refundPolicy: ShopPolicy
|
|
4597
5502
|
|
|
4598
|
-
"""
|
|
4599
|
-
|
|
5503
|
+
"""Shipping policy"""
|
|
5504
|
+
shippingPolicy: ShopPolicy
|
|
5505
|
+
|
|
5506
|
+
"""Countries shop ships to (z shipping zones)"""
|
|
5507
|
+
shipsToCountries: [CountryCode!]!
|
|
4600
5508
|
|
|
4601
5509
|
"""Supported currencies for price display"""
|
|
4602
|
-
supportedCurrencies: [
|
|
5510
|
+
supportedCurrencies: [CurrencyCode!]!
|
|
5511
|
+
|
|
5512
|
+
"""Supported languages (ISO 639-1)"""
|
|
5513
|
+
supportedLanguages: [LanguageCode!]
|
|
5514
|
+
|
|
5515
|
+
"""Terms of sale"""
|
|
5516
|
+
termsOfSale: ShopPolicy
|
|
4603
5517
|
|
|
4604
|
-
"""
|
|
4605
|
-
|
|
5518
|
+
"""Terms of service"""
|
|
5519
|
+
termsOfService: ShopPolicy
|
|
4606
5520
|
|
|
4607
5521
|
"""Shop timezone"""
|
|
4608
5522
|
timezone: String
|
|
@@ -4610,23 +5524,23 @@ type Shop {
|
|
|
4610
5524
|
|
|
4611
5525
|
"""Shop physical address"""
|
|
4612
5526
|
type ShopAddress {
|
|
4613
|
-
"""Street address line 1"""
|
|
4614
|
-
address1: String
|
|
4615
|
-
|
|
4616
|
-
"""Street address line 2"""
|
|
4617
|
-
address2: String
|
|
4618
|
-
|
|
4619
5527
|
"""City"""
|
|
4620
5528
|
city: String
|
|
4621
5529
|
|
|
4622
5530
|
"""Country code (ISO 3166-1 alpha-2)"""
|
|
4623
5531
|
country: String
|
|
4624
5532
|
|
|
4625
|
-
"""Postal/ZIP code"""
|
|
5533
|
+
"""Postal / ZIP code"""
|
|
4626
5534
|
postalCode: String
|
|
4627
5535
|
|
|
4628
|
-
"""State/
|
|
5536
|
+
"""State / province"""
|
|
4629
5537
|
state: String
|
|
5538
|
+
|
|
5539
|
+
"""First line of street address"""
|
|
5540
|
+
streetLine1: String
|
|
5541
|
+
|
|
5542
|
+
"""Second line of street address"""
|
|
5543
|
+
streetLine2: String
|
|
4630
5544
|
}
|
|
4631
5545
|
|
|
4632
5546
|
"""Shop branding configuration"""
|
|
@@ -4691,11 +5605,11 @@ type ShopPage {
|
|
|
4691
5605
|
"""HTML body content"""
|
|
4692
5606
|
body: String!
|
|
4693
5607
|
|
|
4694
|
-
"""Auto-generated plain text summary"""
|
|
4695
|
-
bodySummary: String!
|
|
4696
|
-
|
|
4697
5608
|
"""Created date (ISO 8601)"""
|
|
4698
|
-
createdAt:
|
|
5609
|
+
createdAt: DateTime!
|
|
5610
|
+
|
|
5611
|
+
"""Auto-generated plain text summary"""
|
|
5612
|
+
excerpt: String!
|
|
4699
5613
|
|
|
4700
5614
|
"""URL handle"""
|
|
4701
5615
|
handle: String!
|
|
@@ -4704,7 +5618,7 @@ type ShopPage {
|
|
|
4704
5618
|
id: ID!
|
|
4705
5619
|
|
|
4706
5620
|
"""Publish date (ISO 8601)"""
|
|
4707
|
-
publishedAt:
|
|
5621
|
+
publishedAt: DateTime
|
|
4708
5622
|
|
|
4709
5623
|
"""SEO metadata"""
|
|
4710
5624
|
seo: SEO
|
|
@@ -4713,7 +5627,7 @@ type ShopPage {
|
|
|
4713
5627
|
title: String!
|
|
4714
5628
|
|
|
4715
5629
|
"""Updated date (ISO 8601)"""
|
|
4716
|
-
updatedAt:
|
|
5630
|
+
updatedAt: DateTime!
|
|
4717
5631
|
}
|
|
4718
5632
|
|
|
4719
5633
|
"""Paginated shop pages"""
|
|
@@ -4737,6 +5651,24 @@ type ShopPageEdge {
|
|
|
4737
5651
|
node: ShopPage!
|
|
4738
5652
|
}
|
|
4739
5653
|
|
|
5654
|
+
"""Shop legal/info policy document"""
|
|
5655
|
+
type ShopPolicy implements Node {
|
|
5656
|
+
"""Policy body (markdown)"""
|
|
5657
|
+
body: String!
|
|
5658
|
+
|
|
5659
|
+
"""URL-friendly handle (slug)"""
|
|
5660
|
+
handle: String!
|
|
5661
|
+
|
|
5662
|
+
"""Globally-unique identifier"""
|
|
5663
|
+
id: ID!
|
|
5664
|
+
|
|
5665
|
+
"""Policy title (e.g. "Privacy Policy")"""
|
|
5666
|
+
title: String!
|
|
5667
|
+
|
|
5668
|
+
"""Canonical URL on storefront"""
|
|
5669
|
+
url: URL!
|
|
5670
|
+
}
|
|
5671
|
+
|
|
4740
5672
|
"""Shop social media links"""
|
|
4741
5673
|
type SocialLinks {
|
|
4742
5674
|
"""Facebook page URL"""
|
|
@@ -4761,10 +5693,15 @@ type SocialLinks {
|
|
|
4761
5693
|
youtube: String
|
|
4762
5694
|
}
|
|
4763
5695
|
|
|
4764
|
-
"""Per-location stock availability
|
|
5696
|
+
"""Per-location stock availability"""
|
|
4765
5697
|
type StoreAvailability {
|
|
5698
|
+
"""
|
|
5699
|
+
Available stock at this location (computed: stock - reserved). Token-gated: null for anonymous requests, Int for authenticated customer context.
|
|
5700
|
+
"""
|
|
5701
|
+
availableStock: Int
|
|
5702
|
+
|
|
4766
5703
|
"""Whether the variant is in stock at this location"""
|
|
4767
|
-
|
|
5704
|
+
isAvailable: Boolean!
|
|
4768
5705
|
|
|
4769
5706
|
"""Location where this stock resides"""
|
|
4770
5707
|
location: Location!
|
|
@@ -4772,12 +5709,7 @@ type StoreAvailability {
|
|
|
4772
5709
|
"""
|
|
4773
5710
|
Human-readable pickup readiness string, localized (e.g., "Usually ready in 2 hours"). Null if location does not support pickup.
|
|
4774
5711
|
"""
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
"""
|
|
4778
|
-
Quantity available at this location. Token-gated: null for anonymous requests, Int for authenticated customer context (Shopify parity).
|
|
4779
|
-
"""
|
|
4780
|
-
quantityAvailable: Int
|
|
5712
|
+
pickupTime: String
|
|
4781
5713
|
}
|
|
4782
5714
|
|
|
4783
5715
|
"""Paginated store availability connection"""
|
|
@@ -4813,6 +5745,17 @@ enum StorefrontOrderStatus {
|
|
|
4813
5745
|
PROCESSING
|
|
4814
5746
|
}
|
|
4815
5747
|
|
|
5748
|
+
"""Payload for customerSubscribeToMarketing mutation"""
|
|
5749
|
+
type SubscribeToMarketingPayload {
|
|
5750
|
+
"""
|
|
5751
|
+
Always true (anti-enumeration). Backend may silently skip enqueue if rate-limited or already SUBSCRIBED.
|
|
5752
|
+
"""
|
|
5753
|
+
accepted: Boolean!
|
|
5754
|
+
|
|
5755
|
+
"""User-facing errors"""
|
|
5756
|
+
userErrors: [UserError!]!
|
|
5757
|
+
}
|
|
5758
|
+
|
|
4816
5759
|
"""Tax line item"""
|
|
4817
5760
|
type TaxLine {
|
|
4818
5761
|
"""Tax amount"""
|
|
@@ -4891,6 +5834,31 @@ input TranslationsInput {
|
|
|
4891
5834
|
namespaces: [String!]
|
|
4892
5835
|
}
|
|
4893
5836
|
|
|
5837
|
+
"""
|
|
5838
|
+
URL string per RFC 3986 (e.g. "https://shop.example.com/products/foo").
|
|
5839
|
+
"""
|
|
5840
|
+
scalar URL
|
|
5841
|
+
|
|
5842
|
+
"""Measurement system (metric vs imperial) — wpływa na display formats"""
|
|
5843
|
+
enum UnitSystem {
|
|
5844
|
+
IMPERIAL_SYSTEM
|
|
5845
|
+
METRIC_SYSTEM
|
|
5846
|
+
}
|
|
5847
|
+
|
|
5848
|
+
"""
|
|
5849
|
+
Unsigned 64-bit integer, JSON-serialized as String (BigInt-safe). Format: "{integer}".
|
|
5850
|
+
"""
|
|
5851
|
+
scalar UnsignedInt64
|
|
5852
|
+
|
|
5853
|
+
"""Payload for customerUnsubscribeFromMarketing mutation"""
|
|
5854
|
+
type UnsubscribeFromMarketingPayload {
|
|
5855
|
+
"""Always true (anti-enumeration)."""
|
|
5856
|
+
accepted: Boolean!
|
|
5857
|
+
|
|
5858
|
+
"""User-facing errors"""
|
|
5859
|
+
userErrors: [UserError!]!
|
|
5860
|
+
}
|
|
5861
|
+
|
|
4894
5862
|
"""URL redirect (SEO, store migration)"""
|
|
4895
5863
|
type UrlRedirect {
|
|
4896
5864
|
"""Source path"""
|
|
@@ -4921,7 +5889,7 @@ type UserError {
|
|
|
4921
5889
|
message: String!
|
|
4922
5890
|
}
|
|
4923
5891
|
|
|
4924
|
-
"""Per-product variant option filter (Color
|
|
5892
|
+
"""Per-product variant option filter (e.g. Color=Red)"""
|
|
4925
5893
|
input VariantOptionFilter {
|
|
4926
5894
|
"""Option name (e.g. "Color")"""
|
|
4927
5895
|
name: String!
|
|
@@ -4930,6 +5898,23 @@ input VariantOptionFilter {
|
|
|
4930
5898
|
value: String!
|
|
4931
5899
|
}
|
|
4932
5900
|
|
|
5901
|
+
"""Weight value with unit"""
|
|
5902
|
+
type Weight {
|
|
5903
|
+
"""Weight unit"""
|
|
5904
|
+
unit: WeightUnit!
|
|
5905
|
+
|
|
5906
|
+
"""Weight value"""
|
|
5907
|
+
value: Float!
|
|
5908
|
+
}
|
|
5909
|
+
|
|
5910
|
+
"""Weight unit (GRAMS canonical, KILOGRAMS/OUNCES/POUNDS for display)"""
|
|
5911
|
+
enum WeightUnit {
|
|
5912
|
+
GRAMS
|
|
5913
|
+
KILOGRAMS
|
|
5914
|
+
OUNCES
|
|
5915
|
+
POUNDS
|
|
5916
|
+
}
|
|
5917
|
+
|
|
4933
5918
|
"""Customer wishlist"""
|
|
4934
5919
|
type Wishlist {
|
|
4935
5920
|
"""Created date"""
|
|
@@ -4955,12 +5940,36 @@ type Wishlist {
|
|
|
4955
5940
|
updatedAt: DateTime!
|
|
4956
5941
|
}
|
|
4957
5942
|
|
|
5943
|
+
"""Paginated list of wishlists"""
|
|
5944
|
+
type WishlistConnection {
|
|
5945
|
+
"""Wishlist edges with cursors"""
|
|
5946
|
+
edges: [WishlistEdge!]!
|
|
5947
|
+
|
|
5948
|
+
"""Wishlist nodes (shortcut for edges.map(e => e.node))"""
|
|
5949
|
+
nodes: [Wishlist!]!
|
|
5950
|
+
|
|
5951
|
+
"""Pagination info"""
|
|
5952
|
+
pageInfo: PageInfo!
|
|
5953
|
+
|
|
5954
|
+
"""Total count of wishlists"""
|
|
5955
|
+
totalCount: Int!
|
|
5956
|
+
}
|
|
5957
|
+
|
|
4958
5958
|
"""Input for creating a wishlist"""
|
|
4959
5959
|
input WishlistCreateInput {
|
|
4960
5960
|
isPublic: Boolean = false
|
|
4961
5961
|
name: String = "My Wishlist"
|
|
4962
5962
|
}
|
|
4963
5963
|
|
|
5964
|
+
"""Wishlist edge for pagination"""
|
|
5965
|
+
type WishlistEdge {
|
|
5966
|
+
"""Cursor for pagination"""
|
|
5967
|
+
cursor: String!
|
|
5968
|
+
|
|
5969
|
+
"""Wishlist node"""
|
|
5970
|
+
node: Wishlist!
|
|
5971
|
+
}
|
|
5972
|
+
|
|
4964
5973
|
"""Wishlist item"""
|
|
4965
5974
|
type WishlistItem {
|
|
4966
5975
|
"""Date added"""
|
|
@@ -4974,7 +5983,7 @@ type WishlistItem {
|
|
|
4974
5983
|
notifyOnSale: Boolean!
|
|
4975
5984
|
|
|
4976
5985
|
"""Price when added to wishlist"""
|
|
4977
|
-
|
|
5986
|
+
priceWhenAdded: Money!
|
|
4978
5987
|
|
|
4979
5988
|
"""Product details"""
|
|
4980
5989
|
product: Product
|
|
@@ -4995,7 +6004,7 @@ input WishlistItemInput {
|
|
|
4995
6004
|
|
|
4996
6005
|
"""Wishlist mutation payload"""
|
|
4997
6006
|
type WishlistPayload {
|
|
4998
|
-
"""
|
|
4999
|
-
userErrors: [
|
|
6007
|
+
"""Typed user errors"""
|
|
6008
|
+
userErrors: [UserError!]!
|
|
5000
6009
|
wishlist: Wishlist
|
|
5001
6010
|
}
|