@nautical-commerce/graphql-schema 4.5.2 → 4.7.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.
@@ -175,6 +175,7 @@ enum AccountErrorCode {
175
175
  DELETE_STAFF_ACCOUNT
176
176
  DELETE_SUPERUSER_ACCOUNT
177
177
  GRAPHQL_ERROR
178
+ INTERNAL_ERROR
178
179
  INVALID
179
180
  INVALID_PHONE
180
181
  INVALID_PASSWORD
@@ -602,6 +603,7 @@ type AgreementError {
602
603
  """An enumeration of possible error codes for agreement operations."""
603
604
  enum AgreementErrorCode {
604
605
  GRAPHQL_ERROR
606
+ INTERNAL_ERROR
605
607
  INVALID
606
608
  NOT_FOUND
607
609
  PERMISSION_DENIED
@@ -1103,6 +1105,7 @@ enum AnalyticsExportErrorCode {
1103
1105
  INVALID_DATE_RANGE
1104
1106
  PERMISSION_DENIED
1105
1107
  EXPORT_TYPE_NOT_AVAILABLE
1108
+ INTERNAL_ERROR
1106
1109
  INVALID
1107
1110
  }
1108
1111
 
@@ -1302,6 +1305,7 @@ type AppError {
1302
1305
  enum AppErrorCode {
1303
1306
  FORBIDDEN
1304
1307
  GRAPHQL_ERROR
1308
+ INTERNAL_ERROR
1305
1309
  INVALID
1306
1310
  INVALID_STATUS
1307
1311
  INVALID_PERMISSION
@@ -5458,6 +5462,7 @@ type DesignerError {
5458
5462
  enum DesignerErrorCode {
5459
5463
  CANNOT_ASSIGN_NODE
5460
5464
  GRAPHQL_ERROR
5465
+ INTERNAL_ERROR
5461
5466
  INVALID
5462
5467
  NOT_FOUND
5463
5468
  REQUIRED
@@ -5964,6 +5969,7 @@ enum DocumentErrorCode {
5964
5969
  NUMBER_NOT_SET
5965
5970
  INVALID_STATUS
5966
5971
  NOT_FOUND
5972
+ INTERNAL_ERROR
5967
5973
  INVALID
5968
5974
  GRAPHQL_ERROR
5969
5975
  UNSUPPORTED_FILE_TYPE
@@ -6439,6 +6445,134 @@ input EmailTemplateUpdateInput {
6439
6445
  isCustom: Boolean = null
6440
6446
  }
6441
6447
 
6448
+ """
6449
+ A customer's durable claim on something they bought, held separately from the artifacts that deliver it. A download link may expire or be re-issued without changing what the customer owns.
6450
+ """
6451
+ type Entitlement implements Node {
6452
+ """The Globally Unique ID of this object"""
6453
+ id: ID!
6454
+
6455
+ """Identity the claim is bound to. Present even for guest checkouts."""
6456
+ customerEmail: String!
6457
+
6458
+ """Units covered by this claim."""
6459
+ quantity: Int!
6460
+
6461
+ """Product name as recorded at purchase — survives catalog changes."""
6462
+ productName: String!
6463
+
6464
+ """Variant name at purchase."""
6465
+ variantName: String!
6466
+
6467
+ """SKU at purchase."""
6468
+ productSku: String!
6469
+
6470
+ """When the claim was granted."""
6471
+ grantedAt: DateTime
6472
+
6473
+ """When the claim lapses, if ever."""
6474
+ expiresAt: DateTime
6475
+
6476
+ """When the claim was withdrawn."""
6477
+ revokedAt: DateTime
6478
+
6479
+ """Row creation time."""
6480
+ createdAt: DateTime!
6481
+
6482
+ """Row last-modified time."""
6483
+ updatedAt: DateTime!
6484
+
6485
+ """Lifecycle state of the claim."""
6486
+ status: EntitlementStatus!
6487
+
6488
+ """How this was fulfilled, snapshotted at grant time."""
6489
+ kind: FulfillmentKind!
6490
+
6491
+ """Why the claim was withdrawn, if it was."""
6492
+ revokedReason: EntitlementRevokedReason
6493
+
6494
+ """
6495
+ Whether redemption is permitted right now. Combines status with the expiry clock, since nothing sweeps lapsed rows.
6496
+ """
6497
+ isUsable: Boolean!
6498
+
6499
+ """The variant this claim covers, if it still exists."""
6500
+ variant: ProductVariant
6501
+
6502
+ """Uses of this entitlement, most recent first."""
6503
+ redemptions: [RedemptionEvent!]!
6504
+
6505
+ """Download credentials issued against this entitlement."""
6506
+ contentUrls: [DigitalContentUrl!]!
6507
+ }
6508
+
6509
+ """A connection to a list of items."""
6510
+ type EntitlementCountableConnection {
6511
+ """Pagination data for this connection"""
6512
+ pageInfo: PageInfo!
6513
+
6514
+ """Contains the nodes in this connection"""
6515
+ edges: [EntitlementCountableEdge!]!
6516
+
6517
+ """Total quantity of existing nodes."""
6518
+ totalCount: Int!
6519
+ }
6520
+
6521
+ """An edge in a connection."""
6522
+ type EntitlementCountableEdge {
6523
+ """A cursor for use in pagination"""
6524
+ cursor: String!
6525
+
6526
+ """The item at the end of the edge"""
6527
+ node: Entitlement!
6528
+ }
6529
+
6530
+ """Represents errors from entitlement operations."""
6531
+ type EntitlementError {
6532
+ field: String
6533
+
6534
+ """The error message."""
6535
+ message: String!
6536
+
6537
+ """The error code."""
6538
+ code: EntitlementErrorCode!
6539
+ }
6540
+
6541
+ """An enumeration of possible error codes for entitlement operations."""
6542
+ enum EntitlementErrorCode {
6543
+ GRAPHQL_ERROR
6544
+ INTERNAL_ERROR
6545
+ INVALID
6546
+ NOT_FOUND
6547
+ }
6548
+
6549
+ """Payload for entitlementRevoke."""
6550
+ type EntitlementRevoke {
6551
+ entitlement: Entitlement
6552
+ entitlementErrors: [EntitlementError!]!
6553
+ }
6554
+
6555
+ """Why an entitlement was withdrawn. Drives downstream trust policy."""
6556
+ enum EntitlementRevokedReason {
6557
+ REFUND
6558
+ CHARGEBACK
6559
+ FRAUD
6560
+ OPERATOR
6561
+ SELLER
6562
+ }
6563
+
6564
+ """
6565
+ Lifecycle of a customer's claim. States rather than booleans: 'revoked because refunded' and 'expired because the term ended' are different facts, and only ACTIVE permits redemption.
6566
+ """
6567
+ enum EntitlementStatus {
6568
+ PENDING
6569
+ ACTIVE
6570
+ SUSPENDED
6571
+ EXPIRED
6572
+ REVOKED
6573
+ TRANSFERRED
6574
+ }
6575
+
6442
6576
  """Represents a generic event in the audit log."""
6443
6577
  type Event {
6444
6578
  """The unique identifier across all event tables."""
@@ -6546,6 +6680,7 @@ type ExportError {
6546
6680
  """An enumeration of possible error codes for export operations."""
6547
6681
  enum ExportErrorCode {
6548
6682
  FORBIDDEN
6683
+ INTERNAL_ERROR
6549
6684
  INVALID
6550
6685
  NOT_FOUND
6551
6686
  REQUIRED
@@ -6792,6 +6927,7 @@ type FinancialError {
6792
6927
  """An enumeration of possible error codes for financial operations."""
6793
6928
  enum FinancialErrorCode {
6794
6929
  GRAPHQL_ERROR
6930
+ INTERNAL_ERROR
6795
6931
  INVALID
6796
6932
  NOT_FOUND
6797
6933
  REQUIRED
@@ -6994,6 +7130,15 @@ type FulfillmentCountableEdge {
6994
7130
  node: Fulfillment!
6995
7131
  }
6996
7132
 
7133
+ """
7134
+ How a catalog entity is fulfilled (SPEC-029). Source of truth for isDigital/isShippingRequired, which are derived projections.
7135
+ """
7136
+ enum FulfillmentKind {
7137
+ SHIPMENT
7138
+ DIGITAL_FILE
7139
+ SERVICE
7140
+ }
7141
+
6997
7142
  """Represents a line in a fulfillment."""
6998
7143
  type FulfillmentLine implements Node {
6999
7144
  """The Globally Unique ID of this object"""
@@ -7285,6 +7430,7 @@ type ImportError {
7285
7430
  """An enumeration of possible error codes for import operations."""
7286
7431
  enum ImportErrorCode {
7287
7432
  FORBIDDEN
7433
+ INTERNAL_ERROR
7288
7434
  INVALID
7289
7435
  NOT_FOUND
7290
7436
  REQUIRED
@@ -8188,6 +8334,7 @@ type MarketplaceConfiguration {
8188
8334
  automaticFulfillmentDigitalProducts: Boolean!
8189
8335
  defaultDigitalMaxDownloads: Int
8190
8336
  defaultDigitalUrlValidDays: Int
8337
+ revokeEntitlementsOnRefund: Boolean!
8191
8338
  trackInventoryByDefault: Boolean!
8192
8339
  name: String!
8193
8340
  defaultMailSenderName: String!
@@ -8242,6 +8389,11 @@ type MarketplaceConfiguration {
8242
8389
  """Supported countries for the marketplace."""
8243
8390
  supportedCountries: [String!]!
8244
8391
 
8392
+ """
8393
+ Which fulfillment kinds this marketplace allows on catalog entities (SPEC-029).
8394
+ """
8395
+ enabledFulfillmentKinds: [FulfillmentKind!]!
8396
+
8245
8397
  """The default country for the marketplace."""
8246
8398
  defaultCountry: String!
8247
8399
 
@@ -8460,6 +8612,7 @@ An enumeration of possible error codes for marketplace configuration operations.
8460
8612
  """
8461
8613
  enum MarketplaceConfigurationErrorCode {
8462
8614
  GRAPHQL_ERROR
8615
+ INTERNAL_ERROR
8463
8616
  INVALID
8464
8617
  }
8465
8618
 
@@ -8483,6 +8636,11 @@ input MarketplaceConfigurationInput {
8483
8636
  automaticFulfillmentDigitalProducts: Boolean = null
8484
8637
  defaultDigitalMaxDownloads: Int = null
8485
8638
  defaultDigitalUrlValidDays: Int = null
8639
+
8640
+ """
8641
+ Which fulfillment kinds this marketplace allows on catalog entities (SPEC-029).
8642
+ """
8643
+ enabledFulfillmentKinds: [FulfillmentKind!] = null
8486
8644
  trackInventoryByDefault: Boolean = null
8487
8645
  name: String = null
8488
8646
  description: String = null
@@ -9148,6 +9306,7 @@ type MetadataError {
9148
9306
  """An enumeration of possible error codes for metadata operations."""
9149
9307
  enum MetadataErrorCode {
9150
9308
  GRAPHQL_ERROR
9309
+ INTERNAL_ERROR
9151
9310
  INVALID
9152
9311
  NOT_FOUND
9153
9312
  PERMISSION_DENIED
@@ -9816,6 +9975,11 @@ type Mutation {
9816
9975
  """Complete checkout and create order."""
9817
9976
  checkoutComplete(checkoutId: ID!, storeSource: Boolean = false, poNumber: String = null, userOverride: ID = null, redirectUrl: String = null, paymentData: JSONString = null): CheckoutComplete!
9818
9977
 
9978
+ """
9979
+ Withdraw a customer's entitlement, invalidating any download links issued against it. Requires MANAGE_MARKETPLACE.
9980
+ """
9981
+ entitlementRevoke(id: ID!, reason: EntitlementRevokedReason! = OPERATOR): EntitlementRevoke!
9982
+
9819
9983
  """Create a new payout synchronously."""
9820
9984
  payoutCreate(input: PayoutCreateInput!): PayoutCreate! @deprecated(reason: "This will be removed on July 15, 2025. Use payoutCreateAsync instead.")
9821
9985
 
@@ -10578,6 +10742,7 @@ An enumeration of possible error codes for nautical configuration operations.
10578
10742
  """
10579
10743
  enum NauticalConfigurationErrorCode {
10580
10744
  GRAPHQL_ERROR
10745
+ INTERNAL_ERROR
10581
10746
  INVALID
10582
10747
  }
10583
10748
 
@@ -11402,6 +11567,7 @@ type NauticalOrderLine implements Node & ObjectWithMetadata {
11402
11567
  variantName: String!
11403
11568
  productSku: String
11404
11569
  isShippingRequired: Boolean!
11570
+ fulfillmentKind: OrdersNauticalOrderLineFulfillmentKindEnum!
11405
11571
  quantity: Int!
11406
11572
  quantityFulfilled: Int!
11407
11573
  currency: String!
@@ -11734,6 +11900,7 @@ type NotificationError {
11734
11900
  """An enumeration of possible error codes for notification operations."""
11735
11901
  enum NotificationErrorCode {
11736
11902
  GRAPHQL_ERROR
11903
+ INTERNAL_ERROR
11737
11904
  NOT_FOUND
11738
11905
  REQUIRED
11739
11906
  INVALID
@@ -12650,6 +12817,7 @@ type OrderLine implements Node & ObjectWithMetadata {
12650
12817
  variantName: String!
12651
12818
  productSku: String
12652
12819
  isShippingRequired: Boolean!
12820
+ fulfillmentKind: OrderOrderLineFulfillmentKindEnum!
12653
12821
  quantity: Int!
12654
12822
  quantityFulfilled: Int!
12655
12823
  quantityDeclined: Int!
@@ -12817,6 +12985,36 @@ type OrderMetrics {
12817
12985
  bySeller: [PieChartSegment!]
12818
12986
  }
12819
12987
 
12988
+ """order line | fulfillment kind"""
12989
+ enum OrderOrderLineFulfillmentKindEnum {
12990
+ """Shipment"""
12991
+ shipment
12992
+
12993
+ """Digital file"""
12994
+ digital_file
12995
+
12996
+ """Service"""
12997
+ service
12998
+
12999
+ """License key"""
13000
+ license_key
13001
+
13002
+ """Code"""
13003
+ code
13004
+
13005
+ """Gift card"""
13006
+ gift_card
13007
+
13008
+ """External provisioning"""
13009
+ external
13010
+
13011
+ """Booking"""
13012
+ booking
13013
+
13014
+ """Ticket"""
13015
+ ticket
13016
+ }
13017
+
12820
13018
  """Order source values."""
12821
13019
  enum OrderOrderSource {
12822
13020
  CHECKOUT
@@ -13119,6 +13317,36 @@ type OrdersByStatusType {
13119
13317
  count: Int
13120
13318
  }
13121
13319
 
13320
+ """nautical order line | fulfillment kind"""
13321
+ enum OrdersNauticalOrderLineFulfillmentKindEnum {
13322
+ """Shipment"""
13323
+ shipment
13324
+
13325
+ """Digital file"""
13326
+ digital_file
13327
+
13328
+ """Service"""
13329
+ service
13330
+
13331
+ """License key"""
13332
+ license_key
13333
+
13334
+ """Code"""
13335
+ code
13336
+
13337
+ """Gift card"""
13338
+ gift_card
13339
+
13340
+ """External provisioning"""
13341
+ external
13342
+
13343
+ """Booking"""
13344
+ booking
13345
+
13346
+ """Ticket"""
13347
+ ticket
13348
+ }
13349
+
13122
13350
  """
13123
13351
  A static page that can be manually added by a shop operator through the dashboard.
13124
13352
  """
@@ -13219,6 +13447,7 @@ type PageError {
13219
13447
  """An enumeration of possible error codes for page operations."""
13220
13448
  enum PageErrorCode {
13221
13449
  GRAPHQL_ERROR
13450
+ INTERNAL_ERROR
13222
13451
  INVALID
13223
13452
  NOT_FOUND
13224
13453
  REQUIRED
@@ -14026,6 +14255,7 @@ enum PermissionGroupErrorCode {
14026
14255
  ASSIGN_NON_STAFF_MEMBER
14027
14256
  DUPLICATED_INPUT_ITEM
14028
14257
  CANNOT_REMOVE_FROM_LAST_GROUP
14258
+ INTERNAL_ERROR
14029
14259
  LEFT_NOT_MANAGEABLE_PERMISSION
14030
14260
  OUT_OF_SCOPE_PERMISSION
14031
14261
  OUT_OF_SCOPE_USER
@@ -14375,6 +14605,7 @@ type PolicyError {
14375
14605
  """An enumeration of possible error codes for policy operations."""
14376
14606
  enum PolicyErrorCode {
14377
14607
  GRAPHQL_ERROR
14608
+ INTERNAL_ERROR
14378
14609
  INVALID
14379
14610
  NOT_FOUND
14380
14611
  REQUIRED
@@ -14582,6 +14813,11 @@ type Product implements Node & ObjectWithMetadata {
14582
14813
  """
14583
14814
  timeline(kinds: [TimelineEntryKind!] = null): [TimelineEntry!]!
14584
14815
 
14816
+ """
14817
+ Typed fulfillment kind (SPEC-029) — source of truth for isDigital/isShippingRequired
14818
+ """
14819
+ fulfillmentKind: FulfillmentKind!
14820
+
14585
14821
  """Sort order of the product"""
14586
14822
  sortOrder: Int
14587
14823
 
@@ -14885,6 +15121,11 @@ input ProductBulkCreateInput {
14885
15121
  """Set whether this product is digital."""
14886
15122
  isDigital: Boolean = null
14887
15123
 
15124
+ """
15125
+ Typed fulfillment kind (SPEC-029). Takes precedence over isDigital/isShippingRequired.
15126
+ """
15127
+ fulfillmentKind: FulfillmentKind = null
15128
+
14888
15129
  """Set whether this product allows price overrides."""
14889
15130
  isPriceOverrideAllowed: Boolean = null
14890
15131
  weight: WeightScalar = null
@@ -15081,6 +15322,11 @@ input ProductCreateInput {
15081
15322
  """
15082
15323
  isDigital: Boolean = null
15083
15324
 
15325
+ """
15326
+ Typed fulfillment kind (SPEC-029). Takes precedence over isDigital/isShippingRequired, which become derived projections of it.
15327
+ """
15328
+ fulfillmentKind: FulfillmentKind = null
15329
+
15084
15330
  """
15085
15331
  Set whether this product allows price overrides by default, will be controlled by product type if provided.
15086
15332
  """
@@ -15226,7 +15472,7 @@ enum ProductFieldEnum {
15226
15472
  }
15227
15473
 
15228
15474
  """
15229
- Product(id, publication_date, is_published, private_metadata, metadata, description, description_html, deleted_at, deleted_by_user, deleted_by_app, deletion_batch_uuid, external_id, external_source, external_inventory_id, tenant, seller, seo_title, seo_description, product_type, name, slug, search_vector, category, currency, minimal_variant_price_amount, updated_at, created_at, charge_taxes, weight, available_for_purchase, visible_in_listings, default_variant, cumulative_price_amount, override_price, override_currency, status, sub_status, is_price_override_allowed, is_shipping_required, is_digital, is_bundle, warnings, product_source, allow_seller_variants, minimal_variant_price, cumulative_price)
15475
+ Product(id, publication_date, is_published, private_metadata, metadata, description, description_html, deleted_at, deleted_by_user, deleted_by_app, deletion_batch_uuid, external_id, external_source, external_inventory_id, tenant, seller, seo_title, seo_description, product_type, name, slug, search_vector, category, currency, minimal_variant_price_amount, updated_at, created_at, charge_taxes, weight, available_for_purchase, visible_in_listings, default_variant, cumulative_price_amount, override_price, override_currency, status, sub_status, is_price_override_allowed, is_shipping_required, is_digital, fulfillment_kind, is_bundle, warnings, product_source, allow_seller_variants, minimal_variant_price, cumulative_price)
15230
15476
  """
15231
15477
  input ProductFilterInput {
15232
15478
  isPublished: Boolean
@@ -15564,6 +15810,11 @@ input ProductInput {
15564
15810
  """
15565
15811
  isDigital: Boolean = null
15566
15812
 
15813
+ """
15814
+ Typed fulfillment kind (SPEC-029). Takes precedence over isDigital/isShippingRequired, which become derived projections of it.
15815
+ """
15816
+ fulfillmentKind: FulfillmentKind = null
15817
+
15567
15818
  """
15568
15819
  Set whether this product allows price overrides by default, will be controlled by product type if provided.
15569
15820
  """
@@ -15820,6 +16071,11 @@ type ProductType implements Node & ObjectWithMetadata {
15820
16071
  last: Int = null
15821
16072
  ): ProductTypeAuditEventCountableConnection!
15822
16073
 
16074
+ """
16075
+ Typed fulfillment kind (SPEC-029) — source of truth for isDigital/isShippingRequired
16076
+ """
16077
+ fulfillmentKind: FulfillmentKind!
16078
+
15823
16079
  """Legacy indicator, always true"""
15824
16080
  hasVariants: Boolean!
15825
16081
 
@@ -15996,7 +16252,7 @@ enum ProductTypeEnum {
15996
16252
  }
15997
16253
 
15998
16254
  """
15999
- ProductType(id, private_metadata, metadata, description, description_html, external_id, external_source, external_inventory_id, tenant, name, slug, is_shipping_required, is_locked, is_digital, externally_managed, weight, is_price_override_allowed, created_by)
16255
+ ProductType(id, private_metadata, metadata, description, description_html, external_id, external_source, external_inventory_id, tenant, name, slug, is_shipping_required, is_locked, is_digital, fulfillment_kind, externally_managed, weight, is_price_override_allowed, created_by)
16000
16256
  """
16001
16257
  input ProductTypeFilterInput {
16002
16258
  isDigital: Boolean
@@ -16022,6 +16278,7 @@ input ProductTypeInput {
16022
16278
  variantAttributes: [ID!] = null
16023
16279
  isShippingRequired: Boolean = null
16024
16280
  isDigital: Boolean = null
16281
+ fulfillmentKind: FulfillmentKind = null
16025
16282
  weight: WeightScalar = null
16026
16283
  taxCode: String = null
16027
16284
 
@@ -16177,6 +16434,11 @@ type ProductVariant implements Node & ObjectWithMetadata {
16177
16434
  """
16178
16435
  currency: String!
16179
16436
 
16437
+ """
16438
+ Typed fulfillment kind (SPEC-029) — source of truth for isDigital/isShippingRequired
16439
+ """
16440
+ fulfillmentKind: FulfillmentKind!
16441
+
16180
16442
  """Status of the variant"""
16181
16443
  status: ProductVariantStatus!
16182
16444
 
@@ -16404,6 +16666,11 @@ input ProductVariantBulkCreateInput {
16404
16666
  """Set whether this variant is digital."""
16405
16667
  isDigital: Boolean = null
16406
16668
 
16669
+ """
16670
+ Typed fulfillment kind (SPEC-029). Takes precedence over isDigital/isShippingRequired.
16671
+ """
16672
+ fulfillmentKind: FulfillmentKind = null
16673
+
16407
16674
  """Set whether this variant allows price overrides."""
16408
16675
  isPriceOverrideAllowed: Boolean = null
16409
16676
 
@@ -16520,6 +16787,11 @@ input ProductVariantCreateInput {
16520
16787
  """
16521
16788
  isDigital: Boolean = null
16522
16789
 
16790
+ """
16791
+ Typed fulfillment kind (SPEC-029). Takes precedence over isDigital/isShippingRequired, which become derived projections of it.
16792
+ """
16793
+ fulfillmentKind: FulfillmentKind = null
16794
+
16523
16795
  """
16524
16796
  Set whether this variant allows price overrides by default, will be overridden by product type attached to product if available.
16525
16797
  """
@@ -16552,7 +16824,7 @@ type ProductVariantDelete {
16552
16824
  }
16553
16825
 
16554
16826
  """
16555
- ProductVariant(id, sort_order, private_metadata, metadata, created_at, updated_at, deleted_at, deleted_by_user, deleted_by_app, deletion_batch_uuid, external_id, external_source, external_inventory_id, tenant, seo_title, seo_description, sku, name, is_user_defined_name, nautical_stock_number, status, sub_status, currency, price_amount, product, track_inventory, cost_price_amount, weight, seller, published_at, is_published, override_currency, search_vector, allow_backorders, is_price_override_allowed, is_shipping_required, is_digital, warnings, price, cost_price)
16827
+ ProductVariant(id, sort_order, private_metadata, metadata, created_at, updated_at, deleted_at, deleted_by_user, deleted_by_app, deletion_batch_uuid, external_id, external_source, external_inventory_id, tenant, seo_title, seo_description, sku, name, is_user_defined_name, nautical_stock_number, status, sub_status, currency, price_amount, product, track_inventory, cost_price_amount, weight, seller, published_at, is_published, override_currency, search_vector, allow_backorders, is_price_override_allowed, is_shipping_required, is_digital, fulfillment_kind, warnings, price, cost_price)
16556
16828
  """
16557
16829
  input ProductVariantFilterInput {
16558
16830
  isPublished: Boolean
@@ -16689,6 +16961,11 @@ input ProductVariantInput {
16689
16961
  """
16690
16962
  isDigital: Boolean = null
16691
16963
 
16964
+ """
16965
+ Typed fulfillment kind (SPEC-029). Takes precedence over isDigital/isShippingRequired, which become derived projections of it.
16966
+ """
16967
+ fulfillmentKind: FulfillmentKind = null
16968
+
16692
16969
  """
16693
16970
  Set whether this variant allows price overrides by default, will be overridden by product type attached to product if available.
16694
16971
  """
@@ -17087,6 +17364,7 @@ enum ProductWarningEnum {
17087
17364
  VARIANT_ATTRIBUTE_VALUE_REQUIRED
17088
17365
  DEFAULT_VARIANT_REQUIRED
17089
17366
  SELLER_PAUSED
17367
+ SELLER_DIGITAL_SUSPENDED
17090
17368
  }
17091
17369
 
17092
17370
  """Result of products export mutation."""
@@ -17819,6 +18097,23 @@ type Query {
17819
18097
  last: Int = null
17820
18098
  ): RefundCountableConnection!
17821
18099
 
18100
+ """
18101
+ List entitlements. Requires MANAGE_ORDERS. Marketplace operators see every entitlement; a seller sees only claims against their own goods.
18102
+ """
18103
+ entitlements(
18104
+ """Returns the items in the list that come before the specified cursor."""
18105
+ before: String = null
18106
+
18107
+ """Returns the items in the list that come after the specified cursor."""
18108
+ after: String = null
18109
+
18110
+ """Returns the first n items from the list."""
18111
+ first: Int = null
18112
+
18113
+ """Returns the items in the list that come after the specified cursor."""
18114
+ last: Int = null
18115
+ ): EntitlementCountableConnection!
18116
+
17822
18117
  """Look up a payout by ID. Requires MANAGE_PAYOUTS permission."""
17823
18118
  payout(id: ID!): Payout
17824
18119
 
@@ -18503,6 +18798,36 @@ enum RecipientTypeEnum {
18503
18798
  STAFF_MEMBER_MARKETPLACE_OR_SELLER @deprecated(reason: "Use STAFF_MEMBER_MARKETPLACE or STAFF_MEMBER_SELLER instead. This value will be deprecated on September 30, 2025")
18504
18799
  }
18505
18800
 
18801
+ """
18802
+ A single use of an entitlement — a download now, a scan or activation later.
18803
+ """
18804
+ type RedemptionEvent implements Node {
18805
+ """The Globally Unique ID of this object"""
18806
+ id: ID!
18807
+
18808
+ """When the redemption happened."""
18809
+ occurredAt: DateTime!
18810
+
18811
+ """What kind of use this was."""
18812
+ eventType: RedemptionEventType!
18813
+
18814
+ """
18815
+ Key that made this redemption idempotent, when the producer supplied one. Downloads have none — every download is a distinct use.
18816
+ """
18817
+ idempotencyKey: String
18818
+ }
18819
+
18820
+ """
18821
+ A use of an entitlement. Only DOWNLOAD is produced in v1; the remaining values are reserved for the fulfillment kinds whose stacks have not shipped.
18822
+ """
18823
+ enum RedemptionEventType {
18824
+ DOWNLOAD
18825
+ ACTIVATION
18826
+ REVEAL
18827
+ SCAN
18828
+ CHECK_IN
18829
+ }
18830
+
18506
18831
  """
18507
18832
  Represents a refund scoped to a nautical order, seller order, or order line.
18508
18833
  """
@@ -19562,6 +19887,9 @@ type Seller implements Node & ObjectWithMetadata {
19562
19887
  """List of seller identification values (e.g., tax IDs)"""
19563
19888
  identification: [String!]
19564
19889
 
19890
+ """Whether this seller may sell digital-kind products (SPEC-029)"""
19891
+ digitalSalesStatus: SellersSellerDigitalSalesStatusEnum!
19892
+
19565
19893
  """Reason for agreement decision"""
19566
19894
  agreementDecisionReason: String!
19567
19895
 
@@ -20133,6 +20461,15 @@ type SellerDataUpdate {
20133
20461
  sellerErrors: [SellerError!]!
20134
20462
  }
20135
20463
 
20464
+ """
20465
+ Whether a seller may sell digital-kind products (SPEC-029). SUSPENDED unpublishes the seller's digital products with a stamped warning.
20466
+ """
20467
+ enum SellerDigitalSalesStatus {
20468
+ NOT_REQUESTED
20469
+ APPROVED
20470
+ SUSPENDED
20471
+ }
20472
+
20136
20473
  """Represents errors from seller operations."""
20137
20474
  type SellerError {
20138
20475
  field: String
@@ -20223,7 +20560,7 @@ enum SellerExternalPayoutSource {
20223
20560
  }
20224
20561
 
20225
20562
  """
20226
- Seller(id, private_metadata, metadata, created_at, updated_at, tenant, external_payout_account_id, external_payout_source, external_payout_onboarding_url, company_name, slug, is_marketplace_seller, logo, identification, default_shipping_address, default_billing_address, owner, default_currency, fulfilled_by_marketplace, status, agreement_decision_reason, banner, store_description, external_payouts_enabled, external_payout_schedule, external_payout_status_synced_at)
20563
+ Seller(id, private_metadata, metadata, created_at, updated_at, tenant, external_payout_account_id, external_payout_source, external_payout_onboarding_url, company_name, slug, is_marketplace_seller, logo, identification, default_shipping_address, default_billing_address, owner, default_currency, fulfilled_by_marketplace, status, digital_sales_status, agreement_decision_reason, banner, store_description, external_payouts_enabled, external_payout_schedule, external_payout_status_synced_at)
20227
20564
  """
20228
20565
  input SellerFilterInput {
20229
20566
  AND: SellerFilterInput
@@ -20637,6 +20974,11 @@ input SellerUpdateInput {
20637
20974
  """New seller status"""
20638
20975
  status: String = null
20639
20976
 
20977
+ """
20978
+ Whether this seller may sell digital-kind products (SPEC-029). Requires MANAGE_MARKETPLACE. SUSPENDED unpublishes the seller's digital products with a stamped warning.
20979
+ """
20980
+ digitalSalesStatus: SellerDigitalSalesStatus = null
20981
+
20640
20982
  """ID of user to set as owner"""
20641
20983
  user: ID = null
20642
20984
 
@@ -20727,6 +21069,18 @@ type SellerWithOwnerCreate {
20727
21069
  sellerErrors: [SellerError!]!
20728
21070
  }
20729
21071
 
21072
+ """seller | digital sales status"""
21073
+ enum SellersSellerDigitalSalesStatusEnum {
21074
+ """Not Requested"""
21075
+ NOT_REQUESTED
21076
+
21077
+ """Approved"""
21078
+ APPROVED
21079
+
21080
+ """Suspended"""
21081
+ SUSPENDED
21082
+ }
21083
+
20730
21084
  input SeoInput {
20731
21085
  title: String = null
20732
21086
  description: String = null
@@ -21147,6 +21501,7 @@ enum ShopErrorCode {
21147
21501
  ALREADY_EXISTS
21148
21502
  CANNOT_FETCH_TAX_RATES
21149
21503
  GRAPHQL_ERROR
21504
+ INTERNAL_ERROR
21150
21505
  INVALID
21151
21506
  NOT_FOUND
21152
21507
  PERMISSION_DENIED
@@ -22535,6 +22890,23 @@ type User implements Node & ObjectWithMetadata {
22535
22890
  last: Int = null
22536
22891
  ): WishlistCountableConnection!
22537
22892
 
22893
+ """
22894
+ The customer's library — everything they own, including items whose download links have expired. Owner-scoped: only ever the requesting user's own entitlements.
22895
+ """
22896
+ entitlements(
22897
+ """Returns the items in the list that come before the specified cursor."""
22898
+ before: String = null
22899
+
22900
+ """Returns the items in the list that come after the specified cursor."""
22901
+ after: String = null
22902
+
22903
+ """Returns the first n items from the list."""
22904
+ first: Int = null
22905
+
22906
+ """Returns the items in the list that come after the specified cursor."""
22907
+ last: Int = null
22908
+ ): EntitlementCountableConnection!
22909
+
22538
22910
  """List of documents associated with the user."""
22539
22911
  documents: [Document!]!
22540
22912
 
@@ -22808,6 +23180,7 @@ type VendorPayout implements Node & ObjectWithMetadata {
22808
23180
  gateway: String!
22809
23181
  included: Boolean!
22810
23182
  statusMessage: String
23183
+ externalBatchId: String!
22811
23184
 
22812
23185
  """Adjustment amount."""
22813
23186
  adjustmentAmount: Float! @deprecated(reason: "This will be removed on August 6, 2025. Use the adjustment field instead.")
@@ -23747,6 +24120,7 @@ enum WarehouseErrorCode {
23747
24120
  ALREADY_EXISTS
23748
24121
  FORBIDDEN
23749
24122
  GRAPHQL_ERROR
24123
+ INTERNAL_ERROR
23750
24124
  INVALID
23751
24125
  NOT_FOUND
23752
24126
  REQUIRED
@@ -23937,6 +24311,7 @@ type WebhookError {
23937
24311
  """An enumeration of possible error codes for webhook operations."""
23938
24312
  enum WebhookErrorCode {
23939
24313
  GRAPHQL_ERROR
24314
+ INTERNAL_ERROR
23940
24315
  INVALID
23941
24316
  NOT_FOUND
23942
24317
  REQUIRED
@@ -24019,6 +24394,10 @@ enum WebhookEventTypeEnum {
24019
24394
  COLLECTION_DELETED
24020
24395
  COLLECTION_UPDATED
24021
24396
  CUSTOMER_CREATED
24397
+ DIGITAL_CONTENT_URL_CREATED
24398
+ DIGITAL_CONTENT_URL_REVOKED
24399
+ ENTITLEMENT_GRANTED
24400
+ ENTITLEMENT_REVOKED
24022
24401
  CUSTOMER_UPDATED
24023
24402
  CUSTOMER_DELETED
24024
24403
  FULFILLMENT_CREATED
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nautical-commerce/graphql-schema",
3
- "version": "4.5.2",
3
+ "version": "4.7.0",
4
4
  "description": "Traide API GraphQL Schema",
5
5
  "main": "./nautical/schema.graphql",
6
6
  "scripts": {