@doswiftly/storefront-operations 9.1.0 → 11.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/schema.graphql CHANGED
@@ -32,21 +32,6 @@ directive @inContext(
32
32
  preferredLocationId: ID
33
33
  ) on MUTATION | QUERY | SUBSCRIPTION
34
34
 
35
- """Gift card applied to checkout"""
36
- type AppliedGiftCard {
37
- """Amount applied to this checkout"""
38
- appliedAmount: Money!
39
-
40
- """Last 4 characters of the gift card code"""
41
- lastCharacters: String!
42
-
43
- """Masked gift card code for display (e.g., "****-****-****-ABCD")"""
44
- maskedCode: String!
45
-
46
- """Remaining balance on the gift card after this checkout"""
47
- remainingBalance: Money!
48
- }
49
-
50
35
  """Generic attribute"""
51
36
  type Attribute {
52
37
  """Attribute key"""
@@ -709,9 +694,20 @@ type CarrierShippingRate {
709
694
 
710
695
  """Shopping cart"""
711
696
  type Cart implements Node {
697
+ """Gift cards applied do tego koszyka (debited at cartComplete)"""
698
+ appliedGiftCards: [CartAppliedGiftCard!]!
699
+
712
700
  """Cart attributes"""
713
701
  attributes: [CartAttribute!]!
714
702
 
703
+ """Available payment methods dla tego cart (shop-configured providers)"""
704
+ availablePaymentMethods: [PaymentMethod!]!
705
+
706
+ """
707
+ Billing address ustawiony przez cartSetBillingAddress (jeśli różny od shipping)
708
+ """
709
+ billingAddress: MailingAddress
710
+
715
711
  """Buyer identity information"""
716
712
  buyerIdentity: CartBuyerIdentity
717
713
 
@@ -730,6 +726,11 @@ type Cart implements Node {
730
726
  """Applied discount codes"""
731
727
  discountCodes: [CartDiscountCode!]!
732
728
 
729
+ """
730
+ Customer email (D2 — persisted via cartUpdateBuyerIdentity). Convenience accessor; pełen kontekst w buyerIdentity.email.
731
+ """
732
+ email: String
733
+
733
734
  """Unique cart identifier"""
734
735
  id: ID!
735
736
 
@@ -739,9 +740,25 @@ type Cart implements Node {
739
740
  """Cart note"""
740
741
  note: String
741
742
 
743
+ """
744
+ Customer phone (D2). Convenience accessor; pełen kontekst w buyerIdentity.phone.
745
+ """
746
+ phone: String
747
+
742
748
  """Product recommendations based on cart contents"""
743
749
  recommendations(first: Int = 4): CartRecommendations
744
750
 
751
+ """Selected payment method (PayU/Stripe/COD/etc.)"""
752
+ selectedPaymentMethod: PaymentMethod
753
+
754
+ """
755
+ Selected shipping method (D8 term unification — wcześniej selectedShippingRate)
756
+ """
757
+ selectedShippingMethod: CartShippingMethod
758
+
759
+ """Shipping address ustawiony przez cartSetShippingAddress"""
760
+ shippingAddress: MailingAddress
761
+
745
762
  """Total quantity of all items"""
746
763
  totalQuantity: Int!
747
764
 
@@ -763,13 +780,70 @@ type CartAddLinesPayload {
763
780
  warnings: [CartWarning!]!
764
781
  }
765
782
 
766
- """Result of applying discount codes"""
767
- type CartApplyDiscountCodesPayload {
768
- """Updated cart"""
783
+ """Mailing address input dla cart fulfillment mutations"""
784
+ input CartAddressInput {
785
+ """City"""
786
+ city: String!
787
+
788
+ """Company name"""
789
+ company: String
790
+
791
+ """ISO 3166-1 alpha-2 country code"""
792
+ country: CountryCode!
793
+
794
+ """First name"""
795
+ firstName: String
796
+
797
+ """Last name"""
798
+ lastName: String
799
+
800
+ """Phone number"""
801
+ phone: String
802
+
803
+ """Postal / ZIP code"""
804
+ postalCode: String!
805
+
806
+ """State / province"""
807
+ state: String
808
+
809
+ """First line of street address"""
810
+ streetLine1: String!
811
+
812
+ """Second line of street address"""
813
+ streetLine2: String
814
+ }
815
+
816
+ """Gift card applied to a cart"""
817
+ type CartAppliedGiftCard {
818
+ """Amount applied to this cart"""
819
+ appliedAmount: Money!
820
+
821
+ """Last 4 characters of the gift card code"""
822
+ lastCharacters: String!
823
+
824
+ """Masked gift card code for display (np. "****-****-****-ABCD")"""
825
+ maskedCode: String!
826
+
827
+ """Remaining balance on the gift card after this cart"""
828
+ remainingBalance: Money!
829
+ }
830
+
831
+ """Input dla cartApplyGiftCard mutation"""
832
+ input CartApplyGiftCardInput {
833
+ """Cart ID"""
834
+ cartId: ID!
835
+
836
+ """Gift card code (np. ABCD-1234-EFGH-5678)"""
837
+ giftCardCode: String!
838
+ }
839
+
840
+ """Result of applying gift card to cart"""
841
+ type CartApplyGiftCardPayload {
842
+ """Updated cart z appliedGiftCards"""
769
843
  cart: Cart
770
844
 
771
845
  """
772
- User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
846
+ User errors (CartErrorCode-namespaced — np. GIFT_CARD_NOT_FOUND, GIFT_CARD_DEPLETED, GIFT_CARD_UNUSABLE)
773
847
  """
774
848
  userErrors: [UserError!]!
775
849
 
@@ -831,6 +905,35 @@ input CartBuyerIdentityInput {
831
905
  phone: String
832
906
  }
833
907
 
908
+ """Input dla cartComplete mutation — finalizuje cart do Order"""
909
+ input CartCompleteInput {
910
+ """Cart ID do skompletowania"""
911
+ cartId: ID!
912
+
913
+ """
914
+ Optional idempotency key — zapobiega duplicate Orders przy retry / network issue (jeśli null, generowany z cartId + minute timestamp)
915
+ """
916
+ idempotencyKey: String
917
+ }
918
+
919
+ """
920
+ Result of completing cart — transition cart → order (per D4 NO paymentUrl). Cart NIE w payload — po complete koszyk jest CONVERTED/locked.
921
+ """
922
+ type CartCompletePayload {
923
+ """
924
+ Order created z cart. Zapewnia canCreatePayment + paymentMethodType (Phase 4 ResolveFields) dla decyzji storefront przycisku "Zapłać".
925
+ """
926
+ order: Order
927
+
928
+ """
929
+ User errors (CartErrorCode-namespaced — np. INSUFFICIENT_STOCK, SHIPPING_ADDRESS_REQUIRED, PAYMENT_METHOD_REQUIRED, EMAIL_REQUIRED)
930
+ """
931
+ userErrors: [UserError!]!
932
+
933
+ """Non-fatal warnings"""
934
+ warnings: [CartWarning!]!
935
+ }
936
+
834
937
  """Cart cost breakdown"""
835
938
  type CartCost {
836
939
  """Checkout charge amount."""
@@ -875,11 +978,17 @@ input CartCreateInput {
875
978
  """Discount codes to apply"""
876
979
  discountCodes: [String!]
877
980
 
981
+ """Customer email (Phase 3 D2 — merge funkcjonalności checkoutCreate)"""
982
+ email: String
983
+
878
984
  """Initial cart lines"""
879
985
  lines: [CartLineInput!]
880
986
 
881
987
  """Cart note"""
882
988
  note: String
989
+
990
+ """Shipping address (Phase 3 — fulfillment context w jednym round-trip)"""
991
+ shippingAddress: CartAddressInput
883
992
  }
884
993
 
885
994
  """Result of cart creation"""
@@ -914,6 +1023,20 @@ type CartDiscountCode {
914
1023
  isApplicable: Boolean!
915
1024
  }
916
1025
 
1026
+ """Result of applying discount codes"""
1027
+ type CartDiscountCodesUpdatePayload {
1028
+ """Updated cart"""
1029
+ cart: Cart
1030
+
1031
+ """
1032
+ User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1033
+ """
1034
+ userErrors: [UserError!]!
1035
+
1036
+ """Non-fatal warnings"""
1037
+ warnings: [CartWarning!]!
1038
+ }
1039
+
917
1040
  """Single line item in the cart"""
918
1041
  type CartLine {
919
1042
  """Typed customer-filled attribute selections (surcharge + tax snapshot)"""
@@ -1039,34 +1162,29 @@ type CartRecommendations {
1039
1162
  youMayAlsoLike: [ProductRecommendation!]!
1040
1163
  }
1041
1164
 
1042
- """Result of removing cart lines"""
1043
- type CartRemoveLinesPayload {
1044
- """Updated cart"""
1165
+ """Input dla cartRemoveGiftCard mutation"""
1166
+ input CartRemoveGiftCardInput {
1167
+ """Cart ID"""
1168
+ cartId: ID!
1169
+
1170
+ """Gift card code (matching wartości aplikowanej karty)"""
1171
+ giftCardCode: String!
1172
+ }
1173
+
1174
+ """Result of removing gift card from cart"""
1175
+ type CartRemoveGiftCardPayload {
1176
+ """Updated cart (gift card usunięty z appliedGiftCards)"""
1045
1177
  cart: Cart
1046
1178
 
1047
- """
1048
- User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1049
- """
1179
+ """User errors (CartErrorCode-namespaced)"""
1050
1180
  userErrors: [UserError!]!
1051
1181
 
1052
1182
  """Non-fatal warnings"""
1053
1183
  warnings: [CartWarning!]!
1054
1184
  }
1055
1185
 
1056
- """Cart data for shipping calculation"""
1057
- input CartShippingInput {
1058
- """Currency code (ISO 4217)"""
1059
- currencyCode: String
1060
-
1061
- """Cart subtotal in cents"""
1062
- subtotal: Int
1063
-
1064
- """Total weight in grams"""
1065
- totalWeight: Int
1066
- }
1067
-
1068
- """Result of updating cart attributes"""
1069
- type CartUpdateAttributesPayload {
1186
+ """Result of removing cart lines"""
1187
+ type CartRemoveLinesPayload {
1070
1188
  """Updated cart"""
1071
1189
  cart: Cart
1072
1190
 
@@ -1079,13 +1197,22 @@ type CartUpdateAttributesPayload {
1079
1197
  warnings: [CartWarning!]!
1080
1198
  }
1081
1199
 
1082
- """Result of updating buyer identity"""
1083
- type CartUpdateBuyerIdentityPayload {
1084
- """Updated cart"""
1200
+ """Input dla cartSelectPaymentMethod mutation"""
1201
+ input CartSelectPaymentMethodInput {
1202
+ """Cart ID"""
1203
+ cartId: ID!
1204
+
1205
+ """Payment method (integration provider) ID"""
1206
+ paymentMethodId: ID!
1207
+ }
1208
+
1209
+ """Result of selecting payment method on cart"""
1210
+ type CartSelectPaymentMethodPayload {
1211
+ """Updated cart (selectedPaymentMethod populated)"""
1085
1212
  cart: Cart
1086
1213
 
1087
1214
  """
1088
- User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1215
+ User errors (CartErrorCode-namespaced — np. PAYMENT_METHOD_REQUIRED, INVALID_PAYMENT)
1089
1216
  """
1090
1217
  userErrors: [UserError!]!
1091
1218
 
@@ -1093,27 +1220,24 @@ type CartUpdateBuyerIdentityPayload {
1093
1220
  warnings: [CartWarning!]!
1094
1221
  }
1095
1222
 
1096
- """Result of updating cart lines"""
1097
- type CartUpdateLinesPayload {
1098
- """Updated cart"""
1099
- cart: Cart
1223
+ """Input dla cartSelectShippingMethod mutation (D8 term unification)"""
1224
+ input CartSelectShippingMethodInput {
1225
+ """Cart ID"""
1226
+ cartId: ID!
1100
1227
 
1101
1228
  """
1102
- User errors (code is namespaced e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1229
+ Shipping method ID (handle z available shipping methods query). Typed ID! per D8 rename argument rateId → shippingMethodId.
1103
1230
  """
1104
- userErrors: [UserError!]!
1105
-
1106
- """Non-fatal warnings"""
1107
- warnings: [CartWarning!]!
1231
+ shippingMethodId: ID!
1108
1232
  }
1109
1233
 
1110
- """Result of updating cart note"""
1111
- type CartUpdateNotePayload {
1112
- """Updated cart"""
1234
+ """Result of selecting shipping method on cart (D8 term unification)"""
1235
+ type CartSelectShippingMethodPayload {
1236
+ """Updated cart (selectedShippingMethod populated)"""
1113
1237
  cart: Cart
1114
1238
 
1115
1239
  """
1116
- User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1240
+ User errors (CartErrorCode-namespaced — np. SHIPPING_METHOD_REQUIRED, ZIP_CODE_NOT_SUPPORTED)
1117
1241
  """
1118
1242
  userErrors: [UserError!]!
1119
1243
 
@@ -1121,496 +1245,272 @@ type CartUpdateNotePayload {
1121
1245
  warnings: [CartWarning!]!
1122
1246
  }
1123
1247
 
1124
- """Cart warning (non-fatal advisory)"""
1125
- type CartWarning {
1126
- """Typed warning code"""
1127
- code: CartWarningCode!
1128
-
1129
- """Warning message"""
1130
- message: String!
1131
-
1132
- """Target identifier (cart line ID lub field path)"""
1133
- target: String!
1134
- }
1135
-
1136
- """Non-fatal cart warnings"""
1137
- enum CartWarningCode {
1138
- MERCHANDISE_NOT_AVAILABLE
1139
- MERCHANDISE_NOT_ENOUGH_STOCK
1140
- PAYMENTS_AMOUNT_REGION_MISMATCH
1141
- }
1142
-
1143
- """Product category - hierarchical organization"""
1144
- type Category {
1145
- """Child categories"""
1146
- children: [Category!]!
1147
-
1148
- """Category description"""
1149
- description: String
1150
-
1151
- """Unique identifier"""
1152
- id: ID!
1153
-
1154
- """Category image"""
1155
- image: Image
1156
-
1157
- """Depth level in hierarchy (0 = root)"""
1158
- level: Int!
1159
-
1160
- """Category name"""
1161
- name: String!
1162
-
1163
- """Parent category (null for root)"""
1164
- parent: Category
1165
-
1166
- """Full path (e.g., "Electronics/Phones/Smartphones")"""
1167
- path: String!
1168
-
1169
- """Number of products in category"""
1170
- productCount: Int!
1171
-
1172
- """Products in category"""
1173
- products(after: String, first: Float! = 20): CategoryConnection!
1174
-
1175
- """SEO metadata"""
1176
- seo: SEO
1177
-
1178
- """URL-friendly slug"""
1179
- slug: String!
1248
+ """Input dla cartSetBillingAddress mutation"""
1249
+ input CartSetBillingAddressInput {
1250
+ """Billing address (zostawia shipping bez zmian)"""
1251
+ address: CartAddressInput!
1180
1252
 
1181
- """Sort order within parent"""
1182
- sortOrder: Int!
1253
+ """Cart ID"""
1254
+ cartId: ID!
1183
1255
  }
1184
1256
 
1185
- """Paginated category list (Relay Connection)"""
1186
- type CategoryConnection {
1187
- """List of category edges (cursor + node pairs)"""
1188
- edges: [CategoryEdge!]!
1189
-
1190
- """List of category nodes (shortcut without cursor)"""
1191
- nodes: [Category!]!
1257
+ """Result of setting cart billing address"""
1258
+ type CartSetBillingAddressPayload {
1259
+ """Updated cart"""
1260
+ cart: Cart
1192
1261
 
1193
- """Pagination info"""
1194
- pageInfo: PageInfo!
1262
+ """User errors (CartErrorCode-namespaced)"""
1263
+ userErrors: [UserError!]!
1195
1264
 
1196
- """Total count of categories"""
1197
- totalCount: Int!
1265
+ """Non-fatal warnings"""
1266
+ warnings: [CartWarning!]!
1198
1267
  }
1199
1268
 
1200
- """Category edge in connection"""
1201
- type CategoryEdge {
1202
- """Cursor for pagination"""
1203
- cursor: String!
1204
-
1205
- """Category node"""
1206
- node: Category!
1207
- }
1269
+ """Input dla cartSetShippingAddress mutation"""
1270
+ input CartSetShippingAddressInput {
1271
+ """Shipping address"""
1272
+ address: CartAddressInput!
1208
1273
 
1209
- """Category filter"""
1210
- input CategoryFilter {
1211
- """Category ID"""
1212
- id: ID
1274
+ """Cart ID"""
1275
+ cartId: ID!
1213
1276
  }
1214
1277
 
1215
- """Category filter option"""
1216
- type CategoryFilterOption {
1217
- """Category ID"""
1218
- id: ID!
1219
-
1220
- """Nesting level (0 = root)"""
1221
- level: Int!
1222
-
1223
- """Category name"""
1224
- name: String!
1225
-
1226
- """Parent category ID"""
1227
- parentId: ID
1278
+ """Result of setting cart shipping address"""
1279
+ type CartSetShippingAddressPayload {
1280
+ """Updated cart"""
1281
+ cart: Cart
1228
1282
 
1229
- """Number of products in this category"""
1230
- productCount: Int!
1283
+ """
1284
+ User errors (CartErrorCode-namespaced — np. INVALID_ADDRESS, EMAIL_REQUIRED)
1285
+ """
1286
+ userErrors: [UserError!]!
1231
1287
 
1232
- """URL-friendly slug"""
1233
- slug: String!
1288
+ """Non-fatal warnings"""
1289
+ warnings: [CartWarning!]!
1234
1290
  }
1235
1291
 
1236
- """Checkout object"""
1237
- type Checkout {
1238
- """Applied gift cards"""
1239
- appliedGiftCards: [AppliedGiftCard!]!
1240
-
1241
- """Available payment methods (Requirements: R23.1, R23.2)"""
1242
- availablePaymentMethods: [PaymentMethod!]!
1243
-
1244
- """Available shipping rates"""
1245
- availableShippingRates: [ShippingRate!]!
1246
-
1247
- """Billing address"""
1248
- billingAddress: MailingAddress
1249
-
1250
- """Completed order ID"""
1251
- completedOrderId: String
1252
-
1253
- """Cost breakdown (subtotal/total/totalTax/totalShipping/totalDiscounts)"""
1254
- cost: CheckoutCost!
1255
-
1256
- """Created at"""
1257
- createdAt: DateTime!
1258
-
1259
- """Currency code"""
1260
- currencyCode: String!
1261
-
1262
- """Customer ID"""
1263
- customerId: String
1264
-
1265
- """Applied discounts with details"""
1266
- discountApplications: [DiscountApplication!]!
1267
-
1268
- """Applied discount codes"""
1269
- discountCodes: [DiscountCode!]!
1270
-
1271
- """Customer email"""
1272
- email: String
1273
-
1274
- """Checkout ID"""
1275
- id: ID!
1276
-
1277
- """Whether checkout is completed"""
1278
- isCompleted: Boolean!
1279
-
1280
- """Whether checkout is ready for payment"""
1281
- isReady: Boolean!
1282
-
1283
- """Line items"""
1284
- lineItems: [CheckoutLineItem!]!
1285
-
1286
- """Order note"""
1287
- note: String
1288
-
1289
- """Amount due for payment after gift cards applied"""
1290
- paymentDue: Money!
1291
-
1292
- """Customer phone"""
1293
- phone: String
1294
-
1295
- """Selected payment method ID (Requirements: R23.5)"""
1296
- selectedPaymentMethodId: ID
1297
-
1298
- """Shipping address"""
1299
- shippingAddress: MailingAddress
1300
-
1301
- """Selected shipping rate"""
1302
- shippingLine: ShippingRate
1303
-
1304
- """Whether shipping rates are ready"""
1305
- shippingRatesReady: Boolean!
1306
-
1307
- """Tax breakdown"""
1308
- taxLines: [TaxLine!]!
1309
-
1310
- """Total amount covered by gift cards"""
1311
- totalGiftCardAmount: Money!
1312
-
1313
- """Total quantity"""
1314
- totalQuantity: Float!
1292
+ """Cart data for shipping calculation"""
1293
+ input CartShippingInput {
1294
+ """Currency code (ISO 4217)"""
1295
+ currencyCode: String
1315
1296
 
1316
- """Updated at"""
1317
- updatedAt: DateTime!
1297
+ """Cart subtotal in cents"""
1298
+ subtotal: Int
1318
1299
 
1319
- """Checkout URL"""
1320
- webUrl: String!
1300
+ """Total weight in grams"""
1301
+ totalWeight: Int
1321
1302
  }
1322
1303
 
1323
- """Mailing address input"""
1324
- input CheckoutAddressInput {
1325
- """City"""
1326
- city: String!
1327
-
1328
- """Company name"""
1329
- company: String
1330
-
1331
- """ISO 3166-1 alpha-2 country code"""
1332
- country: CountryCode!
1333
-
1334
- """First name"""
1335
- firstName: String
1336
-
1337
- """Last name"""
1338
- lastName: String
1339
-
1340
- """Phone number"""
1341
- phone: String
1342
-
1343
- """Postal / ZIP code"""
1344
- postalCode: String!
1345
-
1346
- """State / province"""
1347
- state: String
1348
-
1349
- """First line of street address"""
1350
- streetLine1: String!
1351
-
1352
- """Second line of street address"""
1353
- streetLine2: String
1354
- }
1304
+ """Shipping method selected on a cart (D8 term unification)"""
1305
+ type CartShippingMethod {
1306
+ """Shipping method (rate) handle"""
1307
+ handle: ID!
1355
1308
 
1356
- """Checkout discount code apply payload"""
1357
- type CheckoutApplyDiscountCodePayload {
1358
- """Updated checkout"""
1359
- checkout: Checkout
1309
+ """Shipping cost"""
1310
+ price: Money!
1360
1311
 
1361
- """
1362
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1363
- """
1364
- userErrors: [UserError!]!
1312
+ """Display title (e.g. "DPD Standard 2 dni")"""
1313
+ title: String!
1365
1314
  }
1366
1315
 
1367
- """Checkout gift card apply payload"""
1368
- type CheckoutApplyGiftCardPayload {
1369
- """Updated checkout"""
1370
- checkout: Checkout
1316
+ """Result of updating cart attributes"""
1317
+ type CartUpdateAttributesPayload {
1318
+ """Updated cart"""
1319
+ cart: Cart
1371
1320
 
1372
1321
  """
1373
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1322
+ User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1374
1323
  """
1375
1324
  userErrors: [UserError!]!
1376
- }
1377
1325
 
1378
- """Checkout complete input"""
1379
- input CheckoutCompleteInput {
1380
- """Idempotency key for duplicate prevention"""
1381
- idempotencyKey: String
1382
-
1383
- """Payment method ID"""
1384
- paymentMethodId: String
1326
+ """Non-fatal warnings"""
1327
+ warnings: [CartWarning!]!
1385
1328
  }
1386
1329
 
1387
- """Checkout complete payload"""
1388
- type CheckoutCompletePayload {
1389
- """Completed checkout"""
1390
- checkout: Checkout
1391
-
1392
- """Created order (if checkout successful)"""
1393
- order: Order
1394
-
1395
- """Payment redirect URL (if payment required)"""
1396
- paymentUrl: String
1330
+ """Result of updating buyer identity"""
1331
+ type CartUpdateBuyerIdentityPayload {
1332
+ """Updated cart"""
1333
+ cart: Cart
1397
1334
 
1398
1335
  """
1399
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1336
+ User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1400
1337
  """
1401
1338
  userErrors: [UserError!]!
1402
- }
1403
1339
 
1404
- """Checkout cost breakdown"""
1405
- type CheckoutCost {
1406
- """Subtotal before discounts and taxes"""
1407
- subtotal: Money!
1408
-
1409
- """Total amount (after discounts, including taxes and shipping)"""
1410
- total: Money!
1411
-
1412
- """Total discount amount"""
1413
- totalDiscounts: Money!
1340
+ """Non-fatal warnings"""
1341
+ warnings: [CartWarning!]!
1342
+ }
1414
1343
 
1415
- """Total shipping cost"""
1416
- totalShipping: Money!
1344
+ """
1345
+ Input dla cartUpdateGiftCardRecipient mutation (gift card line item recipient info)
1346
+ """
1347
+ input CartUpdateGiftCardRecipientInput {
1348
+ """Cart ID"""
1349
+ cartId: ID!
1417
1350
 
1418
- """Total tax amount"""
1419
- totalTax: Money!
1420
- }
1351
+ """Cart line item ID (musi reprezentować gift card SKU)"""
1352
+ lineItemId: ID!
1421
1353
 
1422
- """Checkout create input"""
1423
- input CheckoutCreateInput {
1424
- """Existing cart ID to convert to checkout"""
1425
- cartId: ID
1354
+ """Personalised message dla recipienta (max 500 znaków)"""
1355
+ message: String
1426
1356
 
1427
- """Customer access token"""
1428
- customerAccessToken: String
1357
+ """Recipient email (gift card delivery target)"""
1358
+ recipientEmail: String
1429
1359
 
1430
- """Customer email"""
1431
- email: String
1360
+ """Recipient display name"""
1361
+ recipientName: String
1362
+ }
1432
1363
 
1433
- """Line items"""
1434
- lineItems: [CheckoutLineItemInput!]
1364
+ """Result of updating gift card recipient info on cart line item"""
1365
+ type CartUpdateGiftCardRecipientPayload {
1366
+ """Updated cart"""
1367
+ cart: Cart
1435
1368
 
1436
- """Note"""
1437
- note: String
1369
+ """User errors (CartErrorCode-namespaced)"""
1370
+ userErrors: [UserError!]!
1438
1371
 
1439
- """Shipping address"""
1440
- shippingAddress: CheckoutAddressInput
1372
+ """Non-fatal warnings"""
1373
+ warnings: [CartWarning!]!
1441
1374
  }
1442
1375
 
1443
- """Checkout create payload"""
1444
- type CheckoutCreatePayload {
1445
- """Created checkout"""
1446
- checkout: Checkout
1376
+ """Result of updating cart lines"""
1377
+ type CartUpdateLinesPayload {
1378
+ """Updated cart"""
1379
+ cart: Cart
1447
1380
 
1448
1381
  """
1449
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1382
+ User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1450
1383
  """
1451
1384
  userErrors: [UserError!]!
1452
- }
1453
-
1454
- """Gift card recipient input"""
1455
- input CheckoutGiftCardRecipientInput {
1456
- """Checkout ID"""
1457
- checkoutId: ID!
1458
1385
 
1459
- """Line item ID to attach recipient info to"""
1460
- lineItemId: ID!
1386
+ """Non-fatal warnings"""
1387
+ warnings: [CartWarning!]!
1388
+ }
1461
1389
 
1462
- """Personal message to recipient"""
1463
- message: String
1390
+ """Result of updating cart note"""
1391
+ type CartUpdateNotePayload {
1392
+ """Updated cart"""
1393
+ cart: Cart
1464
1394
 
1465
- """Recipient email address"""
1466
- recipientEmail: String
1395
+ """
1396
+ User errors (code is namespaced — e.g. CART_NOT_FOUND, CART_LINE_NOT_FOUND)
1397
+ """
1398
+ userErrors: [UserError!]!
1467
1399
 
1468
- """Recipient name"""
1469
- recipientName: String
1400
+ """Non-fatal warnings"""
1401
+ warnings: [CartWarning!]!
1470
1402
  }
1471
1403
 
1472
- """Checkout line item"""
1473
- type CheckoutLineItem {
1474
- """Line item ID"""
1475
- id: ID!
1404
+ """Cart warning (non-fatal advisory)"""
1405
+ type CartWarning {
1406
+ """Typed warning code"""
1407
+ code: CartWarningCode!
1476
1408
 
1477
- """Product image"""
1478
- image: Image
1409
+ """Warning message"""
1410
+ message: String!
1479
1411
 
1480
- """Price per unit"""
1481
- pricePerUnit: Money!
1412
+ """Target identifier (cart line ID lub field path)"""
1413
+ target: String!
1414
+ }
1482
1415
 
1483
- """Product ID"""
1484
- productId: String
1416
+ """Non-fatal cart warnings"""
1417
+ enum CartWarningCode {
1418
+ MERCHANDISE_NOT_AVAILABLE
1419
+ MERCHANDISE_NOT_ENOUGH_STOCK
1420
+ PAYMENTS_AMOUNT_REGION_MISMATCH
1421
+ }
1485
1422
 
1486
- """Quantity"""
1487
- quantity: Int!
1423
+ """Product category - hierarchical organization"""
1424
+ type Category {
1425
+ """Child categories"""
1426
+ children: [Category!]!
1488
1427
 
1489
- """SKU"""
1490
- sku: String
1428
+ """Category description"""
1429
+ description: String
1491
1430
 
1492
- """Product title"""
1493
- title: String!
1431
+ """Unique identifier"""
1432
+ id: ID!
1494
1433
 
1495
- """Total price for this line"""
1496
- total: Money!
1434
+ """Category image"""
1435
+ image: Image
1497
1436
 
1498
- """Product variant"""
1499
- variant: ProductVariant
1437
+ """Depth level in hierarchy (0 = root)"""
1438
+ level: Int!
1500
1439
 
1501
- """Product variant ID"""
1502
- variantId: String
1440
+ """Category name"""
1441
+ name: String!
1503
1442
 
1504
- """Variant title"""
1505
- variantTitle: String
1506
- }
1443
+ """Parent category (null for root)"""
1444
+ parent: Category
1507
1445
 
1508
- """Checkout line item input"""
1509
- input CheckoutLineItemInput {
1510
- """Quantity"""
1511
- quantity: Float!
1446
+ """Full path (e.g., "Electronics/Phones/Smartphones")"""
1447
+ path: String!
1512
1448
 
1513
- """Product variant ID"""
1514
- variantId: ID!
1515
- }
1449
+ """Number of products in category"""
1450
+ productCount: Int!
1516
1451
 
1517
- """Checkout discount code remove payload"""
1518
- type CheckoutRemoveDiscountCodePayload {
1519
- """Updated checkout"""
1520
- checkout: Checkout
1452
+ """Products in category"""
1453
+ products(after: String, first: Float! = 20): CategoryConnection!
1521
1454
 
1522
- """
1523
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1524
- """
1525
- userErrors: [UserError!]!
1526
- }
1455
+ """SEO metadata"""
1456
+ seo: SEO
1527
1457
 
1528
- """Checkout gift card remove payload"""
1529
- type CheckoutRemoveGiftCardPayload {
1530
- """Updated checkout"""
1531
- checkout: Checkout
1458
+ """URL-friendly slug"""
1459
+ slug: String!
1532
1460
 
1533
- """
1534
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1535
- """
1536
- userErrors: [UserError!]!
1461
+ """Sort order within parent"""
1462
+ sortOrder: Int!
1537
1463
  }
1538
1464
 
1539
- """Checkout payment method update payload"""
1540
- type CheckoutSelectPaymentMethodPayload {
1541
- """Updated checkout"""
1542
- checkout: Checkout
1465
+ """Paginated category list (Relay Connection)"""
1466
+ type CategoryConnection {
1467
+ """List of category edges (cursor + node pairs)"""
1468
+ edges: [CategoryEdge!]!
1543
1469
 
1544
- """
1545
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1546
- """
1547
- userErrors: [UserError!]!
1548
- }
1470
+ """List of category nodes (shortcut without cursor)"""
1471
+ nodes: [Category!]!
1549
1472
 
1550
- """Checkout shipping line update payload"""
1551
- type CheckoutSelectShippingRatePayload {
1552
- """Updated checkout"""
1553
- checkout: Checkout
1473
+ """Pagination info"""
1474
+ pageInfo: PageInfo!
1554
1475
 
1555
- """
1556
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1557
- """
1558
- userErrors: [UserError!]!
1476
+ """Total count of categories"""
1477
+ totalCount: Int!
1559
1478
  }
1560
1479
 
1561
- """Checkout billing address update payload"""
1562
- type CheckoutUpdateBillingAddressPayload {
1563
- """Updated checkout"""
1564
- checkout: Checkout
1480
+ """Category edge in connection"""
1481
+ type CategoryEdge {
1482
+ """Cursor for pagination"""
1483
+ cursor: String!
1565
1484
 
1566
- """
1567
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1568
- """
1569
- userErrors: [UserError!]!
1485
+ """Category node"""
1486
+ node: Category!
1570
1487
  }
1571
1488
 
1572
- """Checkout email update payload"""
1573
- type CheckoutUpdateEmailPayload {
1574
- """Updated checkout"""
1575
- checkout: Checkout
1576
-
1577
- """
1578
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1579
- """
1580
- userErrors: [UserError!]!
1489
+ """Category filter"""
1490
+ input CategoryFilter {
1491
+ """Category ID"""
1492
+ id: ID
1581
1493
  }
1582
1494
 
1583
- """Checkout gift card recipient update payload"""
1584
- type CheckoutUpdateGiftCardRecipientPayload {
1585
- """Updated checkout"""
1586
- checkout: Checkout
1495
+ """Category filter option"""
1496
+ type CategoryFilterOption {
1497
+ """Category ID"""
1498
+ id: ID!
1587
1499
 
1588
- """
1589
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1590
- """
1591
- userErrors: [UserError!]!
1592
- }
1500
+ """Nesting level (0 = root)"""
1501
+ level: Int!
1593
1502
 
1594
- """Checkout shipping address update payload"""
1595
- type CheckoutUpdateShippingAddressPayload {
1596
- """Updated checkout"""
1597
- checkout: Checkout
1503
+ """Category name"""
1504
+ name: String!
1598
1505
 
1599
- """
1600
- User errors (code is namespaced — e.g. CHECKOUT_NOT_FOUND, CHECKOUT_PAYMENT_FAILED)
1601
- """
1602
- userErrors: [UserError!]!
1603
- }
1506
+ """Parent category ID"""
1507
+ parentId: ID
1604
1508
 
1605
- """Checkout discount code validation result"""
1606
- type CheckoutValidateDiscountCodePayload {
1607
- """Validation result"""
1608
- result: DiscountValidationResult!
1509
+ """Number of products in this category"""
1510
+ productCount: Int!
1609
1511
 
1610
- """
1611
- User errors (for checkout-level issues; code is namespaced — e.g. CHECKOUT_NOT_FOUND)
1612
- """
1613
- userErrors: [UserError!]!
1512
+ """URL-friendly slug"""
1513
+ slug: String!
1614
1514
  }
1615
1515
 
1616
1516
  """Collection - curated group of products"""
@@ -2362,63 +2262,6 @@ type DeliveryEstimate {
2362
2262
  minDays: Int
2363
2263
  }
2364
2264
 
2365
- """Item affected by a discount (especially BXGY)"""
2366
- type DiscountAffectedItem {
2367
- """Discounted price per unit"""
2368
- discountedPrice: Money!
2369
-
2370
- """Whether this item is "free" in BXGY"""
2371
- isFreeItem: Boolean!
2372
-
2373
- """Original price per unit"""
2374
- originalPrice: Money!
2375
-
2376
- """Product ID"""
2377
- productId: ID!
2378
-
2379
- """Quantity affected by discount"""
2380
- quantity: Int!
2381
-
2382
- """Total savings for this item"""
2383
- savings: Money!
2384
-
2385
- """Product/variant title"""
2386
- title: String!
2387
-
2388
- """Variant ID"""
2389
- variantId: ID
2390
- }
2391
-
2392
- """Applied discount"""
2393
- type DiscountApplication {
2394
- """Items affected by this discount (for BXGY type)"""
2395
- affectedItems: [DiscountAffectedItem!]
2396
-
2397
- """Buy quantity for BXGY (e.g., 2 in "Buy 2 Get 1")"""
2398
- buyQuantity: Int
2399
-
2400
- """Discount code"""
2401
- code: String!
2402
-
2403
- """Discount percentage on "get" items (100 = free)"""
2404
- getDiscountPercent: Float
2405
-
2406
- """Get quantity for BXGY (e.g., 1 in "Buy 2 Get 1")"""
2407
- getQuantity: Int
2408
-
2409
- """Whether discount is applicable"""
2410
- isApplicable: Boolean!
2411
-
2412
- """Discount title/description"""
2413
- title: String
2414
-
2415
- """Type of discount"""
2416
- type: DiscountApplicationType
2417
-
2418
- """Discount amount"""
2419
- value: Money
2420
- }
2421
-
2422
2265
  """Type of discount being applied"""
2423
2266
  enum DiscountApplicationType {
2424
2267
  BUY_X_GET_Y
@@ -2427,15 +2270,6 @@ enum DiscountApplicationType {
2427
2270
  PERCENTAGE
2428
2271
  }
2429
2272
 
2430
- """Discount code applied to checkout"""
2431
- type DiscountCode {
2432
- """Discount code string"""
2433
- code: String!
2434
-
2435
- """Whether the code is currently applicable"""
2436
- isApplicable: Boolean!
2437
- }
2438
-
2439
2273
  """Error codes for discount validation"""
2440
2274
  enum DiscountErrorCode {
2441
2275
  CUSTOMER_NOT_ELIGIBLE
@@ -3560,71 +3394,55 @@ type Mutation {
3560
3394
  """Add lines to cart"""
3561
3395
  cartAddLines(id: ID!, lines: [CartLineInput!]!): CartAddLinesPayload!
3562
3396
 
3563
- """Apply discount codes"""
3564
- cartApplyDiscountCodes(discountCodes: [String!]!, id: ID!): CartApplyDiscountCodesPayload!
3397
+ """Apply gift card to cart"""
3398
+ cartApplyGiftCard(input: CartApplyGiftCardInput!): CartApplyGiftCardPayload!
3399
+
3400
+ """
3401
+ Complete cart → create Order (D6 — delegates do CartCompletionOrchestrator.processCart)
3402
+ """
3403
+ cartComplete(input: CartCompleteInput!): CartCompletePayload!
3565
3404
 
3566
3405
  """Create new cart"""
3567
3406
  cartCreate(input: CartCreateInput): CartCreatePayload!
3568
3407
 
3408
+ """Apply discount codes"""
3409
+ cartDiscountCodesUpdate(discountCodes: [String!]!, id: ID!): CartDiscountCodesUpdatePayload!
3410
+
3411
+ """Remove gift card from cart"""
3412
+ cartRemoveGiftCard(input: CartRemoveGiftCardInput!): CartRemoveGiftCardPayload!
3413
+
3569
3414
  """Remove lines from cart"""
3570
3415
  cartRemoveLines(id: ID!, lineIds: [ID!]!): CartRemoveLinesPayload!
3571
3416
 
3417
+ """Select payment method on cart"""
3418
+ cartSelectPaymentMethod(input: CartSelectPaymentMethodInput!): CartSelectPaymentMethodPayload!
3419
+
3420
+ """
3421
+ Select shipping method on cart (D8 term unification — wcześniej cartSelectShippingRate)
3422
+ """
3423
+ cartSelectShippingMethod(input: CartSelectShippingMethodInput!): CartSelectShippingMethodPayload!
3424
+
3425
+ """Set billing address on cart"""
3426
+ cartSetBillingAddress(input: CartSetBillingAddressInput!): CartSetBillingAddressPayload!
3427
+
3428
+ """Set shipping address on cart"""
3429
+ cartSetShippingAddress(input: CartSetShippingAddressInput!): CartSetShippingAddressPayload!
3430
+
3572
3431
  """Update cart attributes"""
3573
3432
  cartUpdateAttributes(attributes: [CartAttributeInput!]!, id: ID!): CartUpdateAttributesPayload!
3574
3433
 
3575
3434
  """Update buyer identity"""
3576
3435
  cartUpdateBuyerIdentity(buyerIdentity: CartBuyerIdentityInput!, id: ID!): CartUpdateBuyerIdentityPayload!
3577
3436
 
3437
+ """Set recipient info on gift card line item (personalised delivery)"""
3438
+ cartUpdateGiftCardRecipient(input: CartUpdateGiftCardRecipientInput!): CartUpdateGiftCardRecipientPayload!
3439
+
3578
3440
  """Update cart lines"""
3579
3441
  cartUpdateLines(id: ID!, lines: [CartLineUpdateInput!]!): CartUpdateLinesPayload!
3580
3442
 
3581
3443
  """Update cart note"""
3582
3444
  cartUpdateNote(id: ID!, note: String!): CartUpdateNotePayload!
3583
3445
 
3584
- """Apply discount code to checkout"""
3585
- checkoutApplyDiscountCode(discountCode: String!, id: ID!): CheckoutApplyDiscountCodePayload!
3586
-
3587
- """Apply gift card to checkout"""
3588
- checkoutApplyGiftCard(giftCardCode: String!, id: ID!): CheckoutApplyGiftCardPayload!
3589
-
3590
- """Complete checkout and create order"""
3591
- checkoutComplete(id: ID!, input: CheckoutCompleteInput): CheckoutCompletePayload!
3592
-
3593
- """Create new checkout"""
3594
- checkoutCreate(input: CheckoutCreateInput!): CheckoutCreatePayload!
3595
-
3596
- """Remove discount code from checkout"""
3597
- checkoutRemoveDiscountCode(discountCode: String!, id: ID!): CheckoutRemoveDiscountCodePayload!
3598
-
3599
- """Remove gift card from checkout"""
3600
- checkoutRemoveGiftCard(giftCardCode: String!, id: ID!): CheckoutRemoveGiftCardPayload!
3601
-
3602
- """Select payment method for checkout"""
3603
- checkoutSelectPaymentMethod(id: ID!, paymentMethodId: ID!): CheckoutSelectPaymentMethodPayload!
3604
-
3605
- """Select shipping rate for checkout"""
3606
- checkoutSelectShippingRate(
3607
- id: ID!
3608
-
3609
- """Shipping rate handle/id from checkout.availableShippingRates"""
3610
- rateId: String!
3611
- ): CheckoutSelectShippingRatePayload!
3612
-
3613
- """Update checkout billing address"""
3614
- checkoutUpdateBillingAddress(billingAddress: CheckoutAddressInput!, id: ID!): CheckoutUpdateBillingAddressPayload!
3615
-
3616
- """Update checkout email"""
3617
- checkoutUpdateEmail(email: String!, id: ID!): CheckoutUpdateEmailPayload!
3618
-
3619
- """Update gift card recipient info for a line item"""
3620
- checkoutUpdateGiftCardRecipient(input: CheckoutGiftCardRecipientInput!): CheckoutUpdateGiftCardRecipientPayload!
3621
-
3622
- """Update checkout shipping address"""
3623
- checkoutUpdateShippingAddress(id: ID!, shippingAddress: CheckoutAddressInput!): CheckoutUpdateShippingAddressPayload!
3624
-
3625
- """Validate discount code without applying"""
3626
- checkoutValidateDiscountCode(discountCode: String!, id: ID!): CheckoutValidateDiscountCodePayload!
3627
-
3628
3446
  """
3629
3447
  Activate customer account using raw activation token (admin-created flow)
3630
3448
  """
@@ -3747,6 +3565,9 @@ enum NodeType {
3747
3565
 
3748
3566
  """Customer order summary"""
3749
3567
  type Order implements Node {
3568
+ """Czy storefront może zainicjować płatność dla tego order"""
3569
+ canCreatePayment: Boolean!
3570
+
3750
3571
  """When order was cancelled"""
3751
3572
  cancelledAt: DateTime
3752
3573
 
@@ -3774,6 +3595,9 @@ type Order implements Node {
3774
3595
  """Order number (human-readable)"""
3775
3596
  orderNumber: String!
3776
3597
 
3598
+ """Kategoria payment method zmapowana z provider code"""
3599
+ paymentMethodType: PaymentMethodType!
3600
+
3777
3601
  """Payment status"""
3778
3602
  paymentStatus: OrderPaymentStatus!
3779
3603
 
@@ -3925,14 +3749,11 @@ type PaymentMethod {
3925
3749
 
3926
3750
  """Type of payment method"""
3927
3751
  enum PaymentMethodType {
3928
- APPLE_PAY
3929
3752
  BANK_TRANSFER
3930
3753
  BLIK
3931
3754
  CARD
3932
3755
  CASH_ON_DELIVERY
3933
- GOOGLE_PAY
3934
3756
  OTHER
3935
- PAYPAL
3936
3757
  }
3937
3758
 
3938
3759
  """Shop payment configuration (currency, country, providers)"""
@@ -4637,6 +4458,9 @@ type Query {
4637
4458
  """Get cart by ID"""
4638
4459
  cart(id: ID!): Cart
4639
4460
 
4461
+ """Validate discount code preview (read-only, no cart side effects)"""
4462
+ cartValidateDiscountCode(cartId: ID!, discountCode: String!): DiscountValidationResult!
4463
+
4640
4464
  """
4641
4465
  Lista kategorii (Relay Connection) z opcjonalnym filtrem rootsOnly/parentId
4642
4466
  """
@@ -4671,9 +4495,6 @@ type Query {
4671
4495
  slug: String
4672
4496
  ): Category
4673
4497
 
4674
- """Get checkout by ID"""
4675
- checkout(id: ID!): Checkout
4676
-
4677
4498
  """Get single collection"""
4678
4499
  collection(
4679
4500
  """Collection handle (slug)"""
@@ -5584,18 +5405,6 @@ type ShippingCarrier {
5584
5405
  serviceCode: String
5585
5406
  }
5586
5407
 
5587
- """Available shipping rate"""
5588
- type ShippingRate {
5589
- """Shipping rate ID"""
5590
- handle: ID!
5591
-
5592
- """Shipping price"""
5593
- price: Money!
5594
-
5595
- """Shipping rate title"""
5596
- title: String!
5597
- }
5598
-
5599
5408
  """Shop information"""
5600
5409
  type Shop {
5601
5410
  """Shop physical address"""
@@ -5925,18 +5734,6 @@ type SubscribeToMarketingPayload {
5925
5734
  userErrors: [UserError!]!
5926
5735
  }
5927
5736
 
5928
- """Tax line item"""
5929
- type TaxLine {
5930
- """Tax amount"""
5931
- price: Money!
5932
-
5933
- """Tax rate as decimal (e.g., 0.23 for 23%)"""
5934
- rate: Float!
5935
-
5936
- """Tax name"""
5937
- title: String!
5938
- }
5939
-
5940
5737
  """Custom tier benefit"""
5941
5738
  type TierBenefit {
5942
5739
  """Benefit description"""