Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com> Co-authored-by: Shahed Nasser <27354907+shahednasser@users.noreply.github.com>
40195 lines
1.3 MiB
40195 lines
1.3 MiB
openapi: 3.0.0
|
||
info:
|
||
version: 1.0.0
|
||
title: Medusa Admin API
|
||
license:
|
||
name: MIT
|
||
url: https://github.com/medusajs/medusa/blob/master/LICENSE
|
||
servers:
|
||
- url: http://localhost:9000
|
||
- url: https://api.medusa-commerce.com
|
||
tags:
|
||
- name: Apps Oauth
|
||
description: |
|
||
Some plugins may require to authenticate with third-party services and store authentication details, such as the authentication token. To do that, they can create an Oauth provider within the plugin that handles the authentication.
|
||
The Apps Oauth API Routes allows admins to manage and generate token for an app using its oauth provider.
|
||
- name: Auth
|
||
description: |
|
||
Authentication API Routes allow admin users to manage their session, such as login or log out.
|
||
When an admin user is logged in, the cookie header is set indicating the admin's login session.
|
||
externalDocs:
|
||
description: How to implement user profiles
|
||
url: https://docs.medusajs.com/modules/users/admin/manage-profile
|
||
- name: Batch Jobs
|
||
description: |
|
||
A batch job is a task that is performed by the Medusa backend asynchronusly. For example, the Import Product feature is implemented using batch jobs.
|
||
Batch Job API Routes allow admins to manage the batch jobs and their state.
|
||
externalDocs:
|
||
description: How to import products
|
||
url: https://docs.medusajs.com/modules/products/admin/import-products
|
||
- name: Currencies
|
||
description: |
|
||
A store can use unlimited currencies, and each region must be associated with at least one currency.
|
||
Currencies are defined within the Medusa backend. Currency API Routes allow admins to list and update currencies.
|
||
externalDocs:
|
||
description: How to manage currencies
|
||
url: https://docs.medusajs.com/modules/regions-and-currencies/admin/manage-currencies
|
||
- name: Customer Groups
|
||
description: |
|
||
Customer Groups can be used to organize customers that share similar data or attributes into dedicated groups.
|
||
This can be useful for different purposes such as setting a different price for a specific customer group.
|
||
externalDocs:
|
||
description: How to manage customer groups
|
||
url: https://docs.medusajs.com/modules/customers/admin/manage-customer-groups
|
||
- name: Customers
|
||
description: |
|
||
Customers can either be created when they register through the Store APIs, or created by the admin using the Admin APIs.
|
||
externalDocs:
|
||
description: How to manage customers
|
||
url: https://docs.medusajs.com/modules/customers/admin/manage-customers
|
||
- name: Discounts
|
||
description: |
|
||
Admins can create discounts with conditions and rules, providing them with advanced settings for variety of cases.
|
||
The Discount API Routes can be used to manage discounts, their conditions, resources, and more.
|
||
externalDocs:
|
||
description: How to manage discounts
|
||
url: https://docs.medusajs.com/modules/discounts/admin/manage-discounts
|
||
- name: Draft Orders
|
||
description: |
|
||
A draft order is an order created manually by the admin. It allows admins to create orders without direct involvement from the customer.
|
||
externalDocs:
|
||
description: How to manage draft orders
|
||
url: https://docs.medusajs.com/modules/orders/admin/manage-draft-orders
|
||
- name: Gift Cards
|
||
description: |
|
||
Admins can create gift cards and send them directly to customers, specifying options like their balance, region, and more.
|
||
These gift cards are different than the saleable gift cards in a store, which are created and managed through Product API Routes.
|
||
externalDocs:
|
||
description: How to manage gift cards
|
||
url: https://docs.medusajs.com/modules/gift-cards/admin/manage-gift-cards#manage-custom-gift-cards
|
||
- name: Inventory Items
|
||
description: |
|
||
Inventory items, provided by the [Inventory Module](https://docs.medusajs.com/modules/multiwarehouse/inventory-module), can be used to manage the inventory of saleable items in your store.
|
||
externalDocs:
|
||
description: How to manage inventory items
|
||
url: https://docs.medusajs.com/modules/multiwarehouse/admin/manage-inventory-items
|
||
- name: Invites
|
||
description: |
|
||
An admin can invite new users to manage their team. This would allow new users to authenticate as admins and perform admin functionalities.
|
||
externalDocs:
|
||
description: How to manage invites
|
||
url: https://docs.medusajs.com/modules/users/admin/manage-invites
|
||
- name: Notes
|
||
description: |
|
||
Notes are created by admins and can be associated with any resource. For example, an admin can add a note to an order for additional details or remarks.
|
||
- name: Notifications
|
||
description: |
|
||
Notifications are sent to customers to inform them of new updates. For example, a notification can be sent to the customer when their order is place or its state is updated.
|
||
The notification's type, such as an email or SMS, is determined by the notification provider installed on the Medusa backend.
|
||
- name: Order Edits
|
||
description: |
|
||
An admin can edit an order to remove, add, or update an item's quantity. When an admin edits an order, they're stored as an `OrderEdit`.
|
||
externalDocs:
|
||
description: How to edit an order
|
||
url: https://docs.medusajs.com/modules/orders/admin/edit-order
|
||
- name: Orders
|
||
description: |
|
||
Orders are purchases made by customers, typically through a storefront using the Store API. 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.
|
||
externalDocs:
|
||
description: How to manage orders
|
||
url: https://docs.medusajs.com/modules/orders/admin/manage-orders
|
||
- name: Payment Collections
|
||
description: |
|
||
A payment collection is useful for managing additional payments, such as for Order Edits, or installment payments.
|
||
- name: Payments
|
||
description: |
|
||
A payment can be related to an order, swap, return, or more. It can be captured or refunded.
|
||
- name: Price Lists
|
||
description: |
|
||
A price list are special prices applied to products based on a set of conditions, such as customer group.
|
||
externalDocs:
|
||
description: How to manage price lists
|
||
url: https://docs.medusajs.com/modules/price-lists/admin/manage-price-lists
|
||
- name: Product Categories
|
||
description: |
|
||
Products can be categoriezed into categories. A product can be added into more than one category.
|
||
externalDocs:
|
||
description: How to manage product categories
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-categories
|
||
- name: Product Collections
|
||
description: |
|
||
A product collection is used to organize products for different purposes such as marketing or discount purposes. For example, you can create a Summer Collection.
|
||
- name: Product Tags
|
||
description: |
|
||
Product tags are string values created when you create or update a product with a new tag.
|
||
Products can have more than one tag, and products can share tags. This allows admins to associate products to similar tags that can be used to filter products.
|
||
- name: Product Types
|
||
description: |
|
||
Product types are string values created when you create or update a product with a new type.
|
||
Products can have one type, and products can share types. This allows admins to associate products with a type that can be used to filter products.
|
||
- name: Product Variants
|
||
description: |
|
||
Product variants are the actual salable item in your store. Each variant is a combination of the different option values available on the product.
|
||
Product variants can be managed through the Products API Routes.
|
||
externalDocs:
|
||
description: How to manage product variants
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-products#manage-product-variants
|
||
- name: Products
|
||
description: |
|
||
Products are saleable items in a store. This also includes [saleable gift cards](https://docs.medusajs.com/modules/gift-cards/admin/manage-gift-cards#manage-gift-card-product) in a store.
|
||
externalDocs:
|
||
description: How to manage products
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-products
|
||
- name: Publishable API Keys
|
||
description: |
|
||
Publishable API Keys can be used to scope Store API calls with an API key, determining what resources are retrieved when querying the API.
|
||
For example, a publishable API key can be associated with one or more sales channels. When it is passed in the header of a request to the List Product store API Route,
|
||
the sales channels are inferred from the key and only products associated with those sales channels are retrieved.
|
||
Admins can manage publishable API keys and their associated resources. Currently, only Sales Channels are supported as a resource.
|
||
externalDocs:
|
||
description: How to manage publishable API keys
|
||
url: https://docs.medusajs.com/development/publishable-api-keys/admin/manage-publishable-api-keys
|
||
- name: Regions
|
||
description: |
|
||
Regions are different countries or geographical regions that the commerce store serves customers in.
|
||
Admins can manage these regions, their providers, and more.
|
||
externalDocs:
|
||
description: How to manage regions
|
||
url: https://docs.medusajs.com/modules/regions-and-currencies/admin/manage-regions
|
||
- name: Reservations
|
||
description: |
|
||
Reservations, provided by the [Inventory Module](https://docs.medusajs.com/modules/multiwarehouse/inventory-module), are quantities of an item that are reserved, typically when an order is placed but not yet fulfilled.
|
||
Reservations can be associated with any resources, but commonly with line items of an order.
|
||
externalDocs:
|
||
description: How to manage item allocations in orders
|
||
url: https://docs.medusajs.com/modules/multiwarehouse/admin/manage-item-allocations-in-orders
|
||
- name: Return Reasons
|
||
description: |
|
||
Return reasons are key-value pairs that are used to specify why an order return is being created.
|
||
Admins can manage available return reasons, and they can be used by both admins and customers when creating a return.
|
||
externalDocs:
|
||
description: How to manage return reasons
|
||
url: https://docs.medusajs.com/modules/orders/admin/manage-returns#manage-return-reasons
|
||
- name: Returns
|
||
description: |
|
||
A return can be created by a customer or an admin to return items in an order.
|
||
Admins can manage these returns and change their state.
|
||
externalDocs:
|
||
description: How to manage returns
|
||
url: https://docs.medusajs.com/modules/orders/admin/manage-returns
|
||
- name: Sales Channels
|
||
description: |
|
||
A sales channel indicates a channel where products can be sold in. For example, a webshop or a mobile app.
|
||
Admins can manage sales channels and the products available in them.
|
||
externalDocs:
|
||
description: How to manage sales channels
|
||
url: https://docs.medusajs.com/modules/sales-channels/admin/manage
|
||
- name: Shipping Options
|
||
description: |
|
||
A shipping option is used to define the available shipping methods during checkout or when creating a return.
|
||
Admins can create an unlimited number of shipping options, each associated with a shipping profile and fulfillment provider, among other resources.
|
||
externalDocs:
|
||
description: Shipping Option architecture
|
||
url: https://docs.medusajs.com/modules/carts-and-checkout/shipping#shipping-option
|
||
- name: Shipping Profiles
|
||
description: |
|
||
A shipping profile is used to group products that can be shipped in the same manner.
|
||
They are created by the admin and they're not associated with a fulfillment provider.
|
||
externalDocs:
|
||
description: Shipping Profile architecture
|
||
url: https://docs.medusajs.com/modules/carts-and-checkout/shipping#shipping-profile
|
||
- name: Stock Locations
|
||
description: |
|
||
A stock location, provided by the [Stock Location module](https://docs.medusajs.com/modules/multiwarehouse/stock-location-module), indicates a physical address that stock-kept items, such as physical products, can be stored in.
|
||
An admin can create and manage available stock locations.
|
||
externalDocs:
|
||
description: How to manage stock locations.
|
||
url: https://docs.medusajs.com/modules/multiwarehouse/admin/manage-stock-locations
|
||
- name: Store
|
||
description: |
|
||
A store indicates the general configurations and details about the commerce store. By default, there's only one store in the Medusa backend.
|
||
Admins can manage the store and its details or configurations.
|
||
- name: Swaps
|
||
description: |
|
||
A swap is created by a customer or an admin to exchange an item with a new one.
|
||
Creating a swap implicitely includes creating a return for the item being exchanged.
|
||
externalDocs:
|
||
description: How to manage swaps
|
||
url: https://docs.medusajs.com/modules/orders/admin/manage-swaps
|
||
- name: Tax Rates
|
||
description: |
|
||
Each region has at least a default tax rate. Admins can create and manage additional tax rates that can be applied for certain conditions, such as for specific product types.
|
||
externalDocs:
|
||
description: How to manage tax rates
|
||
url: https://docs.medusajs.com/modules/taxes/admin/manage-tax-rates
|
||
- name: Uploads
|
||
description: |
|
||
The upload API Routes are used to upload any type of resources. For example, they can be used to upload CSV files that are used to import products into the store.
|
||
externalDocs:
|
||
description: How to upload CSV file when importing a product.
|
||
url: https://docs.medusajs.com/modules/products/admin/import-products#1-upload-csv-file
|
||
- name: Users
|
||
description: |
|
||
A store can have more than one user, each having the same privileges. Admins can manage users, their passwords, and more.
|
||
externalDocs:
|
||
description: How to manage users
|
||
url: https://docs.medusajs.com/modules/users/admin/manage-users
|
||
paths:
|
||
/admin/apps:
|
||
get:
|
||
operationId: GetApps
|
||
summary: List Applications
|
||
description: Retrieve a list of applications registered in the Medusa backend.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: list
|
||
x-codeSamples:
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/apps' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Apps Oauth
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminAppsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/apps/authorizations:
|
||
post:
|
||
operationId: PostApps
|
||
summary: Generate Token for App
|
||
description: Use an app's Oauth provider to generate and store a new token for authentication.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostAppsReq'
|
||
x-codegen:
|
||
method: authorize
|
||
x-codeSamples:
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/apps/authorizations' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"application_name": "example",
|
||
"state": "ready",
|
||
"code": "token"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Apps Oauth
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminAppsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/auth:
|
||
get:
|
||
operationId: GetAuth
|
||
summary: Get Current User
|
||
x-authenticated: true
|
||
description: Get the currently logged in user's details.
|
||
x-codegen:
|
||
method: getSession
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.auth.getSession()
|
||
.then(({ user }) => {
|
||
console.log(user.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminGetSession } from "medusa-react"
|
||
|
||
const Profile = () => {
|
||
const { user, isLoading } = useAdminGetSession()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{user && <span>{user.email}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Profile
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/auth' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Auth
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminAuthRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostAuth
|
||
summary: User Login
|
||
x-authenticated: false
|
||
description: Log a User in and includes the Cookie session in the response header. The cookie session can be used in subsequent requests to authorize the user to perform admin functionalities. When using Medusa's JS or Medusa React clients, the cookie is automatically attached to subsequent requests.
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostAuthReq'
|
||
x-codegen:
|
||
method: createSession
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
import Medusa from "@medusajs/medusa-js"
|
||
const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||
medusa.admin.auth.createSession({
|
||
email: "user@example.com",
|
||
password: "supersecret"
|
||
})
|
||
.then(({ user }) => {
|
||
console.log(user.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminLogin } from "medusa-react"
|
||
|
||
const Login = () => {
|
||
const adminLogin = useAdminLogin()
|
||
// ...
|
||
|
||
const handleLogin = () => {
|
||
adminLogin.mutate({
|
||
email: "user@example.com",
|
||
password: "supersecret",
|
||
}, {
|
||
onSuccess: ({ user }) => {
|
||
console.log(user)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Login
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/auth' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com",
|
||
"password": "supersecret"
|
||
}'
|
||
tags:
|
||
- Auth
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminAuthRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/incorrect_credentials'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteAuth
|
||
summary: User Logout
|
||
x-authenticated: true
|
||
description: Delete the current session for the logged in user. This will only work if you're using Cookie session for authentication. If the API token is still passed in the header, the user is still authorized to perform admin functionalities in other API Routes.
|
||
x-codegen:
|
||
method: deleteSession
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
import Medusa from "@medusajs/medusa-js"
|
||
const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||
// must be previously logged in
|
||
medusa.admin.auth.deleteSession()
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteSession } from "medusa-react"
|
||
|
||
const Logout = () => {
|
||
const adminLogout = useAdminDeleteSession()
|
||
// ...
|
||
|
||
const handleLogout = () => {
|
||
adminLogout.mutate(undefined, {
|
||
onSuccess: () => {
|
||
// user logged out.
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Logout
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/auth' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Auth
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/auth/token:
|
||
post:
|
||
operationId: PostToken
|
||
summary: User Login (JWT)
|
||
x-authenticated: false
|
||
description: After a successful login, a JWT token is returned, which can be used to send authenticated requests.
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostAuthReq'
|
||
x-codegen:
|
||
method: getToken
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
import Medusa from "@medusajs/medusa-js"
|
||
const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||
medusa.admin.auth.getToken({
|
||
email: 'user@example.com',
|
||
password: 'supersecret'
|
||
})
|
||
.then(({ access_token }) => {
|
||
console.log(access_token);
|
||
})
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/auth/token' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com",
|
||
"password": "supersecret"
|
||
}'
|
||
tags:
|
||
- Auth
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminBearerAuthRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/incorrect_credentials'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/batch-jobs:
|
||
get:
|
||
operationId: GetBatchJobs
|
||
summary: List Batch Jobs
|
||
description: Retrieve a list of Batch Jobs. The batch jobs can be filtered by fields such as `type` or `confirmed_at`. The batch jobs can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of batch jobs returned.
|
||
schema:
|
||
type: integer
|
||
default: 10
|
||
- in: query
|
||
name: offset
|
||
description: The number of batch jobs to skip when retrieving the batch jobs.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by the batch ID
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: batch job ID
|
||
- type: array
|
||
description: multiple batch job IDs
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: type
|
||
style: form
|
||
explode: false
|
||
description: Filter by the batch type
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: confirmed_at
|
||
style: form
|
||
explode: false
|
||
description: Filter by a confirmation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: pre_processed_at
|
||
style: form
|
||
explode: false
|
||
description: Filter by a pre-processing date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: completed_at
|
||
style: form
|
||
explode: false
|
||
description: Filter by a completion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: failed_at
|
||
style: form
|
||
explode: false
|
||
description: Filter by a failure date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: canceled_at
|
||
style: form
|
||
explode: false
|
||
description: Filter by a cancelation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: order
|
||
description: A batch-job field to sort-order the retrieved batch jobs by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned batch jobs.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned batch jobs.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
style: form
|
||
explode: false
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
style: form
|
||
explode: false
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetBatchParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.batchJobs.list()
|
||
.then(({ batch_jobs, limit, offset, count }) => {
|
||
console.log(batch_jobs.length)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminBatchJobs } from "medusa-react"
|
||
|
||
const BatchJobs = () => {
|
||
const {
|
||
batch_jobs,
|
||
limit,
|
||
offset,
|
||
count,
|
||
isLoading
|
||
} = useAdminBatchJobs()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{batch_jobs?.length && (
|
||
<ul>
|
||
{batch_jobs.map((batchJob) => (
|
||
<li key={batchJob.id}>
|
||
{batchJob.id}
|
||
</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default BatchJobs
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/batch-jobs' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Batch Jobs
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminBatchJobListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostBatchJobs
|
||
summary: Create a Batch Job
|
||
description: Create a Batch Job to be executed asynchronously in the Medusa backend. If `dry_run` is set to `true`, the batch job will not be executed until the it is confirmed, which can be done using the Confirm Batch Job API Route.
|
||
externalDocs:
|
||
description: How to create a batch job
|
||
url: https://docs.medusajs.com/development/batch-jobs/create#create-batch-job
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostBatchesReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.batchJobs.create({
|
||
type: 'product-export',
|
||
context: {},
|
||
dry_run: false
|
||
}).then((({ batch_job }) => {
|
||
console.log(batch_job.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateBatchJob } from "medusa-react"
|
||
|
||
const CreateBatchJob = () => {
|
||
const createBatchJob = useAdminCreateBatchJob()
|
||
// ...
|
||
|
||
const handleCreateBatchJob = () => {
|
||
createBatchJob.mutate({
|
||
type: "publish-products",
|
||
context: {},
|
||
dry_run: true
|
||
}, {
|
||
onSuccess: ({ batch_job }) => {
|
||
console.log(batch_job)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateBatchJob
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/batch-jobs' \
|
||
-H 'Content-Type: application/json' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
--data-raw '{
|
||
"type": "product-export",
|
||
"context": { }
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Batch Jobs
|
||
responses:
|
||
'201':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminBatchJobRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/batch-jobs/{id}:
|
||
get:
|
||
operationId: GetBatchJobsBatchJob
|
||
summary: Get a Batch Job
|
||
description: Retrieve the details of a batch job.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Batch Job
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.batchJobs.retrieve(batchJobId)
|
||
.then(({ batch_job }) => {
|
||
console.log(batch_job.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminBatchJob } from "medusa-react"
|
||
|
||
type Props = {
|
||
batchJobId: string
|
||
}
|
||
|
||
const BatchJob = ({ batchJobId }: Props) => {
|
||
const { batch_job, isLoading } = useAdminBatchJob(batchJobId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{batch_job && <span>{batch_job.created_by}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default BatchJob
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/batch-jobs/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Batch Jobs
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminBatchJobRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/batch-jobs/{id}/cancel:
|
||
post:
|
||
operationId: PostBatchJobsBatchJobCancel
|
||
summary: Cancel a Batch Job
|
||
description: Mark a batch job as canceled. When a batch job is canceled, the processing of the batch job doesn’t automatically stop.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the batch job.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancel
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.batchJobs.cancel(batchJobId)
|
||
.then(({ batch_job }) => {
|
||
console.log(batch_job.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelBatchJob } from "medusa-react"
|
||
|
||
type Props = {
|
||
batchJobId: string
|
||
}
|
||
|
||
const BatchJob = ({ batchJobId }: Props) => {
|
||
const cancelBatchJob = useAdminCancelBatchJob(batchJobId)
|
||
// ...
|
||
|
||
const handleCancel = () => {
|
||
cancelBatchJob.mutate(undefined, {
|
||
onSuccess: ({ batch_job }) => {
|
||
console.log(batch_job)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default BatchJob
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/batch-jobs/{id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Batch Jobs
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminBatchJobRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/batch-jobs/{id}/confirm:
|
||
post:
|
||
operationId: PostBatchJobsBatchJobConfirmProcessing
|
||
summary: Confirm a Batch Job
|
||
description: When a batch job is created, it is not executed automatically if `dry_run` is set to `true`. This API Route confirms that the batch job should be executed.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the batch job.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: confirm
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.batchJobs.confirm(batchJobId)
|
||
.then(({ batch_job }) => {
|
||
console.log(batch_job.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminConfirmBatchJob } from "medusa-react"
|
||
|
||
type Props = {
|
||
batchJobId: string
|
||
}
|
||
|
||
const BatchJob = ({ batchJobId }: Props) => {
|
||
const confirmBatchJob = useAdminConfirmBatchJob(batchJobId)
|
||
// ...
|
||
|
||
const handleConfirm = () => {
|
||
confirmBatchJob.mutate(undefined, {
|
||
onSuccess: ({ batch_job }) => {
|
||
console.log(batch_job)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default BatchJob
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/batch-jobs/{id}/confirm' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Batch Jobs
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminBatchJobRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/collections:
|
||
get:
|
||
operationId: GetCollections
|
||
summary: List Collections
|
||
description: Retrieve a list of Product Collection. The product collections can be filtered by fields such as `handle` or `title`. The collections can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: The number of collections to return.
|
||
schema:
|
||
type: integer
|
||
default: 10
|
||
- in: query
|
||
name: offset
|
||
description: The number of collections to skip when retrieving the collections.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: title
|
||
description: Filter collections by their title.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: handle
|
||
description: Filter collections by their handle.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: a term to search collections by their title or handle.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A field to sort-order the retrieved collections by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: discount_condition_id
|
||
description: Filter collections by a discount condition ID associated with them.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetCollectionsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.collections.list()
|
||
.then(({ collections, limit, offset, count }) => {
|
||
console.log(collections.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCollections } from "medusa-react"
|
||
|
||
const Collections = () => {
|
||
const { collections, isLoading } = useAdminCollections()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{collections && !collections.length && <span>
|
||
No Product Collections
|
||
</span>}
|
||
{collections && collections.length > 0 && (
|
||
<ul>
|
||
{collections.map((collection) => (
|
||
<li key={collection.id}>{collection.title}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Collections
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/collections' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCollectionsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostCollections
|
||
summary: Create a Collection
|
||
description: Create a Product Collection.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCollectionsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.collections.create({
|
||
title: "New Collection"
|
||
})
|
||
.then(({ collection }) => {
|
||
console.log(collection.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateCollection } from "medusa-react"
|
||
|
||
const CreateCollection = () => {
|
||
const createCollection = useAdminCreateCollection()
|
||
// ...
|
||
|
||
const handleCreate = (title: string) => {
|
||
createCollection.mutate({
|
||
title
|
||
}, {
|
||
onSuccess: ({ collection }) => {
|
||
console.log(collection.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateCollection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/collections' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "New Collection"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCollectionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/collections/{id}:
|
||
get:
|
||
operationId: GetCollectionsCollection
|
||
summary: Get a Collection
|
||
description: Retrieve a Product Collection by its ID. The products associated with it are expanded and returned as well.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product Collection
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.collections.retrieve(collectionId)
|
||
.then(({ collection }) => {
|
||
console.log(collection.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
collectionId: string
|
||
}
|
||
|
||
const Collection = ({ collectionId }: Props) => {
|
||
const { collection, isLoading } = useAdminCollection(collectionId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{collection && <span>{collection.title}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Collection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/collections/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCollectionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostCollectionsCollection
|
||
summary: Update a Collection
|
||
description: Update a Product Collection's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Collection.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCollectionsCollectionReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.collections.update(collectionId, {
|
||
title: "New Collection"
|
||
})
|
||
.then(({ collection }) => {
|
||
console.log(collection.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
collectionId: string
|
||
}
|
||
|
||
const Collection = ({ collectionId }: Props) => {
|
||
const updateCollection = useAdminUpdateCollection(collectionId)
|
||
// ...
|
||
|
||
const handleUpdate = (title: string) => {
|
||
updateCollection.mutate({
|
||
title
|
||
}, {
|
||
onSuccess: ({ collection }) => {
|
||
console.log(collection.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Collection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/collections/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "New Collection"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCollectionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteCollectionsCollection
|
||
summary: Delete a Collection
|
||
description: Delete a Product Collection. This does not delete associated products.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Collection.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.collections.delete(collectionId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
collectionId: string
|
||
}
|
||
|
||
const Collection = ({ collectionId }: Props) => {
|
||
const deleteCollection = useAdminDeleteCollection(collectionId)
|
||
// ...
|
||
|
||
const handleDelete = (title: string) => {
|
||
deleteCollection.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Collection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/collections/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCollectionsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/collections/{id}/products/batch:
|
||
post:
|
||
operationId: PostProductsToCollection
|
||
summary: Add Products to Collection
|
||
description: Add products to a product collection.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the product collection.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsToCollectionReq'
|
||
x-codegen:
|
||
method: addProducts
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.collections.addProducts(collectionId, {
|
||
product_ids: [
|
||
productId1,
|
||
productId2
|
||
]
|
||
})
|
||
.then(({ collection }) => {
|
||
console.log(collection.products)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminAddProductsToCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
collectionId: string
|
||
}
|
||
|
||
const Collection = ({ collectionId }: Props) => {
|
||
const addProducts = useAdminAddProductsToCollection(collectionId)
|
||
// ...
|
||
|
||
const handleAddProducts = (productIds: string[]) => {
|
||
addProducts.mutate({
|
||
product_ids: productIds
|
||
}, {
|
||
onSuccess: ({ collection }) => {
|
||
console.log(collection.products)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Collection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/collections/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_ids": [
|
||
"prod_01G1G5V2MBA328390B5AXJ610F"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCollectionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteProductsFromCollection
|
||
summary: Remove Products from Collection
|
||
description: Remove a list of products from a collection. This would not delete the product, only the association between the product and the collection.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product Collection.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteProductsFromCollectionReq'
|
||
x-codegen:
|
||
method: removeProducts
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.collections.removeProducts(collectionId, {
|
||
product_ids: [
|
||
productId1,
|
||
productId2
|
||
]
|
||
})
|
||
.then(({ id, object, removed_products }) => {
|
||
console.log(removed_products)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRemoveProductsFromCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
collectionId: string
|
||
}
|
||
|
||
const Collection = ({ collectionId }: Props) => {
|
||
const removeProducts = useAdminRemoveProductsFromCollection(collectionId)
|
||
// ...
|
||
|
||
const handleRemoveProducts = (productIds: string[]) => {
|
||
removeProducts.mutate({
|
||
product_ids: productIds
|
||
}, {
|
||
onSuccess: ({ id, object, removed_products }) => {
|
||
console.log(removed_products)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Collection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/collections/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_ids": [
|
||
"prod_01G1G5V2MBA328390B5AXJ610F"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteProductsFromCollectionRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/currencies:
|
||
get:
|
||
operationId: GetCurrencies
|
||
summary: List Currency
|
||
description: Retrieve a list of currencies. The currencies can be filtered by fields such as `code`. The currencies can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: code
|
||
description: filter by currency code.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: includes_tax
|
||
description: filter currencies by whether they include taxes or not.
|
||
schema:
|
||
type: boolean
|
||
x-featureFlag: tax_inclusive_pricing
|
||
- in: query
|
||
name: order
|
||
description: A field to sort order the retrieved currencies by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: Term used to search currencies' name and code.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: offset
|
||
description: The number of currencies to skip when retrieving the currencies.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: limit
|
||
description: The number of currencies to return.
|
||
schema:
|
||
type: number
|
||
default: '20'
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetCurrenciesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.currencies.list()
|
||
.then(({ currencies, count, offset, limit }) => {
|
||
console.log(currencies.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCurrencies } from "medusa-react"
|
||
|
||
const Currencies = () => {
|
||
const { currencies, isLoading } = useAdminCurrencies()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{currencies && !currencies.length && (
|
||
<span>No Currencies</span>
|
||
)}
|
||
{currencies && currencies.length > 0 && (
|
||
<ul>
|
||
{currencies.map((currency) => (
|
||
<li key={currency.code}>{currency.name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Currencies
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/currencies' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Currencies
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCurrenciesListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/currencies/{code}:
|
||
post:
|
||
operationId: PostCurrenciesCurrency
|
||
summary: Update a Currency
|
||
description: Update a Currency's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: code
|
||
required: true
|
||
description: The code of the Currency.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCurrenciesCurrencyReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.currencies.update(code, {
|
||
includes_tax: true
|
||
})
|
||
.then(({ currency }) => {
|
||
console.log(currency.code);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateCurrency } from "medusa-react"
|
||
|
||
type Props = {
|
||
currencyCode: string
|
||
}
|
||
|
||
const Currency = ({ currencyCode }: Props) => {
|
||
const updateCurrency = useAdminUpdateCurrency(currencyCode)
|
||
// ...
|
||
|
||
const handleUpdate = (includes_tax: boolean) => {
|
||
updateCurrency.mutate({
|
||
includes_tax,
|
||
}, {
|
||
onSuccess: ({ currency }) => {
|
||
console.log(currency)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Currency
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/currencies/{code}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"includes_tax": true
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Currencies
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCurrenciesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/customer-groups:
|
||
get:
|
||
operationId: GetCustomerGroups
|
||
summary: List Customer Groups
|
||
description: Retrieve a list of customer groups. The customer groups can be filtered by fields such as `name` or `id. The customer groups can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: term to search customer groups by name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: offset
|
||
description: The number of customer groups to skip when retrieving the customer groups.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: order
|
||
description: A field to sort order the retrieved customer groups by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: discount_condition_id
|
||
description: Filter by discount condition ID.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by the customer group ID
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: customer group ID
|
||
- type: array
|
||
description: an array of customer group IDs
|
||
items:
|
||
type: string
|
||
- type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by IDs less than this ID
|
||
gt:
|
||
type: string
|
||
description: filter by IDs greater than this ID
|
||
lte:
|
||
type: string
|
||
description: filter by IDs less than or equal to this ID
|
||
gte:
|
||
type: string
|
||
description: filter by IDs greater than or equal to this ID
|
||
- in: query
|
||
name: name
|
||
style: form
|
||
explode: false
|
||
description: Filter by the customer group name
|
||
schema:
|
||
type: array
|
||
description: an array of customer group names
|
||
items:
|
||
type: string
|
||
description: customer group name
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: limit
|
||
description: The number of customer groups to return.
|
||
schema:
|
||
type: integer
|
||
default: 10
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned customer groups.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned customer groups.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetCustomerGroupsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.list()
|
||
.then(({ customer_groups, limit, offset, count }) => {
|
||
console.log(customer_groups.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCustomerGroups } from "medusa-react"
|
||
|
||
const CustomerGroups = () => {
|
||
const {
|
||
customer_groups,
|
||
isLoading,
|
||
} = useAdminCustomerGroups()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{customer_groups && !customer_groups.length && (
|
||
<span>No Customer Groups</span>
|
||
)}
|
||
{customer_groups && customer_groups.length > 0 && (
|
||
<ul>
|
||
{customer_groups.map(
|
||
(customerGroup) => (
|
||
<li key={customerGroup.id}>
|
||
{customerGroup.name}
|
||
</li>
|
||
)
|
||
)}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default CustomerGroups
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/customer-groups' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomerGroupsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostCustomerGroups
|
||
summary: Create a Customer Group
|
||
description: Create a Customer Group.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCustomerGroupsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.create({
|
||
name: "VIP"
|
||
})
|
||
.then(({ customer_group }) => {
|
||
console.log(customer_group.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateCustomerGroup } from "medusa-react"
|
||
|
||
const CreateCustomerGroup = () => {
|
||
const createCustomerGroup = useAdminCreateCustomerGroup()
|
||
// ...
|
||
|
||
const handleCreate = (name: string) => {
|
||
createCustomerGroup.mutate({
|
||
name,
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateCustomerGroup
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/customer-groups' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "VIP"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomerGroupsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/customer-groups/{id}:
|
||
get:
|
||
operationId: GetCustomerGroupsGroup
|
||
summary: Get a Customer Group
|
||
description: Retrieve a Customer Group by its ID. You can expand the customer group's relations or select the fields that should be returned.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Customer Group.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned customer group.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned customer group.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetCustomerGroupsGroupParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.retrieve(customerGroupId)
|
||
.then(({ customer_group }) => {
|
||
console.log(customer_group.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCustomerGroup } from "medusa-react"
|
||
|
||
type Props = {
|
||
customerGroupId: string
|
||
}
|
||
|
||
const CustomerGroup = ({ customerGroupId }: Props) => {
|
||
const { customer_group, isLoading } = useAdminCustomerGroup(
|
||
customerGroupId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{customer_group && <span>{customer_group.name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default CustomerGroup
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/customer-groups/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomerGroupsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostCustomerGroupsGroup
|
||
summary: Update a Customer Group
|
||
description: Update a Customer Group's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the customer group.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCustomerGroupsGroupReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.update(customerGroupId, {
|
||
name: "VIP"
|
||
})
|
||
.then(({ customer_group }) => {
|
||
console.log(customer_group.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateCustomerGroup } from "medusa-react"
|
||
|
||
type Props = {
|
||
customerGroupId: string
|
||
}
|
||
|
||
const CustomerGroup = ({ customerGroupId }: Props) => {
|
||
const updateCustomerGroup = useAdminUpdateCustomerGroup(
|
||
customerGroupId
|
||
)
|
||
// ..
|
||
|
||
const handleUpdate = (name: string) => {
|
||
updateCustomerGroup.mutate({
|
||
name,
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CustomerGroup
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/customer-groups/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "VIP"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomerGroupsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteCustomerGroupsCustomerGroup
|
||
summary: Delete a Customer Group
|
||
description: Delete a customer group. This doesn't delete the customers associated with the customer group.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Customer Group
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.delete(customerGroupId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteCustomerGroup } from "medusa-react"
|
||
|
||
type Props = {
|
||
customerGroupId: string
|
||
}
|
||
|
||
const CustomerGroup = ({ customerGroupId }: Props) => {
|
||
const deleteCustomerGroup = useAdminDeleteCustomerGroup(
|
||
customerGroupId
|
||
)
|
||
// ...
|
||
|
||
const handleDeleteCustomerGroup = () => {
|
||
deleteCustomerGroup.mutate()
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CustomerGroup
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/customer-groups/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomerGroupsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/customer-groups/{id}/customers:
|
||
get:
|
||
operationId: GetCustomerGroupsGroupCustomers
|
||
summary: List Customers
|
||
description: Retrieve a list of customers in a customer group. The customers can be filtered by the `q` field. The customers can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the customer group.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: limit
|
||
description: The number of customers to return.
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
- in: query
|
||
name: offset
|
||
description: The number of customers to skip when retrieving the customers.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned customers.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: a term to search customers by email, first_name, and last_name.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: listCustomers
|
||
queryParams: AdminGetGroupsGroupCustomersParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.listCustomers(customerGroupId)
|
||
.then(({ customers }) => {
|
||
console.log(customers.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCustomerGroupCustomers } from "medusa-react"
|
||
|
||
type Props = {
|
||
customerGroupId: string
|
||
}
|
||
|
||
const CustomerGroup = ({ customerGroupId }: Props) => {
|
||
const {
|
||
customers,
|
||
isLoading,
|
||
} = useAdminCustomerGroupCustomers(
|
||
customerGroupId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{customers && !customers.length && (
|
||
<span>No customers</span>
|
||
)}
|
||
{customers && customers.length > 0 && (
|
||
<ul>
|
||
{customers.map((customer) => (
|
||
<li key={customer.id}>{customer.first_name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default CustomerGroup
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/customer-groups/{id}/customers' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomersListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/customer-groups/{id}/customers/batch:
|
||
post:
|
||
operationId: PostCustomerGroupsGroupCustomersBatch
|
||
summary: Add Customers to Group
|
||
description: Add a list of customers to a customer group.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the customer group.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCustomerGroupsGroupCustomersBatchReq'
|
||
x-codegen:
|
||
method: addCustomers
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.addCustomers(customerGroupId, {
|
||
customer_ids: [
|
||
{
|
||
id: customerId
|
||
}
|
||
]
|
||
})
|
||
.then(({ customer_group }) => {
|
||
console.log(customer_group.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminAddCustomersToCustomerGroup,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
customerGroupId: string
|
||
}
|
||
|
||
const CustomerGroup = ({ customerGroupId }: Props) => {
|
||
const addCustomers = useAdminAddCustomersToCustomerGroup(
|
||
customerGroupId
|
||
)
|
||
// ...
|
||
|
||
const handleAddCustomers= (customerId: string) => {
|
||
addCustomers.mutate({
|
||
customer_ids: [
|
||
{
|
||
id: customerId,
|
||
},
|
||
],
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CustomerGroup
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/customer-groups/{id}/customers/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"customer_ids": [
|
||
{
|
||
"id": "cus_01G2Q4BS9GAHDBMDEN4ZQZCJB2"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomerGroupsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteCustomerGroupsGroupCustomerBatch
|
||
summary: Remove Customers from Group
|
||
description: Remove a list of customers from a customer group. This doesn't delete the customer, only the association between the customer and the customer group.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the customer group.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteCustomerGroupsGroupCustomerBatchReq'
|
||
x-codegen:
|
||
method: removeCustomers
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customerGroups.removeCustomers(customerGroupId, {
|
||
customer_ids: [
|
||
{
|
||
id: customerId
|
||
}
|
||
]
|
||
})
|
||
.then(({ customer_group }) => {
|
||
console.log(customer_group.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRemoveCustomersFromCustomerGroup,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
customerGroupId: string
|
||
}
|
||
|
||
const CustomerGroup = ({ customerGroupId }: Props) => {
|
||
const removeCustomers =
|
||
useAdminRemoveCustomersFromCustomerGroup(
|
||
customerGroupId
|
||
)
|
||
// ...
|
||
|
||
const handleRemoveCustomer = (customerId: string) => {
|
||
removeCustomers.mutate({
|
||
customer_ids: [
|
||
{
|
||
id: customerId,
|
||
},
|
||
],
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CustomerGroup
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/customer-groups/{id}/customers/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"customer_ids": [
|
||
{
|
||
"id": "cus_01G2Q4BS9GAHDBMDEN4ZQZCJB2"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customer Groups
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomerGroupsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/customers:
|
||
get:
|
||
operationId: GetCustomers
|
||
summary: List Customers
|
||
description: Retrieve a list of Customers. The customers can be filtered by fields such as `q` or `groups`. The customers can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: The number of customers to return.
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
- in: query
|
||
name: offset
|
||
description: The number of customers to skip when retrieving the customers.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned customers.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned customers.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: term to search customers' email, first_name, and last_name fields.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: has_account
|
||
description: Filter customers by whether they have an account.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: order
|
||
description: A field to sort-order the retrieved customers by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: groups
|
||
style: form
|
||
explode: false
|
||
description: Filter by customer group IDs.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetCustomersParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customers.list()
|
||
.then(({ customers, limit, offset, count }) => {
|
||
console.log(customers.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCustomers } from "medusa-react"
|
||
|
||
const Customers = () => {
|
||
const { customers, isLoading } = useAdminCustomers()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{customers && !customers.length && (
|
||
<span>No customers</span>
|
||
)}
|
||
{customers && customers.length > 0 && (
|
||
<ul>
|
||
{customers.map((customer) => (
|
||
<li key={customer.id}>{customer.first_name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Customers
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/customers' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customers
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomersListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostCustomers
|
||
summary: Create a Customer
|
||
description: Create a customer as an admin.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCustomersReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customers.create({
|
||
email: "user@example.com",
|
||
first_name: "Caterina",
|
||
last_name: "Yost",
|
||
password: "supersecret"
|
||
})
|
||
.then(({ customer }) => {
|
||
console.log(customer.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateCustomer } from "medusa-react"
|
||
|
||
type CustomerData = {
|
||
first_name: string
|
||
last_name: string
|
||
email: string
|
||
password: string
|
||
}
|
||
|
||
const CreateCustomer = () => {
|
||
const createCustomer = useAdminCreateCustomer()
|
||
// ...
|
||
|
||
const handleCreate = (customerData: CustomerData) => {
|
||
createCustomer.mutate(customerData, {
|
||
onSuccess: ({ customer }) => {
|
||
console.log(customer.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateCustomer
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/customers' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com",
|
||
"first_name": "Caterina",
|
||
"last_name": "Yost",
|
||
"password": "supersecret"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customers
|
||
responses:
|
||
'201':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/customers/{id}:
|
||
get:
|
||
operationId: GetCustomersCustomer
|
||
summary: Get a Customer
|
||
description: Retrieve the details of a customer.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Customer.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned customer.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned customer.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customers.retrieve(customerId)
|
||
.then(({ customer }) => {
|
||
console.log(customer.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCustomer } from "medusa-react"
|
||
|
||
type Props = {
|
||
customerId: string
|
||
}
|
||
|
||
const Customer = ({ customerId }: Props) => {
|
||
const { customer, isLoading } = useAdminCustomer(
|
||
customerId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{customer && <span>{customer.first_name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Customer
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/customers/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customers
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostCustomersCustomer
|
||
summary: Update a Customer
|
||
description: Update a Customer's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Customer.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned customer.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be retrieved in the returned customer.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostCustomersCustomerReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.customers.update(customerId, {
|
||
first_name: "Dolly"
|
||
})
|
||
.then(({ customer }) => {
|
||
console.log(customer.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateCustomer } from "medusa-react"
|
||
|
||
type CustomerData = {
|
||
first_name: string
|
||
last_name: string
|
||
email: string
|
||
password: string
|
||
}
|
||
|
||
type Props = {
|
||
customerId: string
|
||
}
|
||
|
||
const Customer = ({ customerId }: Props) => {
|
||
const updateCustomer = useAdminUpdateCustomer(customerId)
|
||
// ...
|
||
|
||
const handleUpdate = (customerData: CustomerData) => {
|
||
updateCustomer.mutate(customerData)
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Customer
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/customers/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"first_name": "Dolly"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Customers
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCustomersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts:
|
||
get:
|
||
operationId: GetDiscounts
|
||
summary: List Discounts
|
||
x-authenticated: true
|
||
description: Retrieve a list of Discounts. The discounts can be filtered by fields such as `rule` or `is_dynamic`. The discounts can also be paginated.
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: term to search discounts' code field.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: rule
|
||
description: Filter discounts by rule fields.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- fixed
|
||
- percentage
|
||
- free_shipping
|
||
description: Filter discounts by type.
|
||
allocation:
|
||
type: string
|
||
enum:
|
||
- total
|
||
- item
|
||
description: Filter discounts by allocation type.
|
||
- in: query
|
||
name: is_dynamic
|
||
description: Filter discounts by whether they're dynamic or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: is_disabled
|
||
description: Filter discounts by whether they're disabled or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: limit
|
||
description: The number of discounts to return
|
||
schema:
|
||
type: number
|
||
default: '20'
|
||
- in: query
|
||
name: offset
|
||
description: The number of discounts to skip when retrieving the discounts.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in each returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A discount field to sort-order the retrieved discounts by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetDiscountsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.list()
|
||
.then(({ discounts, limit, offset, count }) => {
|
||
console.log(discounts.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDiscounts } from "medusa-react"
|
||
|
||
const Discounts = () => {
|
||
const { discounts, isLoading } = useAdminDiscounts()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{discounts && !discounts.length && (
|
||
<span>No customers</span>
|
||
)}
|
||
{discounts && discounts.length > 0 && (
|
||
<ul>
|
||
{discounts.map((discount) => (
|
||
<li key={discount.id}>{discount.code}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Discounts
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/discounts' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostDiscounts
|
||
summary: Create a Discount
|
||
x-authenticated: true
|
||
description: Create a Discount with a given set of rules that defines how the Discount is applied.
|
||
parameters:
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be retrieved in the returned discount.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDiscountsReq'
|
||
x-codegen:
|
||
method: create
|
||
queryParams: AdminPostDiscountsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
import Medusa from "@medusajs/medusa-js"
|
||
import { AllocationType, DiscountRuleType } from "@medusajs/medusa"
|
||
const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||
// must be previously logged in or use api token
|
||
medusa.admin.discounts.create({
|
||
code: "TEST",
|
||
rule: {
|
||
type: DiscountRuleType.FIXED,
|
||
value: 10,
|
||
allocation: AllocationType.ITEM
|
||
},
|
||
regions: ["reg_XXXXXXXX"],
|
||
is_dynamic: false,
|
||
is_disabled: false
|
||
})
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminCreateDiscount,
|
||
} from "medusa-react"
|
||
import {
|
||
AllocationType,
|
||
DiscountRuleType,
|
||
} from "@medusajs/medusa"
|
||
|
||
const CreateDiscount = () => {
|
||
const createDiscount = useAdminCreateDiscount()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
currencyCode: string,
|
||
regionId: string
|
||
) => {
|
||
// ...
|
||
createDiscount.mutate({
|
||
code: currencyCode,
|
||
rule: {
|
||
type: DiscountRuleType.FIXED,
|
||
value: 10,
|
||
allocation: AllocationType.ITEM,
|
||
},
|
||
regions: [
|
||
regionId,
|
||
],
|
||
is_dynamic: false,
|
||
is_disabled: false,
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateDiscount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/discounts' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"code": "TEST",
|
||
"rule": {
|
||
"type": "fixed",
|
||
"value": 10,
|
||
"allocation": "item"
|
||
},
|
||
"regions": ["reg_XXXXXXXX"]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/code/{code}:
|
||
get:
|
||
operationId: GetDiscountsDiscountCode
|
||
summary: Get Discount by Code
|
||
description: Retrieve a Discount's details by its discount code
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: code
|
||
required: true
|
||
description: The code of the Discount
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieveByCode
|
||
queryParams: AdminGetDiscountsDiscountCodeParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.retrieveByCode(code)
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminGetDiscountByCode } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountCode: string
|
||
}
|
||
|
||
const Discount = ({ discountCode }: Props) => {
|
||
const { discount, isLoading } = useAdminGetDiscountByCode(
|
||
discountCode
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{discount && <span>{discount.code}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/discounts/code/{code}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/{discount_id}/conditions:
|
||
post:
|
||
operationId: PostDiscountsDiscountConditions
|
||
summary: Create a Condition
|
||
description: Create a Discount Condition. Only one of `products`, `product_types`, `product_collections`, `product_tags`, and `customer_groups` should be provided, based on the type of discount condition. For example, if the discount condition's type is `products`, the `products` field should be provided in the request body.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: discount_id
|
||
required: true
|
||
description: The ID of the discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDiscountsDiscountConditions'
|
||
x-codegen:
|
||
method: createCondition
|
||
queryParams: AdminPostDiscountsDiscountConditionsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
import Medusa from "@medusajs/medusa-js"
|
||
import { DiscountConditionOperator } from "@medusajs/medusa"
|
||
const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||
// must be previously logged in or use api token
|
||
medusa.admin.discounts.createCondition(discountId, {
|
||
operator: DiscountConditionOperator.IN,
|
||
products: [productId]
|
||
})
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { DiscountConditionOperator } from "@medusajs/medusa"
|
||
import { useAdminDiscountCreateCondition } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const createCondition = useAdminDiscountCreateCondition(discountId)
|
||
// ...
|
||
|
||
const handleCreateCondition = (
|
||
operator: DiscountConditionOperator,
|
||
products: string[]
|
||
) => {
|
||
createCondition.mutate({
|
||
operator,
|
||
products
|
||
}, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/discounts/{id}/conditions' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"operator": "in"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/{discount_id}/conditions/{condition_id}:
|
||
get:
|
||
operationId: GetDiscountsDiscountConditionsCondition
|
||
summary: Get a Condition
|
||
description: Retrieve a Discount Condition's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: discount_id
|
||
required: true
|
||
description: The ID of the Discount.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: condition_id
|
||
required: true
|
||
description: The ID of the Discount Condition.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount condition.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount condition.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: getCondition
|
||
queryParams: AdminGetDiscountsDiscountConditionsConditionParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.getCondition(discountId, conditionId)
|
||
.then(({ discount_condition }) => {
|
||
console.log(discount_condition.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminGetDiscountCondition } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
discountConditionId: string
|
||
}
|
||
|
||
const DiscountCondition = ({
|
||
discountId,
|
||
discountConditionId
|
||
}: Props) => {
|
||
const {
|
||
discount_condition,
|
||
isLoading
|
||
} = useAdminGetDiscountCondition(
|
||
discountId,
|
||
discountConditionId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{discount_condition && (
|
||
<span>{discount_condition.type}</span>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default DiscountCondition
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/discounts/{id}/conditions/{condition_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountConditionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostDiscountsDiscountConditionsCondition
|
||
summary: Update a Condition
|
||
description: Update a Discount Condition. Only one of `products`, `product_types`, `product_collections`, `product_tags`, and `customer_groups` should be provided, based on the type of discount condition. For example, if the discount condition's type is `products`, the `products` field should be provided in the request body.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: discount_id
|
||
required: true
|
||
description: The ID of the Discount.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: condition_id
|
||
required: true
|
||
description: The ID of the Discount Condition.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDiscountsDiscountConditionsCondition'
|
||
x-codegen:
|
||
method: updateCondition
|
||
queryParams: AdminPostDiscountsDiscountConditionsConditionParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.updateCondition(discountId, conditionId, {
|
||
products: [
|
||
productId
|
||
]
|
||
})
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDiscountUpdateCondition } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
conditionId: string
|
||
}
|
||
|
||
const DiscountCondition = ({
|
||
discountId,
|
||
conditionId
|
||
}: Props) => {
|
||
const update = useAdminDiscountUpdateCondition(
|
||
discountId,
|
||
conditionId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
products: string[]
|
||
) => {
|
||
update.mutate({
|
||
products
|
||
}, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DiscountCondition
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/discounts/{id}/conditions/{condition}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"products": [
|
||
"prod_01G1G5V2MBA328390B5AXJ610F"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteDiscountsDiscountConditionsCondition
|
||
summary: Delete a Condition
|
||
description: Delete a Discount Condition. This does not delete resources associated to the discount condition.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: discount_id
|
||
required: true
|
||
description: The ID of the Discount
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: condition_id
|
||
required: true
|
||
description: The ID of the Discount Condition
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteCondition
|
||
queryParams: AdminDeleteDiscountsDiscountConditionsConditionParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.deleteCondition(discountId, conditionId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminDiscountRemoveCondition
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const deleteCondition = useAdminDiscountRemoveCondition(
|
||
discountId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = (
|
||
conditionId: string
|
||
) => {
|
||
deleteCondition.mutate(conditionId, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(deleted)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/discounts/{id}/conditions/{condition_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountConditionsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/{discount_id}/conditions/{condition_id}/batch:
|
||
post:
|
||
operationId: PostDiscountsDiscountConditionsConditionBatch
|
||
summary: Add Batch Resources
|
||
description: Add a batch of resources to a discount condition. The type of resource depends on the type of discount condition. For example, if the discount condition's type is `products`, the resources being added should be products.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: discount_id
|
||
required: true
|
||
description: The ID of the discount the condition belongs to.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: condition_id
|
||
required: true
|
||
description: The ID of the discount condition on which to add the item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDiscountsDiscountConditionsConditionBatchReq'
|
||
x-codegen:
|
||
method: addConditionResourceBatch
|
||
queryParams: AdminPostDiscountsDiscountConditionsConditionBatchParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.addConditionResourceBatch(discountId, conditionId, {
|
||
resources: [{ id: itemId }]
|
||
})
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminAddDiscountConditionResourceBatch
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
conditionId: string
|
||
}
|
||
|
||
const DiscountCondition = ({
|
||
discountId,
|
||
conditionId
|
||
}: Props) => {
|
||
const addConditionResources = useAdminAddDiscountConditionResourceBatch(
|
||
discountId,
|
||
conditionId
|
||
)
|
||
// ...
|
||
|
||
const handleAdd = (itemId: string) => {
|
||
addConditionResources.mutate({
|
||
resources: [
|
||
{
|
||
id: itemId
|
||
}
|
||
]
|
||
}, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DiscountCondition
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/discounts/{id}/conditions/{condition_id}/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"resources": [{ "id": "item_id" }]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteDiscountsDiscountConditionsConditionBatch
|
||
summary: Remove Batch Resources
|
||
description: Remove a batch of resources from a discount condition. This will only remove the association between the resource and the discount condition, not the resource itself.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: discount_id
|
||
required: true
|
||
description: The ID of the discount.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: condition_id
|
||
required: true
|
||
description: The ID of the condition to remove the resources from.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteDiscountsDiscountConditionsConditionBatchReq'
|
||
x-codegen:
|
||
method: deleteConditionResourceBatch
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.deleteConditionResourceBatch(discountId, conditionId, {
|
||
resources: [{ id: itemId }]
|
||
})
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminDeleteDiscountConditionResourceBatch
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
conditionId: string
|
||
}
|
||
|
||
const DiscountCondition = ({
|
||
discountId,
|
||
conditionId
|
||
}: Props) => {
|
||
const deleteConditionResource = useAdminDeleteDiscountConditionResourceBatch(
|
||
discountId,
|
||
conditionId,
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = (itemId: string) => {
|
||
deleteConditionResource.mutate({
|
||
resources: [
|
||
{
|
||
id: itemId
|
||
}
|
||
]
|
||
}, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DiscountCondition
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/discounts/{id}/conditions/{condition_id}/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"resources": [{ "id": "item_id" }]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/{id}:
|
||
get:
|
||
operationId: GetDiscountsDiscount
|
||
summary: Get a Discount
|
||
description: Retrieve a Discount.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Discount
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned discount.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetDiscountParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.retrieve(discountId)
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDiscount } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const { discount, isLoading } = useAdminDiscount(
|
||
discountId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{discount && <span>{discount.code}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/discounts/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostDiscountsDiscount
|
||
summary: Update a Discount
|
||
description: Update a Discount with a given set of rules that define how the Discount is applied.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned discount.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be retrieved in the returned discount.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDiscountsDiscountReq'
|
||
x-codegen:
|
||
method: update
|
||
queryParams: AdminPostDiscountsDiscountParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.update(discountId, {
|
||
code: "TEST"
|
||
})
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateDiscount } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const updateDiscount = useAdminUpdateDiscount(discountId)
|
||
// ...
|
||
|
||
const handleUpdate = (isDisabled: boolean) => {
|
||
updateDiscount.mutate({
|
||
is_disabled: isDisabled,
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/discounts/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"code": "TEST"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteDiscountsDiscount
|
||
summary: Delete a Discount
|
||
description: Delete a Discount. Deleting the discount will make it unavailable for customers to use.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Discount
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.delete(discountId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteDiscount } from "medusa-react"
|
||
|
||
const Discount = () => {
|
||
const deleteDiscount = useAdminDeleteDiscount(discount_id)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteDiscount.mutate()
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/discounts/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/{id}/dynamic-codes:
|
||
post:
|
||
operationId: PostDiscountsDiscountDynamicCodes
|
||
summary: Create a Dynamic Code
|
||
description: Create a dynamic unique code that can map to a parent Discount. This is useful if you want to automatically generate codes with the same rules and conditions.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Discount to create the dynamic code for."
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDiscountsDiscountDynamicCodesReq'
|
||
x-codegen:
|
||
method: createDynamicCode
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.createDynamicCode(discountId, {
|
||
code: "TEST",
|
||
usage_limit: 1
|
||
})
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateDynamicDiscountCode } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const createDynamicDiscount = useAdminCreateDynamicDiscountCode(discountId)
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
code: string,
|
||
usageLimit: number
|
||
) => {
|
||
createDynamicDiscount.mutate({
|
||
code,
|
||
usage_limit: usageLimit
|
||
}, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.is_dynamic)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/discounts/{id}/dynamic-codes' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"code": "TEST"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/{id}/dynamic-codes/{code}:
|
||
delete:
|
||
operationId: DeleteDiscountsDiscountDynamicCodesCode
|
||
summary: Delete a Dynamic Code
|
||
description: Delete a dynamic code from a Discount.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Discount
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: code
|
||
required: true
|
||
description: The dynamic code to delete
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteDynamicCode
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.deleteDynamicCode(discountId, code)
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteDynamicDiscountCode } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const deleteDynamicDiscount = useAdminDeleteDynamicDiscountCode(discountId)
|
||
// ...
|
||
|
||
const handleDelete = (code: string) => {
|
||
deleteDynamicDiscount.mutate(code, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.is_dynamic)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/discounts/{id}/dynamic-codes/{code}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/discounts/{id}/regions/{region_id}:
|
||
post:
|
||
operationId: PostDiscountsDiscountRegionsRegion
|
||
summary: Add Region to Discount
|
||
description: Add a Region to the list of Regions a Discount can be used in.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Discount.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: region_id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: addRegion
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.addRegion(discountId, regionId)
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDiscountAddRegion } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const addRegion = useAdminDiscountAddRegion(discountId)
|
||
// ...
|
||
|
||
const handleAdd = (regionId: string) => {
|
||
addRegion.mutate(regionId, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.regions)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/discounts/{id}/regions/{region_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteDiscountsDiscountRegionsRegion
|
||
summary: Remove Region
|
||
x-authenticated: true
|
||
description: Remove a Region from the list of Regions that a Discount can be used in. This does not delete a region, only the association between it and the discount.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Discount.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: region_id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: removeRegion
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.discounts.removeRegion(discountId, regionId)
|
||
.then(({ discount }) => {
|
||
console.log(discount.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDiscountRemoveRegion } from "medusa-react"
|
||
|
||
type Props = {
|
||
discountId: string
|
||
}
|
||
|
||
const Discount = ({ discountId }: Props) => {
|
||
const deleteRegion = useAdminDiscountRemoveRegion(discountId)
|
||
// ...
|
||
|
||
const handleDelete = (regionId: string) => {
|
||
deleteRegion.mutate(regionId, {
|
||
onSuccess: ({ discount }) => {
|
||
console.log(discount.regions)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Discount
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/discounts/{id}/regions/{region_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Discounts
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDiscountsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/draft-orders:
|
||
get:
|
||
operationId: GetDraftOrders
|
||
summary: List Draft Orders
|
||
description: Retrieve an list of Draft Orders. The draft orders can be filtered by fields such as `q`. The draft orders can also paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: offset
|
||
description: The number of draft orders to skip when retrieving the draft orders.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of draft orders returned.
|
||
schema:
|
||
type: number
|
||
default: '50'
|
||
- in: query
|
||
name: q
|
||
description: a term to search draft orders' display IDs and emails in the draft order's cart
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: Field to sort retrieved draft orders by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: A comma-separated list of fields to expand.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: A comma-separated list of fields to include in the response.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: status
|
||
style: form
|
||
explode: false
|
||
description: Filter by status
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- open
|
||
- completed
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetDraftOrdersParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.list()
|
||
.then(({ draft_orders, limit, offset, count }) => {
|
||
console.log(draft_orders.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDraftOrders } from "medusa-react"
|
||
|
||
const DraftOrders = () => {
|
||
const { draft_orders, isLoading } = useAdminDraftOrders()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{draft_orders && !draft_orders.length && (
|
||
<span>No Draft Orders</span>
|
||
)}
|
||
{draft_orders && draft_orders.length > 0 && (
|
||
<ul>
|
||
{draft_orders.map((order) => (
|
||
<li key={order.id}>{order.display_id}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default DraftOrders
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/draft-orders' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostDraftOrders
|
||
summary: Create a Draft Order
|
||
description: Create a Draft Order. A draft order is not transformed into an order until payment is captured.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDraftOrdersReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.create({
|
||
email: "user@example.com",
|
||
region_id,
|
||
items: [
|
||
{
|
||
quantity: 1
|
||
}
|
||
],
|
||
shipping_methods: [
|
||
{
|
||
option_id
|
||
}
|
||
],
|
||
})
|
||
.then(({ draft_order }) => {
|
||
console.log(draft_order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateDraftOrder } from "medusa-react"
|
||
|
||
type DraftOrderData = {
|
||
email: string
|
||
region_id: string
|
||
items: {
|
||
quantity: number,
|
||
variant_id: string
|
||
}[]
|
||
shipping_methods: {
|
||
option_id: string
|
||
price: number
|
||
}[]
|
||
}
|
||
|
||
const CreateDraftOrder = () => {
|
||
const createDraftOrder = useAdminCreateDraftOrder()
|
||
// ...
|
||
|
||
const handleCreate = (data: DraftOrderData) => {
|
||
createDraftOrder.mutate(data, {
|
||
onSuccess: ({ draft_order }) => {
|
||
console.log(draft_order.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateDraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/draft-orders' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com",
|
||
"region_id": "{region_id}"
|
||
"items": [
|
||
{
|
||
"quantity": 1
|
||
}
|
||
],
|
||
"shipping_methods": [
|
||
{
|
||
"option_id": "{option_id}"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/draft-orders/{id}:
|
||
get:
|
||
operationId: GetDraftOrdersDraftOrder
|
||
summary: Get a Draft Order
|
||
description: Retrieve a Draft Order's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Draft Order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.retrieve(draftOrderId)
|
||
.then(({ draft_order }) => {
|
||
console.log(draft_order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDraftOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
draftOrderId: string
|
||
}
|
||
|
||
const DraftOrder = ({ draftOrderId }: Props) => {
|
||
const {
|
||
draft_order,
|
||
isLoading,
|
||
} = useAdminDraftOrder(draftOrderId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{draft_order && <span>{draft_order.display_id}</span>}
|
||
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default DraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/draft-orders/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostDraftOrdersDraftOrder
|
||
summary: Update a Draft Order
|
||
description: Update a Draft Order's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Draft Order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDraftOrdersDraftOrderReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.update(draftOrderId, {
|
||
email: "user@example.com"
|
||
})
|
||
.then(({ draft_order }) => {
|
||
console.log(draft_order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateDraftOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
draftOrderId: string
|
||
}
|
||
|
||
const DraftOrder = ({ draftOrderId }: Props) => {
|
||
const updateDraftOrder = useAdminUpdateDraftOrder(
|
||
draftOrderId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (email: string) => {
|
||
updateDraftOrder.mutate({
|
||
email,
|
||
}, {
|
||
onSuccess: ({ draft_order }) => {
|
||
console.log(draft_order.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/draft-orders/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteDraftOrdersDraftOrder
|
||
summary: Delete a Draft Order
|
||
description: Delete a Draft Order.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Draft Order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.delete(draftOrderId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteDraftOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
draftOrderId: string
|
||
}
|
||
|
||
const DraftOrder = ({ draftOrderId }: Props) => {
|
||
const deleteDraftOrder = useAdminDeleteDraftOrder(
|
||
draftOrderId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteDraftOrder.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/draft-orders/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/draft-orders/{id}/line-items:
|
||
post:
|
||
operationId: PostDraftOrdersDraftOrderLineItems
|
||
summary: Create a Line Item
|
||
description: Create a Line Item in the Draft Order.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Draft Order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDraftOrdersDraftOrderLineItemsReq'
|
||
x-codegen:
|
||
method: addLineItem
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.addLineItem(draftOrderId, {
|
||
quantity: 1
|
||
})
|
||
.then(({ draft_order }) => {
|
||
console.log(draft_order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDraftOrderAddLineItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
draftOrderId: string
|
||
}
|
||
|
||
const DraftOrder = ({ draftOrderId }: Props) => {
|
||
const addLineItem = useAdminDraftOrderAddLineItem(
|
||
draftOrderId
|
||
)
|
||
// ...
|
||
|
||
const handleAdd = (quantity: number) => {
|
||
addLineItem.mutate({
|
||
quantity,
|
||
}, {
|
||
onSuccess: ({ draft_order }) => {
|
||
console.log(draft_order.cart)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/draft-orders/{id}/line-items' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"quantity": 1
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/draft-orders/{id}/line-items/{line_id}:
|
||
post:
|
||
operationId: PostDraftOrdersDraftOrderLineItemsItem
|
||
summary: Update a Line Item
|
||
description: Update a Line Item in a Draft Order.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Draft Order.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: line_id
|
||
required: true
|
||
description: The ID of the Line Item.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDraftOrdersDraftOrderLineItemsItemReq'
|
||
x-codegen:
|
||
method: updateLineItem
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.updateLineItem(draftOrderId, lineId, {
|
||
quantity: 1
|
||
})
|
||
.then(({ draft_order }) => {
|
||
console.log(draft_order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDraftOrderUpdateLineItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
draftOrderId: string
|
||
}
|
||
|
||
const DraftOrder = ({ draftOrderId }: Props) => {
|
||
const updateLineItem = useAdminDraftOrderUpdateLineItem(
|
||
draftOrderId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
itemId: string,
|
||
quantity: number
|
||
) => {
|
||
updateLineItem.mutate({
|
||
item_id: itemId,
|
||
quantity,
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/draft-orders/{id}/line-items/{line_id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"quantity": 1
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteDraftOrdersDraftOrderLineItemsItem
|
||
summary: Delete a Line Item
|
||
description: Delete a Line Item from a Draft Order.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Draft Order.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: line_id
|
||
required: true
|
||
description: The ID of the line item.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: removeLineItem
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.removeLineItem(draftOrderId, itemId)
|
||
.then(({ draft_order }) => {
|
||
console.log(draft_order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDraftOrderRemoveLineItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
draftOrderId: string
|
||
}
|
||
|
||
const DraftOrder = ({ draftOrderId }: Props) => {
|
||
const deleteLineItem = useAdminDraftOrderRemoveLineItem(
|
||
draftOrderId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = (itemId: string) => {
|
||
deleteLineItem.mutate(itemId, {
|
||
onSuccess: ({ draft_order }) => {
|
||
console.log(draft_order.cart)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/draft-orders/{id}/line-items/{line_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDraftOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/draft-orders/{id}/pay:
|
||
post:
|
||
summary: Mark Paid
|
||
operationId: PostDraftOrdersDraftOrderRegisterPayment
|
||
description: Capture the draft order's payment. This will also set the draft order's status to `completed` and create an Order from the draft order. The payment is captured through Medusa's system payment, which is manual payment that isn't integrated with any third-party payment provider. It is assumed that the payment capturing is handled manually by the admin.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The Draft Order ID.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: markPaid
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.draftOrders.markPaid(draftOrderId)
|
||
.then(({ order }) => {
|
||
console.log(order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDraftOrderRegisterPayment } from "medusa-react"
|
||
|
||
type Props = {
|
||
draftOrderId: string
|
||
}
|
||
|
||
const DraftOrder = ({ draftOrderId }: Props) => {
|
||
const registerPayment = useAdminDraftOrderRegisterPayment(
|
||
draftOrderId
|
||
)
|
||
// ...
|
||
|
||
const handlePayment = () => {
|
||
registerPayment.mutate(void 0, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default DraftOrder
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/draft-orders/{id}/pay' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Draft Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostDraftOrdersDraftOrderRegisterPaymentRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/gift-cards:
|
||
get:
|
||
operationId: GetGiftCards
|
||
summary: List Gift Cards
|
||
description: Retrieve a list of Gift Cards. The gift cards can be filtered by fields such as `q`. The gift cards can also paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: offset
|
||
description: The number of gift cards to skip when retrieving the gift cards.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of gift cards returned.
|
||
schema:
|
||
type: number
|
||
default: '50'
|
||
- in: query
|
||
name: q
|
||
description: a term to search gift cards' code or display ID
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A gift card field to sort-order the retrieved gift cards by.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetGiftCardsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.giftCards.list()
|
||
.then(({ gift_cards, limit, offset, count }) => {
|
||
console.log(gift_cards.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { GiftCard } from "@medusajs/medusa"
|
||
import { useAdminGiftCards } from "medusa-react"
|
||
|
||
const CustomGiftCards = () => {
|
||
const { gift_cards, isLoading } = useAdminGiftCards()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{gift_cards && !gift_cards.length && (
|
||
<span>No custom gift cards...</span>
|
||
)}
|
||
{gift_cards && gift_cards.length > 0 && (
|
||
<ul>
|
||
{gift_cards.map((giftCard: GiftCard) => (
|
||
<li key={giftCard.id}>{giftCard.code}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default CustomGiftCards
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/gift-cards' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Gift Cards
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminGiftCardsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostGiftCards
|
||
summary: Create a Gift Card
|
||
description: Create a Gift Card that can redeemed by its unique code. The Gift Card is only valid within 1 region.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostGiftCardsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.giftCards.create({
|
||
region_id
|
||
})
|
||
.then(({ gift_card }) => {
|
||
console.log(gift_card.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateGiftCard } from "medusa-react"
|
||
|
||
const CreateCustomGiftCards = () => {
|
||
const createGiftCard = useAdminCreateGiftCard()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
regionId: string,
|
||
value: number
|
||
) => {
|
||
createGiftCard.mutate({
|
||
region_id: regionId,
|
||
value,
|
||
}, {
|
||
onSuccess: ({ gift_card }) => {
|
||
console.log(gift_card.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateCustomGiftCards
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/gift-cards' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"region_id": "{region_id}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Gift Cards
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminGiftCardsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/gift-cards/{id}:
|
||
get:
|
||
operationId: GetGiftCardsGiftCard
|
||
summary: Get a Gift Card
|
||
description: Retrieve a Gift Card's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Gift Card.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.giftCards.retrieve(giftCardId)
|
||
.then(({ gift_card }) => {
|
||
console.log(gift_card.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminGiftCard } from "medusa-react"
|
||
|
||
type Props = {
|
||
giftCardId: string
|
||
}
|
||
|
||
const CustomGiftCard = ({ giftCardId }: Props) => {
|
||
const { gift_card, isLoading } = useAdminGiftCard(giftCardId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{gift_card && <span>{gift_card.code}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default CustomGiftCard
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/gift-cards/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Gift Cards
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminGiftCardsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostGiftCardsGiftCard
|
||
summary: Update a Gift Card
|
||
description: Update a Gift Card's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Gift Card.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostGiftCardsGiftCardReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.giftCards.update(giftCardId, {
|
||
region_id
|
||
})
|
||
.then(({ gift_card }) => {
|
||
console.log(gift_card.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateGiftCard } from "medusa-react"
|
||
|
||
type Props = {
|
||
customGiftCardId: string
|
||
}
|
||
|
||
const CustomGiftCard = ({ customGiftCardId }: Props) => {
|
||
const updateGiftCard = useAdminUpdateGiftCard(
|
||
customGiftCardId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (regionId: string) => {
|
||
updateGiftCard.mutate({
|
||
region_id: regionId,
|
||
}, {
|
||
onSuccess: ({ gift_card }) => {
|
||
console.log(gift_card.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CustomGiftCard
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/gift-cards/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"region_id": "{region_id}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Gift Cards
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminGiftCardsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteGiftCardsGiftCard
|
||
summary: Delete a Gift Card
|
||
description: Delete a Gift Card. Once deleted, it can't be used by customers.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Gift Card to delete.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.giftCards.delete(giftCardId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteGiftCard } from "medusa-react"
|
||
|
||
type Props = {
|
||
customGiftCardId: string
|
||
}
|
||
|
||
const CustomGiftCard = ({ customGiftCardId }: Props) => {
|
||
const deleteGiftCard = useAdminDeleteGiftCard(
|
||
customGiftCardId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteGiftCard.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted}) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CustomGiftCard
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/gift-cards/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Gift Cards
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminGiftCardsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/inventory-items:
|
||
get:
|
||
operationId: GetInventoryItems
|
||
summary: List Inventory Items
|
||
description: Retrieve a list of inventory items. The inventory items can be filtered by fields such as `q` or `location_id`. The inventory items can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: offset
|
||
description: The number of inventory items to skip when retrieving the inventory items.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of inventory items returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in each returned inventory item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned inventory item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: term to search inventory item's sku, title, and description.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: Field to sort-order inventory items by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: location_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by location IDs.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by the inventory ID
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: inventory ID
|
||
- type: array
|
||
description: an array of inventory IDs
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: sku
|
||
description: Filter by SKU
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: origin_country
|
||
description: Filter by origin country
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: mid_code
|
||
description: Filter by MID code
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: material
|
||
description: Filter by material
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: hs_code
|
||
description: Filter by HS Code
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: weight
|
||
description: Filter by weight
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: length
|
||
description: Filter by length
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: height
|
||
description: Filter by height
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: width
|
||
description: Filter by width
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: requires_shipping
|
||
description: Filter by whether the item requires shipping
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetInventoryItemsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.list()
|
||
.then(({ inventory_items, count, offset, limit }) => {
|
||
console.log(inventory_items.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminInventoryItems } from "medusa-react"
|
||
|
||
function InventoryItems() {
|
||
const {
|
||
inventory_items,
|
||
isLoading
|
||
} = useAdminInventoryItems()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{inventory_items && !inventory_items.length && (
|
||
<span>No Items</span>
|
||
)}
|
||
{inventory_items && inventory_items.length > 0 && (
|
||
<ul>
|
||
{inventory_items.map(
|
||
(item) => (
|
||
<li key={item.id}>{item.id}</li>
|
||
)
|
||
)}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default InventoryItems
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/inventory-items' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsListWithVariantsAndLocationLevelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostInventoryItems
|
||
summary: Create an Inventory Item
|
||
description: Create an Inventory Item for a product variant.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned inventory item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned inventory item.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostInventoryItemsReq'
|
||
x-codegen:
|
||
method: create
|
||
queryParams: AdminPostInventoryItemsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.create({
|
||
variant_id: "variant_123",
|
||
})
|
||
.then(({ inventory_item }) => {
|
||
console.log(inventory_item.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateInventoryItem } from "medusa-react"
|
||
|
||
const CreateInventoryItem = () => {
|
||
const createInventoryItem = useAdminCreateInventoryItem()
|
||
// ...
|
||
|
||
const handleCreate = (variantId: string) => {
|
||
createInventoryItem.mutate({
|
||
variant_id: variantId,
|
||
}, {
|
||
onSuccess: ({ inventory_item }) => {
|
||
console.log(inventory_item.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateInventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/inventory-items' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"variant_id": "variant_123",
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/inventory-items/{id}:
|
||
get:
|
||
operationId: GetInventoryItemsInventoryItem
|
||
summary: Get an Inventory Item
|
||
description: Retrieve an Inventory Item's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Inventory Item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned inventory item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned inventory item.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetInventoryItemsItemParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.retrieve(inventoryItemId)
|
||
.then(({ inventory_item }) => {
|
||
console.log(inventory_item.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminInventoryItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
inventoryItemId: string
|
||
}
|
||
|
||
const InventoryItem = ({ inventoryItemId }: Props) => {
|
||
const {
|
||
inventory_item,
|
||
isLoading
|
||
} = useAdminInventoryItem(inventoryItemId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{inventory_item && (
|
||
<span>{inventory_item.sku}</span>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default InventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/inventory-items/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostInventoryItemsInventoryItem
|
||
summary: Update an Inventory Item
|
||
description: Update an Inventory Item's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Inventory Item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned inventory level.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned inventory level.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostInventoryItemsInventoryItemReq'
|
||
x-codegen:
|
||
method: update
|
||
queryParams: AdminPostInventoryItemsInventoryItemParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.update(inventoryItemId, {
|
||
origin_country: "US",
|
||
})
|
||
.then(({ inventory_item }) => {
|
||
console.log(inventory_item.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateInventoryItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
inventoryItemId: string
|
||
}
|
||
|
||
const InventoryItem = ({ inventoryItemId }: Props) => {
|
||
const updateInventoryItem = useAdminUpdateInventoryItem(
|
||
inventoryItemId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (origin_country: string) => {
|
||
updateInventoryItem.mutate({
|
||
origin_country,
|
||
}, {
|
||
onSuccess: ({ inventory_item }) => {
|
||
console.log(inventory_item.origin_country)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default InventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/inventory-items/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"origin_country": "US"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteInventoryItemsInventoryItem
|
||
summary: Delete an Inventory Item
|
||
description: Delete an Inventory Item. This does not delete the associated product variant.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Inventory Item to delete.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.delete(inventoryItemId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteInventoryItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
inventoryItemId: string
|
||
}
|
||
|
||
const InventoryItem = ({ inventoryItemId }: Props) => {
|
||
const deleteInventoryItem = useAdminDeleteInventoryItem(
|
||
inventoryItemId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteInventoryItem.mutate()
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default InventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/inventory-items/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
/admin/inventory-items/{id}/location-levels:
|
||
get:
|
||
operationId: GetInventoryItemsInventoryItemLocationLevels
|
||
summary: List Inventory Level
|
||
description: Retrieve a list of inventory levels of an inventory item. The inventory levels can be filtered by fields such as `location_id`.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Inventory Item the locations are associated with.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: location_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by location IDs.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned inventory levels.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned inventory levels.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: listLocationLevels
|
||
queryParams: AdminGetInventoryItemsItemLocationLevelsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.listLocationLevels(inventoryItemId)
|
||
.then(({ inventory_item }) => {
|
||
console.log(inventory_item.location_levels);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminInventoryItemLocationLevels,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
inventoryItemId: string
|
||
}
|
||
|
||
const InventoryItem = ({ inventoryItemId }: Props) => {
|
||
const {
|
||
inventory_item,
|
||
isLoading,
|
||
} = useAdminInventoryItemLocationLevels(inventoryItemId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{inventory_item && (
|
||
<ul>
|
||
{inventory_item.location_levels.map((level) => (
|
||
<span key={level.id}>{level.stocked_quantity}</span>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default InventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/inventory-items/{id}/location-levels' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsLocationLevelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostInventoryItemsInventoryItemLocationLevels
|
||
summary: Create a Location Level
|
||
description: Create a Location Level for a given Inventory Item.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Inventory Item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned inventory item.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned inventory item.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostInventoryItemsItemLocationLevelsReq'
|
||
x-codegen:
|
||
method: createLocationLevel
|
||
queryParams: AdminPostInventoryItemsItemLocationLevelsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.createLocationLevel(inventoryItemId, {
|
||
location_id: "sloc_123",
|
||
stocked_quantity: 10,
|
||
})
|
||
.then(({ inventory_item }) => {
|
||
console.log(inventory_item.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateLocationLevel } from "medusa-react"
|
||
|
||
type Props = {
|
||
inventoryItemId: string
|
||
}
|
||
|
||
const InventoryItem = ({ inventoryItemId }: Props) => {
|
||
const createLocationLevel = useAdminCreateLocationLevel(
|
||
inventoryItemId
|
||
)
|
||
// ...
|
||
|
||
const handleCreateLocationLevel = (
|
||
locationId: string,
|
||
stockedQuantity: number
|
||
) => {
|
||
createLocationLevel.mutate({
|
||
location_id: locationId,
|
||
stocked_quantity: stockedQuantity,
|
||
}, {
|
||
onSuccess: ({ inventory_item }) => {
|
||
console.log(inventory_item.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default InventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"location_id": "sloc_123",
|
||
"stocked_quantity": 10
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/inventory-items/{id}/location-levels/{location_id}:
|
||
post:
|
||
operationId: PostInventoryItemsInventoryItemLocationLevelsLocationLevel
|
||
summary: Update a Location Level
|
||
description: Update a Location Level's details for a given Inventory Item.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Inventory Item that the location is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: location_id
|
||
required: true
|
||
description: The ID of the Location to update.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned location level.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned location level.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostInventoryItemsItemLocationLevelsLevelReq'
|
||
x-codegen:
|
||
method: updateLocationLevel
|
||
queryParams: AdminPostInventoryItemsItemLocationLevelsLevelParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.updateLocationLevel(inventoryItemId, locationId, {
|
||
stocked_quantity: 15,
|
||
})
|
||
.then(({ inventory_item }) => {
|
||
console.log(inventory_item.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateLocationLevel } from "medusa-react"
|
||
|
||
type Props = {
|
||
inventoryItemId: string
|
||
}
|
||
|
||
const InventoryItem = ({ inventoryItemId }: Props) => {
|
||
const updateLocationLevel = useAdminUpdateLocationLevel(
|
||
inventoryItemId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
stockLocationId: string,
|
||
stocked_quantity: number
|
||
) => {
|
||
updateLocationLevel.mutate({
|
||
stockLocationId,
|
||
stocked_quantity,
|
||
}, {
|
||
onSuccess: ({ inventory_item }) => {
|
||
console.log(inventory_item.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default InventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"stocked_quantity": 15
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteInventoryItemsInventoryIteLocationLevelsLocation
|
||
summary: Delete a Location Level
|
||
description: Delete a location level of an Inventory Item.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Inventory Item.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: location_id
|
||
required: true
|
||
description: The ID of the location.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteLocationLevel
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.inventoryItems.deleteLocationLevel(inventoryItemId, locationId)
|
||
.then(({ inventory_item }) => {
|
||
console.log(inventory_item.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteLocationLevel } from "medusa-react"
|
||
|
||
type Props = {
|
||
inventoryItemId: string
|
||
}
|
||
|
||
const InventoryItem = ({ inventoryItemId }: Props) => {
|
||
const deleteLocationLevel = useAdminDeleteLocationLevel(
|
||
inventoryItemId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = (
|
||
locationId: string
|
||
) => {
|
||
deleteLocationLevel.mutate(locationId)
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default InventoryItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Inventory Items
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInventoryItemsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/invites:
|
||
get:
|
||
operationId: GetInvites
|
||
summary: Lists Invites
|
||
description: Retrieve a list of invites.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: list
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.invites.list()
|
||
.then(({ invites }) => {
|
||
console.log(invites.length);
|
||
})
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/invites' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Invites
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminListInvitesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostInvites
|
||
summary: Create an Invite
|
||
description: Create an Invite. This will generate a token associated with the invite and trigger an `invite.created` event. If you have a Notification Provider installed that handles this event, a notification should be sent to the email associated with the invite to allow them to accept the invite.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostInvitesReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.invites.create({
|
||
user: "user@example.com",
|
||
role: "admin"
|
||
})
|
||
.then(() => {
|
||
// successful
|
||
})
|
||
.catch(() => {
|
||
// an error occurred
|
||
})
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/invites' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"user": "user@example.com",
|
||
"role": "admin"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Invites
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/invites/accept:
|
||
post:
|
||
operationId: PostInvitesInviteAccept
|
||
summary: Accept an Invite
|
||
description: Accept an Invite. This will also delete the invite and create a new user that can log in and perform admin functionalities. The user will have the email associated with the invite, and the password provided in the request body.
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostInvitesInviteAcceptReq'
|
||
x-codegen:
|
||
method: accept
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.invites.accept({
|
||
token,
|
||
user: {
|
||
first_name: "Brigitte",
|
||
last_name: "Collier",
|
||
password: "supersecret"
|
||
}
|
||
})
|
||
.then(() => {
|
||
// successful
|
||
})
|
||
.catch(() => {
|
||
// an error occurred
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminAcceptInvite } from "medusa-react"
|
||
|
||
const AcceptInvite = () => {
|
||
const acceptInvite = useAdminAcceptInvite()
|
||
// ...
|
||
|
||
const handleAccept = (
|
||
token: string,
|
||
firstName: string,
|
||
lastName: string,
|
||
password: string
|
||
) => {
|
||
acceptInvite.mutate({
|
||
token,
|
||
user: {
|
||
first_name: firstName,
|
||
last_name: lastName,
|
||
password,
|
||
},
|
||
}, {
|
||
onSuccess: () => {
|
||
// invite accepted successfully.
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default AcceptInvite
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/invites/accept' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"token": "{token}",
|
||
"user": {
|
||
"first_name": "Brigitte",
|
||
"last_name": "Collier",
|
||
"password": "supersecret"
|
||
}
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Invites
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/invites/{invite_id}:
|
||
delete:
|
||
operationId: DeleteInvitesInvite
|
||
summary: Delete an Invite
|
||
description: Delete an Invite. Only invites that weren't accepted can be deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: invite_id
|
||
required: true
|
||
description: The ID of the Invite
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.invites.delete(inviteId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteInvite } from "medusa-react"
|
||
|
||
type Props = {
|
||
inviteId: string
|
||
}
|
||
|
||
const DeleteInvite = ({ inviteId }: Props) => {
|
||
const deleteInvite = useAdminDeleteInvite(inviteId)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteInvite.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Invite
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/invites/{invite_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Invites
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminInviteDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/invites/{invite_id}/resend:
|
||
post:
|
||
operationId: PostInvitesInviteResend
|
||
summary: Resend an Invite
|
||
description: Resend an Invite. This renews the expiry date by 7 days and generates a new token for the invite. It also triggers the `invite.created` event, so if you have a Notification Provider installed that handles this event, a notification should be sent to the email associated with the invite to allow them to accept the invite.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: invite_id
|
||
required: true
|
||
description: The ID of the Invite
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: resend
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.invites.resend(inviteId)
|
||
.then(() => {
|
||
// successful
|
||
})
|
||
.catch(() => {
|
||
// an error occurred
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminResendInvite } from "medusa-react"
|
||
|
||
type Props = {
|
||
inviteId: string
|
||
}
|
||
|
||
const ResendInvite = ({ inviteId }: Props) => {
|
||
const resendInvite = useAdminResendInvite(inviteId)
|
||
// ...
|
||
|
||
const handleResend = () => {
|
||
resendInvite.mutate(void 0, {
|
||
onSuccess: () => {
|
||
// invite resent successfully
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ResendInvite
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/invites/{invite_id}/resend' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Invites
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/notes:
|
||
get:
|
||
operationId: GetNotes
|
||
summary: List Notes
|
||
x-authenticated: true
|
||
description: Retrieve a list of notes. The notes can be filtered by fields such as `resource_id`. The notes can also be paginated.
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of notes returned.
|
||
schema:
|
||
type: number
|
||
default: '50'
|
||
- in: query
|
||
name: offset
|
||
description: The number of notes to skip when retrieving the notes.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: resource_id
|
||
description: Filter by resource ID
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetNotesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.notes.list()
|
||
.then(({ notes, limit, offset, count }) => {
|
||
console.log(notes.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminNotes } from "medusa-react"
|
||
|
||
const Notes = () => {
|
||
const { notes, isLoading } = useAdminNotes()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{notes && !notes.length && <span>No Notes</span>}
|
||
{notes && notes.length > 0 && (
|
||
<ul>
|
||
{notes.map((note) => (
|
||
<li key={note.id}>{note.resource_type}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Notes
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/notes' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Notes
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminNotesListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostNotes
|
||
summary: Create a Note
|
||
description: Create a Note which can be associated with any resource.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostNotesReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.notes.create({
|
||
resource_id,
|
||
resource_type: "order",
|
||
value: "We delivered this order"
|
||
})
|
||
.then(({ note }) => {
|
||
console.log(note.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateNote } from "medusa-react"
|
||
|
||
const CreateNote = () => {
|
||
const createNote = useAdminCreateNote()
|
||
// ...
|
||
|
||
const handleCreate = () => {
|
||
createNote.mutate({
|
||
resource_id: "order_123",
|
||
resource_type: "order",
|
||
value: "We delivered this order"
|
||
}, {
|
||
onSuccess: ({ note }) => {
|
||
console.log(note.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateNote
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/notes' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"resource_id": "{resource_id}",
|
||
"resource_type": "order",
|
||
"value": "We delivered this order"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Notes
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminNotesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/notes/{id}:
|
||
get:
|
||
operationId: GetNotesNote
|
||
summary: Get a Note
|
||
description: Retrieve a note's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the note.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.notes.retrieve(noteId)
|
||
.then(({ note }) => {
|
||
console.log(note.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminNote } from "medusa-react"
|
||
|
||
type Props = {
|
||
noteId: string
|
||
}
|
||
|
||
const Note = ({ noteId }: Props) => {
|
||
const { note, isLoading } = useAdminNote(noteId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{note && <span>{note.resource_type}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Note
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/notes/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Notes
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminNotesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostNotesNote
|
||
summary: Update a Note
|
||
x-authenticated: true
|
||
description: Update a Note's details.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Note
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostNotesNoteReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.notes.update(noteId, {
|
||
value: "We delivered this order"
|
||
})
|
||
.then(({ note }) => {
|
||
console.log(note.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateNote } from "medusa-react"
|
||
|
||
type Props = {
|
||
noteId: string
|
||
}
|
||
|
||
const Note = ({ noteId }: Props) => {
|
||
const updateNote = useAdminUpdateNote(noteId)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
value: string
|
||
) => {
|
||
updateNote.mutate({
|
||
value
|
||
}, {
|
||
onSuccess: ({ note }) => {
|
||
console.log(note.value)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Note
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/notes/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"value": "We delivered this order"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Notes
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminNotesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteNotesNote
|
||
summary: Delete a Note
|
||
description: Delete a Note.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Note to delete.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.notes.delete(noteId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteNote } from "medusa-react"
|
||
|
||
type Props = {
|
||
noteId: string
|
||
}
|
||
|
||
const Note = ({ noteId }: Props) => {
|
||
const deleteNote = useAdminDeleteNote(noteId)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteNote.mutate()
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Note
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/notes/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Notes
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminNotesDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/notifications:
|
||
get:
|
||
operationId: GetNotifications
|
||
summary: List Notifications
|
||
description: Retrieve a list of notifications. The notifications can be filtered by fields such as `event_name` or `resource_type`. The notifications can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: offset
|
||
description: The number of inventory items to skip when retrieving the inventory items.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of notifications returned.
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in each returned notification.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in each returned notification.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: event_name
|
||
description: Filter by the name of the event that triggered sending this notification.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: resource_type
|
||
description: Filter by the resource type.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: resource_id
|
||
description: Filter by the resource ID.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: to
|
||
description: Filter by the address that the Notification was sent to. This will usually be an email address, but it can also represent other addresses such as a chat bot user id.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: include_resends
|
||
description: A boolean indicating whether the result set should include resent notifications or not
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetNotificationsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.notifications.list()
|
||
.then(({ notifications }) => {
|
||
console.log(notifications.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminNotifications } from "medusa-react"
|
||
|
||
const Notifications = () => {
|
||
const { notifications, isLoading } = useAdminNotifications()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{notifications && !notifications.length && (
|
||
<span>No Notifications</span>
|
||
)}
|
||
{notifications && notifications.length > 0 && (
|
||
<ul>
|
||
{notifications.map((notification) => (
|
||
<li key={notification.id}>{notification.to}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Notifications
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/notifications' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Notifications
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminNotificationsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/notifications/{id}/resend:
|
||
post:
|
||
operationId: PostNotificationsNotificationResend
|
||
summary: Resend Notification
|
||
description: Resend a previously sent notifications, with the same data but optionally to a different address.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Notification
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostNotificationsNotificationResendReq'
|
||
x-codegen:
|
||
method: resend
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.notifications.resend(notificationId)
|
||
.then(({ notification }) => {
|
||
console.log(notification.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminResendNotification } from "medusa-react"
|
||
|
||
type Props = {
|
||
notificationId: string
|
||
}
|
||
|
||
const Notification = ({ notificationId }: Props) => {
|
||
const resendNotification = useAdminResendNotification(
|
||
notificationId
|
||
)
|
||
// ...
|
||
|
||
const handleResend = () => {
|
||
resendNotification.mutate({}, {
|
||
onSuccess: ({ notification }) => {
|
||
console.log(notification.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Notification
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/notifications/{id}/resend' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Notifications
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminNotificationsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/order-edits:
|
||
get:
|
||
operationId: GetOrderEdits
|
||
summary: List Order Edits
|
||
description: Retrieve a list of order edits. The order edits can be filtered by fields such as `q` or `order_id`. The order edits can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: term to search order edits' internal note.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order_id
|
||
description: Filter by order ID
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of order edits returned.
|
||
schema:
|
||
type: number
|
||
default: '20'
|
||
- in: query
|
||
name: offset
|
||
description: The number of order edits to skip when retrieving the order edits.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in each returned order edit.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in each returned order edit.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: GetOrderEditsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.list()
|
||
.then(({ order_edits, count, limit, offset }) => {
|
||
console.log(order_edits.length)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminOrderEdits } from "medusa-react"
|
||
|
||
const OrderEdits = () => {
|
||
const { order_edits, isLoading } = useAdminOrderEdits()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{order_edits && !order_edits.length && (
|
||
<span>No Order Edits</span>
|
||
)}
|
||
{order_edits && order_edits.length > 0 && (
|
||
<ul>
|
||
{order_edits.map((orderEdit) => (
|
||
<li key={orderEdit.id}>
|
||
{orderEdit.status}
|
||
</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default OrderEdits
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/order-edits' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostOrderEdits
|
||
summary: Create an OrderEdit
|
||
description: Create an Order Edit.
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrderEditsReq'
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.create({ orderId })
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateOrderEdit } from "medusa-react"
|
||
|
||
const CreateOrderEdit = () => {
|
||
const createOrderEdit = useAdminCreateOrderEdit()
|
||
|
||
const handleCreateOrderEdit = (orderId: string) => {
|
||
createOrderEdit.mutate({
|
||
order_id: orderId,
|
||
}, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateOrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/order-edits' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{ "order_id": "my_order_id", "internal_note": "my_optional_note" }'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/order-edits/{id}:
|
||
get:
|
||
operationId: GetOrderEditsOrderEdit
|
||
summary: Get an Order Edit
|
||
description: Retrieve an Order Edit's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the OrderEdit.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in each returned order edit.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order edit.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: GetOrderEditsOrderEditParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.retrieve(orderEditId)
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminOrderEdit } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
}
|
||
|
||
const OrderEdit = ({ orderEditId }: Props) => {
|
||
const {
|
||
order_edit,
|
||
isLoading,
|
||
} = useAdminOrderEdit(orderEditId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{order_edit && <span>{order_edit.status}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default OrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/order-edits/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostOrderEditsOrderEdit
|
||
summary: Update an Order Edit
|
||
description: Update an Order Edit's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the OrderEdit.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrderEditsOrderEditReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.update(orderEditId, {
|
||
internal_note: "internal reason XY"
|
||
})
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateOrderEdit } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
}
|
||
|
||
const OrderEdit = ({ orderEditId }: Props) => {
|
||
const updateOrderEdit = useAdminUpdateOrderEdit(
|
||
orderEditId,
|
||
)
|
||
|
||
const handleUpdate = (
|
||
internalNote: string
|
||
) => {
|
||
updateOrderEdit.mutate({
|
||
internal_note: internalNote
|
||
}, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(order_edit.internal_note)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/order-edits/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"internal_note": "internal reason XY"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteOrderEditsOrderEdit
|
||
summary: Delete an Order Edit
|
||
description: Delete an Order Edit. Only order edits that have the status `created` can be deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order Edit to delete.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.delete(orderEditId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteOrderEdit } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
}
|
||
|
||
const OrderEdit = ({ orderEditId }: Props) => {
|
||
const deleteOrderEdit = useAdminDeleteOrderEdit(
|
||
orderEditId
|
||
)
|
||
|
||
const handleDelete = () => {
|
||
deleteOrderEdit.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/order-edits/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
/admin/order-edits/{id}/cancel:
|
||
post:
|
||
operationId: PostOrderEditsOrderEditCancel
|
||
summary: Cancel an Order Edit
|
||
description: Cancel an Order Edit.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the OrderEdit.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancel
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.cancel(orderEditId)
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminCancelOrderEdit
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
}
|
||
|
||
const OrderEdit = ({ orderEditId }: Props) => {
|
||
const cancelOrderEdit =
|
||
useAdminCancelOrderEdit(
|
||
orderEditId
|
||
)
|
||
|
||
const handleCancel = () => {
|
||
cancelOrderEdit.mutate(void 0, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(
|
||
order_edit.id
|
||
)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/order-edits/{id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/order-edits/{id}/changes/{change_id}:
|
||
delete:
|
||
operationId: DeleteOrderEditsOrderEditItemChange
|
||
summary: Delete a Line Item Change
|
||
description: Delete a line item change that indicates the addition, deletion, or update of a line item in the original order.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order Edit.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: change_id
|
||
required: true
|
||
description: The ID of the Line Item Change to delete.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteItemChange
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.deleteItemChange(orderEdit_id, itemChangeId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteOrderEditItemChange } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
itemChangeId: string
|
||
}
|
||
|
||
const OrderEditItemChange = ({
|
||
orderEditId,
|
||
itemChangeId
|
||
}: Props) => {
|
||
const deleteItemChange = useAdminDeleteOrderEditItemChange(
|
||
orderEditId,
|
||
itemChangeId
|
||
)
|
||
|
||
const handleDeleteItemChange = () => {
|
||
deleteItemChange.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEditItemChange
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/order-edits/{id}/changes/{change_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditItemChangeDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
/admin/order-edits/{id}/confirm:
|
||
post:
|
||
operationId: PostOrderEditsOrderEditConfirm
|
||
summary: Confirm an OrderEdit
|
||
description: Confirm an Order Edit. This will reflect the changes in the order edit on the associated order.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the order edit.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: confirm
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.confirm(orderEditId)
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminConfirmOrderEdit } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
}
|
||
|
||
const OrderEdit = ({ orderEditId }: Props) => {
|
||
const confirmOrderEdit = useAdminConfirmOrderEdit(
|
||
orderEditId
|
||
)
|
||
|
||
const handleConfirmOrderEdit = () => {
|
||
confirmOrderEdit.mutate(void 0, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(
|
||
order_edit.confirmed_at,
|
||
order_edit.confirmed_by
|
||
)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/order-edits/{id}/confirm' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/order-edits/{id}/items:
|
||
post:
|
||
operationId: PostOrderEditsEditLineItems
|
||
summary: Add a Line Item
|
||
description: Create a line item change in the order edit that indicates adding an item in the original order. The item will not be added to the original order until the order edit is confirmed.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order Edit.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrderEditsEditLineItemsReq'
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: addLineItem
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.addLineItem(orderEditId, {
|
||
variant_id,
|
||
quantity
|
||
})
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminOrderEditAddLineItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
}
|
||
|
||
const OrderEdit = ({ orderEditId }: Props) => {
|
||
const addLineItem = useAdminOrderEditAddLineItem(
|
||
orderEditId
|
||
)
|
||
|
||
const handleAddLineItem =
|
||
(quantity: number, variantId: string) => {
|
||
addLineItem.mutate({
|
||
quantity,
|
||
variant_id: variantId,
|
||
}, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(order_edit.changes)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/order-edits/{id}/items' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{ "variant_id": "variant_01G1G5V2MRX2V3PVSR2WXYPFB6", "quantity": 3 }'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/order-edits/{id}/items/{item_id}:
|
||
post:
|
||
operationId: PostOrderEditsEditLineItemsLineItem
|
||
summary: Upsert Line Item Change
|
||
description: Create or update a line item change in the order edit that indicates addition, deletion, or update of a line item into an original order. Line item changes are only reflected on the original order after the order edit is confirmed.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order Edit.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: item_id
|
||
required: true
|
||
description: The ID of the line item in the original order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrderEditsEditLineItemsLineItemReq'
|
||
x-codegen:
|
||
method: updateLineItem
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.updateLineItem(orderEditId, lineItemId, {
|
||
quantity: 5
|
||
})
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminOrderEditUpdateLineItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
itemId: string
|
||
}
|
||
|
||
const OrderEditItemChange = ({
|
||
orderEditId,
|
||
itemId
|
||
}: Props) => {
|
||
const updateLineItem = useAdminOrderEditUpdateLineItem(
|
||
orderEditId,
|
||
itemId
|
||
)
|
||
|
||
const handleUpdateLineItem = (quantity: number) => {
|
||
updateLineItem.mutate({
|
||
quantity,
|
||
}, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(order_edit.items)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEditItemChange
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/order-edits/{id}/items/{item_id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{ "quantity": 5 }'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteOrderEditsOrderEditLineItemsLineItem
|
||
summary: Delete Line Item
|
||
description: Create a line item change in the order edit that indicates deleting an item in the original order. The item in the original order will not be deleted until the order edit is confirmed.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order Edit.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: item_id
|
||
required: true
|
||
description: The ID of line item in the original order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: removeLineItem
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.removeLineItem(orderEditId, lineItemId)
|
||
.then(({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminOrderEditDeleteLineItem } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
itemId: string
|
||
}
|
||
|
||
const OrderEditLineItem = ({
|
||
orderEditId,
|
||
itemId
|
||
}: Props) => {
|
||
const removeLineItem = useAdminOrderEditDeleteLineItem(
|
||
orderEditId,
|
||
itemId
|
||
)
|
||
|
||
const handleRemoveLineItem = () => {
|
||
removeLineItem.mutate(void 0, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(order_edit.changes)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEditLineItem
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/order-edits/{id}/items/{item_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/order-edits/{id}/request:
|
||
post:
|
||
operationId: PostOrderEditsOrderEditRequest
|
||
summary: Request Confirmation
|
||
description: Request customer confirmation of an Order Edit. This would emit the event `order-edit.requested` which Notification Providers listen to and send a notification to the customer about the order edit.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order Edit.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: requestConfirmation
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.orderEdits.requestConfirmation(orderEditId)
|
||
.then({ order_edit }) => {
|
||
console.log(order_edit.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRequestOrderEditConfirmation,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
orderEditId: string
|
||
}
|
||
|
||
const OrderEdit = ({ orderEditId }: Props) => {
|
||
const requestOrderConfirmation =
|
||
useAdminRequestOrderEditConfirmation(
|
||
orderEditId
|
||
)
|
||
|
||
const handleRequestConfirmation = () => {
|
||
requestOrderConfirmation.mutate(void 0, {
|
||
onSuccess: ({ order_edit }) => {
|
||
console.log(
|
||
order_edit.requested_at,
|
||
order_edit.requested_by
|
||
)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default OrderEdit
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/order-edits/{id}/request' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Order Edits
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrderEditsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders:
|
||
get:
|
||
operationId: GetOrders
|
||
summary: List Orders
|
||
description: Retrieve a list of Orders. The orders can be filtered by fields such as `status` or `display_id`. The order can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: term to search orders' shipping address, first name, email, and display ID
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
description: Filter by ID.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: status
|
||
style: form
|
||
explode: false
|
||
description: Filter by status
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- pending
|
||
- completed
|
||
- archived
|
||
- canceled
|
||
- requires_action
|
||
- in: query
|
||
name: fulfillment_status
|
||
style: form
|
||
explode: false
|
||
description: Filter by fulfillment status
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- not_fulfilled
|
||
- fulfilled
|
||
- partially_fulfilled
|
||
- shipped
|
||
- partially_shipped
|
||
- canceled
|
||
- returned
|
||
- partially_returned
|
||
- requires_action
|
||
- in: query
|
||
name: payment_status
|
||
style: form
|
||
explode: false
|
||
description: Filter by payment status
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- captured
|
||
- awaiting
|
||
- not_paid
|
||
- refunded
|
||
- partially_refunded
|
||
- canceled
|
||
- requires_action
|
||
- in: query
|
||
name: display_id
|
||
description: Filter by display ID
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: cart_id
|
||
description: Filter by cart ID
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: customer_id
|
||
description: Filter by customer ID
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: email
|
||
description: Filter by email
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: region_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by region IDs.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: ID of a Region.
|
||
- type: array
|
||
items:
|
||
type: string
|
||
description: ID of a Region.
|
||
- in: query
|
||
name: currency_code
|
||
style: form
|
||
explode: false
|
||
description: Filter by currency codes.
|
||
schema:
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
- in: query
|
||
name: tax_rate
|
||
description: Filter by tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: canceled_at
|
||
description: Filter by a cancelation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: sales_channel_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by Sales Channel IDs
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
description: The ID of a Sales Channel
|
||
- in: query
|
||
name: offset
|
||
description: The number of orders to skip when retrieving the orders.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of orders returned.
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: Field to sort retrieved orders by.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetOrdersParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminOrders } from "medusa-react"
|
||
|
||
const Orders = () => {
|
||
const { orders, isLoading } = useAdminOrders()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{orders && !orders.length && <span>No Orders</span>}
|
||
{orders && orders.length > 0 && (
|
||
<ul>
|
||
{orders.map((order) => (
|
||
<li key={order.id}>{order.display_id}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Orders
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/orders' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}:
|
||
get:
|
||
operationId: GetOrdersOrder
|
||
summary: Get an Order
|
||
description: Retrieve an Order's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetOrdersOrderParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const {
|
||
order,
|
||
isLoading,
|
||
} = useAdminOrder(orderId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{order && <span>{order.display_id}</span>}
|
||
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/orders/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostOrdersOrder
|
||
summary: Update an Order
|
||
description: Update and order's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderReq'
|
||
x-codegen:
|
||
method: update
|
||
params: AdminPostOrdersOrderParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const updateOrder = useAdminUpdateOrder(
|
||
orderId
|
||
)
|
||
|
||
const handleUpdate = (
|
||
email: string
|
||
) => {
|
||
updateOrder.mutate({
|
||
email,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.email)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/adasda' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/archive:
|
||
post:
|
||
operationId: PostOrdersOrderArchive
|
||
summary: Archive Order
|
||
description: Archive an order and change its status.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: archive
|
||
params: AdminPostOrdersOrderArchiveParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminArchiveOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const archiveOrder = useAdminArchiveOrder(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleArchivingOrder = () => {
|
||
archiveOrder.mutate(void 0, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.status)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/archive' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/cancel:
|
||
post:
|
||
operationId: PostOrdersOrderCancel
|
||
summary: Cancel an Order
|
||
description: 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.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancel
|
||
params: AdminPostOrdersOrderCancel
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const cancelOrder = useAdminCancelOrder(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCancel = () => {
|
||
cancelOrder.mutate(void 0, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.status)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/capture:
|
||
post:
|
||
operationId: PostOrdersOrderCapture
|
||
summary: Capture an Order's Payments
|
||
description: Capture all the Payments associated with an Order. The payment of canceled orders can't be captured.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: capturePayment
|
||
params: AdminPostOrdersOrderCaptureParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCapturePayment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const capturePayment = useAdminCapturePayment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCapture = () => {
|
||
capturePayment.mutate(void 0, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.status)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/capture' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/claims:
|
||
post:
|
||
operationId: PostOrdersOrderClaims
|
||
summary: Create a Claim
|
||
description: 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.
|
||
externalDocs:
|
||
description: How are claims created
|
||
url: https://docs.medusajs.com/modules/orders/claims#how-are-claims-created
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderClaimsReq'
|
||
x-codegen:
|
||
method: createClaim
|
||
params: AdminPostOrdersOrderClaimsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateClaim } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const CreateClaim = ({ orderId }: Props) => {
|
||
|
||
const CreateClaim = (orderId: string) => {
|
||
const createClaim = useAdminCreateClaim(orderId)
|
||
// ...
|
||
|
||
const handleCreate = (itemId: string) => {
|
||
createClaim.mutate({
|
||
type: "refund",
|
||
claim_items: [
|
||
{
|
||
item_id: itemId,
|
||
quantity: 1,
|
||
},
|
||
],
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.claims)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateClaim
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/claims' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"type": "refund",
|
||
"claim_items": [
|
||
{
|
||
"item_id": "asdsd",
|
||
"quantity": 1
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/claims/{claim_id}:
|
||
post:
|
||
operationId: PostOrdersOrderClaimsClaim
|
||
summary: Update a Claim
|
||
description: Update a Claim's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order associated with the claim.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: claim_id
|
||
required: true
|
||
description: The ID of the Claim.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderClaimsClaimReq'
|
||
x-codegen:
|
||
method: updateClaim
|
||
params: AdminPostOrdersOrderClaimsClaimParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateClaim } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
claimId: string
|
||
}
|
||
|
||
const Claim = ({ orderId, claimId }: Props) => {
|
||
const updateClaim = useAdminUpdateClaim(orderId)
|
||
// ...
|
||
|
||
const handleUpdate = () => {
|
||
updateClaim.mutate({
|
||
claim_id: claimId,
|
||
no_notification: false
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.claims)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Claim
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/claims/{claim_id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"no_notification": true
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/claims/{claim_id}/cancel:
|
||
post:
|
||
operationId: PostOrdersClaimCancel
|
||
summary: Cancel a Claim
|
||
description: 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.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Canceling a claim
|
||
url: https://docs.medusajs.com/modules/orders/claims#cancel-a-claim
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the order the claim is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: claim_id
|
||
required: true
|
||
description: The ID of the Claim.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancelClaim
|
||
params: AdminPostOrdersClaimCancel
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelClaim } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
claimId: string
|
||
}
|
||
|
||
const Claim = ({ orderId, claimId }: Props) => {
|
||
const cancelClaim = useAdminCancelClaim(orderId)
|
||
// ...
|
||
|
||
const handleCancel = () => {
|
||
cancelClaim.mutate(claimId)
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Claim
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/claims/{claim_id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/claims/{claim_id}/fulfillments:
|
||
post:
|
||
operationId: PostOrdersOrderClaimsClaimFulfillments
|
||
summary: Create a Claim Fulfillment
|
||
description: 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.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Fulfill a claim
|
||
url: https://docs.medusajs.com/modules/orders/claims#fulfill-a-claim
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order the claim is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: claim_id
|
||
required: true
|
||
description: The ID of the Claim.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderClaimsClaimFulfillmentsReq'
|
||
x-codegen:
|
||
method: fulfillClaim
|
||
params: AdminPostOrdersOrderClaimsClaimFulfillmentsReq
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminFulfillClaim } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
claimId: string
|
||
}
|
||
|
||
const Claim = ({ orderId, claimId }: Props) => {
|
||
const fulfillClaim = useAdminFulfillClaim(orderId)
|
||
// ...
|
||
|
||
const handleFulfill = () => {
|
||
fulfillClaim.mutate({
|
||
claim_id: claimId,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.claims)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Claim
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/claims/{claim_id}/fulfillments' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/claims/{claim_id}/fulfillments/{fulfillment_id}/cancel:
|
||
post:
|
||
operationId: PostOrdersClaimFulfillmentsCancel
|
||
summary: Cancel Claim's Fulfillment
|
||
description: Cancel a claim's fulfillment and change its fulfillment status to `canceled`.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the order the claim is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: claim_id
|
||
required: true
|
||
description: The ID of the claim.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: fulfillment_id
|
||
required: true
|
||
description: The ID of the fulfillment.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancelClaimFulfillment
|
||
params: AdminPostOrdersClaimFulfillmentsCancelParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelClaimFulfillment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
claimId: string
|
||
}
|
||
|
||
const Claim = ({ orderId, claimId }: Props) => {
|
||
const cancelFulfillment = useAdminCancelClaimFulfillment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCancel = (fulfillmentId: string) => {
|
||
cancelFulfillment.mutate({
|
||
claim_id: claimId,
|
||
fulfillment_id: fulfillmentId,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.claims)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Claim
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/claims/{claim_id}/fulfillments/{fulfillment_id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/claims/{claim_id}/shipments:
|
||
post:
|
||
operationId: PostOrdersOrderClaimsClaimShipments
|
||
summary: Ship a Claim's Fulfillment
|
||
description: Create a shipment for the claim and mark its fulfillment as shipped. This changes the claim's fulfillment status to either `partially_shipped` or `shipped`, depending on whether all the items were shipped.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Fulfill a claim
|
||
url: https://docs.medusajs.com/modules/orders/claims#fulfill-a-claim
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order the claim is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: claim_id
|
||
required: true
|
||
description: The ID of the Claim.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderClaimsClaimShipmentsReq'
|
||
x-codegen:
|
||
method: createClaimShipment
|
||
params: AdminPostOrdersOrderClaimsClaimShipmentsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateClaimShipment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
claimId: string
|
||
}
|
||
|
||
const Claim = ({ orderId, claimId }: Props) => {
|
||
const createShipment = useAdminCreateClaimShipment(orderId)
|
||
// ...
|
||
|
||
const handleCreateShipment = (fulfillmentId: string) => {
|
||
createShipment.mutate({
|
||
claim_id: claimId,
|
||
fulfillment_id: fulfillmentId,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.claims)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Claim
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/claims/{claim_id}/shipments' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"fulfillment_id": "{fulfillment_id}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/complete:
|
||
post:
|
||
operationId: PostOrdersOrderComplete
|
||
summary: Complete an Order
|
||
description: Complete an Order and change its status. A canceled order can't be completed.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: complete
|
||
params: AdminPostOrdersOrderCompleteParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCompleteOrder } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const completeOrder = useAdminCompleteOrder(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleComplete = () => {
|
||
completeOrder.mutate(void 0, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.status)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/complete' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/fulfillment:
|
||
post:
|
||
operationId: PostOrdersOrderFulfillments
|
||
summary: Create a Fulfillment
|
||
description: 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.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Fulfillments of orders
|
||
url: https://docs.medusajs.com/modules/orders/#fulfillments-in-orders
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderFulfillmentsReq'
|
||
x-codegen:
|
||
method: createFulfillment
|
||
params: AdminPostOrdersOrderFulfillmentsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateFulfillment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const createFulfillment = useAdminCreateFulfillment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCreateFulfillment = (
|
||
itemId: string,
|
||
quantity: number
|
||
) => {
|
||
createFulfillment.mutate({
|
||
items: [
|
||
{
|
||
item_id: itemId,
|
||
quantity,
|
||
},
|
||
],
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.fulfillments)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/fulfillment' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"items": [
|
||
{
|
||
"item_id": "{item_id}",
|
||
"quantity": 1
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/fulfillments/{fulfillment_id}/cancel:
|
||
post:
|
||
operationId: PostOrdersOrderFulfillmentsCancel
|
||
summary: Cancel a Fulfilmment
|
||
description: Cancel an order's fulfillment and change its fulfillment status to `canceled`.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: fulfillment_id
|
||
required: true
|
||
description: The ID of the Fulfillment.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancelFulfillment
|
||
params: AdminPostOrdersOrderFulfillementsCancelParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelFulfillment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const cancelFulfillment = useAdminCancelFulfillment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCancel = (
|
||
fulfillmentId: string
|
||
) => {
|
||
cancelFulfillment.mutate(fulfillmentId, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.fulfillments)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/line-items/{line_item_id}/reserve:
|
||
post:
|
||
operationId: PostOrdersOrderLineItemReservations
|
||
summary: Create a Reservation
|
||
description: Create a Reservation for a line item at a specified location, optionally for a partial quantity.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: line_item_id
|
||
required: true
|
||
description: The ID of the Line item.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersOrderLineItemReservationReq'
|
||
x-codeSamples:
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/line-items/{line_item_id}/reserve' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"location_id": "loc_1"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostReservationsReq'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/refund:
|
||
post:
|
||
operationId: PostOrdersOrderRefunds
|
||
summary: Create a Refund
|
||
description: Refund an amount for an order. The amount must be less than or equal the `refundable_amount` of the order.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderRefundsReq'
|
||
x-codegen:
|
||
method: refundPayment
|
||
params: AdminPostOrdersOrderRefundsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRefundPayment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const refundPayment = useAdminRefundPayment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleRefund = (
|
||
amount: number,
|
||
reason: string
|
||
) => {
|
||
refundPayment.mutate({
|
||
amount,
|
||
reason,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.refunds)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/adasda/refund' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"amount": 1000,
|
||
"reason": "Do not like it"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/reservations:
|
||
get:
|
||
operationId: GetOrdersOrderReservations
|
||
summary: Get Order Reservations
|
||
description: Retrieve the list of reservations of an Order
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: offset
|
||
description: The number of reservations to skip when retrieving the reservations.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of reservations returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
x-codeSamples:
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/orders/{id}/reservations' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReservationsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/return:
|
||
post:
|
||
operationId: PostOrdersOrderReturns
|
||
summary: Request a Return
|
||
description: Request and create a Return for items in an order. If the return shipping method is specified, it will be automatically fulfilled.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Return creation process
|
||
url: https://docs.medusajs.com/modules/orders/returns#returns-process
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderReturnsReq'
|
||
x-codegen:
|
||
method: requestReturn
|
||
params: AdminPostOrdersOrderReturnsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRequestReturn } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const requestReturn = useAdminRequestReturn(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleRequestingReturn = (
|
||
itemId: string,
|
||
quantity: number
|
||
) => {
|
||
requestReturn.mutate({
|
||
items: [
|
||
{
|
||
item_id: itemId,
|
||
quantity
|
||
}
|
||
]
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.returns)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/return' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"items": [
|
||
{
|
||
"item_id": "{item_id}",
|
||
"quantity": 1
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/shipment:
|
||
post:
|
||
operationId: PostOrdersOrderShipment
|
||
summary: Ship a Fulfillment
|
||
description: 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.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Fulfillments of orders
|
||
url: https://docs.medusajs.com/modules/orders/#fulfillments-in-orders
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderShipmentReq'
|
||
x-codegen:
|
||
method: createShipment
|
||
params: AdminPostOrdersOrderShipmentParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateShipment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const createShipment = useAdminCreateShipment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
fulfillmentId: string
|
||
) => {
|
||
createShipment.mutate({
|
||
fulfillment_id: fulfillmentId,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.fulfillment_status)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/shipment' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"fulfillment_id": "{fulfillment_id}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/shipping-methods:
|
||
post:
|
||
operationId: PostOrdersOrderShippingMethods
|
||
summary: Add a Shipping Method
|
||
description: Add a Shipping Method to an Order. If another Shipping Method exists with the same Shipping Profile, the previous Shipping Method will be replaced.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderShippingMethodsReq'
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: addShippingMethod
|
||
params: AdminPostOrdersOrderShippingMethodsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminAddShippingMethod } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const Order = ({ orderId }: Props) => {
|
||
const addShippingMethod = useAdminAddShippingMethod(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleAddShippingMethod = (
|
||
optionId: string,
|
||
price: number
|
||
) => {
|
||
addShippingMethod.mutate({
|
||
option_id: optionId,
|
||
price
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.shipping_methods)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Order
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/shipping-methods' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"price": 1000,
|
||
"option_id": "{option_id}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/swaps:
|
||
post:
|
||
operationId: PostOrdersOrderSwaps
|
||
summary: Create a Swap
|
||
description: Create a Swap. This includes creating a return that is associated with the swap.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: How are swaps created
|
||
url: https://docs.medusajs.com/modules/orders/swaps#how-are-swaps-created
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderSwapsReq'
|
||
x-codegen:
|
||
method: createSwap
|
||
queryParams: AdminPostOrdersOrderSwapsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateSwap } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string
|
||
}
|
||
|
||
const CreateSwap = ({ orderId }: Props) => {
|
||
const createSwap = useAdminCreateSwap(orderId)
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
returnItems: {
|
||
item_id: string,
|
||
quantity: number
|
||
}[]
|
||
) => {
|
||
createSwap.mutate({
|
||
return_items: returnItems
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.swaps)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateSwap
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/swaps' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"return_items": [
|
||
{
|
||
"item_id": "asfasf",
|
||
"quantity": 1
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/swaps/{swap_id}/cancel:
|
||
post:
|
||
operationId: PostOrdersSwapCancel
|
||
summary: Cancel a Swap
|
||
description: Cancel a Swap and change its status.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Canceling a swap
|
||
url: https://docs.medusajs.com/modules/orders/swaps#canceling-a-swap
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order the swap is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: swap_id
|
||
required: true
|
||
description: The ID of the Swap.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancelSwap
|
||
params: AdminPostOrdersSwapCancelParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelSwap } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string,
|
||
swapId: string
|
||
}
|
||
|
||
const Swap = ({
|
||
orderId,
|
||
swapId
|
||
}: Props) => {
|
||
const cancelSwap = useAdminCancelSwap(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCancel = () => {
|
||
cancelSwap.mutate(swapId, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.swaps)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Swap
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{order_id}/swaps/{swap_id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/swaps/{swap_id}/fulfillments:
|
||
post:
|
||
operationId: PostOrdersOrderSwapsSwapFulfillments
|
||
summary: Create a Swap Fulfillment
|
||
description: 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`.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Handling a swap's fulfillment
|
||
url: https://docs.medusajs.com/modules/orders/swaps#handling-swap-fulfillment
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order the swap is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: swap_id
|
||
required: true
|
||
description: The ID of the Swap.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderSwapsSwapFulfillmentsReq'
|
||
x-codegen:
|
||
method: fulfillSwap
|
||
params: AdminPostOrdersOrderSwapsSwapFulfillmentsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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, {
|
||
|
||
})
|
||
.then(({ order }) => {
|
||
console.log(order.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminFulfillSwap } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string,
|
||
swapId: string
|
||
}
|
||
|
||
const Swap = ({
|
||
orderId,
|
||
swapId
|
||
}: Props) => {
|
||
const fulfillSwap = useAdminFulfillSwap(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleFulfill = () => {
|
||
fulfillSwap.mutate({
|
||
swap_id: swapId,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.swaps)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Swap
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/swaps/{swap_id}/fulfillments' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/swaps/{swap_id}/fulfillments/{fulfillment_id}/cancel:
|
||
post:
|
||
operationId: PostOrdersSwapFulfillmentsCancel
|
||
summary: Cancel Swap's Fulfilmment
|
||
description: Cancel a swap's fulfillment and change its fulfillment status to `canceled`.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the order the swap is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: swap_id
|
||
required: true
|
||
description: The ID of the swap.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: fulfillment_id
|
||
required: true
|
||
description: The ID of the fulfillment.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancelSwapFulfillment
|
||
params: AdminPostOrdersSwapFulfillementsCancelParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelSwapFulfillment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string,
|
||
swapId: string
|
||
}
|
||
|
||
const Swap = ({
|
||
orderId,
|
||
swapId
|
||
}: Props) => {
|
||
const cancelFulfillment = useAdminCancelSwapFulfillment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCancelFulfillment = (
|
||
fulfillmentId: string
|
||
) => {
|
||
cancelFulfillment.mutate({
|
||
swap_id: swapId,
|
||
fulfillment_id: fulfillmentId,
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Swap
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/swaps/{swap_id}/fulfillments/{fulfillment_id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/swaps/{swap_id}/process-payment:
|
||
post:
|
||
operationId: PostOrdersOrderSwapsSwapProcessPayment
|
||
summary: Process a Swap Payment
|
||
description: 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.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Handling a swap's payment
|
||
url: https://docs.medusajs.com/modules/orders/swaps#handling-swap-payment
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the order the swap is associated with.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: swap_id
|
||
required: true
|
||
description: The ID of the swap.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: processSwapPayment
|
||
params: AdminPostOrdersOrderSwapsSwapProcessPaymentParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProcessSwapPayment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string,
|
||
swapId: string
|
||
}
|
||
|
||
const Swap = ({
|
||
orderId,
|
||
swapId
|
||
}: Props) => {
|
||
const processPayment = useAdminProcessSwapPayment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleProcessPayment = () => {
|
||
processPayment.mutate(swapId, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.swaps)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Swap
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/swaps/{swap_id}/process-payment' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/orders/{id}/swaps/{swap_id}/shipments:
|
||
post:
|
||
operationId: PostOrdersOrderSwapsSwapShipments
|
||
summary: Ship a Swap's Fulfillment
|
||
description: Create a shipment for a swap and mark its fulfillment as shipped. This changes the swap's fulfillment status to either `partially_shipped` or `shipped`, depending on whether all the items were shipped.
|
||
x-authenticated: true
|
||
externalDocs:
|
||
description: Handling swap fulfillments
|
||
url: https://docs.medusajs.com/modules/orders/swaps#handling-swap-fulfillment
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Order.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: swap_id
|
||
required: true
|
||
description: The ID of the Swap.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned order.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned order.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostOrdersOrderSwapsSwapShipmentsReq'
|
||
x-codegen:
|
||
method: createSwapShipment
|
||
params: AdminPostOrdersOrderSwapsSwapShipmentsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateSwapShipment } from "medusa-react"
|
||
|
||
type Props = {
|
||
orderId: string,
|
||
swapId: string
|
||
}
|
||
|
||
const Swap = ({
|
||
orderId,
|
||
swapId
|
||
}: Props) => {
|
||
const createShipment = useAdminCreateSwapShipment(
|
||
orderId
|
||
)
|
||
// ...
|
||
|
||
const handleCreateShipment = (
|
||
fulfillmentId: string
|
||
) => {
|
||
createShipment.mutate({
|
||
swap_id: swapId,
|
||
fulfillment_id: fulfillmentId,
|
||
}, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.swaps)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Swap
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/orders/{id}/swaps/{swap_id}/shipments' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"fulfillment_id": "{fulfillment_id}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Orders
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminOrdersRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/payment-collections/{id}:
|
||
get:
|
||
operationId: GetPaymentCollectionsPaymentCollection
|
||
summary: Get a Payment Collection
|
||
description: Retrieve a Payment Collection's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Payment Collection.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned payment collection.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned payment collection.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetPaymentCollectionsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.paymentCollections.retrieve(paymentCollectionId)
|
||
.then(({ payment_collection }) => {
|
||
console.log(payment_collection.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminPaymentCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
paymentCollectionId: string
|
||
}
|
||
|
||
const PaymentCollection = ({ paymentCollectionId }: Props) => {
|
||
const {
|
||
payment_collection,
|
||
isLoading,
|
||
} = useAdminPaymentCollection(paymentCollectionId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{payment_collection && (
|
||
<span>{payment_collection.status}</span>
|
||
)}
|
||
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default PaymentCollection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/payment-collections/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Payment Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPaymentCollectionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostPaymentCollectionsPaymentCollection
|
||
summary: Update Payment Collection
|
||
description: Update a Payment Collection's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Payment Collection.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUpdatePaymentCollectionsReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.paymentCollections.update(paymentCollectionId, {
|
||
description
|
||
})
|
||
.then(({ payment_collection }) => {
|
||
console.log(payment_collection.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdatePaymentCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
paymentCollectionId: string
|
||
}
|
||
|
||
const PaymentCollection = ({ paymentCollectionId }: Props) => {
|
||
const updateCollection = useAdminUpdatePaymentCollection(
|
||
paymentCollectionId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
description: string
|
||
) => {
|
||
updateCollection.mutate({
|
||
description
|
||
}, {
|
||
onSuccess: ({ payment_collection }) => {
|
||
console.log(payment_collection.description)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PaymentCollection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/payment-collections/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"description": "Description of payment collection"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Payment Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPaymentCollectionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeletePaymentCollectionsPaymentCollection
|
||
summary: Delete a Payment Collection
|
||
description: Delete a Payment Collection. Only payment collections with the statuses `canceled` or `not_paid` can be deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Payment Collection.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.paymentCollections.delete(paymentCollectionId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeletePaymentCollection } from "medusa-react"
|
||
|
||
type Props = {
|
||
paymentCollectionId: string
|
||
}
|
||
|
||
const PaymentCollection = ({ paymentCollectionId }: Props) => {
|
||
const deleteCollection = useAdminDeletePaymentCollection(
|
||
paymentCollectionId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteCollection.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PaymentCollection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/payment-collections/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Payment Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPaymentCollectionDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
/admin/payment-collections/{id}/authorize:
|
||
post:
|
||
operationId: PostPaymentCollectionsPaymentCollectionAuthorize
|
||
summary: Mark Authorized
|
||
description: Set the status of a Payment Collection as `authorized`. This will also change the `authorized_amount` of the payment collection.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Payment Collection.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: markAsAuthorized
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.paymentCollections.markAsAuthorized(paymentCollectionId)
|
||
.then(({ payment_collection }) => {
|
||
console.log(payment_collection.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminMarkPaymentCollectionAsAuthorized } from "medusa-react"
|
||
|
||
type Props = {
|
||
paymentCollectionId: string
|
||
}
|
||
|
||
const PaymentCollection = ({ paymentCollectionId }: Props) => {
|
||
const markAsAuthorized = useAdminMarkPaymentCollectionAsAuthorized(
|
||
paymentCollectionId
|
||
)
|
||
// ...
|
||
|
||
const handleAuthorization = () => {
|
||
markAsAuthorized.mutate(void 0, {
|
||
onSuccess: ({ payment_collection }) => {
|
||
console.log(payment_collection.status)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PaymentCollection
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/payment-collections/{id}/authorize' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Payment Collections
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPaymentCollectionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/payments/{id}:
|
||
get:
|
||
operationId: GetPaymentsPayment
|
||
summary: Get Payment details
|
||
description: Retrieve a Payment's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Payment.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: GetPaymentsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.payments.retrieve(paymentId)
|
||
.then(({ payment }) => {
|
||
console.log(payment.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminPayment } from "medusa-react"
|
||
|
||
type Props = {
|
||
paymentId: string
|
||
}
|
||
|
||
const Payment = ({ paymentId }: Props) => {
|
||
const {
|
||
payment,
|
||
isLoading,
|
||
} = useAdminPayment(paymentId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{payment && <span>{payment.amount}</span>}
|
||
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Payment
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/payments/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Payments
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPaymentRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/payments/{id}/capture:
|
||
post:
|
||
operationId: PostPaymentsPaymentCapture
|
||
summary: Capture a Payment
|
||
description: Capture a Payment.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Payment.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: capturePayment
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.payments.capturePayment(paymentId)
|
||
.then(({ payment }) => {
|
||
console.log(payment.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminPaymentsCapturePayment } from "medusa-react"
|
||
|
||
type Props = {
|
||
paymentId: string
|
||
}
|
||
|
||
const Payment = ({ paymentId }: Props) => {
|
||
const capture = useAdminPaymentsCapturePayment(
|
||
paymentId
|
||
)
|
||
// ...
|
||
|
||
const handleCapture = () => {
|
||
capture.mutate(void 0, {
|
||
onSuccess: ({ payment }) => {
|
||
console.log(payment.amount)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Payment
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/payments/{id}/capture' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Payments
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPaymentRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/payments/{id}/refund:
|
||
post:
|
||
operationId: PostPaymentsPaymentRefunds
|
||
summary: Refund Payment
|
||
description: Refund a payment. The payment must be captured first.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Payment.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostPaymentRefundsReq'
|
||
x-codegen:
|
||
method: refundPayment
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.payments.refundPayment(paymentId, {
|
||
amount: 1000,
|
||
reason: "return",
|
||
note: "Do not like it",
|
||
})
|
||
.then(({ payment }) => {
|
||
console.log(payment.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { RefundReason } from "@medusajs/medusa"
|
||
import { useAdminPaymentsRefundPayment } from "medusa-react"
|
||
|
||
type Props = {
|
||
paymentId: string
|
||
}
|
||
|
||
const Payment = ({ paymentId }: Props) => {
|
||
const refund = useAdminPaymentsRefundPayment(
|
||
paymentId
|
||
)
|
||
// ...
|
||
|
||
const handleRefund = (
|
||
amount: number,
|
||
reason: RefundReason,
|
||
note: string
|
||
) => {
|
||
refund.mutate({
|
||
amount,
|
||
reason,
|
||
note
|
||
}, {
|
||
onSuccess: ({ refund }) => {
|
||
console.log(refund.amount)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Payment
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/payments/pay_123/refund' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"amount": 1000,
|
||
"reason": "return",
|
||
"note": "Do not like it"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Payments
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRefundRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/price-lists:
|
||
get:
|
||
operationId: GetPriceLists
|
||
summary: List Price Lists
|
||
description: Retrieve a list of price lists. The price lists can be filtered by fields such as `q` or `status`. The price lists can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of price lists returned.
|
||
schema:
|
||
type: number
|
||
default: '10'
|
||
- in: query
|
||
name: offset
|
||
description: The number of price lists to skip when retrieving the price lists.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned price lists.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned price lists.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A price-list field to sort-order the retrieved price lists by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
description: Filter by ID
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: term to search price lists' description, name, and customer group's name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: status
|
||
style: form
|
||
explode: false
|
||
description: Filter by status.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- active
|
||
- draft
|
||
- in: query
|
||
name: name
|
||
description: Filter by name
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: customer_groups
|
||
style: form
|
||
explode: false
|
||
description: Filter by customer-group IDs.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: type
|
||
style: form
|
||
explode: false
|
||
description: Filter by type.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- sale
|
||
- override
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetPriceListPaginationParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.list()
|
||
.then(({ price_lists, limit, offset, count }) => {
|
||
console.log(price_lists.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminPriceLists } from "medusa-react"
|
||
|
||
const PriceLists = () => {
|
||
const { price_lists, isLoading } = useAdminPriceLists()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{price_lists && !price_lists.length && (
|
||
<span>No Price Lists</span>
|
||
)}
|
||
{price_lists && price_lists.length > 0 && (
|
||
<ul>
|
||
{price_lists.map((price_list) => (
|
||
<li key={price_list.id}>{price_list.name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default PriceLists
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/price-lists' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostPriceListsPriceList
|
||
summary: Create a Price List
|
||
description: Create a Price List.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostPriceListsPriceListReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
import Medusa from "@medusajs/medusa-js"
|
||
import { PriceListType } from "@medusajs/medusa"
|
||
const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||
// must be previously logged in or use api token
|
||
medusa.admin.priceLists.create({
|
||
name: "New Price List",
|
||
description: "A new price list",
|
||
type: PriceListType.SALE,
|
||
prices: [
|
||
{
|
||
amount: 1000,
|
||
variant_id,
|
||
currency_code: "eur"
|
||
}
|
||
]
|
||
})
|
||
.then(({ price_list }) => {
|
||
console.log(price_list.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
PriceListStatus,
|
||
PriceListType,
|
||
} from "@medusajs/medusa"
|
||
import { useAdminCreatePriceList } from "medusa-react"
|
||
|
||
type CreateData = {
|
||
name: string
|
||
description: string
|
||
type: PriceListType
|
||
status: PriceListStatus
|
||
prices: {
|
||
amount: number
|
||
variant_id: string
|
||
currency_code: string
|
||
max_quantity: number
|
||
}[]
|
||
}
|
||
|
||
const CreatePriceList = () => {
|
||
const createPriceList = useAdminCreatePriceList()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
data: CreateData
|
||
) => {
|
||
createPriceList.mutate(data, {
|
||
onSuccess: ({ price_list }) => {
|
||
console.log(price_list.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreatePriceList
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/price-lists' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "New Price List",
|
||
"description": "A new price list",
|
||
"type": "sale",
|
||
"prices": [
|
||
{
|
||
"amount": 1000,
|
||
"variant_id": "afafa",
|
||
"currency_code": "eur"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/price-lists/{id}:
|
||
get:
|
||
operationId: GetPriceListsPriceList
|
||
summary: Get a Price List
|
||
description: Retrieve a Price List's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.retrieve(priceListId)
|
||
.then(({ price_list }) => {
|
||
console.log(price_list.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminPriceList } from "medusa-react"
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
}
|
||
|
||
const PriceList = ({
|
||
priceListId
|
||
}: Props) => {
|
||
const {
|
||
price_list,
|
||
isLoading,
|
||
} = useAdminPriceList(priceListId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{price_list && <span>{price_list.name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default PriceList
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/price-lists/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostPriceListsPriceListPriceList
|
||
summary: Update a Price List
|
||
description: Update a Price List's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostPriceListsPriceListPriceListReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.update(priceListId, {
|
||
name: "New Price List"
|
||
})
|
||
.then(({ price_list }) => {
|
||
console.log(price_list.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdatePriceList } from "medusa-react"
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
}
|
||
|
||
const PriceList = ({
|
||
priceListId
|
||
}: Props) => {
|
||
const updatePriceList = useAdminUpdatePriceList(priceListId)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
endsAt: Date
|
||
) => {
|
||
updatePriceList.mutate({
|
||
ends_at: endsAt,
|
||
}, {
|
||
onSuccess: ({ price_list }) => {
|
||
console.log(price_list.ends_at)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PriceList
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/price-lists/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "New Price List"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeletePriceListsPriceList
|
||
summary: Delete a Price List
|
||
description: Delete a Price List and its associated prices.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.delete(priceListId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeletePriceList } from "medusa-react"
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
}
|
||
|
||
const PriceList = ({
|
||
priceListId
|
||
}: Props) => {
|
||
const deletePriceList = useAdminDeletePriceList(priceListId)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deletePriceList.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PriceList
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/price-lists/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/price-lists/{id}/prices/batch:
|
||
post:
|
||
operationId: PostPriceListsPriceListPricesBatch
|
||
summary: Add or Update Prices
|
||
description: Add or update a list of prices in a Price List.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostPriceListPricesPricesReq'
|
||
x-codegen:
|
||
method: addPrices
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.addPrices(priceListId, {
|
||
prices: [
|
||
{
|
||
amount: 1000,
|
||
variant_id,
|
||
currency_code: "eur"
|
||
}
|
||
]
|
||
})
|
||
.then(({ price_list }) => {
|
||
console.log(price_list.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreatePriceListPrices } from "medusa-react"
|
||
|
||
type PriceData = {
|
||
amount: number
|
||
variant_id: string
|
||
currency_code: string
|
||
}
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
}
|
||
|
||
const PriceList = ({
|
||
priceListId
|
||
}: Props) => {
|
||
const addPrices = useAdminCreatePriceListPrices(priceListId)
|
||
// ...
|
||
|
||
const handleAddPrices = (prices: PriceData[]) => {
|
||
addPrices.mutate({
|
||
prices
|
||
}, {
|
||
onSuccess: ({ price_list }) => {
|
||
console.log(price_list.prices)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PriceList
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/price-lists/{id}/prices/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"prices": [
|
||
{
|
||
"amount": 100,
|
||
"variant_id": "afasfa",
|
||
"currency_code": "eur"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeletePriceListsPriceListPricesBatch
|
||
summary: Delete Prices
|
||
description: Delete a list of prices in a Price List
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeletePriceListPricesPricesReq'
|
||
x-codegen:
|
||
method: deletePrices
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.deletePrices(priceListId, {
|
||
price_ids: [
|
||
price_id
|
||
]
|
||
})
|
||
.then(({ ids, object, deleted }) => {
|
||
console.log(ids.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeletePriceListPrices } from "medusa-react"
|
||
|
||
const PriceList = (
|
||
priceListId: string
|
||
) => {
|
||
const deletePrices = useAdminDeletePriceListPrices(priceListId)
|
||
// ...
|
||
|
||
const handleDeletePrices = (priceIds: string[]) => {
|
||
deletePrices.mutate({
|
||
price_ids: priceIds
|
||
}, {
|
||
onSuccess: ({ ids, deleted, object }) => {
|
||
console.log(ids)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PriceList
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/price-lists/{id}/prices/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"price_ids": [
|
||
"adasfa"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListDeleteBatchRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/price-lists/{id}/products:
|
||
get:
|
||
operationId: GetPriceListsPriceListProducts
|
||
summary: List Products
|
||
description: Retrieve a price list's products. The products can be filtered by fields such as `q` or `status`. The products can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the price list.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: term used to search products' title, description, product variant's title and sku, and product collection's title.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by product IDs.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: ID of the product.
|
||
- type: array
|
||
items:
|
||
type: string
|
||
description: ID of a product.
|
||
- in: query
|
||
name: status
|
||
description: Filter by product status
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- draft
|
||
- proposed
|
||
- published
|
||
- rejected
|
||
- in: query
|
||
name: collection_id
|
||
description: Filter by product collection ID. Only products in the specified collections are retrieved.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: tags
|
||
description: Filter by tag IDs. Only products having the specified tags are retrieved.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: title
|
||
description: Filter by title
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: description
|
||
description: Filter by description
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: handle
|
||
description: Filter by handle
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: is_giftcard
|
||
description: A boolean value to filter by whether the product is a gift card or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: type
|
||
description: Filter product type.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A product field to sort-order the retrieved products by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: offset
|
||
description: The number of products to skip when retrieving the products.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of products returned.
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned products.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned products.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: listProducts
|
||
queryParams: AdminGetPriceListsPriceListProductsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.listProducts(priceListId)
|
||
.then(({ products, limit, offset, count }) => {
|
||
console.log(products.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminPriceListProducts } from "medusa-react"
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
}
|
||
|
||
const PriceListProducts = ({
|
||
priceListId
|
||
}: Props) => {
|
||
const { products, isLoading } = useAdminPriceListProducts(
|
||
priceListId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{products && !products.length && (
|
||
<span>No Price Lists</span>
|
||
)}
|
||
{products && products.length > 0 && (
|
||
<ul>
|
||
{products.map((product) => (
|
||
<li key={product.id}>{product.title}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default PriceListProducts
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/price-lists/{id}/products' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListsProductsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/price-lists/{id}/products/prices/batch:
|
||
delete:
|
||
operationId: DeletePriceListsPriceListProductsPricesBatch
|
||
summary: Delete Product Prices
|
||
description: Delete all the prices associated with multiple products in a price list.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteProductsPrices
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.deleteProductsPrices(priceListId, {
|
||
product_ids: [
|
||
productId1,
|
||
productId2,
|
||
]
|
||
})
|
||
.then(({ ids, object, deleted }) => {
|
||
console.log(ids.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeletePriceListProductsPrices } from "medusa-react"
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
}
|
||
|
||
const PriceList = ({
|
||
priceListId
|
||
}: Props) => {
|
||
const deleteProductsPrices = useAdminDeletePriceListProductsPrices(
|
||
priceListId
|
||
)
|
||
// ...
|
||
|
||
const handleDeleteProductsPrices = (productIds: string[]) => {
|
||
deleteProductsPrices.mutate({
|
||
product_ids: productIds
|
||
}, {
|
||
onSuccess: ({ ids, deleted, object }) => {
|
||
console.log(ids)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PriceList
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/price-lists/{id}/products/prices/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_ids": [
|
||
"prod_1",
|
||
"prod_2"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListDeleteProductPricesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/price-lists/{id}/products/{product_id}/prices:
|
||
delete:
|
||
operationId: DeletePriceListsPriceListProductsProductPrices
|
||
summary: Delete a Product's Prices
|
||
description: Delete all the prices related to a specific product in a price list.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: product_id
|
||
required: true
|
||
description: The ID of the product from which the prices will be deleted.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteProductPrices
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.deleteProductPrices(priceListId, productId)
|
||
.then(({ ids, object, deleted }) => {
|
||
console.log(ids.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminDeletePriceListProductPrices
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
productId: string
|
||
}
|
||
|
||
const PriceListProduct = ({
|
||
priceListId,
|
||
productId
|
||
}: Props) => {
|
||
const deleteProductPrices = useAdminDeletePriceListProductPrices(
|
||
priceListId,
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleDeleteProductPrices = () => {
|
||
deleteProductPrices.mutate(void 0, {
|
||
onSuccess: ({ ids, deleted, object }) => {
|
||
console.log(ids)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PriceListProduct
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/price-lists/{id}/products/{product_id}/prices' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListDeleteProductPricesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/price-lists/{id}/variants/{variant_id}/prices:
|
||
delete:
|
||
operationId: DeletePriceListsPriceListVariantsVariantPrices
|
||
summary: Delete a Variant's Prices
|
||
description: Delete all the prices related to a specific variant in a price list.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Price List.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: variant_id
|
||
required: true
|
||
description: The ID of the variant.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteVariantPrices
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.priceLists.deleteVariantPrices(priceListId, variantId)
|
||
.then(({ ids, object, deleted }) => {
|
||
console.log(ids);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminDeletePriceListVariantPrices
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
priceListId: string
|
||
variantId: string
|
||
}
|
||
|
||
const PriceListVariant = ({
|
||
priceListId,
|
||
variantId
|
||
}: Props) => {
|
||
const deleteVariantPrices = useAdminDeletePriceListVariantPrices(
|
||
priceListId,
|
||
variantId
|
||
)
|
||
// ...
|
||
|
||
const handleDeleteVariantPrices = () => {
|
||
deleteVariantPrices.mutate(void 0, {
|
||
onSuccess: ({ ids, deleted, object }) => {
|
||
console.log(ids)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PriceListVariant
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/price-lists/{id}/variants/{variant_id}/prices' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Price Lists
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPriceListDeleteVariantPricesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/product-categories:
|
||
get:
|
||
operationId: GetProductCategories
|
||
summary: List Product Categories
|
||
description: Retrieve a list of product categories. The product categories can be filtered by fields such as `q` or `handle`. The product categories can also be paginated.
|
||
x-authenticated: true
|
||
x-featureFlag: product_categories
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: term to search product categories' names and handles.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: handle
|
||
description: Filter by handle.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: is_internal
|
||
description: Filter by whether the category is internal or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: is_active
|
||
description: Filter by whether the category is active or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: include_descendants_tree
|
||
description: If set to `true`, all nested descendants of a category are included in the response.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: parent_category_id
|
||
description: Filter by the ID of a parent category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: offset
|
||
description: The number of product categories to skip when retrieving the product categories.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of product categories returned.
|
||
schema:
|
||
type: integer
|
||
default: 100
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned product categories.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned product categories.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetProductCategoriesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productCategories.list()
|
||
.then(({ product_categories, limit, offset, count }) => {
|
||
console.log(product_categories.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProductCategories } from "medusa-react"
|
||
|
||
function Categories() {
|
||
const {
|
||
product_categories,
|
||
isLoading
|
||
} = useAdminProductCategories()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{product_categories && !product_categories.length && (
|
||
<span>No Categories</span>
|
||
)}
|
||
{product_categories && product_categories.length > 0 && (
|
||
<ul>
|
||
{product_categories.map(
|
||
(category) => (
|
||
<li key={category.id}>{category.name}</li>
|
||
)
|
||
)}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Categories
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/product-categories' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Categories
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductCategoriesListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostProductCategories
|
||
summary: Create a Product Category
|
||
description: Create a Product Category.
|
||
x-authenticated: true
|
||
x-featureFlag: product_categories
|
||
parameters:
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned product category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned product category.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductCategoriesReq'
|
||
x-codegen:
|
||
method: create
|
||
queryParams: AdminPostProductCategoriesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productCategories.create({
|
||
name: "Skinny Jeans",
|
||
})
|
||
.then(({ product_category }) => {
|
||
console.log(product_category.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateProductCategory } from "medusa-react"
|
||
|
||
const CreateCategory = () => {
|
||
const createCategory = useAdminCreateProductCategory()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
name: string
|
||
) => {
|
||
createCategory.mutate({
|
||
name,
|
||
}, {
|
||
onSuccess: ({ product_category }) => {
|
||
console.log(product_category.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateCategory
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/product-categories' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Skinny Jeans"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Categories
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductCategoriesCategoryRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/product-categories/{id}:
|
||
get:
|
||
operationId: GetProductCategoriesCategory
|
||
summary: Get a Product Category
|
||
description: Retrieve a Product Category's details.
|
||
x-authenticated: true
|
||
x-featureFlag: product_categories
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product Category
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned product category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned product category.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetProductCategoryParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productCategories.retrieve(productCategoryId)
|
||
.then(({ product_category }) => {
|
||
console.log(product_category.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProductCategory } from "medusa-react"
|
||
|
||
type Props = {
|
||
productCategoryId: string
|
||
}
|
||
|
||
const Category = ({
|
||
productCategoryId
|
||
}: Props) => {
|
||
const {
|
||
product_category,
|
||
isLoading,
|
||
} = useAdminProductCategory(productCategoryId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{product_category && (
|
||
<span>{product_category.name}</span>
|
||
)}
|
||
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Category
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/product-categories/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Categories
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductCategoriesCategoryRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostProductCategoriesCategory
|
||
summary: Update a Product Category
|
||
description: Updates a Product Category.
|
||
x-authenticated: true
|
||
x-featureFlag: product_categories
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product Category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: (Comma separated) Which fields should be expanded in each product category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: (Comma separated) Which fields should be retrieved in each product category.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductCategoriesCategoryReq'
|
||
x-codegen:
|
||
method: update
|
||
queryParams: AdminPostProductCategoriesCategoryParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productCategories.update(productCategoryId, {
|
||
name: "Skinny Jeans"
|
||
})
|
||
.then(({ product_category }) => {
|
||
console.log(product_category.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateProductCategory } from "medusa-react"
|
||
|
||
type Props = {
|
||
productCategoryId: string
|
||
}
|
||
|
||
const Category = ({
|
||
productCategoryId
|
||
}: Props) => {
|
||
const updateCategory = useAdminUpdateProductCategory(
|
||
productCategoryId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
name: string
|
||
) => {
|
||
updateCategory.mutate({
|
||
name,
|
||
}, {
|
||
onSuccess: ({ product_category }) => {
|
||
console.log(product_category.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Category
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/product-categories/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Skinny Jeans"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Categories
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductCategoriesCategoryRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteProductCategoriesCategory
|
||
summary: Delete a Product Category
|
||
description: Delete a Product Category. This does not delete associated products.
|
||
x-authenticated: true
|
||
x-featureFlag: product_categories
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product Category
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productCategories.delete(productCategoryId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteProductCategory } from "medusa-react"
|
||
|
||
type Props = {
|
||
productCategoryId: string
|
||
}
|
||
|
||
const Category = ({
|
||
productCategoryId
|
||
}: Props) => {
|
||
const deleteCategory = useAdminDeleteProductCategory(
|
||
productCategoryId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteCategory.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Category
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/product-categories/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Categories
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductCategoriesCategoryDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/product-categories/{id}/products/batch:
|
||
post:
|
||
operationId: PostProductCategoriesCategoryProductsBatch
|
||
summary: Add Products to a Category
|
||
description: Add a list of products to a product category.
|
||
x-authenticated: true
|
||
x-featureFlag: product_categories
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product Category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned product category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned product category.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductCategoriesCategoryProductsBatchReq'
|
||
x-codegen:
|
||
method: addProducts
|
||
queryParams: AdminPostProductCategoriesCategoryProductsBatchParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productCategories.addProducts(productCategoryId, {
|
||
product_ids: [
|
||
{
|
||
id: productId
|
||
}
|
||
]
|
||
})
|
||
.then(({ product_category }) => {
|
||
console.log(product_category.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminAddProductsToCategory } from "medusa-react"
|
||
|
||
type ProductsData = {
|
||
id: string
|
||
}
|
||
|
||
type Props = {
|
||
productCategoryId: string
|
||
}
|
||
|
||
const Category = ({
|
||
productCategoryId
|
||
}: Props) => {
|
||
const addProducts = useAdminAddProductsToCategory(
|
||
productCategoryId
|
||
)
|
||
// ...
|
||
|
||
const handleAddProducts = (
|
||
productIds: ProductsData[]
|
||
) => {
|
||
addProducts.mutate({
|
||
product_ids: productIds
|
||
}, {
|
||
onSuccess: ({ product_category }) => {
|
||
console.log(product_category.products)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Category
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/product-categories/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_ids": [
|
||
{
|
||
"id": "{product_id}"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Categories
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductCategoriesCategoryRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteProductCategoriesCategoryProductsBatch
|
||
summary: Remove Products from Category
|
||
description: Remove a list of products from a product category.
|
||
x-authenticated: true
|
||
x-featureFlag: product_categories
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product Category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned product category.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned product category.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteProductCategoriesCategoryProductsBatchReq'
|
||
x-codegen:
|
||
method: removeProducts
|
||
queryParams: AdminDeleteProductCategoriesCategoryProductsBatchParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productCategories.removeProducts(productCategoryId, {
|
||
product_ids: [
|
||
{
|
||
id: productId
|
||
}
|
||
]
|
||
})
|
||
.then(({ product_category }) => {
|
||
console.log(product_category.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteProductsFromCategory } from "medusa-react"
|
||
|
||
type ProductsData = {
|
||
id: string
|
||
}
|
||
|
||
type Props = {
|
||
productCategoryId: string
|
||
}
|
||
|
||
const Category = ({
|
||
productCategoryId
|
||
}: Props) => {
|
||
const deleteProducts = useAdminDeleteProductsFromCategory(
|
||
productCategoryId
|
||
)
|
||
// ...
|
||
|
||
const handleDeleteProducts = (
|
||
productIds: ProductsData[]
|
||
) => {
|
||
deleteProducts.mutate({
|
||
product_ids: productIds
|
||
}, {
|
||
onSuccess: ({ product_category }) => {
|
||
console.log(product_category.products)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Category
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/product-categories/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_ids": [
|
||
{
|
||
"id": "{product_id}"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Categories
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductCategoriesCategoryRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/product-tags:
|
||
get:
|
||
operationId: GetProductTags
|
||
summary: List Product Tags
|
||
description: Retrieve a list of product tags. The product tags can be filtered by fields such as `q` or `value`. The product tags can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of product tags returned.
|
||
schema:
|
||
type: integer
|
||
default: 10
|
||
- in: query
|
||
name: offset
|
||
description: The number of product tags to skip when retrieving the product tags.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: order
|
||
description: A product tag field to sort-order the retrieved product tags by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: discount_condition_id
|
||
description: Filter by the ID of a discount condition. Only product tags that this discount condition is applied to will be retrieved.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: value
|
||
style: form
|
||
explode: false
|
||
description: Filter by tag value.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: term to search product tags' values.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by tag IDs.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetProductTagsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productTags.list()
|
||
.then(({ product_tags }) => {
|
||
console.log(product_tags.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProductTags } from "medusa-react"
|
||
|
||
function ProductTags() {
|
||
const {
|
||
product_tags,
|
||
isLoading
|
||
} = useAdminProductTags()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{product_tags && !product_tags.length && (
|
||
<span>No Product Tags</span>
|
||
)}
|
||
{product_tags && product_tags.length > 0 && (
|
||
<ul>
|
||
{product_tags.map(
|
||
(tag) => (
|
||
<li key={tag.id}>{tag.value}</li>
|
||
)
|
||
)}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ProductTags
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/product-tags' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Tags
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductTagsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/product-types:
|
||
get:
|
||
operationId: GetProductTypes
|
||
summary: List Product Types
|
||
description: Retrieve a list of product types. The product types can be filtered by fields such as `q` or `value`. The product types can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of product types returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
- in: query
|
||
name: offset
|
||
description: The number of product types to skip when retrieving the product types.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: order
|
||
description: A product type field to sort-order the retrieved product types by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: discount_condition_id
|
||
description: Filter by the ID of a discount condition. Only product types that this discount condition is applied to will be retrieved.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: value
|
||
style: form
|
||
explode: false
|
||
description: Filter by value.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by product type IDs.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: term to search product types' values.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetProductTypesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.productTypes.list()
|
||
.then(({ product_types }) => {
|
||
console.log(product_types.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProductTypes } from "medusa-react"
|
||
|
||
function ProductTypes() {
|
||
const {
|
||
product_types,
|
||
isLoading
|
||
} = useAdminProductTypes()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{product_types && !product_types.length && (
|
||
<span>No Product Tags</span>
|
||
)}
|
||
{product_types && product_types.length > 0 && (
|
||
<ul>
|
||
{product_types.map(
|
||
(type) => (
|
||
<li key={type.id}>{type.value}</li>
|
||
)
|
||
)}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ProductTypes
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/product-types' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Types
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductTypesListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products:
|
||
get:
|
||
operationId: GetProducts
|
||
summary: List Products
|
||
description: Retrieve a list of products. The products can be filtered by fields such as `q` or `status`. The products can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: term to search products' title, description, variants' title and sku, and collections' title.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: discount_condition_id
|
||
description: Filter by the ID of a discount condition. Only products that this discount condition is applied to will be retrieved.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by product IDs.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: ID of the product.
|
||
- type: array
|
||
items:
|
||
type: string
|
||
description: ID of a product.
|
||
- in: query
|
||
name: status
|
||
style: form
|
||
explode: false
|
||
description: Filter by status.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- draft
|
||
- proposed
|
||
- published
|
||
- rejected
|
||
- in: query
|
||
name: collection_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by product collection IDs. Only products that are associated with the specified collections will be retrieved.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: tags
|
||
style: form
|
||
explode: false
|
||
description: Filter by product tag IDs. Only products that are associated with the specified tags will be retrieved.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: price_list_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by IDs of price lists. Only products that these price lists are applied to will be retrieved.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: sales_channel_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by sales channel IDs. Only products that are available in the specified sales channels will be retrieved.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: type_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by product type IDs. Only products that are associated with the specified types will be retrieved.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: category_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by product category IDs. Only products that are associated with the specified categories will be retrieved.
|
||
schema:
|
||
type: array
|
||
x-featureFlag: product_categories
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: include_category_children
|
||
style: form
|
||
explode: false
|
||
description: whether to include product category children when filtering by `category_id`
|
||
schema:
|
||
type: boolean
|
||
x-featureFlag: product_categories
|
||
- in: query
|
||
name: title
|
||
description: Filter by title.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: description
|
||
description: Filter by description.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: handle
|
||
description: Filter by handle.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: is_giftcard
|
||
description: Whether to retrieve gift cards or regular products.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: offset
|
||
description: The number of products to skip when retrieving the products.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of products returned.
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned products.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned products.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A product field to sort-order the retrieved products by.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetProductsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.list()
|
||
.then(({ products, limit, offset, count }) => {
|
||
console.log(products.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProducts } from "medusa-react"
|
||
|
||
const Products = () => {
|
||
const { products, isLoading } = useAdminProducts()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{products && !products.length && <span>No Products</span>}
|
||
{products && products.length > 0 && (
|
||
<ul>
|
||
{products.map((product) => (
|
||
<li key={product.id}>{product.title}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Products
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/products' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostProducts
|
||
summary: Create a Product
|
||
x-authenticated: true
|
||
description: Create a new Product. This API Route can also be used to create a gift card if the `is_giftcard` field is set to `true`.
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.create({
|
||
title: "Shirt",
|
||
is_giftcard: false,
|
||
discountable: true
|
||
})
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateProduct } from "medusa-react"
|
||
|
||
type CreateProductData = {
|
||
title: string
|
||
is_giftcard: boolean
|
||
discountable: boolean
|
||
options: {
|
||
title: string
|
||
}[]
|
||
variants: {
|
||
title: string
|
||
prices: {
|
||
amount: number
|
||
currency_code :string
|
||
}[]
|
||
options: {
|
||
value: string
|
||
}[]
|
||
}[],
|
||
collection_id: string
|
||
categories: {
|
||
id: string
|
||
}[]
|
||
type: {
|
||
value: string
|
||
}
|
||
tags: {
|
||
value: string
|
||
}[]
|
||
}
|
||
|
||
const CreateProduct = () => {
|
||
const createProduct = useAdminCreateProduct()
|
||
// ...
|
||
|
||
const handleCreate = (productData: CreateProductData) => {
|
||
createProduct.mutate(productData, {
|
||
onSuccess: ({ product }) => {
|
||
console.log(product.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateProduct
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/products' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "Shirt"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/tag-usage:
|
||
get:
|
||
operationId: GetProductsTagUsage
|
||
summary: List Tags Usage Number
|
||
description: Retrieve a list of Product Tags with how many times each is used in products.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: listTags
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.listTags()
|
||
.then(({ tags }) => {
|
||
console.log(tags.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProductTagUsage } from "medusa-react"
|
||
|
||
const ProductTags = (productId: string) => {
|
||
const { tags, isLoading } = useAdminProductTagUsage()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{tags && !tags.length && <span>No Product Tags</span>}
|
||
{tags && tags.length > 0 && (
|
||
<ul>
|
||
{tags.map((tag) => (
|
||
<li key={tag.id}>{tag.value} - {tag.usage_count}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ProductTags
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/products/tag-usage' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsListTagsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/types:
|
||
get:
|
||
deprecated: true
|
||
operationId: GetProductsTypes
|
||
summary: List Product Types
|
||
description: Retrieve a list of Product Types.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: listTypes
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.listTypes()
|
||
.then(({ types }) => {
|
||
console.log(types.length);
|
||
})
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/products/types' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsListTypesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/{id}:
|
||
get:
|
||
operationId: GetProductsProduct
|
||
summary: Get a Product
|
||
description: Retrieve a Product's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.retrieve(productId)
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminProduct } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
}
|
||
|
||
const Product = ({ productId }: Props) => {
|
||
const {
|
||
product,
|
||
isLoading,
|
||
} = useAdminProduct(productId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{product && <span>{product.title}</span>}
|
||
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Product
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/products/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostProductsProduct
|
||
summary: Update a Product
|
||
description: Update a Product's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsProductReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.update(productId, {
|
||
title: "Shirt",
|
||
})
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateProduct } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
}
|
||
|
||
const Product = ({ productId }: Props) => {
|
||
const updateProduct = useAdminUpdateProduct(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
title: string
|
||
) => {
|
||
updateProduct.mutate({
|
||
title,
|
||
}, {
|
||
onSuccess: ({ product }) => {
|
||
console.log(product.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Product
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/products/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "Size"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteProductsProduct
|
||
summary: Delete a Product
|
||
description: Delete a Product and its associated product variants and options.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.delete(productId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteProduct } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
}
|
||
|
||
const Product = ({ productId }: Props) => {
|
||
const deleteProduct = useAdminDeleteProduct(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteProduct.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted}) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Product
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/products/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/{id}/metadata:
|
||
post:
|
||
operationId: PostProductsProductMetadata
|
||
summary: Set Metadata
|
||
description: Set the metadata of a Product. It can be any key-value pair, which allows adding custom data to a product.
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsProductMetadataReq'
|
||
x-codegen:
|
||
method: setMetadata
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.setMetadata(productId, {
|
||
key: "test",
|
||
value: "true"
|
||
})
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/products/{id}/metadata' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"key": "test",
|
||
"value": "true"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/{id}/options:
|
||
post:
|
||
operationId: PostProductsProductOptions
|
||
summary: Add a Product Option
|
||
description: Add a Product Option to a Product.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsProductOptionsReq'
|
||
x-codegen:
|
||
method: addOption
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.addOption(productId, {
|
||
title: "Size"
|
||
})
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateProductOption } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
}
|
||
|
||
const CreateProductOption = ({ productId }: Props) => {
|
||
const createOption = useAdminCreateProductOption(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
title: string
|
||
) => {
|
||
createOption.mutate({
|
||
title
|
||
}, {
|
||
onSuccess: ({ product }) => {
|
||
console.log(product.options)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateProductOption
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/products/{id}/options' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "Size"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/{id}/options/{option_id}:
|
||
post:
|
||
operationId: PostProductsProductOptionsOption
|
||
summary: Update a Product Option
|
||
description: Update a Product Option's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: option_id
|
||
required: true
|
||
description: The ID of the Product Option.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsProductOptionsOption'
|
||
x-codegen:
|
||
method: updateOption
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.updateOption(productId, optionId, {
|
||
title: "Size"
|
||
})
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateProductOption } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
optionId: string
|
||
}
|
||
|
||
const ProductOption = ({
|
||
productId,
|
||
optionId
|
||
}: Props) => {
|
||
const updateOption = useAdminUpdateProductOption(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
title: string
|
||
) => {
|
||
updateOption.mutate({
|
||
option_id: optionId,
|
||
title,
|
||
}, {
|
||
onSuccess: ({ product }) => {
|
||
console.log(product.options)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ProductOption
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/products/{id}/options/{option_id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "Size"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteProductsProductOptionsOption
|
||
summary: Delete a Product Option
|
||
description: Delete a Product Option. If there are product variants that use this product option, they must be deleted before deleting the product option.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: option_id
|
||
required: true
|
||
description: The ID of the Product Option.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteOption
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.deleteOption(productId, optionId)
|
||
.then(({ option_id, object, deleted, product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteProductOption } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
optionId: string
|
||
}
|
||
|
||
const ProductOption = ({
|
||
productId,
|
||
optionId
|
||
}: Props) => {
|
||
const deleteOption = useAdminDeleteProductOption(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteOption.mutate(optionId, {
|
||
onSuccess: ({ option_id, object, deleted, product }) => {
|
||
console.log(product.options)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ProductOption
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/products/{id}/options/{option_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsDeleteOptionRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/{id}/variants:
|
||
get:
|
||
operationId: GetProductsProductVariants
|
||
summary: List a Product's Variants
|
||
description: |
|
||
Retrieve a list of Product Variants associated with a Product. The variants can be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the product.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
description: IDs to filter product variants by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned product variants.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned product variants.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: offset
|
||
description: The number of product variants to skip when retrieving the product variants.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of product variants returned.
|
||
schema:
|
||
type: integer
|
||
default: 100
|
||
- in: query
|
||
name: q
|
||
description: Search term to search product variants' title, sku, and products' title.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: manage_inventory
|
||
description: Filter product variants by whether their inventory is managed or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: allow_backorder
|
||
description: Filter product variants by whether they are allowed to be backordered or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: inventory_quantity
|
||
description: Filter by available inventory quantity
|
||
schema:
|
||
oneOf:
|
||
- type: number
|
||
description: a specific number to filter by.
|
||
- type: object
|
||
description: filter using less and greater than comparisons.
|
||
properties:
|
||
lt:
|
||
type: number
|
||
description: filter by inventory quantity less than this number
|
||
gt:
|
||
type: number
|
||
description: filter by inventory quantity greater than this number
|
||
lte:
|
||
type: number
|
||
description: filter by inventory quantity less than or equal to this number
|
||
gte:
|
||
type: number
|
||
description: filter by inventory quantity greater than or equal to this number
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: listVariants
|
||
queryParams: AdminGetProductsVariantsParams
|
||
x-codeSamples:
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/products/{id}/variants' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsListVariantsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostProductsProductVariants
|
||
summary: Create a Product Variant
|
||
description: Create a Product Variant associated with a Product. Each product variant must have a unique combination of Product Option values.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsProductVariantsReq'
|
||
x-codegen:
|
||
method: createVariant
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.createVariant(productId, {
|
||
title: "Color",
|
||
prices: [
|
||
{
|
||
amount: 1000,
|
||
currency_code: "eur"
|
||
}
|
||
],
|
||
options: [
|
||
{
|
||
option_id,
|
||
value: "S"
|
||
}
|
||
],
|
||
inventory_quantity: 100
|
||
})
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateVariant } from "medusa-react"
|
||
|
||
type CreateVariantData = {
|
||
title: string
|
||
prices: {
|
||
amount: number
|
||
currency_code: string
|
||
}[]
|
||
options: {
|
||
option_id: string
|
||
value: string
|
||
}[]
|
||
}
|
||
|
||
type Props = {
|
||
productId: string
|
||
}
|
||
|
||
const CreateProductVariant = ({ productId }: Props) => {
|
||
const createVariant = useAdminCreateVariant(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
variantData: CreateVariantData
|
||
) => {
|
||
createVariant.mutate(variantData, {
|
||
onSuccess: ({ product }) => {
|
||
console.log(product.variants)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateProductVariant
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/products/{id}/variants' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "Color",
|
||
"prices": [
|
||
{
|
||
"amount": 1000,
|
||
"currency_code": "eur"
|
||
}
|
||
],
|
||
"options": [
|
||
{
|
||
"option_id": "asdasf",
|
||
"value": "S"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/products/{id}/variants/{variant_id}:
|
||
post:
|
||
operationId: PostProductsProductVariantsVariant
|
||
summary: Update a Product Variant
|
||
description: Update a Product Variant's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: variant_id
|
||
required: true
|
||
description: The ID of the Product Variant.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostProductsProductVariantsVariantReq'
|
||
x-codegen:
|
||
method: updateVariant
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.updateVariant(productId, variantId, {
|
||
title: "Color",
|
||
prices: [
|
||
{
|
||
amount: 1000,
|
||
currency_code: "eur"
|
||
}
|
||
],
|
||
options: [
|
||
{
|
||
option_id,
|
||
value: "S"
|
||
}
|
||
],
|
||
inventory_quantity: 100
|
||
})
|
||
.then(({ product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateVariant } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
variantId: string
|
||
}
|
||
|
||
const ProductVariant = ({
|
||
productId,
|
||
variantId
|
||
}: Props) => {
|
||
const updateVariant = useAdminUpdateVariant(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (title: string) => {
|
||
updateVariant.mutate({
|
||
variant_id: variantId,
|
||
title,
|
||
}, {
|
||
onSuccess: ({ product }) => {
|
||
console.log(product.variants)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ProductVariant
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "Color",
|
||
"prices": [
|
||
{
|
||
"amount": 1000,
|
||
"currency_code": "eur"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteProductsProductVariantsVariant
|
||
summary: Delete a Product Variant
|
||
description: Delete a Product Variant.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Product.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: variant_id
|
||
required: true
|
||
description: The ID of the Product Variant.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteVariant
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.products.deleteVariant(productId, variantId)
|
||
.then(({ variant_id, object, deleted, product }) => {
|
||
console.log(product.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteVariant } from "medusa-react"
|
||
|
||
type Props = {
|
||
productId: string
|
||
variantId: string
|
||
}
|
||
|
||
const ProductVariant = ({
|
||
productId,
|
||
variantId
|
||
}: Props) => {
|
||
const deleteVariant = useAdminDeleteVariant(
|
||
productId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteVariant.mutate(variantId, {
|
||
onSuccess: ({ variant_id, object, deleted, product }) => {
|
||
console.log(product.variants)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ProductVariant
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/products/{id}/variants/{variant_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Products
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminProductsDeleteVariantRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/publishable-api-keys:
|
||
get:
|
||
operationId: GetPublishableApiKeys
|
||
summary: List Publishable API keys
|
||
description: Retrieve a list of publishable API keys. The publishable API keys can be filtered by fields such as `q`. The publishable API keys can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: term to search publishable API keys' titles.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of publishable API keys returned.
|
||
schema:
|
||
type: number
|
||
default: '20'
|
||
- in: query
|
||
name: offset
|
||
description: The number of publishable API keys to skip when retrieving the publishable API keys.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned publishable API keys.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned publishable API keys.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A field to sort-order the retrieved publishable API keys by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
required: false
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
required: false
|
||
description: Filter by a update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: revoked_at
|
||
required: false
|
||
description: Filter by a revocation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: GetPublishableApiKeysParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.list()
|
||
.then(({ publishable_api_keys, count, limit, offset }) => {
|
||
console.log(publishable_api_keys)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { PublishableApiKey } from "@medusajs/medusa"
|
||
import { useAdminPublishableApiKeys } from "medusa-react"
|
||
|
||
const PublishableApiKeys = () => {
|
||
const { publishable_api_keys, isLoading } =
|
||
useAdminPublishableApiKeys()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{publishable_api_keys && !publishable_api_keys.length && (
|
||
<span>No Publishable API Keys</span>
|
||
)}
|
||
{publishable_api_keys &&
|
||
publishable_api_keys.length > 0 && (
|
||
<ul>
|
||
{publishable_api_keys.map(
|
||
(publishableApiKey: PublishableApiKey) => (
|
||
<li key={publishableApiKey.id}>
|
||
{publishableApiKey.title}
|
||
</li>
|
||
)
|
||
)}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default PublishableApiKeys
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/publishable-api-keys' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostPublishableApiKeys
|
||
summary: Create Publishable API Key
|
||
description: Create a Publishable API Key.
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostPublishableApiKeysReq'
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.create({
|
||
title
|
||
})
|
||
.then(({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreatePublishableApiKey } from "medusa-react"
|
||
|
||
const CreatePublishableApiKey = () => {
|
||
const createKey = useAdminCreatePublishableApiKey()
|
||
// ...
|
||
|
||
const handleCreate = (title: string) => {
|
||
createKey.mutate({
|
||
title,
|
||
}, {
|
||
onSuccess: ({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreatePublishableApiKey
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/publishable-api-keys' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "Web API Key"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/publishable-api-keys/{id}:
|
||
get:
|
||
operationId: GetPublishableApiKeysPublishableApiKey
|
||
summary: Get a Publishable API Key
|
||
description: Retrieve a publishable API key's details.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Publishable API Key.
|
||
schema:
|
||
type: string
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.retrieve(publishableApiKeyId)
|
||
.then(({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminPublishableApiKey,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
publishableApiKeyId: string
|
||
}
|
||
|
||
const PublishableApiKey = ({
|
||
publishableApiKeyId
|
||
}: Props) => {
|
||
const { publishable_api_key, isLoading } =
|
||
useAdminPublishableApiKey(
|
||
publishableApiKeyId
|
||
)
|
||
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{publishable_api_key && <span>{publishable_api_key.title}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default PublishableApiKey
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/publishable-api-keys/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostPublishableApiKysPublishableApiKey
|
||
summary: Update Publishable API Key
|
||
description: Update a Publishable API Key's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Publishable API Key.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostPublishableApiKeysPublishableApiKeyReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.update(publishableApiKeyId, {
|
||
title: "new title"
|
||
})
|
||
.then(({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdatePublishableApiKey } from "medusa-react"
|
||
|
||
type Props = {
|
||
publishableApiKeyId: string
|
||
}
|
||
|
||
const PublishableApiKey = ({
|
||
publishableApiKeyId
|
||
}: Props) => {
|
||
const updateKey = useAdminUpdatePublishableApiKey(
|
||
publishableApiKeyId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (title: string) => {
|
||
updateKey.mutate({
|
||
title,
|
||
}, {
|
||
onSuccess: ({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PublishableApiKey
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/publishable-api-key/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"title": "new title"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeletePublishableApiKeysPublishableApiKey
|
||
summary: Delete Publishable API Key
|
||
description: Delete a Publishable API Key. Associated resources, such as sales channels, are not deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Publishable API Key to delete.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.delete(publishableApiKeyId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeletePublishableApiKey } from "medusa-react"
|
||
|
||
type Props = {
|
||
publishableApiKeyId: string
|
||
}
|
||
|
||
const PublishableApiKey = ({
|
||
publishableApiKeyId
|
||
}: Props) => {
|
||
const deleteKey = useAdminDeletePublishableApiKey(
|
||
publishableApiKeyId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteKey.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PublishableApiKey
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/publishable-api-key/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeyDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
/admin/publishable-api-keys/{id}/revoke:
|
||
post:
|
||
operationId: PostPublishableApiKeysPublishableApiKeyRevoke
|
||
summary: Revoke a Publishable API Key
|
||
description: Revoke a Publishable API Key. Revoking the publishable API Key can't be undone, and the key can't be used in future requests.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Publishable API Key.
|
||
schema:
|
||
type: string
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: revoke
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.revoke(publishableApiKeyId)
|
||
.then(({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRevokePublishableApiKey } from "medusa-react"
|
||
|
||
type Props = {
|
||
publishableApiKeyId: string
|
||
}
|
||
|
||
const PublishableApiKey = ({
|
||
publishableApiKeyId
|
||
}: Props) => {
|
||
const revokeKey = useAdminRevokePublishableApiKey(
|
||
publishableApiKeyId
|
||
)
|
||
// ...
|
||
|
||
const handleRevoke = () => {
|
||
revokeKey.mutate(void 0, {
|
||
onSuccess: ({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.revoked_at)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PublishableApiKey
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/publishable-api-keys/{id}/revoke' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/publishable-api-keys/{id}/sales-channels:
|
||
get:
|
||
operationId: GetPublishableApiKeySalesChannels
|
||
summary: List Sales Channels
|
||
description: List the sales channels associated with a publishable API key. The sales channels can be filtered by fields such as `q`.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the publishable API key.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: query to search sales channels' names and descriptions.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: listSalesChannels
|
||
queryParams: GetPublishableApiKeySalesChannelsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.listSalesChannels()
|
||
.then(({ sales_channels }) => {
|
||
console.log(sales_channels.length)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminPublishableApiKeySalesChannels,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
publishableApiKeyId: string
|
||
}
|
||
|
||
const SalesChannels = ({
|
||
publishableApiKeyId
|
||
}: Props) => {
|
||
const { sales_channels, isLoading } =
|
||
useAdminPublishableApiKeySalesChannels(
|
||
publishableApiKeyId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{sales_channels && !sales_channels.length && (
|
||
<span>No Sales Channels</span>
|
||
)}
|
||
{sales_channels && sales_channels.length > 0 && (
|
||
<ul>
|
||
{sales_channels.map((salesChannel) => (
|
||
<li key={salesChannel.id}>{salesChannel.name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default SalesChannels
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/publishable-api-keys/{id}/sales-channels' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysListSalesChannelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/publishable-api-keys/{id}/sales-channels/batch:
|
||
post:
|
||
operationId: PostPublishableApiKeySalesChannelsChannelsBatch
|
||
summary: Add Sales Channels
|
||
description: Add a list of sales channels to a publishable API key.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Publishable Api Key.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostPublishableApiKeySalesChannelsBatchReq'
|
||
x-codegen:
|
||
method: addSalesChannelsBatch
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.addSalesChannelsBatch(publishableApiKeyId, {
|
||
sales_channel_ids: [
|
||
{
|
||
id: channelId
|
||
}
|
||
]
|
||
})
|
||
.then(({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminAddPublishableKeySalesChannelsBatch,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
publishableApiKeyId: string
|
||
}
|
||
|
||
const PublishableApiKey = ({
|
||
publishableApiKeyId
|
||
}: Props) => {
|
||
const addSalesChannels =
|
||
useAdminAddPublishableKeySalesChannelsBatch(
|
||
publishableApiKeyId
|
||
)
|
||
// ...
|
||
|
||
const handleAdd = (salesChannelId: string) => {
|
||
addSalesChannels.mutate({
|
||
sales_channel_ids: [
|
||
{
|
||
id: salesChannelId,
|
||
},
|
||
],
|
||
}, {
|
||
onSuccess: ({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PublishableApiKey
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/publishable-api-keys/{pak_id}/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"sales_channel_ids": [
|
||
{
|
||
"id": "{sales_channel_id}"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeletePublishableApiKeySalesChannelsChannelsBatch
|
||
summary: Remove Sales Channels
|
||
description: Remove a list of sales channels from a publishable API key. This doesn't delete the sales channels and only removes the association between them and the publishable API key.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Publishable API Key.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeletePublishableApiKeySalesChannelsBatchReq'
|
||
x-codegen:
|
||
method: deleteSalesChannelsBatch
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.publishableApiKeys.deleteSalesChannelsBatch(publishableApiKeyId, {
|
||
sales_channel_ids: [
|
||
{
|
||
id: channelId
|
||
}
|
||
]
|
||
})
|
||
.then(({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRemovePublishableKeySalesChannelsBatch,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
publishableApiKeyId: string
|
||
}
|
||
|
||
const PublishableApiKey = ({
|
||
publishableApiKeyId
|
||
}: Props) => {
|
||
const deleteSalesChannels =
|
||
useAdminRemovePublishableKeySalesChannelsBatch(
|
||
publishableApiKeyId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = (salesChannelId: string) => {
|
||
deleteSalesChannels.mutate({
|
||
sales_channel_ids: [
|
||
{
|
||
id: salesChannelId,
|
||
},
|
||
],
|
||
}, {
|
||
onSuccess: ({ publishable_api_key }) => {
|
||
console.log(publishable_api_key.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default PublishableApiKey
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/publishable-api-keys/{id}/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"sales_channel_ids": [
|
||
{
|
||
"id": "{sales_channel_id}"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Publishable Api Keys
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPublishableApiKeysRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions:
|
||
get:
|
||
operationId: GetRegions
|
||
summary: List Regions
|
||
description: Retrieve a list of Regions. The regions can be filtered by fields such as `created_at`. The regions can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: q
|
||
description: Term used to search regions' name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A field to sort-order the retrieved regions by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: limit
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
required: false
|
||
description: Limit the number of regions returned.
|
||
- in: query
|
||
name: offset
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
required: false
|
||
description: The number of regions to skip when retrieving the regions.
|
||
- in: query
|
||
name: created_at
|
||
required: false
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
required: false
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
required: false
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetRegionsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.list()
|
||
.then(({ regions, limit, offset, count }) => {
|
||
console.log(regions.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRegions } from "medusa-react"
|
||
|
||
const Regions = () => {
|
||
const { regions, isLoading } = useAdminRegions()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{regions && !regions.length && <span>No Regions</span>}
|
||
{regions && regions.length > 0 && (
|
||
<ul>
|
||
{regions.map((region) => (
|
||
<li key={region.id}>{region.name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Regions
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/regions' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostRegions
|
||
summary: Create a Region
|
||
description: Create a Region.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostRegionsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.create({
|
||
name: "Europe",
|
||
currency_code: "eur",
|
||
tax_rate: 0,
|
||
payment_providers: [
|
||
"manual"
|
||
],
|
||
fulfillment_providers: [
|
||
"manual"
|
||
],
|
||
countries: [
|
||
"DK"
|
||
]
|
||
})
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateRegion } from "medusa-react"
|
||
|
||
type CreateData = {
|
||
name: string
|
||
currency_code: string
|
||
tax_rate: number
|
||
payment_providers: string[]
|
||
fulfillment_providers: string[]
|
||
countries: string[]
|
||
}
|
||
|
||
const CreateRegion = () => {
|
||
const createRegion = useAdminCreateRegion()
|
||
// ...
|
||
|
||
const handleCreate = (regionData: CreateData) => {
|
||
createRegion.mutate(regionData, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateRegion
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/regions' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Europe",
|
||
"currency_code": "eur",
|
||
"tax_rate": 0,
|
||
"payment_providers": [
|
||
"manual"
|
||
],
|
||
"fulfillment_providers": [
|
||
"manual"
|
||
],
|
||
"countries": [
|
||
"DK"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}:
|
||
get:
|
||
operationId: GetRegionsRegion
|
||
summary: Get a Region
|
||
description: Retrieve a Region's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.retrieve(regionId)
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRegion } from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const { region, isLoading } = useAdminRegion(
|
||
regionId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{region && <span>{region.name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/regions/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostRegionsRegion
|
||
summary: Update a Region
|
||
description: Update a Region's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostRegionsRegionReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.update(regionId, {
|
||
name: "Europe"
|
||
})
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateRegion } from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const updateRegion = useAdminUpdateRegion(regionId)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
countries: string[]
|
||
) => {
|
||
updateRegion.mutate({
|
||
countries,
|
||
}, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/regions/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Europe"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteRegionsRegion
|
||
summary: Delete a Region
|
||
description: Delete a Region. Associated resources, such as providers or currencies are not deleted. Associated tax rates are deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.delete(regionId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteRegion } from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const deleteRegion = useAdminDeleteRegion(regionId)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteRegion.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/regions/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}/countries:
|
||
post:
|
||
operationId: PostRegionsRegionCountries
|
||
summary: Add Country
|
||
description: Add a Country to the list of Countries in a Region.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostRegionsRegionCountriesReq'
|
||
x-codegen:
|
||
method: addCountry
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.addCountry(regionId, {
|
||
country_code: "dk"
|
||
})
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRegionAddCountry } from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const addCountry = useAdminRegionAddCountry(regionId)
|
||
// ...
|
||
|
||
const handleAddCountry = (
|
||
countryCode: string
|
||
) => {
|
||
addCountry.mutate({
|
||
country_code: countryCode
|
||
}, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.countries)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/regions/{region_id}/countries' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"country_code": "dk"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}/countries/{country_code}:
|
||
delete:
|
||
operationId: PostRegionsRegionCountriesCountry
|
||
summary: Remove Country
|
||
x-authenticated: true
|
||
description: Remove a Country from the list of Countries in a Region. The country will still be available in the system, and it can be used in other regions.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: country_code
|
||
description: The 2 character ISO code for the Country.
|
||
required: true
|
||
schema:
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
x-codegen:
|
||
method: deleteCountry
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.deleteCountry(regionId, "dk")
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRegionRemoveCountry } from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const removeCountry = useAdminRegionRemoveCountry(regionId)
|
||
// ...
|
||
|
||
const handleRemoveCountry = (
|
||
countryCode: string
|
||
) => {
|
||
removeCountry.mutate(countryCode, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.countries)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/regions/{id}/countries/{country_code}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}/fulfillment-options:
|
||
get:
|
||
operationId: GetRegionsRegionFulfillmentOptions
|
||
summary: List Fulfillment Options
|
||
description: Retrieve a list of fulfillment options available in a Region.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieveFulfillmentOptions
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.retrieveFulfillmentOptions(regionId)
|
||
.then(({ fulfillment_options }) => {
|
||
console.log(fulfillment_options.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminRegionFulfillmentOptions } from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const {
|
||
fulfillment_options,
|
||
isLoading
|
||
} = useAdminRegionFulfillmentOptions(
|
||
regionId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{fulfillment_options && !fulfillment_options.length && (
|
||
<span>No Regions</span>
|
||
)}
|
||
{fulfillment_options &&
|
||
fulfillment_options.length > 0 && (
|
||
<ul>
|
||
{fulfillment_options.map((option) => (
|
||
<li key={option.provider_id}>
|
||
{option.provider_id}
|
||
</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/regions/{id}/fulfillment-options' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminGetRegionsRegionFulfillmentOptionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}/fulfillment-providers:
|
||
post:
|
||
operationId: PostRegionsRegionFulfillmentProviders
|
||
summary: Add Fulfillment Provider
|
||
description: Add a Fulfillment Provider to the list of fulfullment providers in a Region.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostRegionsRegionFulfillmentProvidersReq'
|
||
x-codegen:
|
||
method: addFulfillmentProvider
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.addFulfillmentProvider(regionId, {
|
||
provider_id: "manual"
|
||
})
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRegionAddFulfillmentProvider
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const addFulfillmentProvider =
|
||
useAdminRegionAddFulfillmentProvider(regionId)
|
||
// ...
|
||
|
||
const handleAddFulfillmentProvider = (
|
||
providerId: string
|
||
) => {
|
||
addFulfillmentProvider.mutate({
|
||
provider_id: providerId
|
||
}, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.fulfillment_providers)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/regions/{id}/fulfillment-providers' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"provider_id": "manual"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}/fulfillment-providers/{provider_id}:
|
||
delete:
|
||
operationId: PostRegionsRegionFulfillmentProvidersProvider
|
||
summary: Remove Fulfillment Provider
|
||
description: Remove a Fulfillment Provider from a Region. The fulfillment provider will still be available for usage in other regions.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: provider_id
|
||
required: true
|
||
description: The ID of the Fulfillment Provider.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deleteFulfillmentProvider
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.deleteFulfillmentProvider(regionId, "manual")
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRegionDeleteFulfillmentProvider
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const removeFulfillmentProvider =
|
||
useAdminRegionDeleteFulfillmentProvider(regionId)
|
||
// ...
|
||
|
||
const handleRemoveFulfillmentProvider = (
|
||
providerId: string
|
||
) => {
|
||
removeFulfillmentProvider.mutate(providerId, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.fulfillment_providers)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/regions/{id}/fulfillment-providers/{provider_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}/payment-providers:
|
||
post:
|
||
operationId: PostRegionsRegionPaymentProviders
|
||
summary: Add Payment Provider
|
||
description: Add a Payment Provider to the list of payment providers in a Region.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostRegionsRegionPaymentProvidersReq'
|
||
x-codegen:
|
||
method: addPaymentProvider
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.addPaymentProvider(regionId, {
|
||
provider_id: "manual"
|
||
})
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRegionAddPaymentProvider
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const addPaymentProvider =
|
||
useAdminRegionAddPaymentProvider(regionId)
|
||
// ...
|
||
|
||
const handleAddPaymentProvider = (
|
||
providerId: string
|
||
) => {
|
||
addPaymentProvider.mutate({
|
||
provider_id: providerId
|
||
}, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.payment_providers)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/regions/{id}/payment-providers' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"provider_id": "manual"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/regions/{id}/payment-providers/{provider_id}:
|
||
delete:
|
||
operationId: PostRegionsRegionPaymentProvidersProvider
|
||
summary: Remove Payment Provider
|
||
description: Remove a Payment Provider from a Region. The payment provider will still be available for usage in other regions.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Region.
|
||
schema:
|
||
type: string
|
||
- in: path
|
||
name: provider_id
|
||
required: true
|
||
description: The ID of the Payment Provider.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: deletePaymentProvider
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.regions.deletePaymentProvider(regionId, "manual")
|
||
.then(({ region }) => {
|
||
console.log(region.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRegionDeletePaymentProvider
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({
|
||
regionId
|
||
}: Props) => {
|
||
const removePaymentProvider =
|
||
useAdminRegionDeletePaymentProvider(regionId)
|
||
// ...
|
||
|
||
const handleRemovePaymentProvider = (
|
||
providerId: string
|
||
) => {
|
||
removePaymentProvider.mutate(providerId, {
|
||
onSuccess: ({ region }) => {
|
||
console.log(region.payment_providers)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/regions/{id}/payment-providers/{provider_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Regions
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminRegionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/reservations:
|
||
get:
|
||
operationId: GetReservations
|
||
summary: List Reservations
|
||
description: Retrieve a list of Reservations. The reservations can be filtered by fields such as `location_id` or `quantity`. The reservations can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: location_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by location ID
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: inventory_item_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by inventory item ID.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: line_item_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by line item ID.
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: quantity
|
||
description: Filter by reservation quantity
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: number
|
||
description: filter by reservation quantity less than this number
|
||
gt:
|
||
type: number
|
||
description: filter by reservation quantity greater than this number
|
||
lte:
|
||
type: number
|
||
description: filter by reservation quantity less than or equal to this number
|
||
gte:
|
||
type: number
|
||
description: filter by reservation quantity greater than or equal to this number
|
||
- in: query
|
||
name: description
|
||
description: Filter by description.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: description value to filter by.
|
||
- type: object
|
||
properties:
|
||
contains:
|
||
type: string
|
||
description: filter by reservation description containing search string.
|
||
starts_with:
|
||
type: string
|
||
description: filter by reservation description starting with search string.
|
||
ends_with:
|
||
type: string
|
||
description: filter by reservation description ending with search string.
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: offset
|
||
description: The number of reservations to skip when retrieving the reservations.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of reservations returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned reservations.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned reservations.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetReservationsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.reservations.list()
|
||
.then(({ reservations, count, limit, offset }) => {
|
||
console.log(reservations.length)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminReservations } from "medusa-react"
|
||
|
||
const Reservations = () => {
|
||
const { reservations, isLoading } = useAdminReservations()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{reservations && !reservations.length && (
|
||
<span>No Reservations</span>
|
||
)}
|
||
{reservations && reservations.length > 0 && (
|
||
<ul>
|
||
{reservations.map((reservation) => (
|
||
<li key={reservation.id}>{reservation.quantity}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Reservations
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/product-categories' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Reservations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReservationsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostReservations
|
||
summary: Create a Reservation
|
||
description: Create a Reservation which can be associated with any resource, such as an order's line item.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostReservationsReq'
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.reservations.create({
|
||
line_item_id: "item_123",
|
||
location_id: "loc_123",
|
||
inventory_item_id: "iitem_123",
|
||
quantity: 1
|
||
})
|
||
.then(({ reservation }) => {
|
||
console.log(reservation.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateReservation } from "medusa-react"
|
||
|
||
const CreateReservation = () => {
|
||
const createReservation = useAdminCreateReservation()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
locationId: string,
|
||
inventoryItemId: string,
|
||
quantity: number
|
||
) => {
|
||
createReservation.mutate({
|
||
location_id: locationId,
|
||
inventory_item_id: inventoryItemId,
|
||
quantity,
|
||
}, {
|
||
onSuccess: ({ reservation }) => {
|
||
console.log(reservation.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateReservation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/reservations' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"line_item_id": "item_123",
|
||
"location_id": "loc_123",
|
||
"inventory_item_id": "iitem_123",
|
||
"quantity": 1
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Reservations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReservationsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/reservations/{id}:
|
||
get:
|
||
operationId: GetReservationsReservation
|
||
summary: Get a Reservation
|
||
description: Retrieve a reservation's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the reservation.
|
||
schema:
|
||
type: string
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.reservations.retrieve(reservationId)
|
||
.then(({ reservation }) => {
|
||
console.log(reservation.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminReservation } from "medusa-react"
|
||
|
||
type Props = {
|
||
reservationId: string
|
||
}
|
||
|
||
const Reservation = ({ reservationId }: Props) => {
|
||
const { reservation, isLoading } = useAdminReservation(
|
||
reservationId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{reservation && <span>{reservation.inventory_item_id}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Reservation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/reservations/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Reservations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReservationsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostReservationsReservation
|
||
summary: Update a Reservation
|
||
description: Update a Reservation's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Reservation.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostReservationsReservationReq'
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.reservations.update(reservationId, {
|
||
quantity: 3
|
||
})
|
||
.then(({ reservation }) => {
|
||
console.log(reservation.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateReservation } from "medusa-react"
|
||
|
||
type Props = {
|
||
reservationId: string
|
||
}
|
||
|
||
const Reservation = ({ reservationId }: Props) => {
|
||
const updateReservation = useAdminUpdateReservation(
|
||
reservationId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
quantity: number
|
||
) => {
|
||
updateReservation.mutate({
|
||
quantity,
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Reservation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/reservations/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"quantity": 3,
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Reservations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReservationsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteReservationsReservation
|
||
summary: Delete a Reservation
|
||
description: Delete a Reservation. Associated resources, such as the line item, will not be deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Reservation to delete.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.reservations.delete(reservationId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteReservation } from "medusa-react"
|
||
|
||
type Props = {
|
||
reservationId: string
|
||
}
|
||
|
||
const Reservation = ({ reservationId }: Props) => {
|
||
const deleteReservation = useAdminDeleteReservation(
|
||
reservationId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteReservation.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Reservation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/reservations/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Reservations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReservationsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/return-reasons:
|
||
get:
|
||
operationId: GetReturnReasons
|
||
summary: List Return Reasons
|
||
description: Retrieve a list of Return Reasons.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: list
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returnReasons.list()
|
||
.then(({ return_reasons }) => {
|
||
console.log(return_reasons.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminReturnReasons } from "medusa-react"
|
||
|
||
const ReturnReasons = () => {
|
||
const { return_reasons, isLoading } = useAdminReturnReasons()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{return_reasons && !return_reasons.length && (
|
||
<span>No Return Reasons</span>
|
||
)}
|
||
{return_reasons && return_reasons.length > 0 && (
|
||
<ul>
|
||
{return_reasons.map((reason) => (
|
||
<li key={reason.id}>
|
||
{reason.label}: {reason.value}
|
||
</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ReturnReasons
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/return-reasons' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Return Reasons
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnReasonsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostReturnReasons
|
||
summary: Create a Return Reason
|
||
description: Create a Return Reason.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostReturnReasonsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returnReasons.create({
|
||
label: "Damaged",
|
||
value: "damaged"
|
||
})
|
||
.then(({ return_reason }) => {
|
||
console.log(return_reason.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateReturnReason } from "medusa-react"
|
||
|
||
const CreateReturnReason = () => {
|
||
const createReturnReason = useAdminCreateReturnReason()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
label: string,
|
||
value: string
|
||
) => {
|
||
createReturnReason.mutate({
|
||
label,
|
||
value,
|
||
}, {
|
||
onSuccess: ({ return_reason }) => {
|
||
console.log(return_reason.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateReturnReason
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/return-reasons' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"label": "Damaged",
|
||
"value": "damaged"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Return Reasons
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnReasonsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/return-reasons/{id}:
|
||
get:
|
||
operationId: GetReturnReasonsReason
|
||
summary: Get a Return Reason
|
||
description: Retrieve a Return Reason's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Return Reason.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returnReasons.retrieve(returnReasonId)
|
||
.then(({ return_reason }) => {
|
||
console.log(return_reason.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminReturnReason } from "medusa-react"
|
||
|
||
type Props = {
|
||
returnReasonId: string
|
||
}
|
||
|
||
const ReturnReason = ({ returnReasonId }: Props) => {
|
||
const { return_reason, isLoading } = useAdminReturnReason(
|
||
returnReasonId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{return_reason && <span>{return_reason.label}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ReturnReason
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/return-reasons/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Return Reasons
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnReasonsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostReturnReasonsReason
|
||
summary: Update a Return Reason
|
||
description: Update a Return Reason's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Return Reason.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostReturnReasonsReasonReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returnReasons.update(returnReasonId, {
|
||
label: "Damaged"
|
||
})
|
||
.then(({ return_reason }) => {
|
||
console.log(return_reason.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateReturnReason } from "medusa-react"
|
||
|
||
type Props = {
|
||
returnReasonId: string
|
||
}
|
||
|
||
const ReturnReason = ({ returnReasonId }: Props) => {
|
||
const updateReturnReason = useAdminUpdateReturnReason(
|
||
returnReasonId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
label: string
|
||
) => {
|
||
updateReturnReason.mutate({
|
||
label,
|
||
}, {
|
||
onSuccess: ({ return_reason }) => {
|
||
console.log(return_reason.label)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ReturnReason
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/return-reasons/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"label": "Damaged"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Return Reasons
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnReasonsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteReturnReason
|
||
summary: Delete a Return Reason
|
||
description: Delete a return reason.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the return reason
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returnReasons.delete(returnReasonId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteReturnReason } from "medusa-react"
|
||
|
||
type Props = {
|
||
returnReasonId: string
|
||
}
|
||
|
||
const ReturnReason = ({ returnReasonId }: Props) => {
|
||
const deleteReturnReason = useAdminDeleteReturnReason(
|
||
returnReasonId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteReturnReason.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ReturnReason
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/return-reasons/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Return Reasons
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnReasonsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/returns:
|
||
get:
|
||
operationId: GetReturns
|
||
summary: List Returns
|
||
description: Retrieve a list of Returns. The returns can be paginated.
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of Returns returned.
|
||
schema:
|
||
type: number
|
||
default: '50'
|
||
- in: query
|
||
name: offset
|
||
description: The number of Returns to skip when retrieving the Returns.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetReturnsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returns.list()
|
||
.then(({ returns, limit, offset, count }) => {
|
||
console.log(returns.length)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminReturns } from "medusa-react"
|
||
|
||
const Returns = () => {
|
||
const { returns, isLoading } = useAdminReturns()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{returns && !returns.length && (
|
||
<span>No Returns</span>
|
||
)}
|
||
{returns && returns.length > 0 && (
|
||
<ul>
|
||
{returns.map((returnData) => (
|
||
<li key={returnData.id}>
|
||
{returnData.status}
|
||
</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Returns
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/returns' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Returns
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/returns/{id}/cancel:
|
||
post:
|
||
operationId: PostReturnsReturnCancel
|
||
summary: Cancel a Return
|
||
description: Registers a Return as canceled. The return can be associated with an order, claim, or swap.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Return.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: cancel
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returns.cancel(returnId)
|
||
.then(({ order }) => {
|
||
console.log(order.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCancelReturn } from "medusa-react"
|
||
|
||
type Props = {
|
||
returnId: string
|
||
}
|
||
|
||
const Return = ({ returnId }: Props) => {
|
||
const cancelReturn = useAdminCancelReturn(
|
||
returnId
|
||
)
|
||
// ...
|
||
|
||
const handleCancel = () => {
|
||
cancelReturn.mutate(void 0, {
|
||
onSuccess: ({ order }) => {
|
||
console.log(order.returns)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Return
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/returns/{id}/cancel' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Returns
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnsCancelRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/returns/{id}/receive:
|
||
post:
|
||
operationId: PostReturnsReturnReceive
|
||
summary: Receive a Return
|
||
description: Mark a Return as received. This also updates the status of associated order, claim, or swap accordingly.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Return.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostReturnsReturnReceiveReq'
|
||
x-codegen:
|
||
method: receive
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.returns.receive(returnId, {
|
||
items: [
|
||
{
|
||
item_id,
|
||
quantity: 1
|
||
}
|
||
]
|
||
})
|
||
.then((data) => {
|
||
console.log(data.return.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminReceiveReturn } from "medusa-react"
|
||
|
||
type ReceiveReturnData = {
|
||
items: {
|
||
item_id: string
|
||
quantity: number
|
||
}[]
|
||
}
|
||
|
||
type Props = {
|
||
returnId: string
|
||
}
|
||
|
||
const Return = ({ returnId }: Props) => {
|
||
const receiveReturn = useAdminReceiveReturn(
|
||
returnId
|
||
)
|
||
// ...
|
||
|
||
const handleReceive = (data: ReceiveReturnData) => {
|
||
receiveReturn.mutate(data, {
|
||
onSuccess: ({ return: dataReturn }) => {
|
||
console.log(dataReturn.status)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Return
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/returns/{id}/receive' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"items": [
|
||
{
|
||
"item_id": "asafg",
|
||
"quantity": 1
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Returns
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminReturnsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/sales-channels:
|
||
get:
|
||
operationId: GetSalesChannels
|
||
summary: List Sales Channels
|
||
description: Retrieve a list of sales channels. The sales channels can be filtered by fields such as `q` or `name`. The sales channels can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: id
|
||
description: Filter by a sales channel ID.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: name
|
||
description: Filter by name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: description
|
||
description: Filter by description.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: term used to search sales channels' names and descriptions.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A sales-channel field to sort-order the retrieved sales channels by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: offset
|
||
description: The number of sales channels to skip when retrieving the sales channels.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of sales channels returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned sales channels.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned sales channels.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetSalesChannelsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.list()
|
||
.then(({ sales_channels, limit, offset, count }) => {
|
||
console.log(sales_channels.length)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminSalesChannels } from "medusa-react"
|
||
|
||
const SalesChannels = () => {
|
||
const { sales_channels, isLoading } = useAdminSalesChannels()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{sales_channels && !sales_channels.length && (
|
||
<span>No Sales Channels</span>
|
||
)}
|
||
{sales_channels && sales_channels.length > 0 && (
|
||
<ul>
|
||
{sales_channels.map((salesChannel) => (
|
||
<li key={salesChannel.id}>{salesChannel.name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default SalesChannels
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/sales-channels' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostSalesChannels
|
||
summary: Create a Sales Channel
|
||
description: Create a Sales Channel.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostSalesChannelsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.create({
|
||
name: "App",
|
||
description: "Mobile app"
|
||
})
|
||
.then(({ sales_channel }) => {
|
||
console.log(sales_channel.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateSalesChannel } from "medusa-react"
|
||
|
||
const CreateSalesChannel = () => {
|
||
const createSalesChannel = useAdminCreateSalesChannel()
|
||
// ...
|
||
|
||
const handleCreate = (name: string, description: string) => {
|
||
createSalesChannel.mutate({
|
||
name,
|
||
description,
|
||
}, {
|
||
onSuccess: ({ sales_channel }) => {
|
||
console.log(sales_channel.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateSalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/sales-channels' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "App"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/sales-channels/{id}:
|
||
get:
|
||
operationId: GetSalesChannelsSalesChannel
|
||
summary: Get a Sales Channel
|
||
description: Retrieve a sales channel's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Sales channel.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.retrieve(salesChannelId)
|
||
.then(({ sales_channel }) => {
|
||
console.log(sales_channel.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminSalesChannel } from "medusa-react"
|
||
|
||
type Props = {
|
||
salesChannelId: string
|
||
}
|
||
|
||
const SalesChannel = ({ salesChannelId }: Props) => {
|
||
const {
|
||
sales_channel,
|
||
isLoading,
|
||
} = useAdminSalesChannel(salesChannelId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{sales_channel && <span>{sales_channel.name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default SalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/sales-channels/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostSalesChannelsSalesChannel
|
||
summary: Update a Sales Channel
|
||
description: Update a Sales Channel's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Sales Channel.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostSalesChannelsSalesChannelReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.update(salesChannelId, {
|
||
name: "App"
|
||
})
|
||
.then(({ sales_channel }) => {
|
||
console.log(sales_channel.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateSalesChannel } from "medusa-react"
|
||
|
||
type Props = {
|
||
salesChannelId: string
|
||
}
|
||
|
||
const SalesChannel = ({ salesChannelId }: Props) => {
|
||
const updateSalesChannel = useAdminUpdateSalesChannel(
|
||
salesChannelId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
is_disabled: boolean
|
||
) => {
|
||
updateSalesChannel.mutate({
|
||
is_disabled,
|
||
}, {
|
||
onSuccess: ({ sales_channel }) => {
|
||
console.log(sales_channel.is_disabled)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default SalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/sales-channels/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "App"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteSalesChannelsSalesChannel
|
||
summary: Delete a Sales Channel
|
||
description: Delete a sales channel. Associated products, stock locations, and other resources are not deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Sales channel.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.delete(salesChannelId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteSalesChannel } from "medusa-react"
|
||
|
||
type Props = {
|
||
salesChannelId: string
|
||
}
|
||
|
||
const SalesChannel = ({ salesChannelId }: Props) => {
|
||
const deleteSalesChannel = useAdminDeleteSalesChannel(
|
||
salesChannelId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteSalesChannel.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default SalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/sales-channels/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/sales-channels/{id}/products/batch:
|
||
post:
|
||
operationId: PostSalesChannelsChannelProductsBatch
|
||
summary: Add Products to Sales Channel
|
||
description: Add a list of products to a sales channel.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Sales channel.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostSalesChannelsChannelProductsBatchReq'
|
||
x-codegen:
|
||
method: addProducts
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.addProducts(salesChannelId, {
|
||
product_ids: [
|
||
{
|
||
id: productId
|
||
}
|
||
]
|
||
})
|
||
.then(({ sales_channel }) => {
|
||
console.log(sales_channel.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminAddProductsToSalesChannel } from "medusa-react"
|
||
|
||
type Props = {
|
||
salesChannelId: string
|
||
}
|
||
|
||
const SalesChannel = ({ salesChannelId }: Props) => {
|
||
const addProducts = useAdminAddProductsToSalesChannel(
|
||
salesChannelId
|
||
)
|
||
// ...
|
||
|
||
const handleAddProducts = (productId: string) => {
|
||
addProducts.mutate({
|
||
product_ids: [
|
||
{
|
||
id: productId,
|
||
},
|
||
],
|
||
}, {
|
||
onSuccess: ({ sales_channel }) => {
|
||
console.log(sales_channel.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default SalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/sales-channels/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_ids": [
|
||
{
|
||
"id": "{product_id}"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteSalesChannelsChannelProductsBatch
|
||
summary: Remove Products from Sales Channel
|
||
description: Remove a list of products from a sales channel. This does not delete the product. It only removes the association between the product and the sales channel.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Sales Channel
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteSalesChannelsChannelProductsBatchReq'
|
||
x-codegen:
|
||
method: removeProducts
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.removeProducts(salesChannelId, {
|
||
product_ids: [
|
||
{
|
||
id: productId
|
||
}
|
||
]
|
||
})
|
||
.then(({ sales_channel }) => {
|
||
console.log(sales_channel.id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminDeleteProductsFromSalesChannel,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
salesChannelId: string
|
||
}
|
||
|
||
const SalesChannel = ({ salesChannelId }: Props) => {
|
||
const deleteProducts = useAdminDeleteProductsFromSalesChannel(
|
||
salesChannelId
|
||
)
|
||
// ...
|
||
|
||
const handleDeleteProducts = (productId: string) => {
|
||
deleteProducts.mutate({
|
||
product_ids: [
|
||
{
|
||
id: productId,
|
||
},
|
||
],
|
||
}, {
|
||
onSuccess: ({ sales_channel }) => {
|
||
console.log(sales_channel.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default SalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/sales-channels/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_ids": [
|
||
{
|
||
"id": "{product_id}"
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/sales-channels/{id}/stock-locations:
|
||
post:
|
||
operationId: PostSalesChannelsSalesChannelStockLocation
|
||
summary: Associate a Stock Location
|
||
description: Associate a stock location with a Sales Channel.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Sales Channel.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostSalesChannelsChannelStockLocationsReq'
|
||
x-codegen:
|
||
method: addLocation
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.addLocation(salesChannelId, {
|
||
location_id: "loc_123"
|
||
})
|
||
.then(({ sales_channel }) => {
|
||
console.log(sales_channel.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminAddLocationToSalesChannel
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
salesChannelId: string
|
||
}
|
||
|
||
const SalesChannel = ({ salesChannelId }: Props) => {
|
||
const addLocation = useAdminAddLocationToSalesChannel()
|
||
// ...
|
||
|
||
const handleAddLocation = (locationId: string) => {
|
||
addLocation.mutate({
|
||
sales_channel_id: salesChannelId,
|
||
location_id: locationId
|
||
}, {
|
||
onSuccess: ({ sales_channel }) => {
|
||
console.log(sales_channel.locations)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default SalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/sales-channels/{id}/stock-locations' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"locaton_id": "loc_123"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteSalesChannelsSalesChannelStockLocation
|
||
summary: Remove Stock Location from Sales Channels.
|
||
description: Remove a stock location from a Sales Channel. This only removes the association between the stock location and the sales channel. It does not delete the stock location.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Sales Channel.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteSalesChannelsChannelStockLocationsReq'
|
||
x-codegen:
|
||
method: removeLocation
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.salesChannels.removeLocation(salesChannelId, {
|
||
location_id: "loc_id"
|
||
})
|
||
.then(({ sales_channel }) => {
|
||
console.log(sales_channel.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminRemoveLocationFromSalesChannel
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
salesChannelId: string
|
||
}
|
||
|
||
const SalesChannel = ({ salesChannelId }: Props) => {
|
||
const removeLocation = useAdminRemoveLocationFromSalesChannel()
|
||
// ...
|
||
|
||
const handleRemoveLocation = (locationId: string) => {
|
||
removeLocation.mutate({
|
||
sales_channel_id: salesChannelId,
|
||
location_id: locationId
|
||
}, {
|
||
onSuccess: ({ sales_channel }) => {
|
||
console.log(sales_channel.locations)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default SalesChannel
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/sales-channels/{id}/stock-locations' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"locaton_id": "loc_id"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Sales Channels
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSalesChannelsDeleteLocationRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/shipping-options:
|
||
get:
|
||
operationId: GetShippingOptions
|
||
summary: List Shipping Options
|
||
description: Retrieve a list of Shipping Options. The shipping options can be filtered by fields such as `region_id` or `is_return`. The shipping options can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: name
|
||
description: Filter by name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: region_id
|
||
description: Filter by the ID of the region the shipping options belong to.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: is_return
|
||
description: Filter by whether the shipping options are return shipping options.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: admin_only
|
||
description: Filter by whether the shipping options are available for admin users only.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: q
|
||
description: Term used to search shipping options' name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A shipping option field to sort-order the retrieved shipping options by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by shipping option IDs.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: ID of the shipping option.
|
||
- type: array
|
||
items:
|
||
type: string
|
||
description: ID of a shipping option.
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: offset
|
||
description: The number of users to skip when retrieving the shipping options.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of shipping options returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned shipping options.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned shipping options.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetShippingOptionsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingOptions.list()
|
||
.then(({ shipping_options, count }) => {
|
||
console.log(shipping_options.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminShippingOptions } from "medusa-react"
|
||
|
||
const ShippingOptions = () => {
|
||
const {
|
||
shipping_options,
|
||
isLoading
|
||
} = useAdminShippingOptions()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{shipping_options && !shipping_options.length && (
|
||
<span>No Shipping Options</span>
|
||
)}
|
||
{shipping_options && shipping_options.length > 0 && (
|
||
<ul>
|
||
{shipping_options.map((option) => (
|
||
<li key={option.id}>{option.name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ShippingOptions
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/shipping-options' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Options
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingOptionsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostShippingOptions
|
||
summary: Create Shipping Option
|
||
description: Create a Shipping Option.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostShippingOptionsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingOptions.create({
|
||
name: "PostFake",
|
||
region_id,
|
||
provider_id,
|
||
data: {
|
||
},
|
||
price_type: "flat_rate"
|
||
})
|
||
.then(({ shipping_option }) => {
|
||
console.log(shipping_option.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateShippingOption } from "medusa-react"
|
||
|
||
type CreateShippingOption = {
|
||
name: string
|
||
provider_id: string
|
||
data: Record<string, unknown>
|
||
price_type: string
|
||
amount: number
|
||
}
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const Region = ({ regionId }: Props) => {
|
||
const createShippingOption = useAdminCreateShippingOption()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
data: CreateShippingOption
|
||
) => {
|
||
createShippingOption.mutate({
|
||
...data,
|
||
region_id: regionId
|
||
}, {
|
||
onSuccess: ({ shipping_option }) => {
|
||
console.log(shipping_option.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Region
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/shipping-options' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "PostFake",
|
||
"region_id": "afasf",
|
||
"provider_id": "manual",
|
||
"data": {},
|
||
"price_type": "flat_rate"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Options
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingOptionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/shipping-options/{id}:
|
||
get:
|
||
operationId: GetShippingOptionsOption
|
||
summary: Get a Shipping Option
|
||
description: Retrieve a Shipping Option's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Shipping Option.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingOptions.retrieve(optionId)
|
||
.then(({ shipping_option }) => {
|
||
console.log(shipping_option.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminShippingOption } from "medusa-react"
|
||
|
||
type Props = {
|
||
shippingOptionId: string
|
||
}
|
||
|
||
const ShippingOption = ({ shippingOptionId }: Props) => {
|
||
const {
|
||
shipping_option,
|
||
isLoading
|
||
} = useAdminShippingOption(
|
||
shippingOptionId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{shipping_option && <span>{shipping_option.name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ShippingOption
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/shipping-options/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Options
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingOptionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostShippingOptionsOption
|
||
summary: Update Shipping Option
|
||
description: Update a Shipping Option's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Shipping Option.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostShippingOptionsOptionReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingOptions.update(optionId, {
|
||
name: "PostFake",
|
||
requirements: [
|
||
{
|
||
id,
|
||
type: "max_subtotal",
|
||
amount: 1000
|
||
}
|
||
]
|
||
})
|
||
.then(({ shipping_option }) => {
|
||
console.log(shipping_option.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateShippingOption } from "medusa-react"
|
||
|
||
type Props = {
|
||
shippingOptionId: string
|
||
}
|
||
|
||
const ShippingOption = ({ shippingOptionId }: Props) => {
|
||
const updateShippingOption = useAdminUpdateShippingOption(
|
||
shippingOptionId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
name: string,
|
||
requirements: {
|
||
id: string,
|
||
type: string,
|
||
amount: number
|
||
}[]
|
||
) => {
|
||
updateShippingOption.mutate({
|
||
name,
|
||
requirements
|
||
}, {
|
||
onSuccess: ({ shipping_option }) => {
|
||
console.log(shipping_option.requirements)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ShippingOption
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/shipping-options/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"requirements": [
|
||
{
|
||
"type": "max_subtotal",
|
||
"amount": 1000
|
||
}
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Options
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingOptionsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteShippingOptionsOption
|
||
summary: Delete Shipping Option
|
||
description: Delete a Shipping Option. Once deleted, it can't be used when creating orders or returns.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Shipping Option.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingOptions.delete(optionId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteShippingOption } from "medusa-react"
|
||
|
||
type Props = {
|
||
shippingOptionId: string
|
||
}
|
||
|
||
const ShippingOption = ({ shippingOptionId }: Props) => {
|
||
const deleteShippingOption = useAdminDeleteShippingOption(
|
||
shippingOptionId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteShippingOption.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ShippingOption
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/shipping-options/{option_id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Options
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingOptionsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/shipping-profiles:
|
||
get:
|
||
operationId: GetShippingProfiles
|
||
summary: List Shipping Profiles
|
||
description: Retrieve a list of Shipping Profiles.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: list
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingProfiles.list()
|
||
.then(({ shipping_profiles }) => {
|
||
console.log(shipping_profiles.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminShippingProfiles } from "medusa-react"
|
||
|
||
const ShippingProfiles = () => {
|
||
const {
|
||
shipping_profiles,
|
||
isLoading
|
||
} = useAdminShippingProfiles()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{shipping_profiles && !shipping_profiles.length && (
|
||
<span>No Shipping Profiles</span>
|
||
)}
|
||
{shipping_profiles && shipping_profiles.length > 0 && (
|
||
<ul>
|
||
{shipping_profiles.map((profile) => (
|
||
<li key={profile.id}>{profile.name}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ShippingProfiles
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/shipping-profiles' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Profiles
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingProfilesListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostShippingProfiles
|
||
summary: Create a Shipping Profile
|
||
description: Create a Shipping Profile.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostShippingProfilesReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingProfiles.create({
|
||
name: "Large Products"
|
||
})
|
||
.then(({ shipping_profile }) => {
|
||
console.log(shipping_profile.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { ShippingProfileType } from "@medusajs/medusa"
|
||
import { useAdminCreateShippingProfile } from "medusa-react"
|
||
|
||
const CreateShippingProfile = () => {
|
||
const createShippingProfile = useAdminCreateShippingProfile()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
name: string,
|
||
type: ShippingProfileType
|
||
) => {
|
||
createShippingProfile.mutate({
|
||
name,
|
||
type
|
||
}, {
|
||
onSuccess: ({ shipping_profile }) => {
|
||
console.log(shipping_profile.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateShippingProfile
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/shipping-profiles' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Large Products"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Profiles
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingProfilesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/shipping-profiles/{id}:
|
||
get:
|
||
operationId: GetShippingProfilesProfile
|
||
summary: Get a Shipping Profile
|
||
description: Retrieve a Shipping Profile's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Shipping Profile.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingProfiles.retrieve(profileId)
|
||
.then(({ shipping_profile }) => {
|
||
console.log(shipping_profile.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminShippingProfile } from "medusa-react"
|
||
|
||
type Props = {
|
||
shippingProfileId: string
|
||
}
|
||
|
||
const ShippingProfile = ({ shippingProfileId }: Props) => {
|
||
const {
|
||
shipping_profile,
|
||
isLoading
|
||
} = useAdminShippingProfile(
|
||
shippingProfileId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{shipping_profile && (
|
||
<span>{shipping_profile.name}</span>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default ShippingProfile
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/shipping-profiles/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Profiles
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingProfilesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostShippingProfilesProfile
|
||
summary: Update a Shipping Profile
|
||
description: Update a Shipping Profile's details.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Shipping Profile.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostShippingProfilesProfileReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingProfiles.update(shippingProfileId, {
|
||
name: 'Large Products'
|
||
})
|
||
.then(({ shipping_profile }) => {
|
||
console.log(shipping_profile.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { ShippingProfileType } from "@medusajs/medusa"
|
||
import { useAdminUpdateShippingProfile } from "medusa-react"
|
||
|
||
type Props = {
|
||
shippingProfileId: string
|
||
}
|
||
|
||
const ShippingProfile = ({ shippingProfileId }: Props) => {
|
||
const updateShippingProfile = useAdminUpdateShippingProfile(
|
||
shippingProfileId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
name: string,
|
||
type: ShippingProfileType
|
||
) => {
|
||
updateShippingProfile.mutate({
|
||
name,
|
||
type
|
||
}, {
|
||
onSuccess: ({ shipping_profile }) => {
|
||
console.log(shipping_profile.name)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ShippingProfile
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/shipping-profiles/{id} \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Large Products"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Profiles
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminShippingProfilesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteShippingProfilesProfile
|
||
summary: Delete a Shipping Profile
|
||
description: Delete a Shipping Profile. Associated shipping options are deleted as well.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Shipping Profile.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.shippingProfiles.delete(profileId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteShippingProfile } from "medusa-react"
|
||
|
||
type Props = {
|
||
shippingProfileId: string
|
||
}
|
||
|
||
const ShippingProfile = ({ shippingProfileId }: Props) => {
|
||
const deleteShippingProfile = useAdminDeleteShippingProfile(
|
||
shippingProfileId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteShippingProfile.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ShippingProfile
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/shipping-profiles/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Shipping Profiles
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteShippingProfileRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/stock-locations:
|
||
get:
|
||
operationId: GetStockLocations
|
||
summary: List Stock Locations
|
||
description: Retrieve a list of stock locations. The stock locations can be filtered by fields such as `name` or `created_at`. The stock locations can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: id
|
||
description: Filter by ID.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: name
|
||
description: Filter by name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A stock-location field to sort-order the retrieved stock locations by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: offset
|
||
description: The number of stock locations to skip when retrieving the stock locations.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of stock locations returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned stock locations.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned stock locations.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetStockLocationsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.stockLocations.list()
|
||
.then(({ stock_locations, limit, offset, count }) => {
|
||
console.log(stock_locations.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminStockLocations } from "medusa-react"
|
||
|
||
function StockLocations() {
|
||
const {
|
||
stock_locations,
|
||
isLoading
|
||
} = useAdminStockLocations()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{stock_locations && !stock_locations.length && (
|
||
<span>No Locations</span>
|
||
)}
|
||
{stock_locations && stock_locations.length > 0 && (
|
||
<ul>
|
||
{stock_locations.map(
|
||
(location) => (
|
||
<li key={location.id}>{location.name}</li>
|
||
)
|
||
)}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default StockLocations
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/stock-locations' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Stock Locations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStockLocationsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostStockLocations
|
||
summary: Create a Stock Location
|
||
description: Create a Stock Location.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned stock location.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned stock location.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostStockLocationsReq'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.stockLocations.create({
|
||
name: "Main Warehouse",
|
||
})
|
||
.then(({ stock_location }) => {
|
||
console.log(stock_location.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateStockLocation } from "medusa-react"
|
||
|
||
const CreateStockLocation = () => {
|
||
const createStockLocation = useAdminCreateStockLocation()
|
||
// ...
|
||
|
||
const handleCreate = (name: string) => {
|
||
createStockLocation.mutate({
|
||
name,
|
||
}, {
|
||
onSuccess: ({ stock_location }) => {
|
||
console.log(stock_location.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateStockLocation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/stock-locations' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "App"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Stock Locations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStockLocationsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/stock-locations/{id}:
|
||
get:
|
||
operationId: GetStockLocationsStockLocation
|
||
summary: Get a Stock Location
|
||
description: Retrieve a Stock Location's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Stock Location.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned stock location.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned stock location.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetStockLocationsLocationParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.stockLocations.retrieve(stockLocationId)
|
||
.then(({ stock_location }) => {
|
||
console.log(stock_location.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminStockLocation } from "medusa-react"
|
||
|
||
type Props = {
|
||
stockLocationId: string
|
||
}
|
||
|
||
const StockLocation = ({ stockLocationId }: Props) => {
|
||
const {
|
||
stock_location,
|
||
isLoading
|
||
} = useAdminStockLocation(stockLocationId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{stock_location && (
|
||
<span>{stock_location.name}</span>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default StockLocation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/stock-locations/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Stock Locations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStockLocationsRes'
|
||
post:
|
||
operationId: PostStockLocationsStockLocation
|
||
summary: Update a Stock Location
|
||
description: Update a Stock Location's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Stock Location.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned stock location.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned stock location.
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostStockLocationsLocationReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.stockLocations.update(stockLocationId, {
|
||
name: 'Main Warehouse'
|
||
})
|
||
.then(({ stock_location }) => {
|
||
console.log(stock_location.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateStockLocation } from "medusa-react"
|
||
|
||
type Props = {
|
||
stockLocationId: string
|
||
}
|
||
|
||
const StockLocation = ({ stockLocationId }: Props) => {
|
||
const updateLocation = useAdminUpdateStockLocation(
|
||
stockLocationId
|
||
)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
name: string
|
||
) => {
|
||
updateLocation.mutate({
|
||
name
|
||
}, {
|
||
onSuccess: ({ stock_location }) => {
|
||
console.log(stock_location.name)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
|
||
export default StockLocation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/stock-locations/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Main Warehouse"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Stock Locations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStockLocationsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteStockLocationsStockLocation
|
||
summary: Delete a Stock Location
|
||
description: Delete a Stock Location.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Stock Location.
|
||
schema:
|
||
type: string
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.stockLocations.delete(stockLocationId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteStockLocation } from "medusa-react"
|
||
|
||
type Props = {
|
||
stockLocationId: string
|
||
}
|
||
|
||
const StockLocation = ({ stockLocationId }: Props) => {
|
||
const deleteLocation = useAdminDeleteStockLocation(
|
||
stockLocationId
|
||
)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteLocation.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
|
||
export default StockLocation
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/stock-locations/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Stock Locations
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStockLocationsDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
/admin/store:
|
||
get:
|
||
operationId: GetStore
|
||
summary: Get Store details
|
||
description: Retrieve the Store's details.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.store.retrieve()
|
||
.then(({ store }) => {
|
||
console.log(store.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminStore } from "medusa-react"
|
||
|
||
const Store = () => {
|
||
const {
|
||
store,
|
||
isLoading
|
||
} = useAdminStore()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{store && <span>{store.name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Store
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/store' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Store
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminExtendedStoresRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostStore
|
||
summary: Update Store Details
|
||
description: Update the Store's details.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostStoreReq'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.store.update({
|
||
name: "Medusa Store"
|
||
})
|
||
.then(({ store }) => {
|
||
console.log(store.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateStore } from "medusa-react"
|
||
|
||
function Store() {
|
||
const updateStore = useAdminUpdateStore()
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
name: string
|
||
) => {
|
||
updateStore.mutate({
|
||
name
|
||
}, {
|
||
onSuccess: ({ store }) => {
|
||
console.log(store.name)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
|
||
export default Store
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/store' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "Medusa Store"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Store
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStoresRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/store/currencies/{code}:
|
||
post:
|
||
operationId: PostStoreCurrenciesCode
|
||
summary: Add a Currency Code
|
||
description: Add a Currency Code to the available currencies in a store. This does not create new currencies, as currencies are defined within the Medusa backend. To create a currency, you can create a migration that inserts the currency into the database.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: code
|
||
required: true
|
||
description: The 3 character ISO currency code.
|
||
schema:
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
x-codegen:
|
||
method: addCurrency
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.store.addCurrency("eur")
|
||
.then(({ store }) => {
|
||
console.log(store.currencies);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminAddStoreCurrency } from "medusa-react"
|
||
|
||
const Store = () => {
|
||
const addCurrency = useAdminAddStoreCurrency()
|
||
// ...
|
||
|
||
const handleAdd = (code: string) => {
|
||
addCurrency.mutate(code, {
|
||
onSuccess: ({ store }) => {
|
||
console.log(store.currencies)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Store
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/store/currencies/{currency_code}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Store
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStoresRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteStoreCurrenciesCode
|
||
summary: Remove a Currency
|
||
description: Remove a Currency Code from the available currencies in a store. This does not completely delete the currency and it can be added again later to the store.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: code
|
||
required: true
|
||
description: The 3 character ISO currency code.
|
||
schema:
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
x-codegen:
|
||
method: deleteCurrency
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.store.deleteCurrency("eur")
|
||
.then(({ store }) => {
|
||
console.log(store.currencies);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteStoreCurrency } from "medusa-react"
|
||
|
||
const Store = () => {
|
||
const deleteCurrency = useAdminDeleteStoreCurrency()
|
||
// ...
|
||
|
||
const handleAdd = (code: string) => {
|
||
deleteCurrency.mutate(code, {
|
||
onSuccess: ({ store }) => {
|
||
console.log(store.currencies)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Store
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/store/currencies/{currency_code}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Store
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminStoresRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/store/payment-providers:
|
||
get:
|
||
operationId: GetStorePaymentProviders
|
||
summary: List Payment Providers
|
||
description: Retrieve a list of available Payment Providers in a store.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: listPaymentProviders
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.store.listPaymentProviders()
|
||
.then(({ payment_providers }) => {
|
||
console.log(payment_providers.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminStorePaymentProviders } from "medusa-react"
|
||
|
||
const PaymentProviders = () => {
|
||
const {
|
||
payment_providers,
|
||
isLoading
|
||
} = useAdminStorePaymentProviders()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{payment_providers && !payment_providers.length && (
|
||
<span>No Payment Providers</span>
|
||
)}
|
||
{payment_providers &&
|
||
payment_providers.length > 0 &&(
|
||
<ul>
|
||
{payment_providers.map((provider) => (
|
||
<li key={provider.id}>{provider.id}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default PaymentProviders
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/store/payment-providers' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Store
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPaymentProvidersList'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/store/tax-providers:
|
||
get:
|
||
operationId: GetStoreTaxProviders
|
||
summary: List Tax Providers
|
||
description: Retrieve a list of available Tax Providers in a store.
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: listTaxProviders
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.store.listTaxProviders()
|
||
.then(({ tax_providers }) => {
|
||
console.log(tax_providers.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminStoreTaxProviders } from "medusa-react"
|
||
|
||
const TaxProviders = () => {
|
||
const {
|
||
tax_providers,
|
||
isLoading
|
||
} = useAdminStoreTaxProviders()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{tax_providers && !tax_providers.length && (
|
||
<span>No Tax Providers</span>
|
||
)}
|
||
{tax_providers &&
|
||
tax_providers.length > 0 &&(
|
||
<ul>
|
||
{tax_providers.map((provider) => (
|
||
<li key={provider.id}>{provider.id}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default TaxProviders
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/store/tax-providers' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Store
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxProvidersList'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/swaps:
|
||
get:
|
||
operationId: GetSwaps
|
||
summary: List Swaps
|
||
description: Retrieve a list of Swaps. The swaps can be paginated.
|
||
parameters:
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of swaps returned.
|
||
schema:
|
||
type: number
|
||
default: '50'
|
||
- in: query
|
||
name: offset
|
||
description: The number of swaps to skip when retrieving the swaps.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetSwapsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.swaps.list()
|
||
.then(({ swaps }) => {
|
||
console.log(swaps.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminSwaps } from "medusa-react"
|
||
|
||
const Swaps = () => {
|
||
const { swaps, isLoading } = useAdminSwaps()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{swaps && !swaps.length && <span>No Swaps</span>}
|
||
{swaps && swaps.length > 0 && (
|
||
<ul>
|
||
{swaps.map((swap) => (
|
||
<li key={swap.id}>{swap.payment_status}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Swaps
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/swaps' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Swaps
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSwapsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/swaps/{id}:
|
||
get:
|
||
operationId: GetSwapsSwap
|
||
summary: Get a Swap
|
||
description: Retrieve a Swap's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Swap.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.swaps.retrieve(swapId)
|
||
.then(({ swap }) => {
|
||
console.log(swap.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminSwap } from "medusa-react"
|
||
|
||
type Props = {
|
||
swapId: string
|
||
}
|
||
|
||
const Swap = ({ swapId }: Props) => {
|
||
const { swap, isLoading } = useAdminSwap(swapId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{swap && <span>{swap.id}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Swap
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/swaps/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Swaps
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminSwapsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/tax-rates:
|
||
get:
|
||
operationId: GetTaxRates
|
||
summary: List Tax Rates
|
||
description: Retrieve a list of Tax Rates. The tax rates can be filtered by fields such as `name` or `rate`. The tax rates can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: name
|
||
description: Filter by name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: region_id
|
||
style: form
|
||
explode: false
|
||
description: Filter by Region IDs
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
- type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: code
|
||
description: Filter by code.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: rate
|
||
style: form
|
||
explode: false
|
||
description: Filter by Rate
|
||
schema:
|
||
oneOf:
|
||
- type: number
|
||
- type: object
|
||
properties:
|
||
lt:
|
||
type: number
|
||
description: filter by rates less than this number
|
||
gt:
|
||
type: number
|
||
description: filter by rates greater than this number
|
||
lte:
|
||
type: number
|
||
description: filter by rates less than or equal to this number
|
||
gte:
|
||
type: number
|
||
description: filter by rates greater than or equal to this number
|
||
- in: query
|
||
name: q
|
||
description: Term used to search tax rates by name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A tax rate field to sort-order the retrieved tax rates by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: offset
|
||
description: The number of tax rates to skip when retrieving the tax rates.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of tax rates returned.
|
||
schema:
|
||
type: integer
|
||
default: 50
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetTaxRatesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.list()
|
||
.then(({ tax_rates, limit, offset, count }) => {
|
||
console.log(tax_rates.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminTaxRates } from "medusa-react"
|
||
|
||
const TaxRates = () => {
|
||
const {
|
||
tax_rates,
|
||
isLoading
|
||
} = useAdminTaxRates()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{tax_rates && !tax_rates.length && (
|
||
<span>No Tax Rates</span>
|
||
)}
|
||
{tax_rates && tax_rates.length > 0 && (
|
||
<ul>
|
||
{tax_rates.map((tax_rate) => (
|
||
<li key={tax_rate.id}>{tax_rate.code}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default TaxRates
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/tax-rates' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostTaxRates
|
||
summary: Create a Tax Rate
|
||
description: Create a Tax Rate.
|
||
parameters:
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostTaxRatesReq'
|
||
x-codegen:
|
||
method: create
|
||
queryParams: AdminPostTaxRatesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.create({
|
||
code: "TEST",
|
||
name: "New Tax Rate",
|
||
region_id
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateTaxRate } from "medusa-react"
|
||
|
||
type Props = {
|
||
regionId: string
|
||
}
|
||
|
||
const CreateTaxRate = ({ regionId }: Props) => {
|
||
const createTaxRate = useAdminCreateTaxRate()
|
||
// ...
|
||
|
||
const handleCreate = (
|
||
code: string,
|
||
name: string,
|
||
rate: number
|
||
) => {
|
||
createTaxRate.mutate({
|
||
code,
|
||
name,
|
||
region_id: regionId,
|
||
rate,
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateTaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/tax-rates' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"code": "TEST",
|
||
"name": "New Tax Rate",
|
||
"region_id": "{region_id}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/tax-rates/{id}:
|
||
get:
|
||
operationId: GetTaxRatesTaxRate
|
||
summary: Get a Tax Rate
|
||
description: Retrieve a Tax Rate's details.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetTaxRatesTaxRateParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.retrieve(taxRateId)
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminTaxRate } from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const { tax_rate, isLoading } = useAdminTaxRate(taxRateId)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{tax_rate && <span>{tax_rate.code}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/tax-rates/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostTaxRatesTaxRate
|
||
summary: Update a Tax Rate
|
||
description: Update a Tax Rate's details.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostTaxRatesTaxRateReq'
|
||
x-codegen:
|
||
method: update
|
||
queryParams: AdminPostTaxRatesTaxRateParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.update(taxRateId, {
|
||
name: "New Tax Rate"
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateTaxRate } from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const updateTaxRate = useAdminUpdateTaxRate(taxRateId)
|
||
// ...
|
||
|
||
const handleUpdate = (
|
||
name: string
|
||
) => {
|
||
updateTaxRate.mutate({
|
||
name
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.name)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/tax-rates/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"name": "New Tax Rate"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteTaxRatesTaxRate
|
||
summary: Delete a Tax Rate
|
||
description: Delete a Tax Rate. Resources associated with the tax rate, such as products or product types, are not deleted.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the Shipping Option.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.delete(taxRateId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteTaxRate } from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const deleteTaxRate = useAdminDeleteTaxRate(taxRateId)
|
||
// ...
|
||
|
||
const handleDelete = () => {
|
||
deleteTaxRate.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/tax-rates/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesDeleteRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/tax-rates/{id}/product-types/batch:
|
||
post:
|
||
operationId: PostTaxRatesTaxRateProductTypes
|
||
summary: Add to Product Types
|
||
description: Add Product Types to a Tax Rate.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostTaxRatesTaxRateProductTypesReq'
|
||
x-codegen:
|
||
method: addProductTypes
|
||
queryParams: AdminPostTaxRatesTaxRateProductTypesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.addProductTypes(taxRateId, {
|
||
product_types: [
|
||
productTypeId
|
||
]
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminCreateProductTypeTaxRates,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const addProductTypes = useAdminCreateProductTypeTaxRates(
|
||
taxRateId
|
||
)
|
||
// ...
|
||
|
||
const handleAddProductTypes = (productTypeIds: string[]) => {
|
||
addProductTypes.mutate({
|
||
product_types: productTypeIds,
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.product_types)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/tax-rates/{id}/product-types/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_types": [
|
||
"{product_type_id}"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteTaxRatesTaxRateProductTypes
|
||
summary: Remove Product Types from Rate
|
||
description: Remove product types from a tax rate. This only removes the association between the product types and the tax rate. It does not delete the product types.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteTaxRatesTaxRateProductTypesReq'
|
||
x-codegen:
|
||
method: removeProductTypes
|
||
queryParams: AdminDeleteTaxRatesTaxRateProductTypesParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.removeProductTypes(taxRateId, {
|
||
product_types: [
|
||
productTypeId
|
||
]
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import {
|
||
useAdminDeleteProductTypeTaxRates,
|
||
} from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const removeProductTypes = useAdminDeleteProductTypeTaxRates(
|
||
taxRateId
|
||
)
|
||
// ...
|
||
|
||
const handleRemoveProductTypes = (
|
||
productTypeIds: string[]
|
||
) => {
|
||
removeProductTypes.mutate({
|
||
product_types: productTypeIds,
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.product_types)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/tax-rates/{id}/product-types/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"product_types": [
|
||
"{product_type_id}"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/tax-rates/{id}/products/batch:
|
||
post:
|
||
operationId: PostTaxRatesTaxRateProducts
|
||
summary: Add to Products
|
||
description: Add products to a tax rate.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostTaxRatesTaxRateProductsReq'
|
||
x-codegen:
|
||
method: addProducts
|
||
queryParams: AdminPostTaxRatesTaxRateProductsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.addProducts(taxRateId, {
|
||
products: [
|
||
productId
|
||
]
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateProductTaxRates } from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const addProduct = useAdminCreateProductTaxRates(taxRateId)
|
||
// ...
|
||
|
||
const handleAddProduct = (productIds: string[]) => {
|
||
addProduct.mutate({
|
||
products: productIds,
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.products)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/tax-rates/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"products": [
|
||
"{product_id}"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteTaxRatesTaxRateProducts
|
||
summary: Remove Products from Rate
|
||
description: Remove products from a tax rate. This only removes the association between the products and the tax rate. It does not delete the products.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteTaxRatesTaxRateProductsReq'
|
||
x-codegen:
|
||
method: removeProducts
|
||
queryParams: AdminDeleteTaxRatesTaxRateProductsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.removeProducts(taxRateId, {
|
||
products: [
|
||
productId
|
||
]
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteProductTaxRates } from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const removeProduct = useAdminDeleteProductTaxRates(taxRateId)
|
||
// ...
|
||
|
||
const handleRemoveProduct = (productIds: string[]) => {
|
||
removeProduct.mutate({
|
||
products: productIds,
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.products)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/tax-rates/{id}/products/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"products": [
|
||
"{product_id}"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/tax-rates/{id}/shipping-options/batch:
|
||
post:
|
||
operationId: PostTaxRatesTaxRateShippingOptions
|
||
summary: Add to Shipping Options
|
||
description: Add Shipping Options to a Tax Rate.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostTaxRatesTaxRateShippingOptionsReq'
|
||
x-codegen:
|
||
method: addShippingOptions
|
||
queryParams: AdminPostTaxRatesTaxRateShippingOptionsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.addShippingOptions(taxRateId, {
|
||
shipping_options: [
|
||
shippingOptionId
|
||
]
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateShippingTaxRates } from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const addShippingOption = useAdminCreateShippingTaxRates(
|
||
taxRateId
|
||
)
|
||
// ...
|
||
|
||
const handleAddShippingOptions = (
|
||
shippingOptionIds: string[]
|
||
) => {
|
||
addShippingOption.mutate({
|
||
shipping_options: shippingOptionIds,
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.shipping_options)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/tax-rates/{id}/shipping-options/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"shipping_options": [
|
||
"{shipping_option_id}"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteTaxRatesTaxRateShippingOptions
|
||
summary: Remove Shipping Options from Rate
|
||
description: Remove shipping options from a tax rate. This only removes the association between the shipping options and the tax rate. It does not delete the shipping options.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: ID of the tax rate.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: Comma-separated relations that should be expanded in the returned tax rate.
|
||
style: form
|
||
explode: false
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteTaxRatesTaxRateShippingOptionsReq'
|
||
x-codegen:
|
||
method: removeShippingOptions
|
||
queryParams: AdminDeleteTaxRatesTaxRateShippingOptionsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.taxRates.removeShippingOptions(taxRateId, {
|
||
shipping_options: [
|
||
shippingOptionId
|
||
]
|
||
})
|
||
.then(({ tax_rate }) => {
|
||
console.log(tax_rate.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteShippingTaxRates } from "medusa-react"
|
||
|
||
type Props = {
|
||
taxRateId: string
|
||
}
|
||
|
||
const TaxRate = ({ taxRateId }: Props) => {
|
||
const removeShippingOptions = useAdminDeleteShippingTaxRates(
|
||
taxRateId
|
||
)
|
||
// ...
|
||
|
||
const handleRemoveShippingOptions = (
|
||
shippingOptionIds: string[]
|
||
) => {
|
||
removeShippingOptions.mutate({
|
||
shipping_options: shippingOptionIds,
|
||
}, {
|
||
onSuccess: ({ tax_rate }) => {
|
||
console.log(tax_rate.shipping_options)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default TaxRate
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/tax-rates/{id}/shipping-options/batch' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"shipping_options": [
|
||
"{shipping_option_id}"
|
||
]
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Tax Rates
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminTaxRatesRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/uploads:
|
||
post:
|
||
operationId: PostUploads
|
||
summary: Upload Files
|
||
description: Upload at least one file to a public bucket or storage. The file upload is handled by the file service installed on the Medusa backend.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
multipart/form-data:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
files:
|
||
type: string
|
||
format: binary
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.uploads.create(file)
|
||
.then(({ uploads }) => {
|
||
console.log(uploads.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUploadFile } from "medusa-react"
|
||
|
||
const UploadFile = () => {
|
||
const uploadFile = useAdminUploadFile()
|
||
// ...
|
||
|
||
const handleFileUpload = (file: File) => {
|
||
uploadFile.mutate(file, {
|
||
onSuccess: ({ uploads }) => {
|
||
console.log(uploads[0].key)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default UploadFile
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/uploads' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: image/jpeg' \
|
||
--form 'files=@"<FILE_PATH_1>"' \
|
||
--form 'files=@"<FILE_PATH_1>"'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Uploads
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUploadsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteUploads
|
||
summary: Delete an Uploaded File
|
||
description: Delete an uploaded file from storage. The file is deleted using the installed file service on the Medusa backend.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteUploadsReq'
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.uploads.delete({
|
||
file_key
|
||
})
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteFile } from "medusa-react"
|
||
|
||
const Image = () => {
|
||
const deleteFile = useAdminDeleteFile()
|
||
// ...
|
||
|
||
const handleDeleteFile = (fileKey: string) => {
|
||
deleteFile.mutate({
|
||
file_key: fileKey
|
||
}, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Image
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/uploads' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"file_key": "{file_key}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Uploads
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteUploadsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/uploads/download-url:
|
||
post:
|
||
operationId: PostUploadsDownloadUrl
|
||
summary: Get a File's Download URL
|
||
description: Create and retrieve a presigned or public download URL for a file. The URL creation is handled by the file service installed on the Medusa backend.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminPostUploadsDownloadUrlReq'
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.uploads.getPresignedDownloadUrl({
|
||
file_key
|
||
})
|
||
.then(({ download_url }) => {
|
||
console.log(download_url);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreatePresignedDownloadUrl } from "medusa-react"
|
||
|
||
const Image = () => {
|
||
const createPresignedUrl = useAdminCreatePresignedDownloadUrl()
|
||
// ...
|
||
|
||
const handlePresignedUrl = (fileKey: string) => {
|
||
createPresignedUrl.mutate({
|
||
file_key: fileKey
|
||
}, {
|
||
onSuccess: ({ download_url }) => {
|
||
console.log(download_url)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Image
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/uploads/download-url' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"file_key": "{file_key}"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Uploads
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUploadsDownloadUrlRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/uploads/protected:
|
||
post:
|
||
operationId: PostUploadsProtected
|
||
summary: Protected File Upload
|
||
description: Upload at least one file to an ACL or a non-public bucket. The file upload is handled by the file service installed on the Medusa backend.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
multipart/form-data:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
files:
|
||
type: string
|
||
format: binary
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.uploads.createProtected(file)
|
||
.then(({ uploads }) => {
|
||
console.log(uploads.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUploadProtectedFile } from "medusa-react"
|
||
|
||
const UploadFile = () => {
|
||
const uploadFile = useAdminUploadProtectedFile()
|
||
// ...
|
||
|
||
const handleFileUpload = (file: File) => {
|
||
uploadFile.mutate(file, {
|
||
onSuccess: ({ uploads }) => {
|
||
console.log(uploads[0].key)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default UploadFile
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/uploads/protected' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: image/jpeg' \
|
||
--form 'files=@"<FILE_PATH_1>"' \
|
||
--form 'files=@"<FILE_PATH_1>"'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Uploads
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUploadsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/users:
|
||
get:
|
||
operationId: GetUsers
|
||
summary: List Users
|
||
description: Retrieves a list of users. The users can be filtered by fields such as `q` or `email`. The users can also be sorted or paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: email
|
||
description: Filter by email.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: first_name
|
||
description: Filter by first name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: last_name
|
||
description: Filter by last name.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: q
|
||
description: Term used to search users' first name, last name, and email.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: order
|
||
description: A user field to sort-order the retrieved users by.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by user IDs.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: ID of the user.
|
||
- type: array
|
||
items:
|
||
type: string
|
||
description: ID of a user.
|
||
- in: query
|
||
name: created_at
|
||
description: Filter by a creation date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: updated_at
|
||
description: Filter by an update date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: deleted_at
|
||
description: Filter by a deletion date range.
|
||
schema:
|
||
type: object
|
||
properties:
|
||
lt:
|
||
type: string
|
||
description: filter by dates less than this date
|
||
format: date
|
||
gt:
|
||
type: string
|
||
description: filter by dates greater than this date
|
||
format: date
|
||
lte:
|
||
type: string
|
||
description: filter by dates less than or equal to this date
|
||
format: date
|
||
gte:
|
||
type: string
|
||
description: filter by dates greater than or equal to this date
|
||
format: date
|
||
- in: query
|
||
name: offset
|
||
description: The number of users to skip when retrieving the users.
|
||
schema:
|
||
type: integer
|
||
default: 0
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of users returned.
|
||
schema:
|
||
type: integer
|
||
default: 20
|
||
- in: query
|
||
name: fields
|
||
description: Comma-separated fields that should be included in the returned users.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetUsersParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.users.list()
|
||
.then(({ users, limit, offset, count }) => {
|
||
console.log(users.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUsers } from "medusa-react"
|
||
|
||
const Users = () => {
|
||
const { users, isLoading } = useAdminUsers()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{users && !users.length && <span>No Users</span>}
|
||
{users && users.length > 0 && (
|
||
<ul>
|
||
{users.map((user) => (
|
||
<li key={user.id}>{user.email}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Users
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/users' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Users
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUsersListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostUsers
|
||
summary: Create a User
|
||
description: Create an admin User. The user has the same privileges as all admin users, and will be able to authenticate and perform admin functionalities right after creation.
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminCreateUserRequest'
|
||
x-codegen:
|
||
method: create
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.users.create({
|
||
email: "user@example.com",
|
||
password: "supersecret"
|
||
})
|
||
.then(({ user }) => {
|
||
console.log(user.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminCreateUser } from "medusa-react"
|
||
|
||
const CreateUser = () => {
|
||
const createUser = useAdminCreateUser()
|
||
// ...
|
||
|
||
const handleCreateUser = () => {
|
||
createUser.mutate({
|
||
email: "user@example.com",
|
||
password: "supersecret",
|
||
}, {
|
||
onSuccess: ({ user }) => {
|
||
console.log(user.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default CreateUser
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/users' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com",
|
||
"password": "supersecret"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Users
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUserRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/users/password-token:
|
||
post:
|
||
operationId: PostUsersUserPasswordToken
|
||
summary: Request Password Reset
|
||
description: Generate a password token for an admin user with a given email. This also triggers the `user.password_reset` event. So, if you have a Notification Service installed that can handle this event, a notification, such as an email, will be sent to the user. The token is triggered as part of the `user.password_reset` event's payload. That token must be used later to reset the password using the [Reset Password](https://docs.medusajs.com/api/admin#users_postusersuserpassword) API Route.
|
||
externalDocs:
|
||
description: How to reset a user's password
|
||
url: https://docs.medusajs.com/modules/users/admin/manage-profile#reset-password
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminResetPasswordTokenRequest'
|
||
x-codegen:
|
||
method: sendResetPasswordToken
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.users.sendResetPasswordToken({
|
||
email: "user@example.com"
|
||
})
|
||
.then(() => {
|
||
// successful
|
||
})
|
||
.catch(() => {
|
||
// error occurred
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminSendResetPasswordToken } from "medusa-react"
|
||
|
||
const Login = () => {
|
||
const requestPasswordReset = useAdminSendResetPasswordToken()
|
||
// ...
|
||
|
||
const handleResetPassword = (
|
||
email: string
|
||
) => {
|
||
requestPasswordReset.mutate({
|
||
email
|
||
}, {
|
||
onSuccess: () => {
|
||
// successful
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default Login
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/users/password-token' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"email": "user@example.com"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Users
|
||
responses:
|
||
'204':
|
||
description: OK
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/users/reset-password:
|
||
post:
|
||
operationId: PostUsersUserPassword
|
||
summary: Reset Password
|
||
description: Reset the password of an admin User using their reset password token. A user must request to reset their password first before attempting to reset their password with this request.
|
||
externalDocs:
|
||
description: How to reset a user's password
|
||
url: https://docs.medusajs.com/modules/users/admin/manage-profile#reset-password
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminResetPasswordRequest'
|
||
x-codegen:
|
||
method: resetPassword
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.users.resetPassword({
|
||
token: "supersecrettoken",
|
||
password: "supersecret"
|
||
})
|
||
.then(({ user }) => {
|
||
console.log(user.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminResetPassword } from "medusa-react"
|
||
|
||
const ResetPassword = () => {
|
||
const resetPassword = useAdminResetPassword()
|
||
// ...
|
||
|
||
const handleResetPassword = (
|
||
token: string,
|
||
password: string
|
||
) => {
|
||
resetPassword.mutate({
|
||
token,
|
||
password,
|
||
}, {
|
||
onSuccess: ({ user }) => {
|
||
console.log(user.id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default ResetPassword
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/users/reset-password' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"token": "supersecrettoken",
|
||
"password": "supersecret"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Users
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUserRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/users/{id}:
|
||
get:
|
||
operationId: GetUsersUser
|
||
summary: Get a User
|
||
description: Retrieve an admin user's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the User.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.users.retrieve(userId)
|
||
.then(({ user }) => {
|
||
console.log(user.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUser } from "medusa-react"
|
||
|
||
type Props = {
|
||
userId: string
|
||
}
|
||
|
||
const User = ({ userId }: Props) => {
|
||
const { user, isLoading } = useAdminUser(
|
||
userId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{user && <span>{user.first_name} {user.last_name}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default User
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/users/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Users
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUserRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
post:
|
||
operationId: PostUsersUser
|
||
summary: Update a User
|
||
description: Update an admin user's details.
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the User.
|
||
schema:
|
||
type: string
|
||
x-authenticated: true
|
||
requestBody:
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUpdateUserRequest'
|
||
x-codegen:
|
||
method: update
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.users.update(userId, {
|
||
first_name: "Marcellus"
|
||
})
|
||
.then(({ user }) => {
|
||
console.log(user.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminUpdateUser } from "medusa-react"
|
||
|
||
type Props = {
|
||
userId: string
|
||
}
|
||
|
||
const User = ({ userId }: Props) => {
|
||
const updateUser = useAdminUpdateUser(userId)
|
||
// ...
|
||
|
||
const handleUpdateUser = (
|
||
firstName: string
|
||
) => {
|
||
updateUser.mutate({
|
||
first_name: firstName,
|
||
}, {
|
||
onSuccess: ({ user }) => {
|
||
console.log(user.first_name)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default User
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X POST '{backend_url}/admin/users/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"first_name": "Marcellus"
|
||
}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Users
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminUserRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
delete:
|
||
operationId: DeleteUsersUser
|
||
summary: Delete a User
|
||
description: Delete a User. Once deleted, the user will not be able to authenticate or perform admin functionalities.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the User.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: delete
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.users.delete(userId)
|
||
.then(({ id, object, deleted }) => {
|
||
console.log(id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminDeleteUser } from "medusa-react"
|
||
|
||
type Props = {
|
||
userId: string
|
||
}
|
||
|
||
const User = ({ userId }: Props) => {
|
||
const deleteUser = useAdminDeleteUser(userId)
|
||
// ...
|
||
|
||
const handleDeleteUser = () => {
|
||
deleteUser.mutate(void 0, {
|
||
onSuccess: ({ id, object, deleted }) => {
|
||
console.log(id)
|
||
}
|
||
})
|
||
}
|
||
|
||
// ...
|
||
}
|
||
|
||
export default User
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl -X DELETE '{backend_url}/admin/users/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Users
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminDeleteUserRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/variants:
|
||
get:
|
||
operationId: GetVariants
|
||
summary: List Product Variants
|
||
description: Retrieve a list of Product Variants. The product variant can be filtered by fields such as `id` or `title`. The product variant can also be paginated.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: query
|
||
name: id
|
||
style: form
|
||
explode: false
|
||
description: Filter by product variant IDs.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: A product variant ID.
|
||
- type: array
|
||
description: An array of product variant IDs.
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: '"Comma-separated relations that should be expanded in the returned product variants."'
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: '"Comma-separated fields that should be included in the returned product variants."'
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: offset
|
||
description: The number of product variants to skip when retrieving the product variants.
|
||
schema:
|
||
type: number
|
||
default: '0'
|
||
- in: query
|
||
name: limit
|
||
description: Limit the number of product variants returned.
|
||
schema:
|
||
type: number
|
||
default: '100'
|
||
- in: query
|
||
name: order
|
||
description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: manage_inventory
|
||
description: Filter product variants by whether their inventory is managed or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: allow_backorder
|
||
description: Filter product variants by whether they are allowed to be backordered or not.
|
||
schema:
|
||
type: boolean
|
||
- in: query
|
||
name: cart_id
|
||
style: form
|
||
explode: false
|
||
description: The ID of the cart to use for the price selection context.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: region_id
|
||
style: form
|
||
explode: false
|
||
description: The ID of the region to use for the price selection context.
|
||
schema:
|
||
type: string
|
||
externalDocs:
|
||
description: Price selection context overview
|
||
url: https://docs.medusajs.com/modules/price-lists/price-selection-strategy#context-object
|
||
- in: query
|
||
name: currency_code
|
||
style: form
|
||
explode: false
|
||
description: The 3 character ISO currency code to use for the price selection context.
|
||
schema:
|
||
type: string
|
||
externalDocs:
|
||
description: Price selection context overview
|
||
url: https://docs.medusajs.com/modules/price-lists/price-selection-strategy#context-object
|
||
- in: query
|
||
name: customer_id
|
||
style: form
|
||
explode: false
|
||
description: The ID of the customer to use for the price selection context.
|
||
schema:
|
||
type: string
|
||
externalDocs:
|
||
description: Price selection context overview
|
||
url: https://docs.medusajs.com/modules/price-lists/price-selection-strategy#context-object
|
||
- in: query
|
||
name: title
|
||
style: form
|
||
explode: false
|
||
description: Filter by title.
|
||
schema:
|
||
oneOf:
|
||
- type: string
|
||
description: a single title to filter by
|
||
- type: array
|
||
description: multiple titles to filter by
|
||
items:
|
||
type: string
|
||
- in: query
|
||
name: inventory_quantity
|
||
description: Filter by available inventory quantity
|
||
schema:
|
||
oneOf:
|
||
- type: number
|
||
description: a specific number to filter by.
|
||
- type: object
|
||
description: filter using less and greater than comparisons.
|
||
properties:
|
||
lt:
|
||
type: number
|
||
description: filter by inventory quantity less than this number
|
||
gt:
|
||
type: number
|
||
description: filter by inventory quantity greater than this number
|
||
lte:
|
||
type: number
|
||
description: filter by inventory quantity less than or equal to this number
|
||
gte:
|
||
type: number
|
||
description: filter by inventory quantity greater than or equal to this number
|
||
x-codegen:
|
||
method: list
|
||
queryParams: AdminGetVariantsParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.variants.list()
|
||
.then(({ variants, limit, offset, count }) => {
|
||
console.log(variants.length);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminVariants } from "medusa-react"
|
||
|
||
const Variants = () => {
|
||
const { variants, isLoading } = useAdminVariants()
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{variants && !variants.length && (
|
||
<span>No Variants</span>
|
||
)}
|
||
{variants && variants.length > 0 && (
|
||
<ul>
|
||
{variants.map((variant) => (
|
||
<li key={variant.id}>{variant.title}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Variants
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/variants' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Variants
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminVariantsListRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/variants/{id}:
|
||
get:
|
||
operationId: GetVariantsVariant
|
||
summary: Get a Product variant
|
||
description: Retrieve a product variant's details.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The ID of the product variant.
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: expand
|
||
description: '"Comma-separated relations that should be expanded in the returned product variant."'
|
||
schema:
|
||
type: string
|
||
- in: query
|
||
name: fields
|
||
description: '"Comma-separated fields that should be included in the returned product variant."'
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: retrieve
|
||
queryParams: AdminGetVariantParams
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.variants.retrieve(variantId)
|
||
.then(({ variant }) => {
|
||
console.log(variant.id);
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminVariant } from "medusa-react"
|
||
|
||
type Props = {
|
||
variantId: string
|
||
}
|
||
|
||
const Variant = ({ variantId }: Props) => {
|
||
const { variant, isLoading } = useAdminVariant(
|
||
variantId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{variant && <span>{variant.title}</span>}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default Variant
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/variants/{id}' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Variants
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminVariantsRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
/admin/variants/{id}/inventory:
|
||
get:
|
||
operationId: GetVariantsVariantInventory
|
||
summary: Get Variant's Inventory
|
||
description: Retrieve the available inventory of a Product Variant.
|
||
x-authenticated: true
|
||
parameters:
|
||
- in: path
|
||
name: id
|
||
required: true
|
||
description: The Product Variant ID.
|
||
schema:
|
||
type: string
|
||
x-codegen:
|
||
method: getInventory
|
||
x-codeSamples:
|
||
- lang: JavaScript
|
||
label: JS Client
|
||
source: |
|
||
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.variants.getInventory(variantId)
|
||
.then(({ variant }) => {
|
||
console.log(variant.inventory, variant.sales_channel_availability)
|
||
})
|
||
- lang: tsx
|
||
label: Medusa React
|
||
source: |
|
||
import React from "react"
|
||
import { useAdminVariantsInventory } from "medusa-react"
|
||
|
||
type Props = {
|
||
variantId: string
|
||
}
|
||
|
||
const VariantInventory = ({ variantId }: Props) => {
|
||
const { variant, isLoading } = useAdminVariantsInventory(
|
||
variantId
|
||
)
|
||
|
||
return (
|
||
<div>
|
||
{isLoading && <span>Loading...</span>}
|
||
{variant && variant.inventory.length === 0 && (
|
||
<span>Variant doesn't have inventory details</span>
|
||
)}
|
||
{variant && variant.inventory.length > 0 && (
|
||
<ul>
|
||
{variant.inventory.map((inventory) => (
|
||
<li key={inventory.id}>{inventory.title}</li>
|
||
))}
|
||
</ul>
|
||
)}
|
||
</div>
|
||
)
|
||
}
|
||
|
||
export default VariantInventory
|
||
- lang: Shell
|
||
label: cURL
|
||
source: |
|
||
curl '{backend_url}/admin/variants/{id}/inventory' \
|
||
-H 'x-medusa-access-token: {api_token}'
|
||
security:
|
||
- api_token: []
|
||
- cookie_auth: []
|
||
- jwt_token: []
|
||
tags:
|
||
- Product Variants
|
||
responses:
|
||
'200':
|
||
description: OK
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AdminGetVariantsVariantInventoryRes'
|
||
'400':
|
||
$ref: '#/components/responses/400_error'
|
||
'401':
|
||
$ref: '#/components/responses/unauthorized'
|
||
'404':
|
||
$ref: '#/components/responses/not_found_error'
|
||
'409':
|
||
$ref: '#/components/responses/invalid_state_error'
|
||
'422':
|
||
$ref: '#/components/responses/invalid_request_error'
|
||
'500':
|
||
$ref: '#/components/responses/500_error'
|
||
components:
|
||
responses:
|
||
default_error:
|
||
description: Default Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Error'
|
||
example:
|
||
code: unknown_error
|
||
message: An unknown error occurred.
|
||
type: unknown_error
|
||
invalid_state_error:
|
||
description: Invalid State Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Error'
|
||
example:
|
||
code: unknown_error
|
||
message: The request conflicted with another request. You may retry the request with the provided Idempotency-Key.
|
||
type: QueryRunnerAlreadyReleasedError
|
||
invalid_request_error:
|
||
description: Invalid Request Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Error'
|
||
example:
|
||
code: invalid_request_error
|
||
message: Discount with code TEST already exists.
|
||
type: duplicate_error
|
||
not_found_error:
|
||
description: Not Found Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Error'
|
||
example:
|
||
message: Entity with id 1 was not found
|
||
type: not_found
|
||
400_error:
|
||
description: Client Error or Multiple Errors
|
||
content:
|
||
application/json:
|
||
schema:
|
||
oneOf:
|
||
- $ref: '#/components/schemas/Error'
|
||
- $ref: '#/components/schemas/MultipleErrors'
|
||
examples:
|
||
not_allowed:
|
||
$ref: '#/components/examples/not_allowed_error'
|
||
invalid_data:
|
||
$ref: '#/components/examples/invalid_data_error'
|
||
MultipleErrors:
|
||
$ref: '#/components/examples/multiple_errors'
|
||
500_error:
|
||
description: Server Error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/Error'
|
||
examples:
|
||
database:
|
||
$ref: '#/components/examples/database_error'
|
||
unexpected_state:
|
||
$ref: '#/components/examples/unexpected_state_error'
|
||
invalid_argument:
|
||
$ref: '#/components/examples/invalid_argument_error'
|
||
default_error:
|
||
$ref: '#/components/examples/default_error'
|
||
unauthorized:
|
||
description: User is not authorized. Must log in first
|
||
content:
|
||
text/plain:
|
||
schema:
|
||
type: string
|
||
default: Unauthorized
|
||
example: Unauthorized
|
||
incorrect_credentials:
|
||
description: User does not exist or incorrect credentials
|
||
content:
|
||
text/plain:
|
||
schema:
|
||
type: string
|
||
default: Unauthorized
|
||
example: Unauthorized
|
||
examples:
|
||
not_allowed_error:
|
||
summary: Not Allowed Error
|
||
value:
|
||
message: Discount must be set to dynamic
|
||
type: not_allowed
|
||
invalid_data_error:
|
||
summary: Invalid Data Error
|
||
value:
|
||
message: first_name must be a string
|
||
type: invalid_data
|
||
multiple_errors:
|
||
summary: Multiple Errors
|
||
value:
|
||
message: Provided request body contains errors. Please check the data and retry the request
|
||
errors:
|
||
- message: first_name must be a string
|
||
type: invalid_data
|
||
- message: Discount must be set to dynamic
|
||
type: not_allowed
|
||
database_error:
|
||
summary: Database Error
|
||
value:
|
||
code: api_error
|
||
message: An error occured while hashing password
|
||
type: database_error
|
||
unexpected_state_error:
|
||
summary: Unexpected State Error
|
||
value:
|
||
message: cart.total must be defined
|
||
type: unexpected_state
|
||
invalid_argument_error:
|
||
summary: Invalid Argument Error
|
||
value:
|
||
message: cart.total must be defined
|
||
type: unexpected_state
|
||
default_error:
|
||
summary: Default Error
|
||
value:
|
||
code: unknown_error
|
||
message: An unknown error occurred.
|
||
type: unknown_error
|
||
securitySchemes:
|
||
api_token:
|
||
type: apiKey
|
||
x-displayName: API Token
|
||
in: header
|
||
name: x-medusa-access-token
|
||
jwt_token:
|
||
type: http
|
||
x-displayName: JWT Token
|
||
scheme: bearer
|
||
cookie_auth:
|
||
type: apiKey
|
||
in: cookie
|
||
name: connect.sid
|
||
x-displayName: Cookie Session ID
|
||
schemas:
|
||
Address:
|
||
title: Address
|
||
description: An address is used across the Medusa backend within other schemas and object types. For example, a customer's billing and shipping addresses both use the Address entity.
|
||
type: object
|
||
required:
|
||
- address_1
|
||
- address_2
|
||
- city
|
||
- company
|
||
- country_code
|
||
- created_at
|
||
- customer_id
|
||
- deleted_at
|
||
- first_name
|
||
- id
|
||
- last_name
|
||
- metadata
|
||
- phone
|
||
- postal_code
|
||
- province
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: ID of the address
|
||
example: addr_01G8ZC9VS1XVE149MGH2J7QSSH
|
||
customer_id:
|
||
description: ID of the customer this address belongs to
|
||
nullable: true
|
||
type: string
|
||
example: cus_01G2SG30J8C85S4A5CHM2S1NS2
|
||
customer:
|
||
description: Available if the relation `customer` is expanded.
|
||
nullable: true
|
||
type: object
|
||
company:
|
||
description: Company name
|
||
nullable: true
|
||
type: string
|
||
example: Acme
|
||
first_name:
|
||
description: First name
|
||
nullable: true
|
||
type: string
|
||
example: Arno
|
||
last_name:
|
||
description: Last name
|
||
nullable: true
|
||
type: string
|
||
example: Willms
|
||
address_1:
|
||
description: Address line 1
|
||
nullable: true
|
||
type: string
|
||
example: 14433 Kemmer Court
|
||
address_2:
|
||
description: Address line 2
|
||
nullable: true
|
||
type: string
|
||
example: Suite 369
|
||
city:
|
||
description: City
|
||
nullable: true
|
||
type: string
|
||
example: South Geoffreyview
|
||
country_code:
|
||
description: The 2 character ISO code of the country in lower case
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
example: st
|
||
country:
|
||
description: A country object.
|
||
x-expandable: country
|
||
nullable: true
|
||
$ref: '#/components/schemas/Country'
|
||
province:
|
||
description: Province
|
||
nullable: true
|
||
type: string
|
||
example: Kentucky
|
||
postal_code:
|
||
description: Postal Code
|
||
nullable: true
|
||
type: string
|
||
example: 72093
|
||
phone:
|
||
description: Phone Number
|
||
nullable: true
|
||
type: string
|
||
example: 16128234334802
|
||
created_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was created.
|
||
format: date-time
|
||
updated_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was updated.
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AddressCreatePayload:
|
||
type: object
|
||
description: Address fields used when creating an address.
|
||
required:
|
||
- first_name
|
||
- last_name
|
||
- address_1
|
||
- city
|
||
- country_code
|
||
- postal_code
|
||
properties:
|
||
first_name:
|
||
description: First name
|
||
type: string
|
||
example: Arno
|
||
last_name:
|
||
description: Last name
|
||
type: string
|
||
example: Willms
|
||
phone:
|
||
type: string
|
||
description: Phone Number
|
||
example: 16128234334802
|
||
company:
|
||
type: string
|
||
address_1:
|
||
description: Address line 1
|
||
type: string
|
||
example: 14433 Kemmer Court
|
||
address_2:
|
||
description: Address line 2
|
||
type: string
|
||
example: Suite 369
|
||
city:
|
||
description: City
|
||
type: string
|
||
example: South Geoffreyview
|
||
country_code:
|
||
description: The 2 character ISO code of the country in lower case
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
example: st
|
||
province:
|
||
description: Province
|
||
type: string
|
||
example: Kentucky
|
||
postal_code:
|
||
description: Postal Code
|
||
type: string
|
||
example: 72093
|
||
metadata:
|
||
type: object
|
||
example:
|
||
car: white
|
||
description: An optional key-value map with additional details
|
||
AddressPayload:
|
||
type: object
|
||
description: Address fields used when creating/updating an address.
|
||
properties:
|
||
first_name:
|
||
description: First name
|
||
type: string
|
||
example: Arno
|
||
last_name:
|
||
description: Last name
|
||
type: string
|
||
example: Willms
|
||
phone:
|
||
type: string
|
||
description: Phone Number
|
||
example: 16128234334802
|
||
company:
|
||
type: string
|
||
description: Company
|
||
address_1:
|
||
description: Address line 1
|
||
type: string
|
||
example: 14433 Kemmer Court
|
||
address_2:
|
||
description: Address line 2
|
||
type: string
|
||
example: Suite 369
|
||
city:
|
||
description: City
|
||
type: string
|
||
example: South Geoffreyview
|
||
country_code:
|
||
description: The 2 character ISO code of the country in lower case
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
example: st
|
||
province:
|
||
description: Province
|
||
type: string
|
||
example: Kentucky
|
||
postal_code:
|
||
description: Postal Code
|
||
type: string
|
||
example: 72093
|
||
metadata:
|
||
type: object
|
||
example:
|
||
car: white
|
||
description: An optional key-value map with additional details
|
||
AdminAppsListRes:
|
||
type: object
|
||
required:
|
||
- apps
|
||
properties:
|
||
apps:
|
||
type: array
|
||
description: An array of app details.
|
||
items:
|
||
$ref: '#/components/schemas/OAuth'
|
||
AdminAppsRes:
|
||
type: object
|
||
required:
|
||
- apps
|
||
properties:
|
||
apps:
|
||
description: App details.
|
||
$ref: '#/components/schemas/OAuth'
|
||
AdminAuthRes:
|
||
type: object
|
||
description: The user's details.
|
||
required:
|
||
- user
|
||
properties:
|
||
user:
|
||
description: User details.
|
||
$ref: '#/components/schemas/User'
|
||
AdminBatchJobListRes:
|
||
type: object
|
||
required:
|
||
- batch_jobs
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
batch_jobs:
|
||
type: array
|
||
description: An array of batch job details.
|
||
items:
|
||
$ref: '#/components/schemas/BatchJob'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of batch jobs skipped when retrieving the batch jobs.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminBatchJobRes:
|
||
type: object
|
||
description: The batch job's details.
|
||
required:
|
||
- batch_job
|
||
properties:
|
||
batch_job:
|
||
description: Batch job details.
|
||
$ref: '#/components/schemas/BatchJob'
|
||
AdminBearerAuthRes:
|
||
type: object
|
||
description: The access token of the user, if they're authenticated successfully.
|
||
properties:
|
||
access_token:
|
||
description: Access token that can be used to send authenticated requests.
|
||
type: string
|
||
AdminCollectionsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Collection
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: product-collection
|
||
deleted:
|
||
type: boolean
|
||
description: Whether the collection was deleted successfully or not.
|
||
default: true
|
||
AdminCollectionsListRes:
|
||
type: object
|
||
required:
|
||
- collections
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
collections:
|
||
type: array
|
||
description: an array of collection details
|
||
items:
|
||
$ref: '#/components/schemas/ProductCollection'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of product collections skipped when retrieving the product collections.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminCollectionsRes:
|
||
type: object
|
||
description: The collection's details.
|
||
x-expanded-relations:
|
||
field: collection
|
||
relations:
|
||
- products
|
||
required:
|
||
- collection
|
||
properties:
|
||
collection:
|
||
description: Product Collection details.
|
||
$ref: '#/components/schemas/ProductCollection'
|
||
AdminCreateUserRequest:
|
||
type: object
|
||
required:
|
||
- email
|
||
- password
|
||
properties:
|
||
email:
|
||
description: The User's email.
|
||
type: string
|
||
format: email
|
||
first_name:
|
||
description: The first name of the User.
|
||
type: string
|
||
last_name:
|
||
description: The last name of the User.
|
||
type: string
|
||
role:
|
||
description: The role assigned to the user. These roles don't provide any different privileges.
|
||
type: string
|
||
enum:
|
||
- admin
|
||
- member
|
||
- developer
|
||
password:
|
||
description: The User's password.
|
||
type: string
|
||
format: password
|
||
AdminCurrenciesListRes:
|
||
type: object
|
||
description: List of currencies with pagination fields.
|
||
required:
|
||
- currencies
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
currencies:
|
||
type: array
|
||
description: An array of currency details.
|
||
items:
|
||
$ref: '#/components/schemas/Currency'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of currencies skipped when retrieving the currencies.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminCurrenciesRes:
|
||
type: object
|
||
description: A currency's details.
|
||
required:
|
||
- currency
|
||
properties:
|
||
currency:
|
||
description: Currency details.
|
||
$ref: '#/components/schemas/Currency'
|
||
AdminCustomerGroupsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted customer group.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: customer_group
|
||
deleted:
|
||
type: boolean
|
||
description: Whether the customer group was deleted successfully or not.
|
||
default: true
|
||
AdminCustomerGroupsListRes:
|
||
type: object
|
||
required:
|
||
- customer_groups
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
customer_groups:
|
||
type: array
|
||
description: An array of customer group details.
|
||
items:
|
||
$ref: '#/components/schemas/CustomerGroup'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of customer groups skipped when retrieving the customer groups.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminCustomerGroupsRes:
|
||
type: object
|
||
description: The customer group's details.
|
||
required:
|
||
- customer_group
|
||
properties:
|
||
customer_group:
|
||
description: Customer group details.
|
||
$ref: '#/components/schemas/CustomerGroup'
|
||
AdminCustomersListRes:
|
||
description: The list of customers with pagination fields.
|
||
type: object
|
||
required:
|
||
- customers
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
customers:
|
||
type: array
|
||
description: An array of customer details.
|
||
items:
|
||
$ref: '#/components/schemas/Customer'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of customers skipped when retrieving the customers.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminCustomersRes:
|
||
type: object
|
||
description: The customer's details.
|
||
x-expanded-relations:
|
||
field: customer
|
||
relations:
|
||
- orders
|
||
- shipping_addresses
|
||
required:
|
||
- customer
|
||
properties:
|
||
customer:
|
||
description: Customer details.
|
||
$ref: '#/components/schemas/Customer'
|
||
AdminDeleteCustomerGroupsGroupCustomerBatchReq:
|
||
type: object
|
||
description: The customers to remove from the customer group.
|
||
required:
|
||
- customer_ids
|
||
properties:
|
||
customer_ids:
|
||
description: The ids of the customers to remove
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: ID of the customer
|
||
type: string
|
||
AdminDeleteDiscountsDiscountConditionsConditionBatchReq:
|
||
type: object
|
||
description: The resources to remove.
|
||
required:
|
||
- resources
|
||
properties:
|
||
resources:
|
||
description: The resources to be removed from the discount condition
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The id of the item
|
||
type: string
|
||
AdminDeletePriceListPricesPricesReq:
|
||
type: object
|
||
description: The details of the prices to delete.
|
||
properties:
|
||
price_ids:
|
||
description: The IDs of the prices to delete.
|
||
type: array
|
||
items:
|
||
type: string
|
||
AdminDeletePriceListsPriceListProductsPricesBatchReq:
|
||
type: object
|
||
description: The details of the products' prices to delete.
|
||
properties:
|
||
product_ids:
|
||
description: The IDs of the products to delete their associated prices.
|
||
type: array
|
||
items:
|
||
type: string
|
||
AdminDeleteProductCategoriesCategoryProductsBatchReq:
|
||
type: object
|
||
description: The details of the products to delete from the product category.
|
||
required:
|
||
- product_ids
|
||
properties:
|
||
product_ids:
|
||
description: The IDs of the products to delete from the product category.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of a product
|
||
type: string
|
||
AdminDeleteProductsFromCollectionReq:
|
||
type: object
|
||
description: The details of the products to remove from the collection.
|
||
required:
|
||
- product_ids
|
||
properties:
|
||
product_ids:
|
||
description: An array of Product IDs to remove from the Product Collection.
|
||
type: array
|
||
items:
|
||
description: The ID of a Product to add to the Product Collection.
|
||
type: string
|
||
AdminDeleteProductsFromCollectionRes:
|
||
type: object
|
||
description: Deletion operation details
|
||
required:
|
||
- id
|
||
- object
|
||
- removed_products
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the collection
|
||
object:
|
||
type: string
|
||
description: The type of object the removal was executed on
|
||
default: product-collection
|
||
removed_products:
|
||
description: The IDs of the products removed from the collection
|
||
type: array
|
||
items:
|
||
description: The ID of the Product removed from the Product Collection.
|
||
type: string
|
||
AdminDeletePublishableApiKeySalesChannelsBatchReq:
|
||
type: object
|
||
description: The details of the sales channels to remove from the publishable API key.
|
||
required:
|
||
- sales_channel_ids
|
||
properties:
|
||
sales_channel_ids:
|
||
description: The IDs of the sales channels to remove from the publishable API key
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the sales channel
|
||
AdminDeleteSalesChannelsChannelProductsBatchReq:
|
||
type: object
|
||
description: The details of the products to delete from the sales channel.
|
||
required:
|
||
- product_ids
|
||
properties:
|
||
product_ids:
|
||
description: The IDs of the products to remove from the sales channel.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of a product
|
||
type: string
|
||
AdminDeleteSalesChannelsChannelStockLocationsReq:
|
||
type: object
|
||
required:
|
||
- location_id
|
||
properties:
|
||
location_id:
|
||
description: The ID of the stock location
|
||
type: string
|
||
AdminDeleteShippingProfileRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Shipping Profile.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: shipping_profile
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminDeleteTaxRatesTaxRateProductTypesReq:
|
||
type: object
|
||
description: Product types to remove from the tax rates.
|
||
required:
|
||
- product_types
|
||
properties:
|
||
product_types:
|
||
type: array
|
||
description: The IDs of the product types to remove their association with this tax rate.
|
||
items:
|
||
type: string
|
||
AdminDeleteTaxRatesTaxRateProductsReq:
|
||
type: object
|
||
description: The details of the products to remove their associated with the tax rate.
|
||
required:
|
||
- products
|
||
properties:
|
||
products:
|
||
type: array
|
||
description: The IDs of the products to remove their association with this tax rate.
|
||
items:
|
||
type: string
|
||
AdminDeleteTaxRatesTaxRateShippingOptionsReq:
|
||
type: object
|
||
description: The details of the shipping options to remove their associate with the tax rate.
|
||
required:
|
||
- shipping_options
|
||
properties:
|
||
shipping_options:
|
||
type: array
|
||
description: The IDs of the shipping options to remove their association with this tax rate.
|
||
items:
|
||
type: string
|
||
AdminDeleteUploadsReq:
|
||
type: object
|
||
description: The details of the file to delete.
|
||
required:
|
||
- file_key
|
||
properties:
|
||
file_key:
|
||
description: key of the file to delete. This is obtained when you first uploaded the file, or by the file service if you used it directly.
|
||
type: string
|
||
AdminDeleteUploadsRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The file key of the upload deleted
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: file
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminDeleteUserRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted user.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: user
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminDiscountConditionsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
- discount
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Discount Condition
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: discount-condition
|
||
deleted:
|
||
type: boolean
|
||
description: Whether the discount condition was deleted successfully.
|
||
default: true
|
||
discount:
|
||
description: The Discount to which the condition used to belong to.
|
||
$ref: '#/components/schemas/Discount'
|
||
AdminDiscountConditionsRes:
|
||
type: object
|
||
x-expanded-relations:
|
||
field: discount_condition
|
||
relations:
|
||
- discount_rule
|
||
required:
|
||
- discount_condition
|
||
properties:
|
||
discount_condition:
|
||
description: Discount condition details.
|
||
$ref: '#/components/schemas/DiscountCondition'
|
||
AdminDiscountsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Discount
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: discount
|
||
deleted:
|
||
type: boolean
|
||
description: Whether the discount was deleted successfully.
|
||
default: true
|
||
AdminDiscountsListRes:
|
||
type: object
|
||
description: The list of discounts with pagination fields.
|
||
x-expanded-relations:
|
||
field: discounts
|
||
relations:
|
||
- parent_discount
|
||
- regions
|
||
- rule
|
||
- rule.conditions
|
||
required:
|
||
- discounts
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
discounts:
|
||
type: array
|
||
description: The list of discounts.
|
||
items:
|
||
$ref: '#/components/schemas/Discount'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of discounts skipped when retrieving the discounts.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminDiscountsRes:
|
||
type: object
|
||
description: The discount's details.
|
||
x-expanded-relations:
|
||
field: discount
|
||
relations:
|
||
- parent_discount
|
||
- regions
|
||
- rule
|
||
- rule.conditions
|
||
eager:
|
||
- regions.fulfillment_providers
|
||
- regions.payment_providers
|
||
required:
|
||
- discount
|
||
properties:
|
||
discount:
|
||
description: Discount details.
|
||
$ref: '#/components/schemas/Discount'
|
||
AdminDraftOrdersDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Draft Order.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: draft-order
|
||
deleted:
|
||
type: boolean
|
||
description: Whether the draft order was deleted successfully.
|
||
default: true
|
||
AdminDraftOrdersListRes:
|
||
description: The list of draft orders with pagination fields.
|
||
type: object
|
||
x-expanded-relations:
|
||
field: draft_orders
|
||
relations:
|
||
- order
|
||
- cart
|
||
- cart.items
|
||
- cart.items.adjustments
|
||
required:
|
||
- draft_orders
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
draft_orders:
|
||
type: array
|
||
description: An array of draft order's details.
|
||
items:
|
||
$ref: '#/components/schemas/DraftOrder'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of draft orders skipped when retrieving the draft orders.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminDraftOrdersRes:
|
||
type: object
|
||
description: The list of draft orders.
|
||
x-expanded-relations:
|
||
field: draft_order
|
||
relations:
|
||
- order
|
||
- cart
|
||
- cart.items
|
||
- cart.items.adjustments
|
||
- cart.billing_address
|
||
- cart.customer
|
||
- cart.discounts
|
||
- cart.discounts.rule
|
||
- cart.items
|
||
- cart.items.adjustments
|
||
- cart.payment
|
||
- cart.payment_sessions
|
||
- cart.region
|
||
- cart.region.payment_providers
|
||
- cart.shipping_address
|
||
- cart.shipping_methods
|
||
- cart.shipping_methods.shipping_option
|
||
eager:
|
||
- cart.region.fulfillment_providers
|
||
- cart.region.payment_providers
|
||
- cart.shipping_methods.shipping_option
|
||
implicit:
|
||
- cart.discounts
|
||
- cart.discounts.rule
|
||
- cart.gift_cards
|
||
- cart.items
|
||
- cart.items.adjustments
|
||
- cart.items.tax_lines
|
||
- cart.items.variant
|
||
- cart.items.variant.product
|
||
- cart.items.variant.product.profiles
|
||
- cart.region
|
||
- cart.region.tax_rates
|
||
- cart.shipping_address
|
||
- cart.shipping_methods
|
||
- cart.shipping_methods.tax_lines
|
||
totals:
|
||
- cart.discount_total
|
||
- cart.gift_card_tax_total
|
||
- cart.gift_card_total
|
||
- cart.item_tax_total
|
||
- cart.refundable_amount
|
||
- cart.refunded_total
|
||
- cart.shipping_tax_total
|
||
- cart.shipping_total
|
||
- cart.subtotal
|
||
- cart.tax_total
|
||
- cart.total
|
||
- cart.items.discount_total
|
||
- cart.items.gift_card_total
|
||
- cart.items.original_tax_total
|
||
- cart.items.original_total
|
||
- cart.items.refundable
|
||
- cart.items.subtotal
|
||
- cart.items.tax_total
|
||
- cart.items.total
|
||
required:
|
||
- draft_order
|
||
properties:
|
||
draft_order:
|
||
description: Draft order's details.
|
||
$ref: '#/components/schemas/DraftOrder'
|
||
AdminExtendedStoresRes:
|
||
type: object
|
||
description: The store's details with additional details like payment and tax providers.
|
||
x-expanded-relations:
|
||
field: store
|
||
relations:
|
||
- currencies
|
||
- default_currency
|
||
required:
|
||
- store
|
||
properties:
|
||
store:
|
||
description: Store details.
|
||
$ref: '#/components/schemas/ExtendedStoreDTO'
|
||
AdminGetRegionsRegionFulfillmentOptionsRes:
|
||
type: object
|
||
description: The list of fulfillment options in a region.
|
||
required:
|
||
- fulfillment_options
|
||
properties:
|
||
fulfillment_options:
|
||
type: array
|
||
description: Fulfillment providers details.
|
||
items:
|
||
type: object
|
||
required:
|
||
- provider_id
|
||
- options
|
||
properties:
|
||
provider_id:
|
||
description: ID of the fulfillment provider
|
||
type: string
|
||
options:
|
||
description: fulfillment provider options
|
||
type: array
|
||
items:
|
||
type: object
|
||
example:
|
||
- id: manual-fulfillment
|
||
- id: manual-fulfillment-return
|
||
is_return: true
|
||
AdminGetVariantsVariantInventoryRes:
|
||
type: object
|
||
description: The variant's inventory details.
|
||
properties:
|
||
variant:
|
||
type: object
|
||
description: The product variant's inventory details.
|
||
$ref: '#/components/schemas/VariantInventory'
|
||
AdminGiftCardsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Gift Card
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: gift-card
|
||
deleted:
|
||
type: boolean
|
||
description: Whether the gift card was deleted successfully.
|
||
default: true
|
||
AdminGiftCardsListRes:
|
||
type: object
|
||
description: The list of gift cards with pagination fields.
|
||
x-expanded-relations:
|
||
field: gift_cards
|
||
relations:
|
||
- order
|
||
- region
|
||
eager:
|
||
- region.fulfillment_providers
|
||
- region.payment_providers
|
||
required:
|
||
- gift_cards
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
gift_cards:
|
||
type: array
|
||
description: The list of gift cards.
|
||
items:
|
||
$ref: '#/components/schemas/GiftCard'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of gift cards skipped when retrieving the gift cards.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminGiftCardsRes:
|
||
type: object
|
||
description: The gift card's details.
|
||
x-expanded-relations:
|
||
field: gift_card
|
||
relations:
|
||
- order
|
||
- region
|
||
eager:
|
||
- region.fulfillment_providers
|
||
- region.payment_providers
|
||
required:
|
||
- gift_card
|
||
properties:
|
||
gift_card:
|
||
description: A gift card's details.
|
||
$ref: '#/components/schemas/GiftCard'
|
||
AdminInventoryItemsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Inventory Item.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
format: inventory_item
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the Inventory Item was deleted.
|
||
default: true
|
||
AdminInventoryItemsListRes:
|
||
type: object
|
||
required:
|
||
- inventory_items
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
inventory_items:
|
||
type: array
|
||
description: an array of Inventory Item details
|
||
items:
|
||
$ref: '#/components/schemas/InventoryItemDTO'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of inventory items skipped when retrieving the inventory items.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminInventoryItemsListWithVariantsAndLocationLevelsRes:
|
||
type: object
|
||
required:
|
||
- inventory_items
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
inventory_items:
|
||
type: array
|
||
description: an array of Inventory Item details
|
||
items:
|
||
$ref: '#/components/schemas/DecoratedInventoryItemDTO'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of inventory items skipped when retrieving the inventory items.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminInventoryItemsLocationLevelsRes:
|
||
type: object
|
||
description: Details of inventory items and their associated location levels.
|
||
required:
|
||
- inventory_item
|
||
properties:
|
||
inventory_item:
|
||
type: object
|
||
description: An inventory item's ID and associated location levels.
|
||
required:
|
||
- id
|
||
- location_levels
|
||
properties:
|
||
id:
|
||
description: The id of the location
|
||
type: string
|
||
location_levels:
|
||
description: List of stock levels at a given location
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/InventoryLevelDTO'
|
||
AdminInventoryItemsRes:
|
||
type: object
|
||
description: The inventory item's details.
|
||
required:
|
||
- inventory_item
|
||
properties:
|
||
inventory_item:
|
||
description: Inventory Item details
|
||
$ref: '#/components/schemas/InventoryItemDTO'
|
||
AdminInviteDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Invite.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: invite
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the invite was deleted.
|
||
default: true
|
||
AdminListInvitesRes:
|
||
description: The list of invites.
|
||
type: object
|
||
required:
|
||
- invites
|
||
properties:
|
||
invites:
|
||
type: array
|
||
description: An array of invites
|
||
items:
|
||
$ref: '#/components/schemas/Invite'
|
||
AdminNotesDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Note.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: note
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the Note was deleted.
|
||
default: true
|
||
AdminNotesListRes:
|
||
type: object
|
||
description: The list of notes with pagination fields.
|
||
required:
|
||
- notes
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
notes:
|
||
type: array
|
||
description: An array of notes
|
||
items:
|
||
$ref: '#/components/schemas/Note'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of notes skipped when retrieving the notes.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminNotesRes:
|
||
type: object
|
||
description: The note's details.
|
||
required:
|
||
- note
|
||
properties:
|
||
note:
|
||
description: Note details.
|
||
$ref: '#/components/schemas/Note'
|
||
AdminNotificationsListRes:
|
||
type: object
|
||
x-expanded-relations:
|
||
field: notifications
|
||
relations:
|
||
- resends
|
||
required:
|
||
- notifications
|
||
properties:
|
||
notifications:
|
||
type: array
|
||
description: an array of notifications
|
||
items:
|
||
$ref: '#/components/schemas/Notification'
|
||
count:
|
||
type: integer
|
||
description: The total number of notifications
|
||
offset:
|
||
type: integer
|
||
description: The number of notifications skipped when retrieving the notifications.
|
||
limit:
|
||
type: integer
|
||
description: The number of notifications per page
|
||
AdminNotificationsRes:
|
||
type: object
|
||
description: The notification's details.
|
||
x-expanded-relations:
|
||
field: notification
|
||
relations:
|
||
- resends
|
||
required:
|
||
- notification
|
||
properties:
|
||
notification:
|
||
description: Notification details
|
||
$ref: '#/components/schemas/Notification'
|
||
AdminOrderEditDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Order Edit.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: order_edit
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the Order Edit was deleted.
|
||
default: true
|
||
AdminOrderEditItemChangeDeleteRes:
|
||
type: object
|
||
description: The details of deleting order edit item changes.
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Order Edit Item Change.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: item_change
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the Order Edit Item Change was deleted.
|
||
default: true
|
||
AdminOrderEditsListRes:
|
||
type: object
|
||
description: The list of order edits with pagination fields.
|
||
x-expanded-relations:
|
||
field: order_edits
|
||
relations:
|
||
- changes
|
||
- changes.line_item
|
||
- changes.line_item.variant
|
||
- changes.original_line_item
|
||
- changes.original_line_item.variant
|
||
- items
|
||
- items.adjustments
|
||
- items.tax_lines
|
||
- items.variant
|
||
- payment_collection
|
||
implicit:
|
||
- items
|
||
- items.tax_lines
|
||
- items.adjustments
|
||
- items.variant
|
||
totals:
|
||
- difference_due
|
||
- discount_total
|
||
- gift_card_tax_total
|
||
- gift_card_total
|
||
- shipping_total
|
||
- subtotal
|
||
- tax_total
|
||
- total
|
||
- items.discount_total
|
||
- items.gift_card_total
|
||
- items.original_tax_total
|
||
- items.original_total
|
||
- items.refundable
|
||
- items.subtotal
|
||
- items.tax_total
|
||
- items.total
|
||
required:
|
||
- order_edits
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
order_edits:
|
||
type: array
|
||
description: An array of order edit details
|
||
items:
|
||
$ref: '#/components/schemas/OrderEdit'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of order edits skipped when retrieving the order edits.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminOrderEditsRes:
|
||
type: object
|
||
description: The order edit details.
|
||
x-expanded-relations:
|
||
field: order_edit
|
||
relations:
|
||
- changes
|
||
- changes.line_item
|
||
- changes.line_item.variant
|
||
- changes.original_line_item
|
||
- changes.original_line_item.variant
|
||
- items
|
||
- items.adjustments
|
||
- items.tax_lines
|
||
- items.variant
|
||
- payment_collection
|
||
implicit:
|
||
- items
|
||
- items.tax_lines
|
||
- items.adjustments
|
||
- items.variant
|
||
totals:
|
||
- difference_due
|
||
- discount_total
|
||
- gift_card_tax_total
|
||
- gift_card_total
|
||
- shipping_total
|
||
- subtotal
|
||
- tax_total
|
||
- total
|
||
- items.discount_total
|
||
- items.gift_card_total
|
||
- items.original_tax_total
|
||
- items.original_total
|
||
- items.refundable
|
||
- items.subtotal
|
||
- items.tax_total
|
||
- items.total
|
||
required:
|
||
- order_edit
|
||
properties:
|
||
order_edit:
|
||
description: Order edit details
|
||
$ref: '#/components/schemas/OrderEdit'
|
||
AdminOrdersListRes:
|
||
type: object
|
||
description: The list of orders with pagination fields.
|
||
x-expanded-relations:
|
||
field: orders
|
||
relations:
|
||
- billing_address
|
||
- claims
|
||
- claims.additional_items
|
||
- claims.additional_items.variant
|
||
- claims.claim_items
|
||
- claims.claim_items.images
|
||
- claims.claim_items.item
|
||
- claims.fulfillments
|
||
- claims.fulfillments.tracking_links
|
||
- claims.return_order
|
||
- claims.return_order.shipping_method
|
||
- claims.return_order.shipping_method.tax_lines
|
||
- claims.shipping_address
|
||
- claims.shipping_methods
|
||
- customer
|
||
- discounts
|
||
- discounts.rule
|
||
- fulfillments
|
||
- fulfillments.items
|
||
- fulfillments.tracking_links
|
||
- gift_card_transactions
|
||
- gift_cards
|
||
- items
|
||
- payments
|
||
- refunds
|
||
- region
|
||
- returns
|
||
- returns.items
|
||
- returns.items.reason
|
||
- returns.shipping_method
|
||
- returns.shipping_method.tax_lines
|
||
- shipping_address
|
||
- shipping_methods
|
||
eager:
|
||
- fulfillments.items
|
||
- region.fulfillment_providers
|
||
- region.payment_providers
|
||
- returns.items
|
||
- shipping_methods.shipping_option
|
||
implicit:
|
||
- claims
|
||
- claims.additional_items
|
||
- claims.additional_items.adjustments
|
||
- claims.additional_items.refundable
|
||
- claims.additional_items.tax_lines
|
||
- discounts
|
||
- discounts.rule
|
||
- gift_card_transactions
|
||
- gift_card_transactions.gift_card
|
||
- gift_cards
|
||
- items
|
||
- items.adjustments
|
||
- items.refundable
|
||
- items.tax_lines
|
||
- items.variant
|
||
- items.variant.product
|
||
- items.variant.product.profiles
|
||
- refunds
|
||
- region
|
||
- shipping_methods
|
||
- shipping_methods.tax_lines
|
||
- swaps
|
||
- swaps.additional_items
|
||
- swaps.additional_items.adjustments
|
||
- swaps.additional_items.refundable
|
||
- swaps.additional_items.tax_lines
|
||
totals:
|
||
- discount_total
|
||
- gift_card_tax_total
|
||
- gift_card_total
|
||
- paid_total
|
||
- refundable_amount
|
||
- refunded_total
|
||
- shipping_total
|
||
- subtotal
|
||
- tax_total
|
||
- total
|
||
- claims.additional_items.discount_total
|
||
- claims.additional_items.gift_card_total
|
||
- claims.additional_items.original_tax_total
|
||
- claims.additional_items.original_total
|
||
- claims.additional_items.refundable
|
||
- claims.additional_items.subtotal
|
||
- claims.additional_items.tax_total
|
||
- claims.additional_items.total
|
||
- items.discount_total
|
||
- items.gift_card_total
|
||
- items.original_tax_total
|
||
- items.original_total
|
||
- items.refundable
|
||
- items.subtotal
|
||
- items.tax_total
|
||
- items.total
|
||
- swaps.additional_items.discount_total
|
||
- swaps.additional_items.gift_card_total
|
||
- swaps.additional_items.original_tax_total
|
||
- swaps.additional_items.original_total
|
||
- swaps.additional_items.refundable
|
||
- swaps.additional_items.subtotal
|
||
- swaps.additional_items.tax_total
|
||
- swaps.additional_items.total
|
||
required:
|
||
- orders
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
orders:
|
||
type: array
|
||
description: An array of order details.
|
||
items:
|
||
$ref: '#/components/schemas/Order'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of orders skipped when retrieving the orders.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminOrdersOrderLineItemReservationReq:
|
||
type: object
|
||
required:
|
||
- location_id
|
||
properties:
|
||
location_id:
|
||
description: The ID of the location of the reservation
|
||
type: string
|
||
quantity:
|
||
description: The quantity to reserve
|
||
type: number
|
||
AdminOrdersRes:
|
||
type: object
|
||
description: The order's details.
|
||
x-expanded-relations:
|
||
field: order
|
||
relations:
|
||
- billing_address
|
||
- claims
|
||
- claims.additional_items
|
||
- claims.additional_items.variant
|
||
- claims.claim_items
|
||
- claims.claim_items.images
|
||
- claims.claim_items.item
|
||
- claims.fulfillments
|
||
- claims.fulfillments.tracking_links
|
||
- claims.return_order
|
||
- claims.return_order.shipping_method
|
||
- claims.return_order.shipping_method.tax_lines
|
||
- claims.shipping_address
|
||
- claims.shipping_methods
|
||
- customer
|
||
- discounts
|
||
- discounts.rule
|
||
- fulfillments
|
||
- fulfillments.items
|
||
- fulfillments.tracking_links
|
||
- gift_card_transactions
|
||
- gift_cards
|
||
- items
|
||
- payments
|
||
- refunds
|
||
- region
|
||
- returns
|
||
- returns.items
|
||
- returns.items.reason
|
||
- returns.shipping_method
|
||
- returns.shipping_method.tax_lines
|
||
- shipping_address
|
||
- shipping_methods
|
||
eager:
|
||
- fulfillments.items
|
||
- region.fulfillment_providers
|
||
- region.payment_providers
|
||
- returns.items
|
||
- shipping_methods.shipping_option
|
||
implicit:
|
||
- claims
|
||
- claims.additional_items
|
||
- claims.additional_items.adjustments
|
||
- claims.additional_items.refundable
|
||
- claims.additional_items.tax_lines
|
||
- discounts
|
||
- discounts.rule
|
||
- gift_card_transactions
|
||
- gift_card_transactions.gift_card
|
||
- gift_cards
|
||
- items
|
||
- items.adjustments
|
||
- items.refundable
|
||
- items.tax_lines
|
||
- items.variant
|
||
- items.variant.product
|
||
- items.variant.product.profiles
|
||
- refunds
|
||
- region
|
||
- shipping_methods
|
||
- shipping_methods.tax_lines
|
||
- swaps
|
||
- swaps.additional_items
|
||
- swaps.additional_items.adjustments
|
||
- swaps.additional_items.refundable
|
||
- swaps.additional_items.tax_lines
|
||
totals:
|
||
- discount_total
|
||
- gift_card_tax_total
|
||
- gift_card_total
|
||
- paid_total
|
||
- refundable_amount
|
||
- refunded_total
|
||
- shipping_total
|
||
- subtotal
|
||
- tax_total
|
||
- total
|
||
- claims.additional_items.discount_total
|
||
- claims.additional_items.gift_card_total
|
||
- claims.additional_items.original_tax_total
|
||
- claims.additional_items.original_total
|
||
- claims.additional_items.refundable
|
||
- claims.additional_items.subtotal
|
||
- claims.additional_items.tax_total
|
||
- claims.additional_items.total
|
||
- items.discount_total
|
||
- items.gift_card_total
|
||
- items.original_tax_total
|
||
- items.original_total
|
||
- items.refundable
|
||
- items.subtotal
|
||
- items.tax_total
|
||
- items.total
|
||
- swaps.additional_items.discount_total
|
||
- swaps.additional_items.gift_card_total
|
||
- swaps.additional_items.original_tax_total
|
||
- swaps.additional_items.original_total
|
||
- swaps.additional_items.refundable
|
||
- swaps.additional_items.subtotal
|
||
- swaps.additional_items.tax_total
|
||
- swaps.additional_items.total
|
||
required:
|
||
- order
|
||
properties:
|
||
order:
|
||
description: Order details.
|
||
$ref: '#/components/schemas/Order'
|
||
AdminPaymentCollectionDeleteRes:
|
||
type: object
|
||
description: The details of deleting a payment collection.
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Payment Collection.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: payment_collection
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the Payment Collection was deleted.
|
||
default: true
|
||
AdminPaymentCollectionsRes:
|
||
type: object
|
||
description: The payment collection's details.
|
||
x-expanded-relations:
|
||
field: payment_collection
|
||
relations:
|
||
- payment_sessions
|
||
- payments
|
||
- region
|
||
eager:
|
||
- region.fulfillment_providers
|
||
- region.payment_providers
|
||
required:
|
||
- payment_collection
|
||
properties:
|
||
payment_collection:
|
||
description: Payment Collection details.
|
||
$ref: '#/components/schemas/PaymentCollection'
|
||
AdminPaymentProvidersList:
|
||
type: object
|
||
description: The list of payment providers in a store.
|
||
required:
|
||
- payment_providers
|
||
properties:
|
||
payment_providers:
|
||
type: array
|
||
description: An array of payment providers details.
|
||
items:
|
||
$ref: '#/components/schemas/PaymentProvider'
|
||
AdminPaymentRes:
|
||
type: object
|
||
description: The payment's details.
|
||
required:
|
||
- payment
|
||
properties:
|
||
payment:
|
||
description: Payment details
|
||
$ref: '#/components/schemas/Payment'
|
||
AdminPostAppsReq:
|
||
type: object
|
||
required:
|
||
- application_name
|
||
- state
|
||
- code
|
||
properties:
|
||
application_name:
|
||
type: string
|
||
description: Name of the application for to generate the token for.
|
||
state:
|
||
type: string
|
||
description: State of the application.
|
||
code:
|
||
type: string
|
||
description: The code for the generated token.
|
||
AdminPostAuthReq:
|
||
type: object
|
||
description: The admin's credentials used to log in.
|
||
required:
|
||
- email
|
||
- password
|
||
properties:
|
||
email:
|
||
type: string
|
||
description: The user's email.
|
||
format: email
|
||
password:
|
||
type: string
|
||
description: The user's password.
|
||
format: password
|
||
AdminPostBatchesReq:
|
||
type: object
|
||
description: The details of the batch job to create.
|
||
required:
|
||
- type
|
||
- context
|
||
properties:
|
||
type:
|
||
type: string
|
||
description: The type of batch job to start, which is defined by the `batchType` property of the associated batch job strategy.
|
||
example: product-export
|
||
context:
|
||
type: object
|
||
description: Additional infomration regarding the batch to be used for processing.
|
||
example:
|
||
shape:
|
||
prices:
|
||
- region: null
|
||
currency_code: eur
|
||
dynamicImageColumnCount: 4
|
||
dynamicOptionColumnCount: 2
|
||
list_config:
|
||
skip: 0
|
||
take: 50
|
||
order:
|
||
created_at: DESC
|
||
relations:
|
||
- variants
|
||
- variant.prices
|
||
- images
|
||
dry_run:
|
||
type: boolean
|
||
description: Set a batch job in dry_run mode, which would delay executing the batch job until it's confirmed.
|
||
default: false
|
||
AdminPostCollectionsCollectionReq:
|
||
type: object
|
||
description: The product collection's details to update.
|
||
properties:
|
||
title:
|
||
type: string
|
||
description: The title of the collection.
|
||
handle:
|
||
type: string
|
||
description: An optional handle to be used in slugs. If none is provided, the kebab-case version of the title will be used.
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostCollectionsReq:
|
||
type: object
|
||
description: The product collection's details.
|
||
required:
|
||
- title
|
||
properties:
|
||
title:
|
||
type: string
|
||
description: The title of the collection.
|
||
handle:
|
||
type: string
|
||
description: An optional handle to be used in slugs. If none is provided, the kebab-case version of the title will be used.
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostCurrenciesCurrencyReq:
|
||
type: object
|
||
description: The details to update in the currency
|
||
properties:
|
||
includes_tax:
|
||
type: boolean
|
||
x-featureFlag: tax_inclusive_pricing
|
||
description: Tax included in prices of currency.
|
||
AdminPostCustomerGroupsGroupCustomersBatchReq:
|
||
type: object
|
||
description: The customers to add to the customer group.
|
||
required:
|
||
- customer_ids
|
||
properties:
|
||
customer_ids:
|
||
description: The ids of the customers to add
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: ID of the customer
|
||
type: string
|
||
AdminPostCustomerGroupsGroupReq:
|
||
type: object
|
||
description: The details to update in the customer group.
|
||
properties:
|
||
name:
|
||
description: Name of the customer group
|
||
type: string
|
||
metadata:
|
||
description: Metadata of the customer group.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostCustomerGroupsReq:
|
||
type: object
|
||
description: The details of the customer group to create.
|
||
required:
|
||
- name
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Name of the customer group
|
||
metadata:
|
||
type: object
|
||
description: Metadata of the customer group.
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostCustomersCustomerReq:
|
||
type: object
|
||
description: The details of the customer to update.
|
||
properties:
|
||
email:
|
||
type: string
|
||
description: The Customer's email. You can't update the email of a registered customer.
|
||
format: email
|
||
first_name:
|
||
type: string
|
||
description: The Customer's first name.
|
||
last_name:
|
||
type: string
|
||
description: The Customer's last name.
|
||
phone:
|
||
type: string
|
||
description: The Customer's phone number.
|
||
password:
|
||
type: string
|
||
description: The Customer's password.
|
||
format: password
|
||
groups:
|
||
type: array
|
||
description: A list of customer groups to which the customer belongs.
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of a customer group
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostCustomersReq:
|
||
type: object
|
||
description: The details of the customer to create.
|
||
required:
|
||
- email
|
||
- first_name
|
||
- last_name
|
||
- password
|
||
properties:
|
||
email:
|
||
type: string
|
||
description: The customer's email.
|
||
format: email
|
||
first_name:
|
||
type: string
|
||
description: The customer's first name.
|
||
last_name:
|
||
type: string
|
||
description: The customer's last name.
|
||
password:
|
||
type: string
|
||
description: The customer's password.
|
||
format: password
|
||
phone:
|
||
type: string
|
||
description: The customer's phone number.
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostDiscountsDiscountConditions:
|
||
type: object
|
||
required:
|
||
- operator
|
||
properties:
|
||
operator:
|
||
description: Operator of the condition. `in` indicates that discountable resources are within the specified resources. `not_in` indicates that discountable resources are everything but the specified resources.
|
||
type: string
|
||
enum:
|
||
- in
|
||
- not_in
|
||
products:
|
||
type: array
|
||
description: list of product IDs if the condition's type is `products`.
|
||
items:
|
||
type: string
|
||
product_types:
|
||
type: array
|
||
description: list of product type IDs if the condition's type is `product_types`.
|
||
items:
|
||
type: string
|
||
product_collections:
|
||
type: array
|
||
description: list of product collection IDs if the condition's type is `product_collections`.
|
||
items:
|
||
type: string
|
||
product_tags:
|
||
type: array
|
||
description: list of product tag IDs if the condition's type is `product_tags`.
|
||
items:
|
||
type: string
|
||
customer_groups:
|
||
type: array
|
||
description: list of customer group IDs if the condition's type is `customer_groups`.
|
||
items:
|
||
type: string
|
||
AdminPostDiscountsDiscountConditionsCondition:
|
||
type: object
|
||
properties:
|
||
products:
|
||
type: array
|
||
description: list of product IDs if the condition's type is `products`.
|
||
items:
|
||
type: string
|
||
product_types:
|
||
type: array
|
||
description: list of product type IDs if the condition's type is `product_types`.
|
||
items:
|
||
type: string
|
||
product_collections:
|
||
type: array
|
||
description: list of product collection IDs if the condition's type is `product_collections`.
|
||
items:
|
||
type: string
|
||
product_tags:
|
||
type: array
|
||
description: list of product tag IDs if the condition's type is `product_tags`
|
||
items:
|
||
type: string
|
||
customer_groups:
|
||
type: array
|
||
description: list of customer group IDs if the condition's type is `customer_groups`.
|
||
items:
|
||
type: string
|
||
AdminPostDiscountsDiscountConditionsConditionBatchReq:
|
||
type: object
|
||
description: The details of the resources to add.
|
||
required:
|
||
- resources
|
||
properties:
|
||
resources:
|
||
description: The resources to be added to the discount condition
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of the item
|
||
type: string
|
||
AdminPostDiscountsDiscountDynamicCodesReq:
|
||
type: object
|
||
description: The details of the dynamic discount to create.
|
||
required:
|
||
- code
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: A unique code that will be used to redeem the Discount
|
||
usage_limit:
|
||
type: number
|
||
description: Maximum number of times the discount code can be used
|
||
default: 1
|
||
metadata:
|
||
type: object
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostDiscountsDiscountReq:
|
||
type: object
|
||
description: The details of the discount to update.
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: A unique code that will be used to redeem the discount
|
||
rule:
|
||
description: The discount rule that defines how discounts are calculated
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the Rule
|
||
description:
|
||
type: string
|
||
description: A short description of the discount
|
||
value:
|
||
type: number
|
||
description: The value that the discount represents. This will depend on the type of the discount.
|
||
allocation:
|
||
type: string
|
||
description: The scope that the discount should apply to. `total` indicates that the discount should be applied on the cart total, and `item` indicates that the discount should be applied to each discountable item in the cart.
|
||
enum:
|
||
- total
|
||
- item
|
||
conditions:
|
||
type: array
|
||
description: A set of conditions that can be used to limit when the discount can be used. Only one of `products`, `product_types`, `product_collections`, `product_tags`, and `customer_groups` should be provided based on the discount condition's type.
|
||
items:
|
||
type: object
|
||
required:
|
||
- operator
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the condition
|
||
operator:
|
||
type: string
|
||
description: Operator of the condition. `in` indicates that discountable resources are within the specified resources. `not_in` indicates that discountable resources are everything but the specified resources.
|
||
enum:
|
||
- in
|
||
- not_in
|
||
products:
|
||
type: array
|
||
description: list of product IDs if the condition's type is `products`.
|
||
items:
|
||
type: string
|
||
product_types:
|
||
type: array
|
||
description: list of product type IDs if the condition's type is `product_types`.
|
||
items:
|
||
type: string
|
||
product_collections:
|
||
type: array
|
||
description: list of product collection IDs if the condition's type is `product_collections`.
|
||
items:
|
||
type: string
|
||
product_tags:
|
||
type: array
|
||
description: list of product tag IDs if the condition's type is `product_tags`.
|
||
items:
|
||
type: string
|
||
customer_groups:
|
||
type: array
|
||
description: list of customer group IDs if the condition's type is `customer_groups`.
|
||
items:
|
||
type: string
|
||
is_disabled:
|
||
type: boolean
|
||
description: Whether the discount code is disabled on creation. If set to `true`, it will not be available for customers.
|
||
starts_at:
|
||
type: string
|
||
format: date-time
|
||
description: The date and time at which the discount should be available.
|
||
ends_at:
|
||
type: string
|
||
format: date-time
|
||
description: The date and time at which the discount should no longer be available.
|
||
valid_duration:
|
||
type: string
|
||
description: The duration the discount runs between
|
||
example: P3Y6M4DT12H30M5S
|
||
usage_limit:
|
||
type: number
|
||
description: Maximum number of times the discount can be used
|
||
regions:
|
||
description: A list of region IDs representing the Regions in which the Discount can be used.
|
||
type: array
|
||
items:
|
||
type: string
|
||
metadata:
|
||
description: An object containing metadata of the discount
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostDiscountsReq:
|
||
type: object
|
||
description: The details of the discount to create.
|
||
required:
|
||
- code
|
||
- rule
|
||
- regions
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: A unique code that will be used to redeem the discount
|
||
is_dynamic:
|
||
type: boolean
|
||
description: Whether the discount should have multiple instances of itself, each with a different code. This can be useful for automatically generated discount codes that all have to follow a common set of rules.
|
||
default: false
|
||
rule:
|
||
description: The discount rule that defines how discounts are calculated
|
||
type: object
|
||
required:
|
||
- type
|
||
- value
|
||
- allocation
|
||
properties:
|
||
description:
|
||
type: string
|
||
description: A short description of the discount
|
||
type:
|
||
type: string
|
||
description: The type of the discount, can be `fixed` for discounts that reduce the price by a fixed amount, `percentage` for percentage reductions or `free_shipping` for shipping vouchers.
|
||
enum:
|
||
- fixed
|
||
- percentage
|
||
- free_shipping
|
||
value:
|
||
type: number
|
||
description: The value that the discount represents. This will depend on the type of the discount.
|
||
allocation:
|
||
type: string
|
||
description: The scope that the discount should apply to. `total` indicates that the discount should be applied on the cart total, and `item` indicates that the discount should be applied to each discountable item in the cart.
|
||
enum:
|
||
- total
|
||
- item
|
||
conditions:
|
||
type: array
|
||
description: A set of conditions that can be used to limit when the discount can be used. Only one of `products`, `product_types`, `product_collections`, `product_tags`, and `customer_groups` should be provided based on the discount condition's type.
|
||
items:
|
||
type: object
|
||
required:
|
||
- operator
|
||
properties:
|
||
operator:
|
||
type: string
|
||
description: Operator of the condition. `in` indicates that discountable resources are within the specified resources. `not_in` indicates that discountable resources are everything but the specified resources.
|
||
enum:
|
||
- in
|
||
- not_in
|
||
products:
|
||
type: array
|
||
description: list of product IDs if the condition's type is `products`.
|
||
items:
|
||
type: string
|
||
product_types:
|
||
type: array
|
||
description: list of product type IDs if the condition's type is `product_types`.
|
||
items:
|
||
type: string
|
||
product_collections:
|
||
type: array
|
||
description: list of product collection IDs if the condition's type is `product_collections`.
|
||
items:
|
||
type: string
|
||
product_tags:
|
||
type: array
|
||
description: list of product tag IDs if the condition's type is `product_tags`.
|
||
items:
|
||
type: string
|
||
customer_groups:
|
||
type: array
|
||
description: list of customer group IDs if the condition's type is `customer_groups`.
|
||
items:
|
||
type: string
|
||
is_disabled:
|
||
type: boolean
|
||
description: Whether the discount code is disabled on creation. If set to `true`, it will not be available for customers.
|
||
default: false
|
||
starts_at:
|
||
type: string
|
||
format: date-time
|
||
description: The date and time at which the discount should be available.
|
||
ends_at:
|
||
type: string
|
||
format: date-time
|
||
description: The date and time at which the discount should no longer be available.
|
||
valid_duration:
|
||
type: string
|
||
description: The duration the discount runs between
|
||
example: P3Y6M4DT12H30M5S
|
||
regions:
|
||
description: A list of region IDs representing the Regions in which the Discount can be used.
|
||
type: array
|
||
items:
|
||
type: string
|
||
usage_limit:
|
||
type: number
|
||
description: Maximum number of times the discount can be used
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostDraftOrdersDraftOrderLineItemsItemReq:
|
||
type: object
|
||
description: The details to update of the line item.
|
||
properties:
|
||
unit_price:
|
||
description: The custom price of the line item. If a `variant_id` is supplied, the price provided here will override the variant's price.
|
||
type: integer
|
||
title:
|
||
description: The title of the line item if `variant_id` is not provided.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the line item.
|
||
type: integer
|
||
metadata:
|
||
description: The optional key-value map with additional details about the Line Item.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostDraftOrdersDraftOrderLineItemsReq:
|
||
type: object
|
||
description: The details of the line item to create.
|
||
required:
|
||
- quantity
|
||
properties:
|
||
variant_id:
|
||
description: The ID of the Product Variant associated with the line item. If the line item is custom, the `variant_id` should be omitted.
|
||
type: string
|
||
unit_price:
|
||
description: The custom price of the line item. If a `variant_id` is supplied, the price provided here will override the variant's price.
|
||
type: integer
|
||
title:
|
||
description: The title of the line item if `variant_id` is not provided.
|
||
type: string
|
||
default: Custom item
|
||
quantity:
|
||
description: The quantity of the line item.
|
||
type: integer
|
||
metadata:
|
||
description: The optional key-value map with additional details about the Line Item.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostDraftOrdersDraftOrderRegisterPaymentRes:
|
||
type: object
|
||
description: The order's details.
|
||
required:
|
||
- order
|
||
properties:
|
||
order:
|
||
description: Order's details.
|
||
$ref: '#/components/schemas/Order'
|
||
AdminPostDraftOrdersDraftOrderReq:
|
||
type: object
|
||
description: The details of the draft order to update.
|
||
properties:
|
||
region_id:
|
||
type: string
|
||
description: The ID of the Region to create the Draft Order in.
|
||
country_code:
|
||
type: string
|
||
description: The 2 character ISO code for the Country.
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
email:
|
||
type: string
|
||
description: An email to be used in the Draft Order.
|
||
format: email
|
||
billing_address:
|
||
description: The Address to be used for billing purposes.
|
||
anyOf:
|
||
- $ref: '#/components/schemas/AddressPayload'
|
||
- type: string
|
||
shipping_address:
|
||
description: The Address to be used for shipping purposes.
|
||
anyOf:
|
||
- $ref: '#/components/schemas/AddressPayload'
|
||
- type: string
|
||
discounts:
|
||
description: An array of Discount codes to add to the Draft Order.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- code
|
||
properties:
|
||
code:
|
||
description: The code that a Discount is identifed by.
|
||
type: string
|
||
no_notification_order:
|
||
description: An optional flag passed to the resulting order that indicates whether the customer should receive notifications about order updates.
|
||
type: boolean
|
||
customer_id:
|
||
description: The ID of the customer this draft order is associated with.
|
||
type: string
|
||
AdminPostDraftOrdersReq:
|
||
type: object
|
||
description: The details of the draft order to create.
|
||
required:
|
||
- email
|
||
- region_id
|
||
- shipping_methods
|
||
properties:
|
||
status:
|
||
description: The status of the draft order. The draft order's default status is `open`. It's changed to `completed` when its payment is marked as paid.
|
||
type: string
|
||
enum:
|
||
- open
|
||
- completed
|
||
email:
|
||
description: The email of the customer of the draft order
|
||
type: string
|
||
format: email
|
||
billing_address:
|
||
description: The Address to be used for billing purposes.
|
||
anyOf:
|
||
- $ref: '#/components/schemas/AddressPayload'
|
||
- type: string
|
||
shipping_address:
|
||
description: The Address to be used for shipping purposes.
|
||
anyOf:
|
||
- $ref: '#/components/schemas/AddressPayload'
|
||
- type: string
|
||
items:
|
||
description: The draft order's line items.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- quantity
|
||
properties:
|
||
variant_id:
|
||
description: The ID of the Product Variant associated with the line item. If the line item is custom, the `variant_id` should be omitted.
|
||
type: string
|
||
unit_price:
|
||
description: The custom price of the line item. If a `variant_id` is supplied, the price provided here will override the variant's price.
|
||
type: integer
|
||
title:
|
||
description: The title of the line item if `variant_id` is not provided.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the line item.
|
||
type: integer
|
||
metadata:
|
||
description: The optional key-value map with additional details about the line item.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
region_id:
|
||
description: The ID of the region for the draft order
|
||
type: string
|
||
discounts:
|
||
description: The discounts to add to the draft order
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- code
|
||
properties:
|
||
code:
|
||
description: The code of the discount to apply
|
||
type: string
|
||
customer_id:
|
||
description: The ID of the customer this draft order is associated with.
|
||
type: string
|
||
no_notification_order:
|
||
description: An optional flag passed to the resulting order that indicates whether the customer should receive notifications about order updates.
|
||
type: boolean
|
||
shipping_methods:
|
||
description: The shipping methods for the draft order
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- option_id
|
||
properties:
|
||
option_id:
|
||
description: The ID of the shipping option in use
|
||
type: string
|
||
data:
|
||
description: The optional additional data needed for the shipping method
|
||
type: object
|
||
price:
|
||
description: The price of the shipping method.
|
||
type: integer
|
||
metadata:
|
||
description: The optional key-value map with additional details about the Draft Order.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostGiftCardsGiftCardReq:
|
||
type: object
|
||
description: The details to update of the gift card.
|
||
properties:
|
||
balance:
|
||
type: integer
|
||
description: The value (excluding VAT) that the Gift Card should represent.
|
||
is_disabled:
|
||
type: boolean
|
||
description: Whether the Gift Card is disabled on creation. If set to `true`, the gift card will not be available for customers.
|
||
ends_at:
|
||
type: string
|
||
format: date-time
|
||
description: The date and time at which the Gift Card should no longer be available.
|
||
region_id:
|
||
description: The ID of the Region in which the Gift Card can be used.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostGiftCardsReq:
|
||
type: object
|
||
description: The details of the gift card to create.
|
||
required:
|
||
- region_id
|
||
properties:
|
||
value:
|
||
type: integer
|
||
description: The value (excluding VAT) that the Gift Card should represent.
|
||
is_disabled:
|
||
type: boolean
|
||
description: Whether the Gift Card is disabled on creation. If set to `true`, the gift card will not be available for customers.
|
||
ends_at:
|
||
type: string
|
||
format: date-time
|
||
description: The date and time at which the Gift Card should no longer be available.
|
||
region_id:
|
||
description: The ID of the Region in which the Gift Card can be used.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostInventoryItemsInventoryItemReq:
|
||
type: object
|
||
description: The attributes to update in an inventory item.
|
||
properties:
|
||
hs_code:
|
||
description: The Harmonized System code of the Inventory Item. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
origin_country:
|
||
description: The country in which the Inventory Item was produced. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturers Identification code that identifies the manufacturer of the Inventory Item. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
material:
|
||
description: The material and composition that the Inventory Item is made of, May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
weight:
|
||
description: The weight of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
height:
|
||
description: The height of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
width:
|
||
description: The width of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
length:
|
||
description: The length of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
title:
|
||
description: The inventory item's title.
|
||
type: string
|
||
description:
|
||
description: The inventory item's description.
|
||
type: string
|
||
thumbnail:
|
||
description: The inventory item's thumbnail.
|
||
type: string
|
||
requires_shipping:
|
||
description: Whether the item requires shipping.
|
||
type: boolean
|
||
AdminPostInventoryItemsItemLocationLevelsLevelReq:
|
||
type: object
|
||
properties:
|
||
stocked_quantity:
|
||
description: the total stock quantity of an inventory item at the given location ID
|
||
type: number
|
||
incoming_quantity:
|
||
description: the incoming stock quantity of an inventory item at the given location ID
|
||
type: number
|
||
AdminPostInventoryItemsItemLocationLevelsReq:
|
||
type: object
|
||
description: The details of the location level to create.
|
||
required:
|
||
- location_id
|
||
- stocked_quantity
|
||
properties:
|
||
location_id:
|
||
description: the ID of the stock location
|
||
type: string
|
||
stocked_quantity:
|
||
description: the stock quantity of the inventory item at this location
|
||
type: number
|
||
incoming_quantity:
|
||
description: the incoming stock quantity of the inventory item at this location
|
||
type: number
|
||
AdminPostInventoryItemsReq:
|
||
type: object
|
||
description: The details of the inventory item to create.
|
||
required:
|
||
- variant_id
|
||
properties:
|
||
variant_id:
|
||
description: The ID of the variant to create the inventory item for.
|
||
type: string
|
||
sku:
|
||
description: The unique SKU of the associated Product Variant.
|
||
type: string
|
||
ean:
|
||
description: The EAN number of the item.
|
||
type: string
|
||
upc:
|
||
description: The UPC number of the item.
|
||
type: string
|
||
barcode:
|
||
description: A generic GTIN field for the Product Variant.
|
||
type: string
|
||
hs_code:
|
||
description: The Harmonized System code of the Inventory Item. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
inventory_quantity:
|
||
description: The amount of stock kept of the associated Product Variant.
|
||
type: integer
|
||
default: 0
|
||
allow_backorder:
|
||
description: Whether the associated Product Variant can be purchased when out of stock.
|
||
type: boolean
|
||
manage_inventory:
|
||
description: Whether Medusa should keep track of the inventory for the associated Product Variant.
|
||
type: boolean
|
||
default: true
|
||
weight:
|
||
description: The weight of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
length:
|
||
description: The length of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
height:
|
||
description: The height of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
width:
|
||
description: The width of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
origin_country:
|
||
description: The country in which the Inventory Item was produced. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturers Identification code that identifies the manufacturer of the Inventory Item. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
material:
|
||
description: The material and composition that the Inventory Item is made of, May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
title:
|
||
description: The inventory item's title.
|
||
type: string
|
||
description:
|
||
description: The inventory item's description.
|
||
type: string
|
||
thumbnail:
|
||
description: The inventory item's thumbnail.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostInvitesInviteAcceptReq:
|
||
type: object
|
||
description: The details of the invite to be accepted.
|
||
required:
|
||
- token
|
||
- user
|
||
properties:
|
||
token:
|
||
description: The token of the invite to accept. This is a unique token generated when the invite was created or resent.
|
||
type: string
|
||
user:
|
||
description: The details of the user to create.
|
||
type: object
|
||
required:
|
||
- first_name
|
||
- last_name
|
||
- password
|
||
properties:
|
||
first_name:
|
||
type: string
|
||
description: the first name of the User
|
||
last_name:
|
||
type: string
|
||
description: the last name of the User
|
||
password:
|
||
description: The password for the User
|
||
type: string
|
||
format: password
|
||
AdminPostInvitesReq:
|
||
type: object
|
||
required:
|
||
- user
|
||
- role
|
||
properties:
|
||
user:
|
||
description: The email associated with the invite. Once the invite is accepted, the email will be associated with the created user.
|
||
type: string
|
||
format: email
|
||
role:
|
||
description: The role of the user to be created. This does not actually change the privileges of the user that is eventually created.
|
||
type: string
|
||
enum:
|
||
- admin
|
||
- member
|
||
- developer
|
||
AdminPostNotesNoteReq:
|
||
type: object
|
||
description: The details to update of the note.
|
||
required:
|
||
- value
|
||
properties:
|
||
value:
|
||
type: string
|
||
description: The description of the Note.
|
||
AdminPostNotesReq:
|
||
type: object
|
||
description: The details of the note to be created.
|
||
required:
|
||
- resource_id
|
||
- resource_type
|
||
- value
|
||
properties:
|
||
resource_id:
|
||
type: string
|
||
description: The ID of the resource which the Note relates to. For example, an order ID.
|
||
resource_type:
|
||
type: string
|
||
description: The type of resource which the Note relates to. For example, `order`.
|
||
value:
|
||
type: string
|
||
description: The content of the Note to create.
|
||
AdminPostNotificationsNotificationResendReq:
|
||
type: object
|
||
description: The resend details.
|
||
properties:
|
||
to:
|
||
description: A new address or user identifier that the Notification should be sent to. If not provided, the previous `to` field of the notification will be used.
|
||
type: string
|
||
AdminPostOrderEditsEditLineItemsLineItemReq:
|
||
type: object
|
||
description: The details to create or update of the line item change.
|
||
required:
|
||
- quantity
|
||
properties:
|
||
quantity:
|
||
description: The quantity to update
|
||
type: number
|
||
AdminPostOrderEditsEditLineItemsReq:
|
||
type: object
|
||
description: The details of the line item change to create.
|
||
required:
|
||
- variant_id
|
||
- quantity
|
||
properties:
|
||
variant_id:
|
||
description: The ID of the product variant associated with the item.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the item.
|
||
type: number
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostOrderEditsOrderEditReq:
|
||
type: object
|
||
description: The details to update of the order edit.
|
||
properties:
|
||
internal_note:
|
||
description: An optional note to create or update in the order edit.
|
||
type: string
|
||
AdminPostOrderEditsReq:
|
||
type: object
|
||
description: The details of the order edit to create.
|
||
required:
|
||
- order_id
|
||
properties:
|
||
order_id:
|
||
description: The ID of the order to create the edit for.
|
||
type: string
|
||
internal_note:
|
||
description: An optional note to associate with the order edit.
|
||
type: string
|
||
AdminPostOrdersOrderClaimsClaimFulfillmentsReq:
|
||
type: object
|
||
properties:
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
no_notification:
|
||
description: If set to `true`, no notification will be sent to the customer related to this Claim.
|
||
type: boolean
|
||
location_id:
|
||
description: The ID of the fulfillment's location.
|
||
type: string
|
||
AdminPostOrdersOrderClaimsClaimReq:
|
||
type: object
|
||
properties:
|
||
claim_items:
|
||
description: The Claim Items that the Claim will consist of.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
- images
|
||
- tags
|
||
properties:
|
||
id:
|
||
description: The ID of the Claim Item.
|
||
type: string
|
||
item_id:
|
||
description: The ID of the Line Item that will be claimed.
|
||
type: string
|
||
quantity:
|
||
description: The number of items that will be returned
|
||
type: integer
|
||
note:
|
||
description: Short text describing the Claim Item in further detail.
|
||
type: string
|
||
reason:
|
||
description: The reason for the Claim
|
||
type: string
|
||
enum:
|
||
- missing_item
|
||
- wrong_item
|
||
- production_failure
|
||
- other
|
||
tags:
|
||
description: A list o tags to add to the Claim Item
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: Tag ID
|
||
value:
|
||
type: string
|
||
description: Tag value
|
||
images:
|
||
description: A list of image URL's that will be associated with the Claim
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: Image ID
|
||
url:
|
||
type: string
|
||
description: Image URL
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
shipping_methods:
|
||
description: The Shipping Methods to send the additional Line Items with.
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Shipping Method
|
||
type: string
|
||
option_id:
|
||
description: The ID of the Shipping Option to create a Shipping Method from
|
||
type: string
|
||
price:
|
||
description: The price to charge for the Shipping Method
|
||
type: integer
|
||
data:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
no_notification:
|
||
description: If set to true no notification will be send related to this Swap.
|
||
type: boolean
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostOrdersOrderClaimsClaimShipmentsReq:
|
||
type: object
|
||
required:
|
||
- fulfillment_id
|
||
properties:
|
||
fulfillment_id:
|
||
description: The ID of the Fulfillment.
|
||
type: string
|
||
tracking_numbers:
|
||
description: An array of tracking numbers for the shipment.
|
||
type: array
|
||
items:
|
||
type: string
|
||
AdminPostOrdersOrderClaimsReq:
|
||
type: object
|
||
description: The details of the claim to be created.
|
||
required:
|
||
- type
|
||
- claim_items
|
||
properties:
|
||
type:
|
||
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.'
|
||
type: string
|
||
enum:
|
||
- replace
|
||
- refund
|
||
claim_items:
|
||
description: The Claim Items that the Claim will consist of.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- item_id
|
||
- quantity
|
||
properties:
|
||
item_id:
|
||
description: The ID of the Line Item that will be claimed.
|
||
type: string
|
||
quantity:
|
||
description: The number of items that will be returned
|
||
type: integer
|
||
note:
|
||
description: Short text describing the Claim Item in further detail.
|
||
type: string
|
||
reason:
|
||
description: The reason for the Claim
|
||
type: string
|
||
enum:
|
||
- missing_item
|
||
- wrong_item
|
||
- production_failure
|
||
- other
|
||
tags:
|
||
description: A list of tags to add to the Claim Item
|
||
type: array
|
||
items:
|
||
type: string
|
||
images:
|
||
description: A list of image URL's that will be associated with the Claim
|
||
items:
|
||
type: string
|
||
return_shipping:
|
||
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.
|
||
type: object
|
||
properties:
|
||
option_id:
|
||
type: string
|
||
description: The ID of the Shipping Option to create the Shipping Method from.
|
||
price:
|
||
type: integer
|
||
description: The price to charge for the Shipping Method.
|
||
additional_items:
|
||
description: The new items to send to the Customer. This is only used if the claim's type is `replace`.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- variant_id
|
||
- quantity
|
||
properties:
|
||
variant_id:
|
||
description: The ID of the Product Variant.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the Product Variant.
|
||
type: integer
|
||
shipping_methods:
|
||
description: The Shipping Methods to send the additional Line Items with. This is only used if the claim's type is `replace`.
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Shipping Method
|
||
type: string
|
||
option_id:
|
||
description: The ID of the Shipping Option to create a Shipping Method from
|
||
type: string
|
||
price:
|
||
description: The price to charge for the Shipping Method
|
||
type: integer
|
||
data:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
shipping_address:
|
||
description: An optional shipping address to send the claimed items to. If not provided, the parent order's shipping address will be used.
|
||
$ref: '#/components/schemas/AddressPayload'
|
||
refund_amount:
|
||
description: The amount to refund the customer. This is used when the claim's type is `refund`.
|
||
type: integer
|
||
no_notification:
|
||
description: If set to true no notification will be send related to this Claim.
|
||
type: boolean
|
||
return_location_id:
|
||
description: The ID of the location used for the associated return.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostOrdersOrderFulfillmentsReq:
|
||
type: object
|
||
description: The details of the fulfillment to be created.
|
||
required:
|
||
- items
|
||
properties:
|
||
items:
|
||
description: The Line Items to include in the Fulfillment.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- item_id
|
||
- quantity
|
||
properties:
|
||
item_id:
|
||
description: The ID of the Line Item to fulfill.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the Line Item to fulfill.
|
||
type: integer
|
||
location_id:
|
||
type: string
|
||
description: The ID of the location where the items will be fulfilled from.
|
||
no_notification:
|
||
description: If set to `true`, no notification will be sent to the customer related to this fulfillment.
|
||
type: boolean
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostOrdersOrderRefundsReq:
|
||
type: object
|
||
description: The details of the order refund.
|
||
required:
|
||
- amount
|
||
- reason
|
||
properties:
|
||
amount:
|
||
description: The amount to refund. It should be less than or equal the `refundable_amount` of the order.
|
||
type: integer
|
||
reason:
|
||
description: The reason for the Refund.
|
||
type: string
|
||
note:
|
||
description: A note with additional details about the Refund.
|
||
type: string
|
||
no_notification:
|
||
description: If set to `true`, no notification will be sent to the customer related to this Refund.
|
||
type: boolean
|
||
AdminPostOrdersOrderReq:
|
||
type: object
|
||
description: The details to update of the order.
|
||
properties:
|
||
email:
|
||
description: The email associated with the order
|
||
type: string
|
||
billing_address:
|
||
description: The order's billing address
|
||
$ref: '#/components/schemas/AddressPayload'
|
||
shipping_address:
|
||
description: The order's shipping address
|
||
$ref: '#/components/schemas/AddressPayload'
|
||
items:
|
||
description: The line items of the order
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
region:
|
||
description: ID of the region that the order is associated with.
|
||
type: string
|
||
discounts:
|
||
description: The discounts applied to the order
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Discount'
|
||
customer_id:
|
||
description: The ID of the customer associated with the order.
|
||
type: string
|
||
payment_method:
|
||
description: The payment method chosen for the order.
|
||
type: object
|
||
properties:
|
||
provider_id:
|
||
type: string
|
||
description: The ID of the payment provider.
|
||
data:
|
||
description: Any data relevant for the given payment method.
|
||
type: object
|
||
shipping_method:
|
||
description: The Shipping Method used for shipping the order.
|
||
type: object
|
||
properties:
|
||
provider_id:
|
||
type: string
|
||
description: The ID of the shipping provider.
|
||
profile_id:
|
||
type: string
|
||
description: The ID of the shipping profile.
|
||
price:
|
||
type: integer
|
||
description: The price of the shipping.
|
||
data:
|
||
type: object
|
||
description: Any data relevant to the specific shipping method.
|
||
items:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
description: Items to ship
|
||
no_notification:
|
||
description: If set to `true`, no notification will be sent to the customer related to this order.
|
||
type: boolean
|
||
AdminPostOrdersOrderReturnsReq:
|
||
type: object
|
||
description: The details of the requested return.
|
||
required:
|
||
- items
|
||
properties:
|
||
items:
|
||
description: The line items that will be returned.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- item_id
|
||
- quantity
|
||
properties:
|
||
item_id:
|
||
description: The ID of the Line Item.
|
||
type: string
|
||
reason_id:
|
||
description: The ID of the Return Reason to use.
|
||
type: string
|
||
note:
|
||
description: An optional note with information about the Return.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the Line Item.
|
||
type: integer
|
||
return_shipping:
|
||
description: The Shipping Method to be used to handle the return shipment.
|
||
type: object
|
||
properties:
|
||
option_id:
|
||
type: string
|
||
description: The ID of the Shipping Option to create the Shipping Method from.
|
||
price:
|
||
type: integer
|
||
description: The price to charge for the Shipping Method.
|
||
note:
|
||
description: An optional note with information about the Return.
|
||
type: string
|
||
receive_now:
|
||
description: A flag to indicate if the Return should be registerd as received immediately.
|
||
type: boolean
|
||
default: false
|
||
no_notification:
|
||
description: If set to `true`, no notification will be sent to the customer related to this Return.
|
||
type: boolean
|
||
refund:
|
||
description: The amount to refund.
|
||
type: integer
|
||
location_id:
|
||
description: The ID of the location used for the return.
|
||
type: string
|
||
AdminPostOrdersOrderShipmentReq:
|
||
type: object
|
||
description: The details of the shipment to create.
|
||
required:
|
||
- fulfillment_id
|
||
properties:
|
||
fulfillment_id:
|
||
description: The ID of the Fulfillment.
|
||
type: string
|
||
tracking_numbers:
|
||
description: The tracking numbers for the shipment.
|
||
type: array
|
||
items:
|
||
type: string
|
||
no_notification:
|
||
description: If set to true no notification will be send related to this Shipment.
|
||
type: boolean
|
||
AdminPostOrdersOrderShippingMethodsReq:
|
||
type: object
|
||
description: The shipping method's details.
|
||
required:
|
||
- price
|
||
- option_id
|
||
properties:
|
||
price:
|
||
type: number
|
||
description: The price (excluding VAT) that should be charged for the Shipping Method
|
||
option_id:
|
||
type: string
|
||
description: The ID of the Shipping Option to create the Shipping Method from.
|
||
data:
|
||
type: object
|
||
description: The data required for the Shipping Option to create a Shipping Method. This depends on the Fulfillment Provider.
|
||
AdminPostOrdersOrderSwapsReq:
|
||
type: object
|
||
description: The details of the swap to create.
|
||
required:
|
||
- return_items
|
||
properties:
|
||
return_items:
|
||
description: The Line Items to associate with the swap's return.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- item_id
|
||
- quantity
|
||
properties:
|
||
item_id:
|
||
description: The ID of the Line Item that will be returned.
|
||
type: string
|
||
quantity:
|
||
description: The number of items that will be returned
|
||
type: integer
|
||
reason_id:
|
||
description: The ID of the Return Reason to use.
|
||
type: string
|
||
note:
|
||
description: An optional note with information about the Return.
|
||
type: string
|
||
return_shipping:
|
||
description: The shipping method associated with the swap's return.
|
||
type: object
|
||
required:
|
||
- option_id
|
||
properties:
|
||
option_id:
|
||
type: string
|
||
description: The ID of the Shipping Option to create the Shipping Method from.
|
||
price:
|
||
type: integer
|
||
description: The price to charge for the Shipping Method.
|
||
additional_items:
|
||
description: The new items to send to the Customer.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- variant_id
|
||
- quantity
|
||
properties:
|
||
variant_id:
|
||
description: The ID of the Product Variant.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the Product Variant.
|
||
type: integer
|
||
sales_channel_id:
|
||
type: string
|
||
description: The ID of the sales channel associated with the swap.
|
||
custom_shipping_options:
|
||
description: An array of custom shipping options to potentially create a Shipping Method from to send the additional items.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- option_id
|
||
- price
|
||
properties:
|
||
option_id:
|
||
description: The ID of the Shipping Option.
|
||
type: string
|
||
price:
|
||
description: The custom price of the Shipping Option.
|
||
type: integer
|
||
no_notification:
|
||
description: If set to `true`, no notification will be sent to the customer related to this Swap.
|
||
type: boolean
|
||
return_location_id:
|
||
type: string
|
||
description: The ID of the location used for the associated return.
|
||
allow_backorder:
|
||
description: If set to `true`, swaps can be completed with items out of stock
|
||
type: boolean
|
||
default: true
|
||
AdminPostOrdersOrderSwapsSwapFulfillmentsReq:
|
||
type: object
|
||
properties:
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
no_notification:
|
||
description: If set to `true`, no notification will be sent to the customer related to this swap.
|
||
type: boolean
|
||
location_id:
|
||
description: The ID of the fulfillment's location.
|
||
type: string
|
||
AdminPostOrdersOrderSwapsSwapShipmentsReq:
|
||
type: object
|
||
required:
|
||
- fulfillment_id
|
||
properties:
|
||
fulfillment_id:
|
||
description: The ID of the Fulfillment.
|
||
type: string
|
||
tracking_numbers:
|
||
description: The tracking numbers for the shipment.
|
||
type: array
|
||
items:
|
||
type: string
|
||
no_notification:
|
||
description: If set to true no notification will be sent related to this Claim.
|
||
type: boolean
|
||
AdminPostPaymentRefundsReq:
|
||
type: object
|
||
description: The details of the refund to create.
|
||
required:
|
||
- amount
|
||
- reason
|
||
properties:
|
||
amount:
|
||
description: The amount to refund.
|
||
type: integer
|
||
reason:
|
||
description: The reason for the Refund.
|
||
type: string
|
||
note:
|
||
description: A note with additional details about the Refund.
|
||
type: string
|
||
AdminPostPriceListPricesPricesReq:
|
||
type: object
|
||
description: The details of the prices to add.
|
||
properties:
|
||
prices:
|
||
description: The prices to update or add.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- amount
|
||
- variant_id
|
||
properties:
|
||
id:
|
||
description: The ID of the price.
|
||
type: string
|
||
region_id:
|
||
description: The ID of the Region for which the price is used. This is only required if `currecny_code` is not provided.
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code for which the price will be used. This is only required if `region_id` is not provided.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
variant_id:
|
||
description: The ID of the Variant for which the price is used.
|
||
type: string
|
||
amount:
|
||
description: The amount to charge for the Product Variant.
|
||
type: integer
|
||
min_quantity:
|
||
description: The minimum quantity for which the price will be used.
|
||
type: integer
|
||
max_quantity:
|
||
description: The maximum quantity for which the price will be used.
|
||
type: integer
|
||
override:
|
||
description: If set to `true`, the prices will replace all existing prices associated with the Price List.
|
||
type: boolean
|
||
AdminPostPriceListsPriceListPriceListReq:
|
||
type: object
|
||
description: The details to update of the payment collection.
|
||
properties:
|
||
name:
|
||
description: The name of the Price List
|
||
type: string
|
||
description:
|
||
description: The description of the Price List.
|
||
type: string
|
||
starts_at:
|
||
description: The date with timezone that the Price List starts being valid.
|
||
type: string
|
||
format: date
|
||
ends_at:
|
||
description: The date with timezone that the Price List ends being valid.
|
||
type: string
|
||
format: date
|
||
type:
|
||
description: The type of the Price List.
|
||
type: string
|
||
enum:
|
||
- sale
|
||
- override
|
||
status:
|
||
description: The status of the Price List. If the status is set to `draft`, the prices created in the price list will not be available of the customer.
|
||
type: string
|
||
enum:
|
||
- active
|
||
- draft
|
||
prices:
|
||
description: The prices of the Price List.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- amount
|
||
- variant_id
|
||
properties:
|
||
id:
|
||
description: The ID of the price.
|
||
type: string
|
||
region_id:
|
||
description: The ID of the Region for which the price is used. This is only required if `currecny_code` is not provided.
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code for which the price will be used. This is only required if `region_id` is not provided.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
variant_id:
|
||
description: The ID of the Variant for which the price is used.
|
||
type: string
|
||
amount:
|
||
description: The amount to charge for the Product Variant.
|
||
type: integer
|
||
min_quantity:
|
||
description: The minimum quantity for which the price will be used.
|
||
type: integer
|
||
max_quantity:
|
||
description: The maximum quantity for which the price will be used.
|
||
type: integer
|
||
customer_groups:
|
||
type: array
|
||
description: An array of customer groups that the Price List applies to.
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of a customer group
|
||
type: string
|
||
includes_tax:
|
||
description: Tax included in prices of price list
|
||
x-featureFlag: tax_inclusive_pricing
|
||
type: boolean
|
||
AdminPostPriceListsPriceListReq:
|
||
type: object
|
||
description: The details of the price list to create.
|
||
required:
|
||
- name
|
||
- description
|
||
- type
|
||
- prices
|
||
properties:
|
||
name:
|
||
description: The name of the Price List.
|
||
type: string
|
||
description:
|
||
description: The description of the Price List.
|
||
type: string
|
||
starts_at:
|
||
description: The date with timezone that the Price List starts being valid.
|
||
type: string
|
||
format: date
|
||
ends_at:
|
||
description: The date with timezone that the Price List ends being valid.
|
||
type: string
|
||
format: date
|
||
type:
|
||
description: The type of the Price List.
|
||
type: string
|
||
enum:
|
||
- sale
|
||
- override
|
||
status:
|
||
description: The status of the Price List. If the status is set to `draft`, the prices created in the price list will not be available of the customer.
|
||
type: string
|
||
enum:
|
||
- active
|
||
- draft
|
||
prices:
|
||
description: The prices of the Price List.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- amount
|
||
- variant_id
|
||
properties:
|
||
region_id:
|
||
description: The ID of the Region for which the price is used. This is only required if `currecny_code` is not provided.
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code for which the price will be used. This is only required if `region_id` is not provided.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
amount:
|
||
description: The amount to charge for the Product Variant.
|
||
type: integer
|
||
variant_id:
|
||
description: The ID of the Variant for which the price is used.
|
||
type: string
|
||
min_quantity:
|
||
description: The minimum quantity for which the price will be used.
|
||
type: integer
|
||
max_quantity:
|
||
description: The maximum quantity for which the price will be used.
|
||
type: integer
|
||
customer_groups:
|
||
type: array
|
||
description: An array of customer groups that the Price List applies to.
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of a customer group
|
||
type: string
|
||
includes_tax:
|
||
description: Tax included in prices of price list
|
||
x-featureFlag: tax_inclusive_pricing
|
||
type: boolean
|
||
AdminPostProductCategoriesCategoryProductsBatchReq:
|
||
type: object
|
||
description: The details of the products to add to the product category.
|
||
required:
|
||
- product_ids
|
||
properties:
|
||
product_ids:
|
||
description: The IDs of the products to add to the product category
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the product
|
||
AdminPostProductCategoriesCategoryReq:
|
||
type: object
|
||
description: The details to update of the product category.
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: The name to identify the Product Category by.
|
||
description:
|
||
type: string
|
||
description: An optional text field to describe the Product Category by.
|
||
handle:
|
||
type: string
|
||
description: A handle to be used in slugs.
|
||
is_internal:
|
||
type: boolean
|
||
description: A flag to make product category an internal category for admins
|
||
is_active:
|
||
type: boolean
|
||
description: A flag to make product category visible/hidden in the store front
|
||
parent_category_id:
|
||
type: string
|
||
description: The ID of the parent product category
|
||
rank:
|
||
type: number
|
||
description: The rank of the category in the tree node (starting from 0)
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostProductCategoriesReq:
|
||
type: object
|
||
description: The details of the product category to create.
|
||
required:
|
||
- name
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: The name of the product category
|
||
description:
|
||
type: string
|
||
description: The description of the product category.
|
||
handle:
|
||
type: string
|
||
description: The handle of the product category. If none is provided, the kebab-case version of the name will be used. This field can be used as a slug in URLs.
|
||
is_internal:
|
||
type: boolean
|
||
description: If set to `true`, the product category will only be available to admins.
|
||
is_active:
|
||
type: boolean
|
||
description: If set to `false`, the product category will not be available in the storefront.
|
||
parent_category_id:
|
||
type: string
|
||
description: The ID of the parent product category
|
||
metadata:
|
||
description: An optional set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostProductsProductMetadataReq:
|
||
type: object
|
||
required:
|
||
- key
|
||
- value
|
||
properties:
|
||
key:
|
||
description: The metadata key
|
||
type: string
|
||
value:
|
||
description: The metadata value
|
||
type: string
|
||
AdminPostProductsProductOptionsOption:
|
||
type: object
|
||
required:
|
||
- title
|
||
properties:
|
||
title:
|
||
description: The title of the Product Option
|
||
type: string
|
||
AdminPostProductsProductOptionsReq:
|
||
type: object
|
||
description: The details of the product option to create.
|
||
required:
|
||
- title
|
||
properties:
|
||
title:
|
||
description: The title the Product Option.
|
||
type: string
|
||
example: Size
|
||
AdminPostProductsProductReq:
|
||
type: object
|
||
description: The details to update of the product.
|
||
properties:
|
||
title:
|
||
description: The title of the Product
|
||
type: string
|
||
subtitle:
|
||
description: The subtitle of the Product
|
||
type: string
|
||
description:
|
||
description: The description of the Product.
|
||
type: string
|
||
discountable:
|
||
description: A flag to indicate if discounts can be applied to the Line Items generated from this Product
|
||
type: boolean
|
||
images:
|
||
description: An array of images of the Product. Each value in the array is a URL to the image. You can use the upload API Routes to upload the image and obtain a URL.
|
||
type: array
|
||
items:
|
||
type: string
|
||
thumbnail:
|
||
description: The thumbnail to use for the Product. The value is a URL to the thumbnail. You can use the upload API Routes to upload the thumbnail and obtain a URL.
|
||
type: string
|
||
handle:
|
||
description: A unique handle to identify the Product by. If not provided, the kebab-case version of the product title will be used. This can be used as a slug in URLs.
|
||
type: string
|
||
status:
|
||
description: The status of the product. The product is shown to the customer only if its status is `published`.
|
||
type: string
|
||
enum:
|
||
- draft
|
||
- proposed
|
||
- published
|
||
- rejected
|
||
type:
|
||
description: The Product Type to associate the Product with.
|
||
type: object
|
||
required:
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Product Type. If not provided, a new product type will be created.
|
||
type: string
|
||
value:
|
||
description: The value of the Product Type.
|
||
type: string
|
||
collection_id:
|
||
description: The ID of the Product Collection the Product belongs to.
|
||
type: string
|
||
tags:
|
||
description: Product Tags to associate the Product with.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Product Tag. If not provided, a new product tag will be created.
|
||
type: string
|
||
value:
|
||
description: The value of the Tag. If the `id` is provided, the value of the existing tag will be updated.
|
||
type: string
|
||
sales_channels:
|
||
description: Sales channels to associate the Product with.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Sales channel.
|
||
type: string
|
||
categories:
|
||
description: Product categories to add the Product to.
|
||
x-featureFlag: product_categories
|
||
type: array
|
||
items:
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of a Product Category.
|
||
type: string
|
||
variants:
|
||
description: An array of Product Variants to create with the Product. Each product variant must have a unique combination of Product Option values.
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
id:
|
||
description: The id of an existing product variant. If provided, the details of the product variant will be updated. If not, a new product variant will be created.
|
||
type: string
|
||
title:
|
||
description: The title of the product variant.
|
||
type: string
|
||
sku:
|
||
description: The unique SKU of the product variant.
|
||
type: string
|
||
ean:
|
||
description: The EAN number of the product variant.
|
||
type: string
|
||
upc:
|
||
description: The UPC number of the product variant.
|
||
type: string
|
||
barcode:
|
||
description: A generic GTIN field of the product variant.
|
||
type: string
|
||
hs_code:
|
||
description: The Harmonized System code of the product variant.
|
||
type: string
|
||
inventory_quantity:
|
||
description: The amount of stock kept of the product variant.
|
||
type: integer
|
||
allow_backorder:
|
||
description: Whether the product variant can be purchased when out of stock.
|
||
type: boolean
|
||
manage_inventory:
|
||
description: Whether Medusa should keep track of the inventory of this product variant.
|
||
type: boolean
|
||
weight:
|
||
description: The weight of the product variant.
|
||
type: number
|
||
length:
|
||
description: The length of the product variant.
|
||
type: number
|
||
height:
|
||
description: The height of the product variant.
|
||
type: number
|
||
width:
|
||
description: The width of the product variant.
|
||
type: number
|
||
origin_country:
|
||
description: The country of origin of the product variant.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturer Identification code of the product variant.
|
||
type: string
|
||
material:
|
||
description: The material composition of the product variant.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
prices:
|
||
type: array
|
||
description: An array of product variant prices. A product variant can have different prices for each region or currency code.
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-products#product-variant-prices
|
||
description: Product variant pricing.
|
||
items:
|
||
type: object
|
||
required:
|
||
- amount
|
||
properties:
|
||
id:
|
||
description: The ID of the Price. If provided, the existing price will be updated. Otherwise, a new price will be created.
|
||
type: string
|
||
region_id:
|
||
description: The ID of the Region the price will be used in. This is only required if `currency_code` is not provided.
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code the price will be used in. This is only required if `region_id` is not provided.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
amount:
|
||
description: The price amount.
|
||
type: integer
|
||
min_quantity:
|
||
description: The minimum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
max_quantity:
|
||
description: The maximum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
options:
|
||
type: array
|
||
description: An array of Product Option values that the variant corresponds to.
|
||
items:
|
||
type: object
|
||
required:
|
||
- option_id
|
||
- value
|
||
properties:
|
||
option_id:
|
||
description: The ID of the Option.
|
||
type: string
|
||
value:
|
||
description: The value of the Product Option.
|
||
type: string
|
||
weight:
|
||
description: The weight of the Product.
|
||
type: number
|
||
length:
|
||
description: The length of the Product.
|
||
type: number
|
||
height:
|
||
description: The height of the Product.
|
||
type: number
|
||
width:
|
||
description: The width of the Product.
|
||
type: number
|
||
hs_code:
|
||
description: The Harmonized System code of the product variant.
|
||
type: string
|
||
origin_country:
|
||
description: The country of origin of the Product.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturer Identification code of the Product.
|
||
type: string
|
||
material:
|
||
description: The material composition of the Product.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostProductsProductVariantsReq:
|
||
type: object
|
||
description: The details of the product variant to create.
|
||
required:
|
||
- title
|
||
- prices
|
||
- options
|
||
properties:
|
||
title:
|
||
description: The title of the product variant.
|
||
type: string
|
||
sku:
|
||
description: The unique SKU of the product variant.
|
||
type: string
|
||
ean:
|
||
description: The EAN number of the product variant.
|
||
type: string
|
||
upc:
|
||
description: The UPC number of the product variant.
|
||
type: string
|
||
barcode:
|
||
description: A generic GTIN field of the product variant.
|
||
type: string
|
||
hs_code:
|
||
description: The Harmonized System code of the product variant.
|
||
type: string
|
||
inventory_quantity:
|
||
description: The amount of stock kept of the product variant.
|
||
type: integer
|
||
default: 0
|
||
allow_backorder:
|
||
description: Whether the product variant can be purchased when out of stock.
|
||
type: boolean
|
||
manage_inventory:
|
||
description: Whether Medusa should keep track of the inventory of this product variant.
|
||
type: boolean
|
||
default: true
|
||
weight:
|
||
description: The wieght of the product variant.
|
||
type: number
|
||
length:
|
||
description: The length of the product variant.
|
||
type: number
|
||
height:
|
||
description: The height of the product variant.
|
||
type: number
|
||
width:
|
||
description: The width of the product variant.
|
||
type: number
|
||
origin_country:
|
||
description: The country of origin of the product variant.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturer Identification code of the product variant.
|
||
type: string
|
||
material:
|
||
description: The material composition of the product variant.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
prices:
|
||
type: array
|
||
description: An array of product variant prices. A product variant can have different prices for each region or currency code.
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-products#product-variant-prices
|
||
description: Product variant pricing.
|
||
items:
|
||
type: object
|
||
required:
|
||
- amount
|
||
properties:
|
||
region_id:
|
||
description: The ID of the Region the price will be used in. This is only required if `currency_code` is not provided.
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code the price will be used in. This is only required if `region_id` is not provided.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
amount:
|
||
description: The price amount.
|
||
type: integer
|
||
min_quantity:
|
||
description: The minimum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
max_quantity:
|
||
description: The maximum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
options:
|
||
type: array
|
||
description: An array of Product Option values that the variant corresponds to.
|
||
items:
|
||
type: object
|
||
required:
|
||
- option_id
|
||
- value
|
||
properties:
|
||
option_id:
|
||
description: The ID of the Product Option.
|
||
type: string
|
||
value:
|
||
description: A value to give to the Product Option.
|
||
type: string
|
||
AdminPostProductsProductVariantsVariantReq:
|
||
type: object
|
||
properties:
|
||
title:
|
||
description: The title of the product variant.
|
||
type: string
|
||
sku:
|
||
description: The unique SKU of the product variant.
|
||
type: string
|
||
ean:
|
||
description: The EAN number of the item.
|
||
type: string
|
||
upc:
|
||
description: The UPC number of the item.
|
||
type: string
|
||
barcode:
|
||
description: A generic GTIN field of the product variant.
|
||
type: string
|
||
hs_code:
|
||
description: The Harmonized System code of the product variant.
|
||
type: string
|
||
inventory_quantity:
|
||
description: The amount of stock kept of the product variant.
|
||
type: integer
|
||
allow_backorder:
|
||
description: Whether the product variant can be purchased when out of stock.
|
||
type: boolean
|
||
manage_inventory:
|
||
description: Whether Medusa should keep track of the inventory of this product variant.
|
||
type: boolean
|
||
weight:
|
||
description: The weight of the product variant.
|
||
type: number
|
||
length:
|
||
description: The length of the product variant.
|
||
type: number
|
||
height:
|
||
description: The height of the product variant.
|
||
type: number
|
||
width:
|
||
description: The width of the product variant.
|
||
type: number
|
||
origin_country:
|
||
description: The country of origin of the product variant.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturer Identification code of the product variant.
|
||
type: string
|
||
material:
|
||
description: The material composition of the product variant.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
prices:
|
||
type: array
|
||
description: An array of product variant prices. A product variant can have different prices for each region or currency code.
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-products#product-variant-prices
|
||
description: Product variant pricing.
|
||
items:
|
||
type: object
|
||
required:
|
||
- amount
|
||
properties:
|
||
id:
|
||
description: The ID of the price. If provided, the existing price will be updated. Otherwise, a new price will be created.
|
||
type: string
|
||
region_id:
|
||
description: The ID of the Region the price will be used in. This is only required if `currency_code` is not provided.
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code the price will be used in. This is only required if `region_id` is not provided.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
amount:
|
||
description: The price amount.
|
||
type: integer
|
||
min_quantity:
|
||
description: The minimum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
max_quantity:
|
||
description: The maximum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
options:
|
||
type: array
|
||
description: An array of Product Option values that the variant corresponds to.
|
||
items:
|
||
type: object
|
||
required:
|
||
- option_id
|
||
- value
|
||
properties:
|
||
option_id:
|
||
description: The ID of the Product Option.
|
||
type: string
|
||
value:
|
||
description: The value of the Product Option.
|
||
type: string
|
||
AdminPostProductsReq:
|
||
type: object
|
||
description: The details of the product to create.
|
||
required:
|
||
- title
|
||
properties:
|
||
title:
|
||
description: The title of the Product
|
||
type: string
|
||
subtitle:
|
||
description: The subtitle of the Product
|
||
type: string
|
||
description:
|
||
description: The description of the Product.
|
||
type: string
|
||
is_giftcard:
|
||
description: A flag to indicate if the Product represents a Gift Card. Purchasing Products with this flag set to `true` will result in a Gift Card being created.
|
||
type: boolean
|
||
default: false
|
||
discountable:
|
||
description: A flag to indicate if discounts can be applied to the Line Items generated from this Product
|
||
type: boolean
|
||
default: true
|
||
images:
|
||
description: An array of images of the Product. Each value in the array is a URL to the image. You can use the upload API Routes to upload the image and obtain a URL.
|
||
type: array
|
||
items:
|
||
type: string
|
||
thumbnail:
|
||
description: The thumbnail to use for the Product. The value is a URL to the thumbnail. You can use the upload API Routes to upload the thumbnail and obtain a URL.
|
||
type: string
|
||
handle:
|
||
description: A unique handle to identify the Product by. If not provided, the kebab-case version of the product title will be used. This can be used as a slug in URLs.
|
||
type: string
|
||
status:
|
||
description: The status of the product. The product is shown to the customer only if its status is `published`.
|
||
type: string
|
||
enum:
|
||
- draft
|
||
- proposed
|
||
- published
|
||
- rejected
|
||
default: draft
|
||
type:
|
||
description: The Product Type to associate the Product with.
|
||
type: object
|
||
required:
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Product Type. If not provided, a new product type will be created.
|
||
type: string
|
||
value:
|
||
description: The value of the Product Type.
|
||
type: string
|
||
collection_id:
|
||
description: The ID of the Product Collection the Product belongs to.
|
||
type: string
|
||
tags:
|
||
description: Product Tags to associate the Product with.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Product Tag. If not provided, a new product tag will be created.
|
||
type: string
|
||
value:
|
||
description: The value of the Tag. If the `id` is provided, the value of the existing tag will be updated.
|
||
type: string
|
||
sales_channels:
|
||
description: Sales channels to associate the Product with.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of an existing Sales channel.
|
||
type: string
|
||
categories:
|
||
description: Product categories to add the Product to.
|
||
x-featureFlag: product_categories
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
description: The ID of a Product Category.
|
||
type: string
|
||
options:
|
||
description: The Options that the Product should have. A new product option will be created for every item in the array.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- title
|
||
properties:
|
||
title:
|
||
description: The title of the Product Option.
|
||
type: string
|
||
variants:
|
||
description: An array of Product Variants to create with the Product. Each product variant must have a unique combination of Product Option values.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- title
|
||
properties:
|
||
title:
|
||
description: The title of the Product Variant.
|
||
type: string
|
||
sku:
|
||
description: The unique SKU of the Product Variant.
|
||
type: string
|
||
ean:
|
||
description: The EAN number of the item.
|
||
type: string
|
||
upc:
|
||
description: The UPC number of the item.
|
||
type: string
|
||
barcode:
|
||
description: A generic GTIN field of the Product Variant.
|
||
type: string
|
||
hs_code:
|
||
description: The Harmonized System code of the Product Variant.
|
||
type: string
|
||
inventory_quantity:
|
||
description: The amount of stock kept of the Product Variant.
|
||
type: integer
|
||
default: 0
|
||
allow_backorder:
|
||
description: Whether the Product Variant can be purchased when out of stock.
|
||
type: boolean
|
||
manage_inventory:
|
||
description: Whether Medusa should keep track of the inventory of this Product Variant.
|
||
type: boolean
|
||
weight:
|
||
description: The wieght of the Product Variant.
|
||
type: number
|
||
length:
|
||
description: The length of the Product Variant.
|
||
type: number
|
||
height:
|
||
description: The height of the Product Variant.
|
||
type: number
|
||
width:
|
||
description: The width of the Product Variant.
|
||
type: number
|
||
origin_country:
|
||
description: The country of origin of the Product Variant.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturer Identification code of the Product Variant.
|
||
type: string
|
||
material:
|
||
description: The material composition of the Product Variant.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
prices:
|
||
type: array
|
||
description: An array of product variant prices. A product variant can have different prices for each region or currency code.
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-products#product-variant-prices
|
||
description: Product variant pricing.
|
||
items:
|
||
type: object
|
||
required:
|
||
- amount
|
||
properties:
|
||
region_id:
|
||
description: The ID of the Region the price will be used in. This is only required if `currency_code` is not provided.
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code the price will be used in. This is only required if `region_id` is not provided.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
amount:
|
||
description: The price amount.
|
||
type: integer
|
||
min_quantity:
|
||
description: The minimum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
max_quantity:
|
||
description: The maximum quantity required to be added to the cart for the price to be used.
|
||
type: integer
|
||
options:
|
||
type: array
|
||
description: An array of Product Option values that the variant corresponds to. The option values should be added into the array in the same index as in the `options` field of the product.
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/modules/products/admin/manage-products#create-a-product
|
||
description: Example of how to create a product with options and variants
|
||
items:
|
||
type: object
|
||
required:
|
||
- value
|
||
properties:
|
||
value:
|
||
description: The value to give for the Product Option at the same index in the Product's `options` field.
|
||
type: string
|
||
weight:
|
||
description: The weight of the Product.
|
||
type: number
|
||
length:
|
||
description: The length of the Product.
|
||
type: number
|
||
height:
|
||
description: The height of the Product.
|
||
type: number
|
||
width:
|
||
description: The width of the Product.
|
||
type: number
|
||
hs_code:
|
||
description: The Harmonized System code of the Product.
|
||
type: string
|
||
origin_country:
|
||
description: The country of origin of the Product.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturer Identification code of the Product.
|
||
type: string
|
||
material:
|
||
description: The material composition of the Product.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostProductsToCollectionReq:
|
||
type: object
|
||
description: The details of the products to add to the collection.
|
||
required:
|
||
- product_ids
|
||
properties:
|
||
product_ids:
|
||
description: An array of Product IDs to add to the Product Collection.
|
||
type: array
|
||
items:
|
||
description: The ID of a Product to add to the Product Collection.
|
||
type: string
|
||
AdminPostPublishableApiKeySalesChannelsBatchReq:
|
||
type: object
|
||
description: The details of the sales channels to add to the publishable API key.
|
||
required:
|
||
- sales_channel_ids
|
||
properties:
|
||
sales_channel_ids:
|
||
description: The IDs of the sales channels to add to the publishable API key
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the sales channel
|
||
AdminPostPublishableApiKeysPublishableApiKeyReq:
|
||
type: object
|
||
description: The details to update of the publishable API key.
|
||
properties:
|
||
title:
|
||
description: The title of the Publishable API Key.
|
||
type: string
|
||
AdminPostPublishableApiKeysReq:
|
||
type: object
|
||
description: The details of the publishable API key to create.
|
||
required:
|
||
- title
|
||
properties:
|
||
title:
|
||
description: The title of the publishable API key
|
||
type: string
|
||
AdminPostRegionsRegionCountriesReq:
|
||
type: object
|
||
description: The details of the country to add to the region.
|
||
required:
|
||
- country_code
|
||
properties:
|
||
country_code:
|
||
description: The 2 character ISO code for the Country.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
AdminPostRegionsRegionFulfillmentProvidersReq:
|
||
type: object
|
||
description: The details of the fulfillment provider to add to the region.
|
||
required:
|
||
- provider_id
|
||
properties:
|
||
provider_id:
|
||
description: The ID of the Fulfillment Provider.
|
||
type: string
|
||
AdminPostRegionsRegionPaymentProvidersReq:
|
||
type: object
|
||
description: The details of the payment provider to add to the region.
|
||
required:
|
||
- provider_id
|
||
properties:
|
||
provider_id:
|
||
description: The ID of the Payment Provider.
|
||
type: string
|
||
AdminPostRegionsRegionReq:
|
||
type: object
|
||
description: The details to update of the regions.
|
||
properties:
|
||
name:
|
||
description: The name of the Region
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code to use in the Region.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
automatic_taxes:
|
||
description: If set to `true`, the Medusa backend will automatically calculate taxes for carts in this region. If set to `false`, the taxes must be calculated manually.
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/modules/taxes/storefront/manual-calculation
|
||
description: How to calculate taxes in a storefront.
|
||
type: boolean
|
||
gift_cards_taxable:
|
||
description: If set to `true`, taxes will be applied on gift cards.
|
||
type: boolean
|
||
tax_provider_id:
|
||
description: The ID of the tax provider to use. If none provided, the system tax provider is used.
|
||
type: string
|
||
tax_code:
|
||
description: The tax code of the Region.
|
||
type: string
|
||
tax_rate:
|
||
description: The tax rate to use in the Region.
|
||
type: number
|
||
includes_tax:
|
||
x-featureFlag: tax_inclusive_pricing
|
||
description: Whether taxes are included in the prices of the region.
|
||
type: boolean
|
||
payment_providers:
|
||
description: A list of Payment Provider IDs that can be used in the Region
|
||
type: array
|
||
items:
|
||
type: string
|
||
fulfillment_providers:
|
||
description: A list of Fulfillment Provider IDs that can be used in the Region
|
||
type: array
|
||
items:
|
||
type: string
|
||
countries:
|
||
description: A list of countries' 2 ISO characters that should be included in the Region.
|
||
type: array
|
||
items:
|
||
type: string
|
||
AdminPostRegionsReq:
|
||
type: object
|
||
description: The details of the region to create.
|
||
required:
|
||
- name
|
||
- currency_code
|
||
- tax_rate
|
||
- payment_providers
|
||
- fulfillment_providers
|
||
- countries
|
||
properties:
|
||
name:
|
||
description: The name of the Region
|
||
type: string
|
||
currency_code:
|
||
description: The 3 character ISO currency code to use in the Region.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
tax_code:
|
||
description: The tax code of the Region.
|
||
type: string
|
||
tax_rate:
|
||
description: The tax rate to use in the Region.
|
||
type: number
|
||
payment_providers:
|
||
description: A list of Payment Provider IDs that can be used in the Region
|
||
type: array
|
||
items:
|
||
type: string
|
||
fulfillment_providers:
|
||
description: A list of Fulfillment Provider IDs that can be used in the Region
|
||
type: array
|
||
items:
|
||
type: string
|
||
countries:
|
||
description: A list of countries' 2 ISO characters that should be included in the Region.
|
||
example:
|
||
- US
|
||
type: array
|
||
items:
|
||
type: string
|
||
includes_tax:
|
||
x-featureFlag: tax_inclusive_pricing
|
||
description: Whether taxes are included in the prices of the region.
|
||
type: boolean
|
||
AdminPostReservationsReq:
|
||
type: object
|
||
description: The details of the reservation to create.
|
||
required:
|
||
- location_id
|
||
- inventory_item_id
|
||
- quantity
|
||
properties:
|
||
line_item_id:
|
||
description: The ID of the line item of the reservation.
|
||
type: string
|
||
location_id:
|
||
description: The ID of the location of the reservation.
|
||
type: string
|
||
inventory_item_id:
|
||
description: The ID of the inventory item the reservation is associated with.
|
||
type: string
|
||
quantity:
|
||
description: The quantity to reserve.
|
||
type: number
|
||
description:
|
||
description: The reservation's description.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostReservationsReservationReq:
|
||
type: object
|
||
description: The details to update of the reservation.
|
||
properties:
|
||
location_id:
|
||
description: The ID of the location associated with the reservation.
|
||
type: string
|
||
quantity:
|
||
description: The quantity to reserve.
|
||
type: number
|
||
description:
|
||
description: The reservation's description.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostReturnReasonsReasonReq:
|
||
type: object
|
||
description: The details to update of the return reason.
|
||
properties:
|
||
label:
|
||
description: The label to display to the Customer.
|
||
type: string
|
||
value:
|
||
description: A unique value of the return reason.
|
||
type: string
|
||
description:
|
||
description: The description of the Reason.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostReturnReasonsReq:
|
||
type: object
|
||
description: The details of the return reason to create.
|
||
required:
|
||
- label
|
||
- value
|
||
properties:
|
||
label:
|
||
description: The label to display to the Customer.
|
||
type: string
|
||
value:
|
||
description: A unique value of the return reason.
|
||
type: string
|
||
parent_return_reason_id:
|
||
description: The ID of the parent return reason.
|
||
type: string
|
||
description:
|
||
description: The description of the Reason.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostReturnsReturnReceiveReq:
|
||
type: object
|
||
description: The details of the received return.
|
||
required:
|
||
- items
|
||
properties:
|
||
items:
|
||
description: The Line Items that have been received.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- item_id
|
||
- quantity
|
||
properties:
|
||
item_id:
|
||
description: The ID of the Line Item.
|
||
type: string
|
||
quantity:
|
||
description: The quantity of the Line Item.
|
||
type: integer
|
||
refund:
|
||
description: The amount to refund.
|
||
type: number
|
||
location_id:
|
||
description: The ID of the location to return items from.
|
||
type: string
|
||
AdminPostSalesChannelsChannelProductsBatchReq:
|
||
type: object
|
||
description: The details of the products to add to the sales channel.
|
||
required:
|
||
- product_ids
|
||
properties:
|
||
product_ids:
|
||
description: The IDs of the products to add to the sales channel
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the product
|
||
AdminPostSalesChannelsChannelStockLocationsReq:
|
||
type: object
|
||
required:
|
||
- location_id
|
||
properties:
|
||
location_id:
|
||
description: The ID of the stock location
|
||
type: string
|
||
AdminPostSalesChannelsReq:
|
||
type: object
|
||
description: The details of the sales channel to create.
|
||
required:
|
||
- name
|
||
properties:
|
||
name:
|
||
description: The name of the Sales Channel
|
||
type: string
|
||
description:
|
||
description: The description of the Sales Channel
|
||
type: string
|
||
is_disabled:
|
||
description: Whether the Sales Channel is disabled.
|
||
type: boolean
|
||
AdminPostSalesChannelsSalesChannelReq:
|
||
type: object
|
||
description: The details to update of the sales channel.
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: The name of the sales channel
|
||
description:
|
||
type: string
|
||
description: The description of the sales channel.
|
||
is_disabled:
|
||
type: boolean
|
||
description: Whether the Sales Channel is disabled.
|
||
AdminPostShippingOptionsOptionReq:
|
||
type: object
|
||
description: The details to update of the shipping option.
|
||
required:
|
||
- requirements
|
||
properties:
|
||
name:
|
||
description: The name of the Shipping Option
|
||
type: string
|
||
amount:
|
||
description: The amount to charge for the Shipping Option. If the `price_type` of the shipping option is `calculated`, this amount will not actually be used.
|
||
type: integer
|
||
admin_only:
|
||
description: If set to `true`, the shipping option can only be used when creating draft orders.
|
||
type: boolean
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
requirements:
|
||
description: The requirements that must be satisfied for the Shipping Option to be available.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- type
|
||
- amount
|
||
properties:
|
||
id:
|
||
description: The ID of an existing requirement. If an ID is passed, the existing requirement's details are updated. Otherwise, a new requirement is created.
|
||
type: string
|
||
type:
|
||
description: The type of the requirement
|
||
type: string
|
||
enum:
|
||
- max_subtotal
|
||
- min_subtotal
|
||
amount:
|
||
description: The amount to compare with.
|
||
type: integer
|
||
includes_tax:
|
||
description: Tax included in prices of shipping option
|
||
x-featureFlag: tax_inclusive_pricing
|
||
type: boolean
|
||
AdminPostShippingOptionsReq:
|
||
type: object
|
||
description: The details of the shipping option to create.
|
||
required:
|
||
- name
|
||
- region_id
|
||
- provider_id
|
||
- data
|
||
- price_type
|
||
properties:
|
||
name:
|
||
description: The name of the Shipping Option
|
||
type: string
|
||
region_id:
|
||
description: The ID of the Region in which the Shipping Option will be available.
|
||
type: string
|
||
provider_id:
|
||
description: The ID of the Fulfillment Provider that handles the Shipping Option.
|
||
type: string
|
||
profile_id:
|
||
description: The ID of the Shipping Profile to add the Shipping Option to.
|
||
type: number
|
||
data:
|
||
description: The data needed for the Fulfillment Provider to handle shipping with this Shipping Option.
|
||
type: object
|
||
price_type:
|
||
description: The type of the Shipping Option price. `flat_rate` indicates fixed pricing, whereas `calculated` indicates that the price will be calculated each time by the fulfillment provider.
|
||
type: string
|
||
enum:
|
||
- flat_rate
|
||
- calculated
|
||
amount:
|
||
description: The amount to charge for the Shipping Option. If the `price_type` is set to `calculated`, this amount will not actually be used.
|
||
type: integer
|
||
requirements:
|
||
description: The requirements that must be satisfied for the Shipping Option to be available.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- type
|
||
- amount
|
||
properties:
|
||
type:
|
||
description: The type of the requirement
|
||
type: string
|
||
enum:
|
||
- max_subtotal
|
||
- min_subtotal
|
||
amount:
|
||
description: The amount to compare with.
|
||
type: integer
|
||
is_return:
|
||
description: Whether the Shipping Option can be used for returns or during checkout.
|
||
type: boolean
|
||
default: false
|
||
admin_only:
|
||
description: If set to `true`, the shipping option can only be used when creating draft orders.
|
||
type: boolean
|
||
default: false
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
includes_tax:
|
||
description: Tax included in prices of shipping option
|
||
x-featureFlag: tax_inclusive_pricing
|
||
type: boolean
|
||
AdminPostShippingProfilesProfileReq:
|
||
type: object
|
||
description: The detail to update of the shipping profile.
|
||
properties:
|
||
name:
|
||
description: The name of the Shipping Profile
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
type:
|
||
description: The type of the Shipping Profile
|
||
type: string
|
||
enum:
|
||
- default
|
||
- gift_card
|
||
- custom
|
||
products:
|
||
description: product IDs to associate with the Shipping Profile
|
||
type: array
|
||
shipping_options:
|
||
description: Shipping option IDs to associate with the Shipping Profile
|
||
type: array
|
||
AdminPostShippingProfilesReq:
|
||
type: object
|
||
description: The details of the shipping profile to create.
|
||
required:
|
||
- name
|
||
- type
|
||
properties:
|
||
name:
|
||
description: The name of the Shipping Profile
|
||
type: string
|
||
type:
|
||
description: The type of the Shipping Profile
|
||
type: string
|
||
enum:
|
||
- default
|
||
- gift_card
|
||
- custom
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostStockLocationsLocationReq:
|
||
type: object
|
||
description: The details to update of the stock location.
|
||
properties:
|
||
name:
|
||
description: the name of the stock location
|
||
type: string
|
||
address_id:
|
||
description: the stock location address ID
|
||
type: string
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
address:
|
||
description: The data of an associated address to create or update.
|
||
$ref: '#/components/schemas/StockLocationAddressInput'
|
||
AdminPostStockLocationsReq:
|
||
type: object
|
||
description: The details of the stock location to create.
|
||
required:
|
||
- name
|
||
properties:
|
||
name:
|
||
description: the name of the stock location
|
||
type: string
|
||
address_id:
|
||
description: the ID of an existing stock location address to associate with the stock location. Only required if `address` is not provided.
|
||
type: string
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
address:
|
||
description: A new stock location address to create and associate with the stock location. Only required if `address_id` is not provided.
|
||
$ref: '#/components/schemas/StockLocationAddressInput'
|
||
AdminPostStockLocationsReqAddress:
|
||
type: object
|
||
required:
|
||
- address_1
|
||
- country_code
|
||
properties:
|
||
address_1:
|
||
type: string
|
||
description: Stock location address
|
||
example: 35, Jhon Doe Ave
|
||
address_2:
|
||
type: string
|
||
description: Stock location address' complement
|
||
example: apartment 4432
|
||
company:
|
||
type: string
|
||
description: Stock location address' company
|
||
city:
|
||
type: string
|
||
description: Stock location address' city
|
||
example: Mexico city
|
||
country_code:
|
||
description: The two character ISO code for the country.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
phone:
|
||
type: string
|
||
description: Stock location address' phone number
|
||
example: +1 555 61646
|
||
postal_code:
|
||
type: string
|
||
description: Stock location address' postal code
|
||
example: HD3-1G8
|
||
province:
|
||
type: string
|
||
description: Stock location address' province
|
||
example: Sinaloa
|
||
AdminPostStoreReq:
|
||
type: object
|
||
description: The details to update of the store.
|
||
properties:
|
||
name:
|
||
description: The name of the Store
|
||
type: string
|
||
swap_link_template:
|
||
description: A template for Swap links - use `{{cart_id}}` to insert the Swap Cart ID
|
||
type: string
|
||
example: http://example.com/swaps/{{cart_id}}
|
||
payment_link_template:
|
||
description: A template for payment links - use `{{cart_id}}` to insert the Cart ID
|
||
example: http://example.com/payments/{{cart_id}}
|
||
type: string
|
||
invite_link_template:
|
||
description: A template for invite links - use `{{invite_token}}` to insert the invite token
|
||
example: http://example.com/invite?token={{invite_token}}
|
||
type: string
|
||
default_currency_code:
|
||
description: The default currency code of the Store.
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
currencies:
|
||
description: Array of available currencies in the store. Each currency is in 3 character ISO code format.
|
||
type: array
|
||
items:
|
||
type: string
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminPostTaxRatesReq:
|
||
type: object
|
||
description: The details of the tax rate to create.
|
||
required:
|
||
- code
|
||
- name
|
||
- region_id
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: The code of the tax rate.
|
||
name:
|
||
type: string
|
||
description: The name of the tax rate.
|
||
region_id:
|
||
type: string
|
||
description: The ID of the Region that the tax rate belongs to.
|
||
rate:
|
||
type: number
|
||
description: The numeric rate to charge.
|
||
products:
|
||
type: array
|
||
description: The IDs of the products associated with this tax rate.
|
||
items:
|
||
type: string
|
||
shipping_options:
|
||
type: array
|
||
description: The IDs of the shipping options associated with this tax rate
|
||
items:
|
||
type: string
|
||
product_types:
|
||
type: array
|
||
description: The IDs of the types of products associated with this tax rate
|
||
items:
|
||
type: string
|
||
AdminPostTaxRatesTaxRateProductTypesReq:
|
||
type: object
|
||
description: The product types to add to the tax rate.
|
||
required:
|
||
- product_types
|
||
properties:
|
||
product_types:
|
||
type: array
|
||
description: The IDs of the types of products to associate with this tax rate
|
||
items:
|
||
type: string
|
||
AdminPostTaxRatesTaxRateProductsReq:
|
||
type: object
|
||
description: The details of the products to associat with the tax rate.
|
||
required:
|
||
- products
|
||
properties:
|
||
products:
|
||
type: array
|
||
description: The IDs of the products to associate with this tax rate
|
||
items:
|
||
type: string
|
||
AdminPostTaxRatesTaxRateReq:
|
||
type: object
|
||
description: The details to update of the tax rate.
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: The code of the tax rate.
|
||
name:
|
||
type: string
|
||
description: The name of the tax rate.
|
||
region_id:
|
||
type: string
|
||
description: The ID of the Region that the tax rate belongs to.
|
||
rate:
|
||
type: number
|
||
description: The numeric rate to charge.
|
||
products:
|
||
type: array
|
||
description: The IDs of the products associated with this tax rate
|
||
items:
|
||
type: string
|
||
shipping_options:
|
||
type: array
|
||
description: The IDs of the shipping options associated with this tax rate
|
||
items:
|
||
type: string
|
||
product_types:
|
||
type: array
|
||
description: The IDs of the types of product types associated with this tax rate
|
||
items:
|
||
type: string
|
||
AdminPostTaxRatesTaxRateShippingOptionsReq:
|
||
type: object
|
||
description: The details of the shipping options to associate with the tax rate.
|
||
required:
|
||
- shipping_options
|
||
properties:
|
||
shipping_options:
|
||
type: array
|
||
description: The IDs of the shipping options to associate with this tax rate
|
||
items:
|
||
type: string
|
||
AdminPostUploadsDownloadUrlReq:
|
||
type: object
|
||
description: The details of the file to retrieve its download URL.
|
||
required:
|
||
- file_key
|
||
properties:
|
||
file_key:
|
||
description: key of the file to obtain the download link for. This is obtained when you first uploaded the file, or by the file service if you used it directly.
|
||
type: string
|
||
AdminPriceListDeleteBatchRes:
|
||
type: object
|
||
description: The details of deleting a price list.
|
||
required:
|
||
- ids
|
||
- object
|
||
- deleted
|
||
properties:
|
||
ids:
|
||
type: array
|
||
description: The IDs of the deleted prices.
|
||
items:
|
||
type: string
|
||
description: The ID of a deleted price.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted. A price is also named `money-amount`.
|
||
default: money-amount
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminPriceListDeleteProductPricesRes:
|
||
type: object
|
||
required:
|
||
- ids
|
||
- object
|
||
- deleted
|
||
properties:
|
||
ids:
|
||
type: array
|
||
description: The IDs of the deleted prices.
|
||
items:
|
||
type: string
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted. A price is also named `money-amount`.
|
||
default: money-amount
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminPriceListDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Price List.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: price-list
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminPriceListDeleteVariantPricesRes:
|
||
type: object
|
||
required:
|
||
- ids
|
||
- object
|
||
- deleted
|
||
properties:
|
||
ids:
|
||
type: array
|
||
description: The IDs of the deleted prices.
|
||
items:
|
||
type: string
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted. A price is also named `money-amount`.
|
||
default: money-amount
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminPriceListRes:
|
||
type: object
|
||
description: The price list's details.
|
||
x-expanded-relations:
|
||
field: price_list
|
||
relations:
|
||
- customer_groups
|
||
- prices
|
||
required:
|
||
- price_list
|
||
properties:
|
||
price_list:
|
||
description: Price List details.
|
||
$ref: '#/components/schemas/PriceList'
|
||
AdminPriceListsListRes:
|
||
type: object
|
||
description: The list of price lists with pagination fields.
|
||
required:
|
||
- price_lists
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
price_lists:
|
||
type: array
|
||
description: An array of price lists details.
|
||
items:
|
||
$ref: '#/components/schemas/PriceList'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of price lists skipped when retrieving the price lists.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminPriceListsProductsListRes:
|
||
type: object
|
||
description: The list of products with pagination fields.
|
||
x-expanded-relations:
|
||
field: products
|
||
relations:
|
||
- categories
|
||
- collection
|
||
- images
|
||
- options
|
||
- tags
|
||
- type
|
||
- variants
|
||
- variants.options
|
||
required:
|
||
- products
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
products:
|
||
type: array
|
||
description: An array of products details.
|
||
items:
|
||
$ref: '#/components/schemas/Product'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of price lists skipped when retrieving the price lists.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminProductCategoriesCategoryDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted product category
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: product-category
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminProductCategoriesCategoryRes:
|
||
type: object
|
||
description: The product category's details.
|
||
x-expanded-relations:
|
||
field: product_category
|
||
relations:
|
||
- category_children
|
||
- parent_category
|
||
required:
|
||
- product_category
|
||
properties:
|
||
product_category:
|
||
description: Product category details.
|
||
$ref: '#/components/schemas/ProductCategory'
|
||
AdminProductCategoriesListRes:
|
||
type: object
|
||
description: The list of product categories with pagination fields.
|
||
x-expanded-relations:
|
||
field: product_categories
|
||
relations:
|
||
- category_children
|
||
- parent_category
|
||
required:
|
||
- product_categories
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
product_categories:
|
||
type: array
|
||
description: An array of product category details.
|
||
items:
|
||
$ref: '#/components/schemas/ProductCategory'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of product categories skipped when retrieving the product categories.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminProductTagsListRes:
|
||
type: object
|
||
description: The list of product tags with pagination fields.
|
||
required:
|
||
- product_tags
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
product_tags:
|
||
type: array
|
||
description: An array of product tag details.
|
||
items:
|
||
$ref: '#/components/schemas/ProductTag'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of product tags skipped when retrieving the product tags.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminProductTypesListRes:
|
||
type: object
|
||
description: The list of product types with pagination fields.
|
||
required:
|
||
- product_types
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
product_types:
|
||
type: array
|
||
description: An array of product types details.
|
||
items:
|
||
$ref: '#/components/schemas/ProductType'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of product types skipped when retrieving the product types.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminProductsDeleteOptionRes:
|
||
type: object
|
||
description: The details of deleting a product's option.
|
||
x-expanded-relations:
|
||
field: product
|
||
relations:
|
||
- collection
|
||
- images
|
||
- options
|
||
- tags
|
||
- type
|
||
- variants
|
||
- variants.options
|
||
- variants.prices
|
||
required:
|
||
- option_id
|
||
- object
|
||
- deleted
|
||
- product
|
||
properties:
|
||
option_id:
|
||
type: string
|
||
description: The ID of the deleted Product Option
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: option
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
product:
|
||
description: Product details.
|
||
$ref: '#/components/schemas/PricedProduct'
|
||
AdminProductsDeleteRes:
|
||
type: object
|
||
description: The details of deleting a product.
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Product.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: product
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminProductsDeleteVariantRes:
|
||
type: object
|
||
description: The details of deleting a product's variant.
|
||
x-expanded-relations:
|
||
field: product
|
||
relations:
|
||
- collection
|
||
- images
|
||
- options
|
||
- tags
|
||
- type
|
||
- variants
|
||
- variants.options
|
||
- variants.prices
|
||
required:
|
||
- variant_id
|
||
- object
|
||
- deleted
|
||
- product
|
||
properties:
|
||
variant_id:
|
||
type: string
|
||
description: The ID of the deleted Product Variant.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: product-variant
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
product:
|
||
description: Product details.
|
||
$ref: '#/components/schemas/PricedProduct'
|
||
AdminProductsListRes:
|
||
type: object
|
||
description: The list of products with pagination fields.
|
||
x-expanded-relations:
|
||
field: products
|
||
relations:
|
||
- collection
|
||
- images
|
||
- options
|
||
- tags
|
||
- type
|
||
- variants
|
||
- variants.options
|
||
- variants.prices
|
||
totals:
|
||
- variants.purchasable
|
||
required:
|
||
- products
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
products:
|
||
type: array
|
||
description: An array of products details.
|
||
items:
|
||
$ref: '#/components/schemas/PricedProduct'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of products skipped when retrieving the products.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminProductsListTagsRes:
|
||
type: object
|
||
description: The usage details of product tags.
|
||
required:
|
||
- tags
|
||
properties:
|
||
tags:
|
||
description: An array of product tags details.
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- id
|
||
- usage_count
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The ID of the tag.
|
||
type: string
|
||
usage_count:
|
||
description: The number of products that use this tag.
|
||
type: string
|
||
value:
|
||
description: The value of the tag.
|
||
type: string
|
||
AdminProductsListTypesRes:
|
||
type: object
|
||
required:
|
||
- types
|
||
properties:
|
||
types:
|
||
type: array
|
||
description: An array of product types details.
|
||
items:
|
||
$ref: '#/components/schemas/ProductType'
|
||
AdminProductsListVariantsRes:
|
||
type: object
|
||
required:
|
||
- variants
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
variants:
|
||
type: array
|
||
description: An array of product variants details.
|
||
items:
|
||
$ref: '#/components/schemas/ProductVariant'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of product variants skipped when retrieving the product variants.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminProductsRes:
|
||
type: object
|
||
description: The product's details.
|
||
x-expanded-relations:
|
||
field: product
|
||
relations:
|
||
- collection
|
||
- images
|
||
- options
|
||
- tags
|
||
- type
|
||
- variants
|
||
- variants.options
|
||
- variants.prices
|
||
required:
|
||
- product
|
||
properties:
|
||
product:
|
||
description: Product details.
|
||
$ref: '#/components/schemas/PricedProduct'
|
||
AdminPublishableApiKeyDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted publishable API key.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: publishable_api_key
|
||
deleted:
|
||
type: boolean
|
||
description: Whether the publishable API key was deleted.
|
||
default: true
|
||
AdminPublishableApiKeysListRes:
|
||
type: object
|
||
description: The list of publishable API keys with pagination fields.
|
||
required:
|
||
- publishable_api_keys
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
publishable_api_keys:
|
||
type: array
|
||
description: An array of publishable API keys details.
|
||
items:
|
||
$ref: '#/components/schemas/PublishableApiKey'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of publishable API keys skipped when retrieving the publishable API keys.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminPublishableApiKeysListSalesChannelsRes:
|
||
type: object
|
||
description: The list of sales channel.
|
||
required:
|
||
- sales_channels
|
||
properties:
|
||
sales_channels:
|
||
description: An array of sales channels details.
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
AdminPublishableApiKeysRes:
|
||
type: object
|
||
description: The publishable API key's details.
|
||
required:
|
||
- publishable_api_key
|
||
properties:
|
||
publishable_api_key:
|
||
description: Publishable API key details.
|
||
$ref: '#/components/schemas/PublishableApiKey'
|
||
AdminRefundRes:
|
||
type: object
|
||
description: The refund's details.
|
||
required:
|
||
- refund
|
||
properties:
|
||
refund:
|
||
description: Refund details.
|
||
$ref: '#/components/schemas/Refund'
|
||
AdminRegionsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Region.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: region
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminRegionsListRes:
|
||
type: object
|
||
description: The list of regions with pagination fields.
|
||
x-expanded-relations:
|
||
field: regions
|
||
relations:
|
||
- countries
|
||
- fulfillment_providers
|
||
- payment_providers
|
||
eager:
|
||
- fulfillment_providers
|
||
- payment_providers
|
||
required:
|
||
- regions
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
regions:
|
||
type: array
|
||
description: An array of regions details.
|
||
items:
|
||
$ref: '#/components/schemas/Region'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of regions skipped when retrieving the regions.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminRegionsRes:
|
||
type: object
|
||
description: The region's details.
|
||
x-expanded-relations:
|
||
field: region
|
||
relations:
|
||
- countries
|
||
- fulfillment_providers
|
||
- payment_providers
|
||
eager:
|
||
- fulfillment_providers
|
||
- payment_providers
|
||
required:
|
||
- region
|
||
properties:
|
||
region:
|
||
description: Region details.
|
||
$ref: '#/components/schemas/Region'
|
||
AdminReservationsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Reservation.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: reservation
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the Reservation was deleted.
|
||
default: true
|
||
AdminReservationsListRes:
|
||
type: object
|
||
description: The list of reservations with pagination fields.
|
||
required:
|
||
- reservations
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
reservations:
|
||
type: array
|
||
description: An array of reservations details.
|
||
items:
|
||
$ref: '#/components/schemas/ExtendedReservationItem'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of reservations skipped when retrieving the reservations.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminReservationsRes:
|
||
type: object
|
||
description: The reservation's details.
|
||
required:
|
||
- reservation
|
||
properties:
|
||
reservation:
|
||
description: Reservation details.
|
||
$ref: '#/components/schemas/ReservationItemDTO'
|
||
AdminResetPasswordRequest:
|
||
type: object
|
||
description: The details of the password reset request.
|
||
required:
|
||
- token
|
||
- password
|
||
properties:
|
||
email:
|
||
description: The User's email.
|
||
type: string
|
||
format: email
|
||
token:
|
||
description: The password-reset token generated when the password reset was requested.
|
||
type: string
|
||
password:
|
||
description: The User's new password.
|
||
type: string
|
||
format: password
|
||
AdminResetPasswordTokenRequest:
|
||
type: object
|
||
description: The details of the password reset token request.
|
||
required:
|
||
- email
|
||
properties:
|
||
email:
|
||
description: The User's email.
|
||
type: string
|
||
format: email
|
||
AdminReturnReasonsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted return reason
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: return_reason
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminReturnReasonsListRes:
|
||
type: object
|
||
description: The list of return reasons.
|
||
x-expanded-relations:
|
||
field: return_reasons
|
||
relations:
|
||
- parent_return_reason
|
||
- return_reason_children
|
||
required:
|
||
- return_reasons
|
||
properties:
|
||
return_reasons:
|
||
type: array
|
||
description: The list of return reasons.
|
||
items:
|
||
$ref: '#/components/schemas/ReturnReason'
|
||
AdminReturnReasonsRes:
|
||
type: object
|
||
description: The return reason's details.
|
||
x-expanded-relations:
|
||
field: return_reason
|
||
relations:
|
||
- parent_return_reason
|
||
- return_reason_children
|
||
required:
|
||
- return_reason
|
||
properties:
|
||
return_reason:
|
||
description: The return reason's details.
|
||
$ref: '#/components/schemas/ReturnReason'
|
||
AdminReturnsCancelRes:
|
||
type: object
|
||
description: The associated order's details.
|
||
x-expanded-relations:
|
||
field: order
|
||
relations:
|
||
- billing_address
|
||
- claims
|
||
- claims.additional_items
|
||
- claims.additional_items.variant
|
||
- claims.claim_items
|
||
- claims.claim_items.images
|
||
- claims.claim_items.item
|
||
- claims.fulfillments
|
||
- claims.fulfillments.tracking_links
|
||
- claims.return_order
|
||
- claims.return_order.shipping_method
|
||
- claims.return_order.shipping_method.tax_lines
|
||
- claims.shipping_address
|
||
- claims.shipping_methods
|
||
- customer
|
||
- discounts
|
||
- discounts.rule
|
||
- fulfillments
|
||
- fulfillments.items
|
||
- fulfillments.tracking_links
|
||
- gift_card_transactions
|
||
- gift_cards
|
||
- items
|
||
- payments
|
||
- refunds
|
||
- region
|
||
- returns
|
||
- returns.items
|
||
- returns.items.reason
|
||
- returns.shipping_method
|
||
- returns.shipping_method.tax_lines
|
||
- shipping_address
|
||
- shipping_methods
|
||
- swaps
|
||
- swaps.additional_items
|
||
- swaps.additional_items.variant
|
||
- swaps.fulfillments
|
||
- swaps.fulfillments.tracking_links
|
||
- swaps.payment
|
||
- swaps.return_order
|
||
- swaps.return_order.shipping_method
|
||
- swaps.return_order.shipping_method.tax_lines
|
||
- swaps.shipping_address
|
||
- swaps.shipping_methods
|
||
- swaps.shipping_methods.tax_lines
|
||
required:
|
||
- order
|
||
properties:
|
||
order:
|
||
description: Order details.
|
||
$ref: '#/components/schemas/Order'
|
||
AdminReturnsListRes:
|
||
type: object
|
||
description: The list of returns with pagination fields.
|
||
x-expanded-relation:
|
||
field: returns
|
||
relations:
|
||
- order
|
||
- swap
|
||
required:
|
||
- returns
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
returns:
|
||
type: array
|
||
description: An array of returns details.
|
||
items:
|
||
$ref: '#/components/schemas/Return'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of returns skipped when retrieving the returns.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminReturnsRes:
|
||
type: object
|
||
description: The return's details.
|
||
x-expanded-relation:
|
||
field: return
|
||
relations:
|
||
- swap
|
||
required:
|
||
- return
|
||
properties:
|
||
return:
|
||
description: Return details.
|
||
$ref: '#/components/schemas/Return'
|
||
AdminSalesChannelsDeleteLocationRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the removed stock location from a sales channel
|
||
object:
|
||
type: string
|
||
description: The type of the object that was removed.
|
||
default: stock-location
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminSalesChannelsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted sales channel
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: sales-channel
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminSalesChannelsListRes:
|
||
type: object
|
||
description: The list of sales channels with pagination fields.
|
||
required:
|
||
- sales_channels
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
sales_channels:
|
||
type: array
|
||
description: An array of sales channels details.
|
||
items:
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of items skipped before the returned results
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminSalesChannelsRes:
|
||
type: object
|
||
description: The sales channel's details.
|
||
required:
|
||
- sales_channel
|
||
properties:
|
||
sales_channel:
|
||
description: Sales Channel's details.
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
AdminShippingOptionsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Shipping Option.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: shipping-option
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminShippingOptionsListRes:
|
||
type: object
|
||
description: The list of shipping options with pagination fields.
|
||
x-expanded-relations:
|
||
field: shipping_options
|
||
relations:
|
||
- profile
|
||
- region
|
||
- requirements
|
||
eager:
|
||
- region.fulfillment_providers
|
||
- region.payment_providers
|
||
required:
|
||
- shipping_options
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
shipping_options:
|
||
type: array
|
||
description: An array of shipping options details.
|
||
items:
|
||
$ref: '#/components/schemas/ShippingOption'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of shipping options skipped when retrieving the shipping options.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminShippingOptionsRes:
|
||
type: object
|
||
description: The shipping option's details.
|
||
x-expanded-relations:
|
||
field: shipping_option
|
||
relations:
|
||
- profile
|
||
- region
|
||
- requirements
|
||
eager:
|
||
- region.fulfillment_providers
|
||
- region.payment_providers
|
||
required:
|
||
- shipping_option
|
||
properties:
|
||
shipping_option:
|
||
description: Shipping option details.
|
||
$ref: '#/components/schemas/ShippingOption'
|
||
AdminShippingProfilesListRes:
|
||
type: object
|
||
description: The list of shipping profiles.
|
||
required:
|
||
- shipping_profiles
|
||
properties:
|
||
shipping_profiles:
|
||
type: array
|
||
description: An array of shipping profiles details.
|
||
items:
|
||
$ref: '#/components/schemas/ShippingProfile'
|
||
AdminShippingProfilesRes:
|
||
type: object
|
||
description: The shipping profile's details.
|
||
x-expanded-relations:
|
||
field: shipping_profile
|
||
relations:
|
||
- products
|
||
- shipping_options
|
||
required:
|
||
- shipping_profile
|
||
properties:
|
||
shipping_profile:
|
||
description: Shipping profile details.
|
||
$ref: '#/components/schemas/ShippingProfile'
|
||
AdminStockLocationsDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Stock Location.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: stock_location
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminStockLocationsListRes:
|
||
type: object
|
||
description: The list of stock locations with pagination fields.
|
||
required:
|
||
- stock_locations
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
stock_locations:
|
||
type: array
|
||
description: The list of stock locations.
|
||
items:
|
||
$ref: '#/components/schemas/StockLocationExpandedDTO'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of stock locations skipped when retrieving the stock locations.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminStockLocationsRes:
|
||
type: object
|
||
description: The stock location's details.
|
||
required:
|
||
- stock_location
|
||
properties:
|
||
stock_location:
|
||
description: Stock location details.
|
||
$ref: '#/components/schemas/StockLocationExpandedDTO'
|
||
AdminStoresRes:
|
||
type: object
|
||
description: The store's details.
|
||
required:
|
||
- store
|
||
properties:
|
||
store:
|
||
description: Store details.
|
||
$ref: '#/components/schemas/Store'
|
||
AdminSwapsListRes:
|
||
type: object
|
||
description: The list of swaps with pagination fields.
|
||
required:
|
||
- swaps
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
swaps:
|
||
type: array
|
||
description: An array of swaps details.
|
||
items:
|
||
$ref: '#/components/schemas/Swap'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of swaps skipped when retrieving the swaps.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminSwapsRes:
|
||
type: object
|
||
description: The swap's details.
|
||
x-expanded-relations:
|
||
field: swap
|
||
relations:
|
||
- additional_items
|
||
- additional_items.adjustments
|
||
- cart
|
||
- cart.items
|
||
- cart.items.adjustments
|
||
- cart.items.variant
|
||
- fulfillments
|
||
- order
|
||
- payment
|
||
- return_order
|
||
- shipping_address
|
||
- shipping_methods
|
||
eager:
|
||
- fulfillments.items
|
||
- shipping_methods.shipping_option
|
||
required:
|
||
- swap
|
||
properties:
|
||
swap:
|
||
description: Swap details.
|
||
$ref: '#/components/schemas/Swap'
|
||
AdminTaxProvidersList:
|
||
type: object
|
||
description: The list of tax providers in a store.
|
||
required:
|
||
- tax_providers
|
||
properties:
|
||
tax_providers:
|
||
type: array
|
||
description: An array of tax providers details.
|
||
items:
|
||
$ref: '#/components/schemas/TaxProvider'
|
||
AdminTaxRatesDeleteRes:
|
||
type: object
|
||
required:
|
||
- id
|
||
- object
|
||
- deleted
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The ID of the deleted Shipping Option.
|
||
object:
|
||
type: string
|
||
description: The type of the object that was deleted.
|
||
default: tax-rate
|
||
deleted:
|
||
type: boolean
|
||
description: Whether or not the items were deleted.
|
||
default: true
|
||
AdminTaxRatesListRes:
|
||
type: object
|
||
description: The list of tax rates with pagination fields.
|
||
required:
|
||
- tax_rates
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
tax_rates:
|
||
type: array
|
||
description: An array of tax rate details.
|
||
items:
|
||
$ref: '#/components/schemas/TaxRate'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of tax rates to skip when retrieving the tax rates.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminTaxRatesRes:
|
||
type: object
|
||
description: The tax rate's details.
|
||
required:
|
||
- tax_rate
|
||
properties:
|
||
tax_rate:
|
||
description: Tax rate details.
|
||
$ref: '#/components/schemas/TaxRate'
|
||
AdminUpdatePaymentCollectionsReq:
|
||
type: object
|
||
description: The details to update of the payment collection.
|
||
properties:
|
||
description:
|
||
description: A description to create or update the payment collection.
|
||
type: string
|
||
metadata:
|
||
description: A set of key-value pairs to hold additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminUpdateUserRequest:
|
||
type: object
|
||
properties:
|
||
first_name:
|
||
description: The first name of the User.
|
||
type: string
|
||
last_name:
|
||
description: The last name of the User.
|
||
type: string
|
||
role:
|
||
description: The role assigned to the user. These roles don't provide any different privileges.
|
||
type: string
|
||
enum:
|
||
- admin
|
||
- member
|
||
- developer
|
||
api_token:
|
||
description: The API token of the User.
|
||
type: string
|
||
metadata:
|
||
description: An optional set of key-value pairs with additional information.
|
||
type: object
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
AdminUploadsDownloadUrlRes:
|
||
type: object
|
||
description: The download URL details.
|
||
required:
|
||
- download_url
|
||
properties:
|
||
download_url:
|
||
description: The Download URL of the file
|
||
type: string
|
||
AdminUploadsRes:
|
||
type: object
|
||
description: The list of uploaded files.
|
||
required:
|
||
- uploads
|
||
properties:
|
||
uploads:
|
||
type: array
|
||
description: Uploaded files details.
|
||
items:
|
||
type: object
|
||
required:
|
||
- url
|
||
- key
|
||
properties:
|
||
url:
|
||
description: The URL of the uploaded file.
|
||
type: string
|
||
format: uri
|
||
key:
|
||
description: The key of the file that is identifiable by the file service. It can be used later to retrieve or manipulate the file.
|
||
type: string
|
||
AdminUserRes:
|
||
type: object
|
||
description: The user's details.
|
||
required:
|
||
- user
|
||
properties:
|
||
user:
|
||
description: User details.
|
||
$ref: '#/components/schemas/User'
|
||
AdminUsersListRes:
|
||
type: object
|
||
description: The list of users.
|
||
required:
|
||
- users
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
users:
|
||
type: array
|
||
description: An array of users details.
|
||
items:
|
||
$ref: '#/components/schemas/User'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of users skipped when retrieving the users.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminVariantsListRes:
|
||
type: object
|
||
description: The list of variants with pagination fields.
|
||
x-expanded-relations:
|
||
field: variants
|
||
relations:
|
||
- options
|
||
- prices
|
||
- product
|
||
totals:
|
||
- purchasable
|
||
required:
|
||
- variants
|
||
- count
|
||
- offset
|
||
- limit
|
||
properties:
|
||
variants:
|
||
type: array
|
||
description: An array of product variant details.
|
||
items:
|
||
$ref: '#/components/schemas/PricedVariant'
|
||
count:
|
||
type: integer
|
||
description: The total number of items available
|
||
offset:
|
||
type: integer
|
||
description: The number of product variants skipped when retrieving the product variants.
|
||
limit:
|
||
type: integer
|
||
description: The number of items per page
|
||
AdminVariantsRes:
|
||
type: object
|
||
description: The product variant's details.
|
||
x-expanded-relations:
|
||
field: variant
|
||
relations:
|
||
- options
|
||
- prices
|
||
- product
|
||
required:
|
||
- variant
|
||
properties:
|
||
variant:
|
||
description: Product variant's details.
|
||
$ref: '#/components/schemas/PricedVariant'
|
||
BatchJob:
|
||
title: Batch Job
|
||
description: A Batch Job indicates an asynchronus task stored in the Medusa backend. Its status determines whether it has been executed or not.
|
||
type: object
|
||
required:
|
||
- canceled_at
|
||
- completed_at
|
||
- confirmed_at
|
||
- context
|
||
- created_at
|
||
- created_by
|
||
- deleted_at
|
||
- dry_run
|
||
- failed_at
|
||
- id
|
||
- pre_processed_at
|
||
- processing_at
|
||
- result
|
||
- status
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The unique identifier for the batch job.
|
||
type: string
|
||
example: batch_01G8T782965PYFG0751G0Z38B4
|
||
type:
|
||
description: The type of batch job.
|
||
type: string
|
||
enum:
|
||
- product-import
|
||
- product-export
|
||
status:
|
||
description: The status of the batch job.
|
||
type: string
|
||
enum:
|
||
- created
|
||
- pre_processed
|
||
- confirmed
|
||
- processing
|
||
- completed
|
||
- canceled
|
||
- failed
|
||
default: created
|
||
created_by:
|
||
description: The unique identifier of the user that created the batch job.
|
||
nullable: true
|
||
type: string
|
||
example: usr_01G1G5V26F5TB3GPAPNJ8X1S3V
|
||
created_by_user:
|
||
description: The details of the user that created the batch job.
|
||
x-expandable: created_by_user
|
||
nullable: true
|
||
$ref: '#/components/schemas/User'
|
||
context:
|
||
description: The context of the batch job, the type of the batch job determines what the context should contain.
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
shape:
|
||
prices:
|
||
- region: null
|
||
currency_code: eur
|
||
dynamicImageColumnCount: 4
|
||
dynamicOptionColumnCount: 2
|
||
list_config:
|
||
skip: 0
|
||
take: 50
|
||
order:
|
||
created_at: DESC
|
||
relations:
|
||
- variants
|
||
- variant.prices
|
||
- images
|
||
dry_run:
|
||
description: Specify if the job must apply the modifications or not.
|
||
type: boolean
|
||
default: false
|
||
result:
|
||
description: The result of the batch job.
|
||
nullable: true
|
||
allOf:
|
||
- type: object
|
||
example: {}
|
||
- type: object
|
||
properties:
|
||
count:
|
||
type: number
|
||
advancement_count:
|
||
type: number
|
||
progress:
|
||
type: number
|
||
errors:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
code:
|
||
oneOf:
|
||
- type: string
|
||
- type: number
|
||
err:
|
||
type: array
|
||
stat_descriptors:
|
||
type: object
|
||
properties:
|
||
key:
|
||
type: string
|
||
name:
|
||
type: string
|
||
message:
|
||
type: string
|
||
file_key:
|
||
type: string
|
||
file_size:
|
||
type: number
|
||
example:
|
||
errors:
|
||
- err: []
|
||
code: unknown
|
||
message: Method not implemented.
|
||
stat_descriptors:
|
||
- key: product-export-count
|
||
name: Product count to export
|
||
message: There will be 8 products exported by this action
|
||
pre_processed_at:
|
||
description: The date from which the job has been pre-processed.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
processing_at:
|
||
description: The date the job is processing at.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
confirmed_at:
|
||
description: The date when the confirmation has been done.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
completed_at:
|
||
description: The date of the completion.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
canceled_at:
|
||
description: The date of the concellation.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
failed_at:
|
||
description: The date when the job failed.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was last updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
Cart:
|
||
title: Cart
|
||
description: A cart represents a virtual shopping bag. It can be used to complete an order, a swap, or a claim.
|
||
type: object
|
||
required:
|
||
- billing_address_id
|
||
- completed_at
|
||
- context
|
||
- created_at
|
||
- customer_id
|
||
- deleted_at
|
||
- email
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- payment_authorized_at
|
||
- payment_id
|
||
- payment_session
|
||
- region_id
|
||
- shipping_address_id
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The cart's ID
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
email:
|
||
description: The email associated with the cart
|
||
nullable: true
|
||
type: string
|
||
format: email
|
||
billing_address_id:
|
||
description: The billing address's ID
|
||
nullable: true
|
||
type: string
|
||
example: addr_01G8ZH853YPY9B94857DY91YGW
|
||
billing_address:
|
||
description: The details of the billing address associated with the cart.
|
||
x-expandable: billing_address
|
||
nullable: true
|
||
$ref: '#/components/schemas/Address'
|
||
shipping_address_id:
|
||
description: The shipping address's ID
|
||
nullable: true
|
||
type: string
|
||
example: addr_01G8ZH853YPY9B94857DY91YGW
|
||
shipping_address:
|
||
description: The details of the shipping address associated with the cart.
|
||
x-expandable: shipping_address
|
||
nullable: true
|
||
$ref: '#/components/schemas/Address'
|
||
items:
|
||
description: The line items added to the cart.
|
||
type: array
|
||
x-expandable: items
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
region_id:
|
||
description: The region's ID
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region associated with the cart.
|
||
x-expandable: region
|
||
nullable: true
|
||
$ref: '#/components/schemas/Region'
|
||
discounts:
|
||
description: An array of details of all discounts applied to the cart.
|
||
type: array
|
||
x-expandable: discounts
|
||
items:
|
||
$ref: '#/components/schemas/Discount'
|
||
gift_cards:
|
||
description: An array of details of all gift cards applied to the cart.
|
||
type: array
|
||
x-expandable: gift_cards
|
||
items:
|
||
$ref: '#/components/schemas/GiftCard'
|
||
customer_id:
|
||
description: The customer's ID
|
||
nullable: true
|
||
type: string
|
||
example: cus_01G2SG30J8C85S4A5CHM2S1NS2
|
||
customer:
|
||
description: The details of the customer the cart belongs to.
|
||
x-expandable: customer
|
||
nullable: true
|
||
type: object
|
||
payment_session:
|
||
description: The details of the selected payment session in the cart.
|
||
x-expandable: payment_session
|
||
nullable: true
|
||
type: object
|
||
payment_sessions:
|
||
description: The details of all payment sessions created on the cart.
|
||
type: array
|
||
x-expandable: payment_sessions
|
||
items:
|
||
type: object
|
||
payment_id:
|
||
description: The payment's ID if available
|
||
nullable: true
|
||
type: string
|
||
example: pay_01G8ZCC5W42ZNY842124G7P5R9
|
||
payment:
|
||
description: The details of the payment associated with the cart.
|
||
nullable: true
|
||
x-expandable: payment
|
||
type: object
|
||
shipping_methods:
|
||
description: The details of the shipping methods added to the cart.
|
||
type: array
|
||
x-expandable: shipping_methods
|
||
items:
|
||
$ref: '#/components/schemas/ShippingMethod'
|
||
type:
|
||
description: The cart's type.
|
||
type: string
|
||
enum:
|
||
- default
|
||
- swap
|
||
- draft_order
|
||
- payment_link
|
||
- claim
|
||
default: default
|
||
completed_at:
|
||
description: The date with timezone at which the cart was completed.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
payment_authorized_at:
|
||
description: The date with timezone at which the payment was authorized.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of a cart in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
context:
|
||
description: The context of the cart which can include info like IP or user agent.
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
ip: '::1'
|
||
user_agent: PostmanRuntime/7.29.2
|
||
sales_channel_id:
|
||
description: The sales channel ID the cart is associated with.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
sales_channel:
|
||
description: The details of the sales channel associated with the cart.
|
||
nullable: true
|
||
x-expandable: sales_channel
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
shipping_total:
|
||
description: The total of shipping
|
||
type: integer
|
||
example: 1000
|
||
discount_total:
|
||
description: The total of discount rounded
|
||
type: integer
|
||
example: 800
|
||
raw_discount_total:
|
||
description: The total of discount
|
||
type: integer
|
||
example: 800
|
||
item_tax_total:
|
||
description: The total of items with taxes
|
||
type: integer
|
||
example: 8000
|
||
shipping_tax_total:
|
||
description: The total of shipping with taxes
|
||
type: integer
|
||
example: 1000
|
||
tax_total:
|
||
description: The total of tax
|
||
type: integer
|
||
example: 0
|
||
refunded_total:
|
||
description: The total amount refunded if the order associated with this cart is returned.
|
||
type: integer
|
||
example: 0
|
||
total:
|
||
description: The total amount of the cart
|
||
type: integer
|
||
example: 8200
|
||
subtotal:
|
||
description: The subtotal of the cart
|
||
type: integer
|
||
example: 8000
|
||
refundable_amount:
|
||
description: The amount that can be refunded
|
||
type: integer
|
||
example: 8200
|
||
gift_card_total:
|
||
description: The total of gift cards
|
||
type: integer
|
||
example: 0
|
||
gift_card_tax_total:
|
||
description: The total of gift cards with taxes
|
||
type: integer
|
||
example: 0
|
||
sales_channels:
|
||
description: The associated sales channels.
|
||
type: array
|
||
nullable: true
|
||
x-expandable: sales_channels
|
||
items:
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
ClaimImage:
|
||
title: Claim Image
|
||
description: The details of an image attached to a claim.
|
||
type: object
|
||
required:
|
||
- claim_item_id
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- updated_at
|
||
- url
|
||
properties:
|
||
id:
|
||
description: The claim image's ID
|
||
type: string
|
||
example: cimg_01G8ZH853Y6TFXWPG5EYE81X63
|
||
claim_item_id:
|
||
description: The ID of the claim item associated with the image
|
||
type: string
|
||
claim_item:
|
||
description: The details of the claim item this image is associated with.
|
||
nullable: true
|
||
x-expandable: claim_item
|
||
type: object
|
||
url:
|
||
description: The URL of the image
|
||
type: string
|
||
format: uri
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ClaimItem:
|
||
title: Claim Item
|
||
description: A claim item is an item created as part of a claim. It references an item in the order that should be exchanged or refunded.
|
||
type: object
|
||
required:
|
||
- claim_order_id
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- item_id
|
||
- metadata
|
||
- note
|
||
- quantity
|
||
- reason
|
||
- updated_at
|
||
- variant_id
|
||
properties:
|
||
id:
|
||
description: The claim item's ID
|
||
type: string
|
||
example: citm_01G8ZH853Y6TFXWPG5EYE81X63
|
||
images:
|
||
description: The claim images that are attached to the claim item.
|
||
type: array
|
||
x-expandable: images
|
||
items:
|
||
$ref: '#/components/schemas/ClaimImage'
|
||
claim_order_id:
|
||
description: The ID of the claim this item is associated with.
|
||
type: string
|
||
claim_order:
|
||
description: The details of the claim this item belongs to.
|
||
x-expandable: claim_order
|
||
nullable: true
|
||
type: object
|
||
item_id:
|
||
description: The ID of the line item that the claim item refers to.
|
||
type: string
|
||
example: item_01G8ZM25TN49YV9EQBE2NC27KC
|
||
item:
|
||
description: The details of the line item in the original order that this claim item refers to.
|
||
x-expandable: item
|
||
nullable: true
|
||
$ref: '#/components/schemas/LineItem'
|
||
variant_id:
|
||
description: The ID of the product variant that is claimed.
|
||
type: string
|
||
example: variant_01G1G5V2MRX2V3PVSR2WXYPFB6
|
||
variant:
|
||
description: The details of the product variant to potentially replace the item in the original order.
|
||
x-expandable: variant
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductVariant'
|
||
reason:
|
||
description: The reason for the claim
|
||
type: string
|
||
enum:
|
||
- missing_item
|
||
- wrong_item
|
||
- production_failure
|
||
- other
|
||
note:
|
||
description: An optional note about the claim, for additional information
|
||
nullable: true
|
||
type: string
|
||
example: I don't like it.
|
||
quantity:
|
||
description: The quantity of the item that is being claimed; must be less than or equal to the amount purchased in the original order.
|
||
type: integer
|
||
example: 1
|
||
tags:
|
||
description: User defined tags for easy filtering and grouping.
|
||
type: array
|
||
x-expandable: tags
|
||
items:
|
||
$ref: '#/components/schemas/ClaimTag'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ClaimOrder:
|
||
title: Claim
|
||
description: A Claim represents a group of faulty or missing items. It consists of claim items that refer to items in the original order that should be replaced or refunded. It also includes details related to shipping and fulfillment.
|
||
type: object
|
||
required:
|
||
- canceled_at
|
||
- created_at
|
||
- deleted_at
|
||
- fulfillment_status
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- no_notification
|
||
- order_id
|
||
- payment_status
|
||
- refund_amount
|
||
- shipping_address_id
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The claim's ID
|
||
type: string
|
||
example: claim_01G8ZH853Y6TFXWPG5EYE81X63
|
||
type:
|
||
description: The claim's type
|
||
type: string
|
||
enum:
|
||
- refund
|
||
- replace
|
||
payment_status:
|
||
description: The status of the claim's payment
|
||
type: string
|
||
enum:
|
||
- na
|
||
- not_refunded
|
||
- refunded
|
||
default: na
|
||
fulfillment_status:
|
||
description: The claim's fulfillment status
|
||
type: string
|
||
enum:
|
||
- not_fulfilled
|
||
- partially_fulfilled
|
||
- fulfilled
|
||
- partially_shipped
|
||
- shipped
|
||
- partially_returned
|
||
- returned
|
||
- canceled
|
||
- requires_action
|
||
default: not_fulfilled
|
||
claim_items:
|
||
description: The details of the items that should be replaced or refunded.
|
||
type: array
|
||
x-expandable: claim_items
|
||
items:
|
||
$ref: '#/components/schemas/ClaimItem'
|
||
additional_items:
|
||
description: The details of the new items to be shipped when the claim's type is `replace`
|
||
type: array
|
||
x-expandable: additional_items
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
order_id:
|
||
description: The ID of the order that the claim comes from.
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that this claim was created for.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
return_order:
|
||
description: The details of the return associated with the claim if the claim's type is `replace`.
|
||
x-expandable: return_order
|
||
nullable: true
|
||
type: object
|
||
shipping_address_id:
|
||
description: The ID of the address that the new items should be shipped to
|
||
nullable: true
|
||
type: string
|
||
example: addr_01G8ZH853YPY9B94857DY91YGW
|
||
shipping_address:
|
||
description: The details of the address that new items should be shipped to.
|
||
x-expandable: shipping_address
|
||
nullable: true
|
||
$ref: '#/components/schemas/Address'
|
||
shipping_methods:
|
||
description: The details of the shipping methods that the claim order will be shipped with.
|
||
type: array
|
||
x-expandable: shipping_methods
|
||
items:
|
||
$ref: '#/components/schemas/ShippingMethod'
|
||
fulfillments:
|
||
description: The fulfillments of the new items to be shipped
|
||
type: array
|
||
x-expandable: fulfillments
|
||
items:
|
||
type: object
|
||
refund_amount:
|
||
description: The amount that will be refunded in conjunction with the claim
|
||
nullable: true
|
||
type: integer
|
||
example: 1000
|
||
canceled_at:
|
||
description: The date with timezone at which the claim was canceled.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
no_notification:
|
||
description: Flag for describing whether or not notifications related to this should be send.
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of the cart associated with the claim in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
ClaimTag:
|
||
title: Claim Tag
|
||
description: Claim Tags are user defined tags that can be assigned to claim items for easy filtering and grouping.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- updated_at
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The claim tag's ID
|
||
type: string
|
||
example: ctag_01G8ZCC5Y63B95V6B5SHBZ91S4
|
||
value:
|
||
description: The value that the claim tag holds
|
||
type: string
|
||
example: Damaged
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
Country:
|
||
title: Country
|
||
description: Country details
|
||
type: object
|
||
required:
|
||
- display_name
|
||
- id
|
||
- iso_2
|
||
- iso_3
|
||
- name
|
||
- num_code
|
||
- region_id
|
||
properties:
|
||
id:
|
||
description: The country's ID
|
||
type: string
|
||
example: 109
|
||
iso_2:
|
||
description: The 2 character ISO code of the country in lower case
|
||
type: string
|
||
example: it
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
iso_3:
|
||
description: The 2 character ISO code of the country in lower case
|
||
type: string
|
||
example: ita
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
num_code:
|
||
description: The numerical ISO code for the country.
|
||
type: string
|
||
example: 380
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_3166-1_numeric#Officially_assigned_code_elements
|
||
description: See a list of codes.
|
||
name:
|
||
description: The normalized country name in upper case.
|
||
type: string
|
||
example: ITALY
|
||
display_name:
|
||
description: The country name appropriate for display.
|
||
type: string
|
||
example: Italy
|
||
region_id:
|
||
description: The region ID this country is associated with.
|
||
nullable: true
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region the country is associated with.
|
||
x-expandable: region
|
||
nullable: true
|
||
type: object
|
||
CreateStockLocationInput:
|
||
title: Create Stock Location Input
|
||
description: Represents the Input to create a Stock Location
|
||
type: object
|
||
required:
|
||
- name
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: The stock location name
|
||
address_id:
|
||
type: string
|
||
description: The Stock location address ID
|
||
address:
|
||
description: Stock location address object
|
||
allOf:
|
||
- $ref: '#/components/schemas/StockLocationAddressInput'
|
||
- type: object
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
Currency:
|
||
title: Currency
|
||
description: Currency
|
||
type: object
|
||
required:
|
||
- code
|
||
- name
|
||
- symbol
|
||
- symbol_native
|
||
properties:
|
||
code:
|
||
description: The 3 character ISO code for the currency.
|
||
type: string
|
||
example: usd
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
symbol:
|
||
description: The symbol used to indicate the currency.
|
||
type: string
|
||
example: $
|
||
symbol_native:
|
||
description: The native symbol used to indicate the currency.
|
||
type: string
|
||
example: $
|
||
name:
|
||
description: The written name of the currency
|
||
type: string
|
||
example: US Dollar
|
||
includes_tax:
|
||
description: Whether the currency prices include tax
|
||
type: boolean
|
||
x-featureFlag: tax_inclusive_pricing
|
||
default: false
|
||
CustomShippingOption:
|
||
title: Custom Shipping Option
|
||
description: Custom Shipping Options are overridden Shipping Options. Admins can attach a Custom Shipping Option to a cart in order to set a custom price for a particular Shipping Option.
|
||
type: object
|
||
required:
|
||
- cart_id
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- price
|
||
- shipping_option_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The custom shipping option's ID
|
||
type: string
|
||
example: cso_01G8X99XNB77DMFBJFWX6DN9V9
|
||
price:
|
||
description: The custom price set that will override the shipping option's original price
|
||
type: integer
|
||
example: 1000
|
||
shipping_option_id:
|
||
description: The ID of the Shipping Option that the custom shipping option overrides
|
||
type: string
|
||
example: so_01G1G5V27GYX4QXNARRQCW1N8T
|
||
shipping_option:
|
||
description: The details of the overridden shipping options.
|
||
x-expandable: shipping_option
|
||
nullable: true
|
||
$ref: '#/components/schemas/ShippingOption'
|
||
cart_id:
|
||
description: The ID of the Cart that the custom shipping option is attached to
|
||
nullable: true
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
cart:
|
||
description: The details of the cart this shipping option belongs to.
|
||
x-expandable: cart
|
||
nullable: true
|
||
$ref: '#/components/schemas/Cart'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
Customer:
|
||
title: Customer
|
||
description: A customer can make purchases in your store and manage their profile.
|
||
type: object
|
||
required:
|
||
- billing_address_id
|
||
- created_at
|
||
- deleted_at
|
||
- email
|
||
- first_name
|
||
- has_account
|
||
- id
|
||
- last_name
|
||
- metadata
|
||
- phone
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The customer's ID
|
||
type: string
|
||
example: cus_01G2SG30J8C85S4A5CHM2S1NS2
|
||
email:
|
||
description: The customer's email
|
||
type: string
|
||
format: email
|
||
first_name:
|
||
description: The customer's first name
|
||
nullable: true
|
||
type: string
|
||
example: Arno
|
||
last_name:
|
||
description: The customer's last name
|
||
nullable: true
|
||
type: string
|
||
example: Willms
|
||
billing_address_id:
|
||
description: The customer's billing address ID
|
||
nullable: true
|
||
type: string
|
||
example: addr_01G8ZH853YPY9B94857DY91YGW
|
||
billing_address:
|
||
description: The details of the billing address associated with the customer.
|
||
x-expandable: billing_address
|
||
nullable: true
|
||
$ref: '#/components/schemas/Address'
|
||
shipping_addresses:
|
||
description: The details of the shipping addresses associated with the customer.
|
||
type: array
|
||
x-expandable: shipping_addresses
|
||
items:
|
||
$ref: '#/components/schemas/Address'
|
||
phone:
|
||
description: The customer's phone number
|
||
nullable: true
|
||
type: string
|
||
example: 16128234334802
|
||
has_account:
|
||
description: Whether the customer has an account or not
|
||
type: boolean
|
||
default: false
|
||
orders:
|
||
description: The details of the orders this customer placed.
|
||
type: array
|
||
x-expandable: orders
|
||
items:
|
||
type: object
|
||
groups:
|
||
description: The customer groups the customer belongs to.
|
||
type: array
|
||
x-expandable: groups
|
||
items:
|
||
$ref: '#/components/schemas/CustomerGroup'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
CustomerGroup:
|
||
title: Customer Group
|
||
description: A customer group that can be used to organize customers into groups of similar traits.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- name
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The customer group's ID
|
||
type: string
|
||
example: cgrp_01G8ZH853Y6TFXWPG5EYE81X63
|
||
name:
|
||
description: The name of the customer group
|
||
type: string
|
||
example: VIP
|
||
customers:
|
||
description: The details of the customers that belong to the customer group.
|
||
type: array
|
||
x-expandable: customers
|
||
items:
|
||
type: object
|
||
price_lists:
|
||
description: The price lists that are associated with the customer group.
|
||
type: array
|
||
x-expandable: price_lists
|
||
items:
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DecoratedInventoryItemDTO:
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/InventoryItemDTO'
|
||
- type: object
|
||
required:
|
||
- stocked_quantity
|
||
- reserved_quantity
|
||
properties:
|
||
location_levels:
|
||
type: array
|
||
description: An array of location level details
|
||
items:
|
||
$ref: '#/components/schemas/InventoryLevelDTO'
|
||
variants:
|
||
type: array
|
||
description: An array of product variant details
|
||
items:
|
||
$ref: '#/components/schemas/ProductVariant'
|
||
stocked_quantity:
|
||
type: number
|
||
description: The total quantity of the item in stock across levels
|
||
reserved_quantity:
|
||
type: number
|
||
description: The total quantity of the item available across levels
|
||
Discount:
|
||
title: Discount
|
||
description: A discount can be applied to a cart for promotional purposes.
|
||
type: object
|
||
required:
|
||
- code
|
||
- created_at
|
||
- deleted_at
|
||
- ends_at
|
||
- id
|
||
- is_disabled
|
||
- is_dynamic
|
||
- metadata
|
||
- parent_discount_id
|
||
- rule_id
|
||
- starts_at
|
||
- updated_at
|
||
- usage_count
|
||
- usage_limit
|
||
- valid_duration
|
||
properties:
|
||
id:
|
||
description: The discount's ID
|
||
type: string
|
||
example: disc_01F0YESMW10MGHWJKZSDDMN0VN
|
||
code:
|
||
description: A unique code for the discount - this will be used by the customer to apply the discount
|
||
type: string
|
||
example: 10DISC
|
||
is_dynamic:
|
||
description: A flag to indicate if multiple instances of the discount can be generated. I.e. for newsletter discounts
|
||
type: boolean
|
||
example: false
|
||
rule_id:
|
||
description: The ID of the discount rule that defines how the discount will be applied to a cart.
|
||
nullable: true
|
||
type: string
|
||
example: dru_01F0YESMVK96HVX7N419E3CJ7C
|
||
rule:
|
||
description: The details of the discount rule that defines how the discount will be applied to a cart..
|
||
x-expandable: rule
|
||
nullable: true
|
||
$ref: '#/components/schemas/DiscountRule'
|
||
is_disabled:
|
||
description: Whether the Discount has been disabled. Disabled discounts cannot be applied to carts
|
||
type: boolean
|
||
example: false
|
||
parent_discount_id:
|
||
description: The Discount that the discount was created from. This will always be a dynamic discount
|
||
nullable: true
|
||
type: string
|
||
example: disc_01G8ZH853YPY9B94857DY91YGW
|
||
parent_discount:
|
||
description: The details of the parent discount that this discount was created from.
|
||
x-expandable: parent_discount
|
||
nullable: true
|
||
type: object
|
||
starts_at:
|
||
description: The time at which the discount can be used.
|
||
type: string
|
||
format: date-time
|
||
ends_at:
|
||
description: The time at which the discount can no longer be used.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
valid_duration:
|
||
description: Duration the discount runs between
|
||
nullable: true
|
||
type: string
|
||
example: P3Y6M4DT12H30M5S
|
||
regions:
|
||
description: The details of the regions in which the Discount can be used.
|
||
type: array
|
||
x-expandable: regions
|
||
items:
|
||
$ref: '#/components/schemas/Region'
|
||
usage_limit:
|
||
description: The maximum number of times that a discount can be used.
|
||
nullable: true
|
||
type: integer
|
||
example: 100
|
||
usage_count:
|
||
description: The number of times a discount has been used.
|
||
type: integer
|
||
example: 50
|
||
default: 0
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DiscountCondition:
|
||
title: Discount Condition
|
||
description: Holds rule conditions for when a discount is applicable
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- discount_rule_id
|
||
- id
|
||
- metadata
|
||
- operator
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The discount condition's ID
|
||
type: string
|
||
example: discon_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
type:
|
||
description: The type of the condition. The type affects the available resources associated with the condition. For example, if the type is `products`, that means the `products` relation will hold the products associated with this condition and other relations will be empty.
|
||
type: string
|
||
enum:
|
||
- products
|
||
- product_types
|
||
- product_collections
|
||
- product_tags
|
||
- customer_groups
|
||
operator:
|
||
description: The operator of the condition. `in` indicates that discountable resources are within the specified resources. `not_in` indicates that discountable resources are everything but the specified resources.
|
||
type: string
|
||
enum:
|
||
- in
|
||
- not_in
|
||
discount_rule_id:
|
||
description: The ID of the discount rule associated with the condition
|
||
type: string
|
||
example: dru_01F0YESMVK96HVX7N419E3CJ7C
|
||
discount_rule:
|
||
description: The details of the discount rule associated with the condition.
|
||
x-expandable: discount_rule
|
||
nullable: true
|
||
$ref: '#/components/schemas/DiscountRule'
|
||
products:
|
||
description: products associated with this condition if `type` is `products`.
|
||
type: array
|
||
x-expandable: products
|
||
items:
|
||
$ref: '#/components/schemas/Product'
|
||
product_types:
|
||
description: Product types associated with this condition if `type` is `product_types`.
|
||
type: array
|
||
x-expandable: product_types
|
||
items:
|
||
$ref: '#/components/schemas/ProductType'
|
||
product_tags:
|
||
description: Product tags associated with this condition if `type` is `product_tags`.
|
||
type: array
|
||
x-expandable: product_tags
|
||
items:
|
||
$ref: '#/components/schemas/ProductTag'
|
||
product_collections:
|
||
description: Product collections associated with this condition if `type` is `product_collections`.
|
||
type: array
|
||
x-expandable: product_collections
|
||
items:
|
||
$ref: '#/components/schemas/ProductCollection'
|
||
customer_groups:
|
||
description: Customer groups associated with this condition if `type` is `customer_groups`.
|
||
type: array
|
||
x-expandable: customer_groups
|
||
items:
|
||
$ref: '#/components/schemas/CustomerGroup'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DiscountConditionCustomerGroup:
|
||
title: Product Tag Discount Condition
|
||
description: Associates a discount condition with a customer group
|
||
type: object
|
||
required:
|
||
- condition_id
|
||
- created_at
|
||
- customer_group_id
|
||
- metadata
|
||
- updated_at
|
||
properties:
|
||
customer_group_id:
|
||
description: The ID of the Product Tag
|
||
type: string
|
||
example: cgrp_01G8ZH853Y6TFXWPG5EYE81X63
|
||
condition_id:
|
||
description: The ID of the Discount Condition
|
||
type: string
|
||
example: discon_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
customer_group:
|
||
description: Available if the relation `customer_group` is expanded.
|
||
nullable: true
|
||
$ref: '#/components/schemas/CustomerGroup'
|
||
discount_condition:
|
||
description: Available if the relation `discount_condition` is expanded.
|
||
nullable: true
|
||
$ref: '#/components/schemas/DiscountCondition'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DiscountConditionProduct:
|
||
title: Product Discount Condition
|
||
description: This represents the association between a discount condition and a product
|
||
type: object
|
||
required:
|
||
- condition_id
|
||
- created_at
|
||
- metadata
|
||
- product_id
|
||
- updated_at
|
||
properties:
|
||
product_id:
|
||
description: The ID of the Product Tag
|
||
type: string
|
||
example: prod_01G1G5V2MBA328390B5AXJ610F
|
||
condition_id:
|
||
description: The ID of the Discount Condition
|
||
type: string
|
||
example: discon_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
product:
|
||
description: The details of the product.
|
||
x-expandable: product
|
||
nullable: true
|
||
$ref: '#/components/schemas/Product'
|
||
discount_condition:
|
||
description: The details of the discount condition.
|
||
x-expandable: discount_condition
|
||
nullable: true
|
||
$ref: '#/components/schemas/DiscountCondition'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DiscountConditionProductCollection:
|
||
title: Product Collection Discount Condition
|
||
description: This represents the association between a discount condition and a product collection
|
||
type: object
|
||
required:
|
||
- condition_id
|
||
- created_at
|
||
- metadata
|
||
- product_collection_id
|
||
- updated_at
|
||
properties:
|
||
product_collection_id:
|
||
description: The ID of the Product Collection
|
||
type: string
|
||
example: pcol_01F0YESBFAZ0DV6V831JXWH0BG
|
||
condition_id:
|
||
description: The ID of the Discount Condition
|
||
type: string
|
||
example: discon_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
product_collection:
|
||
description: The details of the product collection.
|
||
x-expandable: product_collection
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductCollection'
|
||
discount_condition:
|
||
description: The details of the discount condition.
|
||
x-expandable: discount_condition
|
||
nullable: true
|
||
$ref: '#/components/schemas/DiscountCondition'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DiscountConditionProductTag:
|
||
title: Product Tag Discount Condition
|
||
description: This represents the association between a discount condition and a product tag
|
||
type: object
|
||
required:
|
||
- condition_id
|
||
- created_at
|
||
- metadata
|
||
- product_tag_id
|
||
- updated_at
|
||
properties:
|
||
product_tag_id:
|
||
description: The ID of the Product Tag
|
||
type: string
|
||
example: ptag_01F0YESHPZYY3H4SJ3A5918SBN
|
||
condition_id:
|
||
description: The ID of the Discount Condition
|
||
type: string
|
||
example: discon_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
product_tag:
|
||
description: The details of the product tag.
|
||
x-expandable: product_tag
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductTag'
|
||
discount_condition:
|
||
description: The details of the discount condition.
|
||
x-expandable: discount_condition
|
||
nullable: true
|
||
$ref: '#/components/schemas/DiscountCondition'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DiscountConditionProductType:
|
||
title: Product Type Discount Condition
|
||
description: This represents the association between a discount condition and a product type
|
||
type: object
|
||
required:
|
||
- condition_id
|
||
- created_at
|
||
- metadata
|
||
- product_type_id
|
||
- updated_at
|
||
properties:
|
||
product_type_id:
|
||
description: The ID of the Product Tag
|
||
type: string
|
||
example: ptyp_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
condition_id:
|
||
description: The ID of the Discount Condition
|
||
type: string
|
||
example: discon_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
product_type:
|
||
description: The details of the product type.
|
||
x-expandable: product_type
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductType'
|
||
discount_condition:
|
||
description: The details of the discount condition.
|
||
x-expandable: discount_condition
|
||
nullable: true
|
||
$ref: '#/components/schemas/DiscountCondition'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DiscountRule:
|
||
title: Discount Rule
|
||
description: A discount rule defines how a Discount is calculated when applied to a Cart.
|
||
type: object
|
||
required:
|
||
- allocation
|
||
- created_at
|
||
- deleted_at
|
||
- description
|
||
- id
|
||
- metadata
|
||
- type
|
||
- updated_at
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The discount rule's ID
|
||
type: string
|
||
example: dru_01F0YESMVK96HVX7N419E3CJ7C
|
||
type:
|
||
description: The type of the Discount, can be `fixed` for discounts that reduce the price by a fixed amount, `percentage` for percentage reductions or `free_shipping` for shipping vouchers.
|
||
type: string
|
||
enum:
|
||
- fixed
|
||
- percentage
|
||
- free_shipping
|
||
example: percentage
|
||
description:
|
||
description: A short description of the discount
|
||
nullable: true
|
||
type: string
|
||
example: 10 Percent
|
||
value:
|
||
description: The value that the discount represents; this will depend on the type of the discount
|
||
type: integer
|
||
example: 10
|
||
allocation:
|
||
description: The scope that the discount should apply to.
|
||
nullable: true
|
||
type: string
|
||
enum:
|
||
- total
|
||
- item
|
||
example: total
|
||
conditions:
|
||
description: The details of the discount conditions associated with the rule. They can be used to limit when the discount can be used.
|
||
type: array
|
||
x-expandable: conditions
|
||
items:
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
DraftOrder:
|
||
title: DraftOrder
|
||
description: A draft order is created by an admin without direct involvement of the customer. Once its payment is marked as captured, it is transformed into an order.
|
||
type: object
|
||
required:
|
||
- canceled_at
|
||
- cart_id
|
||
- completed_at
|
||
- created_at
|
||
- display_id
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- no_notification_order
|
||
- order_id
|
||
- status
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The draft order's ID
|
||
type: string
|
||
example: dorder_01G8TJFKBG38YYFQ035MSVG03C
|
||
status:
|
||
description: The status of the draft order. It's changed to `completed` when it's transformed to an order.
|
||
type: string
|
||
enum:
|
||
- open
|
||
- completed
|
||
default: open
|
||
display_id:
|
||
description: The draft order's display ID
|
||
type: string
|
||
example: 2
|
||
cart_id:
|
||
description: The ID of the cart associated with the draft order.
|
||
nullable: true
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
cart:
|
||
description: The details of the cart associated with the draft order.
|
||
x-expandable: cart
|
||
nullable: true
|
||
type: object
|
||
order_id:
|
||
description: The ID of the order created from the draft order when its payment is captured.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order created from the draft order when its payment is captured.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
canceled_at:
|
||
description: The date the draft order was canceled at.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
completed_at:
|
||
description: The date the draft order was completed at.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
no_notification_order:
|
||
description: Whether to send the customer notifications regarding order updates.
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of the cart associated with the draft order in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
Error:
|
||
title: Response Error
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: A slug code to indicate the type of the error.
|
||
enum:
|
||
- invalid_state_error
|
||
- invalid_request_error
|
||
- api_error
|
||
- unknown_error
|
||
message:
|
||
type: string
|
||
description: Description of the error that occurred.
|
||
example: first_name must be a string
|
||
type:
|
||
type: string
|
||
description: A slug indicating the type of the error.
|
||
enum:
|
||
- QueryRunnerAlreadyReleasedError
|
||
- TransactionAlreadyStartedError
|
||
- TransactionNotStartedError
|
||
- conflict
|
||
- unauthorized
|
||
- payment_authorization_error
|
||
- duplicate_error
|
||
- not_allowed
|
||
- invalid_data
|
||
- not_found
|
||
- database_error
|
||
- unexpected_state
|
||
- invalid_argument
|
||
- unknown_error
|
||
ExtendedReservationItem:
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/ReservationItemDTO'
|
||
- type: object
|
||
properties:
|
||
line_item:
|
||
description: The line item associated with the reservation.
|
||
$ref: '#/components/schemas/LineItem'
|
||
inventory_item:
|
||
description: The inventory item associated with the reservation.
|
||
$ref: '#/components/schemas/InventoryItemDTO'
|
||
ExtendedStoreDTO:
|
||
allOf:
|
||
- $ref: '#/components/schemas/Store'
|
||
- type: object
|
||
required:
|
||
- payment_providers
|
||
- fulfillment_providers
|
||
- feature_flags
|
||
- modules
|
||
properties:
|
||
payment_providers:
|
||
description: The store's payment providers.
|
||
$ref: '#/components/schemas/PaymentProvider'
|
||
fulfillment_providers:
|
||
description: The store's fulfillment providers.
|
||
$ref: '#/components/schemas/FulfillmentProvider'
|
||
feature_flags:
|
||
description: The feature flags enabled in the store's backend.
|
||
$ref: '#/components/schemas/FeatureFlagsResponse'
|
||
modules:
|
||
description: The modules installed in the store's backend.
|
||
$ref: '#/components/schemas/ModulesResponse'
|
||
FeatureFlagsResponse:
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- key
|
||
- value
|
||
properties:
|
||
key:
|
||
description: The key of the feature flag.
|
||
type: string
|
||
value:
|
||
description: The value of the feature flag.
|
||
type: boolean
|
||
Fulfillment:
|
||
title: Fulfillment
|
||
description: A Fulfillment is created once an admin can prepare the purchased goods. Fulfillments will eventually be shipped and hold information about how to track shipments. Fulfillments are created through a fulfillment provider, which typically integrates a third-party shipping service. Fulfillments can be associated with orders, claims, swaps, and returns.
|
||
type: object
|
||
required:
|
||
- canceled_at
|
||
- claim_order_id
|
||
- created_at
|
||
- data
|
||
- id
|
||
- idempotency_key
|
||
- location_id
|
||
- metadata
|
||
- no_notification
|
||
- order_id
|
||
- provider_id
|
||
- shipped_at
|
||
- swap_id
|
||
- tracking_numbers
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The fulfillment's ID
|
||
type: string
|
||
example: ful_01G8ZRTMQCA76TXNAT81KPJZRF
|
||
claim_order_id:
|
||
description: The ID of the Claim that the Fulfillment belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
claim_order:
|
||
description: The details of the claim that the fulfillment may belong to.
|
||
x-expandable: claim_order
|
||
nullable: true
|
||
type: object
|
||
swap_id:
|
||
description: The ID of the Swap that the Fulfillment belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
swap:
|
||
description: The details of the swap that the fulfillment may belong to.
|
||
x-expandable: swap
|
||
nullable: true
|
||
type: object
|
||
order_id:
|
||
description: The ID of the Order that the Fulfillment belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the fulfillment may belong to.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
provider_id:
|
||
description: The ID of the Fulfillment Provider responsible for handling the fulfillment.
|
||
type: string
|
||
example: manual
|
||
provider:
|
||
description: The details of the fulfillment provider responsible for handling the fulfillment.
|
||
x-expandable: provider
|
||
nullable: true
|
||
$ref: '#/components/schemas/FulfillmentProvider'
|
||
location_id:
|
||
description: The ID of the stock location the fulfillment will be shipped from
|
||
nullable: true
|
||
type: string
|
||
example: sloc_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
items:
|
||
description: The Fulfillment Items in the Fulfillment. These hold information about how many of each Line Item has been fulfilled.
|
||
type: array
|
||
x-expandable: items
|
||
items:
|
||
$ref: '#/components/schemas/FulfillmentItem'
|
||
tracking_links:
|
||
description: The Tracking Links that can be used to track the status of the Fulfillment. These will usually be provided by the Fulfillment Provider.
|
||
type: array
|
||
x-expandable: tracking_links
|
||
items:
|
||
$ref: '#/components/schemas/TrackingLink'
|
||
tracking_numbers:
|
||
description: The tracking numbers that can be used to track the status of the fulfillment.
|
||
deprecated: true
|
||
type: array
|
||
items:
|
||
type: string
|
||
data:
|
||
description: This contains all the data necessary for the Fulfillment provider to handle the fulfillment.
|
||
type: object
|
||
example: {}
|
||
shipped_at:
|
||
description: The date with timezone at which the Fulfillment was shipped.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
no_notification:
|
||
description: Flag for describing whether or not notifications related to this should be sent.
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
canceled_at:
|
||
description: The date with timezone at which the Fulfillment was canceled.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of the fulfillment in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
FulfillmentItem:
|
||
title: Fulfillment Item
|
||
description: This represents the association between a Line Item and a Fulfillment.
|
||
type: object
|
||
required:
|
||
- fulfillment_id
|
||
- item_id
|
||
- quantity
|
||
properties:
|
||
fulfillment_id:
|
||
description: The ID of the Fulfillment that the Fulfillment Item belongs to.
|
||
type: string
|
||
example: ful_01G8ZRTMQCA76TXNAT81KPJZRF
|
||
item_id:
|
||
description: The ID of the Line Item that the Fulfillment Item references.
|
||
type: string
|
||
example: item_01G8ZC9GWT6B2GP5FSXRXNFNGN
|
||
fulfillment:
|
||
description: The details of the fulfillment.
|
||
x-expandable: fulfillment
|
||
nullable: true
|
||
type: object
|
||
item:
|
||
description: The details of the line item.
|
||
x-expandable: item
|
||
nullable: true
|
||
$ref: '#/components/schemas/LineItem'
|
||
quantity:
|
||
description: The quantity of the Line Item that is included in the Fulfillment.
|
||
type: integer
|
||
example: 1
|
||
FulfillmentProvider:
|
||
title: Fulfillment Provider
|
||
description: A fulfillment provider represents a fulfillment service installed in the Medusa backend, either through a plugin or backend customizations. It holds the fulfillment service's installation status.
|
||
type: object
|
||
required:
|
||
- id
|
||
- is_installed
|
||
properties:
|
||
id:
|
||
description: The ID of the fulfillment provider as given by the fulfillment service.
|
||
type: string
|
||
example: manual
|
||
is_installed:
|
||
description: Whether the fulfillment service is installed in the current version. If a fulfillment service is no longer installed, the `is_installed` attribute is set to `false`.
|
||
type: boolean
|
||
default: true
|
||
GiftCard:
|
||
title: Gift Card
|
||
description: Gift Cards are redeemable and represent a value that can be used towards the payment of an Order.
|
||
type: object
|
||
required:
|
||
- balance
|
||
- code
|
||
- created_at
|
||
- deleted_at
|
||
- ends_at
|
||
- id
|
||
- is_disabled
|
||
- metadata
|
||
- order_id
|
||
- region_id
|
||
- tax_rate
|
||
- updated_at
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The gift card's ID
|
||
type: string
|
||
example: gift_01G8XKBPBQY2R7RBET4J7E0XQZ
|
||
code:
|
||
description: The unique code that identifies the Gift Card. This is used by the Customer to redeem the value of the Gift Card.
|
||
type: string
|
||
example: 3RFT-MH2C-Y4YZ-XMN4
|
||
value:
|
||
description: The value that the Gift Card represents.
|
||
type: integer
|
||
example: 10
|
||
balance:
|
||
description: The remaining value on the Gift Card.
|
||
type: integer
|
||
example: 10
|
||
region_id:
|
||
description: The ID of the region this gift card is available in.
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region this gift card is available in.
|
||
x-expandable: region
|
||
nullable: true
|
||
$ref: '#/components/schemas/Region'
|
||
order_id:
|
||
description: The ID of the order that the gift card was purchased in.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the gift card was purchased in.
|
||
x-expandable: region
|
||
nullable: true
|
||
type: object
|
||
is_disabled:
|
||
description: Whether the Gift Card has been disabled. Disabled Gift Cards cannot be applied to carts.
|
||
type: boolean
|
||
default: false
|
||
ends_at:
|
||
description: The time at which the Gift Card can no longer be used.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
tax_rate:
|
||
description: The gift card's tax rate that will be applied on calculating totals
|
||
nullable: true
|
||
type: number
|
||
example: 0
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
GiftCardTransaction:
|
||
title: Gift Card Transaction
|
||
description: Gift Card Transactions are created once a Customer uses a Gift Card to pay for their Order.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- created_at
|
||
- gift_card_id
|
||
- id
|
||
- is_taxable
|
||
- order_id
|
||
- tax_rate
|
||
properties:
|
||
id:
|
||
description: The gift card transaction's ID
|
||
type: string
|
||
example: gct_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
gift_card_id:
|
||
description: The ID of the Gift Card that was used in the transaction.
|
||
type: string
|
||
example: gift_01G8XKBPBQY2R7RBET4J7E0XQZ
|
||
gift_card:
|
||
description: The details of the gift card associated used in this transaction.
|
||
x-expandable: gift_card
|
||
nullable: true
|
||
type: object
|
||
order_id:
|
||
description: The ID of the order that the gift card was used for payment.
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the gift card was used for payment.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
amount:
|
||
description: The amount that was used from the Gift Card.
|
||
type: integer
|
||
example: 10
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
is_taxable:
|
||
description: Whether the transaction is taxable or not.
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
tax_rate:
|
||
description: The tax rate of the transaction
|
||
nullable: true
|
||
type: number
|
||
example: 0
|
||
IdempotencyKey:
|
||
title: Idempotency Key
|
||
description: Idempotency Key is used to continue a process in case of any failure that might occur.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- id
|
||
- idempotency_key
|
||
- locked_at
|
||
- recovery_point
|
||
- response_code
|
||
- response_body
|
||
- request_method
|
||
- request_params
|
||
- request_path
|
||
properties:
|
||
id:
|
||
description: The idempotency key's ID
|
||
type: string
|
||
example: ikey_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
idempotency_key:
|
||
description: The unique randomly generated key used to determine the state of a process.
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
created_at:
|
||
description: Date which the idempotency key was locked.
|
||
type: string
|
||
format: date-time
|
||
locked_at:
|
||
description: Date which the idempotency key was locked.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
request_method:
|
||
description: The method of the request
|
||
nullable: true
|
||
type: string
|
||
example: POST
|
||
request_params:
|
||
description: The parameters passed to the request
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
id: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
request_path:
|
||
description: The request's path
|
||
nullable: true
|
||
type: string
|
||
example: /store/carts/cart_01G8ZH853Y6TFXWPG5EYE81X63/complete
|
||
response_code:
|
||
description: The response's code.
|
||
nullable: true
|
||
type: string
|
||
example: 200
|
||
response_body:
|
||
description: The response's body
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
id: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
recovery_point:
|
||
description: Where to continue from.
|
||
type: string
|
||
default: started
|
||
Image:
|
||
title: Image
|
||
description: An Image is used to store details about uploaded images. Images are uploaded by the File Service, and the URL is provided by the File Service.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- updated_at
|
||
- url
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The image's ID
|
||
example: img_01G749BFYR6T8JTVW6SGW3K3E6
|
||
url:
|
||
description: The URL at which the image file can be found.
|
||
type: string
|
||
format: uri
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
InventoryItemDTO:
|
||
type: object
|
||
required:
|
||
- sku
|
||
properties:
|
||
id:
|
||
description: The inventory item's ID.
|
||
type: string
|
||
example: iitem_12334
|
||
sku:
|
||
description: The Stock Keeping Unit (SKU) code of the Inventory Item.
|
||
type: string
|
||
hs_code:
|
||
description: The Harmonized System code of the Inventory Item. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
origin_country:
|
||
description: The country in which the Inventory Item was produced. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
mid_code:
|
||
description: The Manufacturers Identification code that identifies the manufacturer of the Inventory Item. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
title:
|
||
description: Title of the inventory item
|
||
type: string
|
||
description:
|
||
description: Description of the inventory item
|
||
type: string
|
||
thumbnail:
|
||
description: Thumbnail for the inventory item
|
||
type: string
|
||
material:
|
||
description: The material and composition that the Inventory Item is made of, May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
type: string
|
||
weight:
|
||
description: The weight of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
height:
|
||
description: The height of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
width:
|
||
description: The width of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
length:
|
||
description: The length of the Inventory Item. May be used in shipping rate calculations.
|
||
type: number
|
||
requires_shipping:
|
||
description: Whether the item requires shipping.
|
||
type: boolean
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
created_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was created.
|
||
format: date-time
|
||
updated_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was updated.
|
||
format: date-time
|
||
deleted_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was deleted.
|
||
format: date-time
|
||
InventoryLevelDTO:
|
||
type: object
|
||
required:
|
||
- inventory_item_id
|
||
- location_id
|
||
- stocked_quantity
|
||
- reserved_quantity
|
||
- incoming_quantity
|
||
properties:
|
||
location_id:
|
||
description: the item location ID
|
||
type: string
|
||
stocked_quantity:
|
||
description: the total stock quantity of an inventory item at the given location ID
|
||
type: number
|
||
reserved_quantity:
|
||
description: the reserved stock quantity of an inventory item at the given location ID
|
||
type: number
|
||
incoming_quantity:
|
||
description: the incoming stock quantity of an inventory item at the given location ID
|
||
type: number
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
created_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was created.
|
||
format: date-time
|
||
updated_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was updated.
|
||
format: date-time
|
||
deleted_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was deleted.
|
||
format: date-time
|
||
Invite:
|
||
title: Invite
|
||
description: An invite is created when an admin user invites a new user to join the store's team. Once the invite is accepted, it's deleted.
|
||
type: object
|
||
required:
|
||
- accepted
|
||
- created_at
|
||
- deleted_at
|
||
- expires_at
|
||
- id
|
||
- metadata
|
||
- role
|
||
- token
|
||
- updated_at
|
||
- user_email
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The invite's ID
|
||
example: invite_01G8TKE4XYCTHSCK2GDEP47RE1
|
||
user_email:
|
||
description: The email of the user being invited.
|
||
type: string
|
||
format: email
|
||
role:
|
||
description: The user's role. These roles don't change the privileges of the user.
|
||
nullable: true
|
||
type: string
|
||
enum:
|
||
- admin
|
||
- member
|
||
- developer
|
||
default: member
|
||
accepted:
|
||
description: Whether the invite was accepted or not.
|
||
type: boolean
|
||
default: false
|
||
token:
|
||
description: The token used to accept the invite.
|
||
type: string
|
||
expires_at:
|
||
description: The date the invite expires at.
|
||
type: string
|
||
format: date-time
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
LineItem:
|
||
title: Line Item
|
||
description: Line Items are created when a product is added to a Cart. When Line Items are purchased they will get copied to the resulting order, swap, or claim, and can eventually be referenced in Fulfillments and Returns. Line items may also be used for order edits.
|
||
type: object
|
||
required:
|
||
- allow_discounts
|
||
- cart_id
|
||
- claim_order_id
|
||
- created_at
|
||
- description
|
||
- fulfilled_quantity
|
||
- has_shipping
|
||
- id
|
||
- is_giftcard
|
||
- is_return
|
||
- metadata
|
||
- order_edit_id
|
||
- order_id
|
||
- original_item_id
|
||
- quantity
|
||
- returned_quantity
|
||
- shipped_quantity
|
||
- should_merge
|
||
- swap_id
|
||
- thumbnail
|
||
- title
|
||
- unit_price
|
||
- updated_at
|
||
- variant_id
|
||
properties:
|
||
id:
|
||
description: The line item's ID
|
||
type: string
|
||
example: item_01G8ZC9GWT6B2GP5FSXRXNFNGN
|
||
cart_id:
|
||
description: The ID of the cart that the line item may belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
cart:
|
||
description: The details of the cart that the line item may belongs to.
|
||
x-expandable: cart
|
||
nullable: true
|
||
type: object
|
||
order_id:
|
||
description: The ID of the order that the line item may belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the line item may belongs to.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
swap_id:
|
||
description: The ID of the swap that the line item may belong to.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
swap:
|
||
description: The details of the swap that the line item may belong to.
|
||
x-expandable: swap
|
||
nullable: true
|
||
type: object
|
||
claim_order_id:
|
||
description: The ID of the claim that the line item may belong to.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
claim_order:
|
||
description: The details of the claim that the line item may belong to.
|
||
x-expandable: claim_order
|
||
nullable: true
|
||
type: object
|
||
tax_lines:
|
||
description: The details of the item's tax lines.
|
||
x-expandable: tax_lines
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/LineItemTaxLine'
|
||
adjustments:
|
||
description: The details of the item's adjustments, which are available when a discount is applied on the item.
|
||
x-expandable: adjustments
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/LineItemAdjustment'
|
||
original_item_id:
|
||
description: The ID of the original line item. This is useful if the line item belongs to a resource that references an order, such as a return or an order edit.
|
||
nullable: true
|
||
type: string
|
||
order_edit_id:
|
||
description: The ID of the order edit that the item may belong to.
|
||
nullable: true
|
||
type: string
|
||
order_edit:
|
||
description: The details of the order edit.
|
||
x-expandable: order_edit
|
||
nullable: true
|
||
type: object
|
||
title:
|
||
description: The title of the Line Item.
|
||
type: string
|
||
example: Medusa Coffee Mug
|
||
description:
|
||
description: A more detailed description of the contents of the Line Item.
|
||
nullable: true
|
||
type: string
|
||
example: One Size
|
||
thumbnail:
|
||
description: A URL string to a small image of the contents of the Line Item.
|
||
nullable: true
|
||
type: string
|
||
format: uri
|
||
example: https://medusa-public-images.s3.eu-west-1.amazonaws.com/coffee-mug.png
|
||
is_return:
|
||
description: Is the item being returned
|
||
type: boolean
|
||
default: false
|
||
is_giftcard:
|
||
description: Flag to indicate if the Line Item is a Gift Card.
|
||
type: boolean
|
||
default: false
|
||
should_merge:
|
||
description: Flag to indicate if new Line Items with the same variant should be merged or added as an additional Line Item.
|
||
type: boolean
|
||
default: true
|
||
allow_discounts:
|
||
description: Flag to indicate if the Line Item should be included when doing discount calculations.
|
||
type: boolean
|
||
default: true
|
||
has_shipping:
|
||
description: Flag to indicate if the Line Item has fulfillment associated with it.
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
unit_price:
|
||
description: The price of one unit of the content in the Line Item. This should be in the currency defined by the Cart/Order/Swap/Claim that the Line Item belongs to.
|
||
type: integer
|
||
example: 8000
|
||
variant_id:
|
||
description: The id of the Product Variant contained in the Line Item.
|
||
nullable: true
|
||
type: string
|
||
example: variant_01G1G5V2MRX2V3PVSR2WXYPFB6
|
||
variant:
|
||
description: The details of the product variant that this item was created from.
|
||
x-expandable: variant
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductVariant'
|
||
quantity:
|
||
description: The quantity of the content in the Line Item.
|
||
type: integer
|
||
example: 1
|
||
fulfilled_quantity:
|
||
description: The quantity of the Line Item that has been fulfilled.
|
||
nullable: true
|
||
type: integer
|
||
example: 0
|
||
returned_quantity:
|
||
description: The quantity of the Line Item that has been returned.
|
||
nullable: true
|
||
type: integer
|
||
example: 0
|
||
shipped_quantity:
|
||
description: The quantity of the Line Item that has been shipped.
|
||
nullable: true
|
||
type: integer
|
||
example: 0
|
||
refundable:
|
||
description: The amount that can be refunded from the given Line Item. Takes taxes and discounts into consideration.
|
||
type: integer
|
||
example: 0
|
||
subtotal:
|
||
description: The subtotal of the line item
|
||
type: integer
|
||
example: 8000
|
||
tax_total:
|
||
description: The total of tax of the line item
|
||
type: integer
|
||
example: 0
|
||
total:
|
||
description: The total amount of the line item
|
||
type: integer
|
||
example: 8000
|
||
original_total:
|
||
description: The original total amount of the line item
|
||
type: integer
|
||
example: 8000
|
||
original_tax_total:
|
||
description: The original tax total amount of the line item
|
||
type: integer
|
||
example: 0
|
||
discount_total:
|
||
description: The total of discount of the line item rounded
|
||
type: integer
|
||
example: 0
|
||
raw_discount_total:
|
||
description: The total of discount of the line item
|
||
type: integer
|
||
example: 0
|
||
gift_card_total:
|
||
description: The total of the gift card of the line item
|
||
type: integer
|
||
example: 0
|
||
includes_tax:
|
||
description: Indicates if the line item unit_price include tax
|
||
x-featureFlag: tax_inclusive_pricing
|
||
type: boolean
|
||
default: false
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
LineItemAdjustment:
|
||
title: Line Item Adjustment
|
||
description: A Line Item Adjustment includes details on discounts applied on a line item.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- description
|
||
- discount_id
|
||
- id
|
||
- item_id
|
||
- metadata
|
||
properties:
|
||
id:
|
||
description: The Line Item Adjustment's ID
|
||
type: string
|
||
example: lia_01G8TKE4XYCTHSCK2GDEP47RE1
|
||
item_id:
|
||
description: The ID of the line item
|
||
type: string
|
||
example: item_01G8ZC9GWT6B2GP5FSXRXNFNGN
|
||
item:
|
||
description: The details of the line item.
|
||
x-expandable: item
|
||
nullable: true
|
||
type: object
|
||
description:
|
||
description: The line item's adjustment description
|
||
type: string
|
||
example: Adjusted item's price.
|
||
discount_id:
|
||
description: The ID of the discount associated with the adjustment
|
||
nullable: true
|
||
type: string
|
||
example: disc_01F0YESMW10MGHWJKZSDDMN0VN
|
||
discount:
|
||
description: The details of the discount associated with the adjustment.
|
||
x-expandable: discount
|
||
nullable: true
|
||
$ref: '#/components/schemas/Discount'
|
||
amount:
|
||
description: The adjustment amount
|
||
type: number
|
||
example: 1000
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
LineItemTaxLine:
|
||
title: Line Item Tax Line
|
||
description: A Line Item Tax Line represents the taxes applied on a line item.
|
||
type: object
|
||
required:
|
||
- code
|
||
- created_at
|
||
- id
|
||
- item_id
|
||
- metadata
|
||
- name
|
||
- rate
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The line item tax line's ID
|
||
type: string
|
||
example: litl_01G1G5V2DRX1SK6NQQ8VVX4HQ8
|
||
code:
|
||
description: A code to identify the tax type by
|
||
nullable: true
|
||
type: string
|
||
example: tax01
|
||
name:
|
||
description: A human friendly name for the tax
|
||
type: string
|
||
example: Tax Example
|
||
rate:
|
||
description: The numeric rate to charge tax by
|
||
type: number
|
||
example: 10
|
||
item_id:
|
||
description: The ID of the line item
|
||
type: string
|
||
example: item_01G8ZC9GWT6B2GP5FSXRXNFNGN
|
||
item:
|
||
description: The details of the line item.
|
||
x-expandable: item
|
||
nullable: true
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ModulesResponse:
|
||
type: array
|
||
items:
|
||
type: object
|
||
required:
|
||
- module
|
||
- resolution
|
||
properties:
|
||
module:
|
||
description: The key of the module.
|
||
type: string
|
||
resolution:
|
||
description: The resolution path of the module or false if module is not installed.
|
||
type: string
|
||
MoneyAmount:
|
||
title: Money Amount
|
||
description: A Money Amount represent a price amount, for example, a product variant's price or a price in a price list. Each Money Amount either has a Currency or Region associated with it to indicate the pricing in a given Currency or, for fully region-based pricing, the given price in a specific Region. If region-based pricing is used, the amount will be in the currency defined for the Region.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- created_at
|
||
- currency_code
|
||
- deleted_at
|
||
- id
|
||
- max_quantity
|
||
- min_quantity
|
||
- price_list_id
|
||
- region_id
|
||
- updated_at
|
||
- variant_id
|
||
properties:
|
||
id:
|
||
description: The money amount's ID
|
||
type: string
|
||
example: ma_01F0YESHRFQNH5S8Q0PK84YYZN
|
||
currency_code:
|
||
description: The 3 character currency code that the money amount may belong to.
|
||
type: string
|
||
example: usd
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
currency:
|
||
description: The details of the currency that the money amount may belong to.
|
||
x-expandable: currency
|
||
nullable: true
|
||
$ref: '#/components/schemas/Currency'
|
||
amount:
|
||
description: The amount in the smallest currecny unit (e.g. cents 100 cents to charge $1) that the Product Variant will cost.
|
||
type: integer
|
||
example: 100
|
||
min_quantity:
|
||
description: The minimum quantity that the Money Amount applies to. If this value is not set, the Money Amount applies to all quantities.
|
||
nullable: true
|
||
type: integer
|
||
example: 1
|
||
max_quantity:
|
||
description: The maximum quantity that the Money Amount applies to. If this value is not set, the Money Amount applies to all quantities.
|
||
nullable: true
|
||
type: integer
|
||
example: 1
|
||
price_list_id:
|
||
description: The ID of the price list that the money amount may belong to.
|
||
nullable: true
|
||
type: string
|
||
example: pl_01G8X3CKJXCG5VXVZ87H9KC09W
|
||
price_list:
|
||
description: The details of the price list that the money amount may belong to.
|
||
x-expandable: price_list
|
||
nullable: true
|
||
type: object
|
||
variant_id:
|
||
description: The ID of the Product Variant contained in the Line Item.
|
||
nullable: true
|
||
type: string
|
||
example: variant_01G1G5V2MRX2V3PVSR2WXYPFB6
|
||
variant:
|
||
description: The details of the product variant that the money amount may belong to.
|
||
x-expandable: variant
|
||
nullable: true
|
||
type: object
|
||
region_id:
|
||
description: The region's ID
|
||
nullable: true
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region that the money amount may belong to.
|
||
x-expandable: region
|
||
nullable: true
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
MultipleErrors:
|
||
title: Multiple Errors
|
||
type: object
|
||
properties:
|
||
errors:
|
||
type: array
|
||
description: Array of errors
|
||
items:
|
||
$ref: '#/components/schemas/Error'
|
||
message:
|
||
type: string
|
||
default: Provided request body contains errors. Please check the data and retry the request
|
||
Note:
|
||
title: Note
|
||
description: A Note is an element that can be used in association with different resources to allow admin users to describe additional information. For example, they can be used to add additional information about orders.
|
||
type: object
|
||
required:
|
||
- author_id
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- resource_id
|
||
- resource_type
|
||
- updated_at
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The note's ID
|
||
type: string
|
||
example: note_01G8TM8ENBMC7R90XRR1G6H26Q
|
||
resource_type:
|
||
description: The type of resource that the Note refers to.
|
||
type: string
|
||
example: order
|
||
resource_id:
|
||
description: The ID of the resource that the Note refers to.
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
value:
|
||
description: The contents of the note.
|
||
type: string
|
||
example: This order must be fulfilled on Monday
|
||
author_id:
|
||
description: The ID of the user that created the note.
|
||
nullable: true
|
||
type: string
|
||
example: usr_01G1G5V26F5TB3GPAPNJ8X1S3V
|
||
author:
|
||
description: The details of the user that created the note.
|
||
x-expandable: author
|
||
nullable: true
|
||
$ref: '#/components/schemas/User'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
Notification:
|
||
title: Notification
|
||
description: A notification is an alert sent, typically to customers, using the installed Notification Provider as a reaction to internal events such as `order.placed`. Notifications can be resent.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- customer_id
|
||
- data
|
||
- event_name
|
||
- id
|
||
- parent_id
|
||
- provider_id
|
||
- resource_type
|
||
- resource_id
|
||
- to
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The notification's ID
|
||
type: string
|
||
example: noti_01G53V9Y6CKMCGBM1P0X7C28RX
|
||
event_name:
|
||
description: The name of the event that the notification was sent for.
|
||
nullable: true
|
||
type: string
|
||
example: order.placed
|
||
resource_type:
|
||
description: The type of resource that the Notification refers to.
|
||
type: string
|
||
example: order
|
||
resource_id:
|
||
description: The ID of the resource that the Notification refers to.
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
customer_id:
|
||
description: The ID of the customer that this notification was sent to.
|
||
nullable: true
|
||
type: string
|
||
example: cus_01G2SG30J8C85S4A5CHM2S1NS2
|
||
customer:
|
||
description: The details of the customer that this notification was sent to.
|
||
x-expandable: customer
|
||
nullable: true
|
||
$ref: '#/components/schemas/Customer'
|
||
to:
|
||
description: The address that the Notification was sent to. This will usually be an email address, but can represent other addresses such as a chat bot user ID.
|
||
type: string
|
||
example: user@example.com
|
||
data:
|
||
description: The data that the Notification was sent with. This contains all the data necessary for the Notification Provider to initiate a resend.
|
||
type: object
|
||
example: {}
|
||
parent_id:
|
||
description: The notification's parent ID
|
||
nullable: true
|
||
type: string
|
||
example: noti_01G53V9Y6CKMCGBM1P0X7C28RX
|
||
parent_notification:
|
||
description: The details of the parent notification.
|
||
x-expandable: parent_notification
|
||
nullable: true
|
||
type: object
|
||
resends:
|
||
description: The details of all resends of the notification.
|
||
type: array
|
||
x-expandable: resends
|
||
items:
|
||
type: object
|
||
provider_id:
|
||
description: The ID of the notification provider used to send the notification.
|
||
nullable: true
|
||
type: string
|
||
example: sengrid
|
||
provider:
|
||
description: The notification provider used to send the notification.
|
||
x-expandable: provider
|
||
nullable: true
|
||
$ref: '#/components/schemas/NotificationProvider'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
NotificationProvider:
|
||
title: Notification Provider
|
||
description: A notification provider represents a notification service installed in the Medusa backend, either through a plugin or backend customizations. It holds the notification service's installation status.
|
||
type: object
|
||
required:
|
||
- id
|
||
- is_installed
|
||
properties:
|
||
id:
|
||
description: The ID of the notification provider as given by the notification service.
|
||
type: string
|
||
example: sendgrid
|
||
is_installed:
|
||
description: Whether the notification service is installed in the current version. If a notification service is no longer installed, the `is_installed` attribute is set to `false`.
|
||
type: boolean
|
||
default: true
|
||
OAuth:
|
||
title: OAuth
|
||
description: An Oauth app is typically created by a plugin to handle authentication to third-party services.
|
||
type: object
|
||
required:
|
||
- application_name
|
||
- data
|
||
- display_name
|
||
- id
|
||
- install_url
|
||
- uninstall_url
|
||
properties:
|
||
id:
|
||
description: The app's ID
|
||
type: string
|
||
example: example_app
|
||
display_name:
|
||
description: The app's display name
|
||
type: string
|
||
example: Example app
|
||
application_name:
|
||
description: The app's name
|
||
type: string
|
||
example: example
|
||
install_url:
|
||
description: The URL to install the app
|
||
nullable: true
|
||
type: string
|
||
format: uri
|
||
uninstall_url:
|
||
description: The URL to uninstall the app
|
||
nullable: true
|
||
type: string
|
||
format: uri
|
||
data:
|
||
description: Any data necessary to the app.
|
||
nullable: true
|
||
type: object
|
||
example: {}
|
||
Order:
|
||
title: Order
|
||
description: An order is a purchase made by a customer. It holds details about payment and fulfillment of the order. An order may also be created from a draft order, which is created by an admin user.
|
||
type: object
|
||
required:
|
||
- billing_address_id
|
||
- canceled_at
|
||
- cart_id
|
||
- created_at
|
||
- currency_code
|
||
- customer_id
|
||
- draft_order_id
|
||
- display_id
|
||
- email
|
||
- external_id
|
||
- fulfillment_status
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- no_notification
|
||
- object
|
||
- payment_status
|
||
- region_id
|
||
- shipping_address_id
|
||
- status
|
||
- tax_rate
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The order's ID
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
status:
|
||
description: The order's status
|
||
type: string
|
||
enum:
|
||
- pending
|
||
- completed
|
||
- archived
|
||
- canceled
|
||
- requires_action
|
||
default: pending
|
||
fulfillment_status:
|
||
description: The order's fulfillment status
|
||
type: string
|
||
enum:
|
||
- not_fulfilled
|
||
- partially_fulfilled
|
||
- fulfilled
|
||
- partially_shipped
|
||
- shipped
|
||
- partially_returned
|
||
- returned
|
||
- canceled
|
||
- requires_action
|
||
default: not_fulfilled
|
||
payment_status:
|
||
description: The order's payment status
|
||
type: string
|
||
enum:
|
||
- not_paid
|
||
- awaiting
|
||
- captured
|
||
- partially_refunded
|
||
- refunded
|
||
- canceled
|
||
- requires_action
|
||
default: not_paid
|
||
display_id:
|
||
description: The order's display ID
|
||
type: integer
|
||
example: 2
|
||
cart_id:
|
||
description: The ID of the cart associated with the order
|
||
nullable: true
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
cart:
|
||
description: The details of the cart associated with the order.
|
||
x-expandable: cart
|
||
nullable: true
|
||
type: object
|
||
customer_id:
|
||
description: The ID of the customer associated with the order
|
||
type: string
|
||
example: cus_01G2SG30J8C85S4A5CHM2S1NS2
|
||
customer:
|
||
description: The details of the customer associated with the order.
|
||
x-expandable: customer
|
||
nullable: true
|
||
type: object
|
||
email:
|
||
description: The email associated with the order
|
||
type: string
|
||
format: email
|
||
billing_address_id:
|
||
description: The ID of the billing address associated with the order
|
||
nullable: true
|
||
type: string
|
||
example: addr_01G8ZH853YPY9B94857DY91YGW
|
||
billing_address:
|
||
description: The details of the billing address associated with the order.
|
||
x-expandable: billing_address
|
||
nullable: true
|
||
$ref: '#/components/schemas/Address'
|
||
shipping_address_id:
|
||
description: The ID of the shipping address associated with the order
|
||
nullable: true
|
||
type: string
|
||
example: addr_01G8ZH853YPY9B94857DY91YGW
|
||
shipping_address:
|
||
description: The details of the shipping address associated with the order.
|
||
x-expandable: shipping_address
|
||
nullable: true
|
||
$ref: '#/components/schemas/Address'
|
||
region_id:
|
||
description: The ID of the region this order was created in.
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region this order was created in.
|
||
x-expandable: region
|
||
nullable: true
|
||
$ref: '#/components/schemas/Region'
|
||
currency_code:
|
||
description: The 3 character currency code that is used in the order
|
||
type: string
|
||
example: usd
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
currency:
|
||
description: The details of the currency used in the order.
|
||
x-expandable: currency
|
||
nullable: true
|
||
$ref: '#/components/schemas/Currency'
|
||
tax_rate:
|
||
description: The order's tax rate
|
||
nullable: true
|
||
type: number
|
||
example: 0
|
||
discounts:
|
||
description: The details of the discounts applied on the order.
|
||
type: array
|
||
x-expandable: discounts
|
||
items:
|
||
$ref: '#/components/schemas/Discount'
|
||
gift_cards:
|
||
description: The details of the gift card used in the order.
|
||
type: array
|
||
x-expandable: gift_cards
|
||
items:
|
||
$ref: '#/components/schemas/GiftCard'
|
||
shipping_methods:
|
||
description: The details of the shipping methods used in the order.
|
||
type: array
|
||
x-expandable: shipping_methods
|
||
items:
|
||
$ref: '#/components/schemas/ShippingMethod'
|
||
payments:
|
||
description: The details of the payments used in the order.
|
||
type: array
|
||
x-expandable: payments
|
||
items:
|
||
type: object
|
||
fulfillments:
|
||
description: The details of the fulfillments created for the order.
|
||
type: array
|
||
x-expandable: fulfillments
|
||
items:
|
||
type: object
|
||
returns:
|
||
description: The details of the returns created for the order.
|
||
type: array
|
||
x-expandable: returns
|
||
items:
|
||
type: object
|
||
claims:
|
||
description: The details of the claims created for the order.
|
||
type: array
|
||
x-expandable: claims
|
||
items:
|
||
type: object
|
||
refunds:
|
||
description: The details of the refunds created for the order.
|
||
type: array
|
||
x-expandable: refunds
|
||
items:
|
||
type: object
|
||
swaps:
|
||
description: The details of the swaps created for the order.
|
||
type: array
|
||
x-expandable: swaps
|
||
items:
|
||
type: object
|
||
draft_order_id:
|
||
description: The ID of the draft order this order was created from.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
draft_order:
|
||
description: The details of the draft order this order was created from.
|
||
x-expandable: draft_order
|
||
nullable: true
|
||
type: object
|
||
items:
|
||
description: The details of the line items that belong to the order.
|
||
x-expandable: items
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
edits:
|
||
description: The details of the order edits done on the order.
|
||
type: array
|
||
x-expandable: edits
|
||
items:
|
||
type: object
|
||
gift_card_transactions:
|
||
description: The gift card transactions made in the order.
|
||
type: array
|
||
x-expandable: gift_card_transactions
|
||
items:
|
||
$ref: '#/components/schemas/GiftCardTransaction'
|
||
canceled_at:
|
||
description: The date the order was canceled on.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
no_notification:
|
||
description: Flag for describing whether or not notifications related to this should be send.
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the processing of the order in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
external_id:
|
||
description: The ID of an external order.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
sales_channel_id:
|
||
description: The ID of the sales channel this order belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
sales_channel:
|
||
description: The details of the sales channel this order belongs to.
|
||
x-expandable: sales_channel
|
||
nullable: true
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
shipping_total:
|
||
type: integer
|
||
description: The total of shipping
|
||
example: 1000
|
||
nullable: true
|
||
shipping_tax_total:
|
||
type: integer
|
||
description: The tax total applied on shipping
|
||
example: 1000
|
||
raw_discount_total:
|
||
description: The total of discount
|
||
type: integer
|
||
example: 800
|
||
discount_total:
|
||
description: The total of discount rounded
|
||
type: integer
|
||
example: 800
|
||
tax_total:
|
||
description: The total of tax
|
||
type: integer
|
||
example: 0
|
||
item_tax_total:
|
||
description: The tax total applied on items
|
||
type: integer
|
||
example: 0
|
||
nullable: true
|
||
refunded_total:
|
||
description: The total amount refunded if the order is returned.
|
||
type: integer
|
||
example: 0
|
||
total:
|
||
description: The total amount of the order
|
||
type: integer
|
||
example: 8200
|
||
subtotal:
|
||
description: The subtotal of the order
|
||
type: integer
|
||
example: 8000
|
||
paid_total:
|
||
description: The total amount paid
|
||
type: integer
|
||
example: 8000
|
||
refundable_amount:
|
||
description: The amount that can be refunded
|
||
type: integer
|
||
example: 8200
|
||
gift_card_total:
|
||
description: The total of gift cards
|
||
type: integer
|
||
example: 0
|
||
gift_card_tax_total:
|
||
description: The total of gift cards with taxes
|
||
type: integer
|
||
example: 0
|
||
returnable_items:
|
||
description: The details of the line items that are returnable as part of the order, swaps, or claims
|
||
type: array
|
||
x-expandable: returnable_items
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
sales_channels:
|
||
description: The associated sales channels.
|
||
type: array
|
||
nullable: true
|
||
x-expandable: sales_channels
|
||
x-featureFlag: medusa_v2
|
||
items:
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
OrderEdit:
|
||
title: Order Edit
|
||
description: Order edit allows modifying items in an order, such as adding, updating, or deleting items from the original order. Once the order edit is confirmed, the changes are reflected on the original order.
|
||
type: object
|
||
required:
|
||
- canceled_at
|
||
- canceled_by
|
||
- confirmed_by
|
||
- confirmed_at
|
||
- created_at
|
||
- created_by
|
||
- declined_at
|
||
- declined_by
|
||
- declined_reason
|
||
- id
|
||
- internal_note
|
||
- order_id
|
||
- payment_collection_id
|
||
- requested_at
|
||
- requested_by
|
||
- status
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The order edit's ID
|
||
type: string
|
||
example: oe_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order_id:
|
||
description: The ID of the order that is edited
|
||
type: string
|
||
example: order_01G2SG30J8C85S4A5CHM2S1NS2
|
||
order:
|
||
description: The details of the order that this order edit was created for.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
changes:
|
||
description: The details of all the changes on the original order's line items.
|
||
x-expandable: changes
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/OrderItemChange'
|
||
internal_note:
|
||
description: An optional note with additional details about the order edit.
|
||
nullable: true
|
||
type: string
|
||
example: Included two more items B to the order.
|
||
created_by:
|
||
description: The unique identifier of the user or customer who created the order edit.
|
||
type: string
|
||
requested_by:
|
||
description: The unique identifier of the user or customer who requested the order edit.
|
||
nullable: true
|
||
type: string
|
||
requested_at:
|
||
description: The date with timezone at which the edit was requested.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
confirmed_by:
|
||
description: The unique identifier of the user or customer who confirmed the order edit.
|
||
nullable: true
|
||
type: string
|
||
confirmed_at:
|
||
description: The date with timezone at which the edit was confirmed.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
declined_by:
|
||
description: The unique identifier of the user or customer who declined the order edit.
|
||
nullable: true
|
||
type: string
|
||
declined_at:
|
||
description: The date with timezone at which the edit was declined.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
declined_reason:
|
||
description: An optional note why the order edit is declined.
|
||
nullable: true
|
||
type: string
|
||
canceled_by:
|
||
description: The unique identifier of the user or customer who cancelled the order edit.
|
||
nullable: true
|
||
type: string
|
||
canceled_at:
|
||
description: The date with timezone at which the edit was cancelled.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
subtotal:
|
||
description: The total of subtotal
|
||
type: integer
|
||
example: 8000
|
||
discount_total:
|
||
description: The total of discount
|
||
type: integer
|
||
example: 800
|
||
shipping_total:
|
||
description: The total of the shipping amount
|
||
type: integer
|
||
example: 800
|
||
gift_card_total:
|
||
description: The total of the gift card amount
|
||
type: integer
|
||
example: 800
|
||
gift_card_tax_total:
|
||
description: The total of the gift card tax amount
|
||
type: integer
|
||
example: 800
|
||
tax_total:
|
||
description: The total of tax
|
||
type: integer
|
||
example: 0
|
||
total:
|
||
description: The total amount of the edited order.
|
||
type: integer
|
||
example: 8200
|
||
difference_due:
|
||
description: The difference between the total amount of the order and total amount of edited order.
|
||
type: integer
|
||
example: 8200
|
||
status:
|
||
description: The status of the order edit.
|
||
type: string
|
||
enum:
|
||
- confirmed
|
||
- declined
|
||
- requested
|
||
- created
|
||
- canceled
|
||
items:
|
||
description: The details of the cloned items from the original order with the new changes. Once the order edit is confirmed, these line items are associated with the original order.
|
||
type: array
|
||
x-expandable: items
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
payment_collection_id:
|
||
description: The ID of the payment collection
|
||
nullable: true
|
||
type: string
|
||
example: paycol_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
payment_collection:
|
||
description: The details of the payment collection used to authorize additional payment if necessary.
|
||
x-expandable: payment_collection
|
||
nullable: true
|
||
$ref: '#/components/schemas/PaymentCollection'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
OrderItemChange:
|
||
title: Order Item Change
|
||
description: An order item change is a change made within an order edit to an order's items. These changes are not reflected on the original order until the order edit is confirmed.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- line_item_id
|
||
- order_edit_id
|
||
- original_line_item_id
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The order item change's ID
|
||
type: string
|
||
example: oic_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
type:
|
||
description: The order item change's status
|
||
type: string
|
||
enum:
|
||
- item_add
|
||
- item_remove
|
||
- item_update
|
||
order_edit_id:
|
||
description: The ID of the order edit
|
||
type: string
|
||
example: oe_01G2SG30J8C85S4A5CHM2S1NS2
|
||
order_edit:
|
||
description: The details of the order edit the item change is associated with.
|
||
x-expandable: order_edit
|
||
nullable: true
|
||
type: object
|
||
original_line_item_id:
|
||
description: The ID of the original line item in the order
|
||
nullable: true
|
||
type: string
|
||
example: item_01G8ZC9GWT6B2GP5FSXRXNFNGN
|
||
original_line_item:
|
||
description: The details of the original line item this item change references. This is used if the item change updates or deletes the original item.
|
||
x-expandable: original_line_item
|
||
nullable: true
|
||
$ref: '#/components/schemas/LineItem'
|
||
line_item_id:
|
||
description: The ID of the cloned line item.
|
||
nullable: true
|
||
type: string
|
||
example: item_01G8ZC9GWT6B2GP5FSXRXNFNGN
|
||
line_item:
|
||
description: The details of the resulting line item after the item change. This line item is then used in the original order once the order edit is confirmed.
|
||
x-expandable: line_item
|
||
nullable: true
|
||
$ref: '#/components/schemas/LineItem'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
Payment:
|
||
title: Payment
|
||
description: A payment is originally created from a payment session. Once a payment session is authorized, the payment is created to represent the authorized amount with a given payment method. Payments can be captured, canceled or refunded. Payments can be made towards orders, swaps, order edits, or other resources.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- amount_refunded
|
||
- canceled_at
|
||
- captured_at
|
||
- cart_id
|
||
- created_at
|
||
- currency_code
|
||
- data
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- order_id
|
||
- provider_id
|
||
- swap_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The payment's ID
|
||
type: string
|
||
example: pay_01G2SJNT6DEEWDFNAJ4XWDTHKE
|
||
swap_id:
|
||
description: The ID of the swap that this payment was potentially created for.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
swap:
|
||
description: The details of the swap that this payment was potentially created for.
|
||
x-expandable: swap
|
||
nullable: true
|
||
type: object
|
||
cart_id:
|
||
description: The ID of the cart that the payment session was potentially created for.
|
||
nullable: true
|
||
type: string
|
||
cart:
|
||
description: The details of the cart that the payment session was potentially created for.
|
||
x-expandable: cart
|
||
nullable: true
|
||
type: object
|
||
order_id:
|
||
description: The ID of the order that the payment session was potentially created for.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the payment session was potentially created for.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
amount:
|
||
description: The amount that the Payment has been authorized for.
|
||
type: integer
|
||
example: 100
|
||
currency_code:
|
||
description: The 3 character ISO currency code of the payment.
|
||
type: string
|
||
example: usd
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
currency:
|
||
description: The details of the currency of the payment.
|
||
x-expandable: currency
|
||
nullable: true
|
||
$ref: '#/components/schemas/Currency'
|
||
amount_refunded:
|
||
description: The amount of the original Payment amount that has been refunded back to the Customer.
|
||
type: integer
|
||
default: 0
|
||
example: 0
|
||
provider_id:
|
||
description: The id of the Payment Provider that is responsible for the Payment
|
||
type: string
|
||
example: manual
|
||
data:
|
||
description: The data required for the Payment Provider to identify, modify and process the Payment. Typically this will be an object that holds an id to the external payment session, but can be an empty object if the Payment Provider doesn't hold any state.
|
||
type: object
|
||
example: {}
|
||
captured_at:
|
||
description: The date with timezone at which the Payment was captured.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
canceled_at:
|
||
description: The date with timezone at which the Payment was canceled.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of a payment in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
PaymentCollection:
|
||
title: Payment Collection
|
||
description: A payment collection allows grouping and managing a list of payments at one. This can be helpful when making additional payment for order edits or integrating installment payments.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- authorized_amount
|
||
- created_at
|
||
- created_by
|
||
- currency_code
|
||
- deleted_at
|
||
- description
|
||
- id
|
||
- metadata
|
||
- region_id
|
||
- status
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The payment collection's ID
|
||
type: string
|
||
example: paycol_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
type:
|
||
description: The type of the payment collection
|
||
type: string
|
||
enum:
|
||
- order_edit
|
||
status:
|
||
description: The type of the payment collection
|
||
type: string
|
||
enum:
|
||
- not_paid
|
||
- awaiting
|
||
- authorized
|
||
- partially_authorized
|
||
- canceled
|
||
description:
|
||
description: Description of the payment collection
|
||
nullable: true
|
||
type: string
|
||
amount:
|
||
description: Amount of the payment collection.
|
||
type: integer
|
||
authorized_amount:
|
||
description: Authorized amount of the payment collection.
|
||
nullable: true
|
||
type: integer
|
||
region_id:
|
||
description: The ID of the region this payment collection is associated with.
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region this payment collection is associated with.
|
||
x-expandable: region
|
||
nullable: true
|
||
$ref: '#/components/schemas/Region'
|
||
currency_code:
|
||
description: The three character ISO code for the currency this payment collection is associated with.
|
||
type: string
|
||
example: usd
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
currency:
|
||
description: The details of the currency this payment collection is associated with.
|
||
x-expandable: currency
|
||
nullable: true
|
||
$ref: '#/components/schemas/Currency'
|
||
payment_sessions:
|
||
description: The details of the payment sessions created as part of the payment collection.
|
||
type: array
|
||
x-expandable: payment_sessions
|
||
items:
|
||
$ref: '#/components/schemas/PaymentSession'
|
||
payments:
|
||
description: The details of the payments created as part of the payment collection.
|
||
type: array
|
||
x-expandable: payments
|
||
items:
|
||
$ref: '#/components/schemas/Payment'
|
||
created_by:
|
||
description: The ID of the user that created the payment collection.
|
||
type: string
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
PaymentProvider:
|
||
title: Payment Provider
|
||
description: A payment provider represents a payment service installed in the Medusa backend, either through a plugin or backend customizations. It holds the payment service's installation status.
|
||
type: object
|
||
required:
|
||
- id
|
||
- is_installed
|
||
properties:
|
||
id:
|
||
description: The ID of the payment provider as given by the payment service.
|
||
type: string
|
||
example: manual
|
||
is_installed:
|
||
description: Whether the payment service is installed in the current version. If a payment service is no longer installed, the `is_installed` attribute is set to `false`.
|
||
type: boolean
|
||
default: true
|
||
PaymentSession:
|
||
title: Payment Session
|
||
description: A Payment Session is created when a Customer initilizes the checkout flow, and can be used to hold the state of a payment flow. Each Payment Session is controlled by a Payment Provider, which is responsible for the communication with external payment services. Authorized Payment Sessions will eventually get promoted to Payments to indicate that they are authorized for payment processing such as capture or refund. Payment sessions can also be used as part of payment collections.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- cart_id
|
||
- created_at
|
||
- data
|
||
- id
|
||
- is_initiated
|
||
- is_selected
|
||
- idempotency_key
|
||
- payment_authorized_at
|
||
- provider_id
|
||
- status
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The payment session's ID
|
||
type: string
|
||
example: ps_01G901XNSRM2YS3ASN9H5KG3FZ
|
||
cart_id:
|
||
description: The ID of the cart that the payment session was created for.
|
||
nullable: true
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
cart:
|
||
description: The details of the cart that the payment session was created for.
|
||
x-expandable: cart
|
||
nullable: true
|
||
$ref: '#/components/schemas/Cart'
|
||
provider_id:
|
||
description: The ID of the Payment Provider that is responsible for the Payment Session
|
||
type: string
|
||
example: manual
|
||
is_selected:
|
||
description: A flag to indicate if the Payment Session has been selected as the method that will be used to complete the purchase.
|
||
nullable: true
|
||
type: boolean
|
||
example: true
|
||
is_initiated:
|
||
description: A flag to indicate if a communication with the third party provider has been initiated.
|
||
type: boolean
|
||
default: false
|
||
example: true
|
||
status:
|
||
description: Indicates the status of the Payment Session. Will default to `pending`, and will eventually become `authorized`. Payment Sessions may have the status of `requires_more` to indicate that further actions are to be completed by the Customer.
|
||
type: string
|
||
enum:
|
||
- authorized
|
||
- pending
|
||
- requires_more
|
||
- error
|
||
- canceled
|
||
example: pending
|
||
data:
|
||
description: The data required for the Payment Provider to identify, modify and process the Payment Session. Typically this will be an object that holds an id to the external payment session, but can be an empty object if the Payment Provider doesn't hold any state.
|
||
type: object
|
||
example: {}
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of a cart in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
amount:
|
||
description: The amount that the Payment Session has been authorized for.
|
||
nullable: true
|
||
type: integer
|
||
example: 100
|
||
payment_authorized_at:
|
||
description: The date with timezone at which the Payment Session was authorized.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
PriceList:
|
||
title: Price List
|
||
description: A Price List represents a set of prices that override the default price for one or more product variants.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- description
|
||
- ends_at
|
||
- id
|
||
- name
|
||
- starts_at
|
||
- status
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The price list's ID
|
||
type: string
|
||
example: pl_01G8X3CKJXCG5VXVZ87H9KC09W
|
||
name:
|
||
description: The price list's name
|
||
type: string
|
||
example: VIP Prices
|
||
description:
|
||
description: The price list's description
|
||
type: string
|
||
example: Prices for VIP customers
|
||
type:
|
||
description: The type of Price List. This can be one of either `sale` or `override`.
|
||
type: string
|
||
enum:
|
||
- sale
|
||
- override
|
||
default: sale
|
||
status:
|
||
description: The status of the Price List
|
||
type: string
|
||
enum:
|
||
- active
|
||
- draft
|
||
default: draft
|
||
starts_at:
|
||
description: The date with timezone that the Price List starts being valid.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
ends_at:
|
||
description: The date with timezone that the Price List stops being valid.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
customer_groups:
|
||
description: The details of the customer groups that the Price List can apply to.
|
||
type: array
|
||
x-expandable: customer_groups
|
||
items:
|
||
$ref: '#/components/schemas/CustomerGroup'
|
||
prices:
|
||
description: The prices that belong to the price list, represented as a Money Amount.
|
||
type: array
|
||
x-expandable: prices
|
||
items:
|
||
$ref: '#/components/schemas/MoneyAmount'
|
||
includes_tax:
|
||
description: Whether the price list prices include tax
|
||
type: boolean
|
||
x-featureFlag: tax_inclusive_pricing
|
||
default: false
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
PricedProduct:
|
||
title: Priced Product
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/Product'
|
||
- type: object
|
||
properties:
|
||
variants:
|
||
description: The product variants and their prices.
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/PricedVariant'
|
||
PricedShippingOption:
|
||
title: Priced Shipping Option
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/ShippingOption'
|
||
- type: object
|
||
properties:
|
||
price_incl_tax:
|
||
type: number
|
||
description: Price including taxes
|
||
tax_rates:
|
||
type: array
|
||
description: An array of applied tax rates
|
||
items:
|
||
type: object
|
||
properties:
|
||
rate:
|
||
type: number
|
||
description: The tax rate value
|
||
name:
|
||
type: string
|
||
description: The name of the tax rate
|
||
code:
|
||
type: string
|
||
description: The code of the tax rate
|
||
tax_amount:
|
||
type: number
|
||
description: The taxes applied.
|
||
PricedVariant:
|
||
title: Priced Product Variant
|
||
type: object
|
||
allOf:
|
||
- $ref: '#/components/schemas/ProductVariant'
|
||
- type: object
|
||
properties:
|
||
original_price:
|
||
type: number
|
||
description: The original price of the variant without any discounted prices applied.
|
||
calculated_price:
|
||
type: number
|
||
description: The calculated price of the variant. Can be a discounted price.
|
||
original_price_incl_tax:
|
||
type: number
|
||
description: The original price of the variant including taxes.
|
||
calculated_price_incl_tax:
|
||
type: number
|
||
description: The calculated price of the variant including taxes.
|
||
original_tax:
|
||
type: number
|
||
description: The taxes applied on the original price.
|
||
calculated_tax:
|
||
type: number
|
||
description: The taxes applied on the calculated price.
|
||
tax_rates:
|
||
type: array
|
||
description: An array of applied tax rates
|
||
items:
|
||
type: object
|
||
properties:
|
||
rate:
|
||
type: number
|
||
description: The tax rate value
|
||
name:
|
||
type: string
|
||
description: The name of the tax rate
|
||
code:
|
||
type: string
|
||
description: The code of the tax rate
|
||
Product:
|
||
title: Product
|
||
description: A product is a saleable item that holds general information such as name or description. It must include at least one Product Variant, where each product variant defines different options to purchase the product with (for example, different sizes or colors). The prices and inventory of the product are defined on the variant level.
|
||
type: object
|
||
required:
|
||
- collection_id
|
||
- created_at
|
||
- deleted_at
|
||
- description
|
||
- discountable
|
||
- external_id
|
||
- handle
|
||
- height
|
||
- hs_code
|
||
- id
|
||
- is_giftcard
|
||
- length
|
||
- material
|
||
- metadata
|
||
- mid_code
|
||
- origin_country
|
||
- profile_id
|
||
- status
|
||
- subtitle
|
||
- type_id
|
||
- thumbnail
|
||
- title
|
||
- updated_at
|
||
- weight
|
||
- width
|
||
properties:
|
||
id:
|
||
description: The product's ID
|
||
type: string
|
||
example: prod_01G1G5V2MBA328390B5AXJ610F
|
||
title:
|
||
description: A title that can be displayed for easy identification of the Product.
|
||
type: string
|
||
example: Medusa Coffee Mug
|
||
subtitle:
|
||
description: An optional subtitle that can be used to further specify the Product.
|
||
nullable: true
|
||
type: string
|
||
description:
|
||
description: A short description of the Product.
|
||
nullable: true
|
||
type: string
|
||
example: Every programmer's best friend.
|
||
handle:
|
||
description: A unique identifier for the Product (e.g. for slug structure).
|
||
nullable: true
|
||
type: string
|
||
example: coffee-mug
|
||
is_giftcard:
|
||
description: Whether the Product represents a Gift Card. Products that represent Gift Cards will automatically generate a redeemable Gift Card code once they are purchased.
|
||
type: boolean
|
||
default: false
|
||
status:
|
||
description: The status of the product
|
||
type: string
|
||
enum:
|
||
- draft
|
||
- proposed
|
||
- published
|
||
- rejected
|
||
default: draft
|
||
images:
|
||
description: The details of the product's images.
|
||
type: array
|
||
x-expandable: images
|
||
items:
|
||
$ref: '#/components/schemas/Image'
|
||
thumbnail:
|
||
description: A URL to an image file that can be used to identify the Product.
|
||
nullable: true
|
||
type: string
|
||
format: uri
|
||
options:
|
||
description: The details of the Product Options that are defined for the Product. The product's variants will have a unique combination of values of the product's options.
|
||
type: array
|
||
x-expandable: options
|
||
items:
|
||
$ref: '#/components/schemas/ProductOption'
|
||
variants:
|
||
description: The details of the Product Variants that belong to the Product. Each will have a unique combination of values of the product's options.
|
||
type: array
|
||
x-expandable: variants
|
||
items:
|
||
$ref: '#/components/schemas/ProductVariant'
|
||
categories:
|
||
description: The details of the product categories that this product belongs to.
|
||
type: array
|
||
x-expandable: categories
|
||
x-featureFlag: product_categories
|
||
items:
|
||
$ref: '#/components/schemas/ProductCategory'
|
||
profile_id:
|
||
description: The ID of the shipping profile that the product belongs to. The shipping profile has a set of defined shipping options that can be used to fulfill the product.
|
||
type: string
|
||
example: sp_01G1G5V239ENSZ5MV4JAR737BM
|
||
profile:
|
||
description: The details of the shipping profile that the product belongs to. The shipping profile has a set of defined shipping options that can be used to fulfill the product.
|
||
x-expandable: profile
|
||
nullable: true
|
||
$ref: '#/components/schemas/ShippingProfile'
|
||
profiles:
|
||
description: Available if the relation `profiles` is expanded.
|
||
nullable: true
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ShippingProfile'
|
||
weight:
|
||
description: The weight of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
length:
|
||
description: The length of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
height:
|
||
description: The height of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
width:
|
||
description: The width of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
hs_code:
|
||
description: The Harmonized System code of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
origin_country:
|
||
description: The country in which the Product Variant was produced. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
mid_code:
|
||
description: The Manufacturers Identification code that identifies the manufacturer of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
material:
|
||
description: The material and composition that the Product Variant is made of, May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
collection_id:
|
||
description: The ID of the product collection that the product belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: pcol_01F0YESBFAZ0DV6V831JXWH0BG
|
||
collection:
|
||
description: The details of the product collection that the product belongs to.
|
||
x-expandable: collection
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductCollection'
|
||
type_id:
|
||
description: The ID of the product type that the product belongs to.
|
||
nullable: true
|
||
type: string
|
||
example: ptyp_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
type:
|
||
description: The details of the product type that the product belongs to.
|
||
x-expandable: type
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductType'
|
||
tags:
|
||
description: The details of the product tags used in this product.
|
||
type: array
|
||
x-expandable: type
|
||
items:
|
||
$ref: '#/components/schemas/ProductTag'
|
||
discountable:
|
||
description: Whether the Product can be discounted. Discounts will not apply to Line Items of this Product when this flag is set to `false`.
|
||
type: boolean
|
||
default: true
|
||
external_id:
|
||
description: The external ID of the product
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
sales_channels:
|
||
description: The details of the sales channels this product is available in.
|
||
type: array
|
||
x-expandable: sales_channels
|
||
items:
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductCategory:
|
||
title: Product Category
|
||
description: A product category can be used to categorize products into a hierarchy of categories.
|
||
x-resourceId: ProductCategory
|
||
x-featureFlag: product_categories
|
||
type: object
|
||
required:
|
||
- category_children
|
||
- created_at
|
||
- handle
|
||
- id
|
||
- is_active
|
||
- is_internal
|
||
- metadata
|
||
- mpath
|
||
- name
|
||
- parent_category_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The product category's ID
|
||
type: string
|
||
example: pcat_01G2SG30J8C85S4A5CHM2S1NS2
|
||
name:
|
||
description: The product category's name
|
||
type: string
|
||
example: Regular Fit
|
||
description:
|
||
description: The product category's description.
|
||
type: string
|
||
default: ''
|
||
handle:
|
||
description: A unique string that identifies the Product Category - can for example be used in slug structures.
|
||
type: string
|
||
example: regular-fit
|
||
mpath:
|
||
description: A string for Materialized Paths - used for finding ancestors and descendents
|
||
nullable: true
|
||
type: string
|
||
example: pcat_id1.pcat_id2.pcat_id3
|
||
is_internal:
|
||
type: boolean
|
||
description: A flag to make product category an internal category for admins
|
||
default: false
|
||
is_active:
|
||
type: boolean
|
||
description: A flag to make product category visible/hidden in the store front
|
||
default: false
|
||
rank:
|
||
type: integer
|
||
description: An integer that depicts the rank of category in a tree node
|
||
default: 0
|
||
category_children:
|
||
description: The details of the category's children.
|
||
type: array
|
||
x-expandable: category_children
|
||
items:
|
||
type: object
|
||
parent_category_id:
|
||
description: The ID of the parent category.
|
||
nullable: true
|
||
type: string
|
||
default: null
|
||
parent_category:
|
||
description: The details of the parent of this category.
|
||
x-expandable: parent_category
|
||
nullable: true
|
||
type: object
|
||
products:
|
||
description: The details of the products that belong to this category.
|
||
type: array
|
||
x-expandable: products
|
||
items:
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductCollection:
|
||
title: Product Collection
|
||
description: A Product Collection allows grouping together products for promotional purposes. For example, an admin can create a Summer collection, add products to it, and showcase it on the storefront.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- handle
|
||
- id
|
||
- metadata
|
||
- title
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The product collection's ID
|
||
type: string
|
||
example: pcol_01F0YESBFAZ0DV6V831JXWH0BG
|
||
title:
|
||
description: The title that the Product Collection is identified by.
|
||
type: string
|
||
example: Summer Collection
|
||
handle:
|
||
description: A unique string that identifies the Product Collection - can for example be used in slug structures.
|
||
nullable: true
|
||
type: string
|
||
example: summer-collection
|
||
products:
|
||
description: The details of the products that belong to this product collection.
|
||
type: array
|
||
x-expandable: products
|
||
items:
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductOption:
|
||
title: Product Option
|
||
description: A Product Option defines properties that may vary between different variants of a Product. Common Product Options are "Size" and "Color". Admins are free to create any product options.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- product_id
|
||
- title
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The product option's ID
|
||
type: string
|
||
example: opt_01F0YESHQBZVKCEXJ24BS6PCX3
|
||
title:
|
||
description: The title that the Product Option is defined by (e.g. `Size`).
|
||
type: string
|
||
example: Size
|
||
values:
|
||
description: The details of the values of the product option.
|
||
type: array
|
||
x-expandable: values
|
||
items:
|
||
$ref: '#/components/schemas/ProductOptionValue'
|
||
product_id:
|
||
description: The ID of the product that this product option belongs to.
|
||
type: string
|
||
example: prod_01G1G5V2MBA328390B5AXJ610F
|
||
product:
|
||
description: The details of the product that this product option belongs to.
|
||
x-expandable: product
|
||
nullable: true
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductOptionValue:
|
||
title: Product Option Value
|
||
description: An option value is one of the possible values of a Product Option. Product Variants specify a unique combination of product option values.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- option_id
|
||
- updated_at
|
||
- value
|
||
- variant_id
|
||
properties:
|
||
id:
|
||
description: The product option value's ID
|
||
type: string
|
||
example: optval_01F0YESHR7S6ECD03RF6W12DSJ
|
||
value:
|
||
description: The value that the Product Variant has defined for the specific Product Option (e.g. if the Product Option is "Size" this value could be `Small`, `Medium` or `Large`).
|
||
type: string
|
||
example: large
|
||
option_id:
|
||
description: The ID of the Product Option that the Product Option Value belongs to.
|
||
type: string
|
||
example: opt_01F0YESHQBZVKCEXJ24BS6PCX3
|
||
option:
|
||
description: The details of the product option that the Product Option Value belongs to.
|
||
x-expandable: option
|
||
nullable: true
|
||
type: object
|
||
variant_id:
|
||
description: The ID of the product variant that uses this product option value.
|
||
type: string
|
||
example: variant_01G1G5V2MRX2V3PVSR2WXYPFB6
|
||
variant:
|
||
description: The details of the product variant that uses this product option value.
|
||
x-expandable: variant
|
||
nullable: true
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductTag:
|
||
title: Product Tag
|
||
description: A Product Tag can be added to Products for easy filtering and grouping.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- updated_at
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The product tag's ID
|
||
type: string
|
||
example: ptag_01G8K2MTMG9168F2B70S1TAVK3
|
||
value:
|
||
description: The value that the Product Tag represents
|
||
type: string
|
||
example: Pants
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductTaxRate:
|
||
title: Product Tax Rate
|
||
description: This represents the association between a tax rate and a product to indicate that the product is taxed in a way different than the default.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- metadata
|
||
- product_id
|
||
- rate_id
|
||
- updated_at
|
||
properties:
|
||
product_id:
|
||
description: The ID of the Product
|
||
type: string
|
||
example: prod_01G1G5V2MBA328390B5AXJ610F
|
||
product:
|
||
description: The details of the product.
|
||
x-expandable: product
|
||
nullable: true
|
||
$ref: '#/components/schemas/Product'
|
||
rate_id:
|
||
description: The ID of the Tax Rate
|
||
type: string
|
||
example: txr_01G8XDBAWKBHHJRKH0AV02KXBR
|
||
tax_rate:
|
||
description: The details of the tax rate.
|
||
x-expandable: tax_rate
|
||
nullable: true
|
||
$ref: '#/components/schemas/TaxRate'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductType:
|
||
title: Product Type
|
||
description: A Product Type can be added to Products for filtering and reporting purposes.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- updated_at
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The product type's ID
|
||
type: string
|
||
example: ptyp_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
value:
|
||
description: The value that the Product Type represents.
|
||
type: string
|
||
example: Clothing
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductTypeTaxRate:
|
||
title: Product Type Tax Rate
|
||
description: This represents the association between a tax rate and a product type to indicate that the product type is taxed in a different way than the default.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- metadata
|
||
- product_type_id
|
||
- rate_id
|
||
- updated_at
|
||
properties:
|
||
product_type_id:
|
||
description: The ID of the Product type
|
||
type: string
|
||
example: ptyp_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
product_type:
|
||
description: The details of the product type.
|
||
x-expandable: product_type
|
||
nullable: true
|
||
$ref: '#/components/schemas/ProductType'
|
||
rate_id:
|
||
description: The id of the Tax Rate
|
||
type: string
|
||
example: txr_01G8XDBAWKBHHJRKH0AV02KXBR
|
||
tax_rate:
|
||
description: The details of the tax rate.
|
||
x-expandable: tax_rate
|
||
nullable: true
|
||
$ref: '#/components/schemas/TaxRate'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ProductVariant:
|
||
title: Product Variant
|
||
description: A Product Variant represents a Product with a specific set of Product Option configurations. The maximum number of Product Variants that a Product can have is given by the number of available Product Option combinations. A product must at least have one product variant.
|
||
type: object
|
||
required:
|
||
- allow_backorder
|
||
- barcode
|
||
- created_at
|
||
- deleted_at
|
||
- ean
|
||
- height
|
||
- hs_code
|
||
- id
|
||
- inventory_quantity
|
||
- length
|
||
- manage_inventory
|
||
- material
|
||
- metadata
|
||
- mid_code
|
||
- origin_country
|
||
- product_id
|
||
- sku
|
||
- title
|
||
- upc
|
||
- updated_at
|
||
- weight
|
||
- width
|
||
properties:
|
||
id:
|
||
description: The product variant's ID
|
||
type: string
|
||
example: variant_01G1G5V2MRX2V3PVSR2WXYPFB6
|
||
title:
|
||
description: A title that can be displayed for easy identification of the Product Variant.
|
||
type: string
|
||
example: Small
|
||
product_id:
|
||
description: The ID of the product that the product variant belongs to.
|
||
type: string
|
||
example: prod_01G1G5V2MBA328390B5AXJ610F
|
||
product:
|
||
description: The details of the product that the product variant belongs to.
|
||
x-expandable: product
|
||
nullable: true
|
||
type: object
|
||
prices:
|
||
description: The details of the prices of the Product Variant, each represented as a Money Amount. Each Money Amount represents a price in a given currency or a specific Region.
|
||
type: array
|
||
x-expandable: prices
|
||
items:
|
||
$ref: '#/components/schemas/MoneyAmount'
|
||
sku:
|
||
description: The unique stock keeping unit used to identify the Product Variant. This will usually be a unique identifer for the item that is to be shipped, and can be referenced across multiple systems.
|
||
nullable: true
|
||
type: string
|
||
example: shirt-123
|
||
barcode:
|
||
description: A generic field for a GTIN number that can be used to identify the Product Variant.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
ean:
|
||
description: An EAN barcode number that can be used to identify the Product Variant.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
upc:
|
||
description: A UPC barcode number that can be used to identify the Product Variant.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
variant_rank:
|
||
description: The ranking of this variant
|
||
nullable: true
|
||
type: number
|
||
default: 0
|
||
inventory_quantity:
|
||
description: The current quantity of the item that is stocked.
|
||
type: integer
|
||
example: 100
|
||
allow_backorder:
|
||
description: Whether the Product Variant should be purchasable when `inventory_quantity` is 0.
|
||
type: boolean
|
||
default: false
|
||
manage_inventory:
|
||
description: Whether Medusa should manage inventory for the Product Variant.
|
||
type: boolean
|
||
default: true
|
||
hs_code:
|
||
description: The Harmonized System code of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
origin_country:
|
||
description: The country in which the Product Variant was produced. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
mid_code:
|
||
description: The Manufacturers Identification code that identifies the manufacturer of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
material:
|
||
description: The material and composition that the Product Variant is made of, May be used by Fulfillment Providers to pass customs information to shipping carriers.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
weight:
|
||
description: The weight of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
length:
|
||
description: The length of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
height:
|
||
description: The height of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
width:
|
||
description: The width of the Product Variant. May be used in shipping rate calculations.
|
||
nullable: true
|
||
type: number
|
||
example: null
|
||
options:
|
||
description: The details of the product options that this product variant defines values for.
|
||
type: array
|
||
x-expandable: options
|
||
items:
|
||
$ref: '#/components/schemas/ProductOptionValue'
|
||
inventory_items:
|
||
description: The details inventory items of the product variant.
|
||
type: array
|
||
x-expandable: inventory_items
|
||
items:
|
||
$ref: '#/components/schemas/ProductVariantInventoryItem'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
purchasable:
|
||
description: |
|
||
Only used with the inventory modules.
|
||
A boolean value indicating whether the Product Variant is purchasable.
|
||
A variant is purchasable if:
|
||
- inventory is not managed
|
||
- it has no inventory items
|
||
- it is in stock
|
||
- it is backorderable.
|
||
type: boolean
|
||
ProductVariantInventoryItem:
|
||
title: Product Variant Inventory Item
|
||
description: A Product Variant Inventory Item links variants with inventory items and denotes the required quantity of the variant.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- inventory_item_id
|
||
- required_quantity
|
||
- updated_at
|
||
- variant_id
|
||
properties:
|
||
id:
|
||
description: The product variant inventory item's ID
|
||
type: string
|
||
example: pvitem_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
inventory_item_id:
|
||
description: The id of the inventory item
|
||
type: string
|
||
variant_id:
|
||
description: The id of the variant.
|
||
type: string
|
||
variant:
|
||
description: The details of the product variant.
|
||
x-expandable: variant
|
||
nullable: true
|
||
type: object
|
||
required_quantity:
|
||
description: The quantity of an inventory item required for the variant.
|
||
type: integer
|
||
default: 1
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
PublishableApiKey:
|
||
title: Publishable API key
|
||
description: A Publishable API key defines scopes that resources are available in. Then, it can be used in request to infer the resources without having to directly pass them. For example, a publishable API key can be associated with one or more sales channels. Then, when the publishable API key is passed in the header of a request, it is inferred what sales channel is being used without having to pass the sales channel as a query or body parameter of the request. Publishable API keys can only be used with sales channels, at the moment.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- created_by
|
||
- id
|
||
- revoked_by
|
||
- revoked_at
|
||
- title
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The key's ID
|
||
type: string
|
||
example: pk_01G1G5V27GYX4QXNARRQCW1N8T
|
||
created_by:
|
||
description: The unique identifier of the user that created the key.
|
||
nullable: true
|
||
type: string
|
||
example: usr_01G1G5V26F5TB3GPAPNJ8X1S3V
|
||
revoked_by:
|
||
description: The unique identifier of the user that revoked the key.
|
||
nullable: true
|
||
type: string
|
||
example: usr_01G1G5V26F5TB3GPAPNJ8X1S3V
|
||
revoked_at:
|
||
description: The date with timezone at which the key was revoked.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
title:
|
||
description: The key's title.
|
||
type: string
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
PublishableApiKeySalesChannel:
|
||
title: Publishable API Key Sales Channel
|
||
description: This represents the association between the Publishable API keys and Sales Channels
|
||
type: object
|
||
required:
|
||
- publishable_key_id
|
||
- sales_channel_id
|
||
- created_at
|
||
- updated_at
|
||
- deleted_at
|
||
properties:
|
||
id:
|
||
description: The relation's ID
|
||
type: string
|
||
example: pksc_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
sales_channel_id:
|
||
description: The sales channel's ID
|
||
type: string
|
||
example: sc_01G1G5V21KADXNGH29BJMAJ4B4
|
||
publishable_key_id:
|
||
description: The publishable API key's ID
|
||
type: string
|
||
example: pak_01G1G5V21KADXNGH29BJMAJ4B4
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
Refund:
|
||
title: Refund
|
||
description: A refund represents an amount of money transfered back to the customer for a given reason. Refunds may occur in relation to Returns, Swaps and Claims, but can also be initiated by an admin for an order.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- created_at
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- note
|
||
- order_id
|
||
- payment_id
|
||
- reason
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The refund's ID
|
||
type: string
|
||
example: ref_01G1G5V27GYX4QXNARRQCW1N8T
|
||
order_id:
|
||
description: The ID of the order this refund was created for.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order this refund was created for.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
payment_id:
|
||
description: The payment's ID, if available.
|
||
nullable: true
|
||
type: string
|
||
example: pay_01G8ZCC5W42ZNY842124G7P5R9
|
||
payment:
|
||
description: The details of the payment associated with the refund.
|
||
x-expandable: payment
|
||
nullable: true
|
||
type: object
|
||
amount:
|
||
description: The amount that has be refunded to the Customer.
|
||
type: integer
|
||
example: 1000
|
||
note:
|
||
description: An optional note explaining why the amount was refunded.
|
||
nullable: true
|
||
type: string
|
||
example: I didn't like it
|
||
reason:
|
||
description: The reason given for the Refund, will automatically be set when processed as part of a Swap, Claim or Return.
|
||
type: string
|
||
enum:
|
||
- discount
|
||
- return
|
||
- swap
|
||
- claim
|
||
- other
|
||
example: return
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of the refund in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
Region:
|
||
title: Region
|
||
description: A region holds settings specific to a geographical location, including the currency, tax rates, and fulfillment and payment providers. A Region can consist of multiple countries to accomodate common shopping settings across countries.
|
||
type: object
|
||
required:
|
||
- automatic_taxes
|
||
- created_at
|
||
- currency_code
|
||
- deleted_at
|
||
- gift_cards_taxable
|
||
- id
|
||
- metadata
|
||
- name
|
||
- tax_code
|
||
- tax_provider_id
|
||
- tax_rate
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The region's ID
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
name:
|
||
description: The name of the region as displayed to the customer. If the Region only has one country it is recommended to write the country name.
|
||
type: string
|
||
example: EU
|
||
currency_code:
|
||
description: The three character currency code used in the region.
|
||
type: string
|
||
example: usd
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
currency:
|
||
description: The details of the currency used in the region.
|
||
x-expandable: currency
|
||
nullable: true
|
||
$ref: '#/components/schemas/Currency'
|
||
tax_rate:
|
||
description: The tax rate that should be charged on purchases in the Region.
|
||
type: number
|
||
example: 0
|
||
tax_rates:
|
||
description: The details of the tax rates used in the region, aside from the default rate.
|
||
type: array
|
||
x-expandable: tax_rates
|
||
items:
|
||
$ref: '#/components/schemas/TaxRate'
|
||
tax_code:
|
||
description: The tax code used on purchases in the Region. This may be used by other systems for accounting purposes.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
gift_cards_taxable:
|
||
description: Whether the gift cards are taxable or not in this region.
|
||
type: boolean
|
||
default: true
|
||
automatic_taxes:
|
||
description: Whether taxes should be automated in this region.
|
||
type: boolean
|
||
default: true
|
||
countries:
|
||
description: The details of the countries included in this region.
|
||
type: array
|
||
x-expandable: countries
|
||
items:
|
||
$ref: '#/components/schemas/Country'
|
||
tax_provider_id:
|
||
description: The ID of the tax provider used in this region
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
tax_provider:
|
||
description: The details of the tax provider used in the region.
|
||
x-expandable: tax_provider
|
||
nullable: true
|
||
$ref: '#/components/schemas/TaxProvider'
|
||
payment_providers:
|
||
description: The details of the payment providers that can be used to process payments in the region.
|
||
type: array
|
||
x-expandable: payment_providers
|
||
items:
|
||
$ref: '#/components/schemas/PaymentProvider'
|
||
fulfillment_providers:
|
||
description: The details of the fulfillment providers that can be used to fulfill items of orders and similar resources in the region.
|
||
type: array
|
||
x-expandable: fulfillment_providers
|
||
items:
|
||
$ref: '#/components/schemas/FulfillmentProvider'
|
||
includes_tax:
|
||
description: Whether the prices for the region include tax
|
||
type: boolean
|
||
x-featureFlag: tax_inclusive_pricing
|
||
default: false
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ReservationItemDTO:
|
||
title: Reservation item
|
||
description: Represents a reservation of an inventory item at a stock location
|
||
type: object
|
||
required:
|
||
- id
|
||
- location_id
|
||
- inventory_item_id
|
||
- quantity
|
||
properties:
|
||
id:
|
||
description: The id of the reservation item
|
||
type: string
|
||
location_id:
|
||
description: The id of the location of the reservation
|
||
type: string
|
||
inventory_item_id:
|
||
description: The id of the inventory item the reservation relates to
|
||
type: string
|
||
description:
|
||
description: Description of the reservation item
|
||
type: string
|
||
created_by:
|
||
description: UserId of user who created the reservation item
|
||
type: string
|
||
quantity:
|
||
description: The id of the reservation item
|
||
type: number
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
created_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was created.
|
||
format: date-time
|
||
updated_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was updated.
|
||
format: date-time
|
||
deleted_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was deleted.
|
||
format: date-time
|
||
ResponseInventoryItem:
|
||
allOf:
|
||
- $ref: '#/components/schemas/InventoryItemDTO'
|
||
- type: object
|
||
properties:
|
||
location_levels:
|
||
type: array
|
||
description: The inventory's location levels.
|
||
items:
|
||
allOf:
|
||
- $ref: '#/components/schemas/InventoryItemDTO'
|
||
- type: object
|
||
required:
|
||
- available_quantity
|
||
properties:
|
||
available_quantity:
|
||
description: The available quantity in the inventory location.
|
||
type: number
|
||
Return:
|
||
title: Return
|
||
description: A Return holds information about Line Items that a Customer wishes to send back, along with how the items will be returned. Returns can also be used as part of a Swap or a Claim.
|
||
type: object
|
||
required:
|
||
- claim_order_id
|
||
- created_at
|
||
- id
|
||
- idempotency_key
|
||
- location_id
|
||
- metadata
|
||
- no_notification
|
||
- order_id
|
||
- received_at
|
||
- refund_amount
|
||
- shipping_data
|
||
- status
|
||
- swap_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The return's ID
|
||
type: string
|
||
example: ret_01F0YET7XPCMF8RZ0Y151NZV2V
|
||
status:
|
||
description: Status of the Return.
|
||
type: string
|
||
enum:
|
||
- requested
|
||
- received
|
||
- requires_action
|
||
- canceled
|
||
default: requested
|
||
items:
|
||
description: The details of the items that the customer is returning.
|
||
type: array
|
||
x-expandable: items
|
||
items:
|
||
$ref: '#/components/schemas/ReturnItem'
|
||
swap_id:
|
||
description: The ID of the swap that the return may belong to.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
swap:
|
||
description: The details of the swap that the return may belong to.
|
||
x-expandable: swap
|
||
nullable: true
|
||
type: object
|
||
claim_order_id:
|
||
description: The ID of the claim that the return may belong to.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
claim_order:
|
||
description: The details of the claim that the return may belong to.
|
||
x-expandable: claim_order
|
||
nullable: true
|
||
type: object
|
||
order_id:
|
||
description: The ID of the order that the return was created for.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the return was created for.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
shipping_method:
|
||
description: The details of the Shipping Method that will be used to send the Return back. Can be null if the Customer will handle the return shipment themselves.
|
||
x-expandable: shipping_method
|
||
nullable: true
|
||
$ref: '#/components/schemas/ShippingMethod'
|
||
shipping_data:
|
||
description: Data about the return shipment as provided by the Fulfilment Provider that handles the return shipment.
|
||
nullable: true
|
||
type: object
|
||
example: {}
|
||
location_id:
|
||
description: The ID of the stock location the return will be added back.
|
||
nullable: true
|
||
type: string
|
||
example: sloc_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
refund_amount:
|
||
description: The amount that should be refunded as a result of the return.
|
||
type: integer
|
||
example: 1000
|
||
no_notification:
|
||
description: When set to true, no notification will be sent related to this return.
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of the return in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
received_at:
|
||
description: The date with timezone at which the return was received.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ReturnItem:
|
||
title: Return Item
|
||
description: A return item represents a line item in an order that is to be returned. It includes details related to the return and the reason behind it.
|
||
type: object
|
||
required:
|
||
- is_requested
|
||
- item_id
|
||
- metadata
|
||
- note
|
||
- quantity
|
||
- reason_id
|
||
- received_quantity
|
||
- requested_quantity
|
||
- return_id
|
||
properties:
|
||
return_id:
|
||
description: The ID of the Return that the Return Item belongs to.
|
||
type: string
|
||
example: ret_01F0YET7XPCMF8RZ0Y151NZV2V
|
||
item_id:
|
||
description: The ID of the Line Item that the Return Item references.
|
||
type: string
|
||
example: item_01G8ZC9GWT6B2GP5FSXRXNFNGN
|
||
return_order:
|
||
description: Details of the Return that the Return Item belongs to.
|
||
x-expandable: return_order
|
||
nullable: true
|
||
type: object
|
||
item:
|
||
description: The details of the line item in the original order to be returned.
|
||
x-expandable: item
|
||
nullable: true
|
||
$ref: '#/components/schemas/LineItem'
|
||
quantity:
|
||
description: The quantity of the Line Item to be returned.
|
||
type: integer
|
||
example: 1
|
||
is_requested:
|
||
description: Whether the Return Item was requested initially or received unexpectedly in the warehouse.
|
||
type: boolean
|
||
default: true
|
||
requested_quantity:
|
||
description: The quantity that was originally requested to be returned.
|
||
nullable: true
|
||
type: integer
|
||
example: 1
|
||
received_quantity:
|
||
description: The quantity that was received in the warehouse.
|
||
nullable: true
|
||
type: integer
|
||
example: 1
|
||
reason_id:
|
||
description: The ID of the reason for returning the item.
|
||
nullable: true
|
||
type: string
|
||
example: rr_01G8X82GCCV2KSQHDBHSSAH5TQ
|
||
reason:
|
||
description: The details of the reason for returning the item.
|
||
x-expandable: reason
|
||
nullable: true
|
||
$ref: '#/components/schemas/ReturnReason'
|
||
note:
|
||
description: An optional note with additional details about the Return.
|
||
nullable: true
|
||
type: string
|
||
example: I didn't like it.
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ReturnReason:
|
||
title: Return Reason
|
||
description: A Return Reason is a value defined by an admin. It can be used on Return Items in order to indicate why a Line Item was returned.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- description
|
||
- id
|
||
- label
|
||
- metadata
|
||
- parent_return_reason_id
|
||
- updated_at
|
||
- value
|
||
properties:
|
||
id:
|
||
description: The return reason's ID
|
||
type: string
|
||
example: rr_01G8X82GCCV2KSQHDBHSSAH5TQ
|
||
value:
|
||
description: The value to identify the reason by.
|
||
type: string
|
||
example: damaged
|
||
label:
|
||
description: A text that can be displayed to the Customer as a reason.
|
||
type: string
|
||
example: Damaged goods
|
||
description:
|
||
description: A description of the Reason.
|
||
nullable: true
|
||
type: string
|
||
example: Items that are damaged
|
||
parent_return_reason_id:
|
||
description: The ID of the parent reason.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
parent_return_reason:
|
||
description: The details of the parent reason.
|
||
x-expandable: parent_return_reason
|
||
nullable: true
|
||
type: object
|
||
return_reason_children:
|
||
description: The details of the child reasons.
|
||
x-expandable: return_reason_children
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
SalesChannel:
|
||
title: Sales Channel
|
||
description: A Sales Channel is a method a business offers its products for purchase for the customers. For example, a Webshop can be a sales channel, and a mobile app can be another.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- description
|
||
- id
|
||
- is_disabled
|
||
- name
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The sales channel's ID
|
||
type: string
|
||
example: sc_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
name:
|
||
description: The name of the sales channel.
|
||
type: string
|
||
example: Market
|
||
description:
|
||
description: The description of the sales channel.
|
||
nullable: true
|
||
type: string
|
||
example: Multi-vendor market
|
||
is_disabled:
|
||
description: Specify if the sales channel is enabled or disabled.
|
||
type: boolean
|
||
default: false
|
||
locations:
|
||
description: The details of the stock locations related to the sales channel.
|
||
type: array
|
||
x-expandable: locations
|
||
items:
|
||
$ref: '#/components/schemas/SalesChannelLocation'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
carts:
|
||
description: The associated carts.
|
||
type: array
|
||
nullable: true
|
||
x-expandable: carts
|
||
x-featureFlag: medusa_v2
|
||
items:
|
||
type: object
|
||
orders:
|
||
description: The associated orders.
|
||
type: array
|
||
nullable: true
|
||
x-expandable: orders
|
||
x-featureFlag: medusa_v2
|
||
items:
|
||
type: object
|
||
publishableKeys:
|
||
description: The associated publishable API keys.
|
||
type: array
|
||
nullable: true
|
||
x-expandable: publishableKeys
|
||
items:
|
||
type: object
|
||
SalesChannelLocation:
|
||
title: Sales Channel Stock Location
|
||
description: This represents the association between a sales channel and a stock locations.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- location_id
|
||
- sales_channel_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The Sales Channel Stock Location's ID
|
||
type: string
|
||
example: scloc_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
sales_channel_id:
|
||
description: The ID of the Sales Channel
|
||
type: string
|
||
example: sc_01G8X9A7ESKAJXG2H0E6F1MW7A
|
||
location_id:
|
||
description: The ID of the Location Stock.
|
||
type: string
|
||
sales_channel:
|
||
description: The details of the sales channel the location is associated with.
|
||
x-expandable: sales_channel
|
||
nullable: true
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
ShippingMethod:
|
||
title: Shipping Method
|
||
description: A Shipping Method represents a way in which an Order or Return can be shipped. Shipping Methods are created from a Shipping Option, but may contain additional details that can be necessary for the Fulfillment Provider to handle the shipment. If the shipping method is created for a return, it may be associated with a claim or a swap that the return is part of.
|
||
type: object
|
||
required:
|
||
- cart_id
|
||
- claim_order_id
|
||
- data
|
||
- id
|
||
- order_id
|
||
- price
|
||
- return_id
|
||
- shipping_option_id
|
||
- swap_id
|
||
properties:
|
||
id:
|
||
description: The shipping method's ID
|
||
type: string
|
||
example: sm_01F0YET7DR2E7CYVSDHM593QG2
|
||
shipping_option_id:
|
||
description: The ID of the Shipping Option that the Shipping Method is built from.
|
||
type: string
|
||
example: so_01G1G5V27GYX4QXNARRQCW1N8T
|
||
order_id:
|
||
description: The ID of the order that the shipping method is used in.
|
||
nullable: true
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the shipping method is used in.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
claim_order_id:
|
||
description: The ID of the claim that the shipping method is used in.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
claim_order:
|
||
description: The details of the claim that the shipping method is used in.
|
||
x-expandable: claim_order
|
||
nullable: true
|
||
type: object
|
||
cart_id:
|
||
description: The ID of the cart that the shipping method is used in.
|
||
nullable: true
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
cart:
|
||
description: The details of the cart that the shipping method is used in.
|
||
x-expandable: cart
|
||
nullable: true
|
||
type: object
|
||
swap_id:
|
||
description: The ID of the swap that the shipping method is used in.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
swap:
|
||
description: The details of the swap that the shipping method is used in.
|
||
x-expandable: swap
|
||
nullable: true
|
||
type: object
|
||
return_id:
|
||
description: The ID of the return that the shipping method is used in.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
return_order:
|
||
description: The details of the return that the shipping method is used in.
|
||
x-expandable: return_order
|
||
nullable: true
|
||
type: object
|
||
shipping_option:
|
||
description: The details of the shipping option the method was created from.
|
||
x-expandable: shipping_option
|
||
nullable: true
|
||
$ref: '#/components/schemas/ShippingOption'
|
||
tax_lines:
|
||
description: The details of the tax lines applied on the shipping method.
|
||
type: array
|
||
x-expandable: tax_lines
|
||
items:
|
||
$ref: '#/components/schemas/ShippingMethodTaxLine'
|
||
price:
|
||
description: The amount to charge for the Shipping Method. The currency of the price is defined by the Region that the Order that the Shipping Method belongs to is a part of.
|
||
type: integer
|
||
example: 200
|
||
data:
|
||
description: Additional data that the Fulfillment Provider needs to fulfill the shipment. This is used in combination with the Shipping Options data, and may contain information such as a drop point id.
|
||
type: object
|
||
example: {}
|
||
includes_tax:
|
||
description: Whether the shipping method price include tax
|
||
type: boolean
|
||
x-featureFlag: tax_inclusive_pricing
|
||
default: false
|
||
subtotal:
|
||
description: The subtotal of the shipping
|
||
type: integer
|
||
example: 8000
|
||
total:
|
||
description: The total amount of the shipping
|
||
type: integer
|
||
example: 8200
|
||
tax_total:
|
||
description: The total of tax
|
||
type: integer
|
||
example: 0
|
||
ShippingMethodTaxLine:
|
||
title: Shipping Method Tax Line
|
||
description: A Shipping Method Tax Line represents the taxes applied on a shipping method in a cart.
|
||
type: object
|
||
required:
|
||
- code
|
||
- created_at
|
||
- id
|
||
- shipping_method_id
|
||
- metadata
|
||
- name
|
||
- rate
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The line item tax line's ID
|
||
type: string
|
||
example: smtl_01G1G5V2DRX1SK6NQQ8VVX4HQ8
|
||
code:
|
||
description: A code to identify the tax type by
|
||
nullable: true
|
||
type: string
|
||
example: tax01
|
||
name:
|
||
description: A human friendly name for the tax
|
||
type: string
|
||
example: Tax Example
|
||
rate:
|
||
description: The numeric rate to charge tax by
|
||
type: number
|
||
example: 10
|
||
shipping_method_id:
|
||
description: The ID of the line item
|
||
type: string
|
||
example: sm_01F0YET7DR2E7CYVSDHM593QG2
|
||
shipping_method:
|
||
description: The details of the associated shipping method.
|
||
x-expandable: shipping_method
|
||
nullable: true
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ShippingOption:
|
||
title: Shipping Option
|
||
description: A Shipping Option represents a way in which an Order or Return can be shipped. Shipping Options have an associated Fulfillment Provider that will be used when the fulfillment of an Order is initiated. Shipping Options themselves cannot be added to Carts, but serve as a template for Shipping Methods. This distinction makes it possible to customize individual Shipping Methods with additional information.
|
||
type: object
|
||
required:
|
||
- admin_only
|
||
- amount
|
||
- created_at
|
||
- data
|
||
- deleted_at
|
||
- id
|
||
- is_return
|
||
- metadata
|
||
- name
|
||
- price_type
|
||
- profile_id
|
||
- provider_id
|
||
- region_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The shipping option's ID
|
||
type: string
|
||
example: so_01G1G5V27GYX4QXNARRQCW1N8T
|
||
name:
|
||
description: The name given to the Shipping Option - this may be displayed to the Customer.
|
||
type: string
|
||
example: PostFake Standard
|
||
region_id:
|
||
description: The ID of the region this shipping option can be used in.
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region this shipping option can be used in.
|
||
x-expandable: region
|
||
nullable: true
|
||
type: object
|
||
profile_id:
|
||
description: The ID of the Shipping Profile that the shipping option belongs to.
|
||
type: string
|
||
example: sp_01G1G5V239ENSZ5MV4JAR737BM
|
||
profile:
|
||
description: The details of the shipping profile that the shipping option belongs to.
|
||
x-expandable: profile
|
||
nullable: true
|
||
$ref: '#/components/schemas/ShippingProfile'
|
||
provider_id:
|
||
description: The ID of the fulfillment provider that will be used to later to process the shipping method created from this shipping option and its fulfillments.
|
||
type: string
|
||
example: manual
|
||
provider:
|
||
description: The details of the fulfillment provider that will be used to later to process the shipping method created from this shipping option and its fulfillments.
|
||
x-expandable: provider
|
||
nullable: true
|
||
$ref: '#/components/schemas/FulfillmentProvider'
|
||
price_type:
|
||
description: The type of pricing calculation that is used when creatin Shipping Methods from the Shipping Option. Can be `flat_rate` for fixed prices or `calculated` if the Fulfillment Provider can provide price calulations.
|
||
type: string
|
||
enum:
|
||
- flat_rate
|
||
- calculated
|
||
example: flat_rate
|
||
amount:
|
||
description: The amount to charge for shipping when the Shipping Option price type is `flat_rate`.
|
||
nullable: true
|
||
type: integer
|
||
example: 200
|
||
is_return:
|
||
description: Flag to indicate if the Shipping Option can be used for Return shipments.
|
||
type: boolean
|
||
default: false
|
||
admin_only:
|
||
description: Flag to indicate if the Shipping Option usage is restricted to admin users.
|
||
type: boolean
|
||
default: false
|
||
requirements:
|
||
description: The details of the requirements that must be satisfied for the Shipping Option to be available for usage in a Cart.
|
||
type: array
|
||
x-expandable: requirements
|
||
items:
|
||
$ref: '#/components/schemas/ShippingOptionRequirement'
|
||
data:
|
||
description: The data needed for the Fulfillment Provider to identify the Shipping Option.
|
||
type: object
|
||
example: {}
|
||
includes_tax:
|
||
description: Whether the shipping option price include tax
|
||
type: boolean
|
||
x-featureFlag: tax_inclusive_pricing
|
||
default: false
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ShippingOptionRequirement:
|
||
title: Shipping Option Requirement
|
||
description: A shipping option requirement defines conditions that a Cart must satisfy for the Shipping Option to be available for usage in the Cart.
|
||
type: object
|
||
required:
|
||
- amount
|
||
- deleted_at
|
||
- id
|
||
- shipping_option_id
|
||
- type
|
||
properties:
|
||
id:
|
||
description: The shipping option requirement's ID
|
||
type: string
|
||
example: sor_01G1G5V29AB4CTNDRFSRWSRKWD
|
||
shipping_option_id:
|
||
description: The ID of the shipping option that the requirements belong to.
|
||
type: string
|
||
example: so_01G1G5V27GYX4QXNARRQCW1N8T
|
||
shipping_option:
|
||
description: The details of the shipping option that the requirements belong to.
|
||
x-expandable: shipping_option
|
||
nullable: true
|
||
type: object
|
||
type:
|
||
description: The type of the requirement, this defines how the value will be compared to the Cart's total. `min_subtotal` requirements define the minimum subtotal that is needed for the Shipping Option to be available, while the `max_subtotal` defines the maximum subtotal that the Cart can have for the Shipping Option to be available.
|
||
type: string
|
||
enum:
|
||
- min_subtotal
|
||
- max_subtotal
|
||
example: min_subtotal
|
||
amount:
|
||
description: The amount to compare the Cart subtotal to.
|
||
type: integer
|
||
example: 100
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
ShippingProfile:
|
||
title: Shipping Profile
|
||
description: A Shipping Profile has a set of defined Shipping Options that can be used to fulfill a given set of Products. For example, gift cards are shipped differently than physical products, so a shipping profile with the type `gift_card` groups together the shipping options that can only be used for gift cards.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- id
|
||
- metadata
|
||
- name
|
||
- type
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The shipping profile's ID
|
||
type: string
|
||
example: sp_01G1G5V239ENSZ5MV4JAR737BM
|
||
name:
|
||
description: The name given to the Shipping profile - this may be displayed to the Customer.
|
||
type: string
|
||
example: Default Shipping Profile
|
||
type:
|
||
description: The type of the Shipping Profile, may be `default`, `gift_card` or `custom`.
|
||
type: string
|
||
enum:
|
||
- default
|
||
- gift_card
|
||
- custom
|
||
example: default
|
||
products:
|
||
description: The details of the products that the Shipping Profile defines Shipping Options for. Available if the relation `products` is expanded.
|
||
type: array
|
||
x-expandable: products
|
||
items:
|
||
type: object
|
||
shipping_options:
|
||
description: The details of the shipping options that can be used to create shipping methods for the Products in the Shipping Profile.
|
||
type: array
|
||
x-expandable: shipping_options
|
||
items:
|
||
type: object
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
ShippingTaxRate:
|
||
title: Shipping Tax Rate
|
||
description: This represents the tax rates applied on a shipping option.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- metadata
|
||
- rate_id
|
||
- shipping_option_id
|
||
- updated_at
|
||
properties:
|
||
shipping_option_id:
|
||
description: The ID of the shipping option.
|
||
type: string
|
||
example: so_01G1G5V27GYX4QXNARRQCW1N8T
|
||
shipping_option:
|
||
description: The details of the shipping option.
|
||
x-expandable: shipping_option
|
||
nullable: true
|
||
$ref: '#/components/schemas/ShippingOption'
|
||
rate_id:
|
||
description: The ID of the associated tax rate.
|
||
type: string
|
||
example: txr_01G8XDBAWKBHHJRKH0AV02KXBR
|
||
tax_rate:
|
||
description: The details of the associated tax rate.
|
||
x-expandable: tax_rate
|
||
nullable: true
|
||
$ref: '#/components/schemas/TaxRate'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
StagedJob:
|
||
title: Staged Job
|
||
description: A staged job resource
|
||
type: object
|
||
required:
|
||
- data
|
||
- event_name
|
||
- id
|
||
- options
|
||
properties:
|
||
id:
|
||
description: The staged job's ID
|
||
type: string
|
||
example: job_01F0YET7BZTARY9MKN1SJ7AAXF
|
||
event_name:
|
||
description: The name of the event
|
||
type: string
|
||
example: order.placed
|
||
data:
|
||
description: Data necessary for the job
|
||
type: object
|
||
example: {}
|
||
option:
|
||
description: The staged job's option
|
||
type: object
|
||
example: {}
|
||
StockLocationAddressDTO:
|
||
title: Stock Location Address
|
||
description: Represents a Stock Location Address
|
||
type: object
|
||
required:
|
||
- address_1
|
||
- country_code
|
||
- created_at
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The stock location address' ID
|
||
example: laddr_51G4ZW853Y6TFXWPG5ENJ81X42
|
||
address_1:
|
||
type: string
|
||
description: Stock location address
|
||
example: 35, Jhon Doe Ave
|
||
address_2:
|
||
type: string
|
||
description: Stock location address' complement
|
||
example: apartment 4432
|
||
company:
|
||
type: string
|
||
description: Stock location company' name
|
||
example: Medusa
|
||
city:
|
||
type: string
|
||
description: Stock location address' city
|
||
example: Mexico city
|
||
country_code:
|
||
type: string
|
||
description: Stock location address' country
|
||
example: MX
|
||
phone:
|
||
type: string
|
||
description: Stock location address' phone number
|
||
example: +1 555 61646
|
||
postal_code:
|
||
type: string
|
||
description: Stock location address' postal code
|
||
example: HD3-1G8
|
||
province:
|
||
type: string
|
||
description: Stock location address' province
|
||
example: Sinaloa
|
||
created_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was created.
|
||
format: date-time
|
||
updated_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was updated.
|
||
format: date-time
|
||
deleted_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was deleted.
|
||
format: date-time
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
StockLocationAddressInput:
|
||
title: Stock Location Address Input
|
||
description: Represents a Stock Location Address Input
|
||
type: object
|
||
required:
|
||
- address_1
|
||
- country_code
|
||
properties:
|
||
address_1:
|
||
type: string
|
||
description: Stock location address
|
||
example: 35, Jhon Doe Ave
|
||
address_2:
|
||
type: string
|
||
description: Stock location address' complement
|
||
example: apartment 4432
|
||
city:
|
||
type: string
|
||
description: Stock location address' city
|
||
example: Mexico city
|
||
country_code:
|
||
type: string
|
||
description: Stock location address' country
|
||
example: MX
|
||
phone:
|
||
type: string
|
||
description: Stock location address' phone number
|
||
example: +1 555 61646
|
||
postal_code:
|
||
type: string
|
||
description: Stock location address' postal code
|
||
example: HD3-1G8
|
||
province:
|
||
type: string
|
||
description: Stock location address' province
|
||
example: Sinaloa
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
StockLocationDTO:
|
||
title: Stock Location
|
||
description: Represents a Stock Location
|
||
type: object
|
||
required:
|
||
- id
|
||
- name
|
||
- address_id
|
||
- created_at
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The stock location's ID
|
||
example: sloc_51G4ZW853Y6TFXWPG5ENJ81X42
|
||
address_id:
|
||
type: string
|
||
description: Stock location address' ID
|
||
example: laddr_05B2ZE853Y6FTXWPW85NJ81A44
|
||
name:
|
||
type: string
|
||
description: The name of the stock location
|
||
example: Main Warehouse
|
||
address:
|
||
description: The Address of the Stock Location
|
||
allOf:
|
||
- $ref: '#/components/schemas/StockLocationAddressDTO'
|
||
- type: object
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
created_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was created.
|
||
format: date-time
|
||
updated_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was updated.
|
||
format: date-time
|
||
deleted_at:
|
||
type: string
|
||
description: The date with timezone at which the resource was deleted.
|
||
format: date-time
|
||
StockLocationExpandedDTO:
|
||
allOf:
|
||
- $ref: '#/components/schemas/StockLocationDTO'
|
||
- type: object
|
||
properties:
|
||
sales_channels:
|
||
description: The associated sales channels.
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
Store:
|
||
title: Store
|
||
description: A store holds the main settings of the commerce shop. By default, only one store is created and used within the Medusa backend. It holds settings related to the name of the store, available currencies, and more.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- default_currency_code
|
||
- default_location_id
|
||
- id
|
||
- invite_link_template
|
||
- metadata
|
||
- name
|
||
- payment_link_template
|
||
- swap_link_template
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The store's ID
|
||
type: string
|
||
example: store_01G1G5V21KADXNGH29BJMAJ4B4
|
||
name:
|
||
description: The name of the Store - this may be displayed to the Customer.
|
||
type: string
|
||
example: Medusa Store
|
||
default: Medusa Store
|
||
default_currency_code:
|
||
description: The three character currency code that is the default of the store.
|
||
type: string
|
||
example: usd
|
||
externalDocs:
|
||
url: https://en.wikipedia.org/wiki/ISO_4217#Active_codes
|
||
description: See a list of codes.
|
||
default_currency:
|
||
description: The details of the store's default currency.
|
||
x-expandable: default_currency
|
||
default: usd
|
||
nullable: true
|
||
$ref: '#/components/schemas/Currency'
|
||
currencies:
|
||
description: The details of the enabled currencies in the store.
|
||
type: array
|
||
x-expandable: currencies
|
||
items:
|
||
$ref: '#/components/schemas/Currency'
|
||
swap_link_template:
|
||
description: A template to generate Swap links from. Use {{cart_id}} to include the Swap's `cart_id` in the link.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
payment_link_template:
|
||
description: A template to generate Payment links from. Use {{cart_id}} to include the payment's `cart_id` in the link.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
invite_link_template:
|
||
description: A template to generate Invite links from
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
default_location_id:
|
||
description: The location ID the store is associated with.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
default_sales_channel_id:
|
||
description: The ID of the store's default sales channel.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
default_sales_channel:
|
||
description: The details of the store's default sales channel.
|
||
x-expandable: default_sales_channel
|
||
nullable: true
|
||
$ref: '#/components/schemas/SalesChannel'
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
Swap:
|
||
title: Swap
|
||
description: A swap can be created when a Customer wishes to exchange Products that they have purchased with different Products. It consists of a Return of previously purchased Products and a Fulfillment of new Products. It also includes information on any additional payment or refund required based on the difference between the exchanged products.
|
||
type: object
|
||
required:
|
||
- allow_backorder
|
||
- canceled_at
|
||
- cart_id
|
||
- confirmed_at
|
||
- created_at
|
||
- deleted_at
|
||
- difference_due
|
||
- fulfillment_status
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- no_notification
|
||
- order_id
|
||
- payment_status
|
||
- shipping_address_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The swap's ID
|
||
type: string
|
||
example: swap_01F0YET86Y9G92D3YDR9Y6V676
|
||
fulfillment_status:
|
||
description: The status of the Fulfillment of the Swap.
|
||
type: string
|
||
enum:
|
||
- not_fulfilled
|
||
- fulfilled
|
||
- shipped
|
||
- partially_shipped
|
||
- canceled
|
||
- requires_action
|
||
example: not_fulfilled
|
||
payment_status:
|
||
description: The status of the Payment of the Swap. The payment may either refer to the refund of an amount or the authorization of a new amount.
|
||
type: string
|
||
enum:
|
||
- not_paid
|
||
- awaiting
|
||
- captured
|
||
- confirmed
|
||
- canceled
|
||
- difference_refunded
|
||
- partially_refunded
|
||
- refunded
|
||
- requires_action
|
||
example: not_paid
|
||
order_id:
|
||
description: The ID of the order that the swap belongs to.
|
||
type: string
|
||
example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
|
||
order:
|
||
description: The details of the order that the swap belongs to.
|
||
x-expandable: order
|
||
nullable: true
|
||
type: object
|
||
additional_items:
|
||
description: The details of the new products to send to the customer, represented as line items.
|
||
type: array
|
||
x-expandable: additional_items
|
||
items:
|
||
$ref: '#/components/schemas/LineItem'
|
||
return_order:
|
||
description: The details of the return that belongs to the swap, which holds the details on the items being returned.
|
||
x-expandable: return_order
|
||
nullable: true
|
||
type: object
|
||
fulfillments:
|
||
description: The details of the fulfillments that are used to send the new items to the customer.
|
||
x-expandable: fulfillments
|
||
type: array
|
||
items:
|
||
type: object
|
||
payment:
|
||
description: The details of the additional payment authorized by the customer when `difference_due` is positive.
|
||
x-expandable: payment
|
||
nullable: true
|
||
type: object
|
||
difference_due:
|
||
description: The difference amount between the order’s original total and the new total imposed by the swap. If its value is negative, a refund must be issues to the customer. If it's positive, additional payment must be authorized by the customer. Otherwise, no payment processing is required.
|
||
nullable: true
|
||
type: integer
|
||
example: 0
|
||
shipping_address_id:
|
||
description: The Address to send the new Line Items to - in most cases this will be the same as the shipping address on the Order.
|
||
nullable: true
|
||
type: string
|
||
example: addr_01G8ZH853YPY9B94857DY91YGW
|
||
shipping_address:
|
||
description: The details of the shipping address that the new items should be sent to.
|
||
x-expandable: shipping_address
|
||
nullable: true
|
||
$ref: '#/components/schemas/Address'
|
||
shipping_methods:
|
||
description: The details of the shipping methods used to fulfill the additional items purchased.
|
||
type: array
|
||
x-expandable: shipping_methods
|
||
items:
|
||
$ref: '#/components/schemas/ShippingMethod'
|
||
cart_id:
|
||
description: The ID of the cart that the customer uses to complete the swap.
|
||
nullable: true
|
||
type: string
|
||
example: cart_01G8ZH853Y6TFXWPG5EYE81X63
|
||
cart:
|
||
description: The details of the cart that the customer uses to complete the swap.
|
||
x-expandable: cart
|
||
nullable: true
|
||
type: object
|
||
confirmed_at:
|
||
description: The date with timezone at which the Swap was confirmed by the Customer.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
canceled_at:
|
||
description: The date with timezone at which the Swap was canceled.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
no_notification:
|
||
description: If set to true, no notification will be sent related to this swap
|
||
nullable: true
|
||
type: boolean
|
||
example: false
|
||
allow_backorder:
|
||
description: If true, swaps can be completed with items out of stock
|
||
type: boolean
|
||
default: false
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of the swap in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
TaxLine:
|
||
title: Tax Line
|
||
description: A tax line represents the taxes amount applied to a line item.
|
||
type: object
|
||
required:
|
||
- code
|
||
- created_at
|
||
- id
|
||
- metadata
|
||
- name
|
||
- rate
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The tax line's ID
|
||
type: string
|
||
example: tl_01G1G5V2DRX1SK6NQQ8VVX4HQ8
|
||
code:
|
||
description: A code to identify the tax type by
|
||
nullable: true
|
||
type: string
|
||
example: tax01
|
||
name:
|
||
description: A human friendly name for the tax
|
||
type: string
|
||
example: Tax Example
|
||
rate:
|
||
description: The numeric rate to charge tax by
|
||
type: number
|
||
example: 10
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
TaxProvider:
|
||
title: Tax Provider
|
||
description: A tax provider represents a tax service installed in the Medusa backend, either through a plugin or backend customizations. It holds the tax service's installation status.
|
||
type: object
|
||
required:
|
||
- id
|
||
- is_installed
|
||
properties:
|
||
id:
|
||
description: The ID of the tax provider as given by the tax service.
|
||
type: string
|
||
example: manual
|
||
is_installed:
|
||
description: Whether the tax service is installed in the current version. If a tax service is no longer installed, the `is_installed` attribute is set to `false`.
|
||
type: boolean
|
||
default: true
|
||
TaxRate:
|
||
title: Tax Rate
|
||
description: A Tax Rate can be used to define a custom rate to charge on specified products, product types, and shipping options within a given region.
|
||
type: object
|
||
required:
|
||
- code
|
||
- created_at
|
||
- id
|
||
- metadata
|
||
- name
|
||
- rate
|
||
- region_id
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The tax rate's ID
|
||
type: string
|
||
example: txr_01G8XDBAWKBHHJRKH0AV02KXBR
|
||
rate:
|
||
description: The numeric rate to charge
|
||
nullable: true
|
||
type: number
|
||
example: 10
|
||
code:
|
||
description: A code to identify the tax type by
|
||
nullable: true
|
||
type: string
|
||
example: tax01
|
||
name:
|
||
description: A human friendly name for the tax
|
||
type: string
|
||
example: Tax Example
|
||
region_id:
|
||
description: The ID of the region that the rate belongs to.
|
||
type: string
|
||
example: reg_01G1G5V26T9H8Y0M4JNE3YGA4G
|
||
region:
|
||
description: The details of the region that the rate belongs to.
|
||
x-expandable: region
|
||
nullable: true
|
||
type: object
|
||
products:
|
||
description: The details of the products that belong to this tax rate.
|
||
type: array
|
||
x-expandable: products
|
||
items:
|
||
$ref: '#/components/schemas/Product'
|
||
product_types:
|
||
description: The details of the product types that belong to this tax rate.
|
||
type: array
|
||
x-expandable: product_types
|
||
items:
|
||
$ref: '#/components/schemas/ProductType'
|
||
shipping_options:
|
||
description: The details of the shipping options that belong to this tax rate.
|
||
type: array
|
||
x-expandable: shipping_options
|
||
items:
|
||
$ref: '#/components/schemas/ShippingOption'
|
||
product_count:
|
||
description: The count of products
|
||
type: integer
|
||
example: 10
|
||
product_type_count:
|
||
description: The count of product types
|
||
type: integer
|
||
example: 2
|
||
shipping_option_count:
|
||
description: The count of shipping options
|
||
type: integer
|
||
example: 1
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
TrackingLink:
|
||
title: Tracking Link
|
||
description: A tracking link holds information about tracking numbers for a Fulfillment. Tracking Links can optionally contain a URL that can be visited to see the status of the shipment. Typically, the tracking link is provided from the third-party service integrated through the used fulfillment provider.
|
||
type: object
|
||
required:
|
||
- created_at
|
||
- deleted_at
|
||
- fulfillment_id
|
||
- id
|
||
- idempotency_key
|
||
- metadata
|
||
- tracking_number
|
||
- updated_at
|
||
- url
|
||
properties:
|
||
id:
|
||
description: The tracking link's ID
|
||
type: string
|
||
example: tlink_01G8ZH853Y6TFXWPG5EYE81X63
|
||
url:
|
||
description: The URL at which the status of the shipment can be tracked.
|
||
nullable: true
|
||
type: string
|
||
format: uri
|
||
tracking_number:
|
||
description: The tracking number given by the shipping carrier.
|
||
type: string
|
||
format: RH370168054CN
|
||
fulfillment_id:
|
||
description: The ID of the fulfillment that the tracking link belongs to.
|
||
type: string
|
||
example: ful_01G8ZRTMQCA76TXNAT81KPJZRF
|
||
fulfillment:
|
||
description: The details of the fulfillment that the tracking link belongs to.
|
||
x-expandable: fulfillment
|
||
nullable: true
|
||
type: object
|
||
idempotency_key:
|
||
description: Randomly generated key used to continue the completion of a process in case of failure.
|
||
nullable: true
|
||
type: string
|
||
externalDocs:
|
||
url: https://docs.medusajs.com/development/idempotency-key/overview.md
|
||
description: Learn more how to use the idempotency key.
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
UpdateStockLocationInput:
|
||
title: Update Stock Location Input
|
||
description: Represents the Input to update a Stock Location
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: The stock location name
|
||
address_id:
|
||
type: string
|
||
description: The Stock location address ID
|
||
address:
|
||
description: Stock location address object
|
||
allOf:
|
||
- $ref: '#/components/schemas/StockLocationAddressInput'
|
||
- type: object
|
||
metadata:
|
||
type: object
|
||
description: An optional key-value map with additional details
|
||
example:
|
||
car: white
|
||
User:
|
||
title: User
|
||
description: A User is an administrator who can manage store settings and data.
|
||
type: object
|
||
required:
|
||
- api_token
|
||
- created_at
|
||
- deleted_at
|
||
- email
|
||
- first_name
|
||
- id
|
||
- last_name
|
||
- metadata
|
||
- role
|
||
- updated_at
|
||
properties:
|
||
id:
|
||
description: The user's ID
|
||
type: string
|
||
example: usr_01G1G5V26F5TB3GPAPNJ8X1S3V
|
||
role:
|
||
description: The user's role. These roles don't provide any different privileges.
|
||
type: string
|
||
enum:
|
||
- admin
|
||
- member
|
||
- developer
|
||
default: member
|
||
email:
|
||
description: The email of the User
|
||
type: string
|
||
format: email
|
||
first_name:
|
||
description: The first name of the User
|
||
nullable: true
|
||
type: string
|
||
example: Levi
|
||
last_name:
|
||
description: The last name of the User
|
||
nullable: true
|
||
type: string
|
||
example: Bogan
|
||
api_token:
|
||
description: An API token associated with the user.
|
||
nullable: true
|
||
type: string
|
||
example: null
|
||
created_at:
|
||
description: The date with timezone at which the resource was created.
|
||
type: string
|
||
format: date-time
|
||
updated_at:
|
||
description: The date with timezone at which the resource was updated.
|
||
type: string
|
||
format: date-time
|
||
deleted_at:
|
||
description: The date with timezone at which the resource was deleted.
|
||
nullable: true
|
||
type: string
|
||
format: date-time
|
||
metadata:
|
||
description: An optional key-value map with additional details
|
||
nullable: true
|
||
type: object
|
||
example:
|
||
car: white
|
||
externalDocs:
|
||
description: Learn about the metadata attribute, and how to delete and update it.
|
||
url: https://docs.medusajs.com/development/entities/overview#metadata-attribute
|
||
VariantInventory:
|
||
type: object
|
||
required:
|
||
- id
|
||
- inventory
|
||
- sales_channel_availability
|
||
properties:
|
||
id:
|
||
description: the ID of the variant
|
||
type: string
|
||
inventory:
|
||
description: The inventory details.
|
||
$ref: '#/components/schemas/ResponseInventoryItem'
|
||
sales_channel_availability:
|
||
type: array
|
||
description: Details about the variant's inventory availability in sales channels.
|
||
items:
|
||
type: object
|
||
required:
|
||
- channel_name
|
||
- channel_id
|
||
- available_quantity
|
||
properties:
|
||
channel_name:
|
||
description: Sales channel's name
|
||
type: string
|
||
channel_id:
|
||
description: Sales channel's ID
|
||
type: string
|
||
available_quantity:
|
||
description: Available quantity in the sales channel
|
||
type: number
|