@cloudcart/dev-mcp 0.2.4 → 0.2.6

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/data/admin.json CHANGED
@@ -539,6 +539,78 @@
539
539
  "isDeprecated": false,
540
540
  "deprecationReason": null
541
541
  },
542
+ {
543
+ "name": "googleProductCategories",
544
+ "description": "Search Google product categories by substring (case-insensitive). Use this to populate a taxonomy picker before calling `categorySetGoogleTaxonomy` / `categoriesBulkSetGoogleTaxonomy`.",
545
+ "args": [
546
+ {
547
+ "name": "query",
548
+ "description": "Substring filter. Empty/null returns the first `limit` records.",
549
+ "type": {
550
+ "kind": "SCALAR",
551
+ "name": "String",
552
+ "ofType": null
553
+ },
554
+ "defaultValue": null
555
+ },
556
+ {
557
+ "name": "limit",
558
+ "description": "Max records to return (default 50, max 200).",
559
+ "type": {
560
+ "kind": "SCALAR",
561
+ "name": "Int",
562
+ "ofType": null
563
+ },
564
+ "defaultValue": "50"
565
+ }
566
+ ],
567
+ "type": {
568
+ "kind": "NON_NULL",
569
+ "name": null,
570
+ "ofType": {
571
+ "kind": "LIST",
572
+ "name": null,
573
+ "ofType": {
574
+ "kind": "NON_NULL",
575
+ "name": null,
576
+ "ofType": {
577
+ "kind": "OBJECT",
578
+ "name": "GoogleProductCategory",
579
+ "ofType": null
580
+ }
581
+ }
582
+ }
583
+ },
584
+ "isDeprecated": false,
585
+ "deprecationReason": null
586
+ },
587
+ {
588
+ "name": "googleProductCategory",
589
+ "description": "Look up a single Google product category by its numeric id.",
590
+ "args": [
591
+ {
592
+ "name": "id",
593
+ "description": "Google taxonomy id.",
594
+ "type": {
595
+ "kind": "NON_NULL",
596
+ "name": null,
597
+ "ofType": {
598
+ "kind": "SCALAR",
599
+ "name": "ID",
600
+ "ofType": null
601
+ }
602
+ },
603
+ "defaultValue": null
604
+ }
605
+ ],
606
+ "type": {
607
+ "kind": "OBJECT",
608
+ "name": "GoogleProductCategory",
609
+ "ofType": null
610
+ },
611
+ "isDeprecated": false,
612
+ "deprecationReason": null
613
+ },
542
614
  {
543
615
  "name": "category",
544
616
  "description": "Find a single category by ID.",
@@ -1635,6 +1707,57 @@
1635
1707
  "isDeprecated": false,
1636
1708
  "deprecationReason": null
1637
1709
  },
1710
+ {
1711
+ "name": "missingProductSubscribers",
1712
+ "description": "List subscribers waiting for a specific variant to come back in stock. Use this after `missingProducts(...)` returns variant ids — the result is the same set the admin sees when clicking the `Subscribers (n)` button on the missing-products page. Excludes subscribers that have already been notified.",
1713
+ "args": [
1714
+ {
1715
+ "name": "variantId",
1716
+ "description": "Variant ID (from `MissingProduct.variantId`).",
1717
+ "type": {
1718
+ "kind": "NON_NULL",
1719
+ "name": null,
1720
+ "ofType": {
1721
+ "kind": "SCALAR",
1722
+ "name": "ID",
1723
+ "ofType": null
1724
+ }
1725
+ },
1726
+ "defaultValue": null
1727
+ },
1728
+ {
1729
+ "name": "page",
1730
+ "description": "Page number (default 1).",
1731
+ "type": {
1732
+ "kind": "SCALAR",
1733
+ "name": "Int",
1734
+ "ofType": null
1735
+ },
1736
+ "defaultValue": null
1737
+ },
1738
+ {
1739
+ "name": "perPage",
1740
+ "description": "Items per page (default 25, max 100).",
1741
+ "type": {
1742
+ "kind": "SCALAR",
1743
+ "name": "Int",
1744
+ "ofType": null
1745
+ },
1746
+ "defaultValue": null
1747
+ }
1748
+ ],
1749
+ "type": {
1750
+ "kind": "NON_NULL",
1751
+ "name": null,
1752
+ "ofType": {
1753
+ "kind": "OBJECT",
1754
+ "name": "MissingProductSubscriberConnection",
1755
+ "ofType": null
1756
+ }
1757
+ },
1758
+ "isDeprecated": false,
1759
+ "deprecationReason": null
1760
+ },
1638
1761
  {
1639
1762
  "name": "stockStatuses",
1640
1763
  "description": "Get all stock statuses.",
@@ -15945,6 +16068,68 @@
15945
16068
  "isDeprecated": false,
15946
16069
  "deprecationReason": null
15947
16070
  },
16071
+ {
16072
+ "name": "getOrderInvoicePdf",
16073
+ "description": "Download the invoice PDF for an order. Returns the binary as base64 in `pdfContent`. The order must already have an invoice number — call `generateInvoiceNumber` first if `Order.documents.invoiceNumber` is null.",
16074
+ "args": [
16075
+ {
16076
+ "name": "id",
16077
+ "description": "Order ID.",
16078
+ "type": {
16079
+ "kind": "NON_NULL",
16080
+ "name": null,
16081
+ "ofType": {
16082
+ "kind": "SCALAR",
16083
+ "name": "ID",
16084
+ "ofType": null
16085
+ }
16086
+ },
16087
+ "defaultValue": null
16088
+ }
16089
+ ],
16090
+ "type": {
16091
+ "kind": "NON_NULL",
16092
+ "name": null,
16093
+ "ofType": {
16094
+ "kind": "OBJECT",
16095
+ "name": "OrderDocumentPdfResult",
16096
+ "ofType": null
16097
+ }
16098
+ },
16099
+ "isDeprecated": false,
16100
+ "deprecationReason": null
16101
+ },
16102
+ {
16103
+ "name": "getOrderReceiptPdf",
16104
+ "description": "Download the fiscal receipt PDF for an order. Returns the binary as base64 in `pdfContent`. The order must already have a receipt number (`Order.documents.receiptNumber`).",
16105
+ "args": [
16106
+ {
16107
+ "name": "id",
16108
+ "description": "Order ID.",
16109
+ "type": {
16110
+ "kind": "NON_NULL",
16111
+ "name": null,
16112
+ "ofType": {
16113
+ "kind": "SCALAR",
16114
+ "name": "ID",
16115
+ "ofType": null
16116
+ }
16117
+ },
16118
+ "defaultValue": null
16119
+ }
16120
+ ],
16121
+ "type": {
16122
+ "kind": "NON_NULL",
16123
+ "name": null,
16124
+ "ofType": {
16125
+ "kind": "OBJECT",
16126
+ "name": "OrderDocumentPdfResult",
16127
+ "ofType": null
16128
+ }
16129
+ },
16130
+ "isDeprecated": false,
16131
+ "deprecationReason": null
16132
+ },
15948
16133
  {
15949
16134
  "name": "toggleNotifyCustomer",
15950
16135
  "description": "Toggle customer notification setting on an order.",
@@ -16470,7 +16655,7 @@
16470
16655
  "deprecationReason": null
16471
16656
  },
16472
16657
  {
16473
- "name": "bulkChangeOrderStatus",
16658
+ "name": "ordersBulkChangeStatus",
16474
16659
  "description": "Bulk change status for multiple orders.",
16475
16660
  "args": [
16476
16661
  {
@@ -16509,7 +16694,7 @@
16509
16694
  "deprecationReason": null
16510
16695
  },
16511
16696
  {
16512
- "name": "bulkArchiveOrders",
16697
+ "name": "ordersBulkArchive",
16513
16698
  "description": "Bulk archive or unarchive multiple orders.",
16514
16699
  "args": [
16515
16700
  {
@@ -16847,32 +17032,79 @@
16847
17032
  "deprecationReason": null
16848
17033
  },
16849
17034
  {
16850
- "name": "createVariant",
16851
- "description": "Create a new variant for a product.",
17035
+ "name": "productsBulkDelete",
17036
+ "description": "Bulk-delete products. Mirrors the admin product-listing bulk delete: immediately marks the products inactive + soft-deleted (so they disappear from the storefront and from search), then queues `App\\Jobs\\Product\\BatchProductDelete` for the actual row + file removal. The mutation returns as soon as the job is enqueued — physical deletion happens asynchronously on the `system3` worker.",
16852
17037
  "args": [
16853
17038
  {
16854
- "name": "productId",
16855
- "description": "Product ID.",
17039
+ "name": "ids",
17040
+ "description": "Product IDs to delete. Non-existent / already-deleted ids are returned in `skippedIds`.",
16856
17041
  "type": {
16857
17042
  "kind": "NON_NULL",
16858
17043
  "name": null,
16859
17044
  "ofType": {
16860
- "kind": "SCALAR",
16861
- "name": "ID",
16862
- "ofType": null
17045
+ "kind": "LIST",
17046
+ "name": null,
17047
+ "ofType": {
17048
+ "kind": "NON_NULL",
17049
+ "name": null,
17050
+ "ofType": {
17051
+ "kind": "SCALAR",
17052
+ "name": "ID",
17053
+ "ofType": null
17054
+ }
17055
+ }
17056
+ }
17057
+ },
17058
+ "defaultValue": null
17059
+ }
17060
+ ],
17061
+ "type": {
17062
+ "kind": "NON_NULL",
17063
+ "name": null,
17064
+ "ofType": {
17065
+ "kind": "OBJECT",
17066
+ "name": "BulkDeleteProductsResult",
17067
+ "ofType": null
17068
+ }
17069
+ },
17070
+ "isDeprecated": false,
17071
+ "deprecationReason": null
17072
+ },
17073
+ {
17074
+ "name": "productsBulkSetActive",
17075
+ "description": "Bulk-set the `active` (published) flag on N products. Same admin path as the listing's Publish / Unpublish bulk action — fires `ProductUpdated` + ES sync events. Note: a draft product (draft=yes) stays invisible to the storefront regardless of `active`. Use `productsBulkSetDraft` first to take products out of draft.",
17076
+ "args": [
17077
+ {
17078
+ "name": "ids",
17079
+ "description": "Product IDs.",
17080
+ "type": {
17081
+ "kind": "NON_NULL",
17082
+ "name": null,
17083
+ "ofType": {
17084
+ "kind": "LIST",
17085
+ "name": null,
17086
+ "ofType": {
17087
+ "kind": "NON_NULL",
17088
+ "name": null,
17089
+ "ofType": {
17090
+ "kind": "SCALAR",
17091
+ "name": "ID",
17092
+ "ofType": null
17093
+ }
17094
+ }
16863
17095
  }
16864
17096
  },
16865
17097
  "defaultValue": null
16866
17098
  },
16867
17099
  {
16868
- "name": "input",
16869
- "description": "Variant input data.",
17100
+ "name": "active",
17101
+ "description": "Target value: true=published, false=unpublished.",
16870
17102
  "type": {
16871
17103
  "kind": "NON_NULL",
16872
17104
  "name": null,
16873
17105
  "ofType": {
16874
- "kind": "INPUT_OBJECT",
16875
- "name": "CreateVariantInput",
17106
+ "kind": "SCALAR",
17107
+ "name": "Boolean",
16876
17108
  "ofType": null
16877
17109
  }
16878
17110
  },
@@ -16884,7 +17116,7 @@
16884
17116
  "name": null,
16885
17117
  "ofType": {
16886
17118
  "kind": "OBJECT",
16887
- "name": "Variant",
17119
+ "name": "BulkProductsResult",
16888
17120
  "ofType": null
16889
17121
  }
16890
17122
  },
@@ -16892,32 +17124,93 @@
16892
17124
  "deprecationReason": null
16893
17125
  },
16894
17126
  {
16895
- "name": "updateVariant",
16896
- "description": "Update an existing variant.",
17127
+ "name": "productsBulkSetHidden",
17128
+ "description": "Bulk-toggle the `hidden` flag — admin's 'Show in store' / 'Hide from store' bulk action. Hidden products keep their detail page reachable by direct URL but disappear from category listings.",
16897
17129
  "args": [
16898
17130
  {
16899
- "name": "id",
16900
- "description": "Variant ID.",
17131
+ "name": "ids",
17132
+ "description": "Product IDs.",
17133
+ "type": {
17134
+ "kind": "NON_NULL",
17135
+ "name": null,
17136
+ "ofType": {
17137
+ "kind": "LIST",
17138
+ "name": null,
17139
+ "ofType": {
17140
+ "kind": "NON_NULL",
17141
+ "name": null,
17142
+ "ofType": {
17143
+ "kind": "SCALAR",
17144
+ "name": "ID",
17145
+ "ofType": null
17146
+ }
17147
+ }
17148
+ }
17149
+ },
17150
+ "defaultValue": null
17151
+ },
17152
+ {
17153
+ "name": "hidden",
17154
+ "description": "Target value: true=hidden from listings, false=shown.",
16901
17155
  "type": {
16902
17156
  "kind": "NON_NULL",
16903
17157
  "name": null,
16904
17158
  "ofType": {
16905
17159
  "kind": "SCALAR",
16906
- "name": "ID",
17160
+ "name": "Boolean",
16907
17161
  "ofType": null
16908
17162
  }
16909
17163
  },
16910
17164
  "defaultValue": null
17165
+ }
17166
+ ],
17167
+ "type": {
17168
+ "kind": "NON_NULL",
17169
+ "name": null,
17170
+ "ofType": {
17171
+ "kind": "OBJECT",
17172
+ "name": "BulkProductsResult",
17173
+ "ofType": null
17174
+ }
17175
+ },
17176
+ "isDeprecated": false,
17177
+ "deprecationReason": null
17178
+ },
17179
+ {
17180
+ "name": "productsBulkSetNew",
17181
+ "description": "Bulk-toggle the 'New' badge — admin's 'Mark as new' / 'Remove marked as new' bulk action.",
17182
+ "args": [
17183
+ {
17184
+ "name": "ids",
17185
+ "description": "Product IDs.",
17186
+ "type": {
17187
+ "kind": "NON_NULL",
17188
+ "name": null,
17189
+ "ofType": {
17190
+ "kind": "LIST",
17191
+ "name": null,
17192
+ "ofType": {
17193
+ "kind": "NON_NULL",
17194
+ "name": null,
17195
+ "ofType": {
17196
+ "kind": "SCALAR",
17197
+ "name": "ID",
17198
+ "ofType": null
17199
+ }
17200
+ }
17201
+ }
17202
+ },
17203
+ "defaultValue": null
16911
17204
  },
16912
17205
  {
16913
- "name": "input",
16914
- "description": "Variant input data.",
17206
+ "name": "isNew",
17207
+ "description": "Target value: true=mark as new, false=remove the new badge.",
16915
17208
  "type": {
16916
17209
  "kind": "NON_NULL",
16917
17210
  "name": null,
16918
17211
  "ofType": {
16919
- "kind": "INPUT_OBJECT",
16920
- "name": "UpdateVariantInput",
17212
+ "kind": "SCALAR",
17213
+ "name": "Boolean",
16921
17214
  "ofType": null
16922
17215
  }
16923
17216
  },
@@ -16925,26 +17218,52 @@
16925
17218
  }
16926
17219
  ],
16927
17220
  "type": {
16928
- "kind": "OBJECT",
16929
- "name": "Variant",
16930
- "ofType": null
17221
+ "kind": "NON_NULL",
17222
+ "name": null,
17223
+ "ofType": {
17224
+ "kind": "OBJECT",
17225
+ "name": "BulkProductsResult",
17226
+ "ofType": null
17227
+ }
16931
17228
  },
16932
17229
  "isDeprecated": false,
16933
17230
  "deprecationReason": null
16934
17231
  },
16935
17232
  {
16936
- "name": "deleteVariant",
16937
- "description": "Delete a variant.",
17233
+ "name": "productsBulkSetFeatured",
17234
+ "description": "Bulk-toggle the `featured` flag.",
16938
17235
  "args": [
16939
17236
  {
16940
- "name": "id",
16941
- "description": "Variant ID.",
17237
+ "name": "ids",
17238
+ "description": "Product IDs.",
17239
+ "type": {
17240
+ "kind": "NON_NULL",
17241
+ "name": null,
17242
+ "ofType": {
17243
+ "kind": "LIST",
17244
+ "name": null,
17245
+ "ofType": {
17246
+ "kind": "NON_NULL",
17247
+ "name": null,
17248
+ "ofType": {
17249
+ "kind": "SCALAR",
17250
+ "name": "ID",
17251
+ "ofType": null
17252
+ }
17253
+ }
17254
+ }
17255
+ },
17256
+ "defaultValue": null
17257
+ },
17258
+ {
17259
+ "name": "featured",
17260
+ "description": "Target value.",
16942
17261
  "type": {
16943
17262
  "kind": "NON_NULL",
16944
17263
  "name": null,
16945
17264
  "ofType": {
16946
17265
  "kind": "SCALAR",
16947
- "name": "ID",
17266
+ "name": "Boolean",
16948
17267
  "ofType": null
16949
17268
  }
16950
17269
  },
@@ -16955,8 +17274,8 @@
16955
17274
  "kind": "NON_NULL",
16956
17275
  "name": null,
16957
17276
  "ofType": {
16958
- "kind": "SCALAR",
16959
- "name": "Boolean",
17277
+ "kind": "OBJECT",
17278
+ "name": "BulkProductsResult",
16960
17279
  "ofType": null
16961
17280
  }
16962
17281
  },
@@ -16964,19 +17283,27 @@
16964
17283
  "deprecationReason": null
16965
17284
  },
16966
17285
  {
16967
- "name": "createCategory",
16968
- "description": "Create a new category.",
17286
+ "name": "productsBulkDuplicate",
17287
+ "description": "Bulk-duplicate products. Each source product is copied via `Product::makeProductCopy()` (creates a new product with cloned variants, images, descriptions, tabs, category links, etc., but a fresh ID, sku=null, sales=0). Fires `ProductsSearchEnginesSync` so the new products are indexed.",
16969
17288
  "args": [
16970
17289
  {
16971
- "name": "input",
16972
- "description": "Category input data.",
17290
+ "name": "ids",
17291
+ "description": "Source product IDs.",
16973
17292
  "type": {
16974
17293
  "kind": "NON_NULL",
16975
17294
  "name": null,
16976
17295
  "ofType": {
16977
- "kind": "INPUT_OBJECT",
16978
- "name": "CreateCategoryInput",
16979
- "ofType": null
17296
+ "kind": "LIST",
17297
+ "name": null,
17298
+ "ofType": {
17299
+ "kind": "NON_NULL",
17300
+ "name": null,
17301
+ "ofType": {
17302
+ "kind": "SCALAR",
17303
+ "name": "ID",
17304
+ "ofType": null
17305
+ }
17306
+ }
16980
17307
  }
16981
17308
  },
16982
17309
  "defaultValue": null
@@ -16987,7 +17314,7 @@
16987
17314
  "name": null,
16988
17315
  "ofType": {
16989
17316
  "kind": "OBJECT",
16990
- "name": "Category",
17317
+ "name": "BulkDuplicateProductsResult",
16991
17318
  "ofType": null
16992
17319
  }
16993
17320
  },
@@ -16995,32 +17322,128 @@
16995
17322
  "deprecationReason": null
16996
17323
  },
16997
17324
  {
16998
- "name": "updateCategory",
16999
- "description": "Update an existing category.",
17325
+ "name": "productsBulkActivateTracking",
17326
+ "description": "Bulk-activate quantity tracking on products. Sets `tracking=yes` on every product AND writes the supplied `quantity` onto every variant of every product (if `quantity` is omitted, variant quantities are nulled — matching admin behavior when the popup is left blank).",
17000
17327
  "args": [
17001
17328
  {
17002
- "name": "id",
17003
- "description": "Category ID.",
17329
+ "name": "ids",
17330
+ "description": "Product IDs.",
17004
17331
  "type": {
17005
17332
  "kind": "NON_NULL",
17006
17333
  "name": null,
17007
17334
  "ofType": {
17008
- "kind": "SCALAR",
17009
- "name": "ID",
17010
- "ofType": null
17335
+ "kind": "LIST",
17336
+ "name": null,
17337
+ "ofType": {
17338
+ "kind": "NON_NULL",
17339
+ "name": null,
17340
+ "ofType": {
17341
+ "kind": "SCALAR",
17342
+ "name": "ID",
17343
+ "ofType": null
17344
+ }
17345
+ }
17011
17346
  }
17012
17347
  },
17013
17348
  "defaultValue": null
17014
17349
  },
17015
17350
  {
17016
- "name": "input",
17017
- "description": "Category input data.",
17351
+ "name": "quantity",
17352
+ "description": "Initial quantity to write to every variant. Omit to leave quantities null/unchanged.",
17353
+ "type": {
17354
+ "kind": "SCALAR",
17355
+ "name": "Int",
17356
+ "ofType": null
17357
+ },
17358
+ "defaultValue": null
17359
+ }
17360
+ ],
17361
+ "type": {
17362
+ "kind": "NON_NULL",
17363
+ "name": null,
17364
+ "ofType": {
17365
+ "kind": "OBJECT",
17366
+ "name": "BulkProductsResult",
17367
+ "ofType": null
17368
+ }
17369
+ },
17370
+ "isDeprecated": false,
17371
+ "deprecationReason": null
17372
+ },
17373
+ {
17374
+ "name": "productsBulkDeactivateTracking",
17375
+ "description": "Bulk-deactivate quantity tracking. Sets `tracking=no` on every product (variant quantities are not touched).",
17376
+ "args": [
17377
+ {
17378
+ "name": "ids",
17379
+ "description": "Product IDs.",
17018
17380
  "type": {
17019
17381
  "kind": "NON_NULL",
17020
17382
  "name": null,
17021
17383
  "ofType": {
17022
- "kind": "INPUT_OBJECT",
17023
- "name": "UpdateCategoryInput",
17384
+ "kind": "LIST",
17385
+ "name": null,
17386
+ "ofType": {
17387
+ "kind": "NON_NULL",
17388
+ "name": null,
17389
+ "ofType": {
17390
+ "kind": "SCALAR",
17391
+ "name": "ID",
17392
+ "ofType": null
17393
+ }
17394
+ }
17395
+ }
17396
+ },
17397
+ "defaultValue": null
17398
+ }
17399
+ ],
17400
+ "type": {
17401
+ "kind": "NON_NULL",
17402
+ "name": null,
17403
+ "ofType": {
17404
+ "kind": "OBJECT",
17405
+ "name": "BulkProductsResult",
17406
+ "ofType": null
17407
+ }
17408
+ },
17409
+ "isDeprecated": false,
17410
+ "deprecationReason": null
17411
+ },
17412
+ {
17413
+ "name": "productsBulkSetCategory",
17414
+ "description": "Bulk-set the main category on N products.",
17415
+ "args": [
17416
+ {
17417
+ "name": "ids",
17418
+ "description": "Product IDs.",
17419
+ "type": {
17420
+ "kind": "NON_NULL",
17421
+ "name": null,
17422
+ "ofType": {
17423
+ "kind": "LIST",
17424
+ "name": null,
17425
+ "ofType": {
17426
+ "kind": "NON_NULL",
17427
+ "name": null,
17428
+ "ofType": {
17429
+ "kind": "SCALAR",
17430
+ "name": "ID",
17431
+ "ofType": null
17432
+ }
17433
+ }
17434
+ }
17435
+ },
17436
+ "defaultValue": null
17437
+ },
17438
+ {
17439
+ "name": "categoryId",
17440
+ "description": "Target category ID. Use `categories(...)` to look up valid ids.",
17441
+ "type": {
17442
+ "kind": "NON_NULL",
17443
+ "name": null,
17444
+ "ofType": {
17445
+ "kind": "SCALAR",
17446
+ "name": "ID",
17024
17447
  "ofType": null
17025
17448
  }
17026
17449
  },
@@ -17028,20 +17451,958 @@
17028
17451
  }
17029
17452
  ],
17030
17453
  "type": {
17031
- "kind": "OBJECT",
17032
- "name": "Category",
17033
- "ofType": null
17454
+ "kind": "NON_NULL",
17455
+ "name": null,
17456
+ "ofType": {
17457
+ "kind": "OBJECT",
17458
+ "name": "BulkProductsResult",
17459
+ "ofType": null
17460
+ }
17034
17461
  },
17035
17462
  "isDeprecated": false,
17036
17463
  "deprecationReason": null
17037
17464
  },
17038
17465
  {
17039
- "name": "deleteCategory",
17040
- "description": "Delete a category.",
17466
+ "name": "productsBulkSetVendor",
17467
+ "description": "Bulk-set the vendor (manufacturer) on N products. Pass `vendorId: null` to clear the vendor.",
17041
17468
  "args": [
17042
17469
  {
17043
- "name": "id",
17044
- "description": "Category ID.",
17470
+ "name": "ids",
17471
+ "description": "Product IDs.",
17472
+ "type": {
17473
+ "kind": "NON_NULL",
17474
+ "name": null,
17475
+ "ofType": {
17476
+ "kind": "LIST",
17477
+ "name": null,
17478
+ "ofType": {
17479
+ "kind": "NON_NULL",
17480
+ "name": null,
17481
+ "ofType": {
17482
+ "kind": "SCALAR",
17483
+ "name": "ID",
17484
+ "ofType": null
17485
+ }
17486
+ }
17487
+ }
17488
+ },
17489
+ "defaultValue": null
17490
+ },
17491
+ {
17492
+ "name": "vendorId",
17493
+ "description": "Target vendor ID, or null to clear.",
17494
+ "type": {
17495
+ "kind": "SCALAR",
17496
+ "name": "ID",
17497
+ "ofType": null
17498
+ },
17499
+ "defaultValue": null
17500
+ }
17501
+ ],
17502
+ "type": {
17503
+ "kind": "NON_NULL",
17504
+ "name": null,
17505
+ "ofType": {
17506
+ "kind": "OBJECT",
17507
+ "name": "BulkProductsResult",
17508
+ "ofType": null
17509
+ }
17510
+ },
17511
+ "isDeprecated": false,
17512
+ "deprecationReason": null
17513
+ },
17514
+ {
17515
+ "name": "productsBulkSetTags",
17516
+ "description": "Bulk-attach product tags by NAME. Calls `Product::attachTags($tags, detaching: false, writeLog: true)` per product — existing tags are kept, the supplied tag names are added on top. Tags that don't exist yet are auto-created.",
17517
+ "args": [
17518
+ {
17519
+ "name": "ids",
17520
+ "description": "Product IDs.",
17521
+ "type": {
17522
+ "kind": "NON_NULL",
17523
+ "name": null,
17524
+ "ofType": {
17525
+ "kind": "LIST",
17526
+ "name": null,
17527
+ "ofType": {
17528
+ "kind": "NON_NULL",
17529
+ "name": null,
17530
+ "ofType": {
17531
+ "kind": "SCALAR",
17532
+ "name": "ID",
17533
+ "ofType": null
17534
+ }
17535
+ }
17536
+ }
17537
+ },
17538
+ "defaultValue": null
17539
+ },
17540
+ {
17541
+ "name": "tags",
17542
+ "description": "Tag names to attach. Names not yet present in the catalog will be auto-created. Use `tags(...)` to discover existing ones.",
17543
+ "type": {
17544
+ "kind": "NON_NULL",
17545
+ "name": null,
17546
+ "ofType": {
17547
+ "kind": "LIST",
17548
+ "name": null,
17549
+ "ofType": {
17550
+ "kind": "NON_NULL",
17551
+ "name": null,
17552
+ "ofType": {
17553
+ "kind": "SCALAR",
17554
+ "name": "String",
17555
+ "ofType": null
17556
+ }
17557
+ }
17558
+ }
17559
+ },
17560
+ "defaultValue": null
17561
+ }
17562
+ ],
17563
+ "type": {
17564
+ "kind": "NON_NULL",
17565
+ "name": null,
17566
+ "ofType": {
17567
+ "kind": "OBJECT",
17568
+ "name": "BulkProductsResult",
17569
+ "ofType": null
17570
+ }
17571
+ },
17572
+ "isDeprecated": false,
17573
+ "deprecationReason": null
17574
+ },
17575
+ {
17576
+ "name": "productsBulkSetSortOrder",
17577
+ "description": "Bulk-set the manual sort order. Same value is written to every product — for distinct values per product, call `updateProduct` per id.",
17578
+ "args": [
17579
+ {
17580
+ "name": "ids",
17581
+ "description": "Product IDs.",
17582
+ "type": {
17583
+ "kind": "NON_NULL",
17584
+ "name": null,
17585
+ "ofType": {
17586
+ "kind": "LIST",
17587
+ "name": null,
17588
+ "ofType": {
17589
+ "kind": "NON_NULL",
17590
+ "name": null,
17591
+ "ofType": {
17592
+ "kind": "SCALAR",
17593
+ "name": "ID",
17594
+ "ofType": null
17595
+ }
17596
+ }
17597
+ }
17598
+ },
17599
+ "defaultValue": null
17600
+ },
17601
+ {
17602
+ "name": "sortOrder",
17603
+ "description": "Sort order value (0 = first).",
17604
+ "type": {
17605
+ "kind": "NON_NULL",
17606
+ "name": null,
17607
+ "ofType": {
17608
+ "kind": "SCALAR",
17609
+ "name": "Int",
17610
+ "ofType": null
17611
+ }
17612
+ },
17613
+ "defaultValue": null
17614
+ }
17615
+ ],
17616
+ "type": {
17617
+ "kind": "NON_NULL",
17618
+ "name": null,
17619
+ "ofType": {
17620
+ "kind": "OBJECT",
17621
+ "name": "BulkProductsResult",
17622
+ "ofType": null
17623
+ }
17624
+ },
17625
+ "isDeprecated": false,
17626
+ "deprecationReason": null
17627
+ },
17628
+ {
17629
+ "name": "productsBulkSetInStockStatus",
17630
+ "description": "Bulk-set the in-stock status display (the 'Available' label shown next to in-stock products).",
17631
+ "args": [
17632
+ {
17633
+ "name": "ids",
17634
+ "description": "Product IDs.",
17635
+ "type": {
17636
+ "kind": "NON_NULL",
17637
+ "name": null,
17638
+ "ofType": {
17639
+ "kind": "LIST",
17640
+ "name": null,
17641
+ "ofType": {
17642
+ "kind": "NON_NULL",
17643
+ "name": null,
17644
+ "ofType": {
17645
+ "kind": "SCALAR",
17646
+ "name": "ID",
17647
+ "ofType": null
17648
+ }
17649
+ }
17650
+ }
17651
+ },
17652
+ "defaultValue": null
17653
+ },
17654
+ {
17655
+ "name": "statusId",
17656
+ "description": "Target stock-status ID. Use the `stockStatuses(...)` query to look up valid ids.",
17657
+ "type": {
17658
+ "kind": "NON_NULL",
17659
+ "name": null,
17660
+ "ofType": {
17661
+ "kind": "SCALAR",
17662
+ "name": "ID",
17663
+ "ofType": null
17664
+ }
17665
+ },
17666
+ "defaultValue": null
17667
+ }
17668
+ ],
17669
+ "type": {
17670
+ "kind": "NON_NULL",
17671
+ "name": null,
17672
+ "ofType": {
17673
+ "kind": "OBJECT",
17674
+ "name": "BulkProductsResult",
17675
+ "ofType": null
17676
+ }
17677
+ },
17678
+ "isDeprecated": false,
17679
+ "deprecationReason": null
17680
+ },
17681
+ {
17682
+ "name": "productsBulkSetOutOfStockStatus",
17683
+ "description": "Bulk-set the out-of-stock status display. Only applied to products with `tracking=yes` — products without tracking are returned in `skippedIds`.",
17684
+ "args": [
17685
+ {
17686
+ "name": "ids",
17687
+ "description": "Product IDs.",
17688
+ "type": {
17689
+ "kind": "NON_NULL",
17690
+ "name": null,
17691
+ "ofType": {
17692
+ "kind": "LIST",
17693
+ "name": null,
17694
+ "ofType": {
17695
+ "kind": "NON_NULL",
17696
+ "name": null,
17697
+ "ofType": {
17698
+ "kind": "SCALAR",
17699
+ "name": "ID",
17700
+ "ofType": null
17701
+ }
17702
+ }
17703
+ }
17704
+ },
17705
+ "defaultValue": null
17706
+ },
17707
+ {
17708
+ "name": "statusId",
17709
+ "description": "Target stock-status ID.",
17710
+ "type": {
17711
+ "kind": "NON_NULL",
17712
+ "name": null,
17713
+ "ofType": {
17714
+ "kind": "SCALAR",
17715
+ "name": "ID",
17716
+ "ofType": null
17717
+ }
17718
+ },
17719
+ "defaultValue": null
17720
+ }
17721
+ ],
17722
+ "type": {
17723
+ "kind": "NON_NULL",
17724
+ "name": null,
17725
+ "ofType": {
17726
+ "kind": "OBJECT",
17727
+ "name": "BulkProductsResult",
17728
+ "ofType": null
17729
+ }
17730
+ },
17731
+ "isDeprecated": false,
17732
+ "deprecationReason": null
17733
+ },
17734
+ {
17735
+ "name": "productsBulkSetBrandModels",
17736
+ "description": "Replace the set of brand-models attached to N products. Mirrors the admin product-edit form's brand-models picker. Pass an empty `brandModelIds: []` to detach all brand-models from the supplied products. Each model id is verified against the `brand_model_models` table — invalid ids are silently dropped (no error).",
17737
+ "args": [
17738
+ {
17739
+ "name": "ids",
17740
+ "description": "Product IDs.",
17741
+ "type": {
17742
+ "kind": "NON_NULL",
17743
+ "name": null,
17744
+ "ofType": {
17745
+ "kind": "LIST",
17746
+ "name": null,
17747
+ "ofType": {
17748
+ "kind": "NON_NULL",
17749
+ "name": null,
17750
+ "ofType": {
17751
+ "kind": "SCALAR",
17752
+ "name": "ID",
17753
+ "ofType": null
17754
+ }
17755
+ }
17756
+ }
17757
+ },
17758
+ "defaultValue": null
17759
+ },
17760
+ {
17761
+ "name": "brandModelIds",
17762
+ "description": "Brand-model IDs to attach. The supplied set REPLACES any previously-attached brand-models — pass an empty list to clear.",
17763
+ "type": {
17764
+ "kind": "NON_NULL",
17765
+ "name": null,
17766
+ "ofType": {
17767
+ "kind": "LIST",
17768
+ "name": null,
17769
+ "ofType": {
17770
+ "kind": "NON_NULL",
17771
+ "name": null,
17772
+ "ofType": {
17773
+ "kind": "SCALAR",
17774
+ "name": "ID",
17775
+ "ofType": null
17776
+ }
17777
+ }
17778
+ }
17779
+ },
17780
+ "defaultValue": null
17781
+ }
17782
+ ],
17783
+ "type": {
17784
+ "kind": "NON_NULL",
17785
+ "name": null,
17786
+ "ofType": {
17787
+ "kind": "OBJECT",
17788
+ "name": "BulkProductsResult",
17789
+ "ofType": null
17790
+ }
17791
+ },
17792
+ "isDeprecated": false,
17793
+ "deprecationReason": null
17794
+ },
17795
+ {
17796
+ "name": "productsBulkAttachCategories",
17797
+ "description": "Attach N additional categories to N products (multi-category pivot — `Product.categories`). Existing categories on the products are kept; the supplied ids are added on top. Use `productsBulkSetCategory` for the SINGLE main category (`category_id` column).",
17798
+ "args": [
17799
+ {
17800
+ "name": "ids",
17801
+ "description": "Product IDs.",
17802
+ "type": {
17803
+ "kind": "NON_NULL",
17804
+ "name": null,
17805
+ "ofType": {
17806
+ "kind": "LIST",
17807
+ "name": null,
17808
+ "ofType": {
17809
+ "kind": "NON_NULL",
17810
+ "name": null,
17811
+ "ofType": {
17812
+ "kind": "SCALAR",
17813
+ "name": "ID",
17814
+ "ofType": null
17815
+ }
17816
+ }
17817
+ }
17818
+ },
17819
+ "defaultValue": null
17820
+ },
17821
+ {
17822
+ "name": "categoryIds",
17823
+ "description": "Category IDs to attach (multi-category pivot). Already-attached pairs are no-ops.",
17824
+ "type": {
17825
+ "kind": "NON_NULL",
17826
+ "name": null,
17827
+ "ofType": {
17828
+ "kind": "LIST",
17829
+ "name": null,
17830
+ "ofType": {
17831
+ "kind": "NON_NULL",
17832
+ "name": null,
17833
+ "ofType": {
17834
+ "kind": "SCALAR",
17835
+ "name": "ID",
17836
+ "ofType": null
17837
+ }
17838
+ }
17839
+ }
17840
+ },
17841
+ "defaultValue": null
17842
+ }
17843
+ ],
17844
+ "type": {
17845
+ "kind": "NON_NULL",
17846
+ "name": null,
17847
+ "ofType": {
17848
+ "kind": "OBJECT",
17849
+ "name": "BulkProductsResult",
17850
+ "ofType": null
17851
+ }
17852
+ },
17853
+ "isDeprecated": false,
17854
+ "deprecationReason": null
17855
+ },
17856
+ {
17857
+ "name": "productsBulkDetachCategories",
17858
+ "description": "Detach N categories from N products (multi-category pivot). Pairs that aren't actually attached are silently no-ops.",
17859
+ "args": [
17860
+ {
17861
+ "name": "ids",
17862
+ "description": "Product IDs.",
17863
+ "type": {
17864
+ "kind": "NON_NULL",
17865
+ "name": null,
17866
+ "ofType": {
17867
+ "kind": "LIST",
17868
+ "name": null,
17869
+ "ofType": {
17870
+ "kind": "NON_NULL",
17871
+ "name": null,
17872
+ "ofType": {
17873
+ "kind": "SCALAR",
17874
+ "name": "ID",
17875
+ "ofType": null
17876
+ }
17877
+ }
17878
+ }
17879
+ },
17880
+ "defaultValue": null
17881
+ },
17882
+ {
17883
+ "name": "categoryIds",
17884
+ "description": "Category IDs to detach.",
17885
+ "type": {
17886
+ "kind": "NON_NULL",
17887
+ "name": null,
17888
+ "ofType": {
17889
+ "kind": "LIST",
17890
+ "name": null,
17891
+ "ofType": {
17892
+ "kind": "NON_NULL",
17893
+ "name": null,
17894
+ "ofType": {
17895
+ "kind": "SCALAR",
17896
+ "name": "ID",
17897
+ "ofType": null
17898
+ }
17899
+ }
17900
+ }
17901
+ },
17902
+ "defaultValue": null
17903
+ }
17904
+ ],
17905
+ "type": {
17906
+ "kind": "NON_NULL",
17907
+ "name": null,
17908
+ "ofType": {
17909
+ "kind": "OBJECT",
17910
+ "name": "BulkProductsResult",
17911
+ "ofType": null
17912
+ }
17913
+ },
17914
+ "isDeprecated": false,
17915
+ "deprecationReason": null
17916
+ },
17917
+ {
17918
+ "name": "productsBulkSetCategories",
17919
+ "description": "Replace the set of multi-category links on N products. The supplied set REPLACES any previously-attached categories — pass `categoryIds: []` to detach all. Does NOT touch the main `category_id` column — use `productsBulkSetCategory` for that.",
17920
+ "args": [
17921
+ {
17922
+ "name": "ids",
17923
+ "description": "Product IDs.",
17924
+ "type": {
17925
+ "kind": "NON_NULL",
17926
+ "name": null,
17927
+ "ofType": {
17928
+ "kind": "LIST",
17929
+ "name": null,
17930
+ "ofType": {
17931
+ "kind": "NON_NULL",
17932
+ "name": null,
17933
+ "ofType": {
17934
+ "kind": "SCALAR",
17935
+ "name": "ID",
17936
+ "ofType": null
17937
+ }
17938
+ }
17939
+ }
17940
+ },
17941
+ "defaultValue": null
17942
+ },
17943
+ {
17944
+ "name": "categoryIds",
17945
+ "description": "Category IDs to set (replace mode).",
17946
+ "type": {
17947
+ "kind": "NON_NULL",
17948
+ "name": null,
17949
+ "ofType": {
17950
+ "kind": "LIST",
17951
+ "name": null,
17952
+ "ofType": {
17953
+ "kind": "NON_NULL",
17954
+ "name": null,
17955
+ "ofType": {
17956
+ "kind": "SCALAR",
17957
+ "name": "ID",
17958
+ "ofType": null
17959
+ }
17960
+ }
17961
+ }
17962
+ },
17963
+ "defaultValue": null
17964
+ }
17965
+ ],
17966
+ "type": {
17967
+ "kind": "NON_NULL",
17968
+ "name": null,
17969
+ "ofType": {
17970
+ "kind": "OBJECT",
17971
+ "name": "BulkProductsResult",
17972
+ "ofType": null
17973
+ }
17974
+ },
17975
+ "isDeprecated": false,
17976
+ "deprecationReason": null
17977
+ },
17978
+ {
17979
+ "name": "createVariant",
17980
+ "description": "Create a new variant for a product.",
17981
+ "args": [
17982
+ {
17983
+ "name": "productId",
17984
+ "description": "Product ID.",
17985
+ "type": {
17986
+ "kind": "NON_NULL",
17987
+ "name": null,
17988
+ "ofType": {
17989
+ "kind": "SCALAR",
17990
+ "name": "ID",
17991
+ "ofType": null
17992
+ }
17993
+ },
17994
+ "defaultValue": null
17995
+ },
17996
+ {
17997
+ "name": "input",
17998
+ "description": "Variant input data.",
17999
+ "type": {
18000
+ "kind": "NON_NULL",
18001
+ "name": null,
18002
+ "ofType": {
18003
+ "kind": "INPUT_OBJECT",
18004
+ "name": "CreateVariantInput",
18005
+ "ofType": null
18006
+ }
18007
+ },
18008
+ "defaultValue": null
18009
+ }
18010
+ ],
18011
+ "type": {
18012
+ "kind": "NON_NULL",
18013
+ "name": null,
18014
+ "ofType": {
18015
+ "kind": "OBJECT",
18016
+ "name": "Variant",
18017
+ "ofType": null
18018
+ }
18019
+ },
18020
+ "isDeprecated": false,
18021
+ "deprecationReason": null
18022
+ },
18023
+ {
18024
+ "name": "updateVariant",
18025
+ "description": "Update an existing variant.",
18026
+ "args": [
18027
+ {
18028
+ "name": "id",
18029
+ "description": "Variant ID.",
18030
+ "type": {
18031
+ "kind": "NON_NULL",
18032
+ "name": null,
18033
+ "ofType": {
18034
+ "kind": "SCALAR",
18035
+ "name": "ID",
18036
+ "ofType": null
18037
+ }
18038
+ },
18039
+ "defaultValue": null
18040
+ },
18041
+ {
18042
+ "name": "input",
18043
+ "description": "Variant input data.",
18044
+ "type": {
18045
+ "kind": "NON_NULL",
18046
+ "name": null,
18047
+ "ofType": {
18048
+ "kind": "INPUT_OBJECT",
18049
+ "name": "UpdateVariantInput",
18050
+ "ofType": null
18051
+ }
18052
+ },
18053
+ "defaultValue": null
18054
+ }
18055
+ ],
18056
+ "type": {
18057
+ "kind": "OBJECT",
18058
+ "name": "Variant",
18059
+ "ofType": null
18060
+ },
18061
+ "isDeprecated": false,
18062
+ "deprecationReason": null
18063
+ },
18064
+ {
18065
+ "name": "deleteVariant",
18066
+ "description": "Delete a variant.",
18067
+ "args": [
18068
+ {
18069
+ "name": "id",
18070
+ "description": "Variant ID.",
18071
+ "type": {
18072
+ "kind": "NON_NULL",
18073
+ "name": null,
18074
+ "ofType": {
18075
+ "kind": "SCALAR",
18076
+ "name": "ID",
18077
+ "ofType": null
18078
+ }
18079
+ },
18080
+ "defaultValue": null
18081
+ }
18082
+ ],
18083
+ "type": {
18084
+ "kind": "NON_NULL",
18085
+ "name": null,
18086
+ "ofType": {
18087
+ "kind": "SCALAR",
18088
+ "name": "Boolean",
18089
+ "ofType": null
18090
+ }
18091
+ },
18092
+ "isDeprecated": false,
18093
+ "deprecationReason": null
18094
+ },
18095
+ {
18096
+ "name": "createCategory",
18097
+ "description": "Create a new category.",
18098
+ "args": [
18099
+ {
18100
+ "name": "input",
18101
+ "description": "Category input data.",
18102
+ "type": {
18103
+ "kind": "NON_NULL",
18104
+ "name": null,
18105
+ "ofType": {
18106
+ "kind": "INPUT_OBJECT",
18107
+ "name": "CreateCategoryInput",
18108
+ "ofType": null
18109
+ }
18110
+ },
18111
+ "defaultValue": null
18112
+ }
18113
+ ],
18114
+ "type": {
18115
+ "kind": "NON_NULL",
18116
+ "name": null,
18117
+ "ofType": {
18118
+ "kind": "OBJECT",
18119
+ "name": "Category",
18120
+ "ofType": null
18121
+ }
18122
+ },
18123
+ "isDeprecated": false,
18124
+ "deprecationReason": null
18125
+ },
18126
+ {
18127
+ "name": "updateCategory",
18128
+ "description": "Update an existing category.",
18129
+ "args": [
18130
+ {
18131
+ "name": "id",
18132
+ "description": "Category ID.",
18133
+ "type": {
18134
+ "kind": "NON_NULL",
18135
+ "name": null,
18136
+ "ofType": {
18137
+ "kind": "SCALAR",
18138
+ "name": "ID",
18139
+ "ofType": null
18140
+ }
18141
+ },
18142
+ "defaultValue": null
18143
+ },
18144
+ {
18145
+ "name": "input",
18146
+ "description": "Category input data.",
18147
+ "type": {
18148
+ "kind": "NON_NULL",
18149
+ "name": null,
18150
+ "ofType": {
18151
+ "kind": "INPUT_OBJECT",
18152
+ "name": "UpdateCategoryInput",
18153
+ "ofType": null
18154
+ }
18155
+ },
18156
+ "defaultValue": null
18157
+ }
18158
+ ],
18159
+ "type": {
18160
+ "kind": "OBJECT",
18161
+ "name": "Category",
18162
+ "ofType": null
18163
+ },
18164
+ "isDeprecated": false,
18165
+ "deprecationReason": null
18166
+ },
18167
+ {
18168
+ "name": "deleteCategory",
18169
+ "description": "Delete a category.",
18170
+ "args": [
18171
+ {
18172
+ "name": "id",
18173
+ "description": "Category ID.",
18174
+ "type": {
18175
+ "kind": "NON_NULL",
18176
+ "name": null,
18177
+ "ofType": {
18178
+ "kind": "SCALAR",
18179
+ "name": "ID",
18180
+ "ofType": null
18181
+ }
18182
+ },
18183
+ "defaultValue": null
18184
+ }
18185
+ ],
18186
+ "type": {
18187
+ "kind": "NON_NULL",
18188
+ "name": null,
18189
+ "ofType": {
18190
+ "kind": "SCALAR",
18191
+ "name": "Boolean",
18192
+ "ofType": null
18193
+ }
18194
+ },
18195
+ "isDeprecated": false,
18196
+ "deprecationReason": null
18197
+ },
18198
+ {
18199
+ "name": "categoriesBulkDelete",
18200
+ "description": "Bulk-delete product categories. Mirrors the admin categories listing's Delete bulk action (`DELETE /admin/api/core/product-categories`). Refuses with `dependency_blocked` when any of the supplied categories still has products attached — move or reassign the products via `productsBulkSetCategory` first.",
18201
+ "args": [
18202
+ {
18203
+ "name": "ids",
18204
+ "description": "Category IDs.",
18205
+ "type": {
18206
+ "kind": "NON_NULL",
18207
+ "name": null,
18208
+ "ofType": {
18209
+ "kind": "LIST",
18210
+ "name": null,
18211
+ "ofType": {
18212
+ "kind": "NON_NULL",
18213
+ "name": null,
18214
+ "ofType": {
18215
+ "kind": "SCALAR",
18216
+ "name": "ID",
18217
+ "ofType": null
18218
+ }
18219
+ }
18220
+ }
18221
+ },
18222
+ "defaultValue": null
18223
+ }
18224
+ ],
18225
+ "type": {
18226
+ "kind": "NON_NULL",
18227
+ "name": null,
18228
+ "ofType": {
18229
+ "kind": "OBJECT",
18230
+ "name": "BulkOperationResult",
18231
+ "ofType": null
18232
+ }
18233
+ },
18234
+ "isDeprecated": false,
18235
+ "deprecationReason": null
18236
+ },
18237
+ {
18238
+ "name": "categorySetGoogleTaxonomy",
18239
+ "description": "Set the Google taxonomy mapping on a single category. Mirrors the admin `Define taxonomy` modal (`POST /admin/api/core/product-categories/{id}/update-taxonomy`). Use `googleProductCategories(query:)` to look up valid `taxonomyId` values.",
18240
+ "args": [
18241
+ {
18242
+ "name": "categoryId",
18243
+ "description": "Category ID.",
18244
+ "type": {
18245
+ "kind": "NON_NULL",
18246
+ "name": null,
18247
+ "ofType": {
18248
+ "kind": "SCALAR",
18249
+ "name": "ID",
18250
+ "ofType": null
18251
+ }
18252
+ },
18253
+ "defaultValue": null
18254
+ },
18255
+ {
18256
+ "name": "taxonomyId",
18257
+ "description": "Google taxonomy id (from `googleProductCategories(...)`). Pass `null` to clear the mapping.",
18258
+ "type": {
18259
+ "kind": "SCALAR",
18260
+ "name": "ID",
18261
+ "ofType": null
18262
+ },
18263
+ "defaultValue": null
18264
+ }
18265
+ ],
18266
+ "type": {
18267
+ "kind": "NON_NULL",
18268
+ "name": null,
18269
+ "ofType": {
18270
+ "kind": "OBJECT",
18271
+ "name": "Category",
18272
+ "ofType": null
18273
+ }
18274
+ },
18275
+ "isDeprecated": false,
18276
+ "deprecationReason": null
18277
+ },
18278
+ {
18279
+ "name": "categoriesBulkSetGoogleTaxonomy",
18280
+ "description": "Bulk-apply the same Google taxonomy id to N categories. Pass `taxonomyId: null` to clear the mapping on the supplied categories. Invalid taxonomy ids are rejected with `not_found` BEFORE any update is written.",
18281
+ "args": [
18282
+ {
18283
+ "name": "ids",
18284
+ "description": "Category IDs.",
18285
+ "type": {
18286
+ "kind": "NON_NULL",
18287
+ "name": null,
18288
+ "ofType": {
18289
+ "kind": "LIST",
18290
+ "name": null,
18291
+ "ofType": {
18292
+ "kind": "NON_NULL",
18293
+ "name": null,
18294
+ "ofType": {
18295
+ "kind": "SCALAR",
18296
+ "name": "ID",
18297
+ "ofType": null
18298
+ }
18299
+ }
18300
+ }
18301
+ },
18302
+ "defaultValue": null
18303
+ },
18304
+ {
18305
+ "name": "taxonomyId",
18306
+ "description": "Google taxonomy id (from `googleProductCategories(...)`). Pass `null` to clear.",
18307
+ "type": {
18308
+ "kind": "SCALAR",
18309
+ "name": "ID",
18310
+ "ofType": null
18311
+ },
18312
+ "defaultValue": null
18313
+ }
18314
+ ],
18315
+ "type": {
18316
+ "kind": "NON_NULL",
18317
+ "name": null,
18318
+ "ofType": {
18319
+ "kind": "OBJECT",
18320
+ "name": "BulkOperationResult",
18321
+ "ofType": null
18322
+ }
18323
+ },
18324
+ "isDeprecated": false,
18325
+ "deprecationReason": null
18326
+ },
18327
+ {
18328
+ "name": "createVendor",
18329
+ "description": "Create a new vendor.",
18330
+ "args": [
18331
+ {
18332
+ "name": "input",
18333
+ "description": "Vendor input data.",
18334
+ "type": {
18335
+ "kind": "NON_NULL",
18336
+ "name": null,
18337
+ "ofType": {
18338
+ "kind": "INPUT_OBJECT",
18339
+ "name": "CreateVendorInput",
18340
+ "ofType": null
18341
+ }
18342
+ },
18343
+ "defaultValue": null
18344
+ }
18345
+ ],
18346
+ "type": {
18347
+ "kind": "NON_NULL",
18348
+ "name": null,
18349
+ "ofType": {
18350
+ "kind": "OBJECT",
18351
+ "name": "Vendor",
18352
+ "ofType": null
18353
+ }
18354
+ },
18355
+ "isDeprecated": false,
18356
+ "deprecationReason": null
18357
+ },
18358
+ {
18359
+ "name": "updateVendor",
18360
+ "description": "Update an existing vendor.",
18361
+ "args": [
18362
+ {
18363
+ "name": "id",
18364
+ "description": "Vendor ID.",
18365
+ "type": {
18366
+ "kind": "NON_NULL",
18367
+ "name": null,
18368
+ "ofType": {
18369
+ "kind": "SCALAR",
18370
+ "name": "ID",
18371
+ "ofType": null
18372
+ }
18373
+ },
18374
+ "defaultValue": null
18375
+ },
18376
+ {
18377
+ "name": "input",
18378
+ "description": "Vendor input data.",
18379
+ "type": {
18380
+ "kind": "NON_NULL",
18381
+ "name": null,
18382
+ "ofType": {
18383
+ "kind": "INPUT_OBJECT",
18384
+ "name": "UpdateVendorInput",
18385
+ "ofType": null
18386
+ }
18387
+ },
18388
+ "defaultValue": null
18389
+ }
18390
+ ],
18391
+ "type": {
18392
+ "kind": "OBJECT",
18393
+ "name": "Vendor",
18394
+ "ofType": null
18395
+ },
18396
+ "isDeprecated": false,
18397
+ "deprecationReason": null
18398
+ },
18399
+ {
18400
+ "name": "deleteVendor",
18401
+ "description": "Delete a vendor.",
18402
+ "args": [
18403
+ {
18404
+ "name": "id",
18405
+ "description": "Vendor ID.",
17045
18406
  "type": {
17046
18407
  "kind": "NON_NULL",
17047
18408
  "name": null,
@@ -17067,19 +18428,27 @@
17067
18428
  "deprecationReason": null
17068
18429
  },
17069
18430
  {
17070
- "name": "createVendor",
17071
- "description": "Create a new vendor.",
18431
+ "name": "vendorsBulkDelete",
18432
+ "description": "Bulk-delete vendors (manufacturers). Mirrors the admin vendors listing's Delete bulk action (`DELETE /admin/api/core/vendors`). Refuses with `dependency_blocked` when any of the supplied vendors still has products attached — reassign the products via `productsBulkSetVendor` first.",
17072
18433
  "args": [
17073
18434
  {
17074
- "name": "input",
17075
- "description": "Vendor input data.",
18435
+ "name": "ids",
18436
+ "description": "Vendor IDs.",
17076
18437
  "type": {
17077
18438
  "kind": "NON_NULL",
17078
18439
  "name": null,
17079
18440
  "ofType": {
17080
- "kind": "INPUT_OBJECT",
17081
- "name": "CreateVendorInput",
17082
- "ofType": null
18441
+ "kind": "LIST",
18442
+ "name": null,
18443
+ "ofType": {
18444
+ "kind": "NON_NULL",
18445
+ "name": null,
18446
+ "ofType": {
18447
+ "kind": "SCALAR",
18448
+ "name": "ID",
18449
+ "ofType": null
18450
+ }
18451
+ }
17083
18452
  }
17084
18453
  },
17085
18454
  "defaultValue": null
@@ -17090,79 +18459,7 @@
17090
18459
  "name": null,
17091
18460
  "ofType": {
17092
18461
  "kind": "OBJECT",
17093
- "name": "Vendor",
17094
- "ofType": null
17095
- }
17096
- },
17097
- "isDeprecated": false,
17098
- "deprecationReason": null
17099
- },
17100
- {
17101
- "name": "updateVendor",
17102
- "description": "Update an existing vendor.",
17103
- "args": [
17104
- {
17105
- "name": "id",
17106
- "description": "Vendor ID.",
17107
- "type": {
17108
- "kind": "NON_NULL",
17109
- "name": null,
17110
- "ofType": {
17111
- "kind": "SCALAR",
17112
- "name": "ID",
17113
- "ofType": null
17114
- }
17115
- },
17116
- "defaultValue": null
17117
- },
17118
- {
17119
- "name": "input",
17120
- "description": "Vendor input data.",
17121
- "type": {
17122
- "kind": "NON_NULL",
17123
- "name": null,
17124
- "ofType": {
17125
- "kind": "INPUT_OBJECT",
17126
- "name": "UpdateVendorInput",
17127
- "ofType": null
17128
- }
17129
- },
17130
- "defaultValue": null
17131
- }
17132
- ],
17133
- "type": {
17134
- "kind": "OBJECT",
17135
- "name": "Vendor",
17136
- "ofType": null
17137
- },
17138
- "isDeprecated": false,
17139
- "deprecationReason": null
17140
- },
17141
- {
17142
- "name": "deleteVendor",
17143
- "description": "Delete a vendor.",
17144
- "args": [
17145
- {
17146
- "name": "id",
17147
- "description": "Vendor ID.",
17148
- "type": {
17149
- "kind": "NON_NULL",
17150
- "name": null,
17151
- "ofType": {
17152
- "kind": "SCALAR",
17153
- "name": "ID",
17154
- "ofType": null
17155
- }
17156
- },
17157
- "defaultValue": null
17158
- }
17159
- ],
17160
- "type": {
17161
- "kind": "NON_NULL",
17162
- "name": null,
17163
- "ofType": {
17164
- "kind": "SCALAR",
17165
- "name": "Boolean",
18462
+ "name": "BulkOperationResult",
17166
18463
  "ofType": null
17167
18464
  }
17168
18465
  },
@@ -17479,7 +18776,7 @@
17479
18776
  "deprecationReason": null
17480
18777
  },
17481
18778
  {
17482
- "name": "bulkDeleteParameters",
18779
+ "name": "parametersBulkDelete",
17483
18780
  "description": "Bulk delete parameters by IDs.",
17484
18781
  "args": [
17485
18782
  {
@@ -17518,7 +18815,7 @@
17518
18815
  "deprecationReason": null
17519
18816
  },
17520
18817
  {
17521
- "name": "bulkDeleteParameterOptions",
18818
+ "name": "parameterOptionsBulkDelete",
17522
18819
  "description": "Bulk delete parameter options by IDs.",
17523
18820
  "args": [
17524
18821
  {
@@ -17635,7 +18932,7 @@
17635
18932
  "deprecationReason": null
17636
18933
  },
17637
18934
  {
17638
- "name": "changeParameterActivity",
18935
+ "name": "parametersBulkSetActive",
17639
18936
  "description": "Bulk toggle parameter visibility.",
17640
18937
  "args": [
17641
18938
  {
@@ -17688,7 +18985,7 @@
17688
18985
  "deprecationReason": null
17689
18986
  },
17690
18987
  {
17691
- "name": "changeParameterOptionActivity",
18988
+ "name": "parameterOptionsBulkSetActive",
17692
18989
  "description": "Bulk toggle parameter option visibility.",
17693
18990
  "args": [
17694
18991
  {
@@ -17741,7 +19038,7 @@
17741
19038
  "deprecationReason": null
17742
19039
  },
17743
19040
  {
17744
- "name": "createParameterOptionsBulk",
19041
+ "name": "parameterOptionsBulkCreate",
17745
19042
  "description": "Create multiple parameter options at once.",
17746
19043
  "args": [
17747
19044
  {
@@ -18534,7 +19831,7 @@
18534
19831
  "deprecationReason": null
18535
19832
  },
18536
19833
  {
18537
- "name": "deleteSmartCollections",
19834
+ "name": "smartCollectionsBulkDelete",
18538
19835
  "description": "Delete one or more smart collections.",
18539
19836
  "args": [
18540
19837
  {
@@ -18596,7 +19893,7 @@
18596
19893
  "deprecationReason": null
18597
19894
  },
18598
19895
  {
18599
- "name": "bulkUpdateQuantity",
19896
+ "name": "productVariantsBulkUpdateQuantity",
18600
19897
  "description": "Bulk update variant quantities (add or set).",
18601
19898
  "args": [
18602
19899
  {
@@ -18627,7 +19924,7 @@
18627
19924
  "deprecationReason": null
18628
19925
  },
18629
19926
  {
18630
- "name": "bulkUpdatePrice",
19927
+ "name": "productVariantsBulkUpdatePrice",
18631
19928
  "description": "Bulk update variant prices.",
18632
19929
  "args": [
18633
19930
  {
@@ -18658,7 +19955,7 @@
18658
19955
  "deprecationReason": null
18659
19956
  },
18660
19957
  {
18661
- "name": "bulkUpdateSellingStatus",
19958
+ "name": "productVariantsBulkUpdateSellingStatus",
18662
19959
  "description": "Bulk update product continue-selling status.",
18663
19960
  "args": [
18664
19961
  {
@@ -18840,11 +20137,11 @@
18840
20137
  "deprecationReason": null
18841
20138
  },
18842
20139
  {
18843
- "name": "collectionAddProducts",
18844
- "description": "Add products to a category (max 250).",
20140
+ "name": "categoryAttachProducts",
20141
+ "description": "Attach products to a single category (max 250). Inverse of `productsBulkAttachCategories` — one category, N products. Idempotent: products that are already attached are no-ops.",
18845
20142
  "args": [
18846
20143
  {
18847
- "name": "id",
20144
+ "name": "categoryId",
18848
20145
  "description": "Category ID.",
18849
20146
  "type": {
18850
20147
  "kind": "NON_NULL",
@@ -18859,7 +20156,7 @@
18859
20156
  },
18860
20157
  {
18861
20158
  "name": "productIds",
18862
- "description": "Product IDs to add.",
20159
+ "description": "Product IDs to attach.",
18863
20160
  "type": {
18864
20161
  "kind": "NON_NULL",
18865
20162
  "name": null,
@@ -18893,11 +20190,11 @@
18893
20190
  "deprecationReason": null
18894
20191
  },
18895
20192
  {
18896
- "name": "collectionRemoveProducts",
18897
- "description": "Remove products from a category (max 250).",
20193
+ "name": "categoryDetachProducts",
20194
+ "description": "Detach products from a single category (max 250). Pairs that aren't actually attached are silently no-ops.",
18898
20195
  "args": [
18899
20196
  {
18900
- "name": "id",
20197
+ "name": "categoryId",
18901
20198
  "description": "Category ID.",
18902
20199
  "type": {
18903
20200
  "kind": "NON_NULL",
@@ -18912,7 +20209,7 @@
18912
20209
  },
18913
20210
  {
18914
20211
  "name": "productIds",
18915
- "description": "Product IDs to remove.",
20212
+ "description": "Product IDs to detach.",
18916
20213
  "type": {
18917
20214
  "kind": "NON_NULL",
18918
20215
  "name": null,
@@ -19339,40 +20636,118 @@
19339
20636
  "deprecationReason": null
19340
20637
  },
19341
20638
  {
19342
- "name": "massCategoryPropertyAction",
19343
- "description": "Perform a mass action on category properties (delete, active, visible).",
20639
+ "name": "categoryPropertiesBulkSetActive",
20640
+ "description": "Bulk-set the `active` flag on category properties. Mirrors the admin properties listing's Activate / Deactivate bulk actions.",
19344
20641
  "args": [
19345
20642
  {
19346
- "name": "type",
19347
- "description": "Action type: delete, active, or visible.",
20643
+ "name": "ids",
20644
+ "description": "Property IDs.",
20645
+ "type": {
20646
+ "kind": "NON_NULL",
20647
+ "name": null,
20648
+ "ofType": {
20649
+ "kind": "LIST",
20650
+ "name": null,
20651
+ "ofType": {
20652
+ "kind": "NON_NULL",
20653
+ "name": null,
20654
+ "ofType": {
20655
+ "kind": "SCALAR",
20656
+ "name": "ID",
20657
+ "ofType": null
20658
+ }
20659
+ }
20660
+ }
20661
+ },
20662
+ "defaultValue": null
20663
+ },
20664
+ {
20665
+ "name": "active",
20666
+ "description": "Target value: true=active, false=inactive.",
19348
20667
  "type": {
19349
20668
  "kind": "NON_NULL",
19350
20669
  "name": null,
19351
20670
  "ofType": {
19352
20671
  "kind": "SCALAR",
19353
- "name": "String",
20672
+ "name": "Boolean",
19354
20673
  "ofType": null
19355
20674
  }
19356
20675
  },
19357
20676
  "defaultValue": null
20677
+ }
20678
+ ],
20679
+ "type": {
20680
+ "kind": "NON_NULL",
20681
+ "name": null,
20682
+ "ofType": {
20683
+ "kind": "OBJECT",
20684
+ "name": "BulkOperationResult",
20685
+ "ofType": null
20686
+ }
20687
+ },
20688
+ "isDeprecated": false,
20689
+ "deprecationReason": null
20690
+ },
20691
+ {
20692
+ "name": "categoryPropertiesBulkSetVisible",
20693
+ "description": "Bulk-set the `is_visible` flag on category properties. Controls whether each property is exposed as a storefront filter.",
20694
+ "args": [
20695
+ {
20696
+ "name": "ids",
20697
+ "description": "Property IDs.",
20698
+ "type": {
20699
+ "kind": "NON_NULL",
20700
+ "name": null,
20701
+ "ofType": {
20702
+ "kind": "LIST",
20703
+ "name": null,
20704
+ "ofType": {
20705
+ "kind": "NON_NULL",
20706
+ "name": null,
20707
+ "ofType": {
20708
+ "kind": "SCALAR",
20709
+ "name": "ID",
20710
+ "ofType": null
20711
+ }
20712
+ }
20713
+ }
20714
+ },
20715
+ "defaultValue": null
19358
20716
  },
19359
20717
  {
19360
- "name": "value",
19361
- "description": "Target value for active/visible actions.",
20718
+ "name": "visible",
20719
+ "description": "Target value: true=usable as filter, false=hidden from filters.",
19362
20720
  "type": {
19363
20721
  "kind": "NON_NULL",
19364
20722
  "name": null,
19365
20723
  "ofType": {
19366
20724
  "kind": "SCALAR",
19367
- "name": "String",
20725
+ "name": "Boolean",
19368
20726
  "ofType": null
19369
20727
  }
19370
20728
  },
19371
20729
  "defaultValue": null
19372
- },
20730
+ }
20731
+ ],
20732
+ "type": {
20733
+ "kind": "NON_NULL",
20734
+ "name": null,
20735
+ "ofType": {
20736
+ "kind": "OBJECT",
20737
+ "name": "BulkOperationResult",
20738
+ "ofType": null
20739
+ }
20740
+ },
20741
+ "isDeprecated": false,
20742
+ "deprecationReason": null
20743
+ },
20744
+ {
20745
+ "name": "categoryPropertiesBulkDelete",
20746
+ "description": "Bulk-delete category properties. Refuses with `dependency_blocked` when any of the supplied properties is still attached to products — detach the property from those products first.",
20747
+ "args": [
19373
20748
  {
19374
20749
  "name": "ids",
19375
- "description": "Property IDs to act on.",
20750
+ "description": "Property IDs.",
19376
20751
  "type": {
19377
20752
  "kind": "NON_NULL",
19378
20753
  "name": null,
@@ -19398,7 +20773,7 @@
19398
20773
  "name": null,
19399
20774
  "ofType": {
19400
20775
  "kind": "OBJECT",
19401
- "name": "CategoryPropertyMutationResult",
20776
+ "name": "BulkOperationResult",
19402
20777
  "ofType": null
19403
20778
  }
19404
20779
  },
@@ -19451,7 +20826,7 @@
19451
20826
  "deprecationReason": null
19452
20827
  },
19453
20828
  {
19454
- "name": "createCategoryPropertyOptionsBulk",
20829
+ "name": "categoryPropertyOptionsBulkCreate",
19455
20830
  "description": "Bulk create options for a category property.",
19456
20831
  "args": [
19457
20832
  {
@@ -19757,7 +21132,7 @@
19757
21132
  "deprecationReason": null
19758
21133
  },
19759
21134
  {
19760
- "name": "bulkDeleteCategoryPropertyOptions",
21135
+ "name": "categoryPropertyOptionsBulkDelete",
19761
21136
  "description": "Bulk delete category property options.",
19762
21137
  "args": [
19763
21138
  {
@@ -20376,7 +21751,7 @@
20376
21751
  "deprecationReason": null
20377
21752
  },
20378
21753
  {
20379
- "name": "massCustomerAction",
21754
+ "name": "customersBulkAction",
20380
21755
  "description": "Toggle marketing or active status for multiple customers at once.",
20381
21756
  "args": [
20382
21757
  {
@@ -21205,7 +22580,7 @@
21205
22580
  "deprecationReason": null
21206
22581
  },
21207
22582
  {
21208
- "name": "deleteDiscounts",
22583
+ "name": "discountsBulkDelete",
21209
22584
  "description": "Delete one or more discounts.",
21210
22585
  "args": [
21211
22586
  {
@@ -23016,7 +24391,7 @@
23016
24391
  "deprecationReason": null
23017
24392
  },
23018
24393
  {
23019
- "name": "deleteSegments",
24394
+ "name": "segmentsBulkDelete",
23020
24395
  "description": "Delete multiple segments (soft delete).",
23021
24396
  "args": [
23022
24397
  {
@@ -23086,7 +24461,7 @@
23086
24461
  "deprecationReason": null
23087
24462
  },
23088
24463
  {
23089
- "name": "deleteSubscribers",
24464
+ "name": "subscribersBulkDelete",
23090
24465
  "description": "Delete multiple subscribers.",
23091
24466
  "args": [
23092
24467
  {
@@ -23284,7 +24659,7 @@
23284
24659
  "deprecationReason": null
23285
24660
  },
23286
24661
  {
23287
- "name": "batchImportSubscribers",
24662
+ "name": "subscribersBulkImport",
23288
24663
  "description": "Batch import subscribers (async — queued for background processing).\nProvide either `subscribers` (structured JSON) or `csv` (CSV text) — not both.\nEach entry must have at least an email or phone.",
23289
24664
  "args": [
23290
24665
  {
@@ -28808,6 +30183,84 @@
28808
30183
  "isDeprecated": false,
28809
30184
  "deprecationReason": null
28810
30185
  },
30186
+ {
30187
+ "name": "brandsBulkDelete",
30188
+ "description": "Bulk-delete brands. Mirrors the admin Brand & Model listing's Delete bulk action. Refuses with `dependency_blocked` when any of the supplied brands still has products attached.",
30189
+ "args": [
30190
+ {
30191
+ "name": "ids",
30192
+ "description": "Brand IDs.",
30193
+ "type": {
30194
+ "kind": "NON_NULL",
30195
+ "name": null,
30196
+ "ofType": {
30197
+ "kind": "LIST",
30198
+ "name": null,
30199
+ "ofType": {
30200
+ "kind": "NON_NULL",
30201
+ "name": null,
30202
+ "ofType": {
30203
+ "kind": "SCALAR",
30204
+ "name": "ID",
30205
+ "ofType": null
30206
+ }
30207
+ }
30208
+ }
30209
+ },
30210
+ "defaultValue": null
30211
+ }
30212
+ ],
30213
+ "type": {
30214
+ "kind": "NON_NULL",
30215
+ "name": null,
30216
+ "ofType": {
30217
+ "kind": "OBJECT",
30218
+ "name": "BulkOperationResult",
30219
+ "ofType": null
30220
+ }
30221
+ },
30222
+ "isDeprecated": false,
30223
+ "deprecationReason": null
30224
+ },
30225
+ {
30226
+ "name": "brandModelsBulkDelete",
30227
+ "description": "Bulk-delete brand models. Mirrors the admin Brand & Model listing's Delete bulk action on the Models tab. Refuses with `dependency_blocked` when any of the supplied models still has products attached.",
30228
+ "args": [
30229
+ {
30230
+ "name": "ids",
30231
+ "description": "Brand model IDs.",
30232
+ "type": {
30233
+ "kind": "NON_NULL",
30234
+ "name": null,
30235
+ "ofType": {
30236
+ "kind": "LIST",
30237
+ "name": null,
30238
+ "ofType": {
30239
+ "kind": "NON_NULL",
30240
+ "name": null,
30241
+ "ofType": {
30242
+ "kind": "SCALAR",
30243
+ "name": "ID",
30244
+ "ofType": null
30245
+ }
30246
+ }
30247
+ }
30248
+ },
30249
+ "defaultValue": null
30250
+ }
30251
+ ],
30252
+ "type": {
30253
+ "kind": "NON_NULL",
30254
+ "name": null,
30255
+ "ofType": {
30256
+ "kind": "OBJECT",
30257
+ "name": "BulkOperationResult",
30258
+ "ofType": null
30259
+ }
30260
+ },
30261
+ "isDeprecated": false,
30262
+ "deprecationReason": null
30263
+ },
28811
30264
  {
28812
30265
  "name": "createBundle",
28813
30266
  "description": "Create a new bundle product.",
@@ -28885,7 +30338,7 @@
28885
30338
  "deprecationReason": null
28886
30339
  },
28887
30340
  {
28888
- "name": "deleteBundles",
30341
+ "name": "bundlesBulkDelete",
28889
30342
  "description": "Delete bundle products.",
28890
30343
  "args": [
28891
30344
  {
@@ -28982,6 +30435,73 @@
28982
30435
  "isDeprecated": false,
28983
30436
  "deprecationReason": null
28984
30437
  },
30438
+ {
30439
+ "name": "bundlesBulkSetStatus",
30440
+ "description": "Bulk-toggle a status field on N bundle products. Mirrors the admin Bundles listing's bulk Activate / Deactivate / Hide / Feature / Mark-new actions.",
30441
+ "args": [
30442
+ {
30443
+ "name": "ids",
30444
+ "description": "Bundle product IDs.",
30445
+ "type": {
30446
+ "kind": "NON_NULL",
30447
+ "name": null,
30448
+ "ofType": {
30449
+ "kind": "LIST",
30450
+ "name": null,
30451
+ "ofType": {
30452
+ "kind": "NON_NULL",
30453
+ "name": null,
30454
+ "ofType": {
30455
+ "kind": "SCALAR",
30456
+ "name": "ID",
30457
+ "ofType": null
30458
+ }
30459
+ }
30460
+ }
30461
+ },
30462
+ "defaultValue": null
30463
+ },
30464
+ {
30465
+ "name": "field",
30466
+ "description": "Status field to toggle.",
30467
+ "type": {
30468
+ "kind": "NON_NULL",
30469
+ "name": null,
30470
+ "ofType": {
30471
+ "kind": "ENUM",
30472
+ "name": "BundleStatusField",
30473
+ "ofType": null
30474
+ }
30475
+ },
30476
+ "defaultValue": null
30477
+ },
30478
+ {
30479
+ "name": "value",
30480
+ "description": "Target value.",
30481
+ "type": {
30482
+ "kind": "NON_NULL",
30483
+ "name": null,
30484
+ "ofType": {
30485
+ "kind": "SCALAR",
30486
+ "name": "Boolean",
30487
+ "ofType": null
30488
+ }
30489
+ },
30490
+ "defaultValue": null
30491
+ }
30492
+ ],
30493
+ "type": {
30494
+ "kind": "NON_NULL",
30495
+ "name": null,
30496
+ "ofType": {
30497
+ "kind": "OBJECT",
30498
+ "name": "BulkOperationResult",
30499
+ "ofType": null
30500
+ }
30501
+ },
30502
+ "isDeprecated": false,
30503
+ "deprecationReason": null
30504
+ },
28985
30505
  {
28986
30506
  "name": "duplicateBundle",
28987
30507
  "description": "Duplicate a bundle product.",
@@ -29117,7 +30637,7 @@
29117
30637
  "deprecationReason": null
29118
30638
  },
29119
30639
  {
29120
- "name": "deleteUnits",
30640
+ "name": "unitsBulkDelete",
29121
30641
  "description": "Bulk delete measurement units.",
29122
30642
  "args": [
29123
30643
  {
@@ -30033,7 +31553,7 @@
30033
31553
  "deprecationReason": null
30034
31554
  },
30035
31555
  {
30036
- "name": "multylangBulkCopyProducts",
31556
+ "name": "multylangProductsBulkCopy",
30037
31557
  "description": "Bulk copy products to multi-language sites.",
30038
31558
  "args": [
30039
31559
  {
@@ -30072,7 +31592,7 @@
30072
31592
  "deprecationReason": null
30073
31593
  },
30074
31594
  {
30075
- "name": "multylangBulkDeleteProducts",
31595
+ "name": "multylangProductsBulkDelete",
30076
31596
  "description": "Bulk delete products from multi-language sites.",
30077
31597
  "args": [
30078
31598
  {
@@ -32083,7 +33603,7 @@
32083
33603
  "deprecationReason": null
32084
33604
  },
32085
33605
  {
32086
- "name": "bulkDeleteSeoSpinnerTempItems",
33606
+ "name": "seoSpinnerTempItemsBulkDelete",
32087
33607
  "description": "Bulk delete SEO Spinner temp items.",
32088
33608
  "args": [
32089
33609
  {
@@ -34926,7 +36446,7 @@
34926
36446
  "deprecationReason": null
34927
36447
  },
34928
36448
  {
34929
- "name": "xmlFeedBulkDeleteMappings",
36449
+ "name": "xmlFeedMappingsBulkDelete",
34930
36450
  "description": "Bulk delete category mappings.",
34931
36451
  "args": [
34932
36452
  {
@@ -35388,7 +36908,7 @@
35388
36908
  "deprecationReason": null
35389
36909
  },
35390
36910
  {
35391
- "name": "deleteStoreProducts",
36911
+ "name": "storeProductsBulkDelete",
35392
36912
  "description": "Bulk remove products from a store.",
35393
36913
  "args": [
35394
36914
  {
@@ -35953,7 +37473,7 @@
35953
37473
  "deprecationReason": null
35954
37474
  },
35955
37475
  {
35956
- "name": "bulkPrintShippingWaybills",
37476
+ "name": "shippingWaybillsBulkPrint",
35957
37477
  "description": "Bulk print waybills for multiple orders.",
35958
37478
  "args": [
35959
37479
  {
@@ -36124,6 +37644,96 @@
36124
37644
  "isDeprecated": false,
36125
37645
  "deprecationReason": null
36126
37646
  },
37647
+ {
37648
+ "name": "changeOrderShippingPayer",
37649
+ "description": "Change the shipping payer side on an order (who pays the carrier — SENDER / RECEIVER / OTHER). Updates Order meta.side and re-runs the current provider's shipping flow so insurance, VAT and the quote are recalculated for the new payer. Available sides depend on provider and order state — paid / completed orders cannot move to RECEIVER.",
37650
+ "args": [
37651
+ {
37652
+ "name": "orderId",
37653
+ "description": "Order ID.",
37654
+ "type": {
37655
+ "kind": "NON_NULL",
37656
+ "name": null,
37657
+ "ofType": {
37658
+ "kind": "SCALAR",
37659
+ "name": "ID",
37660
+ "ofType": null
37661
+ }
37662
+ },
37663
+ "defaultValue": null
37664
+ },
37665
+ {
37666
+ "name": "side",
37667
+ "description": "Payer side. Must be one of the values returned by `Order.shipping.payerSides` for this order.",
37668
+ "type": {
37669
+ "kind": "NON_NULL",
37670
+ "name": null,
37671
+ "ofType": {
37672
+ "kind": "ENUM",
37673
+ "name": "ShippingPayerSide",
37674
+ "ofType": null
37675
+ }
37676
+ },
37677
+ "defaultValue": null
37678
+ }
37679
+ ],
37680
+ "type": {
37681
+ "kind": "NON_NULL",
37682
+ "name": null,
37683
+ "ofType": {
37684
+ "kind": "OBJECT",
37685
+ "name": "Order",
37686
+ "ofType": null
37687
+ }
37688
+ },
37689
+ "isDeprecated": false,
37690
+ "deprecationReason": null
37691
+ },
37692
+ {
37693
+ "name": "setOrderShippingInsurance",
37694
+ "description": "Toggle shipping insurance on an order. Re-runs the current provider with the new insurance flag. Rejects with reason `provider_rejected` when the provider does not support insurance.",
37695
+ "args": [
37696
+ {
37697
+ "name": "orderId",
37698
+ "description": "Order ID.",
37699
+ "type": {
37700
+ "kind": "NON_NULL",
37701
+ "name": null,
37702
+ "ofType": {
37703
+ "kind": "SCALAR",
37704
+ "name": "ID",
37705
+ "ofType": null
37706
+ }
37707
+ },
37708
+ "defaultValue": null
37709
+ },
37710
+ {
37711
+ "name": "enabled",
37712
+ "description": "Enable (true) or disable (false) shipping insurance.",
37713
+ "type": {
37714
+ "kind": "NON_NULL",
37715
+ "name": null,
37716
+ "ofType": {
37717
+ "kind": "SCALAR",
37718
+ "name": "Boolean",
37719
+ "ofType": null
37720
+ }
37721
+ },
37722
+ "defaultValue": null
37723
+ }
37724
+ ],
37725
+ "type": {
37726
+ "kind": "NON_NULL",
37727
+ "name": null,
37728
+ "ofType": {
37729
+ "kind": "OBJECT",
37730
+ "name": "Order",
37731
+ "ofType": null
37732
+ }
37733
+ },
37734
+ "isDeprecated": false,
37735
+ "deprecationReason": null
37736
+ },
36127
37737
  {
36128
37738
  "name": "validateDhlexpressAddress",
36129
37739
  "description": "Validate a DHL Express address.",
@@ -36886,6 +38496,85 @@
36886
38496
  "enumValues": null,
36887
38497
  "possibleTypes": null
36888
38498
  },
38499
+ {
38500
+ "kind": "OBJECT",
38501
+ "name": "BulkOperationResult",
38502
+ "description": "Generic result for bulk delete / update operations on simple entities (categories, vendors, brands, brand models, category properties, …). Resource-specific bulk operations may return a richer type instead.",
38503
+ "fields": [
38504
+ {
38505
+ "name": "success",
38506
+ "description": "True when the operation finished without throwing. False is reserved for partial soft-failures — a hard rejection (no items deleted, dependency block, etc.) is signalled via an `agentHint` error rather than `success: false`.",
38507
+ "args": [],
38508
+ "type": {
38509
+ "kind": "NON_NULL",
38510
+ "name": null,
38511
+ "ofType": {
38512
+ "kind": "SCALAR",
38513
+ "name": "Boolean",
38514
+ "ofType": null
38515
+ }
38516
+ },
38517
+ "isDeprecated": false,
38518
+ "deprecationReason": null
38519
+ },
38520
+ {
38521
+ "name": "affectedCount",
38522
+ "description": "Number of records actually written / deleted.",
38523
+ "args": [],
38524
+ "type": {
38525
+ "kind": "NON_NULL",
38526
+ "name": null,
38527
+ "ofType": {
38528
+ "kind": "SCALAR",
38529
+ "name": "Int",
38530
+ "ofType": null
38531
+ }
38532
+ },
38533
+ "isDeprecated": false,
38534
+ "deprecationReason": null
38535
+ },
38536
+ {
38537
+ "name": "skippedIds",
38538
+ "description": "IDs that were not applicable (didn't exist, already deleted, or didn't match the operation's filter).",
38539
+ "args": [],
38540
+ "type": {
38541
+ "kind": "NON_NULL",
38542
+ "name": null,
38543
+ "ofType": {
38544
+ "kind": "LIST",
38545
+ "name": null,
38546
+ "ofType": {
38547
+ "kind": "NON_NULL",
38548
+ "name": null,
38549
+ "ofType": {
38550
+ "kind": "SCALAR",
38551
+ "name": "ID",
38552
+ "ofType": null
38553
+ }
38554
+ }
38555
+ }
38556
+ },
38557
+ "isDeprecated": false,
38558
+ "deprecationReason": null
38559
+ },
38560
+ {
38561
+ "name": "message",
38562
+ "description": "Optional human-readable summary.",
38563
+ "args": [],
38564
+ "type": {
38565
+ "kind": "SCALAR",
38566
+ "name": "String",
38567
+ "ofType": null
38568
+ },
38569
+ "isDeprecated": false,
38570
+ "deprecationReason": null
38571
+ }
38572
+ ],
38573
+ "inputFields": null,
38574
+ "interfaces": [],
38575
+ "enumValues": null,
38576
+ "possibleTypes": null
38577
+ },
36889
38578
  {
36890
38579
  "kind": "ENUM",
36891
38580
  "name": "YesNo",
@@ -38204,6 +39893,81 @@
38204
39893
  "enumValues": null,
38205
39894
  "possibleTypes": null
38206
39895
  },
39896
+ {
39897
+ "kind": "OBJECT",
39898
+ "name": "OrderDocumentPdfResult",
39899
+ "description": "PDF result for fiscal documents (invoice/receipt). Returns binary as base64 in pdfContent.",
39900
+ "fields": [
39901
+ {
39902
+ "name": "success",
39903
+ "description": "True if a PDF was generated; false if the document does not exist for this order.",
39904
+ "args": [],
39905
+ "type": {
39906
+ "kind": "NON_NULL",
39907
+ "name": null,
39908
+ "ofType": {
39909
+ "kind": "SCALAR",
39910
+ "name": "Boolean",
39911
+ "ofType": null
39912
+ }
39913
+ },
39914
+ "isDeprecated": false,
39915
+ "deprecationReason": null
39916
+ },
39917
+ {
39918
+ "name": "message",
39919
+ "description": "Human-readable message — populated when success=false (e.g. document not generated yet).",
39920
+ "args": [],
39921
+ "type": {
39922
+ "kind": "SCALAR",
39923
+ "name": "String",
39924
+ "ofType": null
39925
+ },
39926
+ "isDeprecated": false,
39927
+ "deprecationReason": null
39928
+ },
39929
+ {
39930
+ "name": "pdfContent",
39931
+ "description": "PDF binary, base64-encoded. Decode and write to disk to obtain the file.",
39932
+ "args": [],
39933
+ "type": {
39934
+ "kind": "SCALAR",
39935
+ "name": "String",
39936
+ "ofType": null
39937
+ },
39938
+ "isDeprecated": false,
39939
+ "deprecationReason": null
39940
+ },
39941
+ {
39942
+ "name": "filename",
39943
+ "description": "Suggested filename (e.g. invoice-12345.pdf). Use this when saving locally.",
39944
+ "args": [],
39945
+ "type": {
39946
+ "kind": "SCALAR",
39947
+ "name": "String",
39948
+ "ofType": null
39949
+ },
39950
+ "isDeprecated": false,
39951
+ "deprecationReason": null
39952
+ },
39953
+ {
39954
+ "name": "contentType",
39955
+ "description": "MIME content type — always application/pdf when success=true.",
39956
+ "args": [],
39957
+ "type": {
39958
+ "kind": "SCALAR",
39959
+ "name": "String",
39960
+ "ofType": null
39961
+ },
39962
+ "isDeprecated": false,
39963
+ "deprecationReason": null
39964
+ }
39965
+ ],
39966
+ "inputFields": null,
39967
+ "interfaces": [],
39968
+ "enumValues": null,
39969
+ "possibleTypes": null
39970
+ },
38207
39971
  {
38208
39972
  "kind": "OBJECT",
38209
39973
  "name": "OrderNotes",
@@ -44717,6 +46481,30 @@
44717
46481
  },
44718
46482
  "isDeprecated": false,
44719
46483
  "deprecationReason": null
46484
+ },
46485
+ {
46486
+ "name": "taxonomyId",
46487
+ "description": "Google taxonomy id mapped to this category (if any). Used by feed exports (Merchant Center etc.).",
46488
+ "args": [],
46489
+ "type": {
46490
+ "kind": "SCALAR",
46491
+ "name": "ID",
46492
+ "ofType": null
46493
+ },
46494
+ "isDeprecated": false,
46495
+ "deprecationReason": null
46496
+ },
46497
+ {
46498
+ "name": "googleTaxonomy",
46499
+ "description": "Resolved Google product category mapped to this category. Null when `taxonomyId` is not set or points to a stale id.",
46500
+ "args": [],
46501
+ "type": {
46502
+ "kind": "OBJECT",
46503
+ "name": "GoogleProductCategory",
46504
+ "ofType": null
46505
+ },
46506
+ "isDeprecated": false,
46507
+ "deprecationReason": null
44720
46508
  }
44721
46509
  ],
44722
46510
  "inputFields": null,
@@ -46199,6 +47987,30 @@
46199
47987
  "isDeprecated": false,
46200
47988
  "deprecationReason": null
46201
47989
  },
47990
+ {
47991
+ "name": "brandModels",
47992
+ "description": "Brand-models attached to this product (many-to-many through the BrandModel app's pivot table). Empty when the BrandModel app is not installed or no models are attached. Use `productsBulkSetBrandModels` to attach / detach.",
47993
+ "args": [],
47994
+ "type": {
47995
+ "kind": "NON_NULL",
47996
+ "name": null,
47997
+ "ofType": {
47998
+ "kind": "LIST",
47999
+ "name": null,
48000
+ "ofType": {
48001
+ "kind": "NON_NULL",
48002
+ "name": null,
48003
+ "ofType": {
48004
+ "kind": "OBJECT",
48005
+ "name": "BrandModelItem",
48006
+ "ofType": null
48007
+ }
48008
+ }
48009
+ }
48010
+ },
48011
+ "isDeprecated": false,
48012
+ "deprecationReason": null
48013
+ },
46202
48014
  {
46203
48015
  "name": "tags",
46204
48016
  "description": "Product tags.",
@@ -47238,6 +49050,267 @@
47238
49050
  "enumValues": null,
47239
49051
  "possibleTypes": null
47240
49052
  },
49053
+ {
49054
+ "kind": "OBJECT",
49055
+ "name": "BulkDeleteProductsResult",
49056
+ "description": "Result of a bulk product delete. The operation is fire-and-forget: products are immediately marked inactive + soft-deleted (so the storefront stops serving them and they disappear from search/ES), and a `BatchProductDelete` job is queued on the `system3` worker for hard removal of rows + media files. Returns once the job is queued.",
49057
+ "fields": [
49058
+ {
49059
+ "name": "success",
49060
+ "description": "True when the job was successfully queued.",
49061
+ "args": [],
49062
+ "type": {
49063
+ "kind": "NON_NULL",
49064
+ "name": null,
49065
+ "ofType": {
49066
+ "kind": "SCALAR",
49067
+ "name": "Boolean",
49068
+ "ofType": null
49069
+ }
49070
+ },
49071
+ "isDeprecated": false,
49072
+ "deprecationReason": null
49073
+ },
49074
+ {
49075
+ "name": "queuedCount",
49076
+ "description": "Number of product IDs accepted for deletion (existed and were queued).",
49077
+ "args": [],
49078
+ "type": {
49079
+ "kind": "NON_NULL",
49080
+ "name": null,
49081
+ "ofType": {
49082
+ "kind": "SCALAR",
49083
+ "name": "Int",
49084
+ "ofType": null
49085
+ }
49086
+ },
49087
+ "isDeprecated": false,
49088
+ "deprecationReason": null
49089
+ },
49090
+ {
49091
+ "name": "skippedIds",
49092
+ "description": "IDs that were skipped — either not found or already soft-deleted. Empty when every input id was valid.",
49093
+ "args": [],
49094
+ "type": {
49095
+ "kind": "NON_NULL",
49096
+ "name": null,
49097
+ "ofType": {
49098
+ "kind": "LIST",
49099
+ "name": null,
49100
+ "ofType": {
49101
+ "kind": "NON_NULL",
49102
+ "name": null,
49103
+ "ofType": {
49104
+ "kind": "SCALAR",
49105
+ "name": "ID",
49106
+ "ofType": null
49107
+ }
49108
+ }
49109
+ }
49110
+ },
49111
+ "isDeprecated": false,
49112
+ "deprecationReason": null
49113
+ },
49114
+ {
49115
+ "name": "message",
49116
+ "description": "Optional human-readable summary.",
49117
+ "args": [],
49118
+ "type": {
49119
+ "kind": "SCALAR",
49120
+ "name": "String",
49121
+ "ofType": null
49122
+ },
49123
+ "isDeprecated": false,
49124
+ "deprecationReason": null
49125
+ }
49126
+ ],
49127
+ "inputFields": null,
49128
+ "interfaces": [],
49129
+ "enumValues": null,
49130
+ "possibleTypes": null
49131
+ },
49132
+ {
49133
+ "kind": "OBJECT",
49134
+ "name": "BulkProductsResult",
49135
+ "description": "Generic result for the `productsBulk*` family of mutations (set-active, set-hidden, set-new, set-featured, set-tags, set-category, set-vendor, set-sort-order, set-stock-status, tracking).",
49136
+ "fields": [
49137
+ {
49138
+ "name": "success",
49139
+ "description": "True when the operation finished without throwing.",
49140
+ "args": [],
49141
+ "type": {
49142
+ "kind": "NON_NULL",
49143
+ "name": null,
49144
+ "ofType": {
49145
+ "kind": "SCALAR",
49146
+ "name": "Boolean",
49147
+ "ofType": null
49148
+ }
49149
+ },
49150
+ "isDeprecated": false,
49151
+ "deprecationReason": null
49152
+ },
49153
+ {
49154
+ "name": "affectedCount",
49155
+ "description": "Number of products that were actually updated.",
49156
+ "args": [],
49157
+ "type": {
49158
+ "kind": "NON_NULL",
49159
+ "name": null,
49160
+ "ofType": {
49161
+ "kind": "SCALAR",
49162
+ "name": "Int",
49163
+ "ofType": null
49164
+ }
49165
+ },
49166
+ "isDeprecated": false,
49167
+ "deprecationReason": null
49168
+ },
49169
+ {
49170
+ "name": "skippedIds",
49171
+ "description": "IDs that were skipped because they don't exist (or, for `productsBulkSetOutOfStockStatus`, because the product is not tracking quantity). Empty when every input id was applicable.",
49172
+ "args": [],
49173
+ "type": {
49174
+ "kind": "NON_NULL",
49175
+ "name": null,
49176
+ "ofType": {
49177
+ "kind": "LIST",
49178
+ "name": null,
49179
+ "ofType": {
49180
+ "kind": "NON_NULL",
49181
+ "name": null,
49182
+ "ofType": {
49183
+ "kind": "SCALAR",
49184
+ "name": "ID",
49185
+ "ofType": null
49186
+ }
49187
+ }
49188
+ }
49189
+ },
49190
+ "isDeprecated": false,
49191
+ "deprecationReason": null
49192
+ },
49193
+ {
49194
+ "name": "message",
49195
+ "description": "Optional human-readable summary.",
49196
+ "args": [],
49197
+ "type": {
49198
+ "kind": "SCALAR",
49199
+ "name": "String",
49200
+ "ofType": null
49201
+ },
49202
+ "isDeprecated": false,
49203
+ "deprecationReason": null
49204
+ }
49205
+ ],
49206
+ "inputFields": null,
49207
+ "interfaces": [],
49208
+ "enumValues": null,
49209
+ "possibleTypes": null
49210
+ },
49211
+ {
49212
+ "kind": "OBJECT",
49213
+ "name": "BulkDuplicateProductsResult",
49214
+ "description": "Result of `productsBulkDuplicate` — returns ids of the freshly duplicated products.",
49215
+ "fields": [
49216
+ {
49217
+ "name": "success",
49218
+ "description": "True when the operation finished without throwing.",
49219
+ "args": [],
49220
+ "type": {
49221
+ "kind": "NON_NULL",
49222
+ "name": null,
49223
+ "ofType": {
49224
+ "kind": "SCALAR",
49225
+ "name": "Boolean",
49226
+ "ofType": null
49227
+ }
49228
+ },
49229
+ "isDeprecated": false,
49230
+ "deprecationReason": null
49231
+ },
49232
+ {
49233
+ "name": "duplicatedCount",
49234
+ "description": "Number of duplicates created (= length of `duplicatedProducts`).",
49235
+ "args": [],
49236
+ "type": {
49237
+ "kind": "NON_NULL",
49238
+ "name": null,
49239
+ "ofType": {
49240
+ "kind": "SCALAR",
49241
+ "name": "Int",
49242
+ "ofType": null
49243
+ }
49244
+ },
49245
+ "isDeprecated": false,
49246
+ "deprecationReason": null
49247
+ },
49248
+ {
49249
+ "name": "skippedIds",
49250
+ "description": "Source ids that could not be duplicated (not found).",
49251
+ "args": [],
49252
+ "type": {
49253
+ "kind": "NON_NULL",
49254
+ "name": null,
49255
+ "ofType": {
49256
+ "kind": "LIST",
49257
+ "name": null,
49258
+ "ofType": {
49259
+ "kind": "NON_NULL",
49260
+ "name": null,
49261
+ "ofType": {
49262
+ "kind": "SCALAR",
49263
+ "name": "ID",
49264
+ "ofType": null
49265
+ }
49266
+ }
49267
+ }
49268
+ },
49269
+ "isDeprecated": false,
49270
+ "deprecationReason": null
49271
+ },
49272
+ {
49273
+ "name": "duplicatedProducts",
49274
+ "description": "The newly-created Product copies, in the same order as the input ids.",
49275
+ "args": [],
49276
+ "type": {
49277
+ "kind": "NON_NULL",
49278
+ "name": null,
49279
+ "ofType": {
49280
+ "kind": "LIST",
49281
+ "name": null,
49282
+ "ofType": {
49283
+ "kind": "NON_NULL",
49284
+ "name": null,
49285
+ "ofType": {
49286
+ "kind": "OBJECT",
49287
+ "name": "Product",
49288
+ "ofType": null
49289
+ }
49290
+ }
49291
+ }
49292
+ },
49293
+ "isDeprecated": false,
49294
+ "deprecationReason": null
49295
+ },
49296
+ {
49297
+ "name": "message",
49298
+ "description": "Optional human-readable summary.",
49299
+ "args": [],
49300
+ "type": {
49301
+ "kind": "SCALAR",
49302
+ "name": "String",
49303
+ "ofType": null
49304
+ },
49305
+ "isDeprecated": false,
49306
+ "deprecationReason": null
49307
+ }
49308
+ ],
49309
+ "inputFields": null,
49310
+ "interfaces": [],
49311
+ "enumValues": null,
49312
+ "possibleTypes": null
49313
+ },
47241
49314
  {
47242
49315
  "kind": "OBJECT",
47243
49316
  "name": "SmartCollection",
@@ -48325,19 +50398,193 @@
48325
50398
  },
48326
50399
  {
48327
50400
  "kind": "OBJECT",
48328
- "name": "BulkInventoryResult",
48329
- "description": "Result of a bulk inventory operation.",
50401
+ "name": "BulkInventoryResult",
50402
+ "description": "Result of a bulk inventory operation.",
50403
+ "fields": [
50404
+ {
50405
+ "name": "success",
50406
+ "description": "Whether the operation succeeded.",
50407
+ "args": [],
50408
+ "type": {
50409
+ "kind": "NON_NULL",
50410
+ "name": null,
50411
+ "ofType": {
50412
+ "kind": "SCALAR",
50413
+ "name": "Boolean",
50414
+ "ofType": null
50415
+ }
50416
+ },
50417
+ "isDeprecated": false,
50418
+ "deprecationReason": null
50419
+ },
50420
+ {
50421
+ "name": "affectedCount",
50422
+ "description": "Number of variants affected.",
50423
+ "args": [],
50424
+ "type": {
50425
+ "kind": "NON_NULL",
50426
+ "name": null,
50427
+ "ofType": {
50428
+ "kind": "SCALAR",
50429
+ "name": "Int",
50430
+ "ofType": null
50431
+ }
50432
+ },
50433
+ "isDeprecated": false,
50434
+ "deprecationReason": null
50435
+ }
50436
+ ],
50437
+ "inputFields": null,
50438
+ "interfaces": [],
50439
+ "enumValues": null,
50440
+ "possibleTypes": null
50441
+ },
50442
+ {
50443
+ "kind": "OBJECT",
50444
+ "name": "FavoriteProduct",
50445
+ "description": "A product that customers have added to their favorites/wishlist, with aggregate count.",
50446
+ "fields": [
50447
+ {
50448
+ "name": "id",
50449
+ "description": "Product ID.",
50450
+ "args": [],
50451
+ "type": {
50452
+ "kind": "NON_NULL",
50453
+ "name": null,
50454
+ "ofType": {
50455
+ "kind": "SCALAR",
50456
+ "name": "ID",
50457
+ "ofType": null
50458
+ }
50459
+ },
50460
+ "isDeprecated": false,
50461
+ "deprecationReason": null
50462
+ },
50463
+ {
50464
+ "name": "variantId",
50465
+ "description": "Default variant ID.",
50466
+ "args": [],
50467
+ "type": {
50468
+ "kind": "SCALAR",
50469
+ "name": "ID",
50470
+ "ofType": null
50471
+ },
50472
+ "isDeprecated": false,
50473
+ "deprecationReason": null
50474
+ },
50475
+ {
50476
+ "name": "name",
50477
+ "description": "Product name.",
50478
+ "args": [],
50479
+ "type": {
50480
+ "kind": "NON_NULL",
50481
+ "name": null,
50482
+ "ofType": {
50483
+ "kind": "SCALAR",
50484
+ "name": "String",
50485
+ "ofType": null
50486
+ }
50487
+ },
50488
+ "isDeprecated": false,
50489
+ "deprecationReason": null
50490
+ },
50491
+ {
50492
+ "name": "image",
50493
+ "description": "Product image (150x150).",
50494
+ "args": [],
50495
+ "type": {
50496
+ "kind": "SCALAR",
50497
+ "name": "String",
50498
+ "ofType": null
50499
+ },
50500
+ "isDeprecated": false,
50501
+ "deprecationReason": null
50502
+ },
50503
+ {
50504
+ "name": "totalQuantity",
50505
+ "description": "Total stock quantity across all variants.",
50506
+ "args": [],
50507
+ "type": {
50508
+ "kind": "SCALAR",
50509
+ "name": "Float",
50510
+ "ofType": null
50511
+ },
50512
+ "isDeprecated": false,
50513
+ "deprecationReason": null
50514
+ },
50515
+ {
50516
+ "name": "urlHandle",
50517
+ "description": "Product URL handle.",
50518
+ "args": [],
50519
+ "type": {
50520
+ "kind": "SCALAR",
50521
+ "name": "String",
50522
+ "ofType": null
50523
+ },
50524
+ "isDeprecated": false,
50525
+ "deprecationReason": null
50526
+ },
50527
+ {
50528
+ "name": "count",
50529
+ "description": "Number of customers who favorited this product.",
50530
+ "args": [],
50531
+ "type": {
50532
+ "kind": "NON_NULL",
50533
+ "name": null,
50534
+ "ofType": {
50535
+ "kind": "SCALAR",
50536
+ "name": "Int",
50537
+ "ofType": null
50538
+ }
50539
+ },
50540
+ "isDeprecated": false,
50541
+ "deprecationReason": null
50542
+ }
50543
+ ],
50544
+ "inputFields": null,
50545
+ "interfaces": [],
50546
+ "enumValues": null,
50547
+ "possibleTypes": null
50548
+ },
50549
+ {
50550
+ "kind": "OBJECT",
50551
+ "name": "FavoriteProductConnection",
50552
+ "description": "Paginated list of favorite products.",
48330
50553
  "fields": [
48331
50554
  {
48332
- "name": "success",
48333
- "description": "Whether the operation succeeded.",
50555
+ "name": "data",
50556
+ "description": null,
50557
+ "args": [],
50558
+ "type": {
50559
+ "kind": "NON_NULL",
50560
+ "name": null,
50561
+ "ofType": {
50562
+ "kind": "LIST",
50563
+ "name": null,
50564
+ "ofType": {
50565
+ "kind": "NON_NULL",
50566
+ "name": null,
50567
+ "ofType": {
50568
+ "kind": "OBJECT",
50569
+ "name": "FavoriteProduct",
50570
+ "ofType": null
50571
+ }
50572
+ }
50573
+ }
50574
+ },
50575
+ "isDeprecated": false,
50576
+ "deprecationReason": null
50577
+ },
50578
+ {
50579
+ "name": "currentPage",
50580
+ "description": null,
48334
50581
  "args": [],
48335
50582
  "type": {
48336
50583
  "kind": "NON_NULL",
48337
50584
  "name": null,
48338
50585
  "ofType": {
48339
50586
  "kind": "SCALAR",
48340
- "name": "Boolean",
50587
+ "name": "Int",
48341
50588
  "ofType": null
48342
50589
  }
48343
50590
  },
@@ -48345,8 +50592,40 @@
48345
50592
  "deprecationReason": null
48346
50593
  },
48347
50594
  {
48348
- "name": "affectedCount",
48349
- "description": "Number of variants affected.",
50595
+ "name": "lastPage",
50596
+ "description": null,
50597
+ "args": [],
50598
+ "type": {
50599
+ "kind": "NON_NULL",
50600
+ "name": null,
50601
+ "ofType": {
50602
+ "kind": "SCALAR",
50603
+ "name": "Int",
50604
+ "ofType": null
50605
+ }
50606
+ },
50607
+ "isDeprecated": false,
50608
+ "deprecationReason": null
50609
+ },
50610
+ {
50611
+ "name": "perPage",
50612
+ "description": null,
50613
+ "args": [],
50614
+ "type": {
50615
+ "kind": "NON_NULL",
50616
+ "name": null,
50617
+ "ofType": {
50618
+ "kind": "SCALAR",
50619
+ "name": "Int",
50620
+ "ofType": null
50621
+ }
50622
+ },
50623
+ "isDeprecated": false,
50624
+ "deprecationReason": null
50625
+ },
50626
+ {
50627
+ "name": "total",
50628
+ "description": null,
48350
50629
  "args": [],
48351
50630
  "type": {
48352
50631
  "kind": "NON_NULL",
@@ -48368,11 +50647,27 @@
48368
50647
  },
48369
50648
  {
48370
50649
  "kind": "OBJECT",
48371
- "name": "FavoriteProduct",
48372
- "description": "A product that customers have added to their favorites/wishlist, with aggregate count.",
50650
+ "name": "MissingProduct",
50651
+ "description": "A product variant with out-of-stock notification subscriptions.",
48373
50652
  "fields": [
48374
50653
  {
48375
50654
  "name": "id",
50655
+ "description": "Record ID.",
50656
+ "args": [],
50657
+ "type": {
50658
+ "kind": "NON_NULL",
50659
+ "name": null,
50660
+ "ofType": {
50661
+ "kind": "SCALAR",
50662
+ "name": "ID",
50663
+ "ofType": null
50664
+ }
50665
+ },
50666
+ "isDeprecated": false,
50667
+ "deprecationReason": null
50668
+ },
50669
+ {
50670
+ "name": "productId",
48376
50671
  "description": "Product ID.",
48377
50672
  "args": [],
48378
50673
  "type": {
@@ -48389,12 +50684,16 @@
48389
50684
  },
48390
50685
  {
48391
50686
  "name": "variantId",
48392
- "description": "Default variant ID.",
50687
+ "description": "Variant ID.",
48393
50688
  "args": [],
48394
50689
  "type": {
48395
- "kind": "SCALAR",
48396
- "name": "ID",
48397
- "ofType": null
50690
+ "kind": "NON_NULL",
50691
+ "name": null,
50692
+ "ofType": {
50693
+ "kind": "SCALAR",
50694
+ "name": "ID",
50695
+ "ofType": null
50696
+ }
48398
50697
  },
48399
50698
  "isDeprecated": false,
48400
50699
  "deprecationReason": null
@@ -48428,32 +50727,32 @@
48428
50727
  "deprecationReason": null
48429
50728
  },
48430
50729
  {
48431
- "name": "totalQuantity",
48432
- "description": "Total stock quantity across all variants.",
50730
+ "name": "variantLabel",
50731
+ "description": "Variant parameters (e.g. 'Color: Red, Size: M').",
48433
50732
  "args": [],
48434
50733
  "type": {
48435
50734
  "kind": "SCALAR",
48436
- "name": "Float",
50735
+ "name": "String",
48437
50736
  "ofType": null
48438
50737
  },
48439
50738
  "isDeprecated": false,
48440
50739
  "deprecationReason": null
48441
50740
  },
48442
50741
  {
48443
- "name": "urlHandle",
48444
- "description": "Product URL handle.",
50742
+ "name": "quantity",
50743
+ "description": "Current variant quantity (null means unlimited).",
48445
50744
  "args": [],
48446
50745
  "type": {
48447
50746
  "kind": "SCALAR",
48448
- "name": "String",
50747
+ "name": "Float",
48449
50748
  "ofType": null
48450
50749
  },
48451
50750
  "isDeprecated": false,
48452
50751
  "deprecationReason": null
48453
50752
  },
48454
50753
  {
48455
- "name": "count",
48456
- "description": "Number of customers who favorited this product.",
50754
+ "name": "subscriberCount",
50755
+ "description": "Number of subscribers waiting for this variant.",
48457
50756
  "args": [],
48458
50757
  "type": {
48459
50758
  "kind": "NON_NULL",
@@ -48475,8 +50774,8 @@
48475
50774
  },
48476
50775
  {
48477
50776
  "kind": "OBJECT",
48478
- "name": "FavoriteProductConnection",
48479
- "description": "Paginated list of favorite products.",
50777
+ "name": "MissingProductConnection",
50778
+ "description": "Paginated list of missing products.",
48480
50779
  "fields": [
48481
50780
  {
48482
50781
  "name": "data",
@@ -48493,7 +50792,7 @@
48493
50792
  "name": null,
48494
50793
  "ofType": {
48495
50794
  "kind": "OBJECT",
48496
- "name": "FavoriteProduct",
50795
+ "name": "MissingProduct",
48497
50796
  "ofType": null
48498
50797
  }
48499
50798
  }
@@ -48574,35 +50873,43 @@
48574
50873
  },
48575
50874
  {
48576
50875
  "kind": "OBJECT",
48577
- "name": "MissingProduct",
48578
- "description": "A product variant with out-of-stock notification subscriptions.",
50876
+ "name": "MissingProductSubscriberConnection",
50877
+ "description": "Paginated list of subscribers waiting for a specific variant to come back in stock.",
48579
50878
  "fields": [
48580
50879
  {
48581
- "name": "id",
48582
- "description": "Record ID.",
50880
+ "name": "data",
50881
+ "description": "The Subscriber records, ordered by subscription date (oldest first).",
48583
50882
  "args": [],
48584
50883
  "type": {
48585
50884
  "kind": "NON_NULL",
48586
50885
  "name": null,
48587
50886
  "ofType": {
48588
- "kind": "SCALAR",
48589
- "name": "ID",
48590
- "ofType": null
50887
+ "kind": "LIST",
50888
+ "name": null,
50889
+ "ofType": {
50890
+ "kind": "NON_NULL",
50891
+ "name": null,
50892
+ "ofType": {
50893
+ "kind": "OBJECT",
50894
+ "name": "Subscriber",
50895
+ "ofType": null
50896
+ }
50897
+ }
48591
50898
  }
48592
50899
  },
48593
50900
  "isDeprecated": false,
48594
50901
  "deprecationReason": null
48595
50902
  },
48596
50903
  {
48597
- "name": "productId",
48598
- "description": "Product ID.",
50904
+ "name": "currentPage",
50905
+ "description": null,
48599
50906
  "args": [],
48600
50907
  "type": {
48601
50908
  "kind": "NON_NULL",
48602
50909
  "name": null,
48603
50910
  "ofType": {
48604
50911
  "kind": "SCALAR",
48605
- "name": "ID",
50912
+ "name": "Int",
48606
50913
  "ofType": null
48607
50914
  }
48608
50915
  },
@@ -48610,15 +50917,15 @@
48610
50917
  "deprecationReason": null
48611
50918
  },
48612
50919
  {
48613
- "name": "variantId",
48614
- "description": "Variant ID.",
50920
+ "name": "lastPage",
50921
+ "description": null,
48615
50922
  "args": [],
48616
50923
  "type": {
48617
50924
  "kind": "NON_NULL",
48618
50925
  "name": null,
48619
50926
  "ofType": {
48620
50927
  "kind": "SCALAR",
48621
- "name": "ID",
50928
+ "name": "Int",
48622
50929
  "ofType": null
48623
50930
  }
48624
50931
  },
@@ -48626,15 +50933,15 @@
48626
50933
  "deprecationReason": null
48627
50934
  },
48628
50935
  {
48629
- "name": "name",
48630
- "description": "Product name.",
50936
+ "name": "perPage",
50937
+ "description": null,
48631
50938
  "args": [],
48632
50939
  "type": {
48633
50940
  "kind": "NON_NULL",
48634
50941
  "name": null,
48635
50942
  "ofType": {
48636
50943
  "kind": "SCALAR",
48637
- "name": "String",
50944
+ "name": "Int",
48638
50945
  "ofType": null
48639
50946
  }
48640
50947
  },
@@ -48642,44 +50949,8 @@
48642
50949
  "deprecationReason": null
48643
50950
  },
48644
50951
  {
48645
- "name": "image",
48646
- "description": "Product image (150x150).",
48647
- "args": [],
48648
- "type": {
48649
- "kind": "SCALAR",
48650
- "name": "String",
48651
- "ofType": null
48652
- },
48653
- "isDeprecated": false,
48654
- "deprecationReason": null
48655
- },
48656
- {
48657
- "name": "variantLabel",
48658
- "description": "Variant parameters (e.g. 'Color: Red, Size: M').",
48659
- "args": [],
48660
- "type": {
48661
- "kind": "SCALAR",
48662
- "name": "String",
48663
- "ofType": null
48664
- },
48665
- "isDeprecated": false,
48666
- "deprecationReason": null
48667
- },
48668
- {
48669
- "name": "quantity",
48670
- "description": "Current variant quantity (null means unlimited).",
48671
- "args": [],
48672
- "type": {
48673
- "kind": "SCALAR",
48674
- "name": "Float",
48675
- "ofType": null
48676
- },
48677
- "isDeprecated": false,
48678
- "deprecationReason": null
48679
- },
48680
- {
48681
- "name": "subscriberCount",
48682
- "description": "Number of subscribers waiting for this variant.",
50952
+ "name": "total",
50953
+ "description": null,
48683
50954
  "args": [],
48684
50955
  "type": {
48685
50956
  "kind": "NON_NULL",
@@ -48701,59 +50972,19 @@
48701
50972
  },
48702
50973
  {
48703
50974
  "kind": "OBJECT",
48704
- "name": "MissingProductConnection",
48705
- "description": "Paginated list of missing products.",
50975
+ "name": "GoogleProductCategory",
50976
+ "description": "A Google Product Category — leaf entry from Google's product taxonomy spec used by ad/feed systems (Merchant Center, Facebook Catalog, etc.). Stored in the shared `apps.google_product_category` table.",
48706
50977
  "fields": [
48707
50978
  {
48708
- "name": "data",
48709
- "description": null,
48710
- "args": [],
48711
- "type": {
48712
- "kind": "NON_NULL",
48713
- "name": null,
48714
- "ofType": {
48715
- "kind": "LIST",
48716
- "name": null,
48717
- "ofType": {
48718
- "kind": "NON_NULL",
48719
- "name": null,
48720
- "ofType": {
48721
- "kind": "OBJECT",
48722
- "name": "MissingProduct",
48723
- "ofType": null
48724
- }
48725
- }
48726
- }
48727
- },
48728
- "isDeprecated": false,
48729
- "deprecationReason": null
48730
- },
48731
- {
48732
- "name": "currentPage",
48733
- "description": null,
48734
- "args": [],
48735
- "type": {
48736
- "kind": "NON_NULL",
48737
- "name": null,
48738
- "ofType": {
48739
- "kind": "SCALAR",
48740
- "name": "Int",
48741
- "ofType": null
48742
- }
48743
- },
48744
- "isDeprecated": false,
48745
- "deprecationReason": null
48746
- },
48747
- {
48748
- "name": "lastPage",
48749
- "description": null,
50979
+ "name": "id",
50980
+ "description": "Google's numeric category id (the value Merchant Center expects).",
48750
50981
  "args": [],
48751
50982
  "type": {
48752
50983
  "kind": "NON_NULL",
48753
50984
  "name": null,
48754
50985
  "ofType": {
48755
50986
  "kind": "SCALAR",
48756
- "name": "Int",
50987
+ "name": "ID",
48757
50988
  "ofType": null
48758
50989
  }
48759
50990
  },
@@ -48761,15 +50992,15 @@
48761
50992
  "deprecationReason": null
48762
50993
  },
48763
50994
  {
48764
- "name": "perPage",
48765
- "description": null,
50995
+ "name": "name",
50996
+ "description": "Full English breadcrumb name, e.g. `Apparel & Accessories > Clothing > Shirts & Tops`.",
48766
50997
  "args": [],
48767
50998
  "type": {
48768
50999
  "kind": "NON_NULL",
48769
51000
  "name": null,
48770
51001
  "ofType": {
48771
51002
  "kind": "SCALAR",
48772
- "name": "Int",
51003
+ "name": "String",
48773
51004
  "ofType": null
48774
51005
  }
48775
51006
  },
@@ -48777,17 +51008,13 @@
48777
51008
  "deprecationReason": null
48778
51009
  },
48779
51010
  {
48780
- "name": "total",
48781
- "description": null,
51011
+ "name": "nameDe",
51012
+ "description": "Full German breadcrumb name (some feeds prefer localised names).",
48782
51013
  "args": [],
48783
51014
  "type": {
48784
- "kind": "NON_NULL",
48785
- "name": null,
48786
- "ofType": {
48787
- "kind": "SCALAR",
48788
- "name": "Int",
48789
- "ofType": null
48790
- }
51015
+ "kind": "SCALAR",
51016
+ "name": "String",
51017
+ "ofType": null
48791
51018
  },
48792
51019
  "isDeprecated": false,
48793
51020
  "deprecationReason": null
@@ -107798,6 +110025,35 @@
107798
110025
  ],
107799
110026
  "possibleTypes": null
107800
110027
  },
110028
+ {
110029
+ "kind": "ENUM",
110030
+ "name": "ShippingPayerSide",
110031
+ "description": "Who pays for the shipping waybill (used by createShippingWaybill / changeOrderShippingPayer). Each provider exposes which sides are valid via Order.shipping payer info.",
110032
+ "fields": null,
110033
+ "inputFields": null,
110034
+ "interfaces": null,
110035
+ "enumValues": [
110036
+ {
110037
+ "name": "SENDER",
110038
+ "description": "Sender (merchant) pays the carrier.",
110039
+ "isDeprecated": false,
110040
+ "deprecationReason": null
110041
+ },
110042
+ {
110043
+ "name": "RECEIVER",
110044
+ "description": "Receiver (customer) pays on delivery (cash on delivery scenarios).",
110045
+ "isDeprecated": false,
110046
+ "deprecationReason": null
110047
+ },
110048
+ {
110049
+ "name": "OTHER",
110050
+ "description": "Third-party / other payer.",
110051
+ "isDeprecated": false,
110052
+ "deprecationReason": null
110053
+ }
110054
+ ],
110055
+ "possibleTypes": null
110056
+ },
107801
110057
  {
107802
110058
  "kind": "OBJECT",
107803
110059
  "name": "ShippingSettings",