@doswiftly/storefront-operations 6.1.0 → 7.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 +183 -0
- package/CHANGELOG.md +230 -0
- package/README.md +673 -134
- package/fragments.graphql +137 -53
- package/llms-full.txt +4994 -0
- package/mutations.graphql +47 -3
- package/operations.json +3149 -0
- package/package.json +9 -2
- package/queries.graphql +55 -16
- package/schema.graphql +194 -25
package/schema.graphql
CHANGED
|
@@ -1182,11 +1182,14 @@ type Category {
|
|
|
1182
1182
|
sortOrder: Int!
|
|
1183
1183
|
}
|
|
1184
1184
|
|
|
1185
|
-
"""Paginated category list"""
|
|
1185
|
+
"""Paginated category list (Relay Connection)"""
|
|
1186
1186
|
type CategoryConnection {
|
|
1187
|
-
"""List of category edges"""
|
|
1187
|
+
"""List of category edges (cursor + node pairs)"""
|
|
1188
1188
|
edges: [CategoryEdge!]!
|
|
1189
1189
|
|
|
1190
|
+
"""List of category nodes (shortcut without cursor)"""
|
|
1191
|
+
nodes: [Category!]!
|
|
1192
|
+
|
|
1190
1193
|
"""Pagination info"""
|
|
1191
1194
|
pageInfo: PageInfo!
|
|
1192
1195
|
|
|
@@ -1230,15 +1233,6 @@ type CategoryFilterOption {
|
|
|
1230
1233
|
slug: String!
|
|
1231
1234
|
}
|
|
1232
1235
|
|
|
1233
|
-
"""Category tree structure"""
|
|
1234
|
-
type CategoryTree {
|
|
1235
|
-
"""Root categories"""
|
|
1236
|
-
roots: [Category!]!
|
|
1237
|
-
|
|
1238
|
-
"""Total categories count"""
|
|
1239
|
-
totalCount: Int!
|
|
1240
|
-
}
|
|
1241
|
-
|
|
1242
1236
|
"""Checkout object"""
|
|
1243
1237
|
type Checkout {
|
|
1244
1238
|
"""Applied gift cards"""
|
|
@@ -2043,6 +2037,16 @@ type Customer implements Node {
|
|
|
2043
2037
|
"""Last name"""
|
|
2044
2038
|
lastName: String
|
|
2045
2039
|
|
|
2040
|
+
"""
|
|
2041
|
+
Lista meta properties (Relay Connection) — opcjonalnie scoped do namespace
|
|
2042
|
+
"""
|
|
2043
|
+
metaProperties(first: Int = 10, namespace: String): MetaPropertyConnection!
|
|
2044
|
+
|
|
2045
|
+
"""
|
|
2046
|
+
Pojedyncze meta property po (namespace, key) — dla zalogowanego klienta zwraca także private
|
|
2047
|
+
"""
|
|
2048
|
+
metaProperty(key: String!, namespace: String!): MetaProperty
|
|
2049
|
+
|
|
2046
2050
|
"""Total orders count (UnsignedInt64 — BigInt-safe)"""
|
|
2047
2051
|
orderCount: UnsignedInt64!
|
|
2048
2052
|
|
|
@@ -3283,6 +3287,16 @@ type MailingAddress implements Node {
|
|
|
3283
3287
|
|
|
3284
3288
|
"""Second line of street address"""
|
|
3285
3289
|
streetLine2: String
|
|
3290
|
+
|
|
3291
|
+
"""
|
|
3292
|
+
Per-address tax ID (Polish NIP, 10 digits z checksum). B2B use case: różne dane firmowe per adres — np. faktura na firmę matkę z NIP A, dostawa na oddział z NIP B. Distinct from `Customer.taxId` (customer-level globally).
|
|
3293
|
+
"""
|
|
3294
|
+
taxId: String
|
|
3295
|
+
|
|
3296
|
+
"""
|
|
3297
|
+
Per-address EU VAT number (e.g. PL1234567890). B2B cross-border: różny VAT per adres dostawy. Distinct from `Customer.vatNumber` (customer-level globally).
|
|
3298
|
+
"""
|
|
3299
|
+
vatNumber: String
|
|
3286
3300
|
}
|
|
3287
3301
|
|
|
3288
3302
|
"""Paginated mailing addresses (Relay Connection)"""
|
|
@@ -3340,6 +3354,14 @@ input MailingAddressInput {
|
|
|
3340
3354
|
|
|
3341
3355
|
"""Second line of street address"""
|
|
3342
3356
|
streetLine2: String
|
|
3357
|
+
|
|
3358
|
+
"""
|
|
3359
|
+
Per-address Polish tax ID — NIP (10 digits with checksum). B2B use case: różne dane firmowe per adres dostawy/billing.
|
|
3360
|
+
"""
|
|
3361
|
+
taxId: String
|
|
3362
|
+
|
|
3363
|
+
"""Per-address EU VAT number (e.g. PL1234567890). Cross-border B2B."""
|
|
3364
|
+
vatNumber: String
|
|
3343
3365
|
}
|
|
3344
3366
|
|
|
3345
3367
|
"""
|
|
@@ -3412,6 +3434,119 @@ enum MenuItemType {
|
|
|
3412
3434
|
SEARCH
|
|
3413
3435
|
}
|
|
3414
3436
|
|
|
3437
|
+
"""
|
|
3438
|
+
Payload `customerMetaPropertiesSet` — bulk upsert własnych meta properties klienta
|
|
3439
|
+
"""
|
|
3440
|
+
type MetaPropertiesSetPayload {
|
|
3441
|
+
"""Upserted meta properties (puste gdy userErrors)"""
|
|
3442
|
+
metaProperties: [MetaProperty!]!
|
|
3443
|
+
|
|
3444
|
+
"""User errors (code z `MetaPropertyErrorCode` enum)"""
|
|
3445
|
+
userErrors: [UserError!]!
|
|
3446
|
+
}
|
|
3447
|
+
|
|
3448
|
+
"""Pojedyncze pole dodatkowe (meta property) na encji commerce"""
|
|
3449
|
+
type MetaProperty implements Node {
|
|
3450
|
+
"""Created at"""
|
|
3451
|
+
createdAt: DateTime!
|
|
3452
|
+
|
|
3453
|
+
"""Unique identifier"""
|
|
3454
|
+
id: ID!
|
|
3455
|
+
|
|
3456
|
+
"""
|
|
3457
|
+
true = readable tylko przez authenticated context (admin/customer self). false (default) = readable również przez anonymous Storefront API.
|
|
3458
|
+
"""
|
|
3459
|
+
isPrivate: Boolean!
|
|
3460
|
+
|
|
3461
|
+
"""
|
|
3462
|
+
Key w obrębie namespace (3-64 chars). Unique per (ownerType, ownerId, namespace).
|
|
3463
|
+
"""
|
|
3464
|
+
key: String!
|
|
3465
|
+
|
|
3466
|
+
"""
|
|
3467
|
+
Namespace (3-64 chars). Zapobiega kolizji kluczy między aplikacjami. Reserved prefix: `doswiftly:` (platform).
|
|
3468
|
+
"""
|
|
3469
|
+
namespace: String!
|
|
3470
|
+
|
|
3471
|
+
"""Typ wartości — informuje klienta jak parse value."""
|
|
3472
|
+
type: MetaPropertyValueType!
|
|
3473
|
+
|
|
3474
|
+
"""Last updated at"""
|
|
3475
|
+
updatedAt: DateTime!
|
|
3476
|
+
|
|
3477
|
+
"""
|
|
3478
|
+
Wartość — zawsze String. Klient parsuje zgodnie z polem `type` (np. INTEGER → parseInt, JSON → JSON.parse).
|
|
3479
|
+
"""
|
|
3480
|
+
value: String!
|
|
3481
|
+
}
|
|
3482
|
+
|
|
3483
|
+
"""Paginated meta property list (Relay Connection)"""
|
|
3484
|
+
type MetaPropertyConnection {
|
|
3485
|
+
"""Edges (cursor + node pairs)"""
|
|
3486
|
+
edges: [MetaPropertyEdge!]!
|
|
3487
|
+
|
|
3488
|
+
"""Nodes (shortcut bez cursor)"""
|
|
3489
|
+
nodes: [MetaProperty!]!
|
|
3490
|
+
|
|
3491
|
+
"""Page info"""
|
|
3492
|
+
pageInfo: PageInfo!
|
|
3493
|
+
|
|
3494
|
+
"""Total count (max po wszystkich pages)"""
|
|
3495
|
+
totalCount: Int!
|
|
3496
|
+
}
|
|
3497
|
+
|
|
3498
|
+
"""Payload `customerMetaPropertyDelete`"""
|
|
3499
|
+
type MetaPropertyDeletePayload {
|
|
3500
|
+
"""ID usuniętego meta property (null gdy userErrors)"""
|
|
3501
|
+
deletedId: ID
|
|
3502
|
+
|
|
3503
|
+
"""User errors (code z `MetaPropertyErrorCode` enum)"""
|
|
3504
|
+
userErrors: [UserError!]!
|
|
3505
|
+
}
|
|
3506
|
+
|
|
3507
|
+
"""Meta property edge (Relay pagination)"""
|
|
3508
|
+
type MetaPropertyEdge {
|
|
3509
|
+
"""Cursor for pagination"""
|
|
3510
|
+
cursor: String!
|
|
3511
|
+
|
|
3512
|
+
"""Meta property node"""
|
|
3513
|
+
node: MetaProperty!
|
|
3514
|
+
}
|
|
3515
|
+
|
|
3516
|
+
"""Input dla pojedynczego meta property w bulk set"""
|
|
3517
|
+
input MetaPropertyInput {
|
|
3518
|
+
"""Visibility — true = admin/customer-only, false = storefront-readable"""
|
|
3519
|
+
isPrivate: Boolean = false
|
|
3520
|
+
|
|
3521
|
+
"""Key (3-64 chars)"""
|
|
3522
|
+
key: String!
|
|
3523
|
+
|
|
3524
|
+
"""Namespace (3-64 chars, NOT starting with `doswiftly:`)"""
|
|
3525
|
+
namespace: String!
|
|
3526
|
+
|
|
3527
|
+
"""Typ wartości (driver walidacji backend-side)"""
|
|
3528
|
+
type: MetaPropertyValueType!
|
|
3529
|
+
|
|
3530
|
+
"""Wartość jako String (parse zgodnie z type)"""
|
|
3531
|
+
value: String!
|
|
3532
|
+
}
|
|
3533
|
+
|
|
3534
|
+
"""
|
|
3535
|
+
Typy wartości — STRING (max 255 chars), TEXT (no cap), INTEGER, DECIMAL, BOOLEAN ("true"/"false"), JSON (stringified), DATE (YYYY-MM-DD), DATE_TIME (ISO 8601), URL (http(s)://...), COLOR (#RRGGBB / #RRGGBBAA hex).
|
|
3536
|
+
"""
|
|
3537
|
+
enum MetaPropertyValueType {
|
|
3538
|
+
BOOLEAN
|
|
3539
|
+
COLOR
|
|
3540
|
+
DATE
|
|
3541
|
+
DATE_TIME
|
|
3542
|
+
DECIMAL
|
|
3543
|
+
INTEGER
|
|
3544
|
+
JSON
|
|
3545
|
+
STRING
|
|
3546
|
+
TEXT
|
|
3547
|
+
URL
|
|
3548
|
+
}
|
|
3549
|
+
|
|
3415
3550
|
"""Monetary value with currency"""
|
|
3416
3551
|
type Money {
|
|
3417
3552
|
"""Decimal money amount"""
|
|
@@ -3509,6 +3644,12 @@ type Mutation {
|
|
|
3509
3644
|
"""Logout customer (clears auth cookie)"""
|
|
3510
3645
|
customerLogout: CustomerLogoutPayload!
|
|
3511
3646
|
|
|
3647
|
+
"""Bulk upsert własnych meta properties klienta (Bearer token wymagany)"""
|
|
3648
|
+
customerMetaPropertiesSet(properties: [MetaPropertyInput!]!): MetaPropertiesSetPayload!
|
|
3649
|
+
|
|
3650
|
+
"""Usuwa pojedyncze meta property klienta po (namespace, key)"""
|
|
3651
|
+
customerMetaPropertyDelete(key: String!, namespace: String!): MetaPropertyDeletePayload!
|
|
3652
|
+
|
|
3512
3653
|
"""Refresh access token"""
|
|
3513
3654
|
customerRefreshToken: CustomerRefreshTokenPayload!
|
|
3514
3655
|
|
|
@@ -3624,6 +3765,12 @@ type Order implements Node {
|
|
|
3624
3765
|
"""Line items count"""
|
|
3625
3766
|
itemCount: Int!
|
|
3626
3767
|
|
|
3768
|
+
"""Lista meta properties (Relay Connection)"""
|
|
3769
|
+
metaProperties(first: Int = 10, namespace: String): MetaPropertyConnection!
|
|
3770
|
+
|
|
3771
|
+
"""Pojedyncze meta property po (namespace, key)"""
|
|
3772
|
+
metaProperty(key: String!, namespace: String!): MetaProperty
|
|
3773
|
+
|
|
3627
3774
|
"""Order number (human-readable)"""
|
|
3628
3775
|
orderNumber: String!
|
|
3629
3776
|
|
|
@@ -3903,9 +4050,9 @@ type Product implements Node {
|
|
|
3903
4050
|
averageRating: Float
|
|
3904
4051
|
|
|
3905
4052
|
"""
|
|
3906
|
-
|
|
4053
|
+
Wszystkie kategorie do których produkt należy (M2M przez ProductCategory junction). Posortowane po junction.sortOrder ASC. Empty list gdy produkt nie jest w żadnej kategorii.
|
|
3907
4054
|
"""
|
|
3908
|
-
|
|
4055
|
+
categories: [Category!]!
|
|
3909
4056
|
|
|
3910
4057
|
"""
|
|
3911
4058
|
Compare-at price range (Money pair). Null gdy żaden variant nie ma compareAtPrice.
|
|
@@ -3944,6 +4091,12 @@ type Product implements Node {
|
|
|
3944
4091
|
"""
|
|
3945
4092
|
isPurchasable: Boolean!
|
|
3946
4093
|
|
|
4094
|
+
"""Lista meta properties — Storefront API filtruje isPrivate=false"""
|
|
4095
|
+
metaProperties(first: Int = 10, namespace: String): MetaPropertyConnection!
|
|
4096
|
+
|
|
4097
|
+
"""Pojedyncze meta property — Storefront API filtruje isPrivate=false"""
|
|
4098
|
+
metaProperty(key: String!, namespace: String!): MetaProperty
|
|
4099
|
+
|
|
3947
4100
|
"""
|
|
3948
4101
|
Per-product option definitions (Color, Size, …) with their available values. Use these to build a variant picker without aggregating `selectedOptions` manually.
|
|
3949
4102
|
"""
|
|
@@ -3957,6 +4110,11 @@ type Product implements Node {
|
|
|
3957
4110
|
"""
|
|
3958
4111
|
priceRangeWithConversion: ConvertedPriceRange
|
|
3959
4112
|
|
|
4113
|
+
"""
|
|
4114
|
+
Domyślna kategoria dla breadcrumb/nav (= categories[0] po sortOrder). Null gdy produkt nie jest w żadnej kategorii.
|
|
4115
|
+
"""
|
|
4116
|
+
primaryCategory: Category
|
|
4117
|
+
|
|
3960
4118
|
"""Similar products recommendations"""
|
|
3961
4119
|
recommendations(first: Int = 4): ProductRecommendations
|
|
3962
4120
|
|
|
@@ -4143,11 +4301,6 @@ input ProductFilter {
|
|
|
4143
4301
|
"""Filter by variant price range"""
|
|
4144
4302
|
price: PriceRangeFilter
|
|
4145
4303
|
|
|
4146
|
-
"""
|
|
4147
|
-
Filter by product category (free-text classification, stored on Product.category). Distinct from `category: CategoryFilter` which selects by structured Category entity.
|
|
4148
|
-
"""
|
|
4149
|
-
productCategory: String
|
|
4150
|
-
|
|
4151
4304
|
"""
|
|
4152
4305
|
Filter by product type enum (PHYSICAL/DIGITAL/SERVICE/SUBSCRIPTION/GIFT_CARD). Distinct from `productCategory` (free-text classification).
|
|
4153
4306
|
"""
|
|
@@ -4345,6 +4498,12 @@ type ProductVariant {
|
|
|
4345
4498
|
"""Whether variant is available for purchase"""
|
|
4346
4499
|
isAvailable: Boolean!
|
|
4347
4500
|
|
|
4501
|
+
"""Lista meta properties — Storefront API filtruje isPrivate=false"""
|
|
4502
|
+
metaProperties(first: Int = 10, namespace: String): MetaPropertyConnection!
|
|
4503
|
+
|
|
4504
|
+
"""Pojedyncze meta property — Storefront API filtruje isPrivate=false"""
|
|
4505
|
+
metaProperty(key: String!, namespace: String!): MetaProperty
|
|
4506
|
+
|
|
4348
4507
|
"""Variant price (Money). Default field — industry-standard schema."""
|
|
4349
4508
|
price: Money!
|
|
4350
4509
|
|
|
@@ -4478,20 +4637,30 @@ type Query {
|
|
|
4478
4637
|
"""Get cart by ID"""
|
|
4479
4638
|
cart(id: ID!): Cart
|
|
4480
4639
|
|
|
4481
|
-
"""
|
|
4640
|
+
"""
|
|
4641
|
+
Lista kategorii (Relay Connection) z opcjonalnym filtrem rootsOnly/parentId
|
|
4642
|
+
"""
|
|
4482
4643
|
categories(
|
|
4483
|
-
"""
|
|
4644
|
+
"""Forward pagination cursor (after this element)"""
|
|
4484
4645
|
after: String
|
|
4485
4646
|
|
|
4486
|
-
"""
|
|
4487
|
-
|
|
4647
|
+
"""Backward pagination cursor (before this element)"""
|
|
4648
|
+
before: String
|
|
4649
|
+
|
|
4650
|
+
"""Forward pagination — first N elements"""
|
|
4651
|
+
first: Int
|
|
4488
4652
|
|
|
4489
|
-
"""
|
|
4653
|
+
"""Backward pagination — last N elements"""
|
|
4654
|
+
last: Int
|
|
4655
|
+
|
|
4656
|
+
"""
|
|
4657
|
+
Filter by parent category ID — używaj `null` semantically dla "roots" via `rootsOnly` flag
|
|
4658
|
+
"""
|
|
4490
4659
|
parentId: ID
|
|
4491
4660
|
|
|
4492
|
-
"""
|
|
4661
|
+
"""Tylko root categories (parentId IS NULL)"""
|
|
4493
4662
|
rootsOnly: Boolean! = false
|
|
4494
|
-
):
|
|
4663
|
+
): CategoryConnection!
|
|
4495
4664
|
|
|
4496
4665
|
"""Get category by ID or slug"""
|
|
4497
4666
|
category(
|