> Documentation index: [Saleor](/llms.txt) · [This section](/api-reference/discounts/llms.txt)
> Source: https://docs.saleor.io/api-reference/discounts/objects/promotion

# Promotion Object

Represents the promotion that allow creating discounts based on given conditions, and is visible to all the customers.

```graphql
type Promotion implements Node, ObjectWithMetadata {
  id: ID!
  privateMetadata: [MetadataItem!]!
  privateMetafield(
    key: String!
  ): String
  privateMetafields(
    keys: [String!]
  ): Metadata
  metadata: [MetadataItem!]!
  metafield(
    key: String!
  ): String
  metafields(
    keys: [String!]
  ): Metadata
  name: String!
  type: PromotionTypeEnum
  description: JSON
  startDate: DateTime!
  endDate: DateTime
  createdAt: DateTime!
  updatedAt: DateTime!
  rules: [PromotionRule!]
  translation(
    languageCode: LanguageCodeEnum!
  ): PromotionTranslation
  events: [PromotionEvent!]
}
```

<a id="fields"></a>

### Fields

<a id="id"></a>

#### [`id`](#id) ● [`ID!`](/api-reference/miscellaneous/scalars/id.md)

<a id="private-metadata"></a>

#### [`privateMetadata`](#private-metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of private metadata items. Requires staff permissions to access.

<a id="private-metafield"></a>

#### [`privateMetafield`](#private-metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from private metadata. Requires staff permissions to access.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="promotion-private-metafield-key"></a>

##### [`key`](#promotion-private-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="private-metafields"></a>

#### [`privateMetafields`](#private-metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="promotion-private-metafields-keys"></a>

##### [`keys`](#promotion-private-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="metadata"></a>

#### [`metadata`](#metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of public metadata items. Can be accessed without permissions.

<a id="metafield"></a>

#### [`metafield`](#metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from public metadata.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="promotion-metafield-key"></a>

##### [`key`](#promotion-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="metafields"></a>

#### [`metafields`](#metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Public metadata. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="promotion-metafields-keys"></a>

##### [`keys`](#promotion-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="name"></a>

#### [`name`](#name) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

Name of the promotion.

<a id="type"></a>

#### [`type`](#type) ● [`PromotionTypeEnum`](/api-reference/discounts/enums/promotion-type-enum.md)

The type of the promotion. Implicate if the discount is applied on catalogue or order level.

Added in Saleor 3.19

This API is currently in **Feature Preview** and can be subject to changes at later point.

<a id="description"></a>

#### [`description`](#description) ● [`JSON`](/api-reference/miscellaneous/scalars/json.md)

Description of the promotion.

<a id="start-date"></a>

#### [`startDate`](#start-date) ● [`DateTime!`](/api-reference/miscellaneous/scalars/date-time.md)

Start date of the promotion.

<a id="end-date"></a>

#### [`endDate`](#end-date) ● [`DateTime`](/api-reference/miscellaneous/scalars/date-time.md)

End date of the promotion.

<a id="created-at"></a>

#### [`createdAt`](#created-at) ● [`DateTime!`](/api-reference/miscellaneous/scalars/date-time.md)

Date time of promotion creation.

<a id="updated-at"></a>

#### [`updatedAt`](#updated-at) ● [`DateTime!`](/api-reference/miscellaneous/scalars/date-time.md)

Date time of last update of promotion.

<a id="rules"></a>

#### [`rules`](#rules) ● [`[PromotionRule!]`](/api-reference/discounts/objects/promotion-rule.md)

The list of promotion rules.

<a id="translation"></a>

#### [`translation`](#translation) ● [`PromotionTranslation`](/api-reference/discounts/objects/promotion-translation.md)

Returns translated promotion fields for the given language code.

<a id="promotion-translation-language-code"></a>

##### [`languageCode`](#promotion-translation-language-code) ● [`LanguageCodeEnum!`](/api-reference/miscellaneous/enums/language-code-enum.md)

A language code to return the translation for promotion.

<a id="events"></a>

#### [`events`](#events) ● [`[PromotionEvent!]`](/api-reference/miscellaneous/unions/promotion-event.md)

The list of events associated with the promotion.

<a id="interfaces"></a>

### Interfaces

<a id="node"></a>

#### [`Node`](/api-reference/miscellaneous/interfaces/node.md)

An object with an ID

<a id="objectwithmetadata"></a>

#### [`ObjectWithMetadata`](/api-reference/miscellaneous/interfaces/object-with-metadata.md)

<a id="returned-by"></a>

### Returned By

[`promotion`](/api-reference/discounts/queries/promotion.md) query

<a id="member-of"></a>

### Member Of

[`PromotionCountableEdge`](/api-reference/discounts/objects/promotion-countable-edge.md) object  ● [`PromotionCreate`](/api-reference/discounts/objects/promotion-create.md) object  ● [`PromotionCreated`](/api-reference/discounts/objects/promotion-created.md) object  ● [`PromotionDelete`](/api-reference/discounts/objects/promotion-delete.md) object  ● [`PromotionDeleted`](/api-reference/discounts/objects/promotion-deleted.md) object  ● [`PromotionEnded`](/api-reference/discounts/objects/promotion-ended.md) object  ● [`PromotionRule`](/api-reference/discounts/objects/promotion-rule.md) object  ● [`PromotionStarted`](/api-reference/discounts/objects/promotion-started.md) object  ● [`PromotionTranslate`](/api-reference/discounts/objects/promotion-translate.md) object  ● [`PromotionUpdate`](/api-reference/discounts/objects/promotion-update.md) object  ● [`PromotionUpdated`](/api-reference/discounts/objects/promotion-updated.md) object
