@doswiftly/storefront-operations 14.0.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +26 -3
- package/CHANGELOG.md +294 -0
- package/README.md +8 -4
- package/fragments.graphql +49 -4
- package/llms-full.txt +117 -6
- package/operations.json +58 -11
- package/package.json +1 -1
- package/queries.graphql +22 -0
- package/schema.graphql +1084 -481
package/schema.graphql
CHANGED
|
@@ -32,12 +32,14 @@ directive @inContext(
|
|
|
32
32
|
preferredLocationId: ID
|
|
33
33
|
) on MUTATION | QUERY | SUBSCRIPTION
|
|
34
34
|
|
|
35
|
-
"""
|
|
35
|
+
"""
|
|
36
|
+
A generic key/value attribute — used for line item properties and other free-form metadata.
|
|
37
|
+
"""
|
|
36
38
|
type Attribute {
|
|
37
|
-
"""Attribute key"""
|
|
39
|
+
"""Attribute key."""
|
|
38
40
|
key: String!
|
|
39
41
|
|
|
40
|
-
"""Attribute value"""
|
|
42
|
+
"""Attribute value. Null when the key is set without an associated value."""
|
|
41
43
|
value: String
|
|
42
44
|
}
|
|
43
45
|
|
|
@@ -230,64 +232,88 @@ type AttributeRangeBounds {
|
|
|
230
232
|
min: Float
|
|
231
233
|
}
|
|
232
234
|
|
|
233
|
-
"""
|
|
235
|
+
"""
|
|
236
|
+
A configurator selection that the buyer filled in on a line item — typed snapshot taken at add-to-cart and frozen on the resulting order. Distinct from `CartLine.attributes` (free-form key/value line item properties): selections are validated against the product attribute definition, carry pricing surcharges and can link to a hidden component variant.
|
|
237
|
+
"""
|
|
234
238
|
type AttributeSelection {
|
|
235
|
-
"""
|
|
239
|
+
"""ID of the attribute definition this selection refers to."""
|
|
236
240
|
attributeDefinitionId: ID!
|
|
237
241
|
|
|
238
|
-
"""
|
|
242
|
+
"""Display name of the attribute at the moment it was added to the cart."""
|
|
239
243
|
attributeName: String!
|
|
240
244
|
|
|
241
|
-
"""
|
|
245
|
+
"""
|
|
246
|
+
How the surcharge is charged: BUNDLED (folded into the line unit price) or SEPARATE_LINE (its own line on the order). Null when the selection is informational and has no surcharge.
|
|
247
|
+
"""
|
|
242
248
|
billingMode: AttributeBillingMode
|
|
243
249
|
|
|
244
|
-
"""
|
|
250
|
+
"""
|
|
251
|
+
Who supplies the value: MERCHANT (set on the product), CUSTOMER (filled at add-to-cart) or BOTH.
|
|
252
|
+
"""
|
|
245
253
|
fillingMode: AttributeFillingMode!
|
|
246
254
|
|
|
247
|
-
"""
|
|
255
|
+
"""
|
|
256
|
+
Linked variant whose stock is decremented when this option is chosen — used by the hidden-product configurator pattern (e.g. finish, accessory). Null when no component stock is tied to the selection.
|
|
257
|
+
"""
|
|
248
258
|
linkedVariantId: ID
|
|
249
259
|
|
|
250
|
-
"""
|
|
260
|
+
"""
|
|
261
|
+
Selected option ID for single-choice types (SELECT, RADIO, single-CHECKBOX).
|
|
262
|
+
"""
|
|
251
263
|
optionId: ID
|
|
252
264
|
|
|
253
|
-
"""
|
|
265
|
+
"""
|
|
266
|
+
Selected option IDs for multi-choice types (MULTI_SELECT, CHECKBOX list).
|
|
267
|
+
"""
|
|
254
268
|
optionIds: [ID!]
|
|
255
269
|
|
|
256
|
-
"""
|
|
270
|
+
"""Display label of the selected option at the moment of selection."""
|
|
257
271
|
optionLabel: String
|
|
258
272
|
|
|
259
273
|
"""
|
|
260
|
-
Surcharge
|
|
274
|
+
Surcharge attached to this selection in minor units of the shop currency when `surchargeType` is FIXED; thousandths of a percent (per mille of a percent) when PERCENT. Already reflected in the line cost.
|
|
261
275
|
"""
|
|
262
276
|
surchargeAmount: Int!
|
|
263
277
|
|
|
264
|
-
"""
|
|
278
|
+
"""
|
|
279
|
+
How the surcharge is calculated — FIXED (absolute amount) or PERCENT. Null when the selection has no surcharge.
|
|
280
|
+
"""
|
|
265
281
|
surchargeType: AttributeOptionSurchargeType
|
|
266
282
|
|
|
267
|
-
"""
|
|
283
|
+
"""
|
|
284
|
+
Tax class applied to this selection. Null means the line inherits its tax class from the variant.
|
|
285
|
+
"""
|
|
268
286
|
taxClassId: ID
|
|
269
287
|
|
|
270
|
-
"""Free-text value
|
|
288
|
+
"""Free-text value for TEXT, TEXTAREA, NUMBER or DATE attribute types."""
|
|
271
289
|
textValue: String
|
|
272
290
|
|
|
273
|
-
"""
|
|
291
|
+
"""
|
|
292
|
+
Attribute data type (TEXT, SELECT, RADIO, CHECKBOX, NUMBER, DATE, COLOR, etc.). Drives which value field is populated.
|
|
293
|
+
"""
|
|
274
294
|
type: AttributeType!
|
|
275
295
|
}
|
|
276
296
|
|
|
277
297
|
"""
|
|
278
|
-
|
|
298
|
+
A configurator selection on a cart line — server-side validated against the product attribute definition. The value goes into one of `optionId`, `optionIds` or `textValue` depending on the attribute type.
|
|
279
299
|
"""
|
|
280
300
|
input AttributeSelectionInput {
|
|
281
|
-
"""
|
|
301
|
+
"""ID of the attribute definition this selection refers to."""
|
|
282
302
|
attributeDefinitionId: ID!
|
|
283
303
|
|
|
284
|
-
"""
|
|
304
|
+
"""
|
|
305
|
+
Selected option ID for single-choice attribute types (SELECT, RADIO, single-CHECKBOX).
|
|
306
|
+
"""
|
|
285
307
|
optionId: ID
|
|
286
308
|
|
|
287
|
-
"""
|
|
309
|
+
"""
|
|
310
|
+
Selected option IDs for multi-choice attribute types (MULTI_SELECT, CHECKBOX list).
|
|
311
|
+
"""
|
|
288
312
|
optionIds: [ID!]
|
|
289
313
|
|
|
290
|
-
"""
|
|
314
|
+
"""
|
|
315
|
+
Free-text value for TEXT, TEXTAREA, NUMBER or DATE attribute types (max 2000 chars).
|
|
316
|
+
"""
|
|
291
317
|
textValue: String
|
|
292
318
|
}
|
|
293
319
|
|
|
@@ -370,54 +396,89 @@ input AvailableFiltersInput {
|
|
|
370
396
|
searchQuery: String
|
|
371
397
|
}
|
|
372
398
|
|
|
373
|
-
"""
|
|
399
|
+
"""
|
|
400
|
+
Result of `availablePaymentMethods` — the methods to render in the payment picker plus the merchant default.
|
|
401
|
+
"""
|
|
374
402
|
type AvailablePaymentMethods {
|
|
375
|
-
"""
|
|
403
|
+
"""
|
|
404
|
+
Method marked as the merchant default — pre-select in the picker. Null when no default is configured.
|
|
405
|
+
"""
|
|
376
406
|
defaultMethod: PaymentMethod
|
|
377
407
|
|
|
378
|
-
"""
|
|
408
|
+
"""Payment methods active for the shop, sorted by `position`."""
|
|
379
409
|
methods: [PaymentMethod!]!
|
|
380
410
|
}
|
|
381
411
|
|
|
382
|
-
"""
|
|
412
|
+
"""
|
|
413
|
+
A shipping method offered to the buyer for the current cart and destination — what to render in the shipping picker.
|
|
414
|
+
"""
|
|
383
415
|
type AvailableShippingMethod {
|
|
384
|
-
"""
|
|
416
|
+
"""
|
|
417
|
+
Carrier behind the method. Null when the merchant configured a custom non-carrier method.
|
|
418
|
+
"""
|
|
385
419
|
carrier: ShippingCarrier
|
|
386
420
|
|
|
387
|
-
"""
|
|
421
|
+
"""
|
|
422
|
+
Destination type — HOME (courier to the street address), PICKUP_POINT (staffed counter) or LOCKER (parcel locker). Drives whether the storefront must render a pickup-point picker for the method instead of inferring it from the method name.
|
|
423
|
+
"""
|
|
424
|
+
deliveryType: DeliveryType!
|
|
425
|
+
|
|
426
|
+
"""
|
|
427
|
+
Optional method description shown under the name (e.g. "Saturday delivery available").
|
|
428
|
+
"""
|
|
388
429
|
description: String
|
|
389
430
|
|
|
390
|
-
"""
|
|
431
|
+
"""
|
|
432
|
+
Estimated delivery window. Null when the merchant has not configured an estimate for this method.
|
|
433
|
+
"""
|
|
391
434
|
estimatedDelivery: DeliveryEstimate
|
|
392
435
|
|
|
393
|
-
"""
|
|
436
|
+
"""
|
|
437
|
+
Progress towards the free-shipping threshold for this method, when one is configured. Null otherwise.
|
|
438
|
+
"""
|
|
394
439
|
freeShippingProgress: FreeShippingProgress
|
|
395
440
|
|
|
396
|
-
"""
|
|
441
|
+
"""
|
|
442
|
+
Stable ID of the shipping method. Pass to `cartSelectShippingMethod` to select it.
|
|
443
|
+
"""
|
|
397
444
|
id: ID!
|
|
398
445
|
|
|
399
|
-
"""
|
|
446
|
+
"""
|
|
447
|
+
True when the price is zero — the method is free for this cart (e.g. free-shipping threshold met).
|
|
448
|
+
"""
|
|
400
449
|
isFree: Boolean!
|
|
401
450
|
|
|
402
|
-
"""
|
|
451
|
+
"""Display name of the method (e.g. "DPD Standard")."""
|
|
403
452
|
name: String!
|
|
404
453
|
|
|
405
|
-
"""
|
|
454
|
+
"""
|
|
455
|
+
Cost of the method for the current cart (in the buyer preferred currency).
|
|
456
|
+
"""
|
|
406
457
|
price: Money!
|
|
407
458
|
|
|
408
|
-
"""
|
|
459
|
+
"""
|
|
460
|
+
Merchant-configured display position — lower values come first in the picker.
|
|
461
|
+
"""
|
|
409
462
|
sortOrder: Int!
|
|
410
463
|
}
|
|
411
464
|
|
|
412
|
-
"""
|
|
465
|
+
"""
|
|
466
|
+
Result of `availableShippingMethods` / `cart.availableShippingMethods` — the methods to render plus optional free-shipping progress and any user errors.
|
|
467
|
+
"""
|
|
413
468
|
type AvailableShippingMethodsPayload {
|
|
414
|
-
"""
|
|
469
|
+
"""
|
|
470
|
+
Best free-shipping progress across all returned methods. Use to render a single banner above the picker.
|
|
471
|
+
"""
|
|
415
472
|
freeShippingProgress: FreeShippingProgress
|
|
416
473
|
|
|
417
|
-
"""
|
|
474
|
+
"""
|
|
475
|
+
Methods available for the current cart and destination, sorted by `sortOrder`.
|
|
476
|
+
"""
|
|
418
477
|
methods: [AvailableShippingMethod!]!
|
|
419
478
|
|
|
420
|
-
"""
|
|
479
|
+
"""
|
|
480
|
+
Validation / availability errors — e.g. `DIGITAL_ONLY_NO_SHIPPING` when the cart contains only non-physical items. Branch on `code`.
|
|
481
|
+
"""
|
|
421
482
|
userErrors: [UserError!]!
|
|
422
483
|
}
|
|
423
484
|
|
|
@@ -805,61 +866,84 @@ type CarrierShippingRate {
|
|
|
805
866
|
serviceName: String!
|
|
806
867
|
}
|
|
807
868
|
|
|
808
|
-
"""
|
|
869
|
+
"""
|
|
870
|
+
A shopping cart — the buyer-facing aggregate that holds items, totals, buyer identity, addresses, selected shipping and payment methods, gift cards and discount codes through to checkout completion.
|
|
871
|
+
"""
|
|
809
872
|
type Cart implements Node {
|
|
810
|
-
"""
|
|
873
|
+
"""
|
|
874
|
+
Gift cards attached to the cart. Each card is debited by its `appliedAmount` when the cart completes.
|
|
875
|
+
"""
|
|
811
876
|
appliedGiftCards: [CartAppliedGiftCard!]!
|
|
812
877
|
|
|
813
|
-
"""
|
|
878
|
+
"""
|
|
879
|
+
Cart-level custom attributes (free-form key/value). Use for cart-wide metadata such as B2B PO number or marketing source. Replace (not merge) the list with `cartUpdateAttributes`.
|
|
880
|
+
"""
|
|
814
881
|
attributes: [CartAttribute!]!
|
|
815
882
|
|
|
816
883
|
"""Available payment methods dla tego cart (shop-configured providers)"""
|
|
817
884
|
availablePaymentMethods: [PaymentMethod!]!
|
|
818
885
|
|
|
819
886
|
"""
|
|
820
|
-
|
|
887
|
+
Shipping methods available for this cart at the given destination. Reads the cart subtotal and weight directly — for pre-cart preview (e.g. a product detail page calculator) use the top-level `availableShippingMethods(address, cart)` query instead. Returns an empty `methods` list plus a `DIGITAL_ONLY_NO_SHIPPING` user error when the cart has no shippable items; the storefront can use this to skip the shipping step entirely.
|
|
821
888
|
"""
|
|
822
889
|
availableShippingMethods(address: ShippingAddressInput!): AvailableShippingMethodsPayload!
|
|
823
890
|
|
|
824
891
|
"""
|
|
825
|
-
Billing address
|
|
892
|
+
Billing address attached to the cart via `cartSetBillingAddress`. Null when the buyer reuses the shipping address as billing (the order will then mirror the shipping address).
|
|
826
893
|
"""
|
|
827
894
|
billingAddress: MailingAddress
|
|
828
895
|
|
|
829
|
-
"""
|
|
896
|
+
"""
|
|
897
|
+
Buyer identity attached to the cart (email, phone, country and language hints). Null on a fresh cart before any identity is captured.
|
|
898
|
+
"""
|
|
830
899
|
buyerIdentity: CartBuyerIdentity
|
|
831
900
|
|
|
832
|
-
"""
|
|
901
|
+
"""
|
|
902
|
+
Hosted checkout URL the storefront may redirect to as a fallback. The recommended flow is to drive checkout through SDK mutations (`cartSetShippingAddress`, `cartSelectShippingMethod`, `cartSelectPaymentMethod`, `cartComplete`).
|
|
903
|
+
"""
|
|
833
904
|
checkoutUrl: URL
|
|
834
905
|
|
|
835
|
-
"""
|
|
906
|
+
"""
|
|
907
|
+
The order that this cart converted into. Populated only when `status` is `CONVERTED` — null on every other status. Use this to render the order confirmation page (subtotals, accessToken for guest tracking) directly off the cart you already loaded, without a second `orderByToken` round-trip.
|
|
908
|
+
"""
|
|
909
|
+
completedOrder: Order
|
|
910
|
+
|
|
911
|
+
"""
|
|
912
|
+
Cost breakdown for the cart (subtotal, tax, shipping, discount, grand total).
|
|
913
|
+
"""
|
|
836
914
|
cost: CartCost!
|
|
837
915
|
|
|
838
|
-
"""
|
|
916
|
+
"""When the cart was created (ISO 8601)."""
|
|
839
917
|
createdAt: DateTime!
|
|
840
918
|
|
|
841
|
-
"""
|
|
919
|
+
"""
|
|
920
|
+
Per-code discount amounts that make up `cost.totalDiscount`. Render line-item discount breakdown from this list.
|
|
921
|
+
"""
|
|
842
922
|
discountAllocations: [CartDiscountAllocation!]!
|
|
843
923
|
|
|
844
|
-
"""
|
|
924
|
+
"""Discount codes attached to the cart with their applicability flag."""
|
|
845
925
|
discountCodes: [CartDiscountCode!]!
|
|
846
926
|
|
|
847
927
|
"""
|
|
848
|
-
|
|
928
|
+
Convenience accessor — buyer email as last set via `cartUpdateBuyerIdentity`. The same value is available on `buyerIdentity.email`.
|
|
849
929
|
"""
|
|
850
930
|
email: String
|
|
851
931
|
|
|
852
|
-
"""
|
|
932
|
+
"""
|
|
933
|
+
Stable cart identifier — persist in a cookie / local store between sessions.
|
|
934
|
+
"""
|
|
853
935
|
id: ID!
|
|
854
936
|
|
|
855
|
-
"""
|
|
937
|
+
"""Lines in the cart (paginated, Relay Connection)."""
|
|
856
938
|
lines(after: String, before: String, first: Float, last: Float): CartLineConnection!
|
|
857
939
|
|
|
858
|
-
"""
|
|
940
|
+
"""
|
|
941
|
+
Buyer-supplied note (e.g. delivery instructions). Free-form, surfaced to the merchant on the order.
|
|
942
|
+
"""
|
|
859
943
|
note: String
|
|
860
944
|
|
|
861
945
|
"""
|
|
862
|
-
|
|
946
|
+
Convenience accessor — buyer phone as last set via `cartUpdateBuyerIdentity`. The same value is available on `buyerIdentity.phone`.
|
|
863
947
|
"""
|
|
864
948
|
phone: String
|
|
865
949
|
|
|
@@ -867,43 +951,56 @@ type Cart implements Node {
|
|
|
867
951
|
recommendations(first: Int = 4): CartRecommendations
|
|
868
952
|
|
|
869
953
|
"""
|
|
870
|
-
True
|
|
954
|
+
True when at least one line in the cart requires physical shipping. False when every line is non-physical (digital, gift card, service, subscription). Use as the single signal to render or skip the shipping step in checkout.
|
|
871
955
|
"""
|
|
872
956
|
requiresShipping: Boolean!
|
|
873
957
|
|
|
874
|
-
"""
|
|
958
|
+
"""
|
|
959
|
+
The payment method currently selected on the cart. Null until the buyer picks a method via `cartSelectPaymentMethod`.
|
|
960
|
+
"""
|
|
875
961
|
selectedPaymentMethod: PaymentMethod
|
|
876
962
|
|
|
877
963
|
"""
|
|
878
|
-
|
|
964
|
+
The shipping method currently selected on the cart (label + cost). Null until the buyer picks a method.
|
|
879
965
|
"""
|
|
880
966
|
selectedShippingMethod: CartShippingMethod
|
|
881
967
|
|
|
882
|
-
"""
|
|
968
|
+
"""
|
|
969
|
+
Shipping address attached to the cart via `cartSetShippingAddress`. Null until set.
|
|
970
|
+
"""
|
|
883
971
|
shippingAddress: MailingAddress
|
|
884
972
|
|
|
885
|
-
"""
|
|
973
|
+
"""
|
|
974
|
+
Lifecycle status — `ACTIVE` for the editable working cart, terminal otherwise. Check this on SSR before rendering the checkout form: a non-`ACTIVE` cart should redirect (typically to the order confirmation when `completedOrder` is populated) instead of presenting a form whose first mutation fails with `CartErrorCode.ALREADY_COMPLETED`.
|
|
975
|
+
"""
|
|
976
|
+
status: CartStatus!
|
|
977
|
+
|
|
978
|
+
"""
|
|
979
|
+
Sum of `quantity` across all lines — the badge number for the cart icon.
|
|
980
|
+
"""
|
|
886
981
|
totalQuantity: Int!
|
|
887
982
|
|
|
888
|
-
"""
|
|
983
|
+
"""When the cart was last modified (ISO 8601)."""
|
|
889
984
|
updatedAt: DateTime!
|
|
890
985
|
}
|
|
891
986
|
|
|
892
|
-
"""Result of
|
|
987
|
+
"""Result of `cartAddLines`."""
|
|
893
988
|
type CartAddLinesPayload {
|
|
894
|
-
"""
|
|
989
|
+
"""The updated cart on success; null when `userErrors` is non-empty."""
|
|
895
990
|
cart: Cart
|
|
896
991
|
|
|
897
992
|
"""
|
|
898
|
-
|
|
993
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `CART_NOT_FOUND`, `NOT_ENOUGH_IN_STOCK`).
|
|
899
994
|
"""
|
|
900
995
|
userErrors: [UserError!]!
|
|
901
996
|
|
|
902
|
-
"""Non-fatal
|
|
997
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
903
998
|
warnings: [CartWarning!]!
|
|
904
999
|
}
|
|
905
1000
|
|
|
906
|
-
"""
|
|
1001
|
+
"""
|
|
1002
|
+
Mailing address used as the shipping or billing address on a cart. Carries an optional pickup point (for parcel locker / collection-point delivery) and optional B2B fields (`taxId`, `regon`).
|
|
1003
|
+
"""
|
|
907
1004
|
input CartAddressInput {
|
|
908
1005
|
"""City"""
|
|
909
1006
|
city: String!
|
|
@@ -923,9 +1020,19 @@ input CartAddressInput {
|
|
|
923
1020
|
"""Phone number"""
|
|
924
1021
|
phone: String
|
|
925
1022
|
|
|
1023
|
+
"""
|
|
1024
|
+
Selected pickup point — required when the chosen shipping method has a deliveryType other than HOME (parcel locker / collection point).
|
|
1025
|
+
"""
|
|
1026
|
+
pickupPoint: PickupPointInput
|
|
1027
|
+
|
|
926
1028
|
"""Postal / ZIP code"""
|
|
927
1029
|
postalCode: String!
|
|
928
1030
|
|
|
1031
|
+
"""
|
|
1032
|
+
Buyer business registry number for B2B invoicing (Polish REGON). Persisted on the resulting order at checkout completion.
|
|
1033
|
+
"""
|
|
1034
|
+
regon: String
|
|
1035
|
+
|
|
929
1036
|
"""State / province"""
|
|
930
1037
|
state: String
|
|
931
1038
|
|
|
@@ -934,153 +1041,209 @@ input CartAddressInput {
|
|
|
934
1041
|
|
|
935
1042
|
"""Second line of street address"""
|
|
936
1043
|
streetLine2: String
|
|
1044
|
+
|
|
1045
|
+
"""
|
|
1046
|
+
Buyer tax ID for B2B invoicing (Polish NIP). Persisted on the resulting order at checkout completion.
|
|
1047
|
+
"""
|
|
1048
|
+
taxId: String
|
|
937
1049
|
}
|
|
938
1050
|
|
|
939
|
-
"""
|
|
1051
|
+
"""
|
|
1052
|
+
A gift card that the buyer has attached to the cart. The card is debited when the cart completes.
|
|
1053
|
+
"""
|
|
940
1054
|
type CartAppliedGiftCard {
|
|
941
|
-
"""Amount applied to
|
|
1055
|
+
"""Amount of this gift card that will be applied to the cart total."""
|
|
942
1056
|
appliedAmount: Money!
|
|
943
1057
|
|
|
944
|
-
"""
|
|
1058
|
+
"""
|
|
1059
|
+
Stable identifier of this applied gift card on the cart. Pass it to `cartRemoveGiftCard` so the storefront never has to hold the full gift card code.
|
|
1060
|
+
"""
|
|
1061
|
+
id: ID!
|
|
1062
|
+
|
|
1063
|
+
"""
|
|
1064
|
+
Last 4 characters of the gift card code — useful when several cards are applied.
|
|
1065
|
+
"""
|
|
945
1066
|
lastCharacters: String!
|
|
946
1067
|
|
|
947
|
-
"""Masked
|
|
1068
|
+
"""Masked code safe for display (e.g. "****-****-****-ABCD")."""
|
|
948
1069
|
maskedCode: String!
|
|
949
1070
|
|
|
950
|
-
"""Remaining balance on the gift card after this cart"""
|
|
1071
|
+
"""Remaining balance on the gift card after this cart is completed."""
|
|
951
1072
|
remainingBalance: Money!
|
|
952
1073
|
}
|
|
953
1074
|
|
|
954
|
-
"""Input
|
|
1075
|
+
"""Input for `cartApplyGiftCard`."""
|
|
955
1076
|
input CartApplyGiftCardInput {
|
|
956
|
-
"""
|
|
1077
|
+
"""ID of the cart to update."""
|
|
957
1078
|
cartId: ID!
|
|
958
1079
|
|
|
959
|
-
"""
|
|
1080
|
+
"""
|
|
1081
|
+
Full gift card code entered by the buyer (e.g. "ABCD-1234-EFGH-5678"). Max 64 chars.
|
|
1082
|
+
"""
|
|
960
1083
|
giftCardCode: String!
|
|
961
1084
|
}
|
|
962
1085
|
|
|
963
|
-
"""Result of
|
|
1086
|
+
"""Result of `cartApplyGiftCard`."""
|
|
964
1087
|
type CartApplyGiftCardPayload {
|
|
965
|
-
"""
|
|
1088
|
+
"""The updated cart with the gift card included in `appliedGiftCards`."""
|
|
966
1089
|
cart: Cart
|
|
967
1090
|
|
|
968
1091
|
"""
|
|
969
|
-
|
|
1092
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `GIFT_CARD_NOT_FOUND`, `GIFT_CARD_DEPLETED`, `GIFT_CARD_UNUSABLE`).
|
|
970
1093
|
"""
|
|
971
1094
|
userErrors: [UserError!]!
|
|
972
1095
|
|
|
973
|
-
"""Non-fatal
|
|
1096
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
974
1097
|
warnings: [CartWarning!]!
|
|
975
1098
|
}
|
|
976
1099
|
|
|
977
|
-
"""
|
|
1100
|
+
"""
|
|
1101
|
+
Custom attribute on a cart line — free-form key/value used for line item properties such as engraving text or gift wrap flags.
|
|
1102
|
+
"""
|
|
978
1103
|
type CartAttribute {
|
|
979
|
-
"""Attribute key"""
|
|
1104
|
+
"""Attribute key (e.g. "giftWrap", "engraving")."""
|
|
980
1105
|
key: String!
|
|
981
1106
|
|
|
982
|
-
"""Attribute value"""
|
|
1107
|
+
"""Attribute value. Null when the key is set without an associated value."""
|
|
983
1108
|
value: String
|
|
984
1109
|
}
|
|
985
1110
|
|
|
986
|
-
"""
|
|
1111
|
+
"""
|
|
1112
|
+
A custom cart attribute key/value pair. Used by `cartUpdateAttributes`; the full list is replaced on each call.
|
|
1113
|
+
"""
|
|
987
1114
|
input CartAttributeInput {
|
|
988
|
-
"""Attribute key"""
|
|
1115
|
+
"""Attribute key (max 255 chars)."""
|
|
989
1116
|
key: String!
|
|
990
1117
|
|
|
991
|
-
"""Attribute value"""
|
|
1118
|
+
"""Attribute value (max 500 chars). Omit to set the key without a value."""
|
|
992
1119
|
value: String
|
|
993
1120
|
}
|
|
994
1121
|
|
|
995
|
-
"""
|
|
1122
|
+
"""
|
|
1123
|
+
Buyer identity attached to the cart — email, phone, locale hints used during checkout and on the resulting order.
|
|
1124
|
+
"""
|
|
996
1125
|
type CartBuyerIdentity {
|
|
997
|
-
"""
|
|
1126
|
+
"""
|
|
1127
|
+
Buyer country (ISO 3166-1 alpha-2). Hint for pricing, tax and shipping eligibility before an address is provided.
|
|
1128
|
+
"""
|
|
998
1129
|
countryCode: CountryCode
|
|
999
1130
|
|
|
1000
|
-
"""
|
|
1131
|
+
"""
|
|
1132
|
+
Customer record ID when the cart is owned by a signed-in customer. Null for guest carts.
|
|
1133
|
+
"""
|
|
1001
1134
|
customerId: ID
|
|
1002
1135
|
|
|
1003
|
-
"""
|
|
1136
|
+
"""Buyer email — receives the order confirmation when the cart completes."""
|
|
1004
1137
|
email: String
|
|
1005
1138
|
|
|
1006
|
-
"""
|
|
1139
|
+
"""
|
|
1140
|
+
Buyer preferred language (ISO 639-1). Used for the order confirmation email and any localised content.
|
|
1141
|
+
"""
|
|
1007
1142
|
languageCode: LanguageCode
|
|
1008
1143
|
|
|
1009
|
-
"""
|
|
1144
|
+
"""Buyer phone number, free-form (validated only for length)."""
|
|
1010
1145
|
phone: String
|
|
1011
1146
|
}
|
|
1012
1147
|
|
|
1013
|
-
"""
|
|
1148
|
+
"""
|
|
1149
|
+
Buyer identity to attach to a cart. All fields are optional — only the supplied fields are updated.
|
|
1150
|
+
"""
|
|
1014
1151
|
input CartBuyerIdentityInput {
|
|
1015
|
-
"""
|
|
1152
|
+
"""
|
|
1153
|
+
Buyer country (ISO 3166-1 alpha-2). Hint for currency, tax and shipping eligibility before an address is set.
|
|
1154
|
+
"""
|
|
1016
1155
|
countryCode: CountryCode
|
|
1017
1156
|
|
|
1018
|
-
"""
|
|
1157
|
+
"""
|
|
1158
|
+
ID of a signed-in customer that owns this cart. Pass to bind a guest cart to a customer record.
|
|
1159
|
+
"""
|
|
1019
1160
|
customerId: ID
|
|
1020
1161
|
|
|
1021
|
-
"""
|
|
1162
|
+
"""Buyer email address. Persisted to the order at checkout completion."""
|
|
1022
1163
|
email: String
|
|
1023
1164
|
|
|
1024
|
-
"""
|
|
1165
|
+
"""
|
|
1166
|
+
Buyer preferred language (ISO 639-1). Used for the order confirmation email and localised content.
|
|
1167
|
+
"""
|
|
1025
1168
|
languageCode: LanguageCode
|
|
1026
1169
|
|
|
1027
|
-
"""
|
|
1170
|
+
"""Buyer phone number. Free-form; max 30 chars."""
|
|
1028
1171
|
phone: String
|
|
1029
1172
|
}
|
|
1030
1173
|
|
|
1031
|
-
"""Input
|
|
1174
|
+
"""Input for `cartComplete` — finalises the cart into an `Order`."""
|
|
1032
1175
|
input CartCompleteInput {
|
|
1033
|
-
"""
|
|
1176
|
+
"""ID of the cart to complete."""
|
|
1034
1177
|
cartId: ID!
|
|
1035
1178
|
|
|
1036
1179
|
"""
|
|
1037
|
-
Optional idempotency key —
|
|
1180
|
+
Optional idempotency key — guards against duplicate orders on retry / network issue. When omitted, the server derives one from the cart ID and the current minute, which is sufficient for the typical "user double-clicks the pay button" case.
|
|
1038
1181
|
"""
|
|
1039
1182
|
idempotencyKey: String
|
|
1040
1183
|
}
|
|
1041
1184
|
|
|
1042
1185
|
"""
|
|
1043
|
-
Result of
|
|
1186
|
+
Result of `cartComplete`. The cart is converted into an `Order` and locked — no further mutations are accepted on it. Payment is initiated separately via `paymentCreate` (after checking `order.canCreatePayment`).
|
|
1044
1187
|
"""
|
|
1045
1188
|
type CartCompletePayload {
|
|
1046
1189
|
"""
|
|
1047
|
-
|
|
1190
|
+
The order created from the cart. Carries `canCreatePayment` and `paymentMethodType` signals so the storefront can decide whether to render a "Pay now" button or send the buyer straight to the confirmation page (for offline methods).
|
|
1048
1191
|
"""
|
|
1049
1192
|
order: Order
|
|
1050
1193
|
|
|
1051
1194
|
"""
|
|
1052
|
-
|
|
1195
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `NOT_ENOUGH_IN_STOCK`, `SHIPPING_ADDRESS_REQUIRED`, `SHIPPING_METHOD_REQUIRED`, `PAYMENT_METHOD_REQUIRED`, `EMAIL_REQUIRED`, `ALREADY_COMPLETED`).
|
|
1053
1196
|
"""
|
|
1054
1197
|
userErrors: [UserError!]!
|
|
1055
1198
|
|
|
1056
|
-
"""Non-fatal
|
|
1199
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1057
1200
|
warnings: [CartWarning!]!
|
|
1058
1201
|
}
|
|
1059
1202
|
|
|
1060
|
-
"""
|
|
1203
|
+
"""
|
|
1204
|
+
Cart cost breakdown. All amounts are in the buyer preferred currency (auto-converted when the shop runs multi-currency). `total` is what the buyer will pay at checkout — no need to recompute.
|
|
1205
|
+
"""
|
|
1061
1206
|
type CartCost {
|
|
1062
|
-
"""
|
|
1207
|
+
"""
|
|
1208
|
+
Additional fixed checkout fee configured by the shop (e.g. small-order surcharge). Null when no such fee applies.
|
|
1209
|
+
"""
|
|
1063
1210
|
checkoutCharge: Money
|
|
1064
1211
|
|
|
1065
1212
|
"""Opt-in: checkoutCharge with conversion transparency."""
|
|
1066
1213
|
checkoutChargeWithConversion: PriceMoney
|
|
1067
1214
|
|
|
1068
|
-
"""Subtotal before taxes
|
|
1215
|
+
"""Subtotal of items in the cart before taxes, shipping and discounts."""
|
|
1069
1216
|
subtotal: Money!
|
|
1070
1217
|
|
|
1071
1218
|
"""Opt-in: subtotal with full conversion transparency."""
|
|
1072
1219
|
subtotalWithConversion: PriceMoney
|
|
1073
1220
|
|
|
1074
|
-
"""
|
|
1221
|
+
"""
|
|
1222
|
+
Grand total the buyer will pay — includes taxes, discounts and any selected shipping. Use this directly on the checkout summary instead of summing `subtotal` + extras.
|
|
1223
|
+
"""
|
|
1075
1224
|
total: Money!
|
|
1076
1225
|
|
|
1077
|
-
"""
|
|
1226
|
+
"""
|
|
1227
|
+
Aggregated discount across the cart — the sum of every entry in `discountAllocations`. Returns an amount of 0 when no discount applies.
|
|
1228
|
+
"""
|
|
1229
|
+
totalDiscount: Money!
|
|
1230
|
+
|
|
1231
|
+
"""
|
|
1232
|
+
Total customs duty on the cart. Null when no duty applies (most domestic orders).
|
|
1233
|
+
"""
|
|
1078
1234
|
totalDuty: Money
|
|
1079
1235
|
|
|
1080
1236
|
"""Opt-in: totalDuty with conversion transparency."""
|
|
1081
1237
|
totalDutyWithConversion: PriceMoney
|
|
1082
1238
|
|
|
1083
|
-
"""
|
|
1239
|
+
"""
|
|
1240
|
+
Cost of the currently selected shipping method. Null until a shipping method is selected — a selected free-shipping method returns an amount of 0, so null unambiguously means "no method chosen yet".
|
|
1241
|
+
"""
|
|
1242
|
+
totalShipping: Money
|
|
1243
|
+
|
|
1244
|
+
"""
|
|
1245
|
+
Total tax across all lines. Null when tax has not yet been calculated for this cart (e.g. before an address is set in tax-inclusive shops).
|
|
1246
|
+
"""
|
|
1084
1247
|
totalTax: Money
|
|
1085
1248
|
|
|
1086
1249
|
"""Opt-in: totalTax with conversion transparency."""
|
|
@@ -1090,150 +1253,194 @@ type CartCost {
|
|
|
1090
1253
|
totalWithConversion: PriceMoney
|
|
1091
1254
|
}
|
|
1092
1255
|
|
|
1093
|
-
"""
|
|
1256
|
+
"""
|
|
1257
|
+
Input for `cartCreate`. All fields are optional — pass only what you have at cart creation time.
|
|
1258
|
+
"""
|
|
1094
1259
|
input CartCreateInput {
|
|
1095
|
-
"""
|
|
1260
|
+
"""
|
|
1261
|
+
Cart-level custom attributes to set on the new cart (up to 50 entries).
|
|
1262
|
+
"""
|
|
1096
1263
|
attributes: [CartAttributeInput!]
|
|
1097
1264
|
|
|
1098
|
-
"""
|
|
1265
|
+
"""
|
|
1266
|
+
Buyer identity to attach to the new cart (email, phone, customer ID, country, language).
|
|
1267
|
+
"""
|
|
1099
1268
|
buyerIdentity: CartBuyerIdentityInput
|
|
1100
1269
|
|
|
1101
|
-
"""
|
|
1270
|
+
"""
|
|
1271
|
+
Discount codes to apply at creation (up to 10). Equivalent to calling `cartDiscountCodesUpdate` immediately after creating the cart.
|
|
1272
|
+
"""
|
|
1102
1273
|
discountCodes: [String!]
|
|
1103
1274
|
|
|
1104
|
-
"""
|
|
1275
|
+
"""
|
|
1276
|
+
Buyer email — shortcut for `buyerIdentity.email`. If both are provided, this field wins.
|
|
1277
|
+
"""
|
|
1105
1278
|
email: String
|
|
1106
1279
|
|
|
1107
|
-
"""Initial cart
|
|
1280
|
+
"""Initial lines to add to the cart (up to 100)."""
|
|
1108
1281
|
lines: [CartLineInput!]
|
|
1109
1282
|
|
|
1110
|
-
"""
|
|
1283
|
+
"""Buyer-supplied note (max 1000 chars), e.g. delivery instructions."""
|
|
1111
1284
|
note: String
|
|
1112
1285
|
|
|
1113
|
-
"""
|
|
1286
|
+
"""
|
|
1287
|
+
Shipping address to attach to the new cart — lets the storefront skip a follow-up `cartSetShippingAddress` call.
|
|
1288
|
+
"""
|
|
1114
1289
|
shippingAddress: CartAddressInput
|
|
1115
1290
|
}
|
|
1116
1291
|
|
|
1117
|
-
"""Result of
|
|
1292
|
+
"""Result of `cartCreate`."""
|
|
1118
1293
|
type CartCreatePayload {
|
|
1119
|
-
"""
|
|
1294
|
+
"""The created cart on success; null when `userErrors` is non-empty."""
|
|
1120
1295
|
cart: Cart
|
|
1121
1296
|
|
|
1122
1297
|
"""
|
|
1123
|
-
|
|
1298
|
+
Business / validation errors. Each entry carries a stable `code` (e.g. `CART_NOT_FOUND`, `NOT_ENOUGH_IN_STOCK`, `INVALID_MERCHANDISE_LINE`) — branch on `code`, never on `message`.
|
|
1124
1299
|
"""
|
|
1125
1300
|
userErrors: [UserError!]!
|
|
1126
1301
|
|
|
1127
|
-
"""
|
|
1302
|
+
"""
|
|
1303
|
+
Non-fatal advisories (informational only; the mutation itself succeeded).
|
|
1304
|
+
"""
|
|
1128
1305
|
warnings: [CartWarning!]!
|
|
1129
1306
|
}
|
|
1130
1307
|
|
|
1131
|
-
"""
|
|
1308
|
+
"""
|
|
1309
|
+
Per-code discount amount applied to the cart. Sum these for the aggregate total — or read `CartCost.totalDiscount`.
|
|
1310
|
+
"""
|
|
1132
1311
|
type CartDiscountAllocation {
|
|
1133
|
-
"""
|
|
1312
|
+
"""Amount discounted by this code on the cart."""
|
|
1134
1313
|
amount: Money!
|
|
1135
1314
|
|
|
1136
|
-
"""
|
|
1315
|
+
"""The discount code that produced this allocation."""
|
|
1137
1316
|
discountCode: String!
|
|
1138
1317
|
}
|
|
1139
1318
|
|
|
1140
|
-
"""
|
|
1319
|
+
"""A discount code that the buyer has attached to the cart."""
|
|
1141
1320
|
type CartDiscountCode {
|
|
1142
|
-
"""
|
|
1321
|
+
"""The code string as entered by the buyer (case is preserved as stored)."""
|
|
1143
1322
|
code: String!
|
|
1144
1323
|
|
|
1145
|
-
"""
|
|
1324
|
+
"""
|
|
1325
|
+
Whether this code currently produces a discount on the cart. False when the code is recognised but its conditions are not met (e.g. minimum-order, customer-eligibility, or product-set restrictions) — keep the chip visible and surface the reason.
|
|
1326
|
+
"""
|
|
1146
1327
|
isApplicable: Boolean!
|
|
1147
1328
|
}
|
|
1148
1329
|
|
|
1149
|
-
"""Result of
|
|
1330
|
+
"""Result of `cartDiscountCodesUpdate`."""
|
|
1150
1331
|
type CartDiscountCodesUpdatePayload {
|
|
1151
|
-
"""
|
|
1332
|
+
"""The updated cart on success."""
|
|
1152
1333
|
cart: Cart
|
|
1153
1334
|
|
|
1154
1335
|
"""
|
|
1155
|
-
|
|
1336
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `INVALID_DISCOUNT_CODE`).
|
|
1156
1337
|
"""
|
|
1157
1338
|
userErrors: [UserError!]!
|
|
1158
1339
|
|
|
1159
|
-
"""Non-fatal
|
|
1340
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1160
1341
|
warnings: [CartWarning!]!
|
|
1161
1342
|
}
|
|
1162
1343
|
|
|
1163
|
-
"""
|
|
1344
|
+
"""
|
|
1345
|
+
A single line item in the cart — one variant, a quantity and the data attached to it (cost, attributes, configurator selections).
|
|
1346
|
+
"""
|
|
1164
1347
|
type CartLine {
|
|
1165
|
-
"""
|
|
1348
|
+
"""
|
|
1349
|
+
Typed configurator selections filled in by the buyer (snapshot from add-to-cart). Validated server-side against the product attribute definition; carries any pricing surcharge.
|
|
1350
|
+
"""
|
|
1166
1351
|
attributeSelections: [AttributeSelection!]!
|
|
1167
1352
|
|
|
1168
|
-
"""
|
|
1353
|
+
"""
|
|
1354
|
+
Free-form custom attributes (line item properties) attached to this line — engraving text, gift wrap, B2B PO line reference, etc.
|
|
1355
|
+
"""
|
|
1169
1356
|
attributes: [Attribute!]!
|
|
1170
1357
|
|
|
1171
|
-
"""
|
|
1358
|
+
"""
|
|
1359
|
+
Per-line cost breakdown (unit price, subtotal, total, optional compare-at).
|
|
1360
|
+
"""
|
|
1172
1361
|
cost: CartLineCost!
|
|
1173
1362
|
|
|
1174
|
-
"""
|
|
1363
|
+
"""
|
|
1364
|
+
Stable line identifier. Use it to address the line in `cartUpdateLines` / `cartRemoveLines`.
|
|
1365
|
+
"""
|
|
1175
1366
|
id: ID!
|
|
1176
1367
|
|
|
1177
|
-
"""
|
|
1368
|
+
"""
|
|
1369
|
+
URL handle (slug) of the parent product — link target for the cart drawer (denormalised).
|
|
1370
|
+
"""
|
|
1178
1371
|
productHandle: String
|
|
1179
1372
|
|
|
1180
|
-
"""
|
|
1373
|
+
"""
|
|
1374
|
+
ID of the parent product. Denormalised so a cart drawer renders without an extra round-trip.
|
|
1375
|
+
"""
|
|
1181
1376
|
productId: ID
|
|
1182
1377
|
|
|
1183
|
-
"""
|
|
1378
|
+
"""Display title of the parent product (denormalised)."""
|
|
1184
1379
|
productTitle: String
|
|
1185
1380
|
|
|
1186
|
-
"""
|
|
1381
|
+
"""
|
|
1382
|
+
Type of the parent product (PHYSICAL, DIGITAL, SERVICE, SUBSCRIPTION, GIFT_CARD). Drives whether the line requires shipping and which post-purchase flow applies.
|
|
1383
|
+
"""
|
|
1187
1384
|
productType: ProductTypeEnum
|
|
1188
1385
|
|
|
1189
|
-
"""
|
|
1386
|
+
"""
|
|
1387
|
+
Quantity of the variant in this line (≥ 1; set to 0 with `cartUpdateLines` to remove).
|
|
1388
|
+
"""
|
|
1190
1389
|
quantity: Int!
|
|
1191
1390
|
|
|
1192
1391
|
"""
|
|
1193
|
-
True
|
|
1392
|
+
True when this line requires physical shipping (`productType` = PHYSICAL). False for digital, gift card, service and subscription items. Use together with `Cart.requiresShipping` to decide whether to render the shipping step.
|
|
1194
1393
|
"""
|
|
1195
1394
|
requiresShipping: Boolean!
|
|
1196
1395
|
|
|
1197
|
-
"""
|
|
1396
|
+
"""
|
|
1397
|
+
The variant being purchased — fresh data (current price, image, stock).
|
|
1398
|
+
"""
|
|
1198
1399
|
variant: ProductVariant!
|
|
1199
1400
|
}
|
|
1200
1401
|
|
|
1201
|
-
"""Paginated cart lines"""
|
|
1402
|
+
"""Paginated list of cart lines (Relay Connection)."""
|
|
1202
1403
|
type CartLineConnection {
|
|
1203
|
-
"""
|
|
1404
|
+
"""Edges with the line and its cursor — use for cursor-based pagination."""
|
|
1204
1405
|
edges: [CartLineEdge!]!
|
|
1205
1406
|
|
|
1206
|
-
"""Cart line nodes
|
|
1407
|
+
"""Cart line nodes — convenience shortcut for `edges.map(e => e.node)`."""
|
|
1207
1408
|
nodes: [CartLine!]!
|
|
1208
1409
|
|
|
1209
|
-
"""
|
|
1410
|
+
"""Cursor pagination info (`hasNextPage`, `endCursor`, etc.)."""
|
|
1210
1411
|
pageInfo: PageInfo!
|
|
1211
1412
|
|
|
1212
|
-
"""Total
|
|
1413
|
+
"""Total number of lines in the cart across all pages."""
|
|
1213
1414
|
totalCount: Int!
|
|
1214
1415
|
}
|
|
1215
1416
|
|
|
1216
|
-
"""Cost
|
|
1417
|
+
"""Cost breakdown for a single cart line."""
|
|
1217
1418
|
type CartLineCost {
|
|
1218
|
-
"""
|
|
1419
|
+
"""
|
|
1420
|
+
Strike-through compare-at unit price when the line is on sale. Null when the line is not discounted; show the strike-through only when this is present and greater than `pricePerUnit`.
|
|
1421
|
+
"""
|
|
1219
1422
|
compareAtPricePerUnit: Money
|
|
1220
1423
|
|
|
1221
1424
|
"""Opt-in: compareAtPricePerUnit with conversion transparency."""
|
|
1222
1425
|
compareAtPricePerUnitWithConversion: PriceMoney
|
|
1223
1426
|
|
|
1224
|
-
"""
|
|
1427
|
+
"""
|
|
1428
|
+
Unit price of the line item in the shop base currency. Use this for per-unit display.
|
|
1429
|
+
"""
|
|
1225
1430
|
pricePerUnit: Money!
|
|
1226
1431
|
|
|
1227
1432
|
"""Opt-in: pricePerUnit with conversion transparency."""
|
|
1228
1433
|
pricePerUnitWithConversion: PriceMoney
|
|
1229
1434
|
|
|
1230
|
-
"""
|
|
1435
|
+
"""Line subtotal before line-level discounts (`pricePerUnit` × quantity)."""
|
|
1231
1436
|
subtotal: Money!
|
|
1232
1437
|
|
|
1233
1438
|
"""Opt-in: subtotal with conversion transparency."""
|
|
1234
1439
|
subtotalWithConversion: PriceMoney
|
|
1235
1440
|
|
|
1236
|
-
"""
|
|
1441
|
+
"""
|
|
1442
|
+
Line total after any line-level discounts and surcharges. This is what the buyer pays for the line.
|
|
1443
|
+
"""
|
|
1237
1444
|
total: Money!
|
|
1238
1445
|
|
|
1239
1446
|
"""Opt-in: total with conversion transparency."""
|
|
@@ -1249,35 +1456,45 @@ type CartLineEdge {
|
|
|
1249
1456
|
node: CartLine!
|
|
1250
1457
|
}
|
|
1251
1458
|
|
|
1252
|
-
"""
|
|
1459
|
+
"""
|
|
1460
|
+
A line to add to the cart — variant, quantity and optional custom attributes / configurator selections.
|
|
1461
|
+
"""
|
|
1253
1462
|
input CartLineInput {
|
|
1254
|
-
"""
|
|
1463
|
+
"""
|
|
1464
|
+
Typed configurator selections to apply to this line — validated against the product attribute definition; pricing surcharges are taken from a snapshot at add-to-cart.
|
|
1465
|
+
"""
|
|
1255
1466
|
attributeSelections: [AttributeSelectionInput!]
|
|
1256
1467
|
|
|
1257
|
-
"""
|
|
1468
|
+
"""
|
|
1469
|
+
Free-form custom attributes (line item properties) — e.g. engraving text, gift wrap, B2B PO line reference. Up to 50 entries.
|
|
1470
|
+
"""
|
|
1258
1471
|
attributes: [AttributeInput!]
|
|
1259
1472
|
|
|
1260
|
-
"""Quantity to add"""
|
|
1473
|
+
"""Quantity to add (1 to 9999). Defaults to 1 when omitted."""
|
|
1261
1474
|
quantity: Int! = 1
|
|
1262
1475
|
|
|
1263
|
-
"""
|
|
1476
|
+
"""ID of the product variant being purchased."""
|
|
1264
1477
|
variantId: ID!
|
|
1265
1478
|
}
|
|
1266
1479
|
|
|
1267
|
-
"""
|
|
1480
|
+
"""
|
|
1481
|
+
An update to apply to an existing cart line — new quantity (set to 0 to remove) and optional attribute updates.
|
|
1482
|
+
"""
|
|
1268
1483
|
input CartLineUpdateInput {
|
|
1269
1484
|
"""
|
|
1270
|
-
|
|
1485
|
+
Replacement list of configurator selections. Omit (or pass null) to keep the existing selections; pass an empty array to clear them.
|
|
1271
1486
|
"""
|
|
1272
1487
|
attributeSelections: [AttributeSelectionInput!]
|
|
1273
1488
|
|
|
1274
|
-
"""
|
|
1489
|
+
"""
|
|
1490
|
+
Replacement list of custom attributes on the line. Omit (or pass null) to keep the existing list; pass an empty array to clear it.
|
|
1491
|
+
"""
|
|
1275
1492
|
attributes: [AttributeInput!]
|
|
1276
1493
|
|
|
1277
|
-
"""
|
|
1494
|
+
"""ID of the cart line to update (`CartLine.id`)."""
|
|
1278
1495
|
id: ID!
|
|
1279
1496
|
|
|
1280
|
-
"""New quantity"""
|
|
1497
|
+
"""New quantity. Use 0 to remove the line from the cart."""
|
|
1281
1498
|
quantity: Int!
|
|
1282
1499
|
}
|
|
1283
1500
|
|
|
@@ -1290,130 +1507,142 @@ type CartRecommendations {
|
|
|
1290
1507
|
youMayAlsoLike: [ProductRecommendation!]!
|
|
1291
1508
|
}
|
|
1292
1509
|
|
|
1293
|
-
"""Input
|
|
1510
|
+
"""Input for `cartRemoveGiftCard`."""
|
|
1294
1511
|
input CartRemoveGiftCardInput {
|
|
1295
|
-
"""
|
|
1512
|
+
"""ID of the cart to update."""
|
|
1296
1513
|
cartId: ID!
|
|
1297
1514
|
|
|
1298
|
-
"""
|
|
1299
|
-
|
|
1515
|
+
"""
|
|
1516
|
+
ID of the applied gift card to remove — `CartAppliedGiftCard.id` from the cart.
|
|
1517
|
+
"""
|
|
1518
|
+
giftCardId: ID!
|
|
1300
1519
|
}
|
|
1301
1520
|
|
|
1302
|
-
"""Result of
|
|
1521
|
+
"""Result of `cartRemoveGiftCard`."""
|
|
1303
1522
|
type CartRemoveGiftCardPayload {
|
|
1304
|
-
"""
|
|
1523
|
+
"""The updated cart with the gift card removed from `appliedGiftCards`."""
|
|
1305
1524
|
cart: Cart
|
|
1306
1525
|
|
|
1307
|
-
"""
|
|
1526
|
+
"""
|
|
1527
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code`.
|
|
1528
|
+
"""
|
|
1308
1529
|
userErrors: [UserError!]!
|
|
1309
1530
|
|
|
1310
|
-
"""Non-fatal
|
|
1531
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1311
1532
|
warnings: [CartWarning!]!
|
|
1312
1533
|
}
|
|
1313
1534
|
|
|
1314
|
-
"""Result of
|
|
1535
|
+
"""Result of `cartRemoveLines`."""
|
|
1315
1536
|
type CartRemoveLinesPayload {
|
|
1316
|
-
"""
|
|
1537
|
+
"""The updated cart on success; null when `userErrors` is non-empty."""
|
|
1317
1538
|
cart: Cart
|
|
1318
1539
|
|
|
1319
1540
|
"""
|
|
1320
|
-
|
|
1541
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code`.
|
|
1321
1542
|
"""
|
|
1322
1543
|
userErrors: [UserError!]!
|
|
1323
1544
|
|
|
1324
|
-
"""Non-fatal
|
|
1545
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1325
1546
|
warnings: [CartWarning!]!
|
|
1326
1547
|
}
|
|
1327
1548
|
|
|
1328
|
-
"""Input
|
|
1549
|
+
"""Input for `cartSelectPaymentMethod`."""
|
|
1329
1550
|
input CartSelectPaymentMethodInput {
|
|
1330
|
-
"""
|
|
1551
|
+
"""ID of the cart to update."""
|
|
1331
1552
|
cartId: ID!
|
|
1332
1553
|
|
|
1333
|
-
"""
|
|
1554
|
+
"""
|
|
1555
|
+
ID of the chosen payment method (matches a `PaymentMethod.id` from `availablePaymentMethods`).
|
|
1556
|
+
"""
|
|
1334
1557
|
paymentMethodId: ID!
|
|
1335
1558
|
}
|
|
1336
1559
|
|
|
1337
|
-
"""Result of
|
|
1560
|
+
"""Result of `cartSelectPaymentMethod`."""
|
|
1338
1561
|
type CartSelectPaymentMethodPayload {
|
|
1339
|
-
"""
|
|
1562
|
+
"""The updated cart with `selectedPaymentMethod` populated."""
|
|
1340
1563
|
cart: Cart
|
|
1341
1564
|
|
|
1342
1565
|
"""
|
|
1343
|
-
|
|
1566
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `PAYMENT_METHOD_REQUIRED`, `INVALID_PAYMENT_METHOD`, `PAYMENT_METHOD_NOT_SUPPORTED`).
|
|
1344
1567
|
"""
|
|
1345
1568
|
userErrors: [UserError!]!
|
|
1346
1569
|
|
|
1347
|
-
"""Non-fatal
|
|
1570
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1348
1571
|
warnings: [CartWarning!]!
|
|
1349
1572
|
}
|
|
1350
1573
|
|
|
1351
|
-
"""Input
|
|
1574
|
+
"""Input for `cartSelectShippingMethod`."""
|
|
1352
1575
|
input CartSelectShippingMethodInput {
|
|
1353
|
-
"""
|
|
1576
|
+
"""ID of the cart to update."""
|
|
1354
1577
|
cartId: ID!
|
|
1355
1578
|
|
|
1356
1579
|
"""
|
|
1357
|
-
|
|
1580
|
+
ID of the chosen shipping method (matches an `AvailableShippingMethod.id` from `cart.availableShippingMethods`).
|
|
1358
1581
|
"""
|
|
1359
1582
|
shippingMethodId: ID!
|
|
1360
1583
|
}
|
|
1361
1584
|
|
|
1362
|
-
"""Result of
|
|
1585
|
+
"""Result of `cartSelectShippingMethod`."""
|
|
1363
1586
|
type CartSelectShippingMethodPayload {
|
|
1364
|
-
"""
|
|
1587
|
+
"""
|
|
1588
|
+
The updated cart with `selectedShippingMethod` populated and `cost.totalShipping` updated.
|
|
1589
|
+
"""
|
|
1365
1590
|
cart: Cart
|
|
1366
1591
|
|
|
1367
1592
|
"""
|
|
1368
|
-
|
|
1593
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `SHIPPING_METHOD_REQUIRED`, `FORBIDDEN_SHIPPING_METHOD`, `ZIP_CODE_NOT_SUPPORTED`).
|
|
1369
1594
|
"""
|
|
1370
1595
|
userErrors: [UserError!]!
|
|
1371
1596
|
|
|
1372
|
-
"""Non-fatal
|
|
1597
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1373
1598
|
warnings: [CartWarning!]!
|
|
1374
1599
|
}
|
|
1375
1600
|
|
|
1376
|
-
"""Input
|
|
1601
|
+
"""Input for `cartSetBillingAddress`."""
|
|
1377
1602
|
input CartSetBillingAddressInput {
|
|
1378
|
-
"""
|
|
1603
|
+
"""New billing address. The shipping address is left unchanged."""
|
|
1379
1604
|
address: CartAddressInput!
|
|
1380
1605
|
|
|
1381
|
-
"""
|
|
1606
|
+
"""ID of the cart to update."""
|
|
1382
1607
|
cartId: ID!
|
|
1383
1608
|
}
|
|
1384
1609
|
|
|
1385
|
-
"""Result of
|
|
1610
|
+
"""Result of `cartSetBillingAddress`."""
|
|
1386
1611
|
type CartSetBillingAddressPayload {
|
|
1387
|
-
"""
|
|
1612
|
+
"""The updated cart with the new billing address."""
|
|
1388
1613
|
cart: Cart
|
|
1389
1614
|
|
|
1390
|
-
"""
|
|
1615
|
+
"""
|
|
1616
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code`.
|
|
1617
|
+
"""
|
|
1391
1618
|
userErrors: [UserError!]!
|
|
1392
1619
|
|
|
1393
|
-
"""Non-fatal
|
|
1620
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1394
1621
|
warnings: [CartWarning!]!
|
|
1395
1622
|
}
|
|
1396
1623
|
|
|
1397
|
-
"""Input
|
|
1624
|
+
"""Input for `cartSetShippingAddress`."""
|
|
1398
1625
|
input CartSetShippingAddressInput {
|
|
1399
|
-
"""
|
|
1626
|
+
"""
|
|
1627
|
+
New shipping address. Replaces any previous shipping address on the cart.
|
|
1628
|
+
"""
|
|
1400
1629
|
address: CartAddressInput!
|
|
1401
1630
|
|
|
1402
|
-
"""
|
|
1631
|
+
"""ID of the cart to update."""
|
|
1403
1632
|
cartId: ID!
|
|
1404
1633
|
}
|
|
1405
1634
|
|
|
1406
|
-
"""Result of
|
|
1635
|
+
"""Result of `cartSetShippingAddress`."""
|
|
1407
1636
|
type CartSetShippingAddressPayload {
|
|
1408
|
-
"""
|
|
1637
|
+
"""The updated cart with the new shipping address."""
|
|
1409
1638
|
cart: Cart
|
|
1410
1639
|
|
|
1411
1640
|
"""
|
|
1412
|
-
|
|
1641
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `INVALID_ADDRESS`, `EMAIL_REQUIRED`, `PICKUP_POINT_REQUIRED`).
|
|
1413
1642
|
"""
|
|
1414
1643
|
userErrors: [UserError!]!
|
|
1415
1644
|
|
|
1416
|
-
"""Non-fatal
|
|
1645
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1417
1646
|
warnings: [CartWarning!]!
|
|
1418
1647
|
}
|
|
1419
1648
|
|
|
@@ -1429,119 +1658,146 @@ input CartShippingInput {
|
|
|
1429
1658
|
totalWeight: Int
|
|
1430
1659
|
}
|
|
1431
1660
|
|
|
1432
|
-
"""
|
|
1661
|
+
"""
|
|
1662
|
+
The shipping method currently selected on a cart, with its display label and cost.
|
|
1663
|
+
"""
|
|
1433
1664
|
type CartShippingMethod {
|
|
1434
|
-
"""
|
|
1665
|
+
"""
|
|
1666
|
+
Handle of the selected shipping method — matches the `id` of an `AvailableShippingMethod`.
|
|
1667
|
+
"""
|
|
1435
1668
|
handle: ID!
|
|
1436
1669
|
|
|
1437
|
-
"""
|
|
1670
|
+
"""Cost of the selected shipping method."""
|
|
1438
1671
|
price: Money!
|
|
1439
1672
|
|
|
1440
|
-
"""Display title (e.g. "DPD Standard 2
|
|
1673
|
+
"""Display title for the checkout summary (e.g. "DPD Standard, 2 days")."""
|
|
1441
1674
|
title: String!
|
|
1442
1675
|
}
|
|
1443
1676
|
|
|
1444
|
-
"""
|
|
1677
|
+
"""
|
|
1678
|
+
Cart lifecycle status. `ACTIVE` is the only editable state — every other value is terminal and rejects mutations with `CartErrorCode.ALREADY_COMPLETED`. `CONVERTED` carries an associated `completedOrder`; query that to redirect the buyer to their order confirmation. `EXPIRED` / `ABANDONED` are cleanup states with no order; create a fresh cart. `RECOVERED` is a previously-abandoned cart that the buyer returned to via a recovery link.
|
|
1679
|
+
"""
|
|
1680
|
+
enum CartStatus {
|
|
1681
|
+
ABANDONED
|
|
1682
|
+
ACTIVE
|
|
1683
|
+
CONVERTED
|
|
1684
|
+
EXPIRED
|
|
1685
|
+
RECOVERED
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1688
|
+
"""Result of `cartUpdateAttributes`."""
|
|
1445
1689
|
type CartUpdateAttributesPayload {
|
|
1446
|
-
"""
|
|
1690
|
+
"""The updated cart on success."""
|
|
1447
1691
|
cart: Cart
|
|
1448
1692
|
|
|
1449
1693
|
"""
|
|
1450
|
-
|
|
1694
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `CART_ATTRIBUTES_UPDATE_FAILED`).
|
|
1451
1695
|
"""
|
|
1452
1696
|
userErrors: [UserError!]!
|
|
1453
1697
|
|
|
1454
|
-
"""Non-fatal
|
|
1698
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1455
1699
|
warnings: [CartWarning!]!
|
|
1456
1700
|
}
|
|
1457
1701
|
|
|
1458
|
-
"""Result of
|
|
1702
|
+
"""Result of `cartUpdateBuyerIdentity`."""
|
|
1459
1703
|
type CartUpdateBuyerIdentityPayload {
|
|
1460
|
-
"""
|
|
1704
|
+
"""The updated cart on success."""
|
|
1461
1705
|
cart: Cart
|
|
1462
1706
|
|
|
1463
1707
|
"""
|
|
1464
|
-
|
|
1708
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code`.
|
|
1465
1709
|
"""
|
|
1466
1710
|
userErrors: [UserError!]!
|
|
1467
1711
|
|
|
1468
|
-
"""Non-fatal
|
|
1712
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1469
1713
|
warnings: [CartWarning!]!
|
|
1470
1714
|
}
|
|
1471
1715
|
|
|
1472
1716
|
"""
|
|
1473
|
-
Input
|
|
1717
|
+
Input for `cartUpdateGiftCardRecipient` — sets the recipient details for a gift card line item.
|
|
1474
1718
|
"""
|
|
1475
1719
|
input CartUpdateGiftCardRecipientInput {
|
|
1476
|
-
"""
|
|
1720
|
+
"""ID of the cart to update."""
|
|
1477
1721
|
cartId: ID!
|
|
1478
1722
|
|
|
1479
|
-
"""
|
|
1723
|
+
"""ID of the cart line; the line must be a gift card SKU."""
|
|
1480
1724
|
lineItemId: ID!
|
|
1481
1725
|
|
|
1482
|
-
"""Personalised message
|
|
1726
|
+
"""Personalised message included with the gift card (max 500 chars)."""
|
|
1483
1727
|
message: String
|
|
1484
1728
|
|
|
1485
|
-
"""Recipient email
|
|
1729
|
+
"""Recipient email — where the gift card code will be delivered."""
|
|
1486
1730
|
recipientEmail: String
|
|
1487
1731
|
|
|
1488
|
-
"""Recipient display name"""
|
|
1732
|
+
"""Recipient display name."""
|
|
1489
1733
|
recipientName: String
|
|
1490
1734
|
}
|
|
1491
1735
|
|
|
1492
|
-
"""Result of
|
|
1736
|
+
"""Result of `cartUpdateGiftCardRecipient`."""
|
|
1493
1737
|
type CartUpdateGiftCardRecipientPayload {
|
|
1494
|
-
"""
|
|
1738
|
+
"""
|
|
1739
|
+
The updated cart with the new gift card recipient info on the target line.
|
|
1740
|
+
"""
|
|
1495
1741
|
cart: Cart
|
|
1496
1742
|
|
|
1497
|
-
"""
|
|
1743
|
+
"""
|
|
1744
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code`.
|
|
1745
|
+
"""
|
|
1498
1746
|
userErrors: [UserError!]!
|
|
1499
1747
|
|
|
1500
|
-
"""Non-fatal
|
|
1748
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1501
1749
|
warnings: [CartWarning!]!
|
|
1502
1750
|
}
|
|
1503
1751
|
|
|
1504
|
-
"""Result of
|
|
1752
|
+
"""Result of `cartUpdateLines`."""
|
|
1505
1753
|
type CartUpdateLinesPayload {
|
|
1506
|
-
"""
|
|
1754
|
+
"""The updated cart on success; null when `userErrors` is non-empty."""
|
|
1507
1755
|
cart: Cart
|
|
1508
1756
|
|
|
1509
1757
|
"""
|
|
1510
|
-
|
|
1758
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code` (e.g. `CART_NOT_FOUND`, `NOT_ENOUGH_IN_STOCK`).
|
|
1511
1759
|
"""
|
|
1512
1760
|
userErrors: [UserError!]!
|
|
1513
1761
|
|
|
1514
|
-
"""Non-fatal
|
|
1762
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1515
1763
|
warnings: [CartWarning!]!
|
|
1516
1764
|
}
|
|
1517
1765
|
|
|
1518
|
-
"""Result of
|
|
1766
|
+
"""Result of `cartUpdateNote`."""
|
|
1519
1767
|
type CartUpdateNotePayload {
|
|
1520
|
-
"""
|
|
1768
|
+
"""The updated cart on success."""
|
|
1521
1769
|
cart: Cart
|
|
1522
1770
|
|
|
1523
1771
|
"""
|
|
1524
|
-
|
|
1772
|
+
Business / validation errors carrying a stable `CartErrorCode` in `code`.
|
|
1525
1773
|
"""
|
|
1526
1774
|
userErrors: [UserError!]!
|
|
1527
1775
|
|
|
1528
|
-
"""Non-fatal
|
|
1776
|
+
"""Non-fatal advisories — the mutation itself succeeded."""
|
|
1529
1777
|
warnings: [CartWarning!]!
|
|
1530
1778
|
}
|
|
1531
1779
|
|
|
1532
1780
|
"""Cart warning (non-fatal advisory)"""
|
|
1533
1781
|
type CartWarning {
|
|
1534
|
-
"""
|
|
1782
|
+
"""
|
|
1783
|
+
Stable machine-readable warning code. Branch on this for UI behaviour — never on `message` (translated, locale-dependent).
|
|
1784
|
+
"""
|
|
1535
1785
|
code: CartWarningCode!
|
|
1536
1786
|
|
|
1537
|
-
"""
|
|
1787
|
+
"""
|
|
1788
|
+
Human-readable warning message — informational, the mutation itself succeeded.
|
|
1789
|
+
"""
|
|
1538
1790
|
message: String!
|
|
1539
1791
|
|
|
1540
|
-
"""
|
|
1792
|
+
"""
|
|
1793
|
+
What the warning is about — a cart line ID when the warning refers to a specific item, or a field path otherwise.
|
|
1794
|
+
"""
|
|
1541
1795
|
target: String!
|
|
1542
1796
|
}
|
|
1543
1797
|
|
|
1544
|
-
"""
|
|
1798
|
+
"""
|
|
1799
|
+
Stable, machine-readable codes for non-fatal cart warnings. The mutation succeeded; the storefront can surface a toast or stay silent based on the code.
|
|
1800
|
+
"""
|
|
1545
1801
|
enum CartWarningCode {
|
|
1546
1802
|
MERCHANDISE_NOT_AVAILABLE
|
|
1547
1803
|
MERCHANDISE_NOT_ENOUGH_STOCK
|
|
@@ -1748,7 +2004,7 @@ type Country implements Node {
|
|
|
1748
2004
|
unitSystem: UnitSystem!
|
|
1749
2005
|
}
|
|
1750
2006
|
|
|
1751
|
-
"""ISO 3166-1 alpha-2 country code"""
|
|
2007
|
+
"""ISO 3166-1 alpha-2 country code (2-letter uppercase, e.g. PL, DE, US)."""
|
|
1752
2008
|
enum CountryCode {
|
|
1753
2009
|
AT
|
|
1754
2010
|
AU
|
|
@@ -1816,7 +2072,7 @@ type Currency {
|
|
|
1816
2072
|
symbolPosition: CurrencySymbolPosition!
|
|
1817
2073
|
}
|
|
1818
2074
|
|
|
1819
|
-
"""ISO 4217 currency code"""
|
|
2075
|
+
"""ISO 4217 currency code (3-letter uppercase, e.g. PLN, EUR, USD)."""
|
|
1820
2076
|
enum CurrencyCode {
|
|
1821
2077
|
AED
|
|
1822
2078
|
AFN
|
|
@@ -2030,90 +2286,122 @@ enum CurrencySymbolPosition {
|
|
|
2030
2286
|
BEFORE
|
|
2031
2287
|
}
|
|
2032
2288
|
|
|
2033
|
-
"""
|
|
2289
|
+
"""
|
|
2290
|
+
A registered customer of the shop — identity, profile, B2B fields, saved addresses and order history. Returned by `customer` (currently authenticated) and `customerSignup`.
|
|
2291
|
+
"""
|
|
2034
2292
|
type Customer implements Node {
|
|
2035
|
-
"""
|
|
2293
|
+
"""
|
|
2294
|
+
Saved address book of the customer (Relay Connection). Use to render an address picker on checkout.
|
|
2295
|
+
"""
|
|
2036
2296
|
addresses(after: String, before: String, first: Int, last: Int): MailingAddressConnection!
|
|
2037
2297
|
|
|
2038
2298
|
"""Customer custom field values (post-Opcja A unified custom fields)."""
|
|
2039
2299
|
attributes(namespace: String): [EntityAttributeField!]!
|
|
2040
2300
|
|
|
2041
|
-
"""
|
|
2301
|
+
"""
|
|
2302
|
+
Company name. Populated when `customerType` is COMPANY; null for INDIVIDUAL profiles.
|
|
2303
|
+
"""
|
|
2042
2304
|
companyName: String
|
|
2043
2305
|
|
|
2044
|
-
"""
|
|
2306
|
+
"""When the customer account was created (ISO 8601)."""
|
|
2045
2307
|
createdAt: DateTime!
|
|
2046
2308
|
|
|
2047
|
-
"""
|
|
2309
|
+
"""
|
|
2310
|
+
Profile type — INDIVIDUAL (B2C) or COMPANY (B2B). When COMPANY, the company fields below are populated.
|
|
2311
|
+
"""
|
|
2048
2312
|
customerType: CustomerType!
|
|
2049
2313
|
|
|
2050
|
-
"""
|
|
2314
|
+
"""
|
|
2315
|
+
Default address pre-selected in checkout pickers. Null when the customer has no saved addresses.
|
|
2316
|
+
"""
|
|
2051
2317
|
defaultAddress: MailingAddress
|
|
2052
2318
|
|
|
2053
|
-
"""
|
|
2319
|
+
"""
|
|
2320
|
+
Display name — typically `firstName lastName`, with sensible fallback to email when neither is set. Render directly in the UI.
|
|
2321
|
+
"""
|
|
2054
2322
|
displayName: String!
|
|
2055
2323
|
|
|
2056
|
-
"""
|
|
2324
|
+
"""Customer email address (login identity)."""
|
|
2057
2325
|
email: String!
|
|
2058
2326
|
|
|
2059
|
-
"""
|
|
2327
|
+
"""
|
|
2328
|
+
Marketing consent state (NOT_SUBSCRIBED, PENDING, SUBSCRIBED, UNSUBSCRIBED, REDACTED, INVALID). Drive newsletter UI and opt-in / opt-out controls from this value.
|
|
2329
|
+
"""
|
|
2060
2330
|
emailMarketing: EmailMarketingState!
|
|
2061
2331
|
|
|
2062
|
-
"""
|
|
2332
|
+
"""Customer first name."""
|
|
2063
2333
|
firstName: String
|
|
2064
2334
|
|
|
2065
|
-
"""
|
|
2335
|
+
"""Stable identifier of the customer."""
|
|
2066
2336
|
id: ID!
|
|
2067
2337
|
|
|
2068
|
-
"""
|
|
2338
|
+
"""True when the customer has confirmed ownership of their email address."""
|
|
2069
2339
|
isEmailVerified: Boolean!
|
|
2070
2340
|
|
|
2071
|
-
"""
|
|
2341
|
+
"""Customer last name."""
|
|
2072
2342
|
lastName: String
|
|
2073
2343
|
|
|
2074
|
-
"""
|
|
2344
|
+
"""
|
|
2345
|
+
Total number of orders the customer has placed. Stringified for BigInt safety.
|
|
2346
|
+
"""
|
|
2075
2347
|
orderCount: UnsignedInt64!
|
|
2076
2348
|
|
|
2077
|
-
"""
|
|
2349
|
+
"""
|
|
2350
|
+
Orders placed by this customer (Relay Connection). Use for the order history page.
|
|
2351
|
+
"""
|
|
2078
2352
|
orders(after: String, first: Int = 10): OrderConnection!
|
|
2079
2353
|
|
|
2080
|
-
"""
|
|
2354
|
+
"""Customer phone number (free-form)."""
|
|
2081
2355
|
phone: String
|
|
2082
2356
|
|
|
2083
|
-
"""
|
|
2357
|
+
"""
|
|
2358
|
+
Customer-wide Polish business registry number (REGON, 9 or 14 digits with checksum).
|
|
2359
|
+
"""
|
|
2084
2360
|
regon: String
|
|
2085
2361
|
|
|
2086
|
-
"""
|
|
2362
|
+
"""
|
|
2363
|
+
Merchant-assigned segmentation tags (e.g. "vip", "wholesale", "b2b"). Use to customise UI / pricing rules on the storefront.
|
|
2364
|
+
"""
|
|
2087
2365
|
tags: [String!]!
|
|
2088
2366
|
|
|
2089
|
-
"""
|
|
2367
|
+
"""
|
|
2368
|
+
Customer-wide Polish tax ID (NIP, 10 digits with checksum). Default for new addresses; can be overridden per address via `MailingAddress.taxId`.
|
|
2369
|
+
"""
|
|
2090
2370
|
taxId: String
|
|
2091
2371
|
|
|
2092
|
-
"""
|
|
2372
|
+
"""Lifetime amount the customer has spent (sum of paid orders)."""
|
|
2093
2373
|
totalSpent: Money!
|
|
2094
2374
|
|
|
2095
|
-
"""
|
|
2375
|
+
"""When the customer profile was last modified (ISO 8601)."""
|
|
2096
2376
|
updatedAt: DateTime!
|
|
2097
2377
|
|
|
2098
|
-
"""
|
|
2378
|
+
"""
|
|
2379
|
+
Customer-wide EU VAT number (e.g. `PL1234567890`). Default for new addresses; can be overridden per address via `MailingAddress.vatNumber`.
|
|
2380
|
+
"""
|
|
2099
2381
|
vatNumber: String
|
|
2100
2382
|
}
|
|
2101
2383
|
|
|
2102
|
-
"""
|
|
2384
|
+
"""
|
|
2385
|
+
Access token returned by `customerLogin`, `customerSignup` and `customerRefreshToken`. Send it on subsequent requests in the `Authorization: Bearer <token>` header, or store it in an HTTP-only cookie via the SDK BFF helpers. Never write it to `localStorage`.
|
|
2386
|
+
"""
|
|
2103
2387
|
type CustomerAccessToken {
|
|
2104
|
-
"""
|
|
2388
|
+
"""The access token string (JWT). Treat as sensitive — do not log."""
|
|
2105
2389
|
accessToken: String!
|
|
2106
2390
|
|
|
2107
|
-
"""
|
|
2391
|
+
"""
|
|
2392
|
+
When the token stops being valid (ISO 8601). Call `customerRefreshToken` before this to obtain a fresh one.
|
|
2393
|
+
"""
|
|
2108
2394
|
expiresAt: DateTime!
|
|
2109
2395
|
}
|
|
2110
2396
|
|
|
2111
|
-
"""
|
|
2397
|
+
"""
|
|
2398
|
+
Input for `customerLogin` — exchanges email + password for an access token.
|
|
2399
|
+
"""
|
|
2112
2400
|
input CustomerAccessTokenCreateInput {
|
|
2113
|
-
"""
|
|
2401
|
+
"""Customer email address."""
|
|
2114
2402
|
email: String!
|
|
2115
2403
|
|
|
2116
|
-
"""
|
|
2404
|
+
"""Customer password."""
|
|
2117
2405
|
password: String!
|
|
2118
2406
|
}
|
|
2119
2407
|
|
|
@@ -2144,31 +2432,35 @@ type CustomerAddAddressPayload {
|
|
|
2144
2432
|
userErrors: [UserError!]!
|
|
2145
2433
|
}
|
|
2146
2434
|
|
|
2147
|
-
"""Input for customer
|
|
2435
|
+
"""Input for `customerSignup` — registers a new customer."""
|
|
2148
2436
|
input CustomerCreateInput {
|
|
2149
2437
|
"""
|
|
2150
|
-
|
|
2438
|
+
Marketing opt-in checkbox. true → consent state SUBSCRIBED (single opt-in) unless `marketingOptInLevel: CONFIRMED_OPT_IN` is also sent (then PENDING and the server sends a double-opt-in confirmation email). false / null → no consent change.
|
|
2151
2439
|
"""
|
|
2152
2440
|
acceptsMarketing: Boolean
|
|
2153
2441
|
|
|
2154
|
-
"""
|
|
2442
|
+
"""
|
|
2443
|
+
Email address — must be unique within the shop. Used as the login identity.
|
|
2444
|
+
"""
|
|
2155
2445
|
email: String!
|
|
2156
2446
|
|
|
2157
|
-
"""First name"""
|
|
2447
|
+
"""First name."""
|
|
2158
2448
|
firstName: String
|
|
2159
2449
|
|
|
2160
|
-
"""Last name"""
|
|
2450
|
+
"""Last name."""
|
|
2161
2451
|
lastName: String
|
|
2162
2452
|
|
|
2163
2453
|
"""
|
|
2164
|
-
Opt-in level.
|
|
2454
|
+
Opt-in level. Defaults to SINGLE_OPT_IN (signup itself is treated as email proof). Pass CONFIRMED_OPT_IN to enforce double opt-in — the server then emails a confirmation link and leaves consent in PENDING until the buyer clicks it.
|
|
2165
2455
|
"""
|
|
2166
2456
|
marketingOptInLevel: MarketingOptInLevel
|
|
2167
2457
|
|
|
2168
|
-
"""
|
|
2458
|
+
"""
|
|
2459
|
+
Password (8 to 128 chars). The shop password policy may impose additional strength rules.
|
|
2460
|
+
"""
|
|
2169
2461
|
password: String!
|
|
2170
2462
|
|
|
2171
|
-
"""Phone number"""
|
|
2463
|
+
"""Phone number (free-form)."""
|
|
2172
2464
|
phone: String
|
|
2173
2465
|
}
|
|
2174
2466
|
|
|
@@ -2193,38 +2485,44 @@ type CustomerGroup {
|
|
|
2193
2485
|
taxExempt: Boolean!
|
|
2194
2486
|
}
|
|
2195
2487
|
|
|
2196
|
-
"""Result of
|
|
2488
|
+
"""Result of `customerLogin`."""
|
|
2197
2489
|
type CustomerLoginPayload {
|
|
2198
|
-
"""Access token"""
|
|
2490
|
+
"""Access token on success; null when `userErrors` is non-empty."""
|
|
2199
2491
|
customerAccessToken: CustomerAccessToken
|
|
2200
2492
|
|
|
2201
2493
|
"""
|
|
2202
|
-
|
|
2494
|
+
Errors carrying a stable `CustomerErrorCode` in `code` (e.g. `INVALID_CREDENTIALS`, `CUSTOMER_DISABLED`, `UNIDENTIFIED_CUSTOMER`).
|
|
2203
2495
|
"""
|
|
2204
2496
|
userErrors: [UserError!]!
|
|
2205
2497
|
}
|
|
2206
2498
|
|
|
2207
|
-
"""
|
|
2499
|
+
"""
|
|
2500
|
+
Result of `customerLogout` — invalidates the current access token on the server.
|
|
2501
|
+
"""
|
|
2208
2502
|
type CustomerLogoutPayload {
|
|
2209
|
-
"""
|
|
2503
|
+
"""
|
|
2504
|
+
The token string that was invalidated. Useful for client-side cache clearing.
|
|
2505
|
+
"""
|
|
2210
2506
|
deletedAccessToken: String
|
|
2211
2507
|
|
|
2212
|
-
"""
|
|
2508
|
+
"""ID of the invalidated token record."""
|
|
2213
2509
|
deletedCustomerAccessTokenId: String
|
|
2214
2510
|
|
|
2215
2511
|
"""
|
|
2216
|
-
|
|
2512
|
+
Errors carrying a stable `CustomerErrorCode` in `code` (e.g. `TOKEN_INVALID`, `TOKEN_EXPIRED`).
|
|
2217
2513
|
"""
|
|
2218
2514
|
userErrors: [UserError!]!
|
|
2219
2515
|
}
|
|
2220
2516
|
|
|
2221
|
-
"""
|
|
2517
|
+
"""
|
|
2518
|
+
Result of `customerRefreshToken` — exchanges a valid current token for a fresh one with a later expiry.
|
|
2519
|
+
"""
|
|
2222
2520
|
type CustomerRefreshTokenPayload {
|
|
2223
|
-
"""
|
|
2521
|
+
"""Fresh access token on success; null when `userErrors` is non-empty."""
|
|
2224
2522
|
customerAccessToken: CustomerAccessToken
|
|
2225
2523
|
|
|
2226
2524
|
"""
|
|
2227
|
-
|
|
2525
|
+
Errors carrying a stable `CustomerErrorCode` in `code` (e.g. `TOKEN_INVALID`, `TOKEN_EXPIRED`, `TOKEN_RENEWAL_FAILED`).
|
|
2228
2526
|
"""
|
|
2229
2527
|
userErrors: [UserError!]!
|
|
2230
2528
|
}
|
|
@@ -2273,16 +2571,18 @@ type CustomerSetDefaultAddressPayload {
|
|
|
2273
2571
|
userErrors: [UserError!]!
|
|
2274
2572
|
}
|
|
2275
2573
|
|
|
2276
|
-
"""Result of
|
|
2574
|
+
"""Result of `customerSignup`."""
|
|
2277
2575
|
type CustomerSignupPayload {
|
|
2278
|
-
"""
|
|
2576
|
+
"""The created customer on success; null when `userErrors` is non-empty."""
|
|
2279
2577
|
customer: Customer
|
|
2280
2578
|
|
|
2281
|
-
"""
|
|
2579
|
+
"""
|
|
2580
|
+
Access token for the new customer — saves a follow-up login round-trip.
|
|
2581
|
+
"""
|
|
2282
2582
|
customerAccessToken: CustomerAccessToken
|
|
2283
2583
|
|
|
2284
2584
|
"""
|
|
2285
|
-
|
|
2585
|
+
Validation / business errors carrying a stable `CustomerErrorCode` in `code` (e.g. `TAKEN`, `INVALID`, `PASSWORD_TOO_WEAK`, `BAD_DOMAIN`).
|
|
2286
2586
|
"""
|
|
2287
2587
|
userErrors: [UserError!]!
|
|
2288
2588
|
}
|
|
@@ -2298,7 +2598,9 @@ input CustomerSubscribeToMarketingInput {
|
|
|
2298
2598
|
marketingOptInLevel: MarketingOptInLevel
|
|
2299
2599
|
}
|
|
2300
2600
|
|
|
2301
|
-
"""
|
|
2601
|
+
"""
|
|
2602
|
+
Customer profile type — INDIVIDUAL (B2C buyer) or COMPANY (B2B buyer). Drives which company fields are required and which appear on tax documents.
|
|
2603
|
+
"""
|
|
2302
2604
|
enum CustomerType {
|
|
2303
2605
|
COMPANY
|
|
2304
2606
|
INDIVIDUAL
|
|
@@ -2374,19 +2676,41 @@ Decimal money amount, JSON-serialized as String. Format: "{int}.{dec}" e.g. "10.
|
|
|
2374
2676
|
"""
|
|
2375
2677
|
scalar Decimal
|
|
2376
2678
|
|
|
2377
|
-
"""Estimated delivery
|
|
2679
|
+
"""Estimated delivery window for a shipping method, in business days."""
|
|
2378
2680
|
type DeliveryEstimate {
|
|
2379
|
-
"""
|
|
2681
|
+
"""
|
|
2682
|
+
Pre-formatted human-readable estimate (e.g. "1-2 business days"). Localised; render as-is.
|
|
2683
|
+
"""
|
|
2380
2684
|
description: String
|
|
2381
2685
|
|
|
2382
|
-
"""Maximum delivery days"""
|
|
2686
|
+
"""Maximum expected delivery time in business days."""
|
|
2383
2687
|
maxDays: Int
|
|
2384
2688
|
|
|
2385
|
-
"""Minimum delivery days"""
|
|
2689
|
+
"""Minimum expected delivery time in business days."""
|
|
2386
2690
|
minDays: Int
|
|
2387
2691
|
}
|
|
2388
2692
|
|
|
2389
|
-
"""
|
|
2693
|
+
"""
|
|
2694
|
+
Delivery destination type of a shipping method — signals whether the storefront must collect a pickup point.
|
|
2695
|
+
"""
|
|
2696
|
+
enum DeliveryType {
|
|
2697
|
+
"""Courier delivery to the street address — no pickup point required."""
|
|
2698
|
+
HOME
|
|
2699
|
+
|
|
2700
|
+
"""
|
|
2701
|
+
Automated parcel locker — the buyer collects from a 24/7 self-service machine.
|
|
2702
|
+
"""
|
|
2703
|
+
LOCKER
|
|
2704
|
+
|
|
2705
|
+
"""
|
|
2706
|
+
Staffed pickup point / parcel shop — the buyer collects the parcel at a counter.
|
|
2707
|
+
"""
|
|
2708
|
+
PICKUP_POINT
|
|
2709
|
+
}
|
|
2710
|
+
|
|
2711
|
+
"""
|
|
2712
|
+
Category of discount: `PERCENTAGE` (percent off), `FIXED_AMOUNT` (amount off), `FREE_SHIPPING` (zeroes shipping) or `BUY_X_GET_Y` (item-quantity-based).
|
|
2713
|
+
"""
|
|
2390
2714
|
enum DiscountApplicationType {
|
|
2391
2715
|
BUY_X_GET_Y
|
|
2392
2716
|
FIXED_AMOUNT
|
|
@@ -2394,7 +2718,9 @@ enum DiscountApplicationType {
|
|
|
2394
2718
|
PERCENTAGE
|
|
2395
2719
|
}
|
|
2396
2720
|
|
|
2397
|
-
"""
|
|
2721
|
+
"""
|
|
2722
|
+
Stable reasons why a discount code is not applicable to the current cart / customer.
|
|
2723
|
+
"""
|
|
2398
2724
|
enum DiscountErrorCode {
|
|
2399
2725
|
CUSTOMER_GROUP_NOT_ELIGIBLE
|
|
2400
2726
|
CUSTOMER_NOT_ELIGIBLE
|
|
@@ -2410,42 +2736,58 @@ enum DiscountErrorCode {
|
|
|
2410
2736
|
USAGE_LIMIT_REACHED
|
|
2411
2737
|
}
|
|
2412
2738
|
|
|
2413
|
-
"""
|
|
2739
|
+
"""
|
|
2740
|
+
Details of a discount that the buyer entered and that is currently valid for the cart.
|
|
2741
|
+
"""
|
|
2414
2742
|
type DiscountInfo {
|
|
2415
|
-
"""
|
|
2743
|
+
"""The discount code as entered."""
|
|
2416
2744
|
code: String!
|
|
2417
2745
|
|
|
2418
|
-
"""
|
|
2746
|
+
"""
|
|
2747
|
+
Calculated savings the discount produces against the current cart. Null when the savings cannot be computed without a cart context.
|
|
2748
|
+
"""
|
|
2419
2749
|
discountAmount: Money
|
|
2420
2750
|
|
|
2421
|
-
"""
|
|
2751
|
+
"""Merchant-facing title of the discount (e.g. "Summer sale 10%")."""
|
|
2422
2752
|
title: String!
|
|
2423
2753
|
|
|
2424
|
-
"""
|
|
2754
|
+
"""
|
|
2755
|
+
Category of the discount: `PERCENTAGE`, `FIXED_AMOUNT`, `FREE_SHIPPING` or `BUY_X_GET_Y`. Drives how `value` is interpreted.
|
|
2756
|
+
"""
|
|
2425
2757
|
type: DiscountApplicationType!
|
|
2426
2758
|
|
|
2427
|
-
"""
|
|
2759
|
+
"""
|
|
2760
|
+
Discount value — percent points for `PERCENTAGE`, amount (in major currency units) for `FIXED_AMOUNT`. Ignored for `FREE_SHIPPING` / `BUY_X_GET_Y`.
|
|
2761
|
+
"""
|
|
2428
2762
|
value: Float!
|
|
2429
2763
|
}
|
|
2430
2764
|
|
|
2431
|
-
"""
|
|
2765
|
+
"""
|
|
2766
|
+
Reason why a discount code is not valid for the current cart / customer.
|
|
2767
|
+
"""
|
|
2432
2768
|
type DiscountValidationError {
|
|
2433
|
-
"""
|
|
2769
|
+
"""
|
|
2770
|
+
Stable reason code (e.g. `EXPIRED`, `USAGE_LIMIT_REACHED`, `MINIMUM_ORDER_NOT_MET`). Branch on this for UI behaviour.
|
|
2771
|
+
"""
|
|
2434
2772
|
code: DiscountErrorCode!
|
|
2435
2773
|
|
|
2436
|
-
"""
|
|
2774
|
+
"""Human-readable explanation of the validation failure."""
|
|
2437
2775
|
message: String!
|
|
2438
2776
|
}
|
|
2439
2777
|
|
|
2440
|
-
"""
|
|
2778
|
+
"""
|
|
2779
|
+
Result of validating a discount code against a cart — preview only, no cart side effects.
|
|
2780
|
+
"""
|
|
2441
2781
|
type DiscountValidationResult {
|
|
2442
|
-
"""Discount
|
|
2782
|
+
"""Discount details when `isValid` is true. Null otherwise."""
|
|
2443
2783
|
discount: DiscountInfo
|
|
2444
2784
|
|
|
2445
|
-
"""
|
|
2785
|
+
"""Validation failure details when `isValid` is false. Null otherwise."""
|
|
2446
2786
|
error: DiscountValidationError
|
|
2447
2787
|
|
|
2448
|
-
"""
|
|
2788
|
+
"""
|
|
2789
|
+
True when the code is currently applicable to the cart. When false, see `error` for the reason.
|
|
2790
|
+
"""
|
|
2449
2791
|
isValid: Boolean!
|
|
2450
2792
|
}
|
|
2451
2793
|
|
|
@@ -2461,7 +2803,9 @@ type Domain {
|
|
|
2461
2803
|
url: URL!
|
|
2462
2804
|
}
|
|
2463
2805
|
|
|
2464
|
-
"""
|
|
2806
|
+
"""
|
|
2807
|
+
Email marketing consent state of a customer. NOT_SUBSCRIBED = never opted in. PENDING = single opt-in awaiting double opt-in confirmation. SUBSCRIBED = active opt-in. UNSUBSCRIBED = explicitly opted out. REDACTED = data erased on request. INVALID = email rejected (bounce / spam complaint).
|
|
2808
|
+
"""
|
|
2465
2809
|
enum EmailMarketingState {
|
|
2466
2810
|
INVALID
|
|
2467
2811
|
NOT_SUBSCRIBED
|
|
@@ -2576,24 +2920,32 @@ type FilterValue {
|
|
|
2576
2920
|
swatch: AttributeSwatch
|
|
2577
2921
|
}
|
|
2578
2922
|
|
|
2579
|
-
"""
|
|
2923
|
+
"""
|
|
2924
|
+
Progress towards the free shipping threshold configured by the merchant — drives "Add X more to get free shipping" banners.
|
|
2925
|
+
"""
|
|
2580
2926
|
type FreeShippingProgress {
|
|
2581
|
-
"""Current
|
|
2927
|
+
"""Current qualifying subtotal of the cart."""
|
|
2582
2928
|
currentAmount: Money
|
|
2583
2929
|
|
|
2584
|
-
"""
|
|
2930
|
+
"""
|
|
2931
|
+
Pre-formatted, localised banner message (e.g. "Add 15.00 PLN more for free shipping"). Render as-is when present.
|
|
2932
|
+
"""
|
|
2585
2933
|
message: String
|
|
2586
2934
|
|
|
2587
|
-
"""
|
|
2935
|
+
"""
|
|
2936
|
+
Progress towards the threshold expressed as a percentage between 0 and 100. Use as the value of a progress bar.
|
|
2937
|
+
"""
|
|
2588
2938
|
progressPercent: Float
|
|
2589
2939
|
|
|
2590
|
-
"""
|
|
2940
|
+
"""True when the cart already qualifies for free shipping."""
|
|
2591
2941
|
qualifies: Boolean!
|
|
2592
2942
|
|
|
2593
|
-
"""
|
|
2943
|
+
"""
|
|
2944
|
+
How much more the buyer needs to add to qualify. Zero when `qualifies` is true.
|
|
2945
|
+
"""
|
|
2594
2946
|
remaining: Money
|
|
2595
2947
|
|
|
2596
|
-
"""
|
|
2948
|
+
"""Subtotal threshold that unlocks free shipping."""
|
|
2597
2949
|
threshold: Money
|
|
2598
2950
|
}
|
|
2599
2951
|
|
|
@@ -2705,26 +3057,34 @@ type GiftCardValidation {
|
|
|
2705
3057
|
isValid: Boolean!
|
|
2706
3058
|
}
|
|
2707
3059
|
|
|
2708
|
-
"""
|
|
3060
|
+
"""
|
|
3061
|
+
An image with its URL and presentation metadata. The URL accepts an `Image.url(transform: ...)` argument for responsive resizing / format selection.
|
|
3062
|
+
"""
|
|
2709
3063
|
type Image {
|
|
2710
|
-
"""
|
|
3064
|
+
"""
|
|
3065
|
+
Alt text for accessibility / SEO. Null when the merchant has not provided one.
|
|
3066
|
+
"""
|
|
2711
3067
|
altText: String
|
|
2712
3068
|
|
|
2713
|
-
"""
|
|
3069
|
+
"""Native height of the source image in pixels."""
|
|
2714
3070
|
height: Int
|
|
2715
3071
|
|
|
2716
|
-
"""
|
|
3072
|
+
"""
|
|
3073
|
+
Stable image identifier. Null for ad-hoc images that are not stored as media library entries.
|
|
3074
|
+
"""
|
|
2717
3075
|
id: ID
|
|
2718
3076
|
|
|
2719
3077
|
"""
|
|
2720
|
-
ThumbHash placeholder for progressive loading (base64-encoded, ~40 chars). Decode with thumbHashToDataURL() on the client.
|
|
3078
|
+
ThumbHash placeholder for progressive loading (base64-encoded, ~40 chars). Decode with `thumbHashToDataURL()` on the client to render an instant blurry preview while the full image loads.
|
|
2721
3079
|
"""
|
|
2722
3080
|
thumbhash: String
|
|
2723
3081
|
|
|
2724
|
-
"""
|
|
3082
|
+
"""
|
|
3083
|
+
Public image URL. Pass an optional `transform` argument (max width / height, crop region, scale, preferred format) to obtain a resized / reformatted CDN variant — useful for responsive images and modern formats like WebP / AVIF.
|
|
3084
|
+
"""
|
|
2725
3085
|
url(transform: ImageTransformInput): String!
|
|
2726
3086
|
|
|
2727
|
-
"""
|
|
3087
|
+
"""Native width of the source image in pixels."""
|
|
2728
3088
|
width: Int
|
|
2729
3089
|
}
|
|
2730
3090
|
|
|
@@ -2804,7 +3164,7 @@ type Language {
|
|
|
2804
3164
|
nativeName: String!
|
|
2805
3165
|
}
|
|
2806
3166
|
|
|
2807
|
-
"""ISO 639-1 language code"""
|
|
3167
|
+
"""ISO 639-1 language code (2-letter uppercase, e.g. PL, EN, DE)."""
|
|
2808
3168
|
enum LanguageCode {
|
|
2809
3169
|
CS
|
|
2810
3170
|
DA
|
|
@@ -3223,86 +3583,99 @@ enum LoyaltyTransactionType {
|
|
|
3223
3583
|
REFUND_REVERSAL
|
|
3224
3584
|
}
|
|
3225
3585
|
|
|
3226
|
-
"""
|
|
3586
|
+
"""
|
|
3587
|
+
A mailing address — shipping or billing — used on a cart, on the resulting order, or saved in a customer address book. Carries optional B2B fields (`taxId`, `vatNumber`) and an optional `pickupPoint` for parcel locker / collection-point delivery.
|
|
3588
|
+
"""
|
|
3227
3589
|
type MailingAddress implements Node {
|
|
3228
|
-
"""City"""
|
|
3590
|
+
"""City / town."""
|
|
3229
3591
|
city: String
|
|
3230
3592
|
|
|
3231
|
-
"""Company name"""
|
|
3593
|
+
"""Company name (relevant for B2B addresses)."""
|
|
3232
3594
|
company: String
|
|
3233
3595
|
|
|
3234
|
-
"""
|
|
3596
|
+
"""
|
|
3597
|
+
Country name in the request locale (e.g. "Poland", "Polska"). For machine logic use `countryCode`.
|
|
3598
|
+
"""
|
|
3235
3599
|
country: String
|
|
3236
3600
|
|
|
3237
|
-
"""ISO 3166-1 alpha-2 country code"""
|
|
3601
|
+
"""ISO 3166-1 alpha-2 country code (e.g. PL, DE, US)."""
|
|
3238
3602
|
countryCode: CountryCode
|
|
3239
3603
|
|
|
3240
|
-
"""
|
|
3604
|
+
"""Buyer first name."""
|
|
3241
3605
|
firstName: String
|
|
3242
3606
|
|
|
3243
3607
|
"""
|
|
3244
|
-
Country-aware ordered address lines
|
|
3608
|
+
Country-aware ordered address lines, ready to render line by line in UI without manual formatting. The exact line layout depends on country (e.g. PL puts postal code before city, US after state).
|
|
3245
3609
|
"""
|
|
3246
3610
|
formatted: [String!]!
|
|
3247
3611
|
|
|
3248
3612
|
"""
|
|
3249
|
-
Single-line area
|
|
3613
|
+
Single-line summary of the area, e.g. "Warszawa, MZ, Poland". Useful for compact display in lists.
|
|
3250
3614
|
"""
|
|
3251
3615
|
formattedArea: String
|
|
3252
3616
|
|
|
3253
|
-
"""
|
|
3617
|
+
"""Stable identifier of the address."""
|
|
3254
3618
|
id: ID!
|
|
3255
3619
|
|
|
3256
|
-
"""
|
|
3620
|
+
"""True when this is the default address for the owning customer."""
|
|
3257
3621
|
isDefault: Boolean!
|
|
3258
3622
|
|
|
3259
|
-
"""
|
|
3623
|
+
"""Buyer last name."""
|
|
3260
3624
|
lastName: String
|
|
3261
3625
|
|
|
3262
|
-
"""
|
|
3626
|
+
"""Convenience full name (`firstName` + " " + `lastName`)."""
|
|
3263
3627
|
name: String
|
|
3264
3628
|
|
|
3265
|
-
"""Phone number"""
|
|
3629
|
+
"""Phone number associated with the address (free-form)."""
|
|
3266
3630
|
phone: String
|
|
3267
3631
|
|
|
3268
|
-
"""
|
|
3632
|
+
"""
|
|
3633
|
+
Selected pickup point when the shipping method delivers to a parcel locker / collection point instead of the street address. Null for home delivery.
|
|
3634
|
+
"""
|
|
3635
|
+
pickupPoint: PickupPoint
|
|
3636
|
+
|
|
3637
|
+
"""Postal / ZIP code."""
|
|
3269
3638
|
postalCode: String
|
|
3270
3639
|
|
|
3271
|
-
"""State / province"""
|
|
3640
|
+
"""State / province / region name."""
|
|
3272
3641
|
state: String
|
|
3273
3642
|
|
|
3274
|
-
"""State / province code (ISO 3166-2 subdivision)"""
|
|
3643
|
+
"""State / province code (ISO 3166-2 subdivision, e.g. PL-MZ)."""
|
|
3275
3644
|
stateCode: String
|
|
3276
3645
|
|
|
3277
|
-
"""First line of street address"""
|
|
3646
|
+
"""First line of the street address (street and house / building number)."""
|
|
3278
3647
|
streetLine1: String
|
|
3279
3648
|
|
|
3280
|
-
"""
|
|
3649
|
+
"""
|
|
3650
|
+
Second line of the street address (apartment, suite, floor — optional).
|
|
3651
|
+
"""
|
|
3281
3652
|
streetLine2: String
|
|
3282
3653
|
|
|
3283
3654
|
"""
|
|
3284
|
-
Per-address tax ID
|
|
3655
|
+
Per-address buyer tax ID for B2B invoicing — Polish NIP, 10 digits with checksum. Lets B2B buyers invoice different addresses to different legal entities. Independent of `Customer.taxId` (which is the customer-wide default).
|
|
3285
3656
|
"""
|
|
3286
3657
|
taxId: String
|
|
3287
3658
|
|
|
3288
3659
|
"""
|
|
3289
|
-
Per-address EU VAT number (e.g. PL1234567890)
|
|
3660
|
+
Per-address EU VAT number (e.g. `PL1234567890`) for cross-border B2B. Independent of `Customer.vatNumber` (which is the customer-wide default).
|
|
3290
3661
|
"""
|
|
3291
3662
|
vatNumber: String
|
|
3292
3663
|
}
|
|
3293
3664
|
|
|
3294
|
-
"""Paginated mailing addresses (Relay Connection)"""
|
|
3665
|
+
"""Paginated list of mailing addresses (Relay Connection)."""
|
|
3295
3666
|
type MailingAddressConnection {
|
|
3296
|
-
"""
|
|
3667
|
+
"""
|
|
3668
|
+
Edges with the address and its cursor — use for cursor-based pagination.
|
|
3669
|
+
"""
|
|
3297
3670
|
edges: [MailingAddressEdge!]!
|
|
3298
3671
|
|
|
3299
|
-
"""Address nodes
|
|
3672
|
+
"""Address nodes — convenience shortcut for `edges.map(e => e.node)`."""
|
|
3300
3673
|
nodes: [MailingAddress!]!
|
|
3301
3674
|
|
|
3302
|
-
"""
|
|
3675
|
+
"""Cursor pagination info (`hasNextPage`, `endCursor`, etc.)."""
|
|
3303
3676
|
pageInfo: PageInfo!
|
|
3304
3677
|
|
|
3305
|
-
"""Total
|
|
3678
|
+
"""Total number of saved addresses for the customer across all pages."""
|
|
3306
3679
|
totalCount: Int!
|
|
3307
3680
|
}
|
|
3308
3681
|
|
|
@@ -3427,66 +3800,96 @@ enum MenuItemType {
|
|
|
3427
3800
|
SEARCH
|
|
3428
3801
|
}
|
|
3429
3802
|
|
|
3430
|
-
"""
|
|
3803
|
+
"""A monetary amount with its ISO 4217 currency code."""
|
|
3431
3804
|
type Money {
|
|
3432
|
-
"""
|
|
3805
|
+
"""
|
|
3806
|
+
Amount as a decimal string in major currency units (e.g. "12.99"). String, not float — preserves precision across locales.
|
|
3807
|
+
"""
|
|
3433
3808
|
amount: Decimal!
|
|
3434
3809
|
|
|
3435
|
-
"""ISO 4217 currency code"""
|
|
3810
|
+
"""ISO 4217 currency code (e.g. PLN, EUR, USD)."""
|
|
3436
3811
|
currencyCode: CurrencyCode!
|
|
3437
3812
|
}
|
|
3438
3813
|
|
|
3439
3814
|
type Mutation {
|
|
3440
|
-
"""
|
|
3815
|
+
"""
|
|
3816
|
+
Add one or more lines to the cart. Adding the same variant a second time merges into the existing line (sums the quantity). Returns the full updated cart plus any non-fatal warnings (e.g. stock dropped below requested quantity).
|
|
3817
|
+
"""
|
|
3441
3818
|
cartAddLines(id: ID!, lines: [CartLineInput!]!): CartAddLinesPayload!
|
|
3442
3819
|
|
|
3443
|
-
"""
|
|
3820
|
+
"""
|
|
3821
|
+
Apply a gift card to the cart by full code. The card is debited at `cartComplete`. Rate-limited to 5 requests per minute per IP+shop (gift card codes form a finite enumerable space).
|
|
3822
|
+
"""
|
|
3444
3823
|
cartApplyGiftCard(input: CartApplyGiftCardInput!): CartApplyGiftCardPayload!
|
|
3445
3824
|
|
|
3446
3825
|
"""
|
|
3447
|
-
|
|
3826
|
+
Finalise the cart into an `Order`. The cart is locked and no longer accepts mutations. Payment is initiated separately via `paymentCreate` — check `order.canCreatePayment` to decide whether to render a "Pay now" button or send the buyer directly to the confirmation page (for offline methods such as cash on delivery). Rate-limited to 5 requests per minute per IP+shop; pass an `idempotencyKey` to guard against duplicate orders on retry.
|
|
3448
3827
|
"""
|
|
3449
3828
|
cartComplete(input: CartCompleteInput!): CartCompletePayload!
|
|
3450
3829
|
|
|
3451
|
-
"""
|
|
3830
|
+
"""
|
|
3831
|
+
Create a new cart. All fields on `input` are optional — call with no input to create an empty cart, or pass initial lines, buyer identity, attributes, discount codes, email and a shipping address to skip the corresponding follow-up calls.
|
|
3832
|
+
"""
|
|
3452
3833
|
cartCreate(input: CartCreateInput): CartCreatePayload!
|
|
3453
3834
|
|
|
3454
|
-
"""
|
|
3835
|
+
"""
|
|
3836
|
+
Replace (not merge) the list of discount codes on the cart. Pass an empty array to clear all codes. Rate-limited to 10 requests per minute per IP+shop.
|
|
3837
|
+
"""
|
|
3455
3838
|
cartDiscountCodesUpdate(discountCodes: [String!]!, id: ID!): CartDiscountCodesUpdatePayload!
|
|
3456
3839
|
|
|
3457
|
-
"""
|
|
3840
|
+
"""
|
|
3841
|
+
Remove a previously applied gift card from the cart by its `CartAppliedGiftCard.id`. The storefront never has to handle the full gift card code on the client.
|
|
3842
|
+
"""
|
|
3458
3843
|
cartRemoveGiftCard(input: CartRemoveGiftCardInput!): CartRemoveGiftCardPayload!
|
|
3459
3844
|
|
|
3460
|
-
"""
|
|
3845
|
+
"""
|
|
3846
|
+
Remove one or more lines from the cart by `CartLine.id`. Equivalent to `cartUpdateLines` with `quantity: 0` but lets the storefront express the intent explicitly.
|
|
3847
|
+
"""
|
|
3461
3848
|
cartRemoveLines(id: ID!, lineIds: [ID!]!): CartRemoveLinesPayload!
|
|
3462
3849
|
|
|
3463
|
-
"""
|
|
3850
|
+
"""
|
|
3851
|
+
Select a payment method on the cart. Validates against the active shop payment methods and currency. The selection is finalised at `cartComplete`; payment itself is initiated via a separate `paymentCreate` mutation after the order is created.
|
|
3852
|
+
"""
|
|
3464
3853
|
cartSelectPaymentMethod(input: CartSelectPaymentMethodInput!): CartSelectPaymentMethodPayload!
|
|
3465
3854
|
|
|
3466
3855
|
"""
|
|
3467
|
-
Select shipping method on cart (
|
|
3856
|
+
Select a shipping method on the cart. Validates the method against the cart contents and the shipping address (must be eligible for the destination, and a pickup point must be set when the method delivers to a locker / collection point). Updates `cost.totalShipping` and the grand total.
|
|
3468
3857
|
"""
|
|
3469
3858
|
cartSelectShippingMethod(input: CartSelectShippingMethodInput!): CartSelectShippingMethodPayload!
|
|
3470
3859
|
|
|
3471
|
-
"""
|
|
3860
|
+
"""
|
|
3861
|
+
Set the billing address on a cart. The shipping address is left unchanged — pass billing only when it differs from shipping (otherwise the order mirrors the shipping address as the billing address).
|
|
3862
|
+
"""
|
|
3472
3863
|
cartSetBillingAddress(input: CartSetBillingAddressInput!): CartSetBillingAddressPayload!
|
|
3473
3864
|
|
|
3474
|
-
"""
|
|
3865
|
+
"""
|
|
3866
|
+
Set the shipping address on a cart. Pass `address.pickupPoint` when the buyer is delivering to a parcel locker / collection point — required for non-HOME shipping methods. Replaces any previous shipping address; the billing address is left untouched.
|
|
3867
|
+
"""
|
|
3475
3868
|
cartSetShippingAddress(input: CartSetShippingAddressInput!): CartSetShippingAddressPayload!
|
|
3476
3869
|
|
|
3477
|
-
"""
|
|
3870
|
+
"""
|
|
3871
|
+
Replace (not merge) the cart-level custom attributes — free-form key/value pairs surfaced to the merchant on the order. Use for cart-wide metadata such as a B2B PO number or marketing source. Max 250 pairs / 255-char keys; over the limit returns `CART_ATTRIBUTES_LIMIT_EXCEEDED`.
|
|
3872
|
+
"""
|
|
3478
3873
|
cartUpdateAttributes(attributes: [CartAttributeInput!]!, id: ID!): CartUpdateAttributesPayload!
|
|
3479
3874
|
|
|
3480
|
-
"""
|
|
3875
|
+
"""
|
|
3876
|
+
Update buyer identity on the cart — email, phone, customer ID, country and language hints. Only supplied fields are touched; omit a field to leave it unchanged.
|
|
3877
|
+
"""
|
|
3481
3878
|
cartUpdateBuyerIdentity(buyerIdentity: CartBuyerIdentityInput!, id: ID!): CartUpdateBuyerIdentityPayload!
|
|
3482
3879
|
|
|
3483
|
-
"""
|
|
3880
|
+
"""
|
|
3881
|
+
Set recipient details (email, display name, personalised message) on a gift card line item — the gift card will be delivered to this recipient on order completion.
|
|
3882
|
+
"""
|
|
3484
3883
|
cartUpdateGiftCardRecipient(input: CartUpdateGiftCardRecipientInput!): CartUpdateGiftCardRecipientPayload!
|
|
3485
3884
|
|
|
3486
|
-
"""
|
|
3885
|
+
"""
|
|
3886
|
+
Update existing cart lines — quantity, custom attributes and / or configurator selections. Set `quantity` to 0 to remove a line. Address lines by `CartLine.id`.
|
|
3887
|
+
"""
|
|
3487
3888
|
cartUpdateLines(id: ID!, lines: [CartLineUpdateInput!]!): CartUpdateLinesPayload!
|
|
3488
3889
|
|
|
3489
|
-
"""
|
|
3890
|
+
"""
|
|
3891
|
+
Set or replace the buyer note on the cart (free-form, up to 1000 chars). Surfaced to the merchant on the resulting order.
|
|
3892
|
+
"""
|
|
3490
3893
|
cartUpdateNote(id: ID!, note: String!): CartUpdateNotePayload!
|
|
3491
3894
|
|
|
3492
3895
|
"""
|
|
@@ -3502,13 +3905,19 @@ type Mutation {
|
|
|
3502
3905
|
"""Add customer address"""
|
|
3503
3906
|
customerAddAddress(address: MailingAddressInput!): CustomerAddAddressPayload!
|
|
3504
3907
|
|
|
3505
|
-
"""
|
|
3908
|
+
"""
|
|
3909
|
+
Sign a customer in with email and password. Returns an access token to use on subsequent requests (as a Bearer header or via the SDK auth cookie).
|
|
3910
|
+
"""
|
|
3506
3911
|
customerLogin(input: CustomerAccessTokenCreateInput!): CustomerLoginPayload!
|
|
3507
3912
|
|
|
3508
|
-
"""
|
|
3913
|
+
"""
|
|
3914
|
+
Sign the current customer out. Invalidates the access token on the server; the SDK BFF auth helpers additionally clear the HTTP-only cookie.
|
|
3915
|
+
"""
|
|
3509
3916
|
customerLogout: CustomerLogoutPayload!
|
|
3510
3917
|
|
|
3511
|
-
"""
|
|
3918
|
+
"""
|
|
3919
|
+
Exchange a still-valid access token for a fresh one with a later expiry. Call before `expiresAt` to keep the session alive without prompting the buyer to log in again.
|
|
3920
|
+
"""
|
|
3512
3921
|
customerRefreshToken: CustomerRefreshTokenPayload!
|
|
3513
3922
|
|
|
3514
3923
|
"""Remove customer address"""
|
|
@@ -3528,7 +3937,9 @@ type Mutation {
|
|
|
3528
3937
|
"""Set default address"""
|
|
3529
3938
|
customerSetDefaultAddress(addressId: ID!): CustomerSetDefaultAddressPayload!
|
|
3530
3939
|
|
|
3531
|
-
"""
|
|
3940
|
+
"""
|
|
3941
|
+
Register a new customer with email and password. Returns the created customer plus an access token so the storefront can sign the buyer in immediately, no follow-up login call needed.
|
|
3942
|
+
"""
|
|
3532
3943
|
customerSignup(input: CustomerCreateInput!): CustomerSignupPayload!
|
|
3533
3944
|
|
|
3534
3945
|
"""Subscribe an email to the newsletter (guest-friendly, double opt-in)."""
|
|
@@ -3550,7 +3961,7 @@ type Mutation {
|
|
|
3550
3961
|
loyaltyRedeemReward(input: RedeemRewardInput!): RedeemRewardPayload!
|
|
3551
3962
|
|
|
3552
3963
|
"""
|
|
3553
|
-
Initiate a payment session for an order
|
|
3964
|
+
Initiate a payment session for an order created by `cartComplete`. Call after checking `order.canCreatePayment`. Idempotent on the order — a second call returns the existing still-valid session. Branch on the returned `payment.flow` to launch the payment (redirect / embedded / instant). Rate-limited to 5 requests per minute per IP+shop.
|
|
3554
3965
|
"""
|
|
3555
3966
|
paymentCreate(input: PaymentCreateInput!): PaymentCreatePayload!
|
|
3556
3967
|
|
|
@@ -3608,64 +4019,88 @@ enum NodeType {
|
|
|
3608
4019
|
PRODUCT_VARIANT
|
|
3609
4020
|
}
|
|
3610
4021
|
|
|
3611
|
-
"""
|
|
4022
|
+
"""
|
|
4023
|
+
A buyer order — the result of completing a cart. Carries totals, status, addresses, line items and the signals needed to drive payment (`canCreatePayment`, `paymentMethodType`) and a guest confirmation page (`accessToken`).
|
|
4024
|
+
"""
|
|
3612
4025
|
type Order implements Node {
|
|
3613
4026
|
"""
|
|
3614
|
-
Opaque access token (UUID v4)
|
|
4027
|
+
Opaque access token (UUID v4) that grants read access to the order summary without an authenticated session — pass it to the `orderByToken` query to build a guest confirmation page. Persistent for the lifetime of the order so it can be re-used in forwarded receipts. Store on the storefront in an HTTP-only cookie or `sessionStorage`; never in `localStorage`. As defense-in-depth, `orderByToken` also accepts an optional email guard to limit the blast radius if the token leaks.
|
|
3615
4028
|
"""
|
|
3616
4029
|
accessToken: String!
|
|
3617
4030
|
|
|
3618
4031
|
"""Order custom field values (post-Opcja A unified custom fields)."""
|
|
3619
4032
|
attributes(namespace: String): [EntityAttributeField!]!
|
|
3620
4033
|
|
|
3621
|
-
"""
|
|
4034
|
+
"""
|
|
4035
|
+
True when the storefront should initiate an online payment for this order — render a "Pay now" button. False when the order is cancelled, already paid, or uses an offline payment method (cash on delivery, manual bank transfer) where no online flow applies. Retry-friendly: returns true for UNPAID / PENDING / FAILED payment statuses when the method supports online init.
|
|
4036
|
+
"""
|
|
3622
4037
|
canCreatePayment: Boolean!
|
|
3623
4038
|
|
|
3624
|
-
"""When order was cancelled"""
|
|
4039
|
+
"""When the order was cancelled. Null when not cancelled."""
|
|
3625
4040
|
cancelledAt: DateTime
|
|
3626
4041
|
|
|
3627
|
-
"""
|
|
4042
|
+
"""
|
|
4043
|
+
When the order was confirmed (e.g. payment authorised / approved). Null until confirmation.
|
|
4044
|
+
"""
|
|
3628
4045
|
confirmedAt: DateTime
|
|
3629
4046
|
|
|
3630
|
-
"""
|
|
4047
|
+
"""
|
|
4048
|
+
When the order expired (e.g. pending payment timed out). Null when not expired.
|
|
4049
|
+
"""
|
|
3631
4050
|
expiredAt: DateTime
|
|
3632
4051
|
|
|
3633
|
-
"""
|
|
4052
|
+
"""
|
|
4053
|
+
Fulfillment progress (UNFULFILLED, PARTIALLY_FULFILLED, FULFILLED, IN_TRANSIT, DELIVERED, PARTIALLY_RETURNED, RETURNED, LOST).
|
|
4054
|
+
"""
|
|
3634
4055
|
fulfillmentStatus: OrderFulfillmentStatus!
|
|
3635
4056
|
|
|
3636
|
-
"""
|
|
4057
|
+
"""Stable identifier of the order."""
|
|
3637
4058
|
id: ID!
|
|
3638
4059
|
|
|
3639
|
-
"""
|
|
4060
|
+
"""
|
|
4061
|
+
Number of line items on the order (sum of distinct lines, not quantities).
|
|
4062
|
+
"""
|
|
3640
4063
|
itemCount: Int!
|
|
3641
4064
|
|
|
3642
4065
|
"""
|
|
3643
|
-
|
|
4066
|
+
Line items on the order (paginated, Relay Connection). Use to render the order summary on the confirmation or order detail page.
|
|
3644
4067
|
"""
|
|
3645
4068
|
lineItems(after: String, first: Int = 10): OrderLineItemConnection!
|
|
3646
4069
|
|
|
3647
|
-
"""
|
|
4070
|
+
"""
|
|
4071
|
+
Human-readable order number shown to the buyer and the merchant (e.g. "1042"). Distinct from `id`.
|
|
4072
|
+
"""
|
|
3648
4073
|
orderNumber: String!
|
|
3649
4074
|
|
|
3650
|
-
"""
|
|
4075
|
+
"""
|
|
4076
|
+
Category of the payment method on the order (CARD, BLIK, BANK_TRANSFER, CASH_ON_DELIVERY, OTHER). Use to drive iconography and copy on the confirmation page (e.g. show the card icon for CARD, the BLIK logo for BLIK).
|
|
4077
|
+
"""
|
|
3651
4078
|
paymentMethodType: PaymentMethodType!
|
|
3652
4079
|
|
|
3653
|
-
"""
|
|
4080
|
+
"""
|
|
4081
|
+
Payment progress (UNPAID, PENDING, AUTHORIZED, PAID, PARTIALLY_PAID, PARTIALLY_REFUNDED, REFUNDED, FAILED, CHARGEBACK, VOIDED, REFUND_PENDING).
|
|
4082
|
+
"""
|
|
3654
4083
|
paymentStatus: OrderPaymentStatus!
|
|
3655
4084
|
|
|
3656
|
-
"""
|
|
4085
|
+
"""
|
|
4086
|
+
When the order was placed (ISO 8601). Use as the canonical "order date" in receipts.
|
|
4087
|
+
"""
|
|
3657
4088
|
processedAt: DateTime!
|
|
3658
4089
|
|
|
3659
4090
|
"""Order shipments"""
|
|
3660
4091
|
shipments: [Shipment!]!
|
|
3661
4092
|
|
|
3662
|
-
"""
|
|
4093
|
+
"""
|
|
4094
|
+
Shipping address snapshot at the moment the order was placed. Null for digital-only orders.
|
|
4095
|
+
"""
|
|
3663
4096
|
shippingAddress: MailingAddress
|
|
3664
4097
|
|
|
3665
|
-
"""
|
|
4098
|
+
"""
|
|
4099
|
+
High-level lifecycle status of the order (DRAFT, PENDING, CONFIRMED, PROCESSING, ON_HOLD, COMPLETED, CANCELLED, EXPIRED).
|
|
4100
|
+
"""
|
|
3666
4101
|
status: StorefrontOrderStatus!
|
|
3667
4102
|
|
|
3668
|
-
"""Cost
|
|
4103
|
+
"""Cost breakdown on the order (subtotal, total, tax, shipping)."""
|
|
3669
4104
|
totals: OrderTotals!
|
|
3670
4105
|
}
|
|
3671
4106
|
|
|
@@ -3693,7 +4128,9 @@ type OrderEdge {
|
|
|
3693
4128
|
node: Order!
|
|
3694
4129
|
}
|
|
3695
4130
|
|
|
3696
|
-
"""
|
|
4131
|
+
"""
|
|
4132
|
+
Fulfillment progress of an order. UNFULFILLED → PARTIALLY_FULFILLED → FULFILLED (items shipped) → IN_TRANSIT → DELIVERED. PARTIALLY_RETURNED / RETURNED reflect post-delivery returns; LOST marks a parcel that never reached the buyer.
|
|
4133
|
+
"""
|
|
3697
4134
|
enum OrderFulfillmentStatus {
|
|
3698
4135
|
DELIVERED
|
|
3699
4136
|
FULFILLED
|
|
@@ -3768,7 +4205,9 @@ type OrderLineItemEdge {
|
|
|
3768
4205
|
node: OrderLineItem!
|
|
3769
4206
|
}
|
|
3770
4207
|
|
|
3771
|
-
"""
|
|
4208
|
+
"""
|
|
4209
|
+
Payment status of an order. UNPAID = no payment recorded yet; PENDING = initiated, awaiting confirmation; AUTHORIZED = held but not captured; PAID = fully paid; PARTIALLY_PAID / PARTIALLY_REFUNDED = intermediate states; REFUNDED = fully refunded; FAILED, CHARGEBACK, VOIDED, REFUND_PENDING = terminal / in-flight unpaid states.
|
|
4210
|
+
"""
|
|
3772
4211
|
enum OrderPaymentStatus {
|
|
3773
4212
|
AUTHORIZED
|
|
3774
4213
|
CHARGEBACK
|
|
@@ -3783,18 +4222,26 @@ enum OrderPaymentStatus {
|
|
|
3783
4222
|
VOIDED
|
|
3784
4223
|
}
|
|
3785
4224
|
|
|
3786
|
-
"""
|
|
4225
|
+
"""
|
|
4226
|
+
Cost totals on an order — symmetric with `CartCost` so the confirmation page renders the same breakdown the buyer saw at checkout.
|
|
4227
|
+
"""
|
|
3787
4228
|
type OrderTotals {
|
|
3788
|
-
"""Order subtotal
|
|
4229
|
+
"""Order subtotal — items only, before tax, shipping and discounts."""
|
|
3789
4230
|
subtotal: Money!
|
|
3790
4231
|
|
|
3791
|
-
"""
|
|
4232
|
+
"""
|
|
4233
|
+
Grand total the buyer was charged — includes taxes, shipping and discounts.
|
|
4234
|
+
"""
|
|
3792
4235
|
total: Money!
|
|
3793
4236
|
|
|
3794
|
-
"""
|
|
4237
|
+
"""
|
|
4238
|
+
Total shipping cost on the order. Null for digital-only orders that did not go through shipping.
|
|
4239
|
+
"""
|
|
3795
4240
|
totalShipping: Money
|
|
3796
4241
|
|
|
3797
|
-
"""
|
|
4242
|
+
"""
|
|
4243
|
+
Total tax across the order. Null when the order has no taxable component.
|
|
4244
|
+
"""
|
|
3798
4245
|
totalTax: Money
|
|
3799
4246
|
}
|
|
3800
4247
|
|
|
@@ -3813,18 +4260,26 @@ input PackageDimensionsInput {
|
|
|
3813
4260
|
width: Int
|
|
3814
4261
|
}
|
|
3815
4262
|
|
|
3816
|
-
"""
|
|
4263
|
+
"""Cursor pagination info for a Relay Connection."""
|
|
3817
4264
|
type PageInfo {
|
|
3818
|
-
"""
|
|
4265
|
+
"""
|
|
4266
|
+
Cursor of the last item on the current page — opaque, base64-encoded. Echo as the `after` argument to fetch the next page.
|
|
4267
|
+
"""
|
|
3819
4268
|
endCursor: String
|
|
3820
4269
|
|
|
3821
|
-
"""
|
|
4270
|
+
"""
|
|
4271
|
+
True when more pages follow this one. Use to decide whether to enable a "load more" / next page action.
|
|
4272
|
+
"""
|
|
3822
4273
|
hasNextPage: Boolean!
|
|
3823
4274
|
|
|
3824
|
-
"""
|
|
4275
|
+
"""
|
|
4276
|
+
True when pages exist before this one (relevant for bidirectional pagination).
|
|
4277
|
+
"""
|
|
3825
4278
|
hasPreviousPage: Boolean!
|
|
3826
4279
|
|
|
3827
|
-
"""
|
|
4280
|
+
"""
|
|
4281
|
+
Cursor of the first item on the current page — opaque, base64-encoded. Echo as the `before` argument to paginate backwards.
|
|
4282
|
+
"""
|
|
3828
4283
|
startCursor: String
|
|
3829
4284
|
}
|
|
3830
4285
|
|
|
@@ -3835,33 +4290,39 @@ enum PageSortKeys {
|
|
|
3835
4290
|
UPDATED_AT
|
|
3836
4291
|
}
|
|
3837
4292
|
|
|
3838
|
-
"""
|
|
4293
|
+
"""
|
|
4294
|
+
Input for `paymentCreate` — initiates a payment for an order created by `cartComplete`. Idempotent on the order: a second call returns the existing still-valid session.
|
|
4295
|
+
"""
|
|
3839
4296
|
input PaymentCreateInput {
|
|
3840
4297
|
"""
|
|
3841
|
-
URL
|
|
4298
|
+
URL the gateway returns the buyer to after they cancel the payment. Must point to a verified domain of the shop.
|
|
3842
4299
|
"""
|
|
3843
4300
|
cancelUrl: URL
|
|
3844
4301
|
|
|
3845
|
-
"""ID
|
|
4302
|
+
"""ID of the order to pay for — `cartComplete.order.id`."""
|
|
3846
4303
|
orderId: ID!
|
|
3847
4304
|
|
|
3848
4305
|
"""
|
|
3849
|
-
URL
|
|
4306
|
+
URL the gateway returns the buyer to after a successful payment. Must point to a verified domain of the shop; rejected with `RETURN_URL_INVALID` otherwise.
|
|
3850
4307
|
"""
|
|
3851
4308
|
returnUrl: URL
|
|
3852
4309
|
}
|
|
3853
4310
|
|
|
3854
|
-
"""
|
|
4311
|
+
"""Result of `paymentCreate`."""
|
|
3855
4312
|
type PaymentCreatePayload {
|
|
3856
|
-
"""
|
|
4313
|
+
"""
|
|
4314
|
+
The created (or reused) payment session on success; null when `userErrors` is non-empty.
|
|
4315
|
+
"""
|
|
3857
4316
|
payment: PaymentSession
|
|
3858
4317
|
|
|
3859
|
-
"""
|
|
4318
|
+
"""
|
|
4319
|
+
Business / validation errors carrying a stable `PaymentErrorCode` in `code` (e.g. `ORDER_NOT_FOUND`, `ORDER_ALREADY_PAID`, `ORDER_NOT_PAYABLE`, `PAYMENT_PROVIDER_NOT_CONFIGURED`, `RETURN_URL_INVALID`, `PAYMENT_FAILED`).
|
|
4320
|
+
"""
|
|
3860
4321
|
userErrors: [UserError!]!
|
|
3861
4322
|
}
|
|
3862
4323
|
|
|
3863
4324
|
"""
|
|
3864
|
-
|
|
4325
|
+
How the storefront should launch the payment after `paymentCreate`. ONLINE_REDIRECT = redirect the browser to `redirectUrl`. ONLINE_EMBEDDED = render an in-page widget using `clientSecret`. INSTANT_DIRECT = the payment is already settled, check `status`. OFFLINE_MANUAL never appears here — when the order uses an offline method `canCreatePayment` is false and `paymentCreate` is not called.
|
|
3865
4326
|
"""
|
|
3866
4327
|
enum PaymentInitiationFlow {
|
|
3867
4328
|
INSTANT_DIRECT
|
|
@@ -3870,37 +4331,59 @@ enum PaymentInitiationFlow {
|
|
|
3870
4331
|
ONLINE_REDIRECT
|
|
3871
4332
|
}
|
|
3872
4333
|
|
|
3873
|
-
"""
|
|
4334
|
+
"""
|
|
4335
|
+
A payment method offered to the buyer at checkout — what to render in the payment picker and pass to `cartSelectPaymentMethod`.
|
|
4336
|
+
"""
|
|
3874
4337
|
type PaymentMethod {
|
|
3875
|
-
"""
|
|
4338
|
+
"""
|
|
4339
|
+
Optional buyer-facing description shown under the name (e.g. "Pay with your bank app").
|
|
4340
|
+
"""
|
|
3876
4341
|
description: String
|
|
3877
4342
|
|
|
3878
|
-
"""
|
|
4343
|
+
"""
|
|
4344
|
+
Optional icon URL configured by the merchant. Use as the method tile artwork.
|
|
4345
|
+
"""
|
|
3879
4346
|
icon: String
|
|
3880
4347
|
|
|
3881
|
-
"""
|
|
4348
|
+
"""
|
|
4349
|
+
Stable ID of the payment method. Pass to `cartSelectPaymentMethod` to select it.
|
|
4350
|
+
"""
|
|
3882
4351
|
id: ID!
|
|
3883
4352
|
|
|
3884
|
-
"""
|
|
4353
|
+
"""
|
|
4354
|
+
True when the merchant has marked this method as the default. Pre-select it in the picker.
|
|
4355
|
+
"""
|
|
3885
4356
|
isDefault: Boolean!
|
|
3886
4357
|
|
|
3887
|
-
"""
|
|
4358
|
+
"""
|
|
4359
|
+
Display name configured by the merchant (e.g. "BLIK", "Credit card", "Cash on delivery").
|
|
4360
|
+
"""
|
|
3888
4361
|
name: String!
|
|
3889
4362
|
|
|
3890
|
-
"""
|
|
4363
|
+
"""
|
|
4364
|
+
Merchant-configured display position — lower values come first in the picker.
|
|
4365
|
+
"""
|
|
3891
4366
|
position: Float!
|
|
3892
4367
|
|
|
3893
|
-
"""
|
|
4368
|
+
"""
|
|
4369
|
+
Provider code (e.g. "payu", "stripe", "p24", "cash_on_delivery"). Identifies the integration behind the method; do not branch UI on it — use `type` instead.
|
|
4370
|
+
"""
|
|
3894
4371
|
provider: String!
|
|
3895
4372
|
|
|
3896
|
-
"""
|
|
4373
|
+
"""
|
|
4374
|
+
ISO 4217 currency codes the method accepts. Null when the method accepts the shop currency without restriction.
|
|
4375
|
+
"""
|
|
3897
4376
|
supportedCurrencies: [String!]
|
|
3898
4377
|
|
|
3899
|
-
"""
|
|
4378
|
+
"""
|
|
4379
|
+
Category of the method (CARD, BLIK, BANK_TRANSFER, CASH_ON_DELIVERY, OTHER). Drives iconography and copy.
|
|
4380
|
+
"""
|
|
3900
4381
|
type: PaymentMethodType!
|
|
3901
4382
|
}
|
|
3902
4383
|
|
|
3903
|
-
"""
|
|
4384
|
+
"""
|
|
4385
|
+
Category of a payment method: CARD, BLIK, BANK_TRANSFER, CASH_ON_DELIVERY or OTHER. Drives iconography and copy in the payment picker; do not branch on `provider` directly.
|
|
4386
|
+
"""
|
|
3904
4387
|
enum PaymentMethodType {
|
|
3905
4388
|
BANK_TRANSFER
|
|
3906
4389
|
BLIK
|
|
@@ -3909,30 +4392,44 @@ enum PaymentMethodType {
|
|
|
3909
4392
|
OTHER
|
|
3910
4393
|
}
|
|
3911
4394
|
|
|
3912
|
-
"""
|
|
4395
|
+
"""
|
|
4396
|
+
Payment session created for an order. Branch on `flow` to launch payment: ONLINE_REDIRECT → redirect to `redirectUrl`; ONLINE_EMBEDDED → render an in-page widget using `clientSecret`; INSTANT_DIRECT → the payment is already settled, check `status`.
|
|
4397
|
+
"""
|
|
3913
4398
|
type PaymentSession {
|
|
3914
|
-
"""
|
|
4399
|
+
"""
|
|
4400
|
+
Client secret / token for the in-page payment widget. Populated only when `flow` is ONLINE_EMBEDDED. Treat as sensitive — do not log.
|
|
4401
|
+
"""
|
|
3915
4402
|
clientSecret: String
|
|
3916
4403
|
|
|
3917
|
-
"""
|
|
4404
|
+
"""
|
|
4405
|
+
When the `redirectUrl` / `clientSecret` stops being usable (ISO 8601). The storefront should call `paymentCreate` again to get a fresh session after this time.
|
|
4406
|
+
"""
|
|
3918
4407
|
expiresAt: String
|
|
3919
4408
|
|
|
3920
|
-
"""
|
|
4409
|
+
"""
|
|
4410
|
+
How the storefront should launch the payment — branch on this with `switch(flow)`.
|
|
4411
|
+
"""
|
|
3921
4412
|
flow: PaymentInitiationFlow!
|
|
3922
4413
|
|
|
3923
|
-
"""
|
|
4414
|
+
"""Stable identifier of the payment record."""
|
|
3924
4415
|
id: ID!
|
|
3925
4416
|
|
|
3926
|
-
"""ID
|
|
4417
|
+
"""ID of the order this payment is for."""
|
|
3927
4418
|
orderId: ID!
|
|
3928
4419
|
|
|
3929
|
-
"""
|
|
4420
|
+
"""
|
|
4421
|
+
Provider code of the integration behind the session (e.g. "PAYU", "STRIPE"). Use for analytics; do not branch UI on it — use `flow` and the order `paymentMethodType` instead.
|
|
4422
|
+
"""
|
|
3930
4423
|
provider: String!
|
|
3931
4424
|
|
|
3932
|
-
"""
|
|
4425
|
+
"""
|
|
4426
|
+
Hosted-gateway URL to redirect the buyer to. Populated only when `flow` is ONLINE_REDIRECT.
|
|
4427
|
+
"""
|
|
3933
4428
|
redirectUrl: URL
|
|
3934
4429
|
|
|
3935
|
-
"""
|
|
4430
|
+
"""
|
|
4431
|
+
Payment status of the order at the time the session was created. For INSTANT_DIRECT, this already reflects the settled outcome.
|
|
4432
|
+
"""
|
|
3936
4433
|
status: OrderPaymentStatus!
|
|
3937
4434
|
}
|
|
3938
4435
|
|
|
@@ -3953,6 +4450,46 @@ type PaymentSettings {
|
|
|
3953
4450
|
paymentProviders: [String!]!
|
|
3954
4451
|
}
|
|
3955
4452
|
|
|
4453
|
+
"""
|
|
4454
|
+
A pickup point (parcel locker or staffed collection point) attached to a delivery address. The buyer picks it in the carrier widget; it is persisted on the cart shipping address and carried through to the order.
|
|
4455
|
+
"""
|
|
4456
|
+
type PickupPoint {
|
|
4457
|
+
"""
|
|
4458
|
+
Point address as a single human-readable line — show alongside the name on the confirmation page.
|
|
4459
|
+
"""
|
|
4460
|
+
address: String
|
|
4461
|
+
|
|
4462
|
+
"""Display name of the point as shown in the carrier widget."""
|
|
4463
|
+
name: String
|
|
4464
|
+
|
|
4465
|
+
"""
|
|
4466
|
+
Identifier of the point within the provider network (e.g. an InPost parcel locker code such as `KRA010`). Pass back to `PickupPointInput.pointId` when attaching the same point to another address.
|
|
4467
|
+
"""
|
|
4468
|
+
pointId: String!
|
|
4469
|
+
|
|
4470
|
+
"""
|
|
4471
|
+
Carrier network code that owns the point (e.g. `inpost`, `orlen`, `dpd`).
|
|
4472
|
+
"""
|
|
4473
|
+
provider: String!
|
|
4474
|
+
}
|
|
4475
|
+
|
|
4476
|
+
"""
|
|
4477
|
+
Pickup point (parcel locker / collection point) for a cart shipping address
|
|
4478
|
+
"""
|
|
4479
|
+
input PickupPointInput {
|
|
4480
|
+
"""Point address as a single line"""
|
|
4481
|
+
address: String
|
|
4482
|
+
|
|
4483
|
+
"""Human-readable point name"""
|
|
4484
|
+
name: String
|
|
4485
|
+
|
|
4486
|
+
"""Point identifier within the provider network"""
|
|
4487
|
+
pointId: String!
|
|
4488
|
+
|
|
4489
|
+
"""Courier network code (e.g. inpost, orlen, dpd)"""
|
|
4490
|
+
provider: String!
|
|
4491
|
+
}
|
|
4492
|
+
|
|
3956
4493
|
"""Points estimate for an order"""
|
|
3957
4494
|
type PointsEstimate {
|
|
3958
4495
|
"""Base points to earn"""
|
|
@@ -4468,7 +5005,9 @@ enum ProductSortKeys {
|
|
|
4468
5005
|
VENDOR
|
|
4469
5006
|
}
|
|
4470
5007
|
|
|
4471
|
-
"""
|
|
5008
|
+
"""
|
|
5009
|
+
Product type classification. PHYSICAL = ships to an address (requires the shipping step). DIGITAL = delivered electronically. SERVICE = booking / appointment, no shipment. SUBSCRIPTION = recurring billing. GIFT_CARD = issues a redeemable card on completion.
|
|
5010
|
+
"""
|
|
4472
5011
|
enum ProductTypeEnum {
|
|
4473
5012
|
DIGITAL
|
|
4474
5013
|
GIFT_CARD
|
|
@@ -4477,49 +5016,69 @@ enum ProductTypeEnum {
|
|
|
4477
5016
|
SUBSCRIPTION
|
|
4478
5017
|
}
|
|
4479
5018
|
|
|
4480
|
-
"""
|
|
5019
|
+
"""
|
|
5020
|
+
A purchasable unit of a product — one variant out of the product variants list, identified by its `id` and described by its options.
|
|
5021
|
+
"""
|
|
4481
5022
|
type ProductVariant {
|
|
4482
5023
|
"""Variant custom field values (post-Opcja A unified custom fields)."""
|
|
4483
5024
|
attributes(namespace: String): [EntityAttributeField!]!
|
|
4484
5025
|
|
|
4485
5026
|
"""
|
|
4486
|
-
Available stock
|
|
5027
|
+
Available stock — what the buyer can buy now (on-hand minus active reservations, never below 0). Null when the merchant has disabled stock tracking for this variant (e.g. digital, made-to-order).
|
|
4487
5028
|
"""
|
|
4488
5029
|
availableStock: Int
|
|
4489
5030
|
|
|
4490
|
-
"""
|
|
5031
|
+
"""
|
|
5032
|
+
Barcode (EAN/UPC/etc.) as set by the merchant. Null when not configured.
|
|
5033
|
+
"""
|
|
4491
5034
|
barcode: String
|
|
4492
5035
|
|
|
4493
|
-
"""
|
|
5036
|
+
"""
|
|
5037
|
+
Strike-through compare-at price when the variant is on sale. Null when the variant is not discounted; show the strike-through only when this is present and greater than `price`.
|
|
5038
|
+
"""
|
|
4494
5039
|
compareAtPrice: Money
|
|
4495
5040
|
|
|
4496
|
-
"""
|
|
5041
|
+
"""Optional opt-in: `compareAtPrice` with full conversion transparency."""
|
|
4497
5042
|
compareAtPriceWithConversion: PriceMoney
|
|
4498
5043
|
|
|
4499
|
-
"""
|
|
5044
|
+
"""
|
|
5045
|
+
Stable identifier of the variant. Pass to `cartAddLines.variantId` to add the variant to a cart.
|
|
5046
|
+
"""
|
|
4500
5047
|
id: ID!
|
|
4501
5048
|
|
|
4502
|
-
"""
|
|
5049
|
+
"""
|
|
5050
|
+
Image specific to this variant. Null when the variant inherits the parent product image.
|
|
5051
|
+
"""
|
|
4503
5052
|
image: Image
|
|
4504
5053
|
|
|
4505
|
-
"""
|
|
5054
|
+
"""
|
|
5055
|
+
True when the variant can be purchased right now (in stock, or backorder allowed by the merchant).
|
|
5056
|
+
"""
|
|
4506
5057
|
isAvailable: Boolean!
|
|
4507
5058
|
|
|
4508
|
-
"""
|
|
5059
|
+
"""
|
|
5060
|
+
Current price of the variant in the buyer preferred currency (auto-converted from the shop base currency when multi-currency is enabled).
|
|
5061
|
+
"""
|
|
4509
5062
|
price: Money!
|
|
4510
5063
|
|
|
4511
5064
|
"""
|
|
4512
|
-
|
|
5065
|
+
Optional opt-in: `price` with full conversion transparency (original shop-currency amount, exchange rate, conversion timestamp). Use when building a currency-converter UI.
|
|
4513
5066
|
"""
|
|
4514
5067
|
priceWithConversion: PriceMoney
|
|
4515
5068
|
|
|
4516
|
-
"""
|
|
5069
|
+
"""
|
|
5070
|
+
Option values that define this variant (e.g. Size = Large, Color = Red).
|
|
5071
|
+
"""
|
|
4517
5072
|
selectedOptions: [SelectedOption!]!
|
|
4518
5073
|
|
|
4519
|
-
"""
|
|
5074
|
+
"""
|
|
5075
|
+
Stock-keeping unit code as set by the merchant. Null when not configured.
|
|
5076
|
+
"""
|
|
4520
5077
|
sku: String
|
|
4521
5078
|
|
|
4522
|
-
"""
|
|
5079
|
+
"""
|
|
5080
|
+
Display position of this variant within the parent product list. Lower values come first.
|
|
5081
|
+
"""
|
|
4523
5082
|
sortOrder: Int
|
|
4524
5083
|
|
|
4525
5084
|
"""
|
|
@@ -4539,10 +5098,14 @@ type ProductVariant {
|
|
|
4539
5098
|
near: GeoCoordinateInput
|
|
4540
5099
|
): StoreAvailabilityConnection
|
|
4541
5100
|
|
|
4542
|
-
"""
|
|
5101
|
+
"""
|
|
5102
|
+
Display title of the variant (e.g. "Large / Red"). Composed from the variant options.
|
|
5103
|
+
"""
|
|
4543
5104
|
title: String!
|
|
4544
5105
|
|
|
4545
|
-
"""
|
|
5106
|
+
"""
|
|
5107
|
+
Variant weight with its unit. Stored in grams; pick a display unit on the storefront if needed. Null when the merchant has not set a weight.
|
|
5108
|
+
"""
|
|
4546
5109
|
weight: Weight
|
|
4547
5110
|
}
|
|
4548
5111
|
|
|
@@ -4586,10 +5149,14 @@ type Query {
|
|
|
4586
5149
|
"""
|
|
4587
5150
|
attributeOptionsSearch(input: AttributeOptionsSearchInput!): AttributeFilterValueConnection!
|
|
4588
5151
|
|
|
4589
|
-
"""
|
|
5152
|
+
"""
|
|
5153
|
+
Payment methods active for the current shop, plus the merchant default. Shop-level — independent of cart contents in this iteration. Fetch once for the checkout payment step.
|
|
5154
|
+
"""
|
|
4590
5155
|
availablePaymentMethods: AvailablePaymentMethods!
|
|
4591
5156
|
|
|
4592
|
-
"""
|
|
5157
|
+
"""
|
|
5158
|
+
Standalone shipping-method preview for an address — does not require a cart. Pass an optional `cart` summary (subtotal, weight, currency) to evaluate price-based / weight-based rules and free-shipping thresholds. For an already-created cart, prefer `cart.availableShippingMethods(address)` — it reads the cart contents directly.
|
|
5159
|
+
"""
|
|
4593
5160
|
availableShippingMethods(address: ShippingAddressInput!, cart: CartShippingInput): AvailableShippingMethodsPayload!
|
|
4594
5161
|
|
|
4595
5162
|
"""Get live shipping rates from configured carriers"""
|
|
@@ -4640,10 +5207,14 @@ type Query {
|
|
|
4640
5207
|
"""List blog tags"""
|
|
4641
5208
|
blogTags(limit: Int = 50): [BlogTag!]!
|
|
4642
5209
|
|
|
4643
|
-
"""
|
|
5210
|
+
"""
|
|
5211
|
+
Fetch a cart by ID — returns null when the cart does not exist or has already been completed (converted to an order). Use to hydrate the cart state on page load or after a recovery flow.
|
|
5212
|
+
"""
|
|
4644
5213
|
cart(id: ID!): Cart
|
|
4645
5214
|
|
|
4646
|
-
"""
|
|
5215
|
+
"""
|
|
5216
|
+
Preview whether a discount code is currently applicable to a cart — read-only, no cart side effects. Use for inline feedback while the buyer types a code, before calling `cartDiscountCodesUpdate`. Result depends on the cart subtotal (minimum-order rules) so do not cache aggressively: prefer `fetchPolicy: "network-only"` or include `cart.subtotal` in the cache key.
|
|
5217
|
+
"""
|
|
4647
5218
|
cartValidateDiscountCode(cartId: ID!, discountCode: String!): DiscountValidationResult!
|
|
4648
5219
|
|
|
4649
5220
|
"""
|
|
@@ -4728,13 +5299,17 @@ type Query {
|
|
|
4728
5299
|
code: String!
|
|
4729
5300
|
): Currency
|
|
4730
5301
|
|
|
4731
|
-
"""
|
|
5302
|
+
"""
|
|
5303
|
+
The authenticated customer for the current request. The request must carry a valid customer access token (in the `Authorization: Bearer ...` header or an HTTP-only auth cookie). Returns null for anonymous requests.
|
|
5304
|
+
"""
|
|
4732
5305
|
customer: Customer
|
|
4733
5306
|
|
|
4734
5307
|
"""Get available customer groups"""
|
|
4735
5308
|
customerGroups: [CustomerGroup!]
|
|
4736
5309
|
|
|
4737
|
-
"""
|
|
5310
|
+
"""
|
|
5311
|
+
Fetch a single order owned by the authenticated customer. Returns null silently when there is no authenticated customer or the order does not belong to them. For guest order access use `orderByToken` instead.
|
|
5312
|
+
"""
|
|
4738
5313
|
customerOrder(orderId: ID!): Order
|
|
4739
5314
|
|
|
4740
5315
|
"""Estimate points for an order amount"""
|
|
@@ -5402,17 +5977,19 @@ type SearchQuerySuggestion {
|
|
|
5402
5977
|
text: String!
|
|
5403
5978
|
}
|
|
5404
5979
|
|
|
5405
|
-
"""
|
|
5980
|
+
"""
|
|
5981
|
+
One option of a product variant — e.g. `{ name: "Size", value: "Large" }`.
|
|
5982
|
+
"""
|
|
5406
5983
|
type SelectedOption {
|
|
5407
|
-
"""Option name (e.g
|
|
5984
|
+
"""Option name (e.g. "Size", "Color")."""
|
|
5408
5985
|
name: String!
|
|
5409
5986
|
|
|
5410
5987
|
"""
|
|
5411
|
-
|
|
5988
|
+
Stable ID of the option value — useful as a key when rendering variant selectors. Null only for legacy variants not yet migrated to relational option values.
|
|
5412
5989
|
"""
|
|
5413
5990
|
optionValueId: ID
|
|
5414
5991
|
|
|
5415
|
-
"""Option value (e.g
|
|
5992
|
+
"""Option value for this variant (e.g. "Large", "Red")."""
|
|
5416
5993
|
value: String!
|
|
5417
5994
|
}
|
|
5418
5995
|
|
|
@@ -5558,48 +6135,62 @@ enum ShipmentStatus {
|
|
|
5558
6135
|
RETURNED
|
|
5559
6136
|
}
|
|
5560
6137
|
|
|
5561
|
-
"""
|
|
6138
|
+
"""
|
|
6139
|
+
Destination address used to evaluate which shipping methods are available for a cart. Country is required; the rest are optional and improve carrier rate accuracy when provided.
|
|
6140
|
+
"""
|
|
5562
6141
|
input ShippingAddressInput {
|
|
5563
|
-
"""City"""
|
|
6142
|
+
"""City / town."""
|
|
5564
6143
|
city: String
|
|
5565
6144
|
|
|
5566
|
-
"""
|
|
6145
|
+
"""
|
|
6146
|
+
Destination country (ISO 3166-1 alpha-2). Required — drives carrier eligibility and tax/region rules.
|
|
6147
|
+
"""
|
|
5567
6148
|
country: CountryCode!
|
|
5568
6149
|
|
|
5569
|
-
"""
|
|
6150
|
+
"""
|
|
6151
|
+
Buyer email — useful when the shipping carrier needs notification contact details.
|
|
6152
|
+
"""
|
|
5570
6153
|
email: String
|
|
5571
6154
|
|
|
5572
|
-
"""
|
|
6155
|
+
"""Buyer first name."""
|
|
5573
6156
|
firstName: String
|
|
5574
6157
|
|
|
5575
|
-
"""
|
|
6158
|
+
"""Buyer last name."""
|
|
5576
6159
|
lastName: String
|
|
5577
6160
|
|
|
5578
|
-
"""
|
|
6161
|
+
"""Buyer phone number (free-form)."""
|
|
5579
6162
|
phone: String
|
|
5580
6163
|
|
|
5581
|
-
"""Postal / ZIP code"""
|
|
6164
|
+
"""Postal / ZIP code — required by most carriers for accurate rates."""
|
|
5582
6165
|
postalCode: String
|
|
5583
6166
|
|
|
5584
|
-
"""State / province / region"""
|
|
6167
|
+
"""State / province / region."""
|
|
5585
6168
|
state: String
|
|
5586
6169
|
|
|
5587
|
-
"""First line of street address"""
|
|
6170
|
+
"""First line of the street address (street and house / building number)."""
|
|
5588
6171
|
streetLine1: String
|
|
5589
6172
|
}
|
|
5590
6173
|
|
|
5591
|
-
"""
|
|
6174
|
+
"""
|
|
6175
|
+
Shipping carrier associated with a shipping method (e.g. InPost, DPD, DHL).
|
|
6176
|
+
"""
|
|
5592
6177
|
type ShippingCarrier {
|
|
5593
|
-
"""
|
|
6178
|
+
"""
|
|
6179
|
+
Stable carrier identifier. Null when the method does not map to a registered carrier (e.g. local pickup configured by the merchant).
|
|
6180
|
+
"""
|
|
5594
6181
|
id: ID
|
|
5595
6182
|
|
|
5596
|
-
"""
|
|
6183
|
+
"""
|
|
6184
|
+
URL of the carrier logo. Use for the method tile in the shipping picker.
|
|
6185
|
+
"""
|
|
5597
6186
|
logoUrl: String
|
|
5598
6187
|
|
|
5599
|
-
"""Carrier name (e.g
|
|
6188
|
+
"""Carrier display name (e.g. "InPost", "DPD", "DHL")."""
|
|
5600
6189
|
name: String!
|
|
5601
6190
|
|
|
5602
|
-
"""
|
|
6191
|
+
"""
|
|
6192
|
+
Carrier service code as configured by the merchant (e.g. "inpost_paczkomat"). Useful when integrating carrier widgets.
|
|
6193
|
+
"""
|
|
5603
6194
|
serviceCode: String
|
|
5604
6195
|
}
|
|
5605
6196
|
|
|
@@ -5932,7 +6523,9 @@ type StoreAvailabilityEdge {
|
|
|
5932
6523
|
node: StoreAvailability!
|
|
5933
6524
|
}
|
|
5934
6525
|
|
|
5935
|
-
"""
|
|
6526
|
+
"""
|
|
6527
|
+
High-level lifecycle of an order. DRAFT (not yet placed) → PENDING (placed, awaiting confirmation) → CONFIRMED → PROCESSING → COMPLETED. ON_HOLD pauses the order; CANCELLED and EXPIRED are terminal states.
|
|
6528
|
+
"""
|
|
5936
6529
|
enum StorefrontOrderStatus {
|
|
5937
6530
|
CANCELLED
|
|
5938
6531
|
COMPLETED
|
|
@@ -6064,15 +6657,23 @@ type UrlRedirectConnection {
|
|
|
6064
6657
|
pageInfo: PageInfo!
|
|
6065
6658
|
}
|
|
6066
6659
|
|
|
6067
|
-
"""
|
|
6660
|
+
"""
|
|
6661
|
+
A validation or business error returned alongside a mutation result. Surfaced as `userErrors[]`; the cart/order itself is null when the mutation could not be applied. Always branch on `code` for UI behaviour — `message` is translated and locale-dependent.
|
|
6662
|
+
"""
|
|
6068
6663
|
type UserError {
|
|
6069
|
-
"""
|
|
6664
|
+
"""
|
|
6665
|
+
Stable machine-readable code (e.g. `CART_NOT_FOUND`, `NOT_ENOUGH_IN_STOCK`, `INVALID_DISCOUNT_CODE`). The list of possible codes is defined per mutation by `CartErrorCode`, `CustomerErrorCode`, `PaymentErrorCode`, etc.
|
|
6666
|
+
"""
|
|
6070
6667
|
code: String
|
|
6071
6668
|
|
|
6072
|
-
"""
|
|
6669
|
+
"""
|
|
6670
|
+
Path of the input field that caused the error (e.g. `["input", "lines", 0, "quantity"]`). Use to highlight the offending control in a form.
|
|
6671
|
+
"""
|
|
6073
6672
|
field: [String!]
|
|
6074
6673
|
|
|
6075
|
-
"""
|
|
6674
|
+
"""
|
|
6675
|
+
Human-readable error message localised to the request locale (e.g. `Accept-Language`). For display only.
|
|
6676
|
+
"""
|
|
6076
6677
|
message: String!
|
|
6077
6678
|
}
|
|
6078
6679
|
|
|
@@ -6085,16 +6686,18 @@ input VariantOptionFilter {
|
|
|
6085
6686
|
value: String!
|
|
6086
6687
|
}
|
|
6087
6688
|
|
|
6088
|
-
"""
|
|
6689
|
+
"""A weight value paired with its unit."""
|
|
6089
6690
|
type Weight {
|
|
6090
|
-
"""
|
|
6691
|
+
"""Unit of the weight (GRAMS, KILOGRAMS, OUNCES or POUNDS)."""
|
|
6091
6692
|
unit: WeightUnit!
|
|
6092
6693
|
|
|
6093
|
-
"""Weight
|
|
6694
|
+
"""Weight magnitude, interpreted according to `unit`."""
|
|
6094
6695
|
value: Float!
|
|
6095
6696
|
}
|
|
6096
6697
|
|
|
6097
|
-
"""
|
|
6698
|
+
"""
|
|
6699
|
+
Weight unit. GRAMS is the canonical storage unit; KILOGRAMS / OUNCES / POUNDS are display variants for shipping and checkout UI.
|
|
6700
|
+
"""
|
|
6098
6701
|
enum WeightUnit {
|
|
6099
6702
|
GRAMS
|
|
6100
6703
|
KILOGRAMS
|