Skip to main content
POST
/
admin
/
promotions
JS SDK
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": { "id": "<string>", "created_at": "2023-11-07T05:31:56Z", "updated_at": "2023-11-07T05:31:56Z", "deleted_at": "2023-11-07T05:31:56Z", "application_method": { "id": "<string>", "promotion": {}, "target_rules": [ { "id": "<string>", "values": [ "cusgroup_123" ], "description": "<string>", "attribute": "customer_group_id", "operator": "gt" } ], "buy_rules": [ { "id": "<string>", "values": [ "cusgroup_123" ], "description": "<string>", "attribute": "customer_group_id", "operator": "gt" } ], "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>", "values": [ "cusgroup_123" ], "description": "<string>", "attribute": "customer_group_id", "operator": "gt" } ], "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, "attribute": "<string>" }, "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, "limit": 123, "used": 123 } }

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.

code
string
required

The promotion's code.

type
enum<string>
required

The promotion's type.

Available options:
standard,
buyget
campaign_id
string
required

The ID of the campaign that the promotion belongs to.

application_method
object
required

The promotion's application method.

is_automatic
boolean

Whether the promotion is applied automatically.

campaign
object

The details of a campaign to create and add the promotion to it.

rules
object[]

The promotion's rules.

additional_data
object

Pass additional custom data to the API route. This data is passed to the underlying workflow under the additional_data parameter.

Response

OK

The promotion's details.

promotion
object
required

The promotion's details.