--- displayed_sidebar: jsClientSidebar slug: /references/js-client/AdminOrdersResource --- import ParameterTypes from "@site/src/components/ParameterTypes" # AdminOrdersResource This class is used to send requests to [Admin Order API Routes](https://docs.medusajs.com/api/admin#orders). All its method are available in the JS Client under the `medusa.admin.orders` property. All methods in this class require [user authentication](AdminAuthResource.mdx#createsession). Orders are purchases made by customers, typically through a storefront using [CartsResource](CartsResource.mdx). Draft orders created by the admin are also transformed to an Order once the payment is captured. Managing orders include managing fulfillment, payment, claims, reservations, and more. Related Guide: [How to manage orders](https://docs.medusajs.com/modules/orders/admin/manage-orders). ## Methods ### addShippingMethod Add a shipping method to an order. If another shipping method exists with the same shipping profile, the previous shipping method will be replaced. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .addShippingMethod(orderId, { price: 1000, option_id, }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "The data required for the Shipping Option to create a Shipping Method. This depends on the Fulfillment Provider.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "option_id", "type": "`string`", "description": "The ID of the Shipping Option to create the Shipping Method from.", "optional": false, "defaultValue": "", "expandable": false, "children": [] }, { "name": "price", "type": "`number`", "description": "The price (excluding VAT) that should be charged for the Shipping Method", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "customHeaders", "type": "`Record`", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### archive Archive an order and change its status. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.archive(orderId).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### cancel Cancel an order and change its status. This will also cancel any associated fulfillments and payments, and it may fail if the payment or fulfillment Provider is unable to cancel the payment/fulfillment. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.cancel(orderId).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### cancelClaim Cancel a claim and change its status. A claim can't be canceled if it has a refund, if its fulfillments haven't been canceled, of if its associated return hasn't been canceled. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.cancelClaim(orderId, claimId).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### cancelClaimFulfillment Cancel a claim's fulfillment and change its fulfillment status to `canceled`. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .cancelClaimFulfillment(orderId, claimId, fulfillmentId) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### cancelFulfillment Cancel an order's fulfillment and change its fulfillment status to `canceled`. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .cancelFulfillment(orderId, fulfillmentId) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### cancelSwap Cancel a swap and change its status. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.cancelSwap(orderId, swapId).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### cancelSwapFulfillment Cancel a swap's fulfillment and change its fulfillment status to `canceled`. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .cancelSwapFulfillment(orderId, swapId, fulfillmentId) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### capturePayment Capture all the payments associated with an order. The payment of canceled orders can't be captured. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.capturePayment(orderId).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### complete Complete an order and change its status. A canceled order can't be completed. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.complete(orderId).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### createClaim Create a claim for an order. If a return shipping method is specified, a return will also be created and associated with the claim. If the claim's type is `refund`, the refund is processed as well. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .createClaim(orderId, { type: "refund", claim_items: [ { item_id, quantity: 1, }, ], }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "An optional set of key-value pairs to hold additional information.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "no_notification", "type": "`boolean`", "description": "If set to true no notification will be send related to this Claim.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "refund_amount", "type": "`number`", "description": "The amount to refund the customer. This is used when the claim's type is `refund`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "return_location_id", "type": "`string`", "description": "The ID of the location used for the associated return.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "return_shipping", "type": "[ReturnShipping](../internal/classes/internal.ReturnShipping-3.mdx)", "description": "Optional details for the Return Shipping Method, if the items are to be sent back. Providing this field will result in a return being created and associated with the claim.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "shipping_address", "type": "[AddressPayload](../internal/classes/internal.AddressPayload.mdx)", "description": "An optional shipping address to send the claimed items to. If not provided, the parent order's shipping address will be used.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "shipping_methods", "type": "[ShippingMethod](../internal/classes/internal.ShippingMethod-2.mdx)[]", "description": "The Shipping Methods to send the additional Line Items with. This is only used if the claim's type is `replace`.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "type", "type": "``\"refund\"`` \\| ``\"replace\"``", "description": "The type of the Claim. This will determine how the Claim is treated: `replace` Claims will result in a Fulfillment with new items being created, while a `refund` Claim will refund the amount paid for the claimed items.", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "customHeaders", "type": "`Record`", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### createClaimShipment Create a shipment for the claim and mark its fulfillment as shipped. If the shipment is created successfully, this changes the claim's fulfillment status to either `partially_shipped` or `shipped`, depending on whether all the items were shipped. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .createClaimShipment(orderId, claimId, { fulfillment_id, }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### createFulfillment Create a Fulfillment of an Order using the fulfillment provider, and change the order's fulfillment status to either `partially_fulfilled` or `fulfilled`, depending on whether all the items were fulfilled. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .createFulfillment(orderId, { items: [ { item_id, quantity: 1, }, ], }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "An optional set of key-value pairs to hold additional information.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "no_notification", "type": "`boolean`", "description": "If set to `true`, no notification will be sent to the customer related to this fulfillment.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "customHeaders", "type": "`Record`", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### createShipment Create a shipment and mark a fulfillment as shipped. This changes the order's fulfillment status to either `partially_shipped` or `shipped`, depending on whether all the items were shipped. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .createShipment(order_id, { fulfillment_id, }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### createSwap Create a swap for an order. This includes creating a return that is associated with the swap. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .createSwap(orderId, { return_items: [ { item_id, quantity: 1, }, ], }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### createSwapShipment Create a shipment for a swap and mark its fulfillment as shipped. This changes the swap's fulfillment status to either `shipped` or `partially_shipped`, depending on whether all the items were shipped. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .createSwapShipment(orderId, swapId, { fulfillment_id, }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### fulfillClaim Create a Fulfillment for a Claim, and change its fulfillment status to `partially_fulfilled` or `fulfilled` depending on whether all the items were fulfilled. It may also change the status to `requires_action` if any actions are required. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.fulfillClaim(orderId, claimId, {}).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "An optional set of key-value pairs to hold additional information.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "no_notification", "type": "`boolean`", "description": "If set to `true`, no notification will be sent to the customer related to this Claim.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "customHeaders", "type": "`Record`", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### fulfillSwap Create a Fulfillment for a Swap and change its fulfillment status to `fulfilled`. If it requires any additional actions, its fulfillment status may change to `requires_action`. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .fulfillSwap(orderId, swapId, { no_notification: true, }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "An optional set of key-value pairs to hold additional information.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "no_notification", "type": "`boolean`", "description": "If set to `true`, no notification will be sent to the customer related to this swap.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "customHeaders", "type": "`Record`", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### list Retrieve a list of orders. The orders can be filtered by fields such as `status` or `display_id` passed in the `query` parameter. The order can also be paginated. #### Example To list orders: ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.list().then(({ orders, limit, offset, count }) => { console.log(orders.length) }) ``` To specify relations that should be retrieved within the orders: ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .list({ expand: "customers", }) .then(({ orders, limit, offset, count }) => { console.log(orders.length) }) ``` By default, only the first `50` records are retrieved. You can control pagination by specifying the `limit` and `offset` properties: ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .list({ expand: "customers", limit, offset, }) .then(({ orders, limit, offset, count }) => { console.log(orders.length) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### processSwapPayment Process a swap's payment either by refunding or issuing a payment. This depends on the `difference_due` of the swap. If `difference_due` is negative, the amount is refunded. If `difference_due` is positive, the amount is captured. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.processSwapPayment(orderId, swapId).then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### refundPayment Refund an amount for an order. The amount must be less than or equal the `refundable_amount` of the order. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .refundPayment(orderId, { amount: 1000, reason: "Do not like it", }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### requestReturn Request and create a return for items in an order. If the return shipping method is specified, it will be automatically fulfilled. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .requestReturn(orderId, { items: [ { item_id, quantity: 1, }, ], }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### retrieve Retrieve an order's details. #### Example A simple example that retrieves an order by its ID: ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders.retrieve(orderId).then(({ order }) => { console.log(order.id) }) ``` To specify relations that should be retrieved: ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .retrieve(orderId, { expand: "customer", }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### update Update and order's details. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .update(orderId, { email: "user@example.com", }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `[]", "description": "The discounts applied to the order", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "email", "type": "`string`", "description": "The email associated with the order", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "items", "type": "`Record`[]", "description": "The line items of the order", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "no_notification", "type": "`boolean`", "description": "If set to `true`, no notification will be sent to the customer related to this order.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "payment_method", "type": "[PaymentMethod](../internal/classes/internal.PaymentMethod.mdx)", "description": "The payment method chosen for the order.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "region", "type": "`string`", "description": "ID of the region that the order is associated with.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "shipping_address", "type": "[AddressPayload](../internal/classes/internal.AddressPayload.mdx)", "description": "The order's shipping address", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "shipping_method", "type": "[ShippingMethod](../internal/classes/internal.ShippingMethod-1.mdx)[]", "description": "The Shipping Method used for shipping the order.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "customHeaders", "type": "`Record`", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns ___ ### updateClaim Update a claim's details. #### Example ```ts import Medusa from "@medusajs/medusa-js" const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 }) // must be previously logged in or use api token medusa.admin.orders .updateClaim(orderId, claimId, { no_notification: true, }) .then(({ order }) => { console.log(order.id) }) ``` #### Parameters `", "description": "An optional set of key-value pairs to hold additional information.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "no_notification", "type": "`boolean`", "description": "If set to true no notification will be send related to this Swap.", "optional": true, "defaultValue": "", "expandable": false, "children": [] }, { "name": "shipping_methods", "type": "[ShippingMethod](../internal/classes/internal.ShippingMethod-3.mdx)[]", "description": "The Shipping Methods to send the additional Line Items with.", "optional": true, "defaultValue": "", "expandable": false, "children": [] } ] }, { "name": "customHeaders", "type": "`Record`", "description": "Custom headers to attach to the request.", "optional": false, "defaultValue": "{}", "expandable": false, "children": [] } ]} /> #### Returns