@doswiftly/storefront-operations 10.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +42 -0
- package/README.md +2 -0
- package/fragments.graphql +12 -0
- package/llms-full.txt +48 -6
- package/mutations.graphql +12 -3
- package/operations.json +30 -3
- package/package.json +1 -1
- package/schema.graphql +69 -4
package/AGENTS.md
CHANGED
|
@@ -27,10 +27,10 @@ consumer's `codegen.ts` references this package's `.graphql` files as
|
|
|
27
27
|
live in the consumer's repo.
|
|
28
28
|
|
|
29
29
|
<!-- AUTOGEN:STATS:BEGIN — auto-regenerated, do not edit by hand -->
|
|
30
|
-
- **Schema version**:
|
|
30
|
+
- **Schema version**: 11.1.0
|
|
31
31
|
- **Queries**: 48
|
|
32
|
-
- **Mutations**:
|
|
33
|
-
- **Fragments**:
|
|
32
|
+
- **Mutations**: 40
|
|
33
|
+
- **Fragments**: 100
|
|
34
34
|
<!-- AUTOGEN:STATS:END -->
|
|
35
35
|
|
|
36
36
|
## Loading order
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 11.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c2e80b2: Add `paymentCreate` — initiate a payment session for a completed order.
|
|
8
|
+
|
|
9
|
+
After `cartComplete` returns an order, call `paymentCreate` (when `order.canCreatePayment` is `true`) to start the payment. Orders with an offline payment method (cash on delivery, manual bank transfer) skip this step. The returned `PaymentSession` is flow-aware — branch on `session.flow`:
|
|
10
|
+
- `ONLINE_REDIRECT` → redirect the browser to `session.redirectUrl`
|
|
11
|
+
- `ONLINE_EMBEDDED` → render an in-page widget with `session.clientSecret`
|
|
12
|
+
- `INSTANT_DIRECT` → already settled, read `session.status`
|
|
13
|
+
|
|
14
|
+
**`@doswiftly/storefront-operations`** — new `PaymentCreate` mutation and `PaymentSession` fragment.
|
|
15
|
+
|
|
16
|
+
**`@doswiftly/storefront-sdk`** — new `CartClient.createPayment(input)` method, plus the `PaymentSession`, `PaymentCreateInput`, `PaymentInitiationFlow` and `PaymentErrorCode` types.
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
const { order } = await cartClient.complete({ cartId });
|
|
20
|
+
if (order.canCreatePayment) {
|
|
21
|
+
const session = await cartClient.createPayment({
|
|
22
|
+
orderId: order.id,
|
|
23
|
+
returnUrl: "https://my-shop.example/checkout/complete",
|
|
24
|
+
});
|
|
25
|
+
if (session.flow === "ONLINE_REDIRECT") {
|
|
26
|
+
window.location.href = session.redirectUrl!;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`paymentCreate` is idempotent on the order — re-calling returns the existing still-valid session instead of creating a duplicate, so it is safe to retry. `returnUrl` / `cancelUrl` are optional and, when supplied, must point to a verified domain of the shop. The call throws on validation/business errors — inspect `error.userErrors[0].code` (`PaymentErrorCode`): `ORDER_NOT_FOUND`, `ORDER_ALREADY_PAID`, `ORDER_NOT_PAYABLE`, `PAYMENT_PROVIDER_NOT_CONFIGURED`, `RETURN_URL_INVALID`, `INVALID_ID_FORMAT`, `PAYMENT_FAILED`.
|
|
32
|
+
|
|
33
|
+
## 11.0.0
|
|
34
|
+
|
|
35
|
+
### Major Changes
|
|
36
|
+
|
|
37
|
+
- c1faee7: **Breaking:** `cartComplete` no longer returns `cart` in its payload.
|
|
38
|
+
|
|
39
|
+
After completion the cart is converted and locked — returning it meant an extra server round-trip for a dead resource. The mutation payload (and `cartClient.complete()`) now returns only `{ order, warnings }`. The `order` is the meaningful result of completion and carries `canCreatePayment` + `paymentMethodType` for the post-completion payment flow.
|
|
40
|
+
|
|
41
|
+
**Migration:**
|
|
42
|
+
- `cartClient.complete()` now returns `{ order, warnings }` — remove any use of `result.cart`. After completion, clear your local cart state and work with `result.order`.
|
|
43
|
+
- If you query `cartComplete` directly, drop the `cart { ... }` selection — the field no longer exists on `CartCompletePayload`.
|
|
44
|
+
|
|
3
45
|
## 10.0.0
|
|
4
46
|
|
|
5
47
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -381,6 +381,7 @@ full executable body of each operation.
|
|
|
381
381
|
| `CartRemoveGiftCard` | Removes a gift card from the applied list and recalculates FIFO `appliedAmount` for the remaining cards. Since gift card balances are only debited at `cartComplete`, removing before completion has no effect on the underlying gift card balance. |
|
|
382
382
|
| `CartUpdateGiftCardRecipient` | Sets per-line-item recipient details (name, email, message) for digital gift card products in the cart (line items where the variant represents a gift-card SKU). Required before `cartComplete` for any line item with a gift-card variant. Recipient details propagated to the resulting order. |
|
|
383
383
|
| `CartComplete` | Finalizes the cart — creates the `Order`, deducts gift cards, sends order-created confirmation — all atomically. **Idempotent on `idempotencyKey`** (auto-generated from cartId + minute timestamp if caller omits it). Returns `order` field after completion. Note: `paymentUrl` is intentionally NOT in payload — for hosted gateways (online providers) the storefront calls a separate `paymentCreate` mutation after this returns (check `order.canCreatePayment` first). Errors: `EMAIL_REQUIRED`, `SHIPPING_ADDRESS_REQUIRED`, `SHIPPING_METHOD_REQUIRED`, `PAYMENT_METHOD_REQUIRED`, `INSUFFICIENT_STOCK`, `ALREADY_COMPLETED`. |
|
|
384
|
+
| `PaymentCreate` | Initiates a payment session for an order created by `cartComplete` — call this when `order.canCreatePayment` is `true` (orders with an offline payment method like cash-on-delivery skip this step). `orderId` is required; `returnUrl` / `cancelUrl` are optional and, when supplied, must point to a verified domain of the shop (open-redirect protected). Branch on the returned `payment.flow`: `ONLINE_REDIRECT` → redirect to `payment.redirectUrl`, `ONLINE_EMBEDDED` → render a widget with `payment.clientSecret`, `INSTANT_DIRECT` → already settled, read `payment.status`. Public, but ownership-checked — an authenticated customer cannot pay for another customer's order. **Idempotent** — calling it again for the same order returns the existing still-valid session instead of creating a duplicate (safe to retry). Rate limit: 5 requests/minute. `userErrors[].code`: `ORDER_NOT_FOUND`, `ORDER_ALREADY_PAID`, `ORDER_NOT_PAYABLE`, `PAYMENT_PROVIDER_NOT_CONFIGURED`, `RETURN_URL_INVALID`, `INVALID_ID_FORMAT`, `PAYMENT_FAILED`. |
|
|
384
385
|
|
|
385
386
|
#### Return Mutations
|
|
386
387
|
|
|
@@ -503,6 +504,7 @@ full executable body of each operation.
|
|
|
503
504
|
| --- | --- | --- |
|
|
504
505
|
| `PaymentMethod` | `PaymentMethod` | Single payment method enabled for the shop — type (CARD / BANK_TRANSFER / BLIK / PAYPAL / APPLE_PAY / GOOGLE_PAY / CASH_ON_DELIVERY / OTHER), provider, icon, supported currencies, default flag, sort position. Spread on the checkout payment step. |
|
|
505
506
|
| `AvailablePaymentMethods` | `AvailablePaymentMethods` | Active payment methods list with the merchant's `defaultMethod`. Returned by the `availablePaymentMethods` query. |
|
|
507
|
+
| `PaymentSession` | `PaymentSession` | Initiated payment session for an order — returned by the `paymentCreate` mutation. Branch on `flow`: `ONLINE_REDIRECT` (redirect the browser to `redirectUrl`), `ONLINE_EMBEDDED` (render an in-page widget with `clientSecret`), `INSTANT_DIRECT` (settled with no UI — read `status`). `expiresAt` is ISO 8601, present when the gateway session has a TTL. |
|
|
506
508
|
|
|
507
509
|
#### Shipments / Tracking
|
|
508
510
|
|
package/fragments.graphql
CHANGED
|
@@ -672,6 +672,18 @@ fragment AvailablePaymentMethods on AvailablePaymentMethods {
|
|
|
672
672
|
}
|
|
673
673
|
}
|
|
674
674
|
|
|
675
|
+
# Initiated payment session for an order — returned by the `paymentCreate` mutation. Branch on `flow`: `ONLINE_REDIRECT` (redirect the browser to `redirectUrl`), `ONLINE_EMBEDDED` (render an in-page widget with `clientSecret`), `INSTANT_DIRECT` (settled with no UI — read `status`). `expiresAt` is ISO 8601, present when the gateway session has a TTL.
|
|
676
|
+
fragment PaymentSession on PaymentSession {
|
|
677
|
+
id
|
|
678
|
+
orderId
|
|
679
|
+
flow
|
|
680
|
+
provider
|
|
681
|
+
redirectUrl
|
|
682
|
+
clientSecret
|
|
683
|
+
status
|
|
684
|
+
expiresAt
|
|
685
|
+
}
|
|
686
|
+
|
|
675
687
|
# ============================================
|
|
676
688
|
# Discount Code Validation
|
|
677
689
|
# ============================================
|
package/llms-full.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# DoSwiftly Storefront Operations — Full Reference
|
|
2
2
|
|
|
3
|
-
> Schema version: **
|
|
4
|
-
> 48 queries ·
|
|
3
|
+
> Schema version: **11.1.0**
|
|
4
|
+
> 48 queries · 40 mutations · 100 fragments
|
|
5
5
|
|
|
6
6
|
Auto-generated from `.graphql` source files. Do not edit by hand — this file is
|
|
7
7
|
regenerated on every release to match the published schema.
|
|
@@ -1992,15 +1992,12 @@ mutation CartUpdateGiftCardRecipient($input: CartUpdateGiftCardRecipientInput!)
|
|
|
1992
1992
|
**Variables**:
|
|
1993
1993
|
- `$input`: `CartCompleteInput!`
|
|
1994
1994
|
|
|
1995
|
-
**Fragments used**: `
|
|
1995
|
+
**Fragments used**: `CartWarning`, `Order`, `UserError`
|
|
1996
1996
|
|
|
1997
1997
|
**GraphQL**:
|
|
1998
1998
|
```graphql
|
|
1999
1999
|
mutation CartComplete($input: CartCompleteInput!) {
|
|
2000
2000
|
cartComplete(input: $input) {
|
|
2001
|
-
cart {
|
|
2002
|
-
...Cart
|
|
2003
|
-
}
|
|
2004
2001
|
order {
|
|
2005
2002
|
...Order
|
|
2006
2003
|
}
|
|
@@ -2014,6 +2011,31 @@ mutation CartComplete($input: CartCompleteInput!) {
|
|
|
2014
2011
|
}
|
|
2015
2012
|
```
|
|
2016
2013
|
|
|
2014
|
+
### Mutation: `PaymentCreate`
|
|
2015
|
+
|
|
2016
|
+
**Section**: Cart Completion Mutations
|
|
2017
|
+
|
|
2018
|
+
**Description**: Initiates a payment session for an order created by `cartComplete` — call this when `order.canCreatePayment` is `true` (orders with an offline payment method like cash-on-delivery skip this step). `orderId` is required; `returnUrl` / `cancelUrl` are optional and, when supplied, must point to a verified domain of the shop (open-redirect protected). Branch on the returned `payment.flow`: `ONLINE_REDIRECT` → redirect to `payment.redirectUrl`, `ONLINE_EMBEDDED` → render a widget with `payment.clientSecret`, `INSTANT_DIRECT` → already settled, read `payment.status`. Public, but ownership-checked — an authenticated customer cannot pay for another customer's order. **Idempotent** — calling it again for the same order returns the existing still-valid session instead of creating a duplicate (safe to retry). Rate limit: 5 requests/minute. `userErrors[].code`: `ORDER_NOT_FOUND`, `ORDER_ALREADY_PAID`, `ORDER_NOT_PAYABLE`, `PAYMENT_PROVIDER_NOT_CONFIGURED`, `RETURN_URL_INVALID`, `INVALID_ID_FORMAT`, `PAYMENT_FAILED`.
|
|
2019
|
+
|
|
2020
|
+
**Variables**:
|
|
2021
|
+
- `$input`: `PaymentCreateInput!`
|
|
2022
|
+
|
|
2023
|
+
**Fragments used**: `PaymentSession`, `UserError`
|
|
2024
|
+
|
|
2025
|
+
**GraphQL**:
|
|
2026
|
+
```graphql
|
|
2027
|
+
mutation PaymentCreate($input: PaymentCreateInput!) {
|
|
2028
|
+
paymentCreate(input: $input) {
|
|
2029
|
+
payment {
|
|
2030
|
+
...PaymentSession
|
|
2031
|
+
}
|
|
2032
|
+
userErrors {
|
|
2033
|
+
...UserError
|
|
2034
|
+
}
|
|
2035
|
+
}
|
|
2036
|
+
}
|
|
2037
|
+
```
|
|
2038
|
+
|
|
2017
2039
|
### Mutation: `ReturnCreate`
|
|
2018
2040
|
|
|
2019
2041
|
**Section**: Return Mutations
|
|
@@ -3318,6 +3340,26 @@ fragment AvailablePaymentMethods on AvailablePaymentMethods {
|
|
|
3318
3340
|
}
|
|
3319
3341
|
```
|
|
3320
3342
|
|
|
3343
|
+
### Fragment: `PaymentSession` on `PaymentSession`
|
|
3344
|
+
|
|
3345
|
+
**Section**: Payment Methods
|
|
3346
|
+
|
|
3347
|
+
**Description**: Initiated payment session for an order — returned by the `paymentCreate` mutation. Branch on `flow`: `ONLINE_REDIRECT` (redirect the browser to `redirectUrl`), `ONLINE_EMBEDDED` (render an in-page widget with `clientSecret`), `INSTANT_DIRECT` (settled with no UI — read `status`). `expiresAt` is ISO 8601, present when the gateway session has a TTL.
|
|
3348
|
+
|
|
3349
|
+
**GraphQL**:
|
|
3350
|
+
```graphql
|
|
3351
|
+
fragment PaymentSession on PaymentSession {
|
|
3352
|
+
id
|
|
3353
|
+
orderId
|
|
3354
|
+
flow
|
|
3355
|
+
provider
|
|
3356
|
+
redirectUrl
|
|
3357
|
+
clientSecret
|
|
3358
|
+
status
|
|
3359
|
+
expiresAt
|
|
3360
|
+
}
|
|
3361
|
+
```
|
|
3362
|
+
|
|
3321
3363
|
### Fragment: `ShipmentEvent` on `ShipmentEvent`
|
|
3322
3364
|
|
|
3323
3365
|
**Section**: Shipments / Tracking
|
package/mutations.graphql
CHANGED
|
@@ -392,9 +392,6 @@ mutation CartUpdateGiftCardRecipient($input: CartUpdateGiftCardRecipientInput!)
|
|
|
392
392
|
# Finalizes the cart — creates the `Order`, deducts gift cards, sends order-created confirmation — all atomically. **Idempotent on `idempotencyKey`** (auto-generated from cartId + minute timestamp if caller omits it). Returns `order` field after completion. Note: `paymentUrl` is intentionally NOT in payload — for hosted gateways (online providers) the storefront calls a separate `paymentCreate` mutation after this returns (check `order.canCreatePayment` first). Errors: `EMAIL_REQUIRED`, `SHIPPING_ADDRESS_REQUIRED`, `SHIPPING_METHOD_REQUIRED`, `PAYMENT_METHOD_REQUIRED`, `INSUFFICIENT_STOCK`, `ALREADY_COMPLETED`.
|
|
393
393
|
mutation CartComplete($input: CartCompleteInput!) {
|
|
394
394
|
cartComplete(input: $input) {
|
|
395
|
-
cart {
|
|
396
|
-
...Cart
|
|
397
|
-
}
|
|
398
395
|
order {
|
|
399
396
|
...Order
|
|
400
397
|
}
|
|
@@ -407,6 +404,18 @@ mutation CartComplete($input: CartCompleteInput!) {
|
|
|
407
404
|
}
|
|
408
405
|
}
|
|
409
406
|
|
|
407
|
+
# Initiates a payment session for an order created by `cartComplete` — call this when `order.canCreatePayment` is `true` (orders with an offline payment method like cash-on-delivery skip this step). `orderId` is required; `returnUrl` / `cancelUrl` are optional and, when supplied, must point to a verified domain of the shop (open-redirect protected). Branch on the returned `payment.flow`: `ONLINE_REDIRECT` → redirect to `payment.redirectUrl`, `ONLINE_EMBEDDED` → render a widget with `payment.clientSecret`, `INSTANT_DIRECT` → already settled, read `payment.status`. Public, but ownership-checked — an authenticated customer cannot pay for another customer's order. **Idempotent** — calling it again for the same order returns the existing still-valid session instead of creating a duplicate (safe to retry). Rate limit: 5 requests/minute. `userErrors[].code`: `ORDER_NOT_FOUND`, `ORDER_ALREADY_PAID`, `ORDER_NOT_PAYABLE`, `PAYMENT_PROVIDER_NOT_CONFIGURED`, `RETURN_URL_INVALID`, `INVALID_ID_FORMAT`, `PAYMENT_FAILED`.
|
|
408
|
+
mutation PaymentCreate($input: PaymentCreateInput!) {
|
|
409
|
+
paymentCreate(input: $input) {
|
|
410
|
+
payment {
|
|
411
|
+
...PaymentSession
|
|
412
|
+
}
|
|
413
|
+
userErrors {
|
|
414
|
+
...UserError
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
410
419
|
# ============================================
|
|
411
420
|
# Return Mutations
|
|
412
421
|
# ============================================
|
package/operations.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "
|
|
2
|
+
"schemaVersion": "11.1.0",
|
|
3
3
|
"queries": [
|
|
4
4
|
{
|
|
5
5
|
"name": "Shop",
|
|
@@ -1534,12 +1534,29 @@
|
|
|
1534
1534
|
}
|
|
1535
1535
|
],
|
|
1536
1536
|
"fragmentRefs": [
|
|
1537
|
-
"Cart",
|
|
1538
1537
|
"CartWarning",
|
|
1539
1538
|
"Order",
|
|
1540
1539
|
"UserError"
|
|
1541
1540
|
],
|
|
1542
|
-
"body": "mutation CartComplete($input: CartCompleteInput!) {\n cartComplete(input: $input) {\n
|
|
1541
|
+
"body": "mutation CartComplete($input: CartCompleteInput!) {\n cartComplete(input: $input) {\n order {\n ...Order\n }\n userErrors {\n ...UserError\n }\n warnings {\n ...CartWarning\n }\n }\n}"
|
|
1542
|
+
},
|
|
1543
|
+
{
|
|
1544
|
+
"name": "PaymentCreate",
|
|
1545
|
+
"kind": "mutation",
|
|
1546
|
+
"section": "Cart Completion Mutations",
|
|
1547
|
+
"description": "Initiates a payment session for an order created by `cartComplete` — call this when `order.canCreatePayment` is `true` (orders with an offline payment method like cash-on-delivery skip this step). `orderId` is required; `returnUrl` / `cancelUrl` are optional and, when supplied, must point to a verified domain of the shop (open-redirect protected). Branch on the returned `payment.flow`: `ONLINE_REDIRECT` → redirect to `payment.redirectUrl`, `ONLINE_EMBEDDED` → render a widget with `payment.clientSecret`, `INSTANT_DIRECT` → already settled, read `payment.status`. Public, but ownership-checked — an authenticated customer cannot pay for another customer's order. **Idempotent** — calling it again for the same order returns the existing still-valid session instead of creating a duplicate (safe to retry). Rate limit: 5 requests/minute. `userErrors[].code`: `ORDER_NOT_FOUND`, `ORDER_ALREADY_PAID`, `ORDER_NOT_PAYABLE`, `PAYMENT_PROVIDER_NOT_CONFIGURED`, `RETURN_URL_INVALID`, `INVALID_ID_FORMAT`, `PAYMENT_FAILED`.",
|
|
1548
|
+
"variables": [
|
|
1549
|
+
{
|
|
1550
|
+
"name": "input",
|
|
1551
|
+
"type": "PaymentCreateInput!",
|
|
1552
|
+
"defaultValue": null
|
|
1553
|
+
}
|
|
1554
|
+
],
|
|
1555
|
+
"fragmentRefs": [
|
|
1556
|
+
"PaymentSession",
|
|
1557
|
+
"UserError"
|
|
1558
|
+
],
|
|
1559
|
+
"body": "mutation PaymentCreate($input: PaymentCreateInput!) {\n paymentCreate(input: $input) {\n payment {\n ...PaymentSession\n }\n userErrors {\n ...UserError\n }\n }\n}"
|
|
1543
1560
|
},
|
|
1544
1561
|
{
|
|
1545
1562
|
"name": "ReturnCreate",
|
|
@@ -2241,6 +2258,16 @@
|
|
|
2241
2258
|
"body": "fragment AvailablePaymentMethods on AvailablePaymentMethods {\n methods {\n ...PaymentMethod\n }\n defaultMethod {\n ...PaymentMethod\n }\n}",
|
|
2242
2259
|
"onType": "AvailablePaymentMethods"
|
|
2243
2260
|
},
|
|
2261
|
+
{
|
|
2262
|
+
"name": "PaymentSession",
|
|
2263
|
+
"kind": "fragment",
|
|
2264
|
+
"section": "Payment Methods",
|
|
2265
|
+
"description": "Initiated payment session for an order — returned by the `paymentCreate` mutation. Branch on `flow`: `ONLINE_REDIRECT` (redirect the browser to `redirectUrl`), `ONLINE_EMBEDDED` (render an in-page widget with `clientSecret`), `INSTANT_DIRECT` (settled with no UI — read `status`). `expiresAt` is ISO 8601, present when the gateway session has a TTL.",
|
|
2266
|
+
"variables": [],
|
|
2267
|
+
"fragmentRefs": [],
|
|
2268
|
+
"body": "fragment PaymentSession on PaymentSession {\n id\n orderId\n flow\n provider\n redirectUrl\n clientSecret\n status\n expiresAt\n}",
|
|
2269
|
+
"onType": "PaymentSession"
|
|
2270
|
+
},
|
|
2244
2271
|
{
|
|
2245
2272
|
"name": "ShipmentEvent",
|
|
2246
2273
|
"kind": "fragment",
|
package/package.json
CHANGED
package/schema.graphql
CHANGED
|
@@ -917,12 +917,9 @@ input CartCompleteInput {
|
|
|
917
917
|
}
|
|
918
918
|
|
|
919
919
|
"""
|
|
920
|
-
Result of completing cart — transition cart → order (per D4 NO paymentUrl)
|
|
920
|
+
Result of completing cart — transition cart → order (per D4 NO paymentUrl). Cart NIE w payload — po complete koszyk jest CONVERTED/locked.
|
|
921
921
|
"""
|
|
922
922
|
type CartCompletePayload {
|
|
923
|
-
"""Cart finalised (status CONVERTED — read-only po complete)"""
|
|
924
|
-
cart: Cart
|
|
925
|
-
|
|
926
923
|
"""
|
|
927
924
|
Order created z cart. Zapewnia canCreatePayment + paymentMethodType (Phase 4 ResolveFields) dla decyzji storefront przycisku "Zapłać".
|
|
928
925
|
"""
|
|
@@ -2275,6 +2272,7 @@ enum DiscountApplicationType {
|
|
|
2275
2272
|
|
|
2276
2273
|
"""Error codes for discount validation"""
|
|
2277
2274
|
enum DiscountErrorCode {
|
|
2275
|
+
CUSTOMER_GROUP_NOT_ELIGIBLE
|
|
2278
2276
|
CUSTOMER_NOT_ELIGIBLE
|
|
2279
2277
|
CUSTOMER_USAGE_LIMIT_REACHED
|
|
2280
2278
|
DISCOUNT_COMBINATION_NOT_ALLOWED
|
|
@@ -3512,6 +3510,11 @@ type Mutation {
|
|
|
3512
3510
|
"""Redeem a loyalty reward"""
|
|
3513
3511
|
loyaltyRedeemReward(input: RedeemRewardInput!): RedeemRewardPayload!
|
|
3514
3512
|
|
|
3513
|
+
"""
|
|
3514
|
+
Initiate a payment session for an order — call after cartComplete when order.canCreatePayment is true
|
|
3515
|
+
"""
|
|
3516
|
+
paymentCreate(input: PaymentCreateInput!): PaymentCreatePayload!
|
|
3517
|
+
|
|
3515
3518
|
"""Cancel a return request"""
|
|
3516
3519
|
returnCancel(id: ID!): ReturnCancelPayload!
|
|
3517
3520
|
|
|
@@ -3720,6 +3723,41 @@ enum PageSortKeys {
|
|
|
3720
3723
|
UPDATED_AT
|
|
3721
3724
|
}
|
|
3722
3725
|
|
|
3726
|
+
"""Input dla paymentCreate mutation"""
|
|
3727
|
+
input PaymentCreateInput {
|
|
3728
|
+
"""
|
|
3729
|
+
URL powrotu klienta po anulowaniu płatności — musi być na zweryfikowanej domenie sklepu
|
|
3730
|
+
"""
|
|
3731
|
+
cancelUrl: URL
|
|
3732
|
+
|
|
3733
|
+
"""ID zamówienia (z cartComplete) do opłacenia"""
|
|
3734
|
+
orderId: ID!
|
|
3735
|
+
|
|
3736
|
+
"""
|
|
3737
|
+
URL powrotu klienta po płatności — musi być na zweryfikowanej domenie sklepu
|
|
3738
|
+
"""
|
|
3739
|
+
returnUrl: URL
|
|
3740
|
+
}
|
|
3741
|
+
|
|
3742
|
+
"""Wynik paymentCreate mutation"""
|
|
3743
|
+
type PaymentCreatePayload {
|
|
3744
|
+
"""Utworzona sesja płatności (null gdy userErrors)"""
|
|
3745
|
+
payment: PaymentSession
|
|
3746
|
+
|
|
3747
|
+
"""Błędy walidacji / biznesowe"""
|
|
3748
|
+
userErrors: [UserError!]!
|
|
3749
|
+
}
|
|
3750
|
+
|
|
3751
|
+
"""
|
|
3752
|
+
Sposób uruchomienia płatności po stronie klienta — storefront rozgałęzia krok po tej wartości
|
|
3753
|
+
"""
|
|
3754
|
+
enum PaymentInitiationFlow {
|
|
3755
|
+
INSTANT_DIRECT
|
|
3756
|
+
OFFLINE_MANUAL
|
|
3757
|
+
ONLINE_EMBEDDED
|
|
3758
|
+
ONLINE_REDIRECT
|
|
3759
|
+
}
|
|
3760
|
+
|
|
3723
3761
|
"""Payment method available for checkout"""
|
|
3724
3762
|
type PaymentMethod {
|
|
3725
3763
|
"""Description for customers"""
|
|
@@ -3759,6 +3797,33 @@ enum PaymentMethodType {
|
|
|
3759
3797
|
OTHER
|
|
3760
3798
|
}
|
|
3761
3799
|
|
|
3800
|
+
"""Sesja płatności utworzona dla zamówienia"""
|
|
3801
|
+
type PaymentSession {
|
|
3802
|
+
"""Token/secret do widgetu in-page — wypełniony dla flow ONLINE_EMBEDDED"""
|
|
3803
|
+
clientSecret: String
|
|
3804
|
+
|
|
3805
|
+
"""Kiedy redirectUrl/clientSecret przestaje być ważny (ISO 8601)"""
|
|
3806
|
+
expiresAt: String
|
|
3807
|
+
|
|
3808
|
+
"""Sposób uruchomienia — storefront robi switch(flow)"""
|
|
3809
|
+
flow: PaymentInitiationFlow!
|
|
3810
|
+
|
|
3811
|
+
"""ID rekordu płatności"""
|
|
3812
|
+
id: ID!
|
|
3813
|
+
|
|
3814
|
+
"""ID zamówienia"""
|
|
3815
|
+
orderId: ID!
|
|
3816
|
+
|
|
3817
|
+
"""Kod providera płatności (np. PAYU)"""
|
|
3818
|
+
provider: String!
|
|
3819
|
+
|
|
3820
|
+
"""URL hosted gateway — wypełniony dla flow ONLINE_REDIRECT"""
|
|
3821
|
+
redirectUrl: URL
|
|
3822
|
+
|
|
3823
|
+
"""Status płatności zamówienia"""
|
|
3824
|
+
status: OrderPaymentStatus!
|
|
3825
|
+
}
|
|
3826
|
+
|
|
3762
3827
|
"""Shop payment configuration (currency, country, providers)"""
|
|
3763
3828
|
type PaymentSettings {
|
|
3764
3829
|
"""Country code sklepu — driver dostępności metod płatności"""
|