@nautical-commerce/graphql-schema 3.23.0 → 4.0.1

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.
@@ -2760,6 +2760,19 @@ input BundleUpdateInput {
2760
2760
  components: [BundleItemInput!] = null
2761
2761
  }
2762
2762
 
2763
+ """Parsed CSV structure plus mapping suggestions."""
2764
+ type CSVImportMetadata {
2765
+ headers: [String!]!
2766
+ rowCount: Int!
2767
+
2768
+ """First values per column"""
2769
+ examples: JSONString!
2770
+
2771
+ """Value-shape profiles per column"""
2772
+ profiles: JSONString!
2773
+ suggestions: [MappingSuggestionType!]!
2774
+ }
2775
+
2763
2776
  """CSV file metadata extracted during parsing."""
2764
2777
  type CSVMetadata {
2765
2778
  """Column headers from the CSV"""
@@ -2772,6 +2785,14 @@ type CSVMetadata {
2772
2785
  examples: JSONString!
2773
2786
  }
2774
2787
 
2788
+ """Generated CSV import template (live from marketplace config)."""
2789
+ type CSVTemplateType {
2790
+ filename: String!
2791
+
2792
+ """CSV content — trigger a client-side download"""
2793
+ content: String!
2794
+ }
2795
+
2775
2796
  """Result of catalogExport mutation."""
2776
2797
  type CatalogExport {
2777
2798
  """Whether the export was successful."""
@@ -4195,6 +4216,13 @@ enum ConfigurationTypeFieldEnum {
4195
4216
  OUTPUT_SECRET
4196
4217
  }
4197
4218
 
4219
+ """Result of confirm import mapping mutation."""
4220
+ type ConfirmImportMapping {
4221
+ importFile: ImportFile
4222
+ taskId: String
4223
+ importErrors: [ImportError!]!
4224
+ }
4225
+
4198
4226
  """Content page or block."""
4199
4227
  type Content implements Node {
4200
4228
  """The Globally Unique ID of this object"""
@@ -4757,6 +4785,33 @@ type CreditCard {
4757
4785
  expYear: Int
4758
4786
  }
4759
4787
 
4788
+ """import row | status"""
4789
+ enum CsvImportRowStatusEnum {
4790
+ """Staged, not yet mapped."""
4791
+ pending
4792
+
4793
+ """Mapped to the canonical intermediate."""
4794
+ mapped
4795
+
4796
+ """Validated; loads cleanly."""
4797
+ valid
4798
+
4799
+ """Loads with gaps (product lands as INCOMPLETE_DATA)."""
4800
+ partial
4801
+
4802
+ """Cannot load; quarantined with row errors."""
4803
+ invalid
4804
+
4805
+ """Entities created/updated."""
4806
+ loaded
4807
+
4808
+ """Load attempted and failed."""
4809
+ failed
4810
+
4811
+ """Deliberately excluded from the load."""
4812
+ skipped
4813
+ }
4814
+
4760
4815
  """Result of custom attribute assign mutation."""
4761
4816
  type CustomAttributeAssign {
4762
4817
  """The template with assigned custom attributes."""
@@ -7251,6 +7306,11 @@ type ImportFile implements Node & Job {
7251
7306
 
7252
7307
  """List of import events"""
7253
7308
  events: [ImportEvent!]!
7309
+
7310
+ """
7311
+ Pipeline metadata: parse output (headers, examples, profiles), dry_run summary after validation, load_summary after loading.
7312
+ """
7313
+ metadata: JSONString!
7254
7314
  }
7255
7315
 
7256
7316
  """A connection to a list of items."""
@@ -7275,7 +7335,7 @@ type ImportFileCountableEdge {
7275
7335
  }
7276
7336
 
7277
7337
  """
7278
- ImportFile(id, status, message, created_at, updated_at, tenant, user, app, content_file)
7338
+ ImportFile(id, status, message, created_at, updated_at, tenant, user, app, content_file, metadata, import_config, seller)
7279
7339
  """
7280
7340
  input ImportFileFilterInput {
7281
7341
  status: JobStatusEnum
@@ -7314,6 +7374,45 @@ input ImportProductsInput {
7314
7374
  batchSize: Int = 100
7315
7375
  }
7316
7376
 
7377
+ """One staged CSV row with validation state."""
7378
+ type ImportRow implements Node {
7379
+ """The Globally Unique ID of this object"""
7380
+ id: ID!
7381
+ rowNumber: Int!
7382
+ groupKey: String!
7383
+ status: CsvImportRowStatusEnum!
7384
+
7385
+ """Structured row errors [{field, code, message, severity}]"""
7386
+ errors: JSONString!
7387
+
7388
+ """Original header→value dict"""
7389
+ raw: JSONString!
7390
+
7391
+ """Canonical mapped form (v1)"""
7392
+ mapped: JSONString
7393
+ }
7394
+
7395
+ """A connection to a list of items."""
7396
+ type ImportRowCountableConnection {
7397
+ """Pagination data for this connection"""
7398
+ pageInfo: PageInfo!
7399
+
7400
+ """Contains the nodes in this connection"""
7401
+ edges: [ImportRowCountableEdge!]!
7402
+
7403
+ """Total quantity of existing nodes."""
7404
+ totalCount: Int!
7405
+ }
7406
+
7407
+ """An edge in a connection."""
7408
+ type ImportRowCountableEdge {
7409
+ """A cursor for use in pagination"""
7410
+ cursor: String!
7411
+
7412
+ """The item at the end of the edge"""
7413
+ node: ImportRow!
7414
+ }
7415
+
7317
7416
  """Top performing categories report."""
7318
7417
  type InReportTopPerformingCategoriesType {
7319
7418
  """Category of the metric."""
@@ -7993,6 +8092,21 @@ type MCPConfigurationUpdate {
7993
8092
  mcpConfigurationErrors: [TenantError!]!
7994
8093
  }
7995
8094
 
8095
+ """One suggested header→field mapping with confidence."""
8096
+ type MappingSuggestionType {
8097
+ """CSV column header"""
8098
+ header: String!
8099
+
8100
+ """Canonical target field, 'attribute:<id>', or 'attribute:auto:<name>'"""
8101
+ target: String!
8102
+
8103
+ """0.0–1.0"""
8104
+ confidence: Float!
8105
+
8106
+ """Why the engine suggests this"""
8107
+ rationale: String!
8108
+ }
8109
+
7996
8110
  """Product or variant margin range"""
7997
8111
  type Margin {
7998
8112
  """Minimum margin percentage."""
@@ -10294,11 +10408,21 @@ type Mutation {
10294
10408
  productsExport(input: ExportProductsInput!): ProductsExport!
10295
10409
 
10296
10410
  """Upload CSV file for product import and parse its structure."""
10297
- createImportFile(file: Upload!): CreateImportFile!
10411
+ createImportFile(file: Upload!, sellerId: ID = null): CreateImportFile!
10298
10412
 
10299
10413
  """Start processing CSV product import with field mappings."""
10300
10414
  startCsvImport(input: ImportProductsInput!): StartCSVImport!
10301
10415
 
10416
+ """
10417
+ Confirm the header→field mapping for an import and start staging + validation (dry run). Requires MANAGE_PRODUCTS permission.
10418
+ """
10419
+ confirmImportMapping(importFileId: ID!, mappings: JSONString!, attributeStrategy: String! = "explicit_columns", defaultProductTypeId: ID = null, defaultCategoryId: ID = null, warehouseId: ID = null, saveProfileAs: String = null): ConfirmImportMapping!
10420
+
10421
+ """
10422
+ Start loading a staged+validated import into the catalog. Requires a completed dry run. Requires MANAGE_PRODUCTS permission.
10423
+ """
10424
+ startImportLoad(importFileId: ID!): StartImportLoad!
10425
+
10302
10426
  """Update a tenant."""
10303
10427
  tenantUpdate(id: ID!, input: TenantUpdateInput!): TenantUpdate!
10304
10428
 
@@ -17990,6 +18114,36 @@ type Query {
17990
18114
  last: Int = null
17991
18115
  ): ImportFileCountableConnection!
17992
18116
 
18117
+ """
18118
+ Parsed structure plus mapping suggestions for an import file. Requires MANAGE_PRODUCTS permission.
18119
+ """
18120
+ importFileMetadata(id: ID!): CSVImportMetadata
18121
+
18122
+ """
18123
+ Generate a CSV import template from live marketplace configuration (canonical columns + product-template attributes). Requires MANAGE_PRODUCTS.
18124
+ """
18125
+ importCsvTemplate(productTypeIds: [ID!] = null): CSVTemplateType!
18126
+
18127
+ """
18128
+ Staged rows for an import file, filterable by status. Requires MANAGE_PRODUCTS permission.
18129
+ """
18130
+ importRows(
18131
+ importFileId: ID!
18132
+ status: String = null
18133
+
18134
+ """Returns the items in the list that come before the specified cursor."""
18135
+ before: String = null
18136
+
18137
+ """Returns the items in the list that come after the specified cursor."""
18138
+ after: String = null
18139
+
18140
+ """Returns the first n items from the list."""
18141
+ first: Int = null
18142
+
18143
+ """Returns the items in the list that come after the specified cursor."""
18144
+ last: Int = null
18145
+ ): ImportRowCountableConnection!
18146
+
17993
18147
  """List journal entries. Requires MANAGE_PAYOUTS permission."""
17994
18148
  journalEntries(
17995
18149
  filter: JournalEntryFilterInput
@@ -19234,6 +19388,9 @@ type Seller implements Node & ObjectWithMetadata {
19234
19388
  """Store description (HTML)"""
19235
19389
  storeDescription: String!
19236
19390
 
19391
+ """Payout schedule interval (manual, daily, weekly, monthly)"""
19392
+ externalPayoutSchedule: String
19393
+
19237
19394
  """Primary key of the seller"""
19238
19395
  pk: Int!
19239
19396
 
@@ -19285,9 +19442,6 @@ type Seller implements Node & ObjectWithMetadata {
19285
19442
  """Whether payouts are enabled for this seller"""
19286
19443
  externalPayoutStatus: Boolean
19287
19444
 
19288
- """Payout schedule interval (manual, daily, weekly, monthly)"""
19289
- externalPayoutSchedule: String
19290
-
19291
19445
  """Seller onboarding checklists"""
19292
19446
  checklists: [SellerOnboardingChecklist!]!
19293
19447
 
@@ -19889,7 +20043,7 @@ enum SellerExternalPayoutSource {
19889
20043
  }
19890
20044
 
19891
20045
  """
19892
- 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)
20046
+ 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)
19893
20047
  """
19894
20048
  input SellerFilterInput {
19895
20049
  status: [SellerStatusFilter!]
@@ -21278,6 +21432,13 @@ type StartCSVImport {
21278
21432
  importErrors: [ImportError!]!
21279
21433
  }
21280
21434
 
21435
+ """Result of start import load mutation."""
21436
+ type StartImportLoad {
21437
+ importFile: ImportFile
21438
+ taskId: String
21439
+ importErrors: [ImportError!]!
21440
+ }
21441
+
21281
21442
  """Represents stock of a product variant at a warehouse."""
21282
21443
  type Stock implements Node {
21283
21444
  """The Globally Unique ID of this object"""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nautical-commerce/graphql-schema",
3
- "version": "3.23.0",
3
+ "version": "4.0.1",
4
4
  "description": "Traide API GraphQL Schema",
5
5
  "main": "./nautical/schema.graphql",
6
6
  "scripts": {