POST
/
admin
/
promotions
import Medusa from "@medusajs/js-sdk"

export const sdk = new Medusa({
  baseUrl: import.meta.env.VITE_BACKEND_URL || "/",
  debug: import.meta.env.DEV,
  auth: {
    type: "session",
  },
})

sdk.admin.promotion.create({ 
  name: "My Promotion",
  description: "This is a test promotion",
  code: "PROMO123",
  starts_at: "2021-01-01",
  ends_at: "2021-01-01",
})
.then(({ promotion }) => {
  console.log(promotion)
})
{
"promotion": {
"application_method": {
"promotion": {},
"target_rules": [
{
"id": "<string>",
"description": "<string>",
"attribute": "customer_group_id",
"operator": "gt",
"values": [
"cusgroup_123"
]
}
],
"buy_rules": [
{
"id": "<string>",
"description": "<string>",
"attribute": "customer_group_id",
"operator": "gt",
"values": [
"cusgroup_123"
]
}
],
"id": "<string>",
"type": "fixed",
"target_type": "items",
"allocation": "each",
"value": 123,
"currency_code": "usd",
"max_quantity": 123,
"buy_rules_min_quantity": 123,
"apply_to_quantity": 123
},
"rules": [
{
"id": "<string>",
"description": "<string>",
"attribute": "customer_group_id",
"operator": "gt",
"values": [
"cusgroup_123"
]
}
],
"id": "<string>",
"code": "OFF50",
"type": "standard",
"is_automatic": true,
"campaign_id": "<string>",
"campaign": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"currency": "<string>",
"campaign_identifier": "<string>",
"starts_at": "<string>",
"ends_at": "<string>",
"budget": {
"id": "<string>",
"type": "spend",
"currency_code": "<string>",
"limit": 123,
"used": 123
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"status": "draft",
"is_tax_inclusive": true
}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

fields
string

Comma-separated fields that should be included in the returned data. if a field is prefixed with + it will be added to the default fields, using - will remove it from the default fields. without prefix it will replace the entire default fields.

Body

application/json

The promotion's details.

Response

200
application/json

OK

The promotion's details.