---
title: Kuponlar
description: Kampanyalara bağlı kupon kodlarını yönetin.
full: true
---

## Coupon nesnesi [#Coupon]

**`Coupon`** (v1 · v2)

| Alan | Tip | Açıklama |
| --- | --- | --- |
| `applicableCustomerId` | `String` |  |
| `campaignId` | `String!` |  |
| `canCombineWithOtherCampaigns` | `Boolean!` |  |
| `code` | `String!` |  |
| `createdAt` | `Timestamp` | Kaydın oluşturulma zamanı (milisaniye cinsinden Unix zaman damgası). |
| `dateRange` | `CouponDateRangeField` |  |
| `deleted` | `Boolean!` | Kaydın silinmiş olup olmadığı. |
| `id` | `String!` | Kaydın ID değeri. |
| `updatedAt` | `Timestamp` | Kaydın son güncellenme zamanı (milisaniye cinsinden Unix zaman damgası). |
| `usageCount` | `Int!` |  |
| `usageLimit` | `Int` |  |
| `usageLimitPerCustomer` | `Int` |  |

Örnek (temsili):

```json
{
  "applicableCustomerId": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
  "campaignId": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
  "canCombineWithOtherCampaigns": true,
  "code": "string",
  "createdAt": 1735725600000,
  "dateRange": {
    "end": 1735725600000,
    "start": 1735725600000
  },
  "deleted": false,
  "id": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
  "updatedAt": 1735725600000,
  "usageCount": 1,
  "usageLimit": 1,
  "usageLimitPerCustomer": 1
}
```

## Kuponları listele [#listCoupon]

**`listCoupon`** (query, v1 · v2)

Parametreler:

| Alan | Tip | Açıklama |
| --- | --- | --- |
| `campaignId` | `StringFilterInput` |  |
| `id` | `StringFilterInput` | Kaydın ID değeri. |
| `includeDeleted` | `Boolean` | `true` gönderilirse silinmiş kayıtlar da listelenir. |
| `pagination` | `PaginationInput` | Sayfalama ayarları (`page`, `limit`). Bkz. [Sayfalama](/docs/admin-api/pagination-and-filtering). |
| `search` | `String` | Serbest metin araması. |

Dönen değer: `CouponPaginationResponse!`

Örnek istek - Kampanyanın kuponlarını listeleme (`POST https://api.myikas.com/api/v2/admin/graphql`):

Bir kampanyaya bağlı kupon kodlarını, kullanım sayılarıyla birlikte sayfa sayfa çeker.

```graphql
query ListCoupon($campaignId: StringFilterInput, $pagination: PaginationInput) {
  listCoupon(campaignId: $campaignId, pagination: $pagination) {
    count
    hasNext
    page
    limit
    data {
      id
      code
      campaignId
      usageCount
      usageLimit
      usageLimitPerCustomer
      applicableCustomerId
      createdAt
    }
  }
}
```

```json
{
  "campaignId": {
    "eq": "dd601534-6c76-4208-af7a-da547bfbbbf4"
  },
  "pagination": {
    "page": 1,
    "limit": 100
  }
}
```

Örnek yanıt (temsili):

```json
{
  "data": {
    "listCoupon": {
      "count": 1,
      "hasNext": true,
      "page": 1,
      "limit": 50,
      "data": [
        {
          "id": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
          "code": "string",
          "campaignId": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
          "usageCount": 1,
          "usageLimit": 1,
          "usageLimitPerCustomer": 1,
          "applicableCustomerId": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
          "createdAt": 1735725600000
        }
      ]
    }
  }
}
```

## Kampanyaya kupon ekle [#addCouponsToCampaign]

**`addCouponsToCampaign`** (mutation, v2)

Yalnızca v2 endpoint'inde: `https://api.myikas.com/api/v2/admin/graphql`

Parametreler:

| Alan | Tip | Açıklama |
| --- | --- | --- |
| `input` (zorunlu) | `AddCouponsToCampaignInput!` | İşlemin girdi nesnesi. |

Dönen değer: `[Coupon!]!`

Örnek istek - Kampanyaya benzersiz kupon kodları üretme (`POST https://api.myikas.com/api/v2/admin/graphql`):

Kuponlu bir kampanya için aynı ön ekle başlayan, her biri tek kullanımlık 500 benzersiz kupon kodu üretir. Sadakat veya CRM uygulamalarının müşterilere kişisel kod dağıtması için uygundur.

```graphql
mutation AddCouponsToCampaign($input: AddCouponsToCampaignInput!) {
  addCouponsToCampaign(input: $input) {
    id
    code
    campaignId
    usageLimit
    canCombineWithOtherCampaigns
  }
}
```

```json
{
  "input": {
    "campaignId": "dd601534-6c76-4208-af7a-da547bfbbbf4",
    "generateCoupons": {
      "prefix": "KASIM",
      "quantity": 500,
      "usageLimit": 1,
      "canCombineWithOtherCampaigns": false
    }
  }
}
```

Örnek yanıt (temsili):

```json
{
  "data": {
    "addCouponsToCampaign": [
      {
        "id": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
        "code": "string",
        "campaignId": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
        "usageLimit": 1,
        "canCombineWithOtherCampaigns": true
      }
    ]
  }
}
```

Örnek istek - Kampanyaya belirli kupon kodları ekleme (`POST https://api.myikas.com/api/v2/admin/graphql`):

Influencer veya iş ortağı kanallarında paylaşılacak, önceden belirlenmiş kupon kodlarını kampanyaya ekler. Her müşteri bir kodu en fazla bir kez kullanabilir.

```graphql
mutation AddCouponsToCampaign($input: AddCouponsToCampaignInput!) {
  addCouponsToCampaign(input: $input) {
    id
    code
    usageLimit
    usageLimitPerCustomer
  }
}
```

```json
{
  "input": {
    "campaignId": "dd601534-6c76-4208-af7a-da547bfbbbf4",
    "coupons": [
      {
        "code": "ZEYNEP150",
        "usageLimit": 1000,
        "usageLimitPerCustomer": 1,
        "canCombineWithOtherCampaigns": false
      },
      {
        "code": "MEHMET150",
        "usageLimit": 1000,
        "usageLimitPerCustomer": 1,
        "canCombineWithOtherCampaigns": false
      }
    ]
  }
}
```

Örnek yanıt (temsili):

```json
{
  "data": {
    "addCouponsToCampaign": [
      {
        "id": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
        "code": "string",
        "usageLimit": 1,
        "usageLimitPerCustomer": 1
      }
    ]
  }
}
```

## Kampanyaya kupon ekle (v1) [#campaignAddCoupons]

**`campaignAddCoupons`** (mutation, v1)

Yalnızca v1 endpoint'inde: `https://api.myikas.com/api/v1/admin/graphql`. v2 karşılığı: `addCouponsToCampaign`.

Parametreler:

| Alan | Tip | Açıklama |
| --- | --- | --- |
| `input` (zorunlu) | `AddCouponsInput!` | İşlemin girdi nesnesi. |

Dönen değer: `[Coupon!]!`

Örnek istek - Kampanyaya kupon kodları ekleme (`POST https://api.myikas.com/api/v1/admin/graphql`):

Kuponlu bir kampanya için `HOSGELDIN` ön ekiyle 200 adet tek kullanımlık kupon kodu üretir.

```graphql
mutation CampaignAddCoupons($input: AddCouponsInput!) {
  campaignAddCoupons(input: $input) {
    id
    code
    campaignId
    usageLimit
  }
}
```

```json
{
  "input": {
    "campaignId": "dd601534-6c76-4208-af7a-da547bfbbbf4",
    "generateCoupons": {
      "prefix": "HOSGELDIN",
      "quantity": 200,
      "usageLimit": 1,
      "canCombineWithOtherCampaigns": false
    }
  }
}
```

Örnek yanıt (temsili):

```json
{
  "data": {
    "campaignAddCoupons": [
      {
        "id": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
        "code": "string",
        "campaignId": "0f9d2c3e-6b1a-4c7e-9a52-3d8e1f4b7c21",
        "usageLimit": 1
      }
    ]
  }
}
```

## Kuponları sil [#deleteCouponList]

**`deleteCouponList`** (mutation, v1 · v2)

Parametreler:

| Alan | Tip | Açıklama |
| --- | --- | --- |
| `idList` (zorunlu) | `[String!]!` | İşlem yapılacak kayıtların ID listesi. |

Dönen değer: `Boolean!` (v1: `String!`)

Örnek istek - Kuponları silme (`POST https://api.myikas.com/api/v2/admin/graphql`):

Yanlışlıkla paylaşılan veya iptal edilen kupon kodlarını ID listesiyle toplu olarak siler.

```graphql
mutation DeleteCouponList($idList: [String!]!) {
  deleteCouponList(idList: $idList)
}
```

```json
{
  "idList": [
    "7c3976bb-d134-408c-a9a4-b6d1d08c5ebd",
    "175dd628-53d6-413e-af1e-136ecb815a93"
  ]
}
```

Örnek yanıt (temsili):

```json
{
  "data": {
    "deleteCouponList": true
  }
}
```
