@shop-on/theme-server 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1442,10 +1442,45 @@ enum CropRegionEnum {
1442
1442
  A supported ISO 4217 currency code
1443
1443
  """
1444
1444
  enum CurrencyEnum {
1445
+ """
1446
+ Chinese yuan
1447
+ """
1448
+ CNY
1449
+
1450
+ """
1451
+ Euro
1452
+ """
1453
+ EUR
1454
+
1455
+ """
1456
+ Pound sterling
1457
+ """
1458
+ GBP
1459
+
1460
+ """
1461
+ Japanese yen
1462
+ """
1463
+ JPY
1464
+
1465
+ """
1466
+ South Korean won
1467
+ """
1468
+ KRW
1469
+
1445
1470
  """
1446
1471
  Mongolian tögrög
1447
1472
  """
1448
1473
  MNT
1474
+
1475
+ """
1476
+ Russian ruble
1477
+ """
1478
+ RUB
1479
+
1480
+ """
1481
+ US dollar
1482
+ """
1483
+ USD
1449
1484
  }
1450
1485
 
1451
1486
  """
@@ -1698,6 +1733,21 @@ input DecimalFilter {
1698
1733
  lteq: Decimal
1699
1734
  }
1700
1735
 
1736
+ """
1737
+ What a digital file hands the buyer.
1738
+ """
1739
+ enum DigitalFileKind {
1740
+ """
1741
+ Bytes stored privately, downloaded through a short-lived link.
1742
+ """
1743
+ FILE
1744
+
1745
+ """
1746
+ A URL the buyer is sent to instead of a file.
1747
+ """
1748
+ LINK
1749
+ }
1750
+
1701
1751
  """
1702
1752
  How an applied discount was triggered.
1703
1753
  """
@@ -1720,6 +1770,92 @@ enum DiscountTargetTypeEnum {
1720
1770
  SHIPPING
1721
1771
  }
1722
1772
 
1773
+ """
1774
+ A buyer's download of one file from their order.
1775
+ """
1776
+ type DownloadGrant {
1777
+ """
1778
+ Size of the file. Null on a link.
1779
+ """
1780
+ byteSize: BigInt
1781
+
1782
+ """
1783
+ Downloads left. Null = unlimited; 0 once revoked.
1784
+ """
1785
+ downloadsRemaining: Int
1786
+
1787
+ """
1788
+ Name of the file. Null on a link.
1789
+ """
1790
+ filename: String
1791
+ kind: DigitalFileKind!
1792
+
1793
+ """
1794
+ The order it was bought on, e.g. "#1042".
1795
+ """
1796
+ orderName: String!
1797
+ state: DownloadGrantState!
1798
+ title: String!
1799
+
1800
+ """
1801
+ The landing page to download from, or that says it is being prepared. Opening
1802
+ it counts nothing; its Download button does. Null once exhausted or revoked.
1803
+ """
1804
+ url: String
1805
+ }
1806
+
1807
+ """
1808
+ Autogenerated input type of DownloadGrantConsume
1809
+ """
1810
+ input DownloadGrantConsumeInput {
1811
+ """
1812
+ A unique identifier for the client performing the mutation.
1813
+ """
1814
+ clientMutationId: String
1815
+ signedId: String!
1816
+ }
1817
+
1818
+ """
1819
+ Autogenerated return type of DownloadGrantConsume.
1820
+ """
1821
+ type DownloadGrantConsumePayload {
1822
+ """
1823
+ A unique identifier for the client performing the mutation.
1824
+ """
1825
+ clientMutationId: String
1826
+
1827
+ """
1828
+ Where to send the buyer. Short-lived for a file.
1829
+ """
1830
+ url: String
1831
+ userErrors: [UserError!]!
1832
+ }
1833
+
1834
+ """
1835
+ Whether a download can be started now, and why not.
1836
+ """
1837
+ enum DownloadGrantState {
1838
+ """
1839
+ Ready to download.
1840
+ """
1841
+ ACTIVE
1842
+
1843
+ """
1844
+ Every allowed download has been used.
1845
+ """
1846
+ EXHAUSTED
1847
+
1848
+ """
1849
+ The store is preparing it; the buyer gets an email once it is released.
1850
+ """
1851
+ HELD
1852
+
1853
+ """
1854
+ The store has withdrawn it.
1855
+ """
1856
+ REVOKED
1857
+ }
1858
+
1723
1859
  """
1724
1860
  Shipping address input on a draft order. All fields optional individually;
1725
1861
  completion requires at least address1 + country for shippable lines.
@@ -2322,6 +2458,13 @@ type LinkedMetafield {
2322
2458
  Click-attribution ids read from the buyer's browser. Allowlisted + shape-checked server-side.
2323
2459
  """
2324
2460
  input MarketingAttributionInput {
2461
+ """
2462
+ The buyer's marketing cookies as one `name=value; …` string (`_fbp`, `_fbc`,
2463
+ `_ga`, `_ga_<stream>`, `_gcl_aw`, `_gcl_au`, `_ttp`). Parsed server-side and
2464
+ never stored as sent; refused whole over 4KB.
2465
+ """
2466
+ cookies: String
2467
+
2325
2468
  """
2326
2469
  Meta click id (`_fbc` cookie).
2327
2470
  """
@@ -2391,6 +2534,14 @@ enum MenuItemTypeEnum {
2391
2534
  PRODUCT
2392
2535
  }
2393
2536
 
2537
+ """
2538
+ A metafield named by namespace + key.
2539
+ """
2540
+ input MetafieldKeyInput {
2541
+ key: String!
2542
+ namespace: String!
2543
+ }
2544
+
2394
2545
  input MetaobjectDefinitionFilter {
2395
2546
  """
2396
2547
  Exact handle match
@@ -2719,6 +2870,16 @@ type Mutation {
2719
2870
  input: CustomerUpdateInput!
2720
2871
  ): CustomerUpdatePayload
2721
2872
 
2873
+ """
2874
+ Count one download of a digital file and return the URL to fetch it from.
2875
+ """
2876
+ downloadGrantConsume(
2877
+ """
2878
+ Parameters for DownloadGrantConsume
2879
+ """
2880
+ input: DownloadGrantConsumeInput!
2881
+ ): DownloadGrantConsumePayload
2882
+
2722
2883
  """
2723
2884
  Buyer-side completion of a draft invoice into a pending-payment order.
2724
2885
  """
@@ -3457,6 +3618,12 @@ type Query {
3457
3618
  """
3458
3619
  districts(provinceId: ID!): [AddressDistrict!]!
3459
3620
 
3621
+ """
3622
+ The download behind an emailed link, for its landing page. Counts nothing.
3623
+ Null on a bad signed id or one from another shop.
3624
+ """
3625
+ downloadGrant(signedId: String!): DownloadGrant
3626
+
3460
3627
  """
3461
3628
  Resolve a draft order by its plaintext invoice token. Returns null on INVOICE_INVALID / INVOICE_EXPIRED / DRAFT_COMPLETED.
3462
3629
  """
@@ -4586,6 +4753,11 @@ type Shop implements Node {
4586
4753
  """
4587
4754
  refundPolicy: ShopPolicy
4588
4755
 
4756
+ """
4757
+ Per-shop return policy defaults. Always present — an unconfigured shop reads back the defaults.
4758
+ """
4759
+ returnPolicy: ShopReturnPolicy!
4760
+
4589
4761
  """
4590
4762
  Shop-level SEO settings (homepage meta, social image, verification tokens). Null until the merchant configures it.
4591
4763
  """
@@ -4734,6 +4906,45 @@ type ShopArticle implements Node {
4734
4906
  True if status is published AND published_at is null or past.
4735
4907
  """
4736
4908
  isPublished: Boolean!
4909
+
4910
+ """
4911
+ A metafield attached to this resource, looked up by namespace + key. On the
4912
+ storefront, resolves only when the definition opts in via storefrontVisible.
4913
+ """
4914
+ metafield(key: String!, namespace: String!): ShopMetafield
4915
+
4916
+ """
4917
+ Metafields attached to this resource. Optionally scoped by namespace, or to
4918
+ the named namespace + key pairs. On the storefront, only definitions that opt
4919
+ in via storefrontVisible are returned.
4920
+ """
4921
+ metafields(
4922
+ """
4923
+ Returns the elements in the list that come after the specified cursor.
4924
+ """
4925
+ after: String
4926
+
4927
+ """
4928
+ Returns the elements in the list that come before the specified cursor.
4929
+ """
4930
+ before: String
4931
+
4932
+ """
4933
+ Returns the first _n_ elements from the list.
4934
+ """
4935
+ first: Int
4936
+
4937
+ """
4938
+ Only the metafields named here (namespace + key). Applied on top of the storefront visibility gate, never around it.
4939
+ """
4940
+ keys: [MetafieldKeyInput!]
4941
+
4942
+ """
4943
+ Returns the last _n_ elements from the list.
4944
+ """
4945
+ last: Int
4946
+ namespace: String
4947
+ ): ShopMetafieldConnection!
4737
4948
  publishedAt: ISO8601DateTime
4738
4949
 
4739
4950
  """
@@ -4865,6 +5076,45 @@ type ShopBlog implements Node {
4865
5076
  handle: String!
4866
5077
  id: ID!
4867
5078
 
5079
+ """
5080
+ A metafield attached to this resource, looked up by namespace + key. On the
5081
+ storefront, resolves only when the definition opts in via storefrontVisible.
5082
+ """
5083
+ metafield(key: String!, namespace: String!): ShopMetafield
5084
+
5085
+ """
5086
+ Metafields attached to this resource. Optionally scoped by namespace, or to
5087
+ the named namespace + key pairs. On the storefront, only definitions that opt
5088
+ in via storefrontVisible are returned.
5089
+ """
5090
+ metafields(
5091
+ """
5092
+ Returns the elements in the list that come after the specified cursor.
5093
+ """
5094
+ after: String
5095
+
5096
+ """
5097
+ Returns the elements in the list that come before the specified cursor.
5098
+ """
5099
+ before: String
5100
+
5101
+ """
5102
+ Returns the first _n_ elements from the list.
5103
+ """
5104
+ first: Int
5105
+
5106
+ """
5107
+ Only the metafields named here (namespace + key). Applied on top of the storefront visibility gate, never around it.
5108
+ """
5109
+ keys: [MetafieldKeyInput!]
5110
+
5111
+ """
5112
+ Returns the last _n_ elements from the list.
5113
+ """
5114
+ last: Int
5115
+ namespace: String
5116
+ ): ShopMetafieldConnection!
5117
+
4868
5118
  """
4869
5119
  Distinct article tags in this blog (public_visible on storefront), ordered alphabetically — for tag navigation.
4870
5120
  """
@@ -5150,7 +5400,8 @@ type ShopCheckout implements Node {
5150
5400
  createdAt: ISO8601DateTime!
5151
5401
 
5152
5402
  """
5153
- The checkout's customer. Storefront callers get null without that customer's session.
5403
+ The checkout's customer. Null for a storefront caller without that customer's
5404
+ session, and for a merchant caller who may not read customers.
5154
5405
  """
5155
5406
  customer: ShopCustomer
5156
5407
 
@@ -5173,6 +5424,12 @@ type ShopCheckout implements Node {
5173
5424
  discountApplications: [ShopDiscountApplication!]!
5174
5425
  email: String
5175
5426
 
5427
+ """
5428
+ True when a line sells a downloadable file: the download email is how the
5429
+ buyer gets it, so a phone alone will not complete the checkout.
5430
+ """
5431
+ emailRequired: Boolean!
5432
+
5176
5433
  """
5177
5434
  The normalized code the buyer most recently typed on this checkout, regardless
5178
5435
  of whether it ended up being applied. Use this to re-render the cart UI's code
@@ -5387,6 +5644,45 @@ type ShopCollection implements Node {
5387
5644
  """
5388
5645
  image: FileInterface
5389
5646
 
5647
+ """
5648
+ A metafield attached to this resource, looked up by namespace + key. On the
5649
+ storefront, resolves only when the definition opts in via storefrontVisible.
5650
+ """
5651
+ metafield(key: String!, namespace: String!): ShopMetafield
5652
+
5653
+ """
5654
+ Metafields attached to this resource. Optionally scoped by namespace, or to
5655
+ the named namespace + key pairs. On the storefront, only definitions that opt
5656
+ in via storefrontVisible are returned.
5657
+ """
5658
+ metafields(
5659
+ """
5660
+ Returns the elements in the list that come after the specified cursor.
5661
+ """
5662
+ after: String
5663
+
5664
+ """
5665
+ Returns the elements in the list that come before the specified cursor.
5666
+ """
5667
+ before: String
5668
+
5669
+ """
5670
+ Returns the first _n_ elements from the list.
5671
+ """
5672
+ first: Int
5673
+
5674
+ """
5675
+ Only the metafields named here (namespace + key). Applied on top of the storefront visibility gate, never around it.
5676
+ """
5677
+ keys: [MetafieldKeyInput!]
5678
+
5679
+ """
5680
+ Returns the last _n_ elements from the list.
5681
+ """
5682
+ last: Int
5683
+ namespace: String
5684
+ ): ShopMetafieldConnection!
5685
+
5390
5686
  """
5391
5687
  Min/max default-variant price across the unfiltered collection listing, for
5392
5688
  seeding the price-filter slider bounds. Unfiltered so the bounds stay stable
@@ -6892,6 +7188,14 @@ type ShopOrder implements Node {
6892
7188
  Total line-item discount allocated at completion.
6893
7189
  """
6894
7190
  discountAmount: Money!
7191
+
7192
+ """
7193
+ True while the downloads are not ready yet: the order is paid and they are
7194
+ still being issued, or the store holds one for release. Same rule as
7195
+ `ShopOrderTrackingView.downloadsAwaitingRelease`. False to anyone but the
7196
+ signed-in customer who placed the order.
7197
+ """
7198
+ downloadsAwaitingRelease: Boolean!
6895
7199
  email: String
6896
7200
  financialStatus: ShopOrderFinancialStatusEnum!
6897
7201
 
@@ -6904,6 +7208,13 @@ type ShopOrder implements Node {
6904
7208
  """
6905
7209
  fiscalReceipt: ShopFiscalReceipt
6906
7210
  fulfillmentStatus: ShopOrderFulfillmentStatusEnum!
7211
+
7212
+ """
7213
+ True when a line sold a digital file and the order is paid, not cancelled and
7214
+ not refunded in full: there are downloads to ask for. False to anyone but the
7215
+ signed-in customer who placed the order, like the lines' `downloads`.
7216
+ """
7217
+ hasDownloads: Boolean!
6907
7218
  id: ID!
6908
7219
 
6909
7220
  """
@@ -7053,6 +7364,12 @@ type ShopOrderLineItem implements Node {
7053
7364
  """
7054
7365
  customAttributes: [CartLineAttribute!]!
7055
7366
 
7367
+ """
7368
+ The files this line bought, issued once the order was paid. Empty on a line
7369
+ that sold none, and to anyone but the signed-in customer who placed the order.
7370
+ """
7371
+ downloads: [DownloadGrant!]!
7372
+
7056
7373
  """
7057
7374
  True when this line sold a digital gift-card product (auto-issued a card once paid).
7058
7375
  """
@@ -7147,6 +7464,14 @@ type ShopOrderTrackingView {
7147
7464
  """
7148
7465
  deliveryKind: ShopOrderTrackingViewDeliveryKindEnum!
7149
7466
  deliveryOptionTitle: String
7467
+
7468
+ """
7469
+ True while the downloads are not ready yet: the order is paid and they are
7470
+ still being issued, or the store holds one for release. An all-digital order
7471
+ reads fulfilled from completion, so show "being prepared" instead of links
7472
+ while this is true. False on a link an embedded app minted.
7473
+ """
7474
+ downloadsAwaitingRelease: Boolean!
7150
7475
  financialStatus: ShopOrderFinancialStatusEnum!
7151
7476
  fulfillmentStatus: ShopOrderFulfillmentStatusEnum!
7152
7477
 
@@ -7216,6 +7541,12 @@ type ShopOrderTrackingViewLineItem {
7216
7541
  """
7217
7542
  customAttributes: [CartLineAttribute!]!
7218
7543
 
7544
+ """
7545
+ The files this line bought, issued once the order was paid. Empty on a line
7546
+ that sold none, and on a link an embedded app minted.
7547
+ """
7548
+ downloads: [DownloadGrant!]!
7549
+
7219
7550
  """
7220
7551
  The bundle this line is a component of; null on a plain line.
7221
7552
  """
@@ -7281,6 +7612,45 @@ type ShopPage implements Node {
7281
7612
  True if status is published AND published_at is null or past.
7282
7613
  """
7283
7614
  isPublished: Boolean!
7615
+
7616
+ """
7617
+ A metafield attached to this resource, looked up by namespace + key. On the
7618
+ storefront, resolves only when the definition opts in via storefrontVisible.
7619
+ """
7620
+ metafield(key: String!, namespace: String!): ShopMetafield
7621
+
7622
+ """
7623
+ Metafields attached to this resource. Optionally scoped by namespace, or to
7624
+ the named namespace + key pairs. On the storefront, only definitions that opt
7625
+ in via storefrontVisible are returned.
7626
+ """
7627
+ metafields(
7628
+ """
7629
+ Returns the elements in the list that come after the specified cursor.
7630
+ """
7631
+ after: String
7632
+
7633
+ """
7634
+ Returns the elements in the list that come before the specified cursor.
7635
+ """
7636
+ before: String
7637
+
7638
+ """
7639
+ Returns the first _n_ elements from the list.
7640
+ """
7641
+ first: Int
7642
+
7643
+ """
7644
+ Only the metafields named here (namespace + key). Applied on top of the storefront visibility gate, never around it.
7645
+ """
7646
+ keys: [MetafieldKeyInput!]
7647
+
7648
+ """
7649
+ Returns the last _n_ elements from the list.
7650
+ """
7651
+ last: Int
7652
+ namespace: String
7653
+ ): ShopMetafieldConnection!
7284
7654
  publishedAt: ISO8601DateTime
7285
7655
 
7286
7656
  """
@@ -7586,6 +7956,11 @@ type ShopProduct implements Node {
7586
7956
  """
7587
7957
  featuredMedia: FileInterface
7588
7958
 
7959
+ """
7960
+ Whether the return policy marks the whole product final sale (no returns). Resolve on one product at a time.
7961
+ """
7962
+ finalSale: Boolean!
7963
+
7589
7964
  """
7590
7965
  True when this is a digital gift-card product (gift-card category + every
7591
7966
  variant unshipped). Powers the storefront recipient form and digital fulfillment.
@@ -7626,14 +8001,15 @@ type ShopProduct implements Node {
7626
8001
  ): FileInterfaceConnection!
7627
8002
 
7628
8003
  """
7629
- A metafield attached to this product, looked up by namespace + key. On the
8004
+ A metafield attached to this resource, looked up by namespace + key. On the
7630
8005
  storefront, resolves only when the definition opts in via storefrontVisible.
7631
8006
  """
7632
8007
  metafield(key: String!, namespace: String!): ShopMetafield
7633
8008
 
7634
8009
  """
7635
- Metafields attached to this product. Optionally scoped by namespace. On the
7636
- storefront, only definitions that opt in via storefrontVisible are returned.
8010
+ Metafields attached to this resource. Optionally scoped by namespace, or to
8011
+ the named namespace + key pairs. On the storefront, only definitions that opt
8012
+ in via storefrontVisible are returned.
7637
8013
  """
7638
8014
  metafields(
7639
8015
  """
@@ -7651,6 +8027,11 @@ type ShopProduct implements Node {
7651
8027
  """
7652
8028
  first: Int
7653
8029
 
8030
+ """
8031
+ Only the metafields named here (namespace + key). Applied on top of the storefront visibility gate, never around it.
8032
+ """
8033
+ keys: [MetafieldKeyInput!]
8034
+
7654
8035
  """
7655
8036
  Returns the last _n_ elements from the list.
7656
8037
  """
@@ -7664,12 +8045,9 @@ type ShopProduct implements Node {
7664
8045
  options: [ShopProductOption!]!
7665
8046
 
7666
8047
  """
7667
- Default variant's price
8048
+ Lowest and highest variant price. Null only for a product with no variants.
7668
8049
  """
7669
- price(currency: CurrencyEnum = MNT): Float!
7670
- @deprecated(
7671
- reason: "Use `defaultVariant.priceV2` (returns Money for precise decimal arithmetic). The Float-typed `price` will be removed in a future release."
7672
- )
8050
+ priceRange(currency: CurrencyEnum! = MNT): ShopProductPriceRange
7673
8051
 
7674
8052
  """
7675
8053
  Product classification (display-faithful, free text).
@@ -7873,6 +8251,21 @@ type ShopProductOptionValue implements Node {
7873
8251
  position: Int!
7874
8252
  }
7875
8253
 
8254
+ """
8255
+ The lowest and highest price across a product's variants.
8256
+ """
8257
+ type ShopProductPriceRange {
8258
+ """
8259
+ The highest variant price.
8260
+ """
8261
+ maxVariantPrice: Money!
8262
+
8263
+ """
8264
+ The lowest variant price.
8265
+ """
8266
+ minVariantPrice: Money!
8267
+ }
8268
+
7876
8269
  """
7877
8270
  A customer review on a product.
7878
8271
  """
@@ -8208,15 +8601,11 @@ type ShopProductVariant implements Node {
8208
8601
  On a bundle variant, the component variants one bundle contains. Empty on every other variant.
8209
8602
  """
8210
8603
  bundleItems: [ShopProductVariantBundleItem!]!
8211
- compareAt(currency: CurrencyEnum = MNT): Float!
8212
- @deprecated(
8213
- reason: "Use `compareAtV2` (returns Money; null when no sale price). The Float-typed `compareAt` will be removed in a future release."
8214
- )
8215
8604
 
8216
8605
  """
8217
8606
  Variant compare-at (original) price as a Money value. Null when there is no sale price.
8218
8607
  """
8219
- compareAtV2(currency: CurrencyEnum = MNT): Money
8608
+ compareAtV2(currency: CurrencyEnum! = MNT): Money
8220
8609
  createdAt: ISO8601DateTime!
8221
8610
  currency: String!
8222
8611
 
@@ -8230,6 +8619,11 @@ type ShopProductVariant implements Node {
8230
8619
  First variant media — used as a thumbnail
8231
8620
  """
8232
8621
  featuredMedia: FileInterface
8622
+
8623
+ """
8624
+ The GTIN for structured data: the one the merchant entered, else a barcode that passes the GS1 check; null otherwise.
8625
+ """
8626
+ gtin: String
8233
8627
  id: ID!
8234
8628
 
8235
8629
  """
@@ -8256,16 +8650,51 @@ type ShopProductVariant implements Node {
8256
8650
  """
8257
8651
  last: Int
8258
8652
  ): FileInterfaceConnection!
8653
+
8654
+ """
8655
+ A metafield attached to this resource, looked up by namespace + key. On the
8656
+ storefront, resolves only when the definition opts in via storefrontVisible.
8657
+ """
8658
+ metafield(key: String!, namespace: String!): ShopMetafield
8659
+
8660
+ """
8661
+ Metafields attached to this resource. Optionally scoped by namespace, or to
8662
+ the named namespace + key pairs. On the storefront, only definitions that opt
8663
+ in via storefrontVisible are returned.
8664
+ """
8665
+ metafields(
8666
+ """
8667
+ Returns the elements in the list that come after the specified cursor.
8668
+ """
8669
+ after: String
8670
+
8671
+ """
8672
+ Returns the elements in the list that come before the specified cursor.
8673
+ """
8674
+ before: String
8675
+
8676
+ """
8677
+ Returns the first _n_ elements from the list.
8678
+ """
8679
+ first: Int
8680
+
8681
+ """
8682
+ Only the metafields named here (namespace + key). Applied on top of the storefront visibility gate, never around it.
8683
+ """
8684
+ keys: [MetafieldKeyInput!]
8685
+
8686
+ """
8687
+ Returns the last _n_ elements from the list.
8688
+ """
8689
+ last: Int
8690
+ namespace: String
8691
+ ): ShopMetafieldConnection!
8259
8692
  position: Int!
8260
- price(currency: CurrencyEnum = MNT): Float!
8261
- @deprecated(
8262
- reason: "Use `priceV2` (returns Money for precise decimal arithmetic). The Float-typed `price` will be removed in a future release."
8263
- )
8264
8693
 
8265
8694
  """
8266
8695
  Variant price as a Money value (Decimal amount + currency).
8267
8696
  """
8268
- priceV2(currency: CurrencyEnum = MNT): Money!
8697
+ priceV2(currency: CurrencyEnum! = MNT): Money!
8269
8698
 
8270
8699
  """
8271
8700
  The product this variant belongs to.
@@ -8377,6 +8806,56 @@ type ShopProductVariantEdge {
8377
8806
  node: ShopProductVariant!
8378
8807
  }
8379
8808
 
8809
+ """
8810
+ Per-shop return policy defaults. Advisory only — nothing here blocks a merchant-created return.
8811
+ """
8812
+ type ShopReturnPolicy {
8813
+ """
8814
+ Whether the merchant has saved this policy. False means every value is a column default.
8815
+ """
8816
+ configured: Boolean!
8817
+
8818
+ """
8819
+ Flat return-shipping amount in the shop currency. Null unless `returnShippingCost` is FLAT_RATE.
8820
+ """
8821
+ flatRateAmount: Money
8822
+
8823
+ """
8824
+ Default restocking fee, 0..100. Null means no restocking fee is suggested.
8825
+ """
8826
+ restockingFeePercentage: Float
8827
+
8828
+ """
8829
+ Who pays return shipping by default.
8830
+ """
8831
+ returnShippingCost: ShopReturnShippingCostEnum!
8832
+
8833
+ """
8834
+ Days after shipment a buyer may return an item. Null means an unlimited window.
8835
+ """
8836
+ returnWindowDays: Int
8837
+ }
8838
+
8839
+ """
8840
+ Who pays to ship a return back, by default.
8841
+ """
8842
+ enum ShopReturnShippingCostEnum {
8843
+ """
8844
+ The buyer arranges and pays for return shipping.
8845
+ """
8846
+ CUSTOMER_PROVIDED
8847
+
8848
+ """
8849
+ A fixed amount is withheld; see `flatRateAmount`.
8850
+ """
8851
+ FLAT_RATE
8852
+
8853
+ """
8854
+ The merchant covers return shipping.
8855
+ """
8856
+ FREE
8857
+ }
8858
+
8380
8859
  """
8381
8860
  Per-shop SEO settings consumed by the storefront theme.
8382
8861
  """
@@ -9170,7 +9649,7 @@ type Theme implements Node {
9170
9649
  metadata: JSON!
9171
9650
  name: String!
9172
9651
  presets: [ThemePreset!]!
9173
- price(currency: CurrencyEnum = MNT): Float!
9652
+ price(currency: CurrencyEnum! = MNT): Float!
9174
9653
  status: ThemeStatusEnum!
9175
9654
  updatedAt: ISO8601DateTime!
9176
9655
  }