@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,98 @@
1
+ ---
2
+ title: "Complete Cart"
3
+ api: "POST /store/carts/{id}/complete"
4
+ description: "Complete the cart and split it into per-seller orders under an order group."
5
+ ---
6
+
7
+ Completes the cart with Mercur's split-order workflow: items are grouped by seller, one order is created per seller, and all orders are attached to a single order group returned to the shopper.
8
+
9
+ <Note>
10
+ On payment errors that need customer action (authorization failed or requires more), the route still returns `200` with `type: "cart"`, the refreshed cart, and an `error` object; any other failure is thrown as an error response.
11
+ </Note>
12
+
13
+ ## Path parameters
14
+
15
+ <ParamField path="id" type="string" required>
16
+ The cart's ID.
17
+ </ParamField>
18
+
19
+ ## Query parameters
20
+
21
+ <ParamField query="fields" type="string">
22
+ Comma-separated fields to include on the returned order group; prefix with `+`/`-` to add to or remove from the defaults.
23
+ </ParamField>
24
+
25
+ ## Response
26
+
27
+ <ResponseField name="type" type="string">
28
+ `order_group` on success, `cart` when payment requires further action.
29
+ </ResponseField>
30
+
31
+ <ResponseField name="order_group" type="object">
32
+ Present when `type` is `order_group`.
33
+ <Expandable title="properties">
34
+ <ResponseField name="id" type="string">The order group's ID.</ResponseField>
35
+ <ResponseField name="customer_id" type="string">ID of the purchasing customer.</ResponseField>
36
+ <ResponseField name="cart_id" type="string">ID of the completed cart.</ResponseField>
37
+ <ResponseField name="seller_count" type="number">Number of per-seller orders created.</ResponseField>
38
+ <ResponseField name="total" type="number">Combined total across all child orders.</ResponseField>
39
+ <ResponseField name="created_at" type="string">Creation timestamp.</ResponseField>
40
+ <ResponseField name="updated_at" type="string">Last update timestamp.</ResponseField>
41
+ </Expandable>
42
+ </ResponseField>
43
+
44
+ <ResponseField name="cart" type="object">
45
+ Present when `type` is `cart`; the refreshed cart with items, totals, and payment collection.
46
+ </ResponseField>
47
+
48
+ <ResponseField name="error" type="object">
49
+ Present when `type` is `cart`.
50
+ <Expandable title="properties">
51
+ <ResponseField name="message" type="string">The payment error message.</ResponseField>
52
+ <ResponseField name="name" type="string">The error name.</ResponseField>
53
+ <ResponseField name="type" type="string">One of `payment_authorization_error` or `payment_requires_more_error`.</ResponseField>
54
+ </Expandable>
55
+ </ResponseField>
56
+
57
+ <RequestExample>
58
+ ```bash cURL
59
+ curl -X POST 'http://localhost:9000/store/carts/cart_01JB2KB1CD/complete' \
60
+ -H 'x-publishable-api-key: pk_01JB2K3XYZ'
61
+ ```
62
+
63
+ ```ts JS Client
64
+ const result = await client.store.carts.$id.complete.mutate({ $id: "cart_01JB2KB1CD" })
65
+ if (result.type === "order_group") {
66
+ console.log(result.order_group.id)
67
+ }
68
+ ```
69
+ </RequestExample>
70
+
71
+ <ResponseExample>
72
+ ```json 200 (success)
73
+ {
74
+ "type": "order_group",
75
+ "order_group": {
76
+ "id": "og_01JB2KE7NP",
77
+ "customer_id": "cus_01JB2KE8QR",
78
+ "cart_id": "cart_01JB2KB1CD",
79
+ "seller_count": 2,
80
+ "total": 9900,
81
+ "created_at": "2026-05-01T10:05:00.000Z",
82
+ "updated_at": "2026-05-01T10:05:00.000Z"
83
+ }
84
+ }
85
+ ```
86
+
87
+ ```json 200 (payment error)
88
+ {
89
+ "type": "cart",
90
+ "cart": { "id": "cart_01JB2KB1CD", "total": 9900 },
91
+ "error": {
92
+ "message": "Payment authorization failed",
93
+ "name": "Error",
94
+ "type": "payment_authorization_error"
95
+ }
96
+ }
97
+ ```
98
+ </ResponseExample>
@@ -0,0 +1,161 @@
1
+ ---
2
+ title: "List Offers"
3
+ api: "GET /store/offers"
4
+ description: "Retrieve seller offers with per-offer calculated prices."
5
+ ---
6
+
7
+ Returns a paginated list of offers from visible sellers whose products are published.
8
+
9
+ <Note>
10
+ Customer authentication is optional. When a customer token is provided, the customer's group memberships enter the pricing context used for `calculated_price`. Prices are computed per offer (each offer scopes the variant's price set by an `offer_id` rule) only when `calculated_price` is in `fields` and a pricing context (`region_id`, `country_code`, or `cart_id`) resolves. Requesting `inventory_quantity` or `in_stock` requires a single sales channel — either configured on the publishable key or passed as `sales_channel_id`.
11
+ </Note>
12
+
13
+ ## Query parameters
14
+
15
+ <ParamField query="limit" type="number" default="50">
16
+ Maximum number of offers to return.
17
+ </ParamField>
18
+
19
+ <ParamField query="offset" type="number" default="0">
20
+ Number of offers to skip before collecting results.
21
+ </ParamField>
22
+
23
+ <ParamField query="order" type="string">
24
+ Field to sort by, prefixed with `-` for descending order.
25
+ </ParamField>
26
+
27
+ <ParamField query="fields" type="string">
28
+ Comma-separated fields and relations to include; add `calculated_price`, `inventory_quantity`, or `in_stock` to receive the computed fields.
29
+ </ParamField>
30
+
31
+ <ParamField query="region_id" type="string">
32
+ Region used to build the pricing context for `calculated_price`.
33
+ </ParamField>
34
+
35
+ <ParamField query="country_code" type="string">
36
+ Country used for the tax portion of the pricing context.
37
+ </ParamField>
38
+
39
+ <ParamField query="province" type="string">
40
+ Province used for the tax portion of the pricing context.
41
+ </ParamField>
42
+
43
+ <ParamField query="cart_id" type="string">
44
+ Cart whose region and customer resolve the pricing context.
45
+ </ParamField>
46
+
47
+ <ParamField query="q" type="string">
48
+ Free-text search term applied to offer fields.
49
+ </ParamField>
50
+
51
+ <ParamField query="id" type="string | string[]">
52
+ Filter by one or more offer IDs.
53
+ </ParamField>
54
+
55
+ <ParamField query="product_id" type="string | string[]">
56
+ Filter by one or more product IDs.
57
+ </ParamField>
58
+
59
+ <ParamField query="variant_id" type="string | string[]">
60
+ Filter by one or more variant IDs.
61
+ </ParamField>
62
+
63
+ <ParamField query="seller_id" type="string | string[]">
64
+ Filter by one or more seller IDs.
65
+ </ParamField>
66
+
67
+ <ParamField query="sku" type="string | string[]">
68
+ Filter by one or more offer SKUs.
69
+ </ParamField>
70
+
71
+ <ParamField query="created_at" type="object">
72
+ Filter by creation date using operators like `$gt`, `$gte`, `$lt`, `$lte`.
73
+ </ParamField>
74
+
75
+ <ParamField query="updated_at" type="object">
76
+ Filter by update date using operators like `$gt`, `$gte`, `$lt`, `$lte`.
77
+ </ParamField>
78
+
79
+ ## Response
80
+
81
+ <ResponseField name="offers" type="object[]">
82
+ <Expandable title="properties">
83
+ <ResponseField name="id" type="string">The offer's ID.</ResponseField>
84
+ <ResponseField name="seller_id" type="string">ID of the selling seller.</ResponseField>
85
+ <ResponseField name="variant_id" type="string">ID of the offered product variant.</ResponseField>
86
+ <ResponseField name="product_id" type="string">ID of the offered product.</ResponseField>
87
+ <ResponseField name="shipping_profile_id" type="string | null">ID of the offer's shipping profile.</ResponseField>
88
+ <ResponseField name="sku" type="string | null">The offer's SKU.</ResponseField>
89
+ <ResponseField name="ean" type="string | null">The offer's EAN.</ResponseField>
90
+ <ResponseField name="upc" type="string | null">The offer's UPC.</ResponseField>
91
+ <ResponseField name="seller" type="object">The seller's `id`, `name`, and `handle`.</ResponseField>
92
+ <ResponseField name="product_variant" type="object">The variant's `id`, `title`, `sku`, and `price_set`.</ResponseField>
93
+ <ResponseField name="shipping_profile" type="object | null">The shipping profile's `id` and `name`.</ResponseField>
94
+ <ResponseField name="prices" type="object[]">Raw offer prices with `amount`, `currency_code`, `min_quantity`, and `max_quantity`.</ResponseField>
95
+ <ResponseField name="inventory_item_link" type="object[]">Inventory items backing the offer, with location stock levels.</ResponseField>
96
+ <ResponseField name="calculated_price" type="object | null">
97
+ Per-offer calculated price; includes `calculated_amount_with_tax` / `calculated_amount_without_tax` (and original-amount variants) when a tax context resolves. Only present when requested.
98
+ </ResponseField>
99
+ <ResponseField name="inventory_quantity" type="number">Available quantity in the sales channel's stock locations; only present when requested.</ResponseField>
100
+ <ResponseField name="in_stock" type="boolean">Whether the offer has available inventory; only present when requested.</ResponseField>
101
+ <ResponseField name="metadata" type="object | null">Custom key-value data.</ResponseField>
102
+ <ResponseField name="created_at" type="string">Creation timestamp.</ResponseField>
103
+ <ResponseField name="updated_at" type="string">Last update timestamp.</ResponseField>
104
+ </Expandable>
105
+ </ResponseField>
106
+
107
+ <ResponseField name="count" type="number">Total number of matching offers.</ResponseField>
108
+ <ResponseField name="offset" type="number">Number of skipped offers.</ResponseField>
109
+ <ResponseField name="limit" type="number">Maximum number of returned offers.</ResponseField>
110
+
111
+ <RequestExample>
112
+ ```bash cURL
113
+ curl 'http://localhost:9000/store/offers?product_id=prod_01JB2K5M8N&region_id=reg_01JB2K4S1T&fields=%2Bcalculated_price' \
114
+ -H 'x-publishable-api-key: pk_01JB2K3XYZ'
115
+ ```
116
+
117
+ ```ts JS Client
118
+ const { offers, count } = await client.store.offers.query({
119
+ product_id: "prod_01JB2K5M8N",
120
+ region_id: "reg_01JB2K4S1T",
121
+ fields: "+calculated_price",
122
+ })
123
+ ```
124
+ </RequestExample>
125
+
126
+ <ResponseExample>
127
+ ```json 200
128
+ {
129
+ "offers": [
130
+ {
131
+ "id": "offer_01JB2K6G5H",
132
+ "seller_id": "sel_01JB2K8A1B",
133
+ "variant_id": "variant_01JB2K6E4F",
134
+ "product_id": "prod_01JB2K5M8N",
135
+ "shipping_profile_id": "sp_01JB2K9C2D",
136
+ "sku": "NT-LINEN-M",
137
+ "ean": null,
138
+ "upc": null,
139
+ "seller": { "id": "sel_01JB2K8A1B", "name": "Nordic Textiles", "handle": "nordic-textiles" },
140
+ "product_variant": { "id": "variant_01JB2K6E4F", "title": "M", "sku": null, "price_set": { "id": "pset_01JB2K9E3F" } },
141
+ "shipping_profile": { "id": "sp_01JB2K9C2D", "name": "Default" },
142
+ "prices": [
143
+ { "id": "price_01JB2K9G4H", "amount": 4500, "currency_code": "eur", "min_quantity": null, "max_quantity": null }
144
+ ],
145
+ "inventory_item_link": [],
146
+ "calculated_price": {
147
+ "calculated_amount": 4500,
148
+ "original_amount": 4500,
149
+ "currency_code": "eur"
150
+ },
151
+ "metadata": null,
152
+ "created_at": "2026-05-01T10:00:00.000Z",
153
+ "updated_at": "2026-05-01T10:00:00.000Z"
154
+ }
155
+ ],
156
+ "count": 3,
157
+ "offset": 0,
158
+ "limit": 50
159
+ }
160
+ ```
161
+ </ResponseExample>
@@ -0,0 +1,112 @@
1
+ ---
2
+ title: "Retrieve Offer"
3
+ api: "GET /store/offers/{id}"
4
+ description: "Retrieve a seller offer by ID with its per-offer calculated price."
5
+ ---
6
+
7
+ Returns a single offer; offers from hidden sellers or on unpublished products return a `404`.
8
+
9
+ <Note>
10
+ Customer authentication is optional. `calculated_price` is computed per offer only when requested in `fields` and a pricing context (`region_id`, `country_code`, or `cart_id`) resolves; requesting `inventory_quantity` or `in_stock` requires a single sales channel on the publishable key or via `sales_channel_id`.
11
+ </Note>
12
+
13
+ ## Path parameters
14
+
15
+ <ParamField path="id" type="string" required>
16
+ The offer's ID.
17
+ </ParamField>
18
+
19
+ ## Query parameters
20
+
21
+ <ParamField query="fields" type="string">
22
+ Comma-separated fields and relations to include; add `calculated_price`, `inventory_quantity`, or `in_stock` to receive the computed fields.
23
+ </ParamField>
24
+
25
+ <ParamField query="region_id" type="string">
26
+ Region used to build the pricing context for `calculated_price`.
27
+ </ParamField>
28
+
29
+ <ParamField query="country_code" type="string">
30
+ Country used for the tax portion of the pricing context.
31
+ </ParamField>
32
+
33
+ <ParamField query="province" type="string">
34
+ Province used for the tax portion of the pricing context.
35
+ </ParamField>
36
+
37
+ <ParamField query="cart_id" type="string">
38
+ Cart whose region and customer resolve the pricing context.
39
+ </ParamField>
40
+
41
+ ## Response
42
+
43
+ <ResponseField name="offer" type="object">
44
+ <Expandable title="properties">
45
+ <ResponseField name="id" type="string">The offer's ID.</ResponseField>
46
+ <ResponseField name="seller_id" type="string">ID of the selling seller.</ResponseField>
47
+ <ResponseField name="variant_id" type="string">ID of the offered product variant.</ResponseField>
48
+ <ResponseField name="product_id" type="string">ID of the offered product.</ResponseField>
49
+ <ResponseField name="shipping_profile_id" type="string | null">ID of the offer's shipping profile.</ResponseField>
50
+ <ResponseField name="sku" type="string | null">The offer's SKU.</ResponseField>
51
+ <ResponseField name="ean" type="string | null">The offer's EAN.</ResponseField>
52
+ <ResponseField name="upc" type="string | null">The offer's UPC.</ResponseField>
53
+ <ResponseField name="seller" type="object">The seller's `id`, `name`, and `handle`.</ResponseField>
54
+ <ResponseField name="product_variant" type="object">The variant's `id`, `title`, `sku`, and `price_set`.</ResponseField>
55
+ <ResponseField name="shipping_profile" type="object | null">The shipping profile's `id` and `name`.</ResponseField>
56
+ <ResponseField name="prices" type="object[]">Raw offer prices with `amount`, `currency_code`, `min_quantity`, and `max_quantity`.</ResponseField>
57
+ <ResponseField name="inventory_item_link" type="object[]">Inventory items backing the offer, with location stock levels.</ResponseField>
58
+ <ResponseField name="calculated_price" type="object | null">Per-offer calculated price with tax-adjusted amounts when a tax context resolves; only present when requested.</ResponseField>
59
+ <ResponseField name="inventory_quantity" type="number">Available quantity in the sales channel's stock locations; only present when requested.</ResponseField>
60
+ <ResponseField name="in_stock" type="boolean">Whether the offer has available inventory; only present when requested.</ResponseField>
61
+ <ResponseField name="metadata" type="object | null">Custom key-value data.</ResponseField>
62
+ <ResponseField name="created_at" type="string">Creation timestamp.</ResponseField>
63
+ <ResponseField name="updated_at" type="string">Last update timestamp.</ResponseField>
64
+ </Expandable>
65
+ </ResponseField>
66
+
67
+ <RequestExample>
68
+ ```bash cURL
69
+ curl 'http://localhost:9000/store/offers/offer_01JB2K6G5H?region_id=reg_01JB2K4S1T&fields=%2Bcalculated_price' \
70
+ -H 'x-publishable-api-key: pk_01JB2K3XYZ'
71
+ ```
72
+
73
+ ```ts JS Client
74
+ const { offer } = await client.store.offers.$id.query({
75
+ $id: "offer_01JB2K6G5H",
76
+ region_id: "reg_01JB2K4S1T",
77
+ fields: "+calculated_price",
78
+ })
79
+ ```
80
+ </RequestExample>
81
+
82
+ <ResponseExample>
83
+ ```json 200
84
+ {
85
+ "offer": {
86
+ "id": "offer_01JB2K6G5H",
87
+ "seller_id": "sel_01JB2K8A1B",
88
+ "variant_id": "variant_01JB2K6E4F",
89
+ "product_id": "prod_01JB2K5M8N",
90
+ "shipping_profile_id": "sp_01JB2K9C2D",
91
+ "sku": "NT-LINEN-M",
92
+ "ean": null,
93
+ "upc": null,
94
+ "seller": { "id": "sel_01JB2K8A1B", "name": "Nordic Textiles", "handle": "nordic-textiles" },
95
+ "product_variant": { "id": "variant_01JB2K6E4F", "title": "M", "sku": null, "price_set": { "id": "pset_01JB2K9E3F" } },
96
+ "shipping_profile": { "id": "sp_01JB2K9C2D", "name": "Default" },
97
+ "prices": [
98
+ { "id": "price_01JB2K9G4H", "amount": 4500, "currency_code": "eur", "min_quantity": null, "max_quantity": null }
99
+ ],
100
+ "inventory_item_link": [],
101
+ "calculated_price": {
102
+ "calculated_amount": 4500,
103
+ "original_amount": 4500,
104
+ "currency_code": "eur"
105
+ },
106
+ "metadata": null,
107
+ "created_at": "2026-05-01T10:00:00.000Z",
108
+ "updated_at": "2026-05-01T10:00:00.000Z"
109
+ }
110
+ }
111
+ ```
112
+ </ResponseExample>
@@ -0,0 +1,105 @@
1
+ ---
2
+ title: "List Order Groups"
3
+ api: "GET /store/order-groups"
4
+ description: "Retrieve the authenticated customer's order groups."
5
+ ---
6
+
7
+ Returns a paginated list of the logged-in customer's order groups — the multi-seller wrappers created when a cart is completed.
8
+
9
+ <Note>
10
+ Customer authentication is required (`Authorization: Bearer <customer_token>` or a session cookie); results are always scoped to the authenticated customer.
11
+ </Note>
12
+
13
+ ## Query parameters
14
+
15
+ <ParamField query="limit" type="number" default="50">
16
+ Maximum number of order groups to return.
17
+ </ParamField>
18
+
19
+ <ParamField query="offset" type="number" default="0">
20
+ Number of order groups to skip before collecting results.
21
+ </ParamField>
22
+
23
+ <ParamField query="order" type="string">
24
+ Field to sort by, prefixed with `-` for descending order.
25
+ </ParamField>
26
+
27
+ <ParamField query="fields" type="string">
28
+ Comma-separated fields to include; only fields from the route's allowed list are accepted.
29
+ </ParamField>
30
+
31
+ <ParamField query="id" type="string | string[]">
32
+ Filter by one or more order group IDs.
33
+ </ParamField>
34
+
35
+ <ParamField query="created_at" type="object">
36
+ Filter by creation date using operators like `$gt`, `$gte`, `$lt`, `$lte`.
37
+ </ParamField>
38
+
39
+ <ParamField query="updated_at" type="object">
40
+ Filter by update date using operators like `$gt`, `$gte`, `$lt`, `$lte`.
41
+ </ParamField>
42
+
43
+ ## Response
44
+
45
+ <ResponseField name="order_groups" type="object[]">
46
+ <Expandable title="properties">
47
+ <ResponseField name="id" type="string">The order group's ID.</ResponseField>
48
+ <ResponseField name="customer_id" type="string">ID of the purchasing customer.</ResponseField>
49
+ <ResponseField name="seller_count" type="number">Number of per-seller orders in the group.</ResponseField>
50
+ <ResponseField name="total" type="number">Combined total across all child orders.</ResponseField>
51
+ <ResponseField name="orders" type="object[]">
52
+ Child orders, each with `seller_id` and its `items` (including each item's variant, product, and seller).
53
+ </ResponseField>
54
+ <ResponseField name="created_at" type="string">Creation timestamp.</ResponseField>
55
+ <ResponseField name="updated_at" type="string">Last update timestamp.</ResponseField>
56
+ </Expandable>
57
+ </ResponseField>
58
+
59
+ <ResponseField name="count" type="number">Total number of matching order groups.</ResponseField>
60
+ <ResponseField name="offset" type="number">Number of skipped order groups.</ResponseField>
61
+ <ResponseField name="limit" type="number">Maximum number of returned order groups.</ResponseField>
62
+
63
+ <RequestExample>
64
+ ```bash cURL
65
+ curl 'http://localhost:9000/store/order-groups?limit=10' \
66
+ -H 'x-publishable-api-key: pk_01JB2K3XYZ' \
67
+ -H 'Authorization: Bearer <customer_token>'
68
+ ```
69
+
70
+ ```ts JS Client
71
+ const { order_groups, count } = await client.store.orderGroups.query({ limit: 10 })
72
+ ```
73
+ </RequestExample>
74
+
75
+ <ResponseExample>
76
+ ```json 200
77
+ {
78
+ "order_groups": [
79
+ {
80
+ "id": "og_01JB2KE7NP",
81
+ "customer_id": "cus_01JB2KE8QR",
82
+ "seller_count": 2,
83
+ "total": 9900,
84
+ "orders": [
85
+ {
86
+ "id": "order_01JB2KH1WX",
87
+ "seller_id": "sel_01JB2K8A1B",
88
+ "items": [{ "id": "ordli_01JB2KH2YZ", "title": "M", "quantity": 1 }]
89
+ },
90
+ {
91
+ "id": "order_01JB2KH3AB",
92
+ "seller_id": "sel_01JB2KF9ST",
93
+ "items": [{ "id": "ordli_01JB2KH4CD", "title": "One Size", "quantity": 1 }]
94
+ }
95
+ ],
96
+ "created_at": "2026-05-01T10:05:00.000Z",
97
+ "updated_at": "2026-05-01T10:05:00.000Z"
98
+ }
99
+ ],
100
+ "count": 4,
101
+ "offset": 0,
102
+ "limit": 10
103
+ }
104
+ ```
105
+ </ResponseExample>
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: "Retrieve Order Group"
3
+ api: "GET /store/order-groups/{id}"
4
+ description: "Retrieve one of the authenticated customer's order groups by ID."
5
+ ---
6
+
7
+ Returns a single order group with its per-seller child orders; order groups belonging to another customer return a `404`.
8
+
9
+ <Note>
10
+ Customer authentication is required (`Authorization: Bearer <customer_token>` or a session cookie).
11
+ </Note>
12
+
13
+ ## Path parameters
14
+
15
+ <ParamField path="id" type="string" required>
16
+ The order group's ID.
17
+ </ParamField>
18
+
19
+ ## Query parameters
20
+
21
+ <ParamField query="fields" type="string">
22
+ Comma-separated fields to include; only fields from the route's allowed list are accepted.
23
+ </ParamField>
24
+
25
+ ## Response
26
+
27
+ <ResponseField name="order_group" type="object">
28
+ <Expandable title="properties">
29
+ <ResponseField name="id" type="string">The order group's ID.</ResponseField>
30
+ <ResponseField name="customer_id" type="string">ID of the purchasing customer.</ResponseField>
31
+ <ResponseField name="seller_count" type="number">Number of per-seller orders in the group.</ResponseField>
32
+ <ResponseField name="total" type="number">Combined total across all child orders.</ResponseField>
33
+ <ResponseField name="orders" type="object[]">
34
+ Child orders, each with `seller_id` and its `items` (including each item's variant, product, and seller).
35
+ </ResponseField>
36
+ <ResponseField name="created_at" type="string">Creation timestamp.</ResponseField>
37
+ <ResponseField name="updated_at" type="string">Last update timestamp.</ResponseField>
38
+ </Expandable>
39
+ </ResponseField>
40
+
41
+ <RequestExample>
42
+ ```bash cURL
43
+ curl 'http://localhost:9000/store/order-groups/og_01JB2KE7NP' \
44
+ -H 'x-publishable-api-key: pk_01JB2K3XYZ' \
45
+ -H 'Authorization: Bearer <customer_token>'
46
+ ```
47
+
48
+ ```ts JS Client
49
+ const { order_group } = await client.store.orderGroups.$id.query({ $id: "og_01JB2KE7NP" })
50
+ ```
51
+ </RequestExample>
52
+
53
+ <ResponseExample>
54
+ ```json 200
55
+ {
56
+ "order_group": {
57
+ "id": "og_01JB2KE7NP",
58
+ "customer_id": "cus_01JB2KE8QR",
59
+ "seller_count": 2,
60
+ "total": 9900,
61
+ "orders": [
62
+ {
63
+ "id": "order_01JB2KH1WX",
64
+ "seller_id": "sel_01JB2K8A1B",
65
+ "items": [{ "id": "ordli_01JB2KH2YZ", "title": "M", "quantity": 1 }]
66
+ },
67
+ {
68
+ "id": "order_01JB2KH3AB",
69
+ "seller_id": "sel_01JB2KF9ST",
70
+ "items": [{ "id": "ordli_01JB2KH4CD", "title": "One Size", "quantity": 1 }]
71
+ }
72
+ ],
73
+ "created_at": "2026-05-01T10:05:00.000Z",
74
+ "updated_at": "2026-05-01T10:05:00.000Z"
75
+ }
76
+ }
77
+ ```
78
+ </ResponseExample>