@mercurjs/docs 2.2.0-canary.40

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.
Files changed (283) hide show
  1. package/README.md +24 -0
  2. package/content/blocks.mdx +209 -0
  3. package/content/learn/architecture.mdx +215 -0
  4. package/content/learn/attributes.mdx +89 -0
  5. package/content/learn/blocks.mdx +99 -0
  6. package/content/learn/commissions.mdx +175 -0
  7. package/content/learn/concepts.mdx +84 -0
  8. package/content/learn/installation.mdx +117 -0
  9. package/content/learn/introduction.mdx +71 -0
  10. package/content/learn/offers.mdx +78 -0
  11. package/content/learn/order-groups.mdx +114 -0
  12. package/content/learn/payouts.mdx +175 -0
  13. package/content/learn/product-requests.mdx +82 -0
  14. package/content/learn/products.mdx +79 -0
  15. package/content/learn/registry.mdx +155 -0
  16. package/content/learn/seller-members.mdx +62 -0
  17. package/content/learn/sellers.mdx +118 -0
  18. package/content/migration/from-1-x-to-2-0.mdx +152 -0
  19. package/content/migration/from-2-0-to-2-1.mdx +105 -0
  20. package/content/migration/overview.mdx +58 -0
  21. package/content/references/api/admin/commission-rates/batch-commission-rules.mdx +70 -0
  22. package/content/references/api/admin/commission-rates/create-commission-rate.mdx +95 -0
  23. package/content/references/api/admin/commission-rates/delete-commission-rate.mdx +40 -0
  24. package/content/references/api/admin/commission-rates/list-commission-rates.mdx +92 -0
  25. package/content/references/api/admin/commission-rates/retrieve-commission-rate.mdx +70 -0
  26. package/content/references/api/admin/commission-rates/update-commission-rate.mdx +84 -0
  27. package/content/references/api/admin/members/list-members.mdx +61 -0
  28. package/content/references/api/admin/offers/batch-create-offers.mdx +130 -0
  29. package/content/references/api/admin/offers/delete-offer.mdx +40 -0
  30. package/content/references/api/admin/offers/list-offers.mdx +106 -0
  31. package/content/references/api/admin/offers/retrieve-offer.mdx +82 -0
  32. package/content/references/api/admin/order-groups/list-order-groups.mdx +77 -0
  33. package/content/references/api/admin/order-groups/retrieve-order-group.mdx +56 -0
  34. package/content/references/api/admin/orders/get-order-commission-lines.mdx +65 -0
  35. package/content/references/api/admin/orders/get-order-order-group.mdx +56 -0
  36. package/content/references/api/admin/orders/list-orders.mdx +79 -0
  37. package/content/references/api/admin/payouts/list-payouts.mdx +75 -0
  38. package/content/references/api/admin/payouts/retrieve-payout.mdx +62 -0
  39. package/content/references/api/admin/product-attributes/create-attribute-value.mdx +76 -0
  40. package/content/references/api/admin/product-attributes/create-product-attribute.mdx +99 -0
  41. package/content/references/api/admin/product-attributes/delete-attribute-value.mdx +52 -0
  42. package/content/references/api/admin/product-attributes/delete-product-attribute.mdx +40 -0
  43. package/content/references/api/admin/product-attributes/list-product-attributes.mdx +91 -0
  44. package/content/references/api/admin/product-attributes/retrieve-product-attribute.mdx +81 -0
  45. package/content/references/api/admin/product-attributes/update-attribute-value.mdx +66 -0
  46. package/content/references/api/admin/product-attributes/update-product-attribute.mdx +76 -0
  47. package/content/references/api/admin/product-changes/cancel-product-change.mdx +68 -0
  48. package/content/references/api/admin/product-changes/confirm-product-change.mdx +47 -0
  49. package/content/references/api/admin/products/batch-product-attributes.mdx +96 -0
  50. package/content/references/api/admin/products/confirm-product.mdx +59 -0
  51. package/content/references/api/admin/products/create-product-variant.mdx +78 -0
  52. package/content/references/api/admin/products/create-product.mdx +169 -0
  53. package/content/references/api/admin/products/delete-product-variant.mdx +48 -0
  54. package/content/references/api/admin/products/delete-product.mdx +40 -0
  55. package/content/references/api/admin/products/list-product-variants.mdx +91 -0
  56. package/content/references/api/admin/products/list-products.mdx +109 -0
  57. package/content/references/api/admin/products/preview-product.mdx +78 -0
  58. package/content/references/api/admin/products/reject-product.mdx +59 -0
  59. package/content/references/api/admin/products/request-product-changes.mdx +59 -0
  60. package/content/references/api/admin/products/retrieve-product-variant.mdx +73 -0
  61. package/content/references/api/admin/products/retrieve-product.mdx +96 -0
  62. package/content/references/api/admin/products/set-product-sellers.mdx +47 -0
  63. package/content/references/api/admin/products/update-product-variant.mdx +89 -0
  64. package/content/references/api/admin/products/update-product.mdx +133 -0
  65. package/content/references/api/admin/sellers/add-seller-member.mdx +63 -0
  66. package/content/references/api/admin/sellers/approve-seller.mdx +54 -0
  67. package/content/references/api/admin/sellers/create-seller.mdx +100 -0
  68. package/content/references/api/admin/sellers/delete-member-invite.mdx +42 -0
  69. package/content/references/api/admin/sellers/delete-professional-details.mdx +52 -0
  70. package/content/references/api/admin/sellers/invite-seller-member.mdx +63 -0
  71. package/content/references/api/admin/sellers/list-member-invites.mdx +71 -0
  72. package/content/references/api/admin/sellers/list-seller-members.mdx +71 -0
  73. package/content/references/api/admin/sellers/list-seller-products.mdx +85 -0
  74. package/content/references/api/admin/sellers/list-sellers.mdx +96 -0
  75. package/content/references/api/admin/sellers/remove-seller-member.mdx +42 -0
  76. package/content/references/api/admin/sellers/resend-member-invite.mdx +55 -0
  77. package/content/references/api/admin/sellers/retrieve-seller.mdx +81 -0
  78. package/content/references/api/admin/sellers/suspend-seller.mdx +60 -0
  79. package/content/references/api/admin/sellers/terminate-seller.mdx +60 -0
  80. package/content/references/api/admin/sellers/unsuspend-seller.mdx +52 -0
  81. package/content/references/api/admin/sellers/unterminate-seller.mdx +52 -0
  82. package/content/references/api/admin/sellers/update-seller.mdx +83 -0
  83. package/content/references/api/admin/sellers/upsert-payment-details.mdx +88 -0
  84. package/content/references/api/admin/sellers/upsert-professional-details.mdx +78 -0
  85. package/content/references/api/admin/sellers/upsert-seller-address.mdx +91 -0
  86. package/content/references/api/admin.mdx +134 -0
  87. package/content/references/api/conventions.mdx +109 -0
  88. package/content/references/api/store/carts/add-line-item.mdx +115 -0
  89. package/content/references/api/store/carts/add-shipping-methods.mdx +84 -0
  90. package/content/references/api/store/carts/apply-promotions.mdx +83 -0
  91. package/content/references/api/store/carts/complete-cart.mdx +98 -0
  92. package/content/references/api/store/offers/list-offers.mdx +161 -0
  93. package/content/references/api/store/offers/retrieve-offer.mdx +112 -0
  94. package/content/references/api/store/order-groups/list-order-groups.mdx +105 -0
  95. package/content/references/api/store/order-groups/retrieve-order-group.mdx +78 -0
  96. package/content/references/api/store/product-attributes/list-product-attributes.mdx +134 -0
  97. package/content/references/api/store/product-attributes/retrieve-product-attribute.mdx +78 -0
  98. package/content/references/api/store/product-categories/list-product-categories.mdx +126 -0
  99. package/content/references/api/store/product-categories/retrieve-product-category.mdx +79 -0
  100. package/content/references/api/store/products/list-products.mdx +184 -0
  101. package/content/references/api/store/products/retrieve-product.mdx +107 -0
  102. package/content/references/api/store/search/search.mdx +136 -0
  103. package/content/references/api/store/sellers/list-sellers.mdx +105 -0
  104. package/content/references/api/store/sellers/retrieve-seller.mdx +62 -0
  105. package/content/references/api/store/shipping-options/list-shipping-options.mdx +74 -0
  106. package/content/references/api/store.mdx +67 -0
  107. package/content/references/api/vendor/members/accept-member-invite.mdx +65 -0
  108. package/content/references/api/vendor/members/retrieve-current-member.mdx +51 -0
  109. package/content/references/api/vendor/members/update-current-member.mdx +70 -0
  110. package/content/references/api/vendor/offers/batch-create-offers.mdx +123 -0
  111. package/content/references/api/vendor/offers/batch-offer-inventory-items.mdx +103 -0
  112. package/content/references/api/vendor/offers/create-offer.mdx +141 -0
  113. package/content/references/api/vendor/offers/delete-offer.mdx +51 -0
  114. package/content/references/api/vendor/offers/list-offers.mdx +125 -0
  115. package/content/references/api/vendor/offers/retrieve-offer.mdx +74 -0
  116. package/content/references/api/vendor/offers/update-offer.mdx +82 -0
  117. package/content/references/api/vendor/orders/cancel-fulfillment.mdx +63 -0
  118. package/content/references/api/vendor/orders/cancel-order.mdx +56 -0
  119. package/content/references/api/vendor/orders/complete-order.mdx +55 -0
  120. package/content/references/api/vendor/orders/create-fulfillment.mdx +76 -0
  121. package/content/references/api/vendor/orders/create-shipment.mdx +99 -0
  122. package/content/references/api/vendor/orders/get-order-commission-lines.mdx +66 -0
  123. package/content/references/api/vendor/orders/list-order-changes.mdx +75 -0
  124. package/content/references/api/vendor/orders/list-orders.mdx +103 -0
  125. package/content/references/api/vendor/orders/mark-fulfillment-delivered.mdx +62 -0
  126. package/content/references/api/vendor/orders/preview-order.mdx +65 -0
  127. package/content/references/api/vendor/orders/retrieve-order.mdx +84 -0
  128. package/content/references/api/vendor/payout-accounts/create-onboarding.mdx +68 -0
  129. package/content/references/api/vendor/payout-accounts/create-payout-account.mdx +59 -0
  130. package/content/references/api/vendor/payout-accounts/retrieve-payout-account-by-id.mdx +60 -0
  131. package/content/references/api/vendor/payout-accounts/retrieve-payout-account.mdx +77 -0
  132. package/content/references/api/vendor/payouts/list-payouts.mdx +90 -0
  133. package/content/references/api/vendor/payouts/retrieve-payout.mdx +63 -0
  134. package/content/references/api/vendor/product-attributes/list-product-attributes.mdx +135 -0
  135. package/content/references/api/vendor/product-attributes/retrieve-product-attribute.mdx +71 -0
  136. package/content/references/api/vendor/product-variants/list-variants.mdx +136 -0
  137. package/content/references/api/vendor/products/batch-product-attributes.mdx +104 -0
  138. package/content/references/api/vendor/products/cancel-product-change.mdx +62 -0
  139. package/content/references/api/vendor/products/create-product-variant.mdx +92 -0
  140. package/content/references/api/vendor/products/create-product.mdx +197 -0
  141. package/content/references/api/vendor/products/delete-product-variant.mdx +68 -0
  142. package/content/references/api/vendor/products/delete-product.mdx +62 -0
  143. package/content/references/api/vendor/products/list-product-variants.mdx +114 -0
  144. package/content/references/api/vendor/products/list-products.mdx +163 -0
  145. package/content/references/api/vendor/products/preview-product.mdx +61 -0
  146. package/content/references/api/vendor/products/retrieve-product-variant.mdx +76 -0
  147. package/content/references/api/vendor/products/retrieve-product.mdx +69 -0
  148. package/content/references/api/vendor/products/update-product-variant.mdx +104 -0
  149. package/content/references/api/vendor/products/update-product.mdx +148 -0
  150. package/content/references/api/vendor/sellers/create-seller.mdx +150 -0
  151. package/content/references/api/vendor/sellers/delete-professional-details.mdx +54 -0
  152. package/content/references/api/vendor/sellers/invite-seller-member.mdx +67 -0
  153. package/content/references/api/vendor/sellers/list-member-invites.mdx +82 -0
  154. package/content/references/api/vendor/sellers/list-seller-members.mdx +80 -0
  155. package/content/references/api/vendor/sellers/list-sellers.mdx +71 -0
  156. package/content/references/api/vendor/sellers/remove-seller-member.mdx +48 -0
  157. package/content/references/api/vendor/sellers/retrieve-current-seller-member.mdx +59 -0
  158. package/content/references/api/vendor/sellers/retrieve-current-seller.mdx +69 -0
  159. package/content/references/api/vendor/sellers/select-seller.mdx +44 -0
  160. package/content/references/api/vendor/sellers/update-current-seller.mdx +108 -0
  161. package/content/references/api/vendor/sellers/update-member-role.mdx +51 -0
  162. package/content/references/api/vendor/sellers/upsert-payment-details.mdx +74 -0
  163. package/content/references/api/vendor/sellers/upsert-professional-details.mdx +70 -0
  164. package/content/references/api/vendor/sellers/upsert-seller-address.mdx +81 -0
  165. package/content/references/api/vendor.mdx +150 -0
  166. package/content/references/configuration.mdx +155 -0
  167. package/content/references/modules/commission.mdx +106 -0
  168. package/content/references/modules/custom-fields.mdx +45 -0
  169. package/content/references/modules/media.mdx +55 -0
  170. package/content/references/modules/offer.mdx +64 -0
  171. package/content/references/modules/payout.mdx +121 -0
  172. package/content/references/modules/product-attribute.mdx +111 -0
  173. package/content/references/modules/product-edit.mdx +80 -0
  174. package/content/references/modules/search.mdx +112 -0
  175. package/content/references/modules/seller.mdx +175 -0
  176. package/content/references/overview.mdx +70 -0
  177. package/content/references/workflows/cart/add-seller-shipping-method-to-cart.mdx +44 -0
  178. package/content/references/workflows/cart/complete-cart-with-split-orders.mdx +36 -0
  179. package/content/references/workflows/cart/list-seller-shipping-options-for-cart.mdx +39 -0
  180. package/content/references/workflows/cart/update-cart-seller-promotions.mdx +42 -0
  181. package/content/references/workflows/commission/batch-commission-rules.mdx +45 -0
  182. package/content/references/workflows/commission/create-commission-rates.mdx +41 -0
  183. package/content/references/workflows/commission/delete-commission-rates.mdx +34 -0
  184. package/content/references/workflows/commission/refresh-order-commission-lines.mdx +30 -0
  185. package/content/references/workflows/commission/update-commission-rates.mdx +35 -0
  186. package/content/references/workflows/media/set-category-images.mdx +41 -0
  187. package/content/references/workflows/media/set-collection-images.mdx +41 -0
  188. package/content/references/workflows/member/accept-member-invite.mdx +33 -0
  189. package/content/references/workflows/member/add-seller-member.mdx +30 -0
  190. package/content/references/workflows/member/create-member-invites.mdx +34 -0
  191. package/content/references/workflows/member/delete-member-invite.mdx +24 -0
  192. package/content/references/workflows/member/remove-seller-member.mdx +28 -0
  193. package/content/references/workflows/member/resend-member-invite.mdx +28 -0
  194. package/content/references/workflows/member/update-member-role.mdx +28 -0
  195. package/content/references/workflows/member/update-member.mdx +35 -0
  196. package/content/references/workflows/offer/batch-offer-inventory-items.mdx +58 -0
  197. package/content/references/workflows/offer/create-offers.mdx +63 -0
  198. package/content/references/workflows/offer/delete-offers.mdx +35 -0
  199. package/content/references/workflows/offer/update-offers.mdx +51 -0
  200. package/content/references/workflows/order/cancel-order-fulfillment.mdx +34 -0
  201. package/content/references/workflows/order/confirm-claim-request.mdx +25 -0
  202. package/content/references/workflows/order/confirm-exchange-request.mdx +25 -0
  203. package/content/references/workflows/order/confirm-order-edit-request.mdx +25 -0
  204. package/content/references/workflows/order/confirm-return-receive.mdx +25 -0
  205. package/content/references/workflows/order/create-order-fulfillment.mdx +45 -0
  206. package/content/references/workflows/order-group/get-order-group-detail.mdx +29 -0
  207. package/content/references/workflows/order-group/get-order-groups-list.mdx +36 -0
  208. package/content/references/workflows/overview.mdx +72 -0
  209. package/content/references/workflows/payout/create-onboarding.mdx +36 -0
  210. package/content/references/workflows/payout/create-payout-account.mdx +33 -0
  211. package/content/references/workflows/payout/create-payout.mdx +30 -0
  212. package/content/references/workflows/payout/process-payout-for-webhook.mdx +32 -0
  213. package/content/references/workflows/product/confirm-products.mdx +46 -0
  214. package/content/references/workflows/product/create-products.mdx +63 -0
  215. package/content/references/workflows/product/link-sellers-to-product-category.mdx +40 -0
  216. package/content/references/workflows/product/link-sellers-to-product.mdx +40 -0
  217. package/content/references/workflows/product/reject-product.mdx +46 -0
  218. package/content/references/workflows/product/request-product-change.mdx +46 -0
  219. package/content/references/workflows/product-attribute/add-product-attributes-to-product.mdx +49 -0
  220. package/content/references/workflows/product-attribute/create-and-link-product-attributes-to-product.mdx +46 -0
  221. package/content/references/workflows/product-attribute/create-product-attribute-values.mdx +43 -0
  222. package/content/references/workflows/product-attribute/create-product-attributes.mdx +56 -0
  223. package/content/references/workflows/product-attribute/delete-product-attribute-values.mdx +30 -0
  224. package/content/references/workflows/product-attribute/delete-product-attributes.mdx +30 -0
  225. package/content/references/workflows/product-attribute/remove-product-attributes-from-product.mdx +29 -0
  226. package/content/references/workflows/product-attribute/update-product-attribute-values.mdx +44 -0
  227. package/content/references/workflows/product-attribute/update-product-attributes-on-product.mdx +41 -0
  228. package/content/references/workflows/product-attribute/update-product-attributes.mdx +48 -0
  229. package/content/references/workflows/product-attribute/upsert-product-attribute-values.mdx +43 -0
  230. package/content/references/workflows/product-edit/auto-confirm-product-change.mdx +39 -0
  231. package/content/references/workflows/product-edit/cancel-product-change.mdx +49 -0
  232. package/content/references/workflows/product-edit/confirm-product-change.mdx +57 -0
  233. package/content/references/workflows/product-edit/create-product-change.mdx +72 -0
  234. package/content/references/workflows/product-edit/reject-product-change.mdx +54 -0
  235. package/content/references/workflows/product-edit/stage-product-change.mdx +75 -0
  236. package/content/references/workflows/seller/approve-seller.mdx +34 -0
  237. package/content/references/workflows/seller/create-seller-account.mdx +59 -0
  238. package/content/references/workflows/seller/create-seller-defaults.mdx +22 -0
  239. package/content/references/workflows/seller/create-sellers.mdx +65 -0
  240. package/content/references/workflows/seller/delete-seller-professional-details.mdx +37 -0
  241. package/content/references/workflows/seller/delete-sellers.mdx +24 -0
  242. package/content/references/workflows/seller/invite-seller.mdx +28 -0
  243. package/content/references/workflows/seller/suspend-seller.mdx +35 -0
  244. package/content/references/workflows/seller/terminate-seller.mdx +35 -0
  245. package/content/references/workflows/seller/unsuspend-seller.mdx +34 -0
  246. package/content/references/workflows/seller/unterminate-seller.mdx +34 -0
  247. package/content/references/workflows/seller/update-seller-address.mdx +55 -0
  248. package/content/references/workflows/seller/update-seller-payment-details.mdx +52 -0
  249. package/content/references/workflows/seller/update-seller-professional-details.mdx +48 -0
  250. package/content/references/workflows/seller/update-sellers.mdx +57 -0
  251. package/content/resources/ai/llms.mdx +74 -0
  252. package/content/resources/ai/mcp.mdx +152 -0
  253. package/content/resources/ai/overview.mdx +97 -0
  254. package/content/resources/customization/custom-fields.mdx +182 -0
  255. package/content/resources/customization/extend-a-workflow.mdx +39 -0
  256. package/content/resources/customization/extending-panels.mdx +309 -0
  257. package/content/resources/deployment/medusa-cloud.mdx +167 -0
  258. package/content/resources/integrations/notifications.mdx +39 -0
  259. package/content/resources/integrations/search.mdx +122 -0
  260. package/content/resources/integrations/stripe-connect.mdx +395 -0
  261. package/content/resources/tutorials/add-a-block.mdx +74 -0
  262. package/content/resources/tutorials/attributes-and-variant-axes.mdx +111 -0
  263. package/content/resources/tutorials/build-a-block.mdx +134 -0
  264. package/content/resources/tutorials/configure-commissions.mdx +127 -0
  265. package/content/resources/tutorials/custom-api-route.mdx +142 -0
  266. package/content/resources/tutorials/custom-panel-page.mdx +78 -0
  267. package/content/resources/tutorials/first-marketplace.mdx +45 -0
  268. package/content/resources/tutorials/handle-product-requests.mdx +80 -0
  269. package/content/resources/tutorials/import-export-products.mdx +96 -0
  270. package/content/resources/tutorials/master-products-and-offers.mdx +89 -0
  271. package/content/resources/tutorials/recompose-a-page.mdx +129 -0
  272. package/content/resources/tutorials/replace-panel-components.mdx +116 -0
  273. package/content/resources/tutorials/seller-payouts-stripe.mdx +89 -0
  274. package/content/telemetry.mdx +67 -0
  275. package/content/tools/api-client.mdx +155 -0
  276. package/content/tools/cli.mdx +196 -0
  277. package/content/tools/dashboard-sdk.mdx +35 -0
  278. package/content/user-guide/admin/overview.mdx +23 -0
  279. package/content/user-guide/admin/stores.mdx +193 -0
  280. package/content/user-guide/vendor/overview.mdx +23 -0
  281. package/content/user-guide/vendor/stores.mdx +209 -0
  282. package/llms.txt +307 -0
  283. package/package.json +33 -0
@@ -0,0 +1,197 @@
1
+ ---
2
+ title: "Create Product"
3
+ api: "POST /vendor/products"
4
+ description: "Create a new product owned by the seller."
5
+ ---
6
+
7
+ Creates a product; when no status is provided it is created with status `proposed`.
8
+
9
+ <Note>
10
+ When the product request flow is enabled, `status` may only be `draft` or `proposed` — publishing requires operator approval.
11
+ </Note>
12
+
13
+ ## Query parameters
14
+
15
+ <ParamField query="fields" type="string">
16
+ Comma-separated fields to include in the returned product. Prefix with `+`/`-` to add to or remove from the defaults.
17
+ </ParamField>
18
+
19
+ ## Body parameters
20
+
21
+ <ParamField body="title" type="string" required>
22
+ The product's title.
23
+ </ParamField>
24
+
25
+ <ParamField body="subtitle" type="string">
26
+ The product's subtitle.
27
+ </ParamField>
28
+
29
+ <ParamField body="description" type="string">
30
+ The product's description.
31
+ </ParamField>
32
+
33
+ <ParamField body="status" type="string" default="proposed">
34
+ One of `draft`, `proposed`, `published`, `rejected`. Restricted to `draft` / `proposed` when the product request flow is enabled.
35
+ </ParamField>
36
+
37
+ <ParamField body="is_giftcard" type="boolean" default="false">
38
+ Whether the product is a gift card.
39
+ </ParamField>
40
+
41
+ <ParamField body="discountable" type="boolean" default="true">
42
+ Whether discounts can apply to the product.
43
+ </ParamField>
44
+
45
+ <ParamField body="images" type="object[]">
46
+ <Expandable title="properties">
47
+ <ParamField body="url" type="string" required>Image URL.</ParamField>
48
+ </Expandable>
49
+ </ParamField>
50
+
51
+ <ParamField body="thumbnail" type="string">
52
+ URL of the product's thumbnail image.
53
+ </ParamField>
54
+
55
+ <ParamField body="handle" type="string">
56
+ The product's URL handle; generated from the title when omitted.
57
+ </ParamField>
58
+
59
+ <ParamField body="external_id" type="string">
60
+ ID of the product in an external system.
61
+ </ParamField>
62
+
63
+ <ParamField body="type_id" type="string">
64
+ ID of the product type.
65
+ </ParamField>
66
+
67
+ <ParamField body="collection_id" type="string">
68
+ ID of the collection the product belongs to.
69
+ </ParamField>
70
+
71
+ <ParamField body="categories" type="object[]">
72
+ <Expandable title="properties">
73
+ <ParamField body="id" type="string" required>Category ID.</ParamField>
74
+ </Expandable>
75
+ </ParamField>
76
+
77
+ <ParamField body="tags" type="object[]">
78
+ <Expandable title="properties">
79
+ <ParamField body="id" type="string" required>Tag ID.</ParamField>
80
+ </Expandable>
81
+ </ParamField>
82
+
83
+ <ParamField body="options" type="object[]">
84
+ <Expandable title="properties">
85
+ <ParamField body="title" type="string" required>Option title, e.g. `Size`.</ParamField>
86
+ <ParamField body="values" type="string[]" required>Allowed option values.</ParamField>
87
+ </Expandable>
88
+ </ParamField>
89
+
90
+ <ParamField body="attributes" type="object[]">
91
+ Product attribute assignments; each entry references an existing attribute by `id` or defines one inline by `title`.
92
+ <Expandable title="properties">
93
+ <ParamField body="id" type="string">Existing attribute ID (referencing form).</ParamField>
94
+ <ParamField body="value_ids" type="string[]">IDs of attribute values to select (referencing form).</ParamField>
95
+ <ParamField body="value" type="string | number | boolean">Scalar value for `text`, `unit`, or `toggle` attributes.</ParamField>
96
+ <ParamField body="title" type="string">Attribute title (inline form).</ParamField>
97
+ <ParamField body="type" type="string">One of `single_select`, `multi_select`, `text`, `toggle`, `unit` (inline form).</ParamField>
98
+ <ParamField body="values" type="string[]">Value names to create and select (inline form).</ParamField>
99
+ <ParamField body="is_variant_axis" type="boolean">Whether the attribute drives variant combinations (inline form).</ParamField>
100
+ <ParamField body="is_filterable" type="boolean">Whether the attribute is filterable (inline form).</ParamField>
101
+ <ParamField body="is_required" type="boolean">Whether the attribute is required (inline form).</ParamField>
102
+ <ParamField body="description" type="string">Attribute description (inline form).</ParamField>
103
+ <ParamField body="metadata" type="object">Custom key-value pairs (inline form).</ParamField>
104
+ </Expandable>
105
+ </ParamField>
106
+
107
+ <ParamField body="variants" type="object[]">
108
+ <Expandable title="properties">
109
+ <ParamField body="title" type="string" required>Variant title.</ParamField>
110
+ <ParamField body="sku" type="string">Variant SKU.</ParamField>
111
+ <ParamField body="ean" type="string">EAN barcode.</ParamField>
112
+ <ParamField body="upc" type="string">UPC barcode.</ParamField>
113
+ <ParamField body="isbn" type="string">ISBN code.</ParamField>
114
+ <ParamField body="asin" type="string">Amazon ASIN.</ParamField>
115
+ <ParamField body="gtin" type="string">GTIN code.</ParamField>
116
+ <ParamField body="barcode" type="string">Generic barcode.</ParamField>
117
+ <ParamField body="hs_code" type="string">Harmonized System code.</ParamField>
118
+ <ParamField body="mid_code" type="string">Manufacturer ID code.</ParamField>
119
+ <ParamField body="variant_rank" type="number">Sort rank of the variant.</ParamField>
120
+ <ParamField body="weight" type="number">Weight of the variant.</ParamField>
121
+ <ParamField body="length" type="number">Length of the variant.</ParamField>
122
+ <ParamField body="height" type="number">Height of the variant.</ParamField>
123
+ <ParamField body="width" type="number">Width of the variant.</ParamField>
124
+ <ParamField body="origin_country" type="string">Country of origin.</ParamField>
125
+ <ParamField body="material" type="string">Material of the variant.</ParamField>
126
+ <ParamField body="metadata" type="object">Custom key-value pairs.</ParamField>
127
+ <ParamField body="options" type="object">Option title to value mapping, e.g. `{"Size": "M"}`.</ParamField>
128
+ </Expandable>
129
+ </ParamField>
130
+
131
+ <ParamField body="weight" type="number">Weight of the product.</ParamField>
132
+ <ParamField body="length" type="number">Length of the product.</ParamField>
133
+ <ParamField body="height" type="number">Height of the product.</ParamField>
134
+ <ParamField body="width" type="number">Width of the product.</ParamField>
135
+ <ParamField body="hs_code" type="string">Harmonized System code.</ParamField>
136
+ <ParamField body="mid_code" type="string">Manufacturer ID code.</ParamField>
137
+ <ParamField body="origin_country" type="string">Country of origin.</ParamField>
138
+ <ParamField body="material" type="string">Material of the product.</ParamField>
139
+ <ParamField body="metadata" type="object">Custom key-value pairs.</ParamField>
140
+ <ParamField body="additional_data" type="object">Extra data passed to workflow hooks.</ParamField>
141
+
142
+ ## Response
143
+
144
+ <ResponseField name="product" type="object">
145
+ <Expandable title="properties">
146
+ <ResponseField name="id" type="string">The product's ID.</ResponseField>
147
+ <ResponseField name="title" type="string">The product's title.</ResponseField>
148
+ <ResponseField name="status" type="string">The product's status (`proposed` unless overridden).</ResponseField>
149
+ <ResponseField name="handle" type="string">The product's URL handle.</ResponseField>
150
+ <ResponseField name="variants" type="object[]">The created variants.</ResponseField>
151
+ <ResponseField name="attributes" type="object[]">The product's attribute assignments.</ResponseField>
152
+ </Expandable>
153
+ </ResponseField>
154
+
155
+ <RequestExample>
156
+ ```bash cURL
157
+ curl -X POST 'http://localhost:9000/vendor/products' \
158
+ -H 'Authorization: Bearer <token>' \
159
+ -H 'x-seller-id: <seller_id>' \
160
+ -H 'Content-Type: application/json' \
161
+ -d '{
162
+ "title": "Acme T-Shirt",
163
+ "options": [{ "title": "Size", "values": ["S", "M"] }],
164
+ "variants": [
165
+ { "title": "S", "sku": "ACME-SHIRT-S", "options": { "Size": "S" } },
166
+ { "title": "M", "sku": "ACME-SHIRT-M", "options": { "Size": "M" } }
167
+ ]
168
+ }'
169
+ ```
170
+
171
+ ```ts JS Client
172
+ const { product } = await client.vendor.products.mutate({
173
+ title: "Acme T-Shirt",
174
+ options: [{ title: "Size", values: ["S", "M"] }],
175
+ variants: [
176
+ { title: "S", sku: "ACME-SHIRT-S", options: { Size: "S" } },
177
+ { title: "M", sku: "ACME-SHIRT-M", options: { Size: "M" } },
178
+ ],
179
+ })
180
+ ```
181
+ </RequestExample>
182
+
183
+ <ResponseExample>
184
+ ```json 201
185
+ {
186
+ "product": {
187
+ "id": "prod_01HXYZ",
188
+ "title": "Acme T-Shirt",
189
+ "status": "proposed",
190
+ "handle": "acme-t-shirt",
191
+ "variants": [
192
+ { "id": "variant_01HXYZ", "title": "M", "sku": "ACME-SHIRT-M" }
193
+ ]
194
+ }
195
+ }
196
+ ```
197
+ </ResponseExample>
@@ -0,0 +1,68 @@
1
+ ---
2
+ title: "Delete Product Variant"
3
+ api: "DELETE /vendor/products/{id}/variants/{variant_id}"
4
+ description: "Stage the removal of a product variant as a change request."
5
+ ---
6
+
7
+ Stages a `VARIANT_REMOVE` operation as a pending change request instead of deleting the variant directly.
8
+
9
+ <Note>
10
+ The endpoint responds with `202 Accepted` and a `product_change` record; the variant remains until the change is confirmed.
11
+ </Note>
12
+
13
+ ## Path parameters
14
+
15
+ <ParamField path="id" type="string" required>
16
+ The product's ID.
17
+ </ParamField>
18
+
19
+ <ParamField path="variant_id" type="string" required>
20
+ The variant's ID.
21
+ </ParamField>
22
+
23
+ ## Response
24
+
25
+ <ResponseField name="product_change" type="object">
26
+ <Expandable title="properties">
27
+ <ResponseField name="id" type="string">The change request's ID.</ResponseField>
28
+ <ResponseField name="product_id" type="string">ID of the product the change targets.</ResponseField>
29
+ <ResponseField name="status" type="string">One of `pending`, `confirmed`, `declined`, `canceled`.</ResponseField>
30
+ <ResponseField name="actions" type="object[]">Staged operations, each with `id`, `action` (`VARIANT_REMOVE`), `details`, `ordering`, and `applied`.</ResponseField>
31
+ </Expandable>
32
+ </ResponseField>
33
+
34
+ <RequestExample>
35
+ ```bash cURL
36
+ curl -X DELETE 'http://localhost:9000/vendor/products/prod_01HXYZ/variants/variant_01HXYZ' \
37
+ -H 'Authorization: Bearer <token>' \
38
+ -H 'x-seller-id: <seller_id>'
39
+ ```
40
+
41
+ ```ts JS Client
42
+ const { product_change } =
43
+ await client.vendor.products.$id.variants.$variant_id.delete({
44
+ $id: "prod_01HXYZ",
45
+ $variant_id: "variant_01HXYZ",
46
+ })
47
+ ```
48
+ </RequestExample>
49
+
50
+ <ResponseExample>
51
+ ```json 202
52
+ {
53
+ "product_change": {
54
+ "id": "prodch_01HXYZ",
55
+ "product_id": "prod_01HXYZ",
56
+ "status": "pending",
57
+ "actions": [
58
+ {
59
+ "id": "prodchact_01HXYZ",
60
+ "action": "VARIANT_REMOVE",
61
+ "details": { "variant_id": "variant_01HXYZ" },
62
+ "applied": false
63
+ }
64
+ ]
65
+ }
66
+ }
67
+ ```
68
+ </ResponseExample>
@@ -0,0 +1,62 @@
1
+ ---
2
+ title: "Delete Product"
3
+ api: "DELETE /vendor/products/{id}"
4
+ description: "Stage a product deletion as a change request."
5
+ ---
6
+
7
+ Does not delete the product directly — it stages a pending `PRODUCT_DELETE` change request that an operator confirms or declines.
8
+
9
+ <Note>
10
+ The endpoint responds with `202 Accepted` and a `product_change` record; the product remains until the change is confirmed.
11
+ </Note>
12
+
13
+ ## Path parameters
14
+
15
+ <ParamField path="id" type="string" required>
16
+ The product's ID.
17
+ </ParamField>
18
+
19
+ ## Response
20
+
21
+ <ResponseField name="product_change" type="object">
22
+ <Expandable title="properties">
23
+ <ResponseField name="id" type="string">The change request's ID.</ResponseField>
24
+ <ResponseField name="product_id" type="string">ID of the product the change targets.</ResponseField>
25
+ <ResponseField name="status" type="string">One of `pending`, `confirmed`, `declined`, `canceled`.</ResponseField>
26
+ <ResponseField name="created_by" type="string">ID of the seller that staged the change.</ResponseField>
27
+ <ResponseField name="actions" type="object[]">Staged operations, each with `id`, `action` (`PRODUCT_DELETE`), `details`, `ordering`, and `applied`.</ResponseField>
28
+ </Expandable>
29
+ </ResponseField>
30
+
31
+ <RequestExample>
32
+ ```bash cURL
33
+ curl -X DELETE 'http://localhost:9000/vendor/products/prod_01HXYZ' \
34
+ -H 'Authorization: Bearer <token>' \
35
+ -H 'x-seller-id: <seller_id>'
36
+ ```
37
+
38
+ ```ts JS Client
39
+ const { product_change } = await client.vendor.products.$id.delete({
40
+ $id: "prod_01HXYZ",
41
+ })
42
+ ```
43
+ </RequestExample>
44
+
45
+ <ResponseExample>
46
+ ```json 202
47
+ {
48
+ "product_change": {
49
+ "id": "prodch_01HXYZ",
50
+ "product_id": "prod_01HXYZ",
51
+ "status": "pending",
52
+ "actions": [
53
+ {
54
+ "id": "prodchact_01HXYZ",
55
+ "action": "PRODUCT_DELETE",
56
+ "applied": false
57
+ }
58
+ ]
59
+ }
60
+ }
61
+ ```
62
+ </ResponseExample>
@@ -0,0 +1,114 @@
1
+ ---
2
+ title: "List Product Variants"
3
+ api: "GET /vendor/products/{id}/variants"
4
+ description: "Retrieve a paginated list of a product's variants."
5
+ ---
6
+
7
+ Returns the variants belonging to the given product.
8
+
9
+ ## Path parameters
10
+
11
+ <ParamField path="id" type="string" required>
12
+ The product's ID.
13
+ </ParamField>
14
+
15
+ ## Query parameters
16
+
17
+ <ParamField query="limit" type="number" default="50">
18
+ The maximum number of variants to return.
19
+ </ParamField>
20
+
21
+ <ParamField query="offset" type="number" default="0">
22
+ The number of variants to skip before returning results.
23
+ </ParamField>
24
+
25
+ <ParamField query="order" type="string">
26
+ The field to sort by, e.g. `variant_rank` or `-created_at`.
27
+ </ParamField>
28
+
29
+ <ParamField query="fields" type="string">
30
+ Comma-separated fields to include in the response. Prefix with `+`/`-` to add to or remove from the defaults.
31
+ </ParamField>
32
+
33
+ <ParamField query="q" type="string">
34
+ Search term matched against variant fields.
35
+ </ParamField>
36
+
37
+ <ParamField query="manage_inventory" type="boolean">
38
+ Filter by whether inventory is managed for the variant.
39
+ </ParamField>
40
+
41
+ <ParamField query="allow_backorder" type="boolean">
42
+ Filter by whether backorders are allowed.
43
+ </ParamField>
44
+
45
+ <ParamField query="created_at" type="object">
46
+ Filter by creation date using operators like `$gt`, `$lt`, `$gte`, `$lte`.
47
+ </ParamField>
48
+
49
+ <ParamField query="updated_at" type="object">
50
+ Filter by update date using operators like `$gt`, `$lt`, `$gte`, `$lte`.
51
+ </ParamField>
52
+
53
+ <ParamField query="$and" type="object[]">
54
+ Join multiple filter objects with a logical AND.
55
+ </ParamField>
56
+
57
+ <ParamField query="$or" type="object[]">
58
+ Join multiple filter objects with a logical OR.
59
+ </ParamField>
60
+
61
+ ## Response
62
+
63
+ <ResponseField name="variants" type="object[]">
64
+ <Expandable title="properties">
65
+ <ResponseField name="id" type="string">The variant's ID.</ResponseField>
66
+ <ResponseField name="title" type="string">The variant's title.</ResponseField>
67
+ <ResponseField name="sku" type="string">The variant's SKU.</ResponseField>
68
+ <ResponseField name="product_id" type="string">ID of the parent product.</ResponseField>
69
+ <ResponseField name="manage_inventory" type="boolean">Whether inventory is managed for the variant.</ResponseField>
70
+ <ResponseField name="allow_backorder" type="boolean">Whether backorders are allowed.</ResponseField>
71
+ <ResponseField name="variant_rank" type="number">Sort rank of the variant.</ResponseField>
72
+ <ResponseField name="options" type="object[]">Selected option values with `id`, `value`, and the parent `option`.</ResponseField>
73
+ <ResponseField name="images" type="object[]">Variant images with `id`, `url`, and `rank`.</ResponseField>
74
+ </Expandable>
75
+ </ResponseField>
76
+
77
+ <ResponseField name="count" type="number">Total number of matching variants.</ResponseField>
78
+ <ResponseField name="offset" type="number">Number of skipped variants.</ResponseField>
79
+ <ResponseField name="limit" type="number">Maximum number of returned variants.</ResponseField>
80
+
81
+ <RequestExample>
82
+ ```bash cURL
83
+ curl 'http://localhost:9000/vendor/products/prod_01HXYZ/variants?limit=20' \
84
+ -H 'Authorization: Bearer <token>' \
85
+ -H 'x-seller-id: <seller_id>'
86
+ ```
87
+
88
+ ```ts JS Client
89
+ const { variants, count } = await client.vendor.products.$id.variants.query({
90
+ $id: "prod_01HXYZ",
91
+ limit: 20,
92
+ })
93
+ ```
94
+ </RequestExample>
95
+
96
+ <ResponseExample>
97
+ ```json 200
98
+ {
99
+ "variants": [
100
+ {
101
+ "id": "variant_01HXYZ",
102
+ "title": "M",
103
+ "sku": "ACME-SHIRT-M",
104
+ "product_id": "prod_01HXYZ",
105
+ "manage_inventory": false,
106
+ "allow_backorder": false
107
+ }
108
+ ],
109
+ "count": 1,
110
+ "offset": 0,
111
+ "limit": 20
112
+ }
113
+ ```
114
+ </ResponseExample>
@@ -0,0 +1,163 @@
1
+ ---
2
+ title: "List Products"
3
+ api: "GET /vendor/products"
4
+ description: "Retrieve a paginated list of products visible to the seller."
5
+ ---
6
+
7
+ Returns products the seller created plus published products that are not restricted from the seller.
8
+
9
+ <Note>
10
+ Products are shared master records. This list includes catalog products from other sellers (when published and unrestricted) so you can create offers against them.
11
+ </Note>
12
+
13
+ ## Query parameters
14
+
15
+ <ParamField query="limit" type="number" default="50">
16
+ The maximum number of products to return.
17
+ </ParamField>
18
+
19
+ <ParamField query="offset" type="number" default="0">
20
+ The number of products to skip before returning results.
21
+ </ParamField>
22
+
23
+ <ParamField query="order" type="string">
24
+ The field to sort by, e.g. `created_at` or `-created_at` for descending.
25
+ </ParamField>
26
+
27
+ <ParamField query="fields" type="string">
28
+ Comma-separated fields to include in the response. Prefix with `+`/`-` to add to or remove from the defaults. Include `variants.offers` to attach the seller's offers to each variant.
29
+ </ParamField>
30
+
31
+ <ParamField query="q" type="string">
32
+ Search term matched against product fields.
33
+ </ParamField>
34
+
35
+ <ParamField query="id" type="string | string[]">
36
+ Filter by product ID(s).
37
+ </ParamField>
38
+
39
+ <ParamField query="title" type="string">
40
+ Filter by product title.
41
+ </ParamField>
42
+
43
+ <ParamField query="handle" type="string">
44
+ Filter by product handle.
45
+ </ParamField>
46
+
47
+ <ParamField query="status" type="string[]">
48
+ Filter by status. Values: `draft`, `proposed`, `published`, `rejected`.
49
+ </ParamField>
50
+
51
+ <ParamField query="collection_id" type="string | string[]">
52
+ Filter by collection ID(s).
53
+ </ParamField>
54
+
55
+ <ParamField query="type_id" type="string | string[]">
56
+ Filter by product type ID(s).
57
+ </ParamField>
58
+
59
+ <ParamField query="category_id" type="string | string[]">
60
+ Filter by category ID(s).
61
+ </ParamField>
62
+
63
+ <ParamField query="tag_id" type="string | string[]">
64
+ Filter by tag ID(s).
65
+ </ParamField>
66
+
67
+ <ParamField query="sku" type="string">
68
+ Filter by variant SKU.
69
+ </ParamField>
70
+
71
+ <ParamField query="ean" type="string">
72
+ Filter by variant EAN.
73
+ </ParamField>
74
+
75
+ <ParamField query="upc" type="string">
76
+ Filter by variant UPC.
77
+ </ParamField>
78
+
79
+ <ParamField query="barcode" type="string">
80
+ Filter by variant barcode.
81
+ </ParamField>
82
+
83
+ <ParamField query="has_offer" type="boolean">
84
+ Filter to products the seller has (or has not) created an offer for.
85
+ </ParamField>
86
+
87
+ <ParamField query="created_at" type="object">
88
+ Filter by creation date using operators like `$gt`, `$lt`, `$gte`, `$lte`.
89
+ </ParamField>
90
+
91
+ <ParamField query="updated_at" type="object">
92
+ Filter by update date using operators like `$gt`, `$lt`, `$gte`, `$lte`.
93
+ </ParamField>
94
+
95
+ <ParamField query="deleted_at" type="object">
96
+ Filter by deletion date using operators like `$gt`, `$lt`, `$gte`, `$lte`.
97
+ </ParamField>
98
+
99
+ <ParamField query="$and" type="object[]">
100
+ Join multiple filter objects with a logical AND.
101
+ </ParamField>
102
+
103
+ <ParamField query="$or" type="object[]">
104
+ Join multiple filter objects with a logical OR.
105
+ </ParamField>
106
+
107
+ ## Response
108
+
109
+ <ResponseField name="products" type="object[]">
110
+ <Expandable title="properties">
111
+ <ResponseField name="id" type="string">The product's ID.</ResponseField>
112
+ <ResponseField name="title" type="string">The product's title.</ResponseField>
113
+ <ResponseField name="status" type="string">One of `draft`, `proposed`, `published`, `rejected`.</ResponseField>
114
+ <ResponseField name="handle" type="string">The product's URL handle.</ResponseField>
115
+ <ResponseField name="thumbnail" type="string">URL of the product's thumbnail image.</ResponseField>
116
+ <ResponseField name="images" type="object[]">The product's images with `id`, `url`, and `rank`.</ResponseField>
117
+ <ResponseField name="collection" type="object">The associated collection with `id`, `title`, and `handle`.</ResponseField>
118
+ <ResponseField name="categories" type="object[]">Associated categories with `id`, `name`, and `handle`.</ResponseField>
119
+ <ResponseField name="variants" type="object[]">The product's variants with `id`, `title`, `sku`, `manage_inventory`, `allow_backorder`, and `variant_rank`.</ResponseField>
120
+ <ResponseField name="attributes" type="object[]">Product attributes grouped per attribute with their selected values.</ResponseField>
121
+ </Expandable>
122
+ </ResponseField>
123
+
124
+ <ResponseField name="count" type="number">Total number of matching products.</ResponseField>
125
+ <ResponseField name="offset" type="number">Number of skipped products.</ResponseField>
126
+ <ResponseField name="limit" type="number">Maximum number of returned products.</ResponseField>
127
+
128
+ <RequestExample>
129
+ ```bash cURL
130
+ curl 'http://localhost:9000/vendor/products?limit=20&status[]=published' \
131
+ -H 'Authorization: Bearer <token>' \
132
+ -H 'x-seller-id: <seller_id>'
133
+ ```
134
+
135
+ ```ts JS Client
136
+ const { products, count } = await client.vendor.products.query({
137
+ limit: 20,
138
+ status: ["published"],
139
+ })
140
+ ```
141
+ </RequestExample>
142
+
143
+ <ResponseExample>
144
+ ```json 200
145
+ {
146
+ "products": [
147
+ {
148
+ "id": "prod_01HXYZ",
149
+ "title": "Acme T-Shirt",
150
+ "status": "published",
151
+ "handle": "acme-t-shirt",
152
+ "thumbnail": "https://cdn.example.com/shirt.png",
153
+ "variants": [
154
+ { "id": "variant_01HXYZ", "title": "M", "sku": "ACME-SHIRT-M" }
155
+ ]
156
+ }
157
+ ],
158
+ "count": 1,
159
+ "offset": 0,
160
+ "limit": 20
161
+ }
162
+ ```
163
+ </ResponseExample>
@@ -0,0 +1,61 @@
1
+ ---
2
+ title: "Preview Product Change"
3
+ api: "GET /vendor/products/{id}/preview"
4
+ description: "Retrieve the seller's pending change request for a product."
5
+ ---
6
+
7
+ Returns the seller's `pending` change request for the product, or `null` when there is none.
8
+
9
+ ## Path parameters
10
+
11
+ <ParamField path="id" type="string" required>
12
+ The product's ID.
13
+ </ParamField>
14
+
15
+ ## Response
16
+
17
+ <ResponseField name="product_change" type="object | null">
18
+ <Expandable title="properties">
19
+ <ResponseField name="id" type="string">The change request's ID.</ResponseField>
20
+ <ResponseField name="product_id" type="string">ID of the product the change targets.</ResponseField>
21
+ <ResponseField name="status" type="string">Always `pending` for this endpoint.</ResponseField>
22
+ <ResponseField name="created_by" type="string">ID of the seller that staged the change.</ResponseField>
23
+ <ResponseField name="actions" type="object[]">Staged operations, each with `id`, `action`, `details`, `ordering`, and `applied`.</ResponseField>
24
+ <ResponseField name="internal_note" type="string">Internal note attached to the change.</ResponseField>
25
+ <ResponseField name="external_note" type="string">Note from the operator, e.g. a revision request.</ResponseField>
26
+ </Expandable>
27
+ </ResponseField>
28
+
29
+ <RequestExample>
30
+ ```bash cURL
31
+ curl 'http://localhost:9000/vendor/products/prod_01HXYZ/preview' \
32
+ -H 'Authorization: Bearer <token>' \
33
+ -H 'x-seller-id: <seller_id>'
34
+ ```
35
+
36
+ ```ts JS Client
37
+ const { product_change } = await client.vendor.products.$id.preview.query({
38
+ $id: "prod_01HXYZ",
39
+ })
40
+ ```
41
+ </RequestExample>
42
+
43
+ <ResponseExample>
44
+ ```json 200
45
+ {
46
+ "product_change": {
47
+ "id": "prodch_01HXYZ",
48
+ "product_id": "prod_01HXYZ",
49
+ "status": "pending",
50
+ "actions": [
51
+ {
52
+ "id": "prodchact_01HXYZ",
53
+ "action": "UPDATE",
54
+ "details": { "title": "Acme T-Shirt v2" },
55
+ "applied": false
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ ```
61
+ </ResponseExample>