# Verilmiş bir siparişi düzenleme

> orderEditBegin, orderEditAddVariant, orderEditSetQuantity ve orderEditCommit ile siparişe ürün ekleyin, adetleri değiştirin ve değişikliği onaylayın.

Sayfa: https://lintelagency.com/tr/kaynaklar/graphql/siparis-duzenleme

## Kısaca

Verilmiş bir siparişi düzenlemek için orderEditBegin ile başlayın; size siparişin taslak bir kopyası olan bir calculated order döner. Değişiklikleri bu kopya üzerinde orderEditAddVariant, orderEditSetQuantity ve benzeri mutation’larla hazırlayın, ardından orderEditCommit ile hepsini tek seferde uygulayın. Commit edene kadar asıl siparişte hiçbir şey değişmez. Yalnızca gönderilmemiş satırlar düzenlenebilir; uygulamanın write_order_edits yetkisi olmalıdır.

## Bilgiler

- **API:** Admin GraphQL API
- **İşlemler:** orderEditBegin, orderEditAddVariant, orderEditSetQuantity, orderEditCommit
- **Erişim yetkisi:** write_order_edits
- **API sürümü:** 2026-10
- **Son kontrol:** 2 Kasım 2026

## Nasıl kullanılır

1. BeginOrderEdit’i sipariş ID’siyle gönderin. Dönen calculated order ID’sini ve calculated line item ID’lerini saklayın.
2. Değişiklikleri hazırlayın: AddItemToOrder bir varyant ekler, ChangeQuantity bir satırın adedini azaltır ya da artırır. Çıkarılan adetleri stoğa geri koymak için restock: true kullanın.
3. Her adımdan sonra userErrors’ı kontrol edin; başarısız bir değişiklik diğerlerini etkilemez.
4. CommitOrderEdit’i gönderin. notifyCustomer: true ile müşteriye güncel sipariş e-postayla gider.

## Kod

### order-edit-begin.graphql

```graphql
mutation BeginOrderEdit($orderId: ID!) {
  orderEditBegin(id: $orderId) {
    calculatedOrder {
      id
      lineItems(first: 20) {
        nodes {
          id
          title
          quantity
          editableQuantity
        }
      }
    }
    userErrors {
      field
      message
    }
  }
}
```

### order-edit-begin.variables.json

```json
{
  "orderId": "gid://shopify/Order/1234567890"
}
```

### order-edit-begin.response.json

```json
{
  "data": {
    "orderEditBegin": {
      "calculatedOrder": {
        "id": "gid://shopify/CalculatedOrder/1234567890",
        "lineItems": {
          "nodes": [
            {"id": "gid://shopify/CalculatedLineItem/1111111111", "title": "Linen shirt", "quantity": 2, "editableQuantity": 2}
          ]
        }
      },
      "userErrors": []
    }
  }
}
```

### order-edit-add-variant.graphql

```graphql
mutation AddItemToOrder($calculatedOrderId: ID!, $variantId: ID!, $quantity: Int!) {
  orderEditAddVariant(id: $calculatedOrderId, variantId: $variantId, quantity: $quantity, allowDuplicates: false) {
    calculatedLineItem {
      id
      title
      quantity
    }
    userErrors {
      field
      message
    }
  }
}
```

### order-edit-add-variant.variables.json

```json
{
  "calculatedOrderId": "gid://shopify/CalculatedOrder/1234567890",
  "variantId": "gid://shopify/ProductVariant/2222222222",
  "quantity": 1
}
```

### order-edit-add-variant.response.json

```json
{
  "data": {
    "orderEditAddVariant": {
      "calculatedLineItem": {
        "id": "gid://shopify/CalculatedLineItem/2222222222",
        "title": "Wool scarf",
        "quantity": 1
      },
      "userErrors": []
    }
  }
}
```

### order-edit-set-quantity.graphql

```graphql
mutation ChangeQuantity($calculatedOrderId: ID!, $lineItemId: ID!, $quantity: Int!) {
  orderEditSetQuantity(id: $calculatedOrderId, lineItemId: $lineItemId, quantity: $quantity, restock: true) {
    calculatedLineItem {
      id
      quantity
    }
    userErrors {
      field
      message
    }
  }
}
```

### order-edit-set-quantity.variables.json

```json
{
  "calculatedOrderId": "gid://shopify/CalculatedOrder/1234567890",
  "lineItemId": "gid://shopify/CalculatedLineItem/1111111111",
  "quantity": 1
}
```

### order-edit-set-quantity.response.json

```json
{
  "data": {
    "orderEditSetQuantity": {
      "calculatedLineItem": {
        "id": "gid://shopify/CalculatedLineItem/1111111111",
        "quantity": 1
      },
      "userErrors": []
    }
  }
}
```

### order-edit-commit.graphql

```graphql
mutation CommitOrderEdit($calculatedOrderId: ID!, $notifyCustomer: Boolean, $staffNote: String) {
  orderEditCommit(id: $calculatedOrderId, notifyCustomer: $notifyCustomer, staffNote: $staffNote) {
    order {
      id
      name
      totalOutstandingSet {
        shopMoney {
          amount
          currencyCode
        }
      }
    }
    userErrors {
      field
      message
    }
  }
}
```

### order-edit-commit.variables.json

```json
{
  "calculatedOrderId": "gid://shopify/CalculatedOrder/1234567890",
  "notifyCustomer": true,
  "staffNote": "Swapped one shirt for a scarf at the customer's request."
}
```

### order-edit-commit.response.json

```json
{
  "data": {
    "orderEditCommit": {
      "order": {
        "id": "gid://shopify/Order/1234567890",
        "name": "#1001",
        "totalOutstandingSet": {
          "shopMoney": {
            "amount": "-14.00",
            "currencyCode": "EUR"
          }
        }
      },
      "userErrors": []
    }
  }
}
```

## Sınırlar ve özel durumlar

- Yalnızca gönderilmemiş satırlar düzenlenebilir; 1 Ocak 2019’dan önce verilmiş ya da arşivlenmiş siparişler düzenlenemez.
- Toplam değişirse tahsil edilmesi ya da iade edilmesi gereken bir bakiye oluşabilir. Negatif bir totalOutstandingSet, mağazanın müşteriye borçlu olduğu anlamına gelir; bunu refundCreate ile iade edin.
- Adedi 0 yapmak satırı siparişten çıkarır.
- Shopify’ın rehberi, mağaza para birimi dışındaki siparişleri ve abonelik siparişlerini düzenlemek için ek koşulları da listeler.

## Sorular

### Shopify’da verilmiş bir sipariş düzenlenebilir mi?

Evet, satırlar henüz gönderilmediyse. orderEditBegin ile başlayıp değişiklikleri hazırlayın ve orderEditCommit ile uygulayın ya da siparişi Shopify admin’de düzenleyin.

### Sipariş düzenlemek müşteriye otomatik iade yapar mı?

Hayır. Yeni toplam daha düşükse fark, müşteriye borçlu olunan açık tutar olarak görünür; iadeyi sizin oluşturmanız gerekir.

### Calculated order nedir?

Hazırladığınız düzenlemeleri ve yeniden hesaplanan toplamları tutan çalışma kopyasıdır. Ancak commit ettiğinizde asıl siparişe yansır.

## Shopify belgeleri

- [Edit existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders)
- [orderEditBegin](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin)
- [orderEditCommit](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit)

## İlgili içerikler

- [Sipariş iadesi oluşturma](https://lintelagency.com/tr/kaynaklar/graphql/siparis-iadesi-olusturma)
- [Takip numarasıyla gönderim (fulfillment) oluşturma](https://lintelagency.com/tr/kaynaklar/graphql/takip-numarali-gonderim-olusturma)

Lisans: MIT. Kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.
