@doswiftly/storefront-operations 5.4.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +733 -0
- package/fragments.graphql +156 -150
- package/mutations.graphql +104 -55
- package/package.json +1 -1
- package/queries.graphql +72 -44
- package/schema.graphql +1669 -759
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
|
|
1571
|
+
|
|
1572
|
+
"""
|
|
1573
|
+
User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
|
|
1574
|
+
"""
|
|
1575
|
+
userErrors: [UserError!]!
|
|
1576
|
+
}
|
|
1430
1577
|
|
|
1431
|
-
|
|
1432
|
-
|
|
1578
|
+
"""Checkout email update payload"""
|
|
1579
|
+
type CheckoutUpdateEmailPayload {
|
|
1580
|
+
"""Updated checkout"""
|
|
1581
|
+
checkout: Checkout
|
|
1433
1582
|
|
|
1434
|
-
"""
|
|
1435
|
-
|
|
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,10 +1999,16 @@ 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!
|
|
1583
2012
|
|
|
1584
2013
|
"""Account creation date"""
|
|
1585
2014
|
createdAt: DateTime!
|
|
@@ -1594,10 +2023,7 @@ type Customer {
|
|
|
1594
2023
|
email: String!
|
|
1595
2024
|
|
|
1596
2025
|
"""Email marketing consent state"""
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
"""Whether email is verified"""
|
|
1600
|
-
emailVerified: Boolean!
|
|
2026
|
+
emailMarketing: EmailMarketingState!
|
|
1601
2027
|
|
|
1602
2028
|
"""First name"""
|
|
1603
2029
|
firstName: String
|
|
@@ -1605,18 +2031,24 @@ type Customer {
|
|
|
1605
2031
|
"""Unique identifier"""
|
|
1606
2032
|
id: ID!
|
|
1607
2033
|
|
|
2034
|
+
"""Whether email is verified"""
|
|
2035
|
+
isEmailVerified: Boolean!
|
|
2036
|
+
|
|
1608
2037
|
"""Last name"""
|
|
1609
2038
|
lastName: String
|
|
1610
2039
|
|
|
2040
|
+
"""Total orders count (UnsignedInt64 — BigInt-safe)"""
|
|
2041
|
+
orderCount: UnsignedInt64!
|
|
2042
|
+
|
|
1611
2043
|
"""Customer orders"""
|
|
1612
2044
|
orders(after: String, first: Int = 10): OrderConnection!
|
|
1613
2045
|
|
|
1614
|
-
"""Total orders count"""
|
|
1615
|
-
ordersCount: Int!
|
|
1616
|
-
|
|
1617
2046
|
"""Phone number"""
|
|
1618
2047
|
phone: String
|
|
1619
2048
|
|
|
2049
|
+
"""Customer tags for segmentation (e.g. vip, wholesale, b2b)"""
|
|
2050
|
+
tags: [String!]!
|
|
2051
|
+
|
|
1620
2052
|
"""Total amount spent"""
|
|
1621
2053
|
totalSpent: Money!
|
|
1622
2054
|
|
|
@@ -1629,8 +2061,8 @@ type CustomerAccessToken {
|
|
|
1629
2061
|
"""Access token string"""
|
|
1630
2062
|
accessToken: String!
|
|
1631
2063
|
|
|
1632
|
-
"""Token expiration"""
|
|
1633
|
-
expiresAt:
|
|
2064
|
+
"""Token expiration (ISO 8601)"""
|
|
2065
|
+
expiresAt: DateTime!
|
|
1634
2066
|
}
|
|
1635
2067
|
|
|
1636
2068
|
"""Input for customer login"""
|
|
@@ -1642,60 +2074,30 @@ input CustomerAccessTokenCreateInput {
|
|
|
1642
2074
|
password: String!
|
|
1643
2075
|
}
|
|
1644
2076
|
|
|
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
|
-
}
|
|
2077
|
+
"""
|
|
2078
|
+
Result of customerActivateByUrl mutation — admin-created customer sets initial password
|
|
2079
|
+
"""
|
|
2080
|
+
type CustomerActivatePayload {
|
|
2081
|
+
"""Activated customer"""
|
|
2082
|
+
customer: Customer
|
|
1665
2083
|
|
|
1666
|
-
"""
|
|
1667
|
-
type CustomerAccessTokenRenewPayload {
|
|
1668
|
-
"""New access token"""
|
|
2084
|
+
"""Auto-login access token"""
|
|
1669
2085
|
customerAccessToken: CustomerAccessToken
|
|
1670
2086
|
|
|
1671
|
-
"""
|
|
2087
|
+
"""
|
|
2088
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2089
|
+
"""
|
|
1672
2090
|
userErrors: [UserError!]!
|
|
1673
2091
|
}
|
|
1674
2092
|
|
|
1675
2093
|
"""Result of address creation"""
|
|
1676
|
-
type
|
|
2094
|
+
type CustomerAddAddressPayload {
|
|
1677
2095
|
"""Created address"""
|
|
1678
2096
|
address: MailingAddress
|
|
1679
2097
|
|
|
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"""
|
|
2098
|
+
"""
|
|
2099
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2100
|
+
"""
|
|
1699
2101
|
userErrors: [UserError!]!
|
|
1700
2102
|
}
|
|
1701
2103
|
|
|
@@ -1717,27 +2119,6 @@ input CustomerCreateInput {
|
|
|
1717
2119
|
phone: String
|
|
1718
2120
|
}
|
|
1719
2121
|
|
|
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
2122
|
"""Customer group for B2B pricing"""
|
|
1742
2123
|
type CustomerGroup {
|
|
1743
2124
|
"""Group code"""
|
|
@@ -1759,21 +2140,108 @@ type CustomerGroup {
|
|
|
1759
2140
|
taxExempt: Boolean!
|
|
1760
2141
|
}
|
|
1761
2142
|
|
|
1762
|
-
"""Result of
|
|
1763
|
-
type
|
|
1764
|
-
"""
|
|
2143
|
+
"""Result of customer login"""
|
|
2144
|
+
type CustomerLoginPayload {
|
|
2145
|
+
"""Access token"""
|
|
2146
|
+
customerAccessToken: CustomerAccessToken
|
|
2147
|
+
|
|
2148
|
+
"""
|
|
2149
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2150
|
+
"""
|
|
2151
|
+
userErrors: [UserError!]!
|
|
2152
|
+
}
|
|
2153
|
+
|
|
2154
|
+
"""Result of token deletion (logout)"""
|
|
2155
|
+
type CustomerLogoutPayload {
|
|
2156
|
+
"""Deleted access token"""
|
|
2157
|
+
deletedAccessToken: String
|
|
2158
|
+
|
|
2159
|
+
"""Deleted token ID"""
|
|
2160
|
+
deletedCustomerAccessTokenId: String
|
|
2161
|
+
|
|
2162
|
+
"""
|
|
2163
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2164
|
+
"""
|
|
2165
|
+
userErrors: [UserError!]!
|
|
2166
|
+
}
|
|
2167
|
+
|
|
2168
|
+
"""Result of token renewal"""
|
|
2169
|
+
type CustomerRefreshTokenPayload {
|
|
2170
|
+
"""New 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 address deletion"""
|
|
2180
|
+
type CustomerRemoveAddressPayload {
|
|
2181
|
+
"""Deleted address ID"""
|
|
2182
|
+
deletedAddressId: ID
|
|
2183
|
+
|
|
2184
|
+
"""
|
|
2185
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2186
|
+
"""
|
|
2187
|
+
userErrors: [UserError!]!
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
"""Result of password recovery"""
|
|
2191
|
+
type CustomerRequestPasswordResetPayload {
|
|
2192
|
+
"""
|
|
2193
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2194
|
+
"""
|
|
2195
|
+
userErrors: [UserError!]!
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
"""Result of customerResetByUrl mutation — password reset via signed URL"""
|
|
2199
|
+
type CustomerResetPasswordPayload {
|
|
2200
|
+
"""Customer with reset password"""
|
|
2201
|
+
customer: Customer
|
|
2202
|
+
|
|
2203
|
+
"""Auto-login access token"""
|
|
2204
|
+
customerAccessToken: CustomerAccessToken
|
|
2205
|
+
|
|
2206
|
+
"""
|
|
2207
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2208
|
+
"""
|
|
1765
2209
|
userErrors: [UserError!]!
|
|
1766
2210
|
}
|
|
1767
2211
|
|
|
1768
|
-
"""Result of
|
|
1769
|
-
type
|
|
2212
|
+
"""Result of default address update"""
|
|
2213
|
+
type CustomerSetDefaultAddressPayload {
|
|
1770
2214
|
"""Updated customer"""
|
|
1771
2215
|
customer: Customer
|
|
1772
2216
|
|
|
1773
|
-
"""
|
|
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 customer creation"""
|
|
2224
|
+
type CustomerSignupPayload {
|
|
2225
|
+
"""Created customer"""
|
|
2226
|
+
customer: Customer
|
|
2227
|
+
|
|
2228
|
+
"""Access token for new customer"""
|
|
1774
2229
|
customerAccessToken: CustomerAccessToken
|
|
1775
2230
|
|
|
1776
|
-
"""
|
|
2231
|
+
"""
|
|
2232
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2233
|
+
"""
|
|
2234
|
+
userErrors: [UserError!]!
|
|
2235
|
+
}
|
|
2236
|
+
|
|
2237
|
+
"""Result of address update"""
|
|
2238
|
+
type CustomerUpdateAddressPayload {
|
|
2239
|
+
"""Updated address"""
|
|
2240
|
+
address: MailingAddress
|
|
2241
|
+
|
|
2242
|
+
"""
|
|
2243
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2244
|
+
"""
|
|
1777
2245
|
userErrors: [UserError!]!
|
|
1778
2246
|
}
|
|
1779
2247
|
|
|
@@ -1794,7 +2262,9 @@ type CustomerUpdatePayload {
|
|
|
1794
2262
|
"""Updated customer"""
|
|
1795
2263
|
customer: Customer
|
|
1796
2264
|
|
|
1797
|
-
"""
|
|
2265
|
+
"""
|
|
2266
|
+
User errors (code is namespaced — e.g. CUSTOMER_NOT_FOUND, CUSTOMER_TOKEN_INVALID, CUSTOMER_PASSWORD_TOO_WEAK)
|
|
2267
|
+
"""
|
|
1798
2268
|
userErrors: [UserError!]!
|
|
1799
2269
|
}
|
|
1800
2270
|
|
|
@@ -1803,6 +2273,11 @@ A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date
|
|
|
1803
2273
|
"""
|
|
1804
2274
|
scalar DateTime
|
|
1805
2275
|
|
|
2276
|
+
"""
|
|
2277
|
+
Decimal money amount, JSON-serialized as String. Format: "{int}.{dec}" e.g. "10.50".
|
|
2278
|
+
"""
|
|
2279
|
+
scalar Decimal
|
|
2280
|
+
|
|
1806
2281
|
"""Estimated delivery timeframe"""
|
|
1807
2282
|
type DeliveryEstimate {
|
|
1808
2283
|
"""Human-readable delivery estimate"""
|
|
@@ -1847,9 +2322,6 @@ type DiscountApplication {
|
|
|
1847
2322
|
"""Items affected by this discount (for BXGY type)"""
|
|
1848
2323
|
affectedItems: [DiscountAffectedItem!]
|
|
1849
2324
|
|
|
1850
|
-
"""Whether discount is applicable"""
|
|
1851
|
-
applicable: Boolean!
|
|
1852
|
-
|
|
1853
2325
|
"""Buy quantity for BXGY (e.g., 2 in "Buy 2 Get 1")"""
|
|
1854
2326
|
buyQuantity: Int
|
|
1855
2327
|
|
|
@@ -1862,6 +2334,9 @@ type DiscountApplication {
|
|
|
1862
2334
|
"""Get quantity for BXGY (e.g., 1 in "Buy 2 Get 1")"""
|
|
1863
2335
|
getQuantity: Int
|
|
1864
2336
|
|
|
2337
|
+
"""Whether discount is applicable"""
|
|
2338
|
+
isApplicable: Boolean!
|
|
2339
|
+
|
|
1865
2340
|
"""Discount title/description"""
|
|
1866
2341
|
title: String
|
|
1867
2342
|
|
|
@@ -1882,11 +2357,11 @@ enum DiscountApplicationType {
|
|
|
1882
2357
|
|
|
1883
2358
|
"""Discount code applied to checkout"""
|
|
1884
2359
|
type DiscountCode {
|
|
1885
|
-
"""Whether the code is currently applicable"""
|
|
1886
|
-
applicable: Boolean!
|
|
1887
|
-
|
|
1888
2360
|
"""Discount code string"""
|
|
1889
2361
|
code: String!
|
|
2362
|
+
|
|
2363
|
+
"""Whether the code is currently applicable"""
|
|
2364
|
+
isApplicable: Boolean!
|
|
1890
2365
|
}
|
|
1891
2366
|
|
|
1892
2367
|
"""Error codes for discount validation"""
|
|
@@ -1940,7 +2415,29 @@ type DiscountValidationResult {
|
|
|
1940
2415
|
error: DiscountValidationError
|
|
1941
2416
|
|
|
1942
2417
|
"""Whether the discount code is valid"""
|
|
1943
|
-
|
|
2418
|
+
isValid: Boolean!
|
|
2419
|
+
}
|
|
2420
|
+
|
|
2421
|
+
"""Shop domain (host, full URL, SSL state)"""
|
|
2422
|
+
type Domain {
|
|
2423
|
+
"""Host name (e.g. "shop.example.com")"""
|
|
2424
|
+
host: String!
|
|
2425
|
+
|
|
2426
|
+
"""Whether HTTPS is enforced"""
|
|
2427
|
+
isSslEnabled: Boolean!
|
|
2428
|
+
|
|
2429
|
+
"""Full URL z protocol"""
|
|
2430
|
+
url: URL!
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
"""Customer email marketing consent state (Prisma-derived)."""
|
|
2434
|
+
enum EmailMarketingState {
|
|
2435
|
+
INVALID
|
|
2436
|
+
NOT_SUBSCRIBED
|
|
2437
|
+
PENDING
|
|
2438
|
+
REDACTED
|
|
2439
|
+
SUBSCRIBED
|
|
2440
|
+
UNSUBSCRIBED
|
|
1944
2441
|
}
|
|
1945
2442
|
|
|
1946
2443
|
"""Exchange rate between currencies"""
|
|
@@ -1961,6 +2458,60 @@ type ExchangeRate {
|
|
|
1961
2458
|
updatedAt: DateTime!
|
|
1962
2459
|
}
|
|
1963
2460
|
|
|
2461
|
+
"""Faceted filter for product listing"""
|
|
2462
|
+
type Filter {
|
|
2463
|
+
"""
|
|
2464
|
+
Unique filter identifier (e.g., "filter.v.option.color", "filter.v.price")
|
|
2465
|
+
"""
|
|
2466
|
+
id: ID!
|
|
2467
|
+
|
|
2468
|
+
"""Display label (e.g., "Color", "Price", "Availability")"""
|
|
2469
|
+
label: String!
|
|
2470
|
+
|
|
2471
|
+
"""Display hint (SWATCH for COLOR, IMAGE for pattern, TEXT default)"""
|
|
2472
|
+
presentation: FilterPresentation
|
|
2473
|
+
|
|
2474
|
+
"""Filter type (LIST | PRICE_RANGE | BOOLEAN)"""
|
|
2475
|
+
type: FilterType!
|
|
2476
|
+
|
|
2477
|
+
"""Available values for this filter, with product counts"""
|
|
2478
|
+
values: [FilterValue!]!
|
|
2479
|
+
}
|
|
2480
|
+
|
|
2481
|
+
"""Filter presentation hint"""
|
|
2482
|
+
enum FilterPresentation {
|
|
2483
|
+
IMAGE
|
|
2484
|
+
SWATCH
|
|
2485
|
+
TEXT
|
|
2486
|
+
}
|
|
2487
|
+
|
|
2488
|
+
"""Type of filter"""
|
|
2489
|
+
enum FilterType {
|
|
2490
|
+
BOOLEAN
|
|
2491
|
+
LIST
|
|
2492
|
+
PRICE_RANGE
|
|
2493
|
+
}
|
|
2494
|
+
|
|
2495
|
+
"""Filter value with product count"""
|
|
2496
|
+
type FilterValue {
|
|
2497
|
+
"""Number of products matching this value in current result set"""
|
|
2498
|
+
count: Int!
|
|
2499
|
+
|
|
2500
|
+
"""Unique identifier within filter"""
|
|
2501
|
+
id: ID!
|
|
2502
|
+
|
|
2503
|
+
"""
|
|
2504
|
+
Pre-built ProductFilter input — paste verbatim into `filters` arg to refetch with this value applied. Example: `{"variantOption":{"name":"Color","value":"Red"}}`
|
|
2505
|
+
"""
|
|
2506
|
+
input: JSON!
|
|
2507
|
+
|
|
2508
|
+
"""Display label (e.g., "Red", "Extra Large", "$50 - $200")"""
|
|
2509
|
+
label: String!
|
|
2510
|
+
|
|
2511
|
+
"""DoSwiftly: visual swatch (color hex or pattern image)"""
|
|
2512
|
+
swatch: AttributeSwatch
|
|
2513
|
+
}
|
|
2514
|
+
|
|
1964
2515
|
"""Free shipping progress indicator"""
|
|
1965
2516
|
type FreeShippingProgress {
|
|
1966
2517
|
"""Current cart subtotal"""
|
|
@@ -1993,8 +2544,8 @@ type GenerateReferralCodePayload {
|
|
|
1993
2544
|
"""Whether generation was successful"""
|
|
1994
2545
|
success: Boolean!
|
|
1995
2546
|
|
|
1996
|
-
"""
|
|
1997
|
-
userErrors: [
|
|
2547
|
+
"""Typed user errors"""
|
|
2548
|
+
userErrors: [UserError!]!
|
|
1998
2549
|
}
|
|
1999
2550
|
|
|
2000
2551
|
"""Geographic coordinates (latitude/longitude)"""
|
|
@@ -2023,10 +2574,9 @@ type GiftCard {
|
|
|
2023
2574
|
"""Initial gift card amount"""
|
|
2024
2575
|
initialAmount: Money!
|
|
2025
2576
|
|
|
2026
|
-
"""
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
"""Gift card code (masked for security)"""
|
|
2577
|
+
"""
|
|
2578
|
+
Gift card code (masked for security; client may slice last 4 chars for display)
|
|
2579
|
+
"""
|
|
2030
2580
|
maskedCode: String!
|
|
2031
2581
|
|
|
2032
2582
|
"""Personal message"""
|
|
@@ -2037,9 +2587,6 @@ type GiftCard {
|
|
|
2037
2587
|
|
|
2038
2588
|
"""Gift card status"""
|
|
2039
2589
|
status: GiftCardStatus!
|
|
2040
|
-
|
|
2041
|
-
"""Transaction history"""
|
|
2042
|
-
transactions: [GiftCardTransaction!]!
|
|
2043
2590
|
}
|
|
2044
2591
|
|
|
2045
2592
|
"""Gift card validation error"""
|
|
@@ -2062,15 +2609,6 @@ enum GiftCardErrorCode {
|
|
|
2062
2609
|
NOT_FOUND
|
|
2063
2610
|
}
|
|
2064
2611
|
|
|
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
2612
|
"""Gift card status"""
|
|
2075
2613
|
enum GiftCardStatus {
|
|
2076
2614
|
ACTIVE
|
|
@@ -2079,27 +2617,6 @@ enum GiftCardStatus {
|
|
|
2079
2617
|
USED
|
|
2080
2618
|
}
|
|
2081
2619
|
|
|
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
2620
|
"""Result of gift card validation"""
|
|
2104
2621
|
type GiftCardValidatePayload {
|
|
2105
2622
|
"""User errors"""
|
|
@@ -2121,7 +2638,7 @@ type GiftCardValidation {
|
|
|
2121
2638
|
giftCard: GiftCard
|
|
2122
2639
|
|
|
2123
2640
|
"""Whether the gift card is valid for use"""
|
|
2124
|
-
|
|
2641
|
+
isValid: Boolean!
|
|
2125
2642
|
}
|
|
2126
2643
|
|
|
2127
2644
|
"""Image with URL and metadata"""
|
|
@@ -2147,6 +2664,21 @@ type Image {
|
|
|
2147
2664
|
width: Int
|
|
2148
2665
|
}
|
|
2149
2666
|
|
|
2667
|
+
"""Paginated list of images (Relay Connection)"""
|
|
2668
|
+
type ImageConnection {
|
|
2669
|
+
"""Image edges with cursors"""
|
|
2670
|
+
edges: [ImageEdge!]!
|
|
2671
|
+
|
|
2672
|
+
"""Image nodes (shortcut for edges.map(e => e.node))"""
|
|
2673
|
+
nodes: [Image!]!
|
|
2674
|
+
|
|
2675
|
+
"""Pagination info"""
|
|
2676
|
+
pageInfo: PageInfo!
|
|
2677
|
+
|
|
2678
|
+
"""Total count of images"""
|
|
2679
|
+
totalCount: Int!
|
|
2680
|
+
}
|
|
2681
|
+
|
|
2150
2682
|
"""Image content type for output format"""
|
|
2151
2683
|
enum ImageContentType {
|
|
2152
2684
|
AVIF
|
|
@@ -2155,7 +2687,16 @@ enum ImageContentType {
|
|
|
2155
2687
|
WEBP
|
|
2156
2688
|
}
|
|
2157
2689
|
|
|
2158
|
-
"""
|
|
2690
|
+
"""Edge in an Image connection"""
|
|
2691
|
+
type ImageEdge {
|
|
2692
|
+
"""Cursor for pagination"""
|
|
2693
|
+
cursor: String!
|
|
2694
|
+
|
|
2695
|
+
"""Image node"""
|
|
2696
|
+
node: Image!
|
|
2697
|
+
}
|
|
2698
|
+
|
|
2699
|
+
"""Image transform options"""
|
|
2159
2700
|
input ImageTransformInput {
|
|
2160
2701
|
"""Crop region"""
|
|
2161
2702
|
crop: CropRegion
|
|
@@ -2173,6 +2714,11 @@ input ImageTransformInput {
|
|
|
2173
2714
|
scale: Int
|
|
2174
2715
|
}
|
|
2175
2716
|
|
|
2717
|
+
"""
|
|
2718
|
+
Opaque JSON payload — shape documented per field. Klient parsuje strukturę sam.
|
|
2719
|
+
"""
|
|
2720
|
+
scalar JSON
|
|
2721
|
+
|
|
2176
2722
|
"""Language configuration"""
|
|
2177
2723
|
type Language {
|
|
2178
2724
|
"""Language code (ISO 639-1)"""
|
|
@@ -2194,6 +2740,31 @@ type Language {
|
|
|
2194
2740
|
nativeName: String!
|
|
2195
2741
|
}
|
|
2196
2742
|
|
|
2743
|
+
"""ISO 639-1 language code"""
|
|
2744
|
+
enum LanguageCode {
|
|
2745
|
+
CS
|
|
2746
|
+
DA
|
|
2747
|
+
DE
|
|
2748
|
+
EN
|
|
2749
|
+
ES
|
|
2750
|
+
FI
|
|
2751
|
+
FR
|
|
2752
|
+
HR
|
|
2753
|
+
HU
|
|
2754
|
+
IT
|
|
2755
|
+
LT
|
|
2756
|
+
LV
|
|
2757
|
+
NL
|
|
2758
|
+
NO
|
|
2759
|
+
PL
|
|
2760
|
+
PT
|
|
2761
|
+
RO
|
|
2762
|
+
SK
|
|
2763
|
+
SL
|
|
2764
|
+
SV
|
|
2765
|
+
UK
|
|
2766
|
+
}
|
|
2767
|
+
|
|
2197
2768
|
"""Text direction for the language"""
|
|
2198
2769
|
enum LanguageDirection {
|
|
2199
2770
|
LTR
|
|
@@ -2204,6 +2775,9 @@ enum LanguageDirection {
|
|
|
2204
2775
|
Summary of a ProductVariant linked to an AttributeOption (Faza 1.5 configurator).
|
|
2205
2776
|
"""
|
|
2206
2777
|
type LinkedVariantSummary {
|
|
2778
|
+
"""Available stock (stock − active reservations, zawsze ≥ 0)."""
|
|
2779
|
+
availableStock: Int!
|
|
2780
|
+
|
|
2207
2781
|
"""Variant ID (w tenant DB)."""
|
|
2208
2782
|
id: ID!
|
|
2209
2783
|
|
|
@@ -2213,9 +2787,6 @@ type LinkedVariantSummary {
|
|
|
2213
2787
|
"""Parent product ID."""
|
|
2214
2788
|
productId: ID!
|
|
2215
2789
|
|
|
2216
|
-
"""Dostępna ilość (stock − active reservations, zawsze ≥ 0)."""
|
|
2217
|
-
quantityAvailable: Int!
|
|
2218
|
-
|
|
2219
2790
|
"""SKU jeśli zdefiniowany."""
|
|
2220
2791
|
sku: String
|
|
2221
2792
|
|
|
@@ -2228,13 +2799,28 @@ type LinkedVariantSummary {
|
|
|
2228
2799
|
|
|
2229
2800
|
"""Locale to currency mapping entry"""
|
|
2230
2801
|
type LocaleCurrencyMapping {
|
|
2231
|
-
"""Currency code (
|
|
2232
|
-
currency:
|
|
2802
|
+
"""Currency code (ISO 4217)"""
|
|
2803
|
+
currency: CurrencyCode!
|
|
2233
2804
|
|
|
2234
2805
|
"""Browser locale (e.g., "pl-PL", "en-US")"""
|
|
2235
2806
|
locale: String!
|
|
2236
2807
|
}
|
|
2237
2808
|
|
|
2809
|
+
"""Localization context dla storefronta"""
|
|
2810
|
+
type Localization {
|
|
2811
|
+
"""Wszystkie wsparte kraje (z aktywnych shipping zones)"""
|
|
2812
|
+
availableCountries: [Country!]!
|
|
2813
|
+
|
|
2814
|
+
"""Wszystkie wsparte języki sklepu"""
|
|
2815
|
+
availableLanguages: [Language!]!
|
|
2816
|
+
|
|
2817
|
+
"""Aktualny kraj klienta (z `@inContext` lub geo-detection)"""
|
|
2818
|
+
country: Country!
|
|
2819
|
+
|
|
2820
|
+
"""Aktualny język klienta (z `Accept-Language` lub `@inContext`)"""
|
|
2821
|
+
language: Language!
|
|
2822
|
+
}
|
|
2823
|
+
|
|
2238
2824
|
"""Inventory location (warehouse, store, pickup point)"""
|
|
2239
2825
|
type Location {
|
|
2240
2826
|
"""Physical address and coordinates"""
|
|
@@ -2251,12 +2837,12 @@ type Location {
|
|
|
2251
2837
|
"""Location display name"""
|
|
2252
2838
|
name: String!
|
|
2253
2839
|
|
|
2254
|
-
"""Whether this location supports BOPIS pickup"""
|
|
2255
|
-
pickupEnabled: Boolean!
|
|
2256
|
-
|
|
2257
2840
|
"""Optional merchant pickup instructions (e.g., "Show ID at counter")"""
|
|
2258
2841
|
pickupInstructions: String
|
|
2259
2842
|
|
|
2843
|
+
"""Whether this location supports BOPIS pickup"""
|
|
2844
|
+
supportsPickup: Boolean!
|
|
2845
|
+
|
|
2260
2846
|
"""
|
|
2261
2847
|
IANA timezone identifier (e.g., "Europe/Warsaw"). Falls back to shop timezone if null.
|
|
2262
2848
|
"""
|
|
@@ -2266,14 +2852,8 @@ type Location {
|
|
|
2266
2852
|
type: LocationType!
|
|
2267
2853
|
}
|
|
2268
2854
|
|
|
2269
|
-
"""Physical address of a location
|
|
2855
|
+
"""Physical address of a location"""
|
|
2270
2856
|
type LocationAddress {
|
|
2271
|
-
"""Street address line 1"""
|
|
2272
|
-
address1: String
|
|
2273
|
-
|
|
2274
|
-
"""Street address line 2 (apartment, suite)"""
|
|
2275
|
-
address2: String
|
|
2276
|
-
|
|
2277
2857
|
"""City"""
|
|
2278
2858
|
city: String
|
|
2279
2859
|
|
|
@@ -2295,14 +2875,20 @@ type LocationAddress {
|
|
|
2295
2875
|
"""Phone number"""
|
|
2296
2876
|
phone: String
|
|
2297
2877
|
|
|
2878
|
+
"""Postal / ZIP code"""
|
|
2879
|
+
postalCode: String
|
|
2880
|
+
|
|
2298
2881
|
"""State / province name"""
|
|
2299
|
-
|
|
2882
|
+
state: String
|
|
2300
2883
|
|
|
2301
2884
|
"""State / province code (e.g., CA, MZ)"""
|
|
2302
|
-
|
|
2885
|
+
stateCode: String
|
|
2303
2886
|
|
|
2304
|
-
"""
|
|
2305
|
-
|
|
2887
|
+
"""First line of street address"""
|
|
2888
|
+
streetLine1: String
|
|
2889
|
+
|
|
2890
|
+
"""Second line of street address (apartment, suite)"""
|
|
2891
|
+
streetLine2: String
|
|
2306
2892
|
}
|
|
2307
2893
|
|
|
2308
2894
|
"""Paginated location connection"""
|
|
@@ -2337,7 +2923,7 @@ enum LocationType {
|
|
|
2337
2923
|
"""Available point earning action"""
|
|
2338
2924
|
type LoyaltyAction {
|
|
2339
2925
|
"""Whether action is enabled"""
|
|
2340
|
-
|
|
2926
|
+
isEnabled: Boolean!
|
|
2341
2927
|
|
|
2342
2928
|
"""Points awarded for this action (if fixed)"""
|
|
2343
2929
|
points: Int
|
|
@@ -2355,13 +2941,13 @@ type LoyaltyMember {
|
|
|
2355
2941
|
customerId: ID!
|
|
2356
2942
|
|
|
2357
2943
|
"""Enrollment date"""
|
|
2358
|
-
enrolledAt:
|
|
2944
|
+
enrolledAt: DateTime!
|
|
2359
2945
|
|
|
2360
2946
|
"""Member ID"""
|
|
2361
2947
|
id: ID!
|
|
2362
2948
|
|
|
2363
2949
|
"""Last activity date"""
|
|
2364
|
-
lastActivityAt:
|
|
2950
|
+
lastActivityAt: DateTime
|
|
2365
2951
|
|
|
2366
2952
|
"""Points summary"""
|
|
2367
2953
|
points: LoyaltyPointsSummary!
|
|
@@ -2399,8 +2985,8 @@ type LoyaltyPointsSummary {
|
|
|
2399
2985
|
"""Points expiring soon (next 30 days)"""
|
|
2400
2986
|
expiringPoints: Int
|
|
2401
2987
|
|
|
2402
|
-
"""Next expiry date"""
|
|
2403
|
-
nextExpiryDate:
|
|
2988
|
+
"""Next expiry date (ISO 8601)"""
|
|
2989
|
+
nextExpiryDate: DateTime
|
|
2404
2990
|
|
|
2405
2991
|
"""Points pending (from incomplete orders)"""
|
|
2406
2992
|
pendingPoints: Int!
|
|
@@ -2414,9 +3000,6 @@ type LoyaltyPointsSummary {
|
|
|
2414
3000
|
|
|
2415
3001
|
"""Redeemable loyalty reward"""
|
|
2416
3002
|
type LoyaltyReward {
|
|
2417
|
-
"""Whether reward is available"""
|
|
2418
|
-
available: Boolean!
|
|
2419
|
-
|
|
2420
3003
|
"""Description"""
|
|
2421
3004
|
description: String
|
|
2422
3005
|
|
|
@@ -2432,14 +3015,17 @@ type LoyaltyReward {
|
|
|
2432
3015
|
"""Reward image"""
|
|
2433
3016
|
image: Image
|
|
2434
3017
|
|
|
3018
|
+
"""Whether reward is available"""
|
|
3019
|
+
isAvailable: Boolean!
|
|
3020
|
+
|
|
2435
3021
|
"""Reward name"""
|
|
2436
3022
|
name: String!
|
|
2437
3023
|
|
|
2438
3024
|
"""Points required to redeem"""
|
|
2439
3025
|
pointsCost: Int!
|
|
2440
3026
|
|
|
2441
|
-
"""
|
|
2442
|
-
|
|
3027
|
+
"""Redemptions remaining (null = unlimited)"""
|
|
3028
|
+
redemptionsRemaining: Int
|
|
2443
3029
|
|
|
2444
3030
|
"""URL-friendly slug"""
|
|
2445
3031
|
slug: String!
|
|
@@ -2457,7 +3043,7 @@ type LoyaltySettings {
|
|
|
2457
3043
|
availableActions: [LoyaltyAction!]!
|
|
2458
3044
|
|
|
2459
3045
|
"""Whether loyalty program is enabled"""
|
|
2460
|
-
|
|
3046
|
+
isEnabled: Boolean!
|
|
2461
3047
|
|
|
2462
3048
|
"""Months until points expire (null = no expiry)"""
|
|
2463
3049
|
pointsExpiryMonths: Int
|
|
@@ -2517,13 +3103,13 @@ type LoyaltyTransaction {
|
|
|
2517
3103
|
balanceAfter: Int!
|
|
2518
3104
|
|
|
2519
3105
|
"""Transaction date"""
|
|
2520
|
-
createdAt:
|
|
3106
|
+
createdAt: DateTime!
|
|
2521
3107
|
|
|
2522
3108
|
"""Description"""
|
|
2523
3109
|
description: String
|
|
2524
3110
|
|
|
2525
3111
|
"""Expiry date for earned points"""
|
|
2526
|
-
expiresAt:
|
|
3112
|
+
expiresAt: DateTime
|
|
2527
3113
|
|
|
2528
3114
|
"""Transaction ID"""
|
|
2529
3115
|
id: ID!
|
|
@@ -2574,13 +3160,7 @@ enum LoyaltyTransactionType {
|
|
|
2574
3160
|
}
|
|
2575
3161
|
|
|
2576
3162
|
"""Customer mailing address"""
|
|
2577
|
-
type MailingAddress {
|
|
2578
|
-
"""First line of address"""
|
|
2579
|
-
address1: String
|
|
2580
|
-
|
|
2581
|
-
"""Second line of address"""
|
|
2582
|
-
address2: String
|
|
2583
|
-
|
|
3163
|
+
type MailingAddress implements Node {
|
|
2584
3164
|
"""City"""
|
|
2585
3165
|
city: String
|
|
2586
3166
|
|
|
@@ -2590,50 +3170,87 @@ type MailingAddress {
|
|
|
2590
3170
|
"""Country"""
|
|
2591
3171
|
country: String
|
|
2592
3172
|
|
|
2593
|
-
"""
|
|
2594
|
-
countryCode:
|
|
3173
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
3174
|
+
countryCode: CountryCode
|
|
2595
3175
|
|
|
2596
3176
|
"""First name"""
|
|
2597
3177
|
firstName: String
|
|
2598
3178
|
|
|
3179
|
+
"""
|
|
3180
|
+
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.
|
|
3181
|
+
"""
|
|
3182
|
+
formatted: [String!]!
|
|
3183
|
+
|
|
3184
|
+
"""
|
|
3185
|
+
Single-line area summary, e.g. "Warszawa, MZ, Poland"
|
|
3186
|
+
"""
|
|
3187
|
+
formattedArea: String
|
|
3188
|
+
|
|
2599
3189
|
"""Unique identifier"""
|
|
2600
3190
|
id: ID!
|
|
2601
3191
|
|
|
2602
|
-
"""Whether this is default address"""
|
|
3192
|
+
"""Whether this is default address (DoSwiftly extension)"""
|
|
2603
3193
|
isDefault: Boolean!
|
|
2604
3194
|
|
|
2605
3195
|
"""Last name"""
|
|
2606
3196
|
lastName: String
|
|
2607
3197
|
|
|
3198
|
+
"""Computed full name (firstName + " " + lastName)"""
|
|
3199
|
+
name: String
|
|
3200
|
+
|
|
2608
3201
|
"""Phone number"""
|
|
2609
3202
|
phone: String
|
|
2610
3203
|
|
|
2611
|
-
"""
|
|
2612
|
-
|
|
3204
|
+
"""Postal / ZIP code"""
|
|
3205
|
+
postalCode: String
|
|
3206
|
+
|
|
3207
|
+
"""State / province"""
|
|
3208
|
+
state: String
|
|
3209
|
+
|
|
3210
|
+
"""State / province code (ISO 3166-2 subdivision)"""
|
|
3211
|
+
stateCode: String
|
|
2613
3212
|
|
|
2614
|
-
"""
|
|
2615
|
-
|
|
3213
|
+
"""First line of street address"""
|
|
3214
|
+
streetLine1: String
|
|
2616
3215
|
|
|
2617
|
-
"""
|
|
2618
|
-
|
|
3216
|
+
"""Second line of street address"""
|
|
3217
|
+
streetLine2: String
|
|
2619
3218
|
}
|
|
2620
3219
|
|
|
2621
|
-
"""
|
|
2622
|
-
|
|
2623
|
-
"""
|
|
2624
|
-
|
|
3220
|
+
"""Paginated mailing addresses (Relay Connection)"""
|
|
3221
|
+
type MailingAddressConnection {
|
|
3222
|
+
"""Address edges with cursors"""
|
|
3223
|
+
edges: [MailingAddressEdge!]!
|
|
3224
|
+
|
|
3225
|
+
"""Address nodes (shortcut for edges.map(e => e.node))"""
|
|
3226
|
+
nodes: [MailingAddress!]!
|
|
3227
|
+
|
|
3228
|
+
"""Pagination info"""
|
|
3229
|
+
pageInfo: PageInfo!
|
|
2625
3230
|
|
|
2626
|
-
"""
|
|
2627
|
-
|
|
3231
|
+
"""Total count of addresses"""
|
|
3232
|
+
totalCount: Int!
|
|
3233
|
+
}
|
|
3234
|
+
|
|
3235
|
+
"""Edge in a MailingAddress connection"""
|
|
3236
|
+
type MailingAddressEdge {
|
|
3237
|
+
"""Cursor for pagination"""
|
|
3238
|
+
cursor: String!
|
|
3239
|
+
|
|
3240
|
+
"""MailingAddress node"""
|
|
3241
|
+
node: MailingAddress!
|
|
3242
|
+
}
|
|
2628
3243
|
|
|
3244
|
+
"""Input for mailing address"""
|
|
3245
|
+
input MailingAddressInput {
|
|
2629
3246
|
"""City"""
|
|
2630
3247
|
city: String
|
|
2631
3248
|
|
|
2632
3249
|
"""Company"""
|
|
2633
3250
|
company: String
|
|
2634
3251
|
|
|
2635
|
-
"""
|
|
2636
|
-
country:
|
|
3252
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
3253
|
+
country: CountryCode
|
|
2637
3254
|
|
|
2638
3255
|
"""First name"""
|
|
2639
3256
|
firstName: String
|
|
@@ -2644,11 +3261,17 @@ input MailingAddressInput {
|
|
|
2644
3261
|
"""Phone"""
|
|
2645
3262
|
phone: String
|
|
2646
3263
|
|
|
2647
|
-
"""
|
|
2648
|
-
|
|
3264
|
+
"""Postal / ZIP code"""
|
|
3265
|
+
postalCode: String
|
|
3266
|
+
|
|
3267
|
+
"""State / province"""
|
|
3268
|
+
state: String
|
|
3269
|
+
|
|
3270
|
+
"""First line of street address"""
|
|
3271
|
+
streetLine1: String
|
|
2649
3272
|
|
|
2650
|
-
"""
|
|
2651
|
-
|
|
3273
|
+
"""Second line of street address"""
|
|
3274
|
+
streetLine2: String
|
|
2652
3275
|
}
|
|
2653
3276
|
|
|
2654
3277
|
"""Navigation menu"""
|
|
@@ -2662,9 +3285,6 @@ type Menu {
|
|
|
2662
3285
|
"""Top-level menu items"""
|
|
2663
3286
|
items: [MenuItem!]!
|
|
2664
3287
|
|
|
2665
|
-
"""Total count of items across all levels"""
|
|
2666
|
-
itemsCount: Int!
|
|
2667
|
-
|
|
2668
3288
|
"""Menu title"""
|
|
2669
3289
|
title: String!
|
|
2670
3290
|
}
|
|
@@ -2680,7 +3300,9 @@ type MenuItem {
|
|
|
2680
3300
|
"""Child menu items (max 3 levels)"""
|
|
2681
3301
|
items: [MenuItem!]!
|
|
2682
3302
|
|
|
2683
|
-
"""
|
|
3303
|
+
"""
|
|
3304
|
+
Linked resource object resolved server-side via DataLoader (batched per resource type — no N+1). Null when type is HTTP/FRONTPAGE/SEARCH/CATALOG/BLOG, or when resourceId points to a deleted resource.
|
|
3305
|
+
"""
|
|
2684
3306
|
resource: MenuItemResource
|
|
2685
3307
|
|
|
2686
3308
|
"""Linked resource ID"""
|
|
@@ -2692,8 +3314,10 @@ type MenuItem {
|
|
|
2692
3314
|
"""Link type"""
|
|
2693
3315
|
type: MenuItemType!
|
|
2694
3316
|
|
|
2695
|
-
"""
|
|
2696
|
-
|
|
3317
|
+
"""
|
|
3318
|
+
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.
|
|
3319
|
+
"""
|
|
3320
|
+
url: URL
|
|
2697
3321
|
}
|
|
2698
3322
|
|
|
2699
3323
|
union MenuItemResource = Category | Collection | Product | ShopPage
|
|
@@ -2714,142 +3338,191 @@ enum MenuItemType {
|
|
|
2714
3338
|
"""Monetary value with currency"""
|
|
2715
3339
|
type Money {
|
|
2716
3340
|
"""Decimal money amount"""
|
|
2717
|
-
amount:
|
|
3341
|
+
amount: Decimal!
|
|
2718
3342
|
|
|
2719
|
-
"""
|
|
2720
|
-
currencyCode:
|
|
3343
|
+
"""ISO 4217 currency code"""
|
|
3344
|
+
currencyCode: CurrencyCode!
|
|
2721
3345
|
}
|
|
2722
3346
|
|
|
2723
3347
|
type Mutation {
|
|
2724
|
-
"""
|
|
2725
|
-
|
|
3348
|
+
"""Add lines to cart"""
|
|
3349
|
+
cartAddLines(id: ID!, lines: [CartLineInput!]!): CartAddLinesPayload!
|
|
2726
3350
|
|
|
2727
|
-
"""
|
|
2728
|
-
|
|
3351
|
+
"""Apply discount codes"""
|
|
3352
|
+
cartApplyDiscountCodes(discountCodes: [String!]!, id: ID!): CartApplyDiscountCodesPayload!
|
|
2729
3353
|
|
|
2730
3354
|
"""Create new cart"""
|
|
2731
3355
|
cartCreate(input: CartCreateInput): CartCreatePayload!
|
|
2732
3356
|
|
|
2733
|
-
"""
|
|
2734
|
-
|
|
3357
|
+
"""Remove lines from cart"""
|
|
3358
|
+
cartRemoveLines(id: ID!, lineIds: [ID!]!): CartRemoveLinesPayload!
|
|
2735
3359
|
|
|
2736
|
-
"""
|
|
2737
|
-
|
|
3360
|
+
"""Update cart attributes"""
|
|
3361
|
+
cartUpdateAttributes(attributes: [CartAttributeInput!]!, id: ID!): CartUpdateAttributesPayload!
|
|
2738
3362
|
|
|
2739
|
-
"""
|
|
2740
|
-
|
|
3363
|
+
"""Update buyer identity"""
|
|
3364
|
+
cartUpdateBuyerIdentity(buyerIdentity: CartBuyerIdentityInput!, id: ID!): CartUpdateBuyerIdentityPayload!
|
|
2741
3365
|
|
|
2742
3366
|
"""Update cart lines"""
|
|
2743
|
-
|
|
3367
|
+
cartUpdateLines(id: ID!, lines: [CartLineUpdateInput!]!): CartUpdateLinesPayload!
|
|
2744
3368
|
|
|
2745
3369
|
"""Update cart note"""
|
|
2746
|
-
|
|
3370
|
+
cartUpdateNote(id: ID!, note: String!): CartUpdateNotePayload!
|
|
2747
3371
|
|
|
2748
|
-
"""
|
|
2749
|
-
|
|
3372
|
+
"""Apply discount code to checkout"""
|
|
3373
|
+
checkoutApplyDiscountCode(discountCode: String!, id: ID!): CheckoutApplyDiscountCodePayload!
|
|
3374
|
+
|
|
3375
|
+
"""Apply gift card to checkout"""
|
|
3376
|
+
checkoutApplyGiftCard(giftCardCode: String!, id: ID!): CheckoutApplyGiftCardPayload!
|
|
2750
3377
|
|
|
2751
3378
|
"""Complete checkout and create order"""
|
|
2752
|
-
checkoutComplete(
|
|
3379
|
+
checkoutComplete(id: ID!, input: CheckoutCompleteInput): CheckoutCompletePayload!
|
|
2753
3380
|
|
|
2754
3381
|
"""Create new checkout"""
|
|
2755
3382
|
checkoutCreate(input: CheckoutCreateInput!): CheckoutCreatePayload!
|
|
2756
3383
|
|
|
2757
|
-
"""Apply discount code to checkout"""
|
|
2758
|
-
checkoutDiscountCodeApply(checkoutId: ID!, discountCode: String!): CheckoutDiscountCodeApplyPayload!
|
|
2759
|
-
|
|
2760
3384
|
"""Remove discount code from checkout"""
|
|
2761
|
-
|
|
3385
|
+
checkoutRemoveDiscountCode(discountCode: String!, id: ID!): CheckoutRemoveDiscountCodePayload!
|
|
2762
3386
|
|
|
2763
|
-
"""
|
|
2764
|
-
|
|
3387
|
+
"""Remove gift card from checkout"""
|
|
3388
|
+
checkoutRemoveGiftCard(giftCardCode: String!, id: ID!): CheckoutRemoveGiftCardPayload!
|
|
2765
3389
|
|
|
2766
|
-
"""
|
|
2767
|
-
|
|
3390
|
+
"""Select payment method for checkout"""
|
|
3391
|
+
checkoutSelectPaymentMethod(id: ID!, paymentMethodId: ID!): CheckoutSelectPaymentMethodPayload!
|
|
2768
3392
|
|
|
2769
|
-
"""
|
|
2770
|
-
|
|
3393
|
+
"""Select shipping rate for checkout"""
|
|
3394
|
+
checkoutSelectShippingRate(
|
|
3395
|
+
id: ID!
|
|
2771
3396
|
|
|
2772
|
-
|
|
2773
|
-
|
|
3397
|
+
"""Shipping rate handle/id from checkout.availableShippingRates"""
|
|
3398
|
+
rateId: String!
|
|
3399
|
+
): CheckoutSelectShippingRatePayload!
|
|
2774
3400
|
|
|
2775
|
-
"""
|
|
2776
|
-
|
|
3401
|
+
"""Update checkout billing address"""
|
|
3402
|
+
checkoutUpdateBillingAddress(billingAddress: CheckoutAddressInput!, id: ID!): CheckoutUpdateBillingAddressPayload!
|
|
3403
|
+
|
|
3404
|
+
"""Update checkout email"""
|
|
3405
|
+
checkoutUpdateEmail(email: String!, id: ID!): CheckoutUpdateEmailPayload!
|
|
2777
3406
|
|
|
2778
|
-
"""Update
|
|
2779
|
-
|
|
3407
|
+
"""Update gift card recipient info for a line item"""
|
|
3408
|
+
checkoutUpdateGiftCardRecipient(input: CheckoutGiftCardRecipientInput!): CheckoutUpdateGiftCardRecipientPayload!
|
|
2780
3409
|
|
|
2781
3410
|
"""Update checkout shipping address"""
|
|
2782
|
-
|
|
3411
|
+
checkoutUpdateShippingAddress(id: ID!, shippingAddress: CheckoutAddressInput!): CheckoutUpdateShippingAddressPayload!
|
|
3412
|
+
|
|
3413
|
+
"""Validate discount code without applying"""
|
|
3414
|
+
checkoutValidateDiscountCode(discountCode: String!, id: ID!): CheckoutValidateDiscountCodePayload!
|
|
3415
|
+
|
|
3416
|
+
"""
|
|
3417
|
+
Activate customer account using raw activation token (admin-created flow)
|
|
3418
|
+
"""
|
|
3419
|
+
customerActivate(
|
|
3420
|
+
password: String!
|
|
2783
3421
|
|
|
2784
|
-
|
|
2785
|
-
|
|
3422
|
+
"""Raw activation token from the activation email"""
|
|
3423
|
+
token: String!
|
|
3424
|
+
): CustomerActivatePayload!
|
|
3425
|
+
|
|
3426
|
+
"""Add customer address"""
|
|
3427
|
+
customerAddAddress(address: MailingAddressInput!): CustomerAddAddressPayload!
|
|
2786
3428
|
|
|
2787
3429
|
"""Login customer"""
|
|
2788
|
-
|
|
3430
|
+
customerLogin(input: CustomerAccessTokenCreateInput!): CustomerLoginPayload!
|
|
2789
3431
|
|
|
2790
|
-
"""Logout customer"""
|
|
2791
|
-
|
|
3432
|
+
"""Logout customer (clears auth cookie)"""
|
|
3433
|
+
customerLogout: CustomerLogoutPayload!
|
|
2792
3434
|
|
|
2793
3435
|
"""Refresh access token"""
|
|
2794
|
-
|
|
3436
|
+
customerRefreshToken: CustomerRefreshTokenPayload!
|
|
2795
3437
|
|
|
2796
|
-
"""
|
|
2797
|
-
|
|
3438
|
+
"""Remove customer address"""
|
|
3439
|
+
customerRemoveAddress(id: ID!): CustomerRemoveAddressPayload!
|
|
2798
3440
|
|
|
2799
|
-
"""
|
|
2800
|
-
|
|
3441
|
+
"""Request password reset email"""
|
|
3442
|
+
customerRequestPasswordReset(email: String!): CustomerRequestPasswordResetPayload!
|
|
2801
3443
|
|
|
2802
|
-
"""
|
|
2803
|
-
|
|
3444
|
+
"""Reset customer password via signed URL from email"""
|
|
3445
|
+
customerResetPassword(
|
|
3446
|
+
newPassword: String!
|
|
2804
3447
|
|
|
2805
|
-
|
|
2806
|
-
|
|
3448
|
+
"""Raw password-reset token from the password-reset email"""
|
|
3449
|
+
token: String!
|
|
3450
|
+
): CustomerResetPasswordPayload!
|
|
2807
3451
|
|
|
2808
3452
|
"""Set default address"""
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
"""Send password reset email"""
|
|
2812
|
-
customerRecover(email: String!): CustomerRecoverPayload!
|
|
3453
|
+
customerSetDefaultAddress(addressId: ID!): CustomerSetDefaultAddressPayload!
|
|
2813
3454
|
|
|
2814
|
-
"""
|
|
2815
|
-
|
|
3455
|
+
"""Register new customer"""
|
|
3456
|
+
customerSignup(input: CustomerCreateInput!): CustomerSignupPayload!
|
|
2816
3457
|
|
|
2817
3458
|
"""Update customer profile"""
|
|
2818
|
-
customerUpdate(customer: CustomerUpdateInput
|
|
3459
|
+
customerUpdate(customer: CustomerUpdateInput!): CustomerUpdatePayload!
|
|
3460
|
+
|
|
3461
|
+
"""Update customer address"""
|
|
3462
|
+
customerUpdateAddress(address: MailingAddressInput!, id: ID!): CustomerUpdateAddressPayload!
|
|
2819
3463
|
|
|
2820
3464
|
"""Generate or retrieve referral code"""
|
|
2821
|
-
|
|
3465
|
+
loyaltyGenerateReferralCode: GenerateReferralCodePayload!
|
|
2822
3466
|
|
|
2823
3467
|
"""Redeem a loyalty reward"""
|
|
2824
|
-
|
|
3468
|
+
loyaltyRedeemReward(input: RedeemRewardInput!): RedeemRewardPayload!
|
|
2825
3469
|
|
|
2826
3470
|
"""Cancel a return request"""
|
|
2827
|
-
returnCancel(
|
|
3471
|
+
returnCancel(id: ID!): ReturnCancelPayload!
|
|
2828
3472
|
|
|
2829
3473
|
"""Create a return request"""
|
|
2830
|
-
returnCreate(
|
|
3474
|
+
returnCreate(input: ReturnCreateInput!): ReturnCreatePayload!
|
|
2831
3475
|
|
|
2832
3476
|
"""Create a product review"""
|
|
2833
3477
|
reviewCreate(input: ReviewCreateInput!): ReviewPayload!
|
|
2834
3478
|
|
|
2835
|
-
"""
|
|
2836
|
-
|
|
3479
|
+
"""
|
|
3480
|
+
Mark review as not helpful (downvote). Replaces any prior vote by same customer.
|
|
3481
|
+
"""
|
|
3482
|
+
reviewDownvote(reviewId: ID!): ReviewPayload!
|
|
3483
|
+
|
|
3484
|
+
"""
|
|
3485
|
+
Mark review as helpful (upvote). Replaces any prior vote by same customer.
|
|
3486
|
+
"""
|
|
3487
|
+
reviewUpvote(reviewId: ID!): ReviewPayload!
|
|
2837
3488
|
|
|
2838
3489
|
"""Add item to wishlist"""
|
|
2839
|
-
wishlistAddItem(
|
|
3490
|
+
wishlistAddItem(id: ID!, input: WishlistItemInput!): WishlistPayload!
|
|
2840
3491
|
|
|
2841
3492
|
"""Create a new wishlist"""
|
|
2842
3493
|
wishlistCreate(input: WishlistCreateInput!): WishlistPayload!
|
|
2843
3494
|
|
|
2844
3495
|
"""Delete a wishlist"""
|
|
2845
|
-
wishlistDelete(
|
|
3496
|
+
wishlistDelete(id: ID!): WishlistPayload!
|
|
2846
3497
|
|
|
2847
3498
|
"""Remove item from wishlist"""
|
|
2848
|
-
wishlistRemoveItem(
|
|
3499
|
+
wishlistRemoveItem(id: ID!, itemId: ID!): WishlistPayload!
|
|
3500
|
+
}
|
|
3501
|
+
|
|
3502
|
+
"""GraphQL Node interface — universal ID-based lookup"""
|
|
3503
|
+
interface Node {
|
|
3504
|
+
"""Globally-unique identifier"""
|
|
3505
|
+
id: ID!
|
|
3506
|
+
}
|
|
3507
|
+
|
|
3508
|
+
"""
|
|
3509
|
+
Type discriminator dla node()/nodes() queries (UUID nie zawiera type prefix)
|
|
3510
|
+
"""
|
|
3511
|
+
enum NodeType {
|
|
3512
|
+
ARTICLE
|
|
3513
|
+
CART
|
|
3514
|
+
CATEGORY
|
|
3515
|
+
COLLECTION
|
|
3516
|
+
CUSTOMER
|
|
3517
|
+
MAILING_ADDRESS
|
|
3518
|
+
ORDER
|
|
3519
|
+
PAGE
|
|
3520
|
+
PRODUCT
|
|
3521
|
+
PRODUCT_VARIANT
|
|
2849
3522
|
}
|
|
2850
3523
|
|
|
2851
3524
|
"""Customer order summary"""
|
|
2852
|
-
type Order {
|
|
3525
|
+
type Order implements Node {
|
|
2853
3526
|
"""When order was cancelled"""
|
|
2854
3527
|
cancelledAt: DateTime
|
|
2855
3528
|
|
|
@@ -2859,9 +3532,6 @@ type Order {
|
|
|
2859
3532
|
"""When order expired"""
|
|
2860
3533
|
expiredAt: DateTime
|
|
2861
3534
|
|
|
2862
|
-
"""Financial status"""
|
|
2863
|
-
financialStatus: OrderFinancialStatus!
|
|
2864
|
-
|
|
2865
3535
|
"""Fulfillment status"""
|
|
2866
3536
|
fulfillmentStatus: OrderFulfillmentStatus!
|
|
2867
3537
|
|
|
@@ -2869,13 +3539,16 @@ type Order {
|
|
|
2869
3539
|
id: ID!
|
|
2870
3540
|
|
|
2871
3541
|
"""Line items count"""
|
|
2872
|
-
|
|
3542
|
+
itemCount: Int!
|
|
2873
3543
|
|
|
2874
3544
|
"""Order number (human-readable)"""
|
|
2875
3545
|
orderNumber: String!
|
|
2876
3546
|
|
|
2877
|
-
"""
|
|
2878
|
-
|
|
3547
|
+
"""Payment status"""
|
|
3548
|
+
paymentStatus: OrderPaymentStatus!
|
|
3549
|
+
|
|
3550
|
+
"""Order date (ISO 8601)"""
|
|
3551
|
+
processedAt: DateTime!
|
|
2879
3552
|
|
|
2880
3553
|
"""Order shipments"""
|
|
2881
3554
|
shipments: [Shipment!]!
|
|
@@ -2886,17 +3559,8 @@ type Order {
|
|
|
2886
3559
|
"""Order lifecycle status"""
|
|
2887
3560
|
status: StorefrontOrderStatus!
|
|
2888
3561
|
|
|
2889
|
-
"""
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
"""Order total"""
|
|
2893
|
-
totalPrice: Money!
|
|
2894
|
-
|
|
2895
|
-
"""Total shipping"""
|
|
2896
|
-
totalShipping: Money
|
|
2897
|
-
|
|
2898
|
-
"""Total tax"""
|
|
2899
|
-
totalTax: Money
|
|
3562
|
+
"""Cost totals breakdown (subtotal/total/totalTax/totalShipping)"""
|
|
3563
|
+
totals: OrderTotals!
|
|
2900
3564
|
}
|
|
2901
3565
|
|
|
2902
3566
|
"""Paginated order connection"""
|
|
@@ -2920,8 +3584,20 @@ type OrderEdge {
|
|
|
2920
3584
|
node: Order!
|
|
2921
3585
|
}
|
|
2922
3586
|
|
|
2923
|
-
"""
|
|
2924
|
-
enum
|
|
3587
|
+
"""Fulfillment status of an order"""
|
|
3588
|
+
enum OrderFulfillmentStatus {
|
|
3589
|
+
DELIVERED
|
|
3590
|
+
FULFILLED
|
|
3591
|
+
IN_TRANSIT
|
|
3592
|
+
LOST
|
|
3593
|
+
PARTIALLY_FULFILLED
|
|
3594
|
+
PARTIALLY_RETURNED
|
|
3595
|
+
RETURNED
|
|
3596
|
+
UNFULFILLED
|
|
3597
|
+
}
|
|
3598
|
+
|
|
3599
|
+
"""Payment status of an order"""
|
|
3600
|
+
enum OrderPaymentStatus {
|
|
2925
3601
|
AUTHORIZED
|
|
2926
3602
|
CHARGEBACK
|
|
2927
3603
|
FAILED
|
|
@@ -2935,16 +3611,19 @@ enum OrderFinancialStatus {
|
|
|
2935
3611
|
VOIDED
|
|
2936
3612
|
}
|
|
2937
3613
|
|
|
2938
|
-
"""
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
3614
|
+
"""Order cost totals breakdown"""
|
|
3615
|
+
type OrderTotals {
|
|
3616
|
+
"""Order subtotal (before tax and shipping)"""
|
|
3617
|
+
subtotal: Money!
|
|
3618
|
+
|
|
3619
|
+
"""Order total (after tax and shipping)"""
|
|
3620
|
+
total: Money!
|
|
3621
|
+
|
|
3622
|
+
"""Total shipping cost"""
|
|
3623
|
+
totalShipping: Money
|
|
3624
|
+
|
|
3625
|
+
"""Total tax amount"""
|
|
3626
|
+
totalTax: Money
|
|
2948
3627
|
}
|
|
2949
3628
|
|
|
2950
3629
|
"""Package dimensions for rate calculation"""
|
|
@@ -3026,6 +3705,23 @@ enum PaymentMethodType {
|
|
|
3026
3705
|
PAYPAL
|
|
3027
3706
|
}
|
|
3028
3707
|
|
|
3708
|
+
"""Shop payment configuration (currency, country, providers)"""
|
|
3709
|
+
type PaymentSettings {
|
|
3710
|
+
"""Country code sklepu — driver dostępności metod płatności"""
|
|
3711
|
+
countryCode: CountryCode!
|
|
3712
|
+
|
|
3713
|
+
"""Primary currency użyty do procesowania płatności"""
|
|
3714
|
+
currencyCode: CurrencyCode!
|
|
3715
|
+
|
|
3716
|
+
"""Waluty displayable on storefront (Money.currencyCode allowlist)"""
|
|
3717
|
+
enabledPresentmentCurrencies: [CurrencyCode!]!
|
|
3718
|
+
|
|
3719
|
+
"""
|
|
3720
|
+
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.
|
|
3721
|
+
"""
|
|
3722
|
+
paymentProviders: [String!]!
|
|
3723
|
+
}
|
|
3724
|
+
|
|
3029
3725
|
"""Points estimate for an order"""
|
|
3030
3726
|
type PointsEstimate {
|
|
3031
3727
|
"""Base points to earn"""
|
|
@@ -3041,6 +3737,15 @@ type PointsEstimate {
|
|
|
3041
3737
|
totalPoints: Int!
|
|
3042
3738
|
}
|
|
3043
3739
|
|
|
3740
|
+
"""Predictive search result for typeahead UI"""
|
|
3741
|
+
type PredictiveSearchResult {
|
|
3742
|
+
"""Top matching products (FTS-ranked)"""
|
|
3743
|
+
products: [Product!]!
|
|
3744
|
+
|
|
3745
|
+
"""Top product title suggestions with highlighted query matches"""
|
|
3746
|
+
queries: [SearchQuerySuggestion!]!
|
|
3747
|
+
}
|
|
3748
|
+
|
|
3044
3749
|
"""Price with full conversion transparency"""
|
|
3045
3750
|
type PriceMoney {
|
|
3046
3751
|
"""Price amount in display currency"""
|
|
@@ -3077,6 +3782,15 @@ type PriceRange {
|
|
|
3077
3782
|
min: Money!
|
|
3078
3783
|
}
|
|
3079
3784
|
|
|
3785
|
+
"""Price range filter (major units)"""
|
|
3786
|
+
input PriceRangeFilter {
|
|
3787
|
+
"""Maximum price (major units)"""
|
|
3788
|
+
max: Float
|
|
3789
|
+
|
|
3790
|
+
"""Minimum price (major units, e.g. 50.0 PLN)"""
|
|
3791
|
+
min: Float
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3080
3794
|
"""Quantity-based pricing tier"""
|
|
3081
3795
|
type PricingTier {
|
|
3082
3796
|
"""Discount percentage from retail"""
|
|
@@ -3093,8 +3807,8 @@ type PricingTier {
|
|
|
3093
3807
|
}
|
|
3094
3808
|
|
|
3095
3809
|
"""Product - main catalog item"""
|
|
3096
|
-
type Product {
|
|
3097
|
-
"""Assigned AttributeSet ID (
|
|
3810
|
+
type Product implements Node {
|
|
3811
|
+
"""Assigned AttributeSet ID (shared template fields)"""
|
|
3098
3812
|
attributeSetId: ID
|
|
3099
3813
|
|
|
3100
3814
|
"""
|
|
@@ -3102,17 +3816,21 @@ type Product {
|
|
|
3102
3816
|
"""
|
|
3103
3817
|
attributes(filter: ProductAttributeFilterInput): [ProductAttributeDefinition!]!
|
|
3104
3818
|
|
|
3105
|
-
"""Whether product is available for sale (any variant in stock)"""
|
|
3106
|
-
availableForSale: Boolean!
|
|
3107
|
-
|
|
3108
3819
|
"""Average rating (1-5)"""
|
|
3109
3820
|
averageRating: Float
|
|
3110
3821
|
|
|
3111
|
-
"""
|
|
3112
|
-
|
|
3822
|
+
"""
|
|
3823
|
+
Product category (free-text classification, e.g. "Footwear", "Electronics")
|
|
3824
|
+
"""
|
|
3825
|
+
category: String
|
|
3826
|
+
|
|
3827
|
+
"""
|
|
3828
|
+
Compare-at price range (Money pair). Null gdy żaden variant nie ma compareAtPrice.
|
|
3829
|
+
"""
|
|
3830
|
+
compareAtPriceRange: ProductPriceRange
|
|
3113
3831
|
|
|
3114
|
-
"""
|
|
3115
|
-
|
|
3832
|
+
"""Opt-in: compare-at price range with conversion transparency."""
|
|
3833
|
+
compareAtPriceRangeWithConversion: ConvertedPriceRange
|
|
3116
3834
|
|
|
3117
3835
|
"""Creation timestamp"""
|
|
3118
3836
|
createdAt: DateTime!
|
|
@@ -3132,49 +3850,51 @@ type Product {
|
|
|
3132
3850
|
"""Unique identifier"""
|
|
3133
3851
|
id: ID!
|
|
3134
3852
|
|
|
3135
|
-
"""
|
|
3136
|
-
images(first: Float
|
|
3853
|
+
"""Product images (Relay Connection)"""
|
|
3854
|
+
images(after: String, before: String, first: Float, last: Float): ImageConnection!
|
|
3855
|
+
|
|
3856
|
+
"""Whether product is available for sale (any variant in stock)"""
|
|
3857
|
+
isAvailable: Boolean!
|
|
3858
|
+
|
|
3859
|
+
"""
|
|
3860
|
+
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.
|
|
3861
|
+
"""
|
|
3862
|
+
isPurchasable: Boolean!
|
|
3137
3863
|
|
|
3138
3864
|
"""
|
|
3139
3865
|
Per-product option definitions (Color, Size, …) with their available values. Use these to build a variant picker without aggregating `selectedOptions` manually.
|
|
3140
3866
|
"""
|
|
3141
3867
|
options: [ProductOption!]!
|
|
3142
3868
|
|
|
3143
|
-
"""
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
"""Original price range in shop base currency"""
|
|
3147
|
-
originalPriceRange: ProductPriceRange
|
|
3148
|
-
|
|
3149
|
-
"""Price range in customer preferred currency (auto-converted)"""
|
|
3150
|
-
priceRange: ConvertedPriceRange!
|
|
3151
|
-
|
|
3152
|
-
"""Product type/category (free text)"""
|
|
3153
|
-
productType: String
|
|
3869
|
+
"""Price range (Money pair). Default field — industry-standard schema."""
|
|
3870
|
+
priceRange: ProductPriceRange!
|
|
3154
3871
|
|
|
3155
3872
|
"""
|
|
3156
|
-
|
|
3873
|
+
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.
|
|
3157
3874
|
"""
|
|
3158
|
-
|
|
3875
|
+
priceRangeWithConversion: ConvertedPriceRange
|
|
3159
3876
|
|
|
3160
3877
|
"""Similar products recommendations"""
|
|
3161
3878
|
recommendations(first: Int = 4): ProductRecommendations
|
|
3162
3879
|
|
|
3880
|
+
"""Whether storefront checkout requires recipient data for this product"""
|
|
3881
|
+
requiresRecipientInfo: Boolean!
|
|
3882
|
+
|
|
3163
3883
|
"""Number of reviews"""
|
|
3164
3884
|
reviewCount: Int
|
|
3165
3885
|
|
|
3166
3886
|
"""SEO metadata"""
|
|
3167
3887
|
seo: SEO
|
|
3168
3888
|
|
|
3889
|
+
"""Total stock across all variants"""
|
|
3890
|
+
stockTotal: Int
|
|
3891
|
+
|
|
3169
3892
|
"""Product tags"""
|
|
3170
3893
|
tags: [String!]!
|
|
3171
3894
|
|
|
3172
3895
|
"""Product title"""
|
|
3173
3896
|
title: String!
|
|
3174
3897
|
|
|
3175
|
-
"""Total inventory across all variants"""
|
|
3176
|
-
totalInventory: Int
|
|
3177
|
-
|
|
3178
3898
|
"""
|
|
3179
3899
|
Product type enum (PHYSICAL, DIGITAL, SERVICE, SUBSCRIPTION, GIFT_CARD)
|
|
3180
3900
|
"""
|
|
@@ -3183,8 +3903,8 @@ type Product {
|
|
|
3183
3903
|
"""Last update timestamp"""
|
|
3184
3904
|
updatedAt: DateTime!
|
|
3185
3905
|
|
|
3186
|
-
"""Product variants"""
|
|
3187
|
-
variants(first: Float
|
|
3906
|
+
"""Product variants (Relay Connection)"""
|
|
3907
|
+
variants(after: String, before: String, first: Float, last: Float): ProductVariantConnection!
|
|
3188
3908
|
|
|
3189
3909
|
"""Vendor/brand name"""
|
|
3190
3910
|
vendor: String
|
|
@@ -3196,7 +3916,7 @@ type Product {
|
|
|
3196
3916
|
"""Product attribute definition (configurator)"""
|
|
3197
3917
|
type ProductAttributeDefinition {
|
|
3198
3918
|
"""Billing mode — BUNDLED | SEPARATE_LINE; null = informational only"""
|
|
3199
|
-
billingMode:
|
|
3919
|
+
billingMode: AttributeBillingMode
|
|
3200
3920
|
|
|
3201
3921
|
"""Customer-facing description"""
|
|
3202
3922
|
description: String
|
|
@@ -3205,7 +3925,7 @@ type ProductAttributeDefinition {
|
|
|
3205
3925
|
displayOrder: Int!
|
|
3206
3926
|
|
|
3207
3927
|
"""Filling mode — MERCHANT | CUSTOMER | BOTH"""
|
|
3208
|
-
fillingMode:
|
|
3928
|
+
fillingMode: AttributeFillingMode!
|
|
3209
3929
|
|
|
3210
3930
|
"""Definition ID"""
|
|
3211
3931
|
id: ID!
|
|
@@ -3248,7 +3968,7 @@ input ProductAttributeFilterInput {
|
|
|
3248
3968
|
"""
|
|
3249
3969
|
Filter by filling mode — MERCHANT | CUSTOMER | BOTH (configurator UI uses CUSTOMER + BOTH)
|
|
3250
3970
|
"""
|
|
3251
|
-
fillingMode:
|
|
3971
|
+
fillingMode: AttributeFillingMode
|
|
3252
3972
|
}
|
|
3253
3973
|
|
|
3254
3974
|
"""Selectable option of a product attribute (configurator)"""
|
|
@@ -3284,7 +4004,7 @@ type ProductAttributeOption {
|
|
|
3284
4004
|
surchargeAmount: Int
|
|
3285
4005
|
|
|
3286
4006
|
"""Surcharge type — FIXED | PERCENT (Faza 2)"""
|
|
3287
|
-
surchargeType:
|
|
4007
|
+
surchargeType: AttributeOptionSurchargeType
|
|
3288
4008
|
|
|
3289
4009
|
"""Internal value (slug-style)"""
|
|
3290
4010
|
value: String!
|
|
@@ -3292,9 +4012,17 @@ type ProductAttributeOption {
|
|
|
3292
4012
|
|
|
3293
4013
|
"""Paginated product list"""
|
|
3294
4014
|
type ProductConnection {
|
|
3295
|
-
"""Product edges"""
|
|
4015
|
+
"""Product edges with cursors"""
|
|
3296
4016
|
edges: [ProductEdge!]!
|
|
3297
4017
|
|
|
4018
|
+
"""
|
|
4019
|
+
Faceted filters driven by current result set. Use FilterValue.input to construct refinement queries.
|
|
4020
|
+
"""
|
|
4021
|
+
filters: [Filter!]!
|
|
4022
|
+
|
|
4023
|
+
"""Product nodes (shortcut for edges.map(e => e.node))"""
|
|
4024
|
+
nodes: [Product!]!
|
|
4025
|
+
|
|
3298
4026
|
"""Pagination info"""
|
|
3299
4027
|
pageInfo: PageInfo!
|
|
3300
4028
|
|
|
@@ -3311,52 +4039,49 @@ type ProductEdge {
|
|
|
3311
4039
|
node: Product!
|
|
3312
4040
|
}
|
|
3313
4041
|
|
|
3314
|
-
"""
|
|
3315
|
-
input
|
|
3316
|
-
"""
|
|
4042
|
+
"""Single product filter"""
|
|
4043
|
+
input ProductFilter {
|
|
4044
|
+
"""
|
|
4045
|
+
DoSwiftly: dynamic attribute filters (configurator system). Product/variant metafield filters will be added in Wave 5.
|
|
4046
|
+
"""
|
|
3317
4047
|
attributes: [AttributeFilterInput!]
|
|
3318
4048
|
|
|
3319
|
-
"""Filter by availability"""
|
|
4049
|
+
"""Filter by availability for sale"""
|
|
3320
4050
|
available: Boolean
|
|
3321
4051
|
|
|
3322
|
-
"""
|
|
3323
|
-
|
|
3324
|
-
"""
|
|
3325
|
-
categoryId: ID
|
|
4052
|
+
"""Filter by category"""
|
|
4053
|
+
category: CategoryFilter
|
|
3326
4054
|
|
|
3327
4055
|
"""
|
|
3328
|
-
|
|
4056
|
+
DoSwiftly: filter by collection ID (supports comma-separated UUIDs). Use Collection.products(filters) for collection-scoped queries.
|
|
3329
4057
|
"""
|
|
3330
4058
|
collectionId: ID
|
|
3331
4059
|
|
|
3332
|
-
"""Filter by
|
|
3333
|
-
|
|
4060
|
+
"""Filter by variant price range"""
|
|
4061
|
+
price: PriceRangeFilter
|
|
3334
4062
|
|
|
3335
|
-
"""
|
|
3336
|
-
|
|
4063
|
+
"""
|
|
4064
|
+
Filter by product category (free-text classification, stored on Product.category). Distinct from `category: CategoryFilter` which selects by structured Category entity.
|
|
4065
|
+
"""
|
|
4066
|
+
productCategory: String
|
|
3337
4067
|
|
|
3338
|
-
"""
|
|
3339
|
-
|
|
4068
|
+
"""
|
|
4069
|
+
Filter by product type enum (PHYSICAL/DIGITAL/SERVICE/SUBSCRIPTION/GIFT_CARD). Distinct from `productCategory` (free-text classification).
|
|
4070
|
+
"""
|
|
4071
|
+
productType: ProductTypeEnum
|
|
3340
4072
|
|
|
3341
|
-
"""
|
|
3342
|
-
|
|
4073
|
+
"""
|
|
4074
|
+
Filter by product vendor (renamed from legacy `vendor` in ProductFilterInput)
|
|
4075
|
+
"""
|
|
4076
|
+
productVendor: String
|
|
3343
4077
|
|
|
3344
|
-
"""Filter by tag"""
|
|
4078
|
+
"""Filter by product tag"""
|
|
3345
4079
|
tag: String
|
|
3346
4080
|
|
|
3347
|
-
"""Filter by tags"""
|
|
3348
|
-
tags: [String!]
|
|
3349
|
-
|
|
3350
4081
|
"""
|
|
3351
|
-
Filter by
|
|
4082
|
+
Filter by single variant option (e.g. Color=Red). For multi-value filtering use multiple ProductFilter entries.
|
|
3352
4083
|
"""
|
|
3353
|
-
variantOption:
|
|
3354
|
-
|
|
3355
|
-
"""Filter by vendor"""
|
|
3356
|
-
vendor: String
|
|
3357
|
-
|
|
3358
|
-
"""Filter by vendor names"""
|
|
3359
|
-
vendors: [String!]
|
|
4084
|
+
variantOption: VariantOptionFilter
|
|
3360
4085
|
}
|
|
3361
4086
|
|
|
3362
4087
|
"""Product option"""
|
|
@@ -3369,10 +4094,10 @@ type ProductOption {
|
|
|
3369
4094
|
"""Option name (e.g. "Color", "Size")"""
|
|
3370
4095
|
name: String!
|
|
3371
4096
|
|
|
3372
|
-
"""Sort
|
|
3373
|
-
|
|
4097
|
+
"""Sort order among the product's options"""
|
|
4098
|
+
sortOrder: Int!
|
|
3374
4099
|
|
|
3375
|
-
"""Available values, ordered by
|
|
4100
|
+
"""Available values, ordered by sortOrder"""
|
|
3376
4101
|
values: [ProductOptionValue!]!
|
|
3377
4102
|
}
|
|
3378
4103
|
|
|
@@ -3396,8 +4121,8 @@ type ProductOptionValue {
|
|
|
3396
4121
|
"""Display name (e.g. "Red", "XL")"""
|
|
3397
4122
|
name: String!
|
|
3398
4123
|
|
|
3399
|
-
"""Sort
|
|
3400
|
-
|
|
4124
|
+
"""Sort order (0-based)"""
|
|
4125
|
+
sortOrder: Int!
|
|
3401
4126
|
}
|
|
3402
4127
|
|
|
3403
4128
|
"""Original price range in shop base currency"""
|
|
@@ -3447,7 +4172,7 @@ type ProductReview {
|
|
|
3447
4172
|
"""Review date"""
|
|
3448
4173
|
createdAt: DateTime!
|
|
3449
4174
|
|
|
3450
|
-
"""Helpful votes count"""
|
|
4175
|
+
"""Helpful votes count (upvotes)"""
|
|
3451
4176
|
helpfulCount: Int!
|
|
3452
4177
|
id: ID!
|
|
3453
4178
|
|
|
@@ -3472,6 +4197,9 @@ type ProductReview {
|
|
|
3472
4197
|
|
|
3473
4198
|
"""Review title"""
|
|
3474
4199
|
title: String
|
|
4200
|
+
|
|
4201
|
+
"""Unhelpful votes count (downvotes)"""
|
|
4202
|
+
unhelpfulCount: Int!
|
|
3475
4203
|
}
|
|
3476
4204
|
|
|
3477
4205
|
"""Paginated reviews connection"""
|
|
@@ -3491,10 +4219,13 @@ type ProductReviewEdge {
|
|
|
3491
4219
|
enum ProductSortKeys {
|
|
3492
4220
|
BEST_SELLING
|
|
3493
4221
|
CREATED_AT
|
|
4222
|
+
ID
|
|
3494
4223
|
PRICE
|
|
4224
|
+
PRODUCT_TYPE
|
|
3495
4225
|
RELEVANCE
|
|
3496
4226
|
TITLE
|
|
3497
4227
|
UPDATED_AT
|
|
4228
|
+
VENDOR
|
|
3498
4229
|
}
|
|
3499
4230
|
|
|
3500
4231
|
"""Product type classification"""
|
|
@@ -3508,14 +4239,19 @@ enum ProductTypeEnum {
|
|
|
3508
4239
|
|
|
3509
4240
|
"""Product variant - purchasable unit"""
|
|
3510
4241
|
type ProductVariant {
|
|
3511
|
-
"""
|
|
3512
|
-
|
|
4242
|
+
"""
|
|
4243
|
+
Available stock (computed: stock - reserved). Null when track is disabled.
|
|
4244
|
+
"""
|
|
4245
|
+
availableStock: Int
|
|
3513
4246
|
|
|
3514
4247
|
"""Barcode"""
|
|
3515
4248
|
barcode: String
|
|
3516
4249
|
|
|
3517
|
-
"""Compare at price
|
|
3518
|
-
compareAtPrice:
|
|
4250
|
+
"""Compare at price (Money). Null gdy variant nie jest na promocji."""
|
|
4251
|
+
compareAtPrice: Money
|
|
4252
|
+
|
|
4253
|
+
"""Opt-in: compare-at price with conversion transparency."""
|
|
4254
|
+
compareAtPriceWithConversion: PriceMoney
|
|
3519
4255
|
|
|
3520
4256
|
"""Unique identifier"""
|
|
3521
4257
|
id: ID!
|
|
@@ -3523,20 +4259,16 @@ type ProductVariant {
|
|
|
3523
4259
|
"""Variant image"""
|
|
3524
4260
|
image: Image
|
|
3525
4261
|
|
|
3526
|
-
"""
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
"""Original price in shop base currency"""
|
|
3530
|
-
originalPrice: Money
|
|
3531
|
-
|
|
3532
|
-
"""Position in product variants list"""
|
|
3533
|
-
position: Int
|
|
4262
|
+
"""Whether variant is available for purchase"""
|
|
4263
|
+
isAvailable: Boolean!
|
|
3534
4264
|
|
|
3535
|
-
"""
|
|
3536
|
-
price:
|
|
4265
|
+
"""Variant price (Money). Default field — industry-standard schema."""
|
|
4266
|
+
price: Money!
|
|
3537
4267
|
|
|
3538
|
-
"""
|
|
3539
|
-
|
|
4268
|
+
"""
|
|
4269
|
+
Opt-in: price with full conversion transparency. Use dla currency-converter UI.
|
|
4270
|
+
"""
|
|
4271
|
+
priceWithConversion: PriceMoney
|
|
3540
4272
|
|
|
3541
4273
|
"""Selected options for this variant"""
|
|
3542
4274
|
selectedOptions: [SelectedOption!]!
|
|
@@ -3544,8 +4276,11 @@ type ProductVariant {
|
|
|
3544
4276
|
"""SKU code"""
|
|
3545
4277
|
sku: String
|
|
3546
4278
|
|
|
4279
|
+
"""Sort order among product variants"""
|
|
4280
|
+
sortOrder: Int
|
|
4281
|
+
|
|
3547
4282
|
"""
|
|
3548
|
-
Per-location stock availability
|
|
4283
|
+
Per-location stock availability. Null for single-location shops. Resolved by StoreAvailabilityResolver with `near`, `locationType`, and `@inContext(preferredLocationId)` support.
|
|
3549
4284
|
"""
|
|
3550
4285
|
storeAvailability(
|
|
3551
4286
|
"""Cursor for pagination"""
|
|
@@ -3554,7 +4289,7 @@ type ProductVariant {
|
|
|
3554
4289
|
"""Number of locations to return"""
|
|
3555
4290
|
first: Int! = 10
|
|
3556
4291
|
|
|
3557
|
-
"""Filter by location type (DoSwiftly extension
|
|
4292
|
+
"""Filter by location type (DoSwiftly extension)"""
|
|
3558
4293
|
locationType: LocationType
|
|
3559
4294
|
|
|
3560
4295
|
"""Sort locations by proximity to these coordinates"""
|
|
@@ -3564,8 +4299,32 @@ type ProductVariant {
|
|
|
3564
4299
|
"""Variant title (e.g., "Large / Red")"""
|
|
3565
4300
|
title: String!
|
|
3566
4301
|
|
|
3567
|
-
"""
|
|
3568
|
-
weight:
|
|
4302
|
+
"""Variant weight (canonical unit GRAMS — Prisma stores integer grams)"""
|
|
4303
|
+
weight: Weight
|
|
4304
|
+
}
|
|
4305
|
+
|
|
4306
|
+
"""Paginated list of product variants (Relay Connection)"""
|
|
4307
|
+
type ProductVariantConnection {
|
|
4308
|
+
"""Variant edges with cursors"""
|
|
4309
|
+
edges: [ProductVariantEdge!]!
|
|
4310
|
+
|
|
4311
|
+
"""Variant nodes (shortcut for edges.map(e => e.node))"""
|
|
4312
|
+
nodes: [ProductVariant!]!
|
|
4313
|
+
|
|
4314
|
+
"""Pagination info"""
|
|
4315
|
+
pageInfo: PageInfo!
|
|
4316
|
+
|
|
4317
|
+
"""Total count of variants"""
|
|
4318
|
+
totalCount: Int!
|
|
4319
|
+
}
|
|
4320
|
+
|
|
4321
|
+
"""Edge in a ProductVariant connection"""
|
|
4322
|
+
type ProductVariantEdge {
|
|
4323
|
+
"""Cursor for pagination"""
|
|
4324
|
+
cursor: String!
|
|
4325
|
+
|
|
4326
|
+
"""Variant node"""
|
|
4327
|
+
node: ProductVariant!
|
|
3569
4328
|
}
|
|
3570
4329
|
|
|
3571
4330
|
"""Catalog placement — PUBLIC | HIDDEN | BUNDLE_ONLY (Faza 1.5)"""
|
|
@@ -3579,9 +4338,6 @@ type Query {
|
|
|
3579
4338
|
"""List of all currencies supported by the system (ECB rates)"""
|
|
3580
4339
|
allSupportedCurrencies: [Currency!]!
|
|
3581
4340
|
|
|
3582
|
-
"""Get available filters for product listing"""
|
|
3583
|
-
availableFilters(input: AvailableFiltersInput): AvailableFilters!
|
|
3584
|
-
|
|
3585
4341
|
"""Get available payment methods"""
|
|
3586
4342
|
availablePaymentMethods: AvailablePaymentMethods!
|
|
3587
4343
|
|
|
@@ -3639,13 +4395,6 @@ type Query {
|
|
|
3639
4395
|
"""Get cart by ID"""
|
|
3640
4396
|
cart(id: ID!): Cart
|
|
3641
4397
|
|
|
3642
|
-
"""Get recommendations based on cart contents"""
|
|
3643
|
-
cartRecommendations(
|
|
3644
|
-
"""Cart ID to base recommendations on"""
|
|
3645
|
-
cartId: String!
|
|
3646
|
-
first: Int = 4
|
|
3647
|
-
): CartRecommendations!
|
|
3648
|
-
|
|
3649
4398
|
"""Get category tree"""
|
|
3650
4399
|
categories(
|
|
3651
4400
|
"""Cursor for pagination"""
|
|
@@ -3721,14 +4470,14 @@ type Query {
|
|
|
3721
4470
|
code: String!
|
|
3722
4471
|
): Currency
|
|
3723
4472
|
|
|
3724
|
-
"""Get authenticated customer"""
|
|
3725
|
-
customer
|
|
4473
|
+
"""Get authenticated customer (cookie / Authorization Bearer)"""
|
|
4474
|
+
customer: Customer
|
|
3726
4475
|
|
|
3727
4476
|
"""Get available customer groups"""
|
|
3728
4477
|
customerGroups: [CustomerGroup!]
|
|
3729
4478
|
|
|
3730
4479
|
"""Get single order for authenticated customer"""
|
|
3731
|
-
customerOrder(
|
|
4480
|
+
customerOrder(orderId: ID!): Order
|
|
3732
4481
|
|
|
3733
4482
|
"""Estimate points for an order amount"""
|
|
3734
4483
|
estimatePoints(
|
|
@@ -3745,8 +4494,8 @@ type Query {
|
|
|
3745
4494
|
to: String!
|
|
3746
4495
|
): ExchangeRate
|
|
3747
4496
|
|
|
3748
|
-
"""Get gift card by code"""
|
|
3749
|
-
giftCard(code: String!):
|
|
4497
|
+
"""Get gift card by code (null if not found)"""
|
|
4498
|
+
giftCard(code: String!): GiftCard
|
|
3750
4499
|
|
|
3751
4500
|
"""Validate gift card for use"""
|
|
3752
4501
|
giftCardValidate(amount: Float, code: String!): GiftCardValidatePayload!
|
|
@@ -3754,6 +4503,9 @@ type Query {
|
|
|
3754
4503
|
"""Get available languages for this shop"""
|
|
3755
4504
|
languages: [Language!]!
|
|
3756
4505
|
|
|
4506
|
+
"""Localization context (kraje, języki, aktualny kraj/język klienta)"""
|
|
4507
|
+
localization: Localization!
|
|
4508
|
+
|
|
3757
4509
|
"""
|
|
3758
4510
|
Fetch a single active location by ID. Returns null when missing, inactive, or owned by another shop (tenant isolation via StorefrontShopGuard).
|
|
3759
4511
|
"""
|
|
@@ -3763,7 +4515,7 @@ type Query {
|
|
|
3763
4515
|
): Location
|
|
3764
4516
|
|
|
3765
4517
|
"""
|
|
3766
|
-
Paginated locations for the current shop
|
|
4518
|
+
Paginated locations for the current shop. Supports proximity (`near`), pickup-only filter (`hasPickupEnabled`), and `locationType` filter.
|
|
3767
4519
|
"""
|
|
3768
4520
|
locations(
|
|
3769
4521
|
"""Cursor for pagination"""
|
|
@@ -3800,6 +4552,14 @@ type Query {
|
|
|
3800
4552
|
"""Get a navigation menu by handle"""
|
|
3801
4553
|
menu(handle: String!): Menu
|
|
3802
4554
|
|
|
4555
|
+
"""Universal ID-based lookup (Relay Node spec)"""
|
|
4556
|
+
node(id: ID!, type: NodeType!): Node
|
|
4557
|
+
|
|
4558
|
+
"""
|
|
4559
|
+
Batch ID-based lookup; same NodeType dla all IDs. Missing/wrong IDs → null entries (preserved length).
|
|
4560
|
+
"""
|
|
4561
|
+
nodes(ids: [ID!]!, type: NodeType!): [Node]!
|
|
4562
|
+
|
|
3803
4563
|
"""Get a page by handle or ID"""
|
|
3804
4564
|
page(
|
|
3805
4565
|
"""Page handle"""
|
|
@@ -3827,6 +4587,9 @@ type Query {
|
|
|
3827
4587
|
sortKey: PageSortKeys! = TITLE
|
|
3828
4588
|
): ShopPageConnection!
|
|
3829
4589
|
|
|
4590
|
+
"""Get personalized product recommendations for the current customer"""
|
|
4591
|
+
personalizedRecommendations(first: Int = 10): ProductRecommendations!
|
|
4592
|
+
|
|
3830
4593
|
"""Get single product by ID or handle"""
|
|
3831
4594
|
product(
|
|
3832
4595
|
"""Product handle (slug)"""
|
|
@@ -3836,6 +4599,11 @@ type Query {
|
|
|
3836
4599
|
id: ID
|
|
3837
4600
|
): Product
|
|
3838
4601
|
|
|
4602
|
+
"""
|
|
4603
|
+
Get available filters for product listing (renamed from availableFilters in Storefront 5.0)
|
|
4604
|
+
"""
|
|
4605
|
+
productFilters(input: AvailableFiltersInput): AvailableFilters!
|
|
4606
|
+
|
|
3839
4607
|
"""Get recommended products similar to the given product"""
|
|
3840
4608
|
productRecommendations(
|
|
3841
4609
|
"""Type of recommendations (SIMILAR, COMPLEMENTARY, UPSELL)"""
|
|
@@ -3851,62 +4619,84 @@ type Query {
|
|
|
3851
4619
|
"""Get product reviews"""
|
|
3852
4620
|
productReviews(after: String, first: Int = 10, productId: ID!, reverse: Boolean = true, sortKey: ReviewSortKey = CREATED_AT): ProductReviewConnection!
|
|
3853
4621
|
|
|
3854
|
-
"""Search products"""
|
|
3855
|
-
productSearch(
|
|
3856
|
-
"""Cursor for pagination"""
|
|
3857
|
-
after: String
|
|
3858
|
-
|
|
3859
|
-
"""Filter options"""
|
|
3860
|
-
filters: ProductFilterInput
|
|
3861
|
-
|
|
3862
|
-
"""Number of items to fetch"""
|
|
3863
|
-
first: Int! = 20
|
|
3864
|
-
|
|
3865
|
-
"""Search query"""
|
|
3866
|
-
query: String!
|
|
3867
|
-
): ProductConnection!
|
|
3868
|
-
|
|
3869
4622
|
"""List products with pagination and filtering"""
|
|
3870
4623
|
products(
|
|
3871
|
-
"""Cursor for pagination"""
|
|
4624
|
+
"""Cursor for forward pagination"""
|
|
3872
4625
|
after: String
|
|
3873
4626
|
|
|
3874
|
-
"""
|
|
3875
|
-
|
|
4627
|
+
"""Cursor for backward pagination"""
|
|
4628
|
+
before: String
|
|
3876
4629
|
|
|
3877
|
-
"""
|
|
3878
|
-
|
|
4630
|
+
"""Array of ProductFilter objects (multi-filter pattern)"""
|
|
4631
|
+
filters: [ProductFilter!]
|
|
3879
4632
|
|
|
3880
|
-
"""
|
|
4633
|
+
"""Number of items to fetch (forward pagination, max 100)"""
|
|
4634
|
+
first: Int
|
|
4635
|
+
|
|
4636
|
+
"""Number of items to fetch (backward pagination, max 100)"""
|
|
4637
|
+
last: Int
|
|
4638
|
+
|
|
4639
|
+
"""
|
|
4640
|
+
Search query (syntax: tag:, product_type:, vendor:, available_for_sale:, variants.price:>10, AND/OR/NOT)
|
|
4641
|
+
"""
|
|
3881
4642
|
query: String
|
|
3882
4643
|
|
|
3883
4644
|
"""Reverse sort order"""
|
|
3884
4645
|
reverse: Boolean! = false
|
|
3885
4646
|
|
|
3886
4647
|
"""Sort key"""
|
|
3887
|
-
sortKey: ProductSortKeys =
|
|
4648
|
+
sortKey: ProductSortKeys = RELEVANCE
|
|
3888
4649
|
): ProductConnection!
|
|
3889
4650
|
|
|
3890
|
-
"""Get personalized product recommendations"""
|
|
3891
|
-
recommendations(first: Int = 10): ProductRecommendations!
|
|
3892
|
-
|
|
3893
4651
|
"""Get referral program statistics"""
|
|
3894
4652
|
referralStats: ReferralStats
|
|
3895
4653
|
|
|
3896
4654
|
"""Get return by ID"""
|
|
3897
|
-
return(
|
|
4655
|
+
return(id: ID!): ReturnPayload!
|
|
3898
4656
|
|
|
3899
4657
|
"""Get available return reasons"""
|
|
3900
4658
|
returnReasons: [ReturnReasonOption!]!
|
|
3901
4659
|
|
|
3902
4660
|
"""Get returns for an order"""
|
|
3903
|
-
returnsByOrder(
|
|
4661
|
+
returnsByOrder(orderId: ID!): ReturnConnection!
|
|
3904
4662
|
|
|
3905
4663
|
"""Get product review statistics"""
|
|
3906
4664
|
reviewStats(productId: ID!): ReviewStats!
|
|
3907
4665
|
|
|
4666
|
+
"""Search products (DoSwiftly alias for products() with required query)"""
|
|
4667
|
+
searchProducts(
|
|
4668
|
+
"""Cursor for forward pagination"""
|
|
4669
|
+
after: String
|
|
4670
|
+
|
|
4671
|
+
"""Cursor for backward pagination"""
|
|
4672
|
+
before: String
|
|
4673
|
+
|
|
4674
|
+
"""Array of ProductFilter objects"""
|
|
4675
|
+
filters: [ProductFilter!]
|
|
4676
|
+
|
|
4677
|
+
"""Number of items to fetch (forward pagination)"""
|
|
4678
|
+
first: Int
|
|
4679
|
+
|
|
4680
|
+
"""Number of items to fetch (backward pagination)"""
|
|
4681
|
+
last: Int
|
|
4682
|
+
|
|
4683
|
+
"""Search query (required)"""
|
|
4684
|
+
query: String!
|
|
4685
|
+
): ProductConnection!
|
|
4686
|
+
|
|
4687
|
+
"""
|
|
4688
|
+
Search suggestions (typeahead) — top-N products + styled query suggestions (Products only). Powered by PostgreSQL FTS with prefix matching for Polish morphology coverage.
|
|
4689
|
+
"""
|
|
4690
|
+
searchSuggestions(
|
|
4691
|
+
"""Maximum number of products to return (default 10, max 50)"""
|
|
4692
|
+
limit: Int = 10
|
|
4693
|
+
|
|
4694
|
+
"""Search query (typeahead input)"""
|
|
4695
|
+
query: String!
|
|
4696
|
+
): PredictiveSearchResult!
|
|
4697
|
+
|
|
3908
4698
|
"""Get shipment by ID"""
|
|
3909
|
-
shipment(
|
|
4699
|
+
shipment(id: ID!): ShipmentPayload!
|
|
3910
4700
|
|
|
3911
4701
|
"""Get shipment by tracking number"""
|
|
3912
4702
|
shipmentByTrackingNumber(trackingNumber: String!): ShipmentPayload!
|
|
@@ -3917,14 +4707,6 @@ type Query {
|
|
|
3917
4707
|
"""Get currency configuration for the current shop"""
|
|
3918
4708
|
shopCurrencyConfig: ShopCurrencyConfig!
|
|
3919
4709
|
|
|
3920
|
-
"""Get products similar to a specific product"""
|
|
3921
|
-
similarProducts(
|
|
3922
|
-
first: Int = 6
|
|
3923
|
-
|
|
3924
|
-
"""Product ID to find similar products for"""
|
|
3925
|
-
productId: String!
|
|
3926
|
-
): ProductRecommendations!
|
|
3927
|
-
|
|
3928
4710
|
"""Get translations for a language"""
|
|
3929
4711
|
translations(input: TranslationsInput!): Translations!
|
|
3930
4712
|
|
|
@@ -3944,7 +4726,13 @@ type Query {
|
|
|
3944
4726
|
): Wishlist
|
|
3945
4727
|
|
|
3946
4728
|
"""Get customer wishlists (requires customer auth)"""
|
|
3947
|
-
wishlists
|
|
4729
|
+
wishlists(
|
|
4730
|
+
"""Cursor: return items after this cursor"""
|
|
4731
|
+
after: String
|
|
4732
|
+
|
|
4733
|
+
"""First N items (1-100)"""
|
|
4734
|
+
first: Int = 20
|
|
4735
|
+
): WishlistConnection!
|
|
3948
4736
|
}
|
|
3949
4737
|
|
|
3950
4738
|
"""Type of product recommendations to return"""
|
|
@@ -3987,8 +4775,8 @@ type RedeemRewardPayload {
|
|
|
3987
4775
|
"""Whether redemption was successful"""
|
|
3988
4776
|
success: Boolean!
|
|
3989
4777
|
|
|
3990
|
-
"""
|
|
3991
|
-
userErrors: [
|
|
4778
|
+
"""Typed user errors"""
|
|
4779
|
+
userErrors: [UserError!]!
|
|
3992
4780
|
}
|
|
3993
4781
|
|
|
3994
4782
|
"""Referral program statistics"""
|
|
@@ -4334,6 +5122,15 @@ type SEO {
|
|
|
4334
5122
|
title: String
|
|
4335
5123
|
}
|
|
4336
5124
|
|
|
5125
|
+
"""Predictive search query suggestion (typeahead)"""
|
|
5126
|
+
type SearchQuerySuggestion {
|
|
5127
|
+
"""Suggestion with <mark> highlights matching the query prefix"""
|
|
5128
|
+
styledText: String!
|
|
5129
|
+
|
|
5130
|
+
"""Plain text suggestion (product title)"""
|
|
5131
|
+
text: String!
|
|
5132
|
+
}
|
|
5133
|
+
|
|
4337
5134
|
"""Selected product option"""
|
|
4338
5135
|
type SelectedOption {
|
|
4339
5136
|
"""Option name (e.g., "Size", "Color")"""
|
|
@@ -4356,8 +5153,8 @@ type Shipment {
|
|
|
4356
5153
|
"""When the shipment was delivered"""
|
|
4357
5154
|
deliveredAt: DateTime
|
|
4358
5155
|
|
|
4359
|
-
"""Estimated delivery
|
|
4360
|
-
|
|
5156
|
+
"""Estimated delivery timestamp"""
|
|
5157
|
+
estimatedDeliveryAt: DateTime
|
|
4361
5158
|
|
|
4362
5159
|
"""Tracking events timeline"""
|
|
4363
5160
|
events: [ShipmentEvent!]
|
|
@@ -4492,14 +5289,11 @@ enum ShipmentStatus {
|
|
|
4492
5289
|
|
|
4493
5290
|
"""Address input for shipping calculation"""
|
|
4494
5291
|
input ShippingAddressInput {
|
|
4495
|
-
"""Street address line 1"""
|
|
4496
|
-
address1: String
|
|
4497
|
-
|
|
4498
5292
|
"""City"""
|
|
4499
5293
|
city: String
|
|
4500
5294
|
|
|
4501
|
-
"""
|
|
4502
|
-
country:
|
|
5295
|
+
"""ISO 3166-1 alpha-2 country code"""
|
|
5296
|
+
country: CountryCode!
|
|
4503
5297
|
|
|
4504
5298
|
"""Email address"""
|
|
4505
5299
|
email: String
|
|
@@ -4513,11 +5307,14 @@ input ShippingAddressInput {
|
|
|
4513
5307
|
"""Phone number"""
|
|
4514
5308
|
phone: String
|
|
4515
5309
|
|
|
4516
|
-
"""Postal/ZIP code"""
|
|
5310
|
+
"""Postal / ZIP code"""
|
|
4517
5311
|
postalCode: String
|
|
4518
5312
|
|
|
4519
|
-
"""
|
|
4520
|
-
|
|
5313
|
+
"""State / province / region"""
|
|
5314
|
+
state: String
|
|
5315
|
+
|
|
5316
|
+
"""First line of street address"""
|
|
5317
|
+
streetLine1: String
|
|
4521
5318
|
}
|
|
4522
5319
|
|
|
4523
5320
|
"""Shipping carrier information"""
|
|
@@ -4555,6 +5352,9 @@ type Shop {
|
|
|
4555
5352
|
"""Bot protection configuration (platform-level)"""
|
|
4556
5353
|
botProtection: BotProtectionInfo
|
|
4557
5354
|
|
|
5355
|
+
"""Industry-standard brand metadata (logo + slogan + colors)"""
|
|
5356
|
+
brand: Brand
|
|
5357
|
+
|
|
4558
5358
|
"""Complete branding configuration"""
|
|
4559
5359
|
branding: ShopBranding
|
|
4560
5360
|
|
|
@@ -4564,14 +5364,20 @@ type Shop {
|
|
|
4564
5364
|
"""Contact email address"""
|
|
4565
5365
|
contactEmail: String
|
|
4566
5366
|
|
|
5367
|
+
"""Contact information policy"""
|
|
5368
|
+
contactInformation: ShopPolicy
|
|
5369
|
+
|
|
4567
5370
|
"""Contact phone number"""
|
|
4568
5371
|
contactPhone: String
|
|
4569
5372
|
|
|
4570
5373
|
"""Default currency code (ISO 4217)"""
|
|
4571
|
-
currencyCode:
|
|
5374
|
+
currencyCode: CurrencyCode!
|
|
5375
|
+
|
|
5376
|
+
"""Customer account URL (login/orders) — z primaryDomain"""
|
|
5377
|
+
customerAccountUrl: URL
|
|
4572
5378
|
|
|
4573
|
-
"""Default language code"""
|
|
4574
|
-
defaultLanguage:
|
|
5379
|
+
"""Default language code (ISO 639-1)"""
|
|
5380
|
+
defaultLanguage: LanguageCode
|
|
4575
5381
|
|
|
4576
5382
|
"""Shop description"""
|
|
4577
5383
|
description: String
|
|
@@ -4579,26 +5385,55 @@ type Shop {
|
|
|
4579
5385
|
"""Shop unique identifier"""
|
|
4580
5386
|
id: ID!
|
|
4581
5387
|
|
|
5388
|
+
"""Legal notice / impressum"""
|
|
5389
|
+
legalNotice: ShopPolicy
|
|
5390
|
+
|
|
4582
5391
|
"""Locale to currency mapping for auto-detection (SSOT)"""
|
|
4583
5392
|
localeToCurrencyMap: [LocaleCurrencyMapping!]!
|
|
4584
5393
|
|
|
4585
5394
|
"""Shop logo"""
|
|
4586
5395
|
logo: Image
|
|
4587
5396
|
|
|
5397
|
+
"""
|
|
5398
|
+
Money display format z `{{amount}}` placeholder, np. "{{amount}} zł"
|
|
5399
|
+
"""
|
|
5400
|
+
moneyFormat: String!
|
|
5401
|
+
|
|
4588
5402
|
"""Shop name"""
|
|
4589
5403
|
name: String!
|
|
4590
5404
|
|
|
4591
5405
|
"""Supported payment currencies"""
|
|
4592
|
-
paymentCurrencies: [
|
|
5406
|
+
paymentCurrencies: [CurrencyCode!]!
|
|
5407
|
+
|
|
5408
|
+
"""Payment configuration (currency, accepted cards, digital wallets)"""
|
|
5409
|
+
paymentSettings: PaymentSettings!
|
|
5410
|
+
|
|
5411
|
+
"""Primary domain (host + URL + SSL state)"""
|
|
5412
|
+
primaryDomain: Domain!
|
|
4593
5413
|
|
|
4594
|
-
"""
|
|
4595
|
-
|
|
5414
|
+
"""Privacy policy"""
|
|
5415
|
+
privacyPolicy: ShopPolicy
|
|
5416
|
+
|
|
5417
|
+
"""Refund / return policy"""
|
|
5418
|
+
refundPolicy: ShopPolicy
|
|
5419
|
+
|
|
5420
|
+
"""Shipping policy"""
|
|
5421
|
+
shippingPolicy: ShopPolicy
|
|
5422
|
+
|
|
5423
|
+
"""Countries shop ships to (z shipping zones)"""
|
|
5424
|
+
shipsToCountries: [CountryCode!]!
|
|
4596
5425
|
|
|
4597
5426
|
"""Supported currencies for price display"""
|
|
4598
|
-
supportedCurrencies: [
|
|
5427
|
+
supportedCurrencies: [CurrencyCode!]!
|
|
4599
5428
|
|
|
4600
|
-
"""Supported languages"""
|
|
4601
|
-
supportedLanguages: [
|
|
5429
|
+
"""Supported languages (ISO 639-1)"""
|
|
5430
|
+
supportedLanguages: [LanguageCode!]
|
|
5431
|
+
|
|
5432
|
+
"""Terms of sale"""
|
|
5433
|
+
termsOfSale: ShopPolicy
|
|
5434
|
+
|
|
5435
|
+
"""Terms of service"""
|
|
5436
|
+
termsOfService: ShopPolicy
|
|
4602
5437
|
|
|
4603
5438
|
"""Shop timezone"""
|
|
4604
5439
|
timezone: String
|
|
@@ -4606,23 +5441,23 @@ type Shop {
|
|
|
4606
5441
|
|
|
4607
5442
|
"""Shop physical address"""
|
|
4608
5443
|
type ShopAddress {
|
|
4609
|
-
"""Street address line 1"""
|
|
4610
|
-
address1: String
|
|
4611
|
-
|
|
4612
|
-
"""Street address line 2"""
|
|
4613
|
-
address2: String
|
|
4614
|
-
|
|
4615
5444
|
"""City"""
|
|
4616
5445
|
city: String
|
|
4617
5446
|
|
|
4618
5447
|
"""Country code (ISO 3166-1 alpha-2)"""
|
|
4619
5448
|
country: String
|
|
4620
5449
|
|
|
4621
|
-
"""Postal/ZIP code"""
|
|
5450
|
+
"""Postal / ZIP code"""
|
|
4622
5451
|
postalCode: String
|
|
4623
5452
|
|
|
4624
|
-
"""State/
|
|
5453
|
+
"""State / province"""
|
|
4625
5454
|
state: String
|
|
5455
|
+
|
|
5456
|
+
"""First line of street address"""
|
|
5457
|
+
streetLine1: String
|
|
5458
|
+
|
|
5459
|
+
"""Second line of street address"""
|
|
5460
|
+
streetLine2: String
|
|
4626
5461
|
}
|
|
4627
5462
|
|
|
4628
5463
|
"""Shop branding configuration"""
|
|
@@ -4687,11 +5522,11 @@ type ShopPage {
|
|
|
4687
5522
|
"""HTML body content"""
|
|
4688
5523
|
body: String!
|
|
4689
5524
|
|
|
4690
|
-
"""Auto-generated plain text summary"""
|
|
4691
|
-
bodySummary: String!
|
|
4692
|
-
|
|
4693
5525
|
"""Created date (ISO 8601)"""
|
|
4694
|
-
createdAt:
|
|
5526
|
+
createdAt: DateTime!
|
|
5527
|
+
|
|
5528
|
+
"""Auto-generated plain text summary"""
|
|
5529
|
+
excerpt: String!
|
|
4695
5530
|
|
|
4696
5531
|
"""URL handle"""
|
|
4697
5532
|
handle: String!
|
|
@@ -4700,7 +5535,7 @@ type ShopPage {
|
|
|
4700
5535
|
id: ID!
|
|
4701
5536
|
|
|
4702
5537
|
"""Publish date (ISO 8601)"""
|
|
4703
|
-
publishedAt:
|
|
5538
|
+
publishedAt: DateTime
|
|
4704
5539
|
|
|
4705
5540
|
"""SEO metadata"""
|
|
4706
5541
|
seo: SEO
|
|
@@ -4709,7 +5544,7 @@ type ShopPage {
|
|
|
4709
5544
|
title: String!
|
|
4710
5545
|
|
|
4711
5546
|
"""Updated date (ISO 8601)"""
|
|
4712
|
-
updatedAt:
|
|
5547
|
+
updatedAt: DateTime!
|
|
4713
5548
|
}
|
|
4714
5549
|
|
|
4715
5550
|
"""Paginated shop pages"""
|
|
@@ -4733,6 +5568,24 @@ type ShopPageEdge {
|
|
|
4733
5568
|
node: ShopPage!
|
|
4734
5569
|
}
|
|
4735
5570
|
|
|
5571
|
+
"""Shop legal/info policy document"""
|
|
5572
|
+
type ShopPolicy implements Node {
|
|
5573
|
+
"""Policy body (markdown)"""
|
|
5574
|
+
body: String!
|
|
5575
|
+
|
|
5576
|
+
"""URL-friendly handle (slug)"""
|
|
5577
|
+
handle: String!
|
|
5578
|
+
|
|
5579
|
+
"""Globally-unique identifier"""
|
|
5580
|
+
id: ID!
|
|
5581
|
+
|
|
5582
|
+
"""Policy title (e.g. "Privacy Policy")"""
|
|
5583
|
+
title: String!
|
|
5584
|
+
|
|
5585
|
+
"""Canonical URL on storefront"""
|
|
5586
|
+
url: URL!
|
|
5587
|
+
}
|
|
5588
|
+
|
|
4736
5589
|
"""Shop social media links"""
|
|
4737
5590
|
type SocialLinks {
|
|
4738
5591
|
"""Facebook page URL"""
|
|
@@ -4757,10 +5610,15 @@ type SocialLinks {
|
|
|
4757
5610
|
youtube: String
|
|
4758
5611
|
}
|
|
4759
5612
|
|
|
4760
|
-
"""Per-location stock availability
|
|
5613
|
+
"""Per-location stock availability"""
|
|
4761
5614
|
type StoreAvailability {
|
|
5615
|
+
"""
|
|
5616
|
+
Available stock at this location (computed: stock - reserved). Token-gated: null for anonymous requests, Int for authenticated customer context.
|
|
5617
|
+
"""
|
|
5618
|
+
availableStock: Int
|
|
5619
|
+
|
|
4762
5620
|
"""Whether the variant is in stock at this location"""
|
|
4763
|
-
|
|
5621
|
+
isAvailable: Boolean!
|
|
4764
5622
|
|
|
4765
5623
|
"""Location where this stock resides"""
|
|
4766
5624
|
location: Location!
|
|
@@ -4768,12 +5626,7 @@ type StoreAvailability {
|
|
|
4768
5626
|
"""
|
|
4769
5627
|
Human-readable pickup readiness string, localized (e.g., "Usually ready in 2 hours"). Null if location does not support pickup.
|
|
4770
5628
|
"""
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
"""
|
|
4774
|
-
Quantity available at this location. Token-gated: null for anonymous requests, Int for authenticated customer context (Shopify parity).
|
|
4775
|
-
"""
|
|
4776
|
-
quantityAvailable: Int
|
|
5629
|
+
pickupTime: String
|
|
4777
5630
|
}
|
|
4778
5631
|
|
|
4779
5632
|
"""Paginated store availability connection"""
|
|
@@ -4887,6 +5740,22 @@ input TranslationsInput {
|
|
|
4887
5740
|
namespaces: [String!]
|
|
4888
5741
|
}
|
|
4889
5742
|
|
|
5743
|
+
"""
|
|
5744
|
+
URL string per RFC 3986 (e.g. "https://shop.example.com/products/foo").
|
|
5745
|
+
"""
|
|
5746
|
+
scalar URL
|
|
5747
|
+
|
|
5748
|
+
"""Measurement system (metric vs imperial) — wpływa na display formats"""
|
|
5749
|
+
enum UnitSystem {
|
|
5750
|
+
IMPERIAL_SYSTEM
|
|
5751
|
+
METRIC_SYSTEM
|
|
5752
|
+
}
|
|
5753
|
+
|
|
5754
|
+
"""
|
|
5755
|
+
Unsigned 64-bit integer, JSON-serialized as String (BigInt-safe). Format: "{integer}".
|
|
5756
|
+
"""
|
|
5757
|
+
scalar UnsignedInt64
|
|
5758
|
+
|
|
4890
5759
|
"""URL redirect (SEO, store migration)"""
|
|
4891
5760
|
type UrlRedirect {
|
|
4892
5761
|
"""Source path"""
|
|
@@ -4917,7 +5786,7 @@ type UserError {
|
|
|
4917
5786
|
message: String!
|
|
4918
5787
|
}
|
|
4919
5788
|
|
|
4920
|
-
"""Per-product variant option filter (Color
|
|
5789
|
+
"""Per-product variant option filter (e.g. Color=Red)"""
|
|
4921
5790
|
input VariantOptionFilter {
|
|
4922
5791
|
"""Option name (e.g. "Color")"""
|
|
4923
5792
|
name: String!
|
|
@@ -4926,6 +5795,23 @@ input VariantOptionFilter {
|
|
|
4926
5795
|
value: String!
|
|
4927
5796
|
}
|
|
4928
5797
|
|
|
5798
|
+
"""Weight value with unit"""
|
|
5799
|
+
type Weight {
|
|
5800
|
+
"""Weight unit"""
|
|
5801
|
+
unit: WeightUnit!
|
|
5802
|
+
|
|
5803
|
+
"""Weight value"""
|
|
5804
|
+
value: Float!
|
|
5805
|
+
}
|
|
5806
|
+
|
|
5807
|
+
"""Weight unit (GRAMS canonical, KILOGRAMS/OUNCES/POUNDS for display)"""
|
|
5808
|
+
enum WeightUnit {
|
|
5809
|
+
GRAMS
|
|
5810
|
+
KILOGRAMS
|
|
5811
|
+
OUNCES
|
|
5812
|
+
POUNDS
|
|
5813
|
+
}
|
|
5814
|
+
|
|
4929
5815
|
"""Customer wishlist"""
|
|
4930
5816
|
type Wishlist {
|
|
4931
5817
|
"""Created date"""
|
|
@@ -4951,12 +5837,36 @@ type Wishlist {
|
|
|
4951
5837
|
updatedAt: DateTime!
|
|
4952
5838
|
}
|
|
4953
5839
|
|
|
5840
|
+
"""Paginated list of wishlists"""
|
|
5841
|
+
type WishlistConnection {
|
|
5842
|
+
"""Wishlist edges with cursors"""
|
|
5843
|
+
edges: [WishlistEdge!]!
|
|
5844
|
+
|
|
5845
|
+
"""Wishlist nodes (shortcut for edges.map(e => e.node))"""
|
|
5846
|
+
nodes: [Wishlist!]!
|
|
5847
|
+
|
|
5848
|
+
"""Pagination info"""
|
|
5849
|
+
pageInfo: PageInfo!
|
|
5850
|
+
|
|
5851
|
+
"""Total count of wishlists"""
|
|
5852
|
+
totalCount: Int!
|
|
5853
|
+
}
|
|
5854
|
+
|
|
4954
5855
|
"""Input for creating a wishlist"""
|
|
4955
5856
|
input WishlistCreateInput {
|
|
4956
5857
|
isPublic: Boolean = false
|
|
4957
5858
|
name: String = "My Wishlist"
|
|
4958
5859
|
}
|
|
4959
5860
|
|
|
5861
|
+
"""Wishlist edge for pagination"""
|
|
5862
|
+
type WishlistEdge {
|
|
5863
|
+
"""Cursor for pagination"""
|
|
5864
|
+
cursor: String!
|
|
5865
|
+
|
|
5866
|
+
"""Wishlist node"""
|
|
5867
|
+
node: Wishlist!
|
|
5868
|
+
}
|
|
5869
|
+
|
|
4960
5870
|
"""Wishlist item"""
|
|
4961
5871
|
type WishlistItem {
|
|
4962
5872
|
"""Date added"""
|
|
@@ -4970,7 +5880,7 @@ type WishlistItem {
|
|
|
4970
5880
|
notifyOnSale: Boolean!
|
|
4971
5881
|
|
|
4972
5882
|
"""Price when added to wishlist"""
|
|
4973
|
-
|
|
5883
|
+
priceWhenAdded: Money!
|
|
4974
5884
|
|
|
4975
5885
|
"""Product details"""
|
|
4976
5886
|
product: Product
|
|
@@ -4991,7 +5901,7 @@ input WishlistItemInput {
|
|
|
4991
5901
|
|
|
4992
5902
|
"""Wishlist mutation payload"""
|
|
4993
5903
|
type WishlistPayload {
|
|
4994
|
-
"""
|
|
4995
|
-
userErrors: [
|
|
5904
|
+
"""Typed user errors"""
|
|
5905
|
+
userErrors: [UserError!]!
|
|
4996
5906
|
wishlist: Wishlist
|
|
4997
5907
|
}
|