{
  "openapi": "3.0.3",
  "info": {
    "title": "StockMount Out API",
    "version": "1.0",
    "description": "Tüm servisler POST ve JSON gövde kullanır. Kimlik doğrulama gövdedeki ApiCode alanıyla yapılır; ApiCode `User/DoLogin` ile alınır.\n\nDokümantasyon: https://outsample.stockmount.com/tr"
  },
  "servers": [
    {
      "url": "https://out.stockmount.com"
    }
  ],
  "tags": [
    {
      "name": "Kimlik doğrulama",
      "description": "Diğer tüm çağrılarda kullanılan ApiCode bu servisten alınır."
    },
    {
      "name": "Siparişler",
      "description": "Pazaryeri siparişlerini çekin, durumlarını, kargo ve fatura bilgilerini güncelleyin."
    },
    {
      "name": "Ürünler",
      "description": "Ürün ekleyin, güncelleyin; stok, fiyat, ad ve görselleri senkronize edin. Ürün Paketi gerekir."
    },
    {
      "name": "Genel ve listeler",
      "description": "Mağazalar, kargo firmaları, durum listeleri ve döviz kurları."
    },
    {
      "name": "Mesajlar",
      "description": "Pazaryeri müşteri mesajlarını okuyun ve yanıtlayın."
    }
  ],
  "paths": {
    "/api/User/DoLogin": {
      "post": {
        "operationId": "DoLogin",
        "tags": [
          "Kimlik doğrulama"
        ],
        "summary": "Oturum aç ve ApiCode al",
        "description": "**Oturum aç ve ApiCode al** — API anahtarı ve şifresiyle oturum açar ve diğer tüm isteklerde kullanacağınız `ApiCode` değerini döndürür.\n\nAPI anahtarını ve şifresini StockMount panelinde Ayarlar → API servis ayarları bölümünde oluşturursunuz. Bir hesapta en fazla 2 anahtar olabilir. Yalnızca aktif durumdaki anahtarlar giriş yapabilir.\n\nYanıttaki `ApiCode` değerini diğer tüm isteklerin JSON gövdesinde `ApiCode` alanıyla gönderin. Değer şifrelenmiş, opak bir metindir ve `+`, `/`, `=` karakterlerini içerebilir. Çözmeye veya değiştirmeye çalışmayın.\n\nOturum, aynı giriş bilgisiyle yapılan son girişten itibaren sistem ayarındaki süre kadar geçerlidir (dakika cinsinden; varsayılan 1440 dakika = 24 saat). Servis çağrıları süreyi uzatmaz. Süre dolunca istekler `00001` ve \"Your session has timed out, please refresh your ApiCode using 'DoLogin' service.\" mesajıyla döner. Bu durumda `DoLogin` ile yeni bir `ApiCode` alıp isteği tekrarlayın.\n\nOturum geçerliyken aynı giriş bilgisiyle `DoLogin` tekrar çağrılırsa bilgiler yine doğrulanır, aynı `ApiCode` döner ve oturum süresi yeniden başlar. Aynı API anahtarını kullanan tüm sistemler aynı `ApiCode`'u alır. `ApiCode` değerini saklayıp yeniden kullanın; `DoLogin` çağrısını her istekten önce değil, `00001` veya `00006` aldığınızda yapın.\n\nHer API anahtarının oturumu ayrıdır; birinin girişi diğerinin `ApiCode`'unu etkilemez.\n\nGiriş için hesabın aktif olması ve API erişimi veren geçerli bir paketinin bulunması gerekir: süresi dolmamış ücretli veya deneme StockMount paketi ya da süresi dolmamış Out API hizmeti. Bunlardan hiçbiri yoksa `99988` döner.\n\nHatalı kimlik bilgisi, pasif hesap, pasif API anahtarı, kapatılmış hesap ve sunucu bakımı aynı sonucu verir: `00001` ve boş `ErrorMessage`. Gerçek neden yanıtta belirtilmez.\n\nhttps://outsample.stockmount.com/tr/api/User/DoLogin",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiKey": {
                    "type": "string",
                    "description": "Panelde oluşturduğunuz API anahtarı."
                  },
                  "ApiPassword": {
                    "type": "string",
                    "description": "API anahtarının şifresi."
                  },
                  "DeveloperId": {
                    "type": "string",
                    "description": "İsteğe bağlı. Entegrasyonunuzu tanımlayan serbest metin. Oturum kaydına yazılır ve yalnızca kayıt/izleme için kullanılır."
                  }
                },
                "required": [
                  "ApiKey",
                  "ApiPassword"
                ]
              },
              "example": {
                "ApiKey": "3f9c2a7e5b1d4c08",
                "ApiPassword": "Xk82!pQz7mWv",
                "DeveloperId": "ornek-erp-connector"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "UserId": {
                              "type": "integer",
                              "description": "Hesap kimliği."
                            },
                            "Name": {
                              "type": "string",
                              "description": "Hesap sahibinin adı."
                            },
                            "Surname": {
                              "type": "string",
                              "description": "Hesap sahibinin soyadı."
                            },
                            "Email": {
                              "type": "string",
                              "description": "Hesabın e-posta adresi."
                            },
                            "Username": {
                              "type": "string",
                              "description": "Hesabın kullanıcı adı."
                            },
                            "Avatar": {
                              "type": "string",
                              "description": "Profil görseli. Boş olabilir."
                            },
                            "PackageEndDate": {
                              "type": "string",
                              "description": "Hesabın paket bitiş tarihi. Saat dilimi bilgisi olmadan ISO 8601 biçiminde gelir (ör. `2027-03-31T00:00:00`) ve Türkiye saatidir. Kayıtlı oturum döndüğünde ilk girişteki değerdir."
                            },
                            "ApiCode": {
                              "type": "string",
                              "description": "Oturum kodu. Diğer tüm isteklerde `ApiCode` alanında gönderin."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "UserId": 104523,
                    "Name": "Ayşe",
                    "Surname": "Yılmaz",
                    "Email": "ayse@ornekmagaza.com",
                    "Username": "ornekmagaza",
                    "Avatar": "",
                    "PackageEndDate": "2027-03-31T00:00:00",
                    "ApiCode": "q7XvT1kR9mN2bW4yL8pZ0cH5sJ3fG6dA+eU1iO7tY2rE9wQ4xV8nM0lK5jH3gF6d=="
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetSales": {
      "post": {
        "operationId": "GetSales",
        "tags": [
          "Siparişler"
        ],
        "summary": "Siparişleri listele",
        "description": "**Siparişleri listele** — Bir mağazanın belirli bir durumdaki siparişlerini sayfa sayfa döndürür.\n\n`StoreId` ve `OrderStatus` her zaman zorunludur. Ayrıca şu üç yöntemden birini kullanmalısınız: (1) `StartDate` + `EndDate` tarih aralığı, (2) `BiggestOrderDetailId` veya `SmallestOrderDetailId` ile ID tabanlı artımlı çekim, (3) `LastModificationTimeFrom` ile değişiklik tabanlı çekim. (2) veya (3) kullanıldığında tarih alanları zorunlu değildir ve 7 gün sınırı uygulanmaz. Yine de gönderirseniz filtre olarak uygulanır.\n\nTarih aralığı modunda `StartDate`, `EndDate`'ten küçük olmalı ve aradaki fark en fazla 7 gün olmalıdır (tam 7 gün kabul edilir). Filtre siparişin `OrderDate` alanına uygulanır. Dikkat: sunucu `EndDate`'e 1 gün ekler ve sınırları dahil eder. Örneğin `StartDate`=`2026-11-01T00:00:00`, `EndDate`=`2026-11-02T00:00:00` isteği 1 Kasım 00:00 ile 3 Kasım 00:00 arasındaki siparişleri döndürür. Ardışık pencerelerle tarama yaparsanız aynı sipariş iki kez gelebilir; `OrderId` ile tekilleştirin.\n\nTarihleri ISO 8601 biçiminde, ofsetsiz Türkiye saatiyle (UTC+3) gönderin, örn. `2026-11-05T14:30:00`. Sondaki `Z` yok sayılır: değer yine Türkiye saati kabul edilir. `+03:00` gibi açık bir ofset doğru dönüştürülür. `05.11.2026` gibi yerel biçimleri kullanmayın; ay ve gün yer değiştirebilir.\n\nYanıttaki saat dilimleri karışıktır. `OrderDate`, `CargoDate`, `InvoiceTime`, `PackageTime` ve `WayBillTime` UTC'ye çevrilip `Z` ekiyle döner. `LastModificationTime` ise çevrilmeden, ofsetsiz Türkiye saatiyle döner. Yanıttaki bir `OrderDate` değerini yeni istekte `StartDate` olarak kullanacaksanız önce Türkiye saatine çevirin.\n\nBoş tarih alanları `null` olarak dönmez. `CargoDate`, `InvoiceTime`, `PackageTime` ve `WayBillTime` boşsa `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı). 1900'den önceki her tarihi boş kabul edin. Değeri `null` olan alanlar (ör. `PaymentMethod`, `CompanyTitle`) yanıtta hiç yer almaz.\n\nSayfalama: `PageIndex` 1'den başlar; 0 veya gönderilmezse 1 kabul edilir. `RowsByPage` sayfa başına sipariş sayısıdır (satır değil); gönderilmezse veya 0 ise 20'dir, en fazla 200'dür. Daha büyük değerler hata vermeden 200'e düşürülür. Sıralama her zaman `OrderDate` azalan (en yeni önce) şeklindedir. `TotalOrderCount` filtreye uyan toplam sipariş sayısıdır; sayfa sayısı `ceil(TotalOrderCount / RowsByPage)`. Sayfalama kaydırma (offset) tabanlıdır; tarama sırasında yeni sipariş gelirse kayıtlar sayfalar arasında kayabilir.\n\nDurum filtresi satır (sipariş kalemi) düzeyindedir. Bir sipariş yalnızca istenen durumdaki satırlarıyla döner; aynı siparişin başka durumdaki satırları bu yanıtta yer almaz. Tüm satırları almak için her durum kodu için ayrı istek yapın ya da `GetOrder` kullanın. Geçerli kodları `GetIntegrationOrderListingStatus` döndürür ve pazaryerine göre değişir. Bilinmeyen bir kod hata vermez, boş liste döner.\n\n`BiggestOrderDetailId` verildiğinde `OrderDetailId` değeri bu sayıdan büyük en az bir satırı olan siparişler döner; `SmallestOrderDetailId` küçük olanlar için çalışır. Bu filtreler, `InvoiceStatus` ve `LastModificationTimeFrom`/`To` yalnızca hangi siparişlerin seçileceğini belirler. Seçilen siparişin istenen durumdaki tüm satırları döner; daha önce aldığınız satırlar tekrar gelebilir. `OrderDetailId` ile tekilleştirin.\n\n`LastModificationTimeFrom`/`To` satırın `LastModificationTime` değerine göre filtreler (Türkiye saati, sınırlar dahil, 2000 yılından sonraki değerler). Satır durumu değiştiğinde bu değer güncellenir. Tarih zorunluluğunu yalnızca `LastModificationTimeFrom` kaldırır; sadece `LastModificationTimeTo` gönderirseniz `StartDate`/`EndDate` yine zorunludur. `LastModificationTime` değeri boş olan satırlar bu filtreyle hiç dönmez.\n\nDoğrulama hataları `00003` koduyla döner. `ErrorMessage` alan adını (`StoreId`, `OrderStatus`) ya da Türkçe bir açıklamayı içerir: `StartDate parametresi boş olamaz`, `EndDate parametresi boş olamaz`, `StartDate parametresi EndDate parametresinden büyük olamaz` (eşitlikte de döner), `EndDate parametresi ile StartDate parametresi farkı 7 günden fazla olamaz`.\n\nAmazon mağazalarında alıcı ve adres alanları veritabanında şifreli tutulur; yanıt dönmeden önce çözülür. İstekteki `OrderId` ve `LiveResult` alanları bu uçta yok sayılır. `GetOrders` aynı işi yapan eski bir takma addır; yeni entegrasyonlarda `GetSales` kullanın.\n\n`TotalNotInvoicedCount` ve `TotalUnreadCount` her zaman `0` döner; kullanmayın.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetSales",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "Mağaza ID'si (`GetStores`)."
                  },
                  "OrderStatus": {
                    "type": "string",
                    "description": "Satır durum kodu. Mağazanın pazaryerine ait kodları `GetIntegrationOrderListingStatus` döndürür (`Code` alanı). StockMount mağazaları için kodlar aşağıdadır.\n\n- `New`: Yeni.\n- `Approved`: Onaylandı.\n- `Rejected`: Reddedildi.\n- `Shipped`: Kargoya verildi.\n- `Delivered`: Teslim edildi.\n- `Completed`: Tamamlandı."
                  },
                  "StartDate": {
                    "type": "string",
                    "description": "Başlangıç tarihi (`OrderDate`), ofsetsiz Türkiye saati. Tarih aralığı modunda zorunlu."
                  },
                  "EndDate": {
                    "type": "string",
                    "description": "Bitiş tarihi. `StartDate`'ten büyük olmalı, fark en fazla 7 gün. Sunucu bu değere 1 gün ekler. Tarih aralığı modunda zorunlu."
                  },
                  "BiggestOrderDetailId": {
                    "type": "integer",
                    "description": "Bu ID'den büyük satırı olan siparişleri getirir (yeni siparişleri artımlı çekmek için son gördüğünüz en büyük `OrderDetailId`)."
                  },
                  "SmallestOrderDetailId": {
                    "type": "integer",
                    "description": "Bu ID'den küçük satırı olan siparişleri getirir."
                  },
                  "LastModificationTimeFrom": {
                    "type": "string",
                    "description": "Satırın `LastModificationTime` değeri bu zamandan büyük veya eşit olanlar. Verildiğinde tarih aralığı zorunlu değildir."
                  },
                  "LastModificationTimeTo": {
                    "type": "string",
                    "description": "Satırın `LastModificationTime` değeri bu zamandan küçük veya eşit olanlar."
                  },
                  "InvoiceStatus": {
                    "type": "integer",
                    "description": "Fatura durumuna göre filtre. Varsayılan `0`. Listede olmayan değerler `0` gibi davranır.\n\n- `0`: Tümü.\n- `1`: Faturalandı (`Invoiced` = true).\n- `2`: Faturalanmadı."
                  },
                  "PageIndex": {
                    "type": "integer",
                    "description": "Sayfa numarası, 1'den başlar. Varsayılan 1."
                  },
                  "RowsByPage": {
                    "type": "integer",
                    "description": "Sayfa başına sipariş sayısı. Varsayılan 20, en fazla 200."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "OrderStatus"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 12345,
                "OrderStatus": "New",
                "StartDate": "2026-11-01T00:00:00",
                "EndDate": "2026-11-04T00:00:00",
                "InvoiceStatus": 0,
                "PageIndex": 1,
                "RowsByPage": 100
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "TotalOrderCount": {
                              "type": "integer",
                              "description": "Filtreye uyan toplam sipariş sayısı (tüm sayfalar)."
                            },
                            "TotalNotInvoicedCount": {
                              "type": "integer",
                              "description": "Her zaman `0`."
                            },
                            "TotalUnreadCount": {
                              "type": "integer",
                              "description": "Her zaman `0`."
                            },
                            "Orders": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "OrderId": {
                                    "type": "integer",
                                    "description": "StockMount sipariş ID'si. `GetOrder`, `SetOrderNotes` gibi uçlarda bu değeri kullanın."
                                  },
                                  "StoreId": {
                                    "type": "integer",
                                    "description": "Mağaza ID'si."
                                  },
                                  "IntegrationOrderCode": {
                                    "type": "string",
                                    "description": "Pazaryerinin sipariş numarası."
                                  },
                                  "OrderDate": {
                                    "type": "string",
                                    "description": "Sipariş tarihi, UTC (`Z` ekli). Örn. Türkiye saatiyle 14:30 olan sipariş `…T11:30:00Z` döner."
                                  },
                                  "OrderStatus": {
                                    "type": "string",
                                    "description": "İstekte gönderdiğiniz durum kodu (satır düzeyindeki filtre)."
                                  },
                                  "OrderType": {
                                    "type": "integer",
                                    "description": "Sipariş tipi.\n\n- `0`: Standart sipariş.\n- `1`: Trendyol muadil ürün siparişi.\n- `2`: Trendyol yurt dışı (mikro ihracat) siparişi.\n- `3`: Trendyol yurt dışı ve muadil sipariş.\n- `10`: Hepsiburada Şimdi Al Sonra Öde (BNPL) siparişi."
                                  },
                                  "Name": {
                                    "type": "string",
                                    "description": "Alıcının adı."
                                  },
                                  "Surname": {
                                    "type": "string",
                                    "description": "Alıcının soyadı."
                                  },
                                  "Fullname": {
                                    "type": "string",
                                    "description": "Alıcı kurumsal ise firma unvanı, değilse ad soyad (o da yoksa `Name`). Ayrı bir `CompanyTitle` alanı dönmez."
                                  },
                                  "Nickname": {
                                    "type": "string",
                                    "description": "Alıcının pazaryerindeki kullanıcı adı."
                                  },
                                  "PersonType": {
                                    "type": "string",
                                    "description": "Alıcı tipi; Türkçe sabit metin.\n\n- `Gerçek Kişi`: Bireysel: `PersonalIdentification` = `TaxNumber`.\n- `Tüzel Kişi`: Kurumsal: TCKN yok, vergi no ve vergi dairesi var.\n- ``: Belirlenemedi."
                                  },
                                  "PersonalIdentification": {
                                    "type": "string",
                                    "description": "TC kimlik numarası."
                                  },
                                  "TaxAuthority": {
                                    "type": "string",
                                    "description": "Vergi dairesi."
                                  },
                                  "TaxNumber": {
                                    "type": "string",
                                    "description": "Vergi numarası."
                                  },
                                  "Email": {
                                    "type": "string",
                                    "description": "Alıcının e-posta adresi."
                                  },
                                  "Telephone": {
                                    "type": "string",
                                    "description": "Alıcının telefonu."
                                  },
                                  "Address": {
                                    "type": "string",
                                    "description": "Fatura adresi, posta kodu, ilçe ve il değerlerinin boşlukla birleştirilmiş hali."
                                  },
                                  "District": {
                                    "type": "string",
                                    "description": "İlçe."
                                  },
                                  "City": {
                                    "type": "string",
                                    "description": "İl."
                                  },
                                  "PostalCode": {
                                    "type": "string",
                                    "description": "Posta kodu."
                                  },
                                  "Country": {
                                    "type": "string",
                                    "description": "Ülke. Boş dönebilir."
                                  },
                                  "Notes": {
                                    "type": "string",
                                    "description": "Sipariş notu (`SetOrderNotes` ile yazılır)."
                                  },
                                  "Member": {
                                    "type": "string",
                                    "description": "Pazaryerinin ham üyelik bilgisi (ör. IdeaSoft JSON metni). Çoğunlukla boş."
                                  },
                                  "PaymentType": {
                                    "type": "string",
                                    "description": "Pazaryerinin bildirdiği ödeme tipi (ör. ÇiçekSepeti, IdeaSoft, Pazarama). Çoğunlukla boş."
                                  },
                                  "RowSalt": {
                                    "type": "string",
                                    "description": "İç alan (şifreleme tuzu, Base64). Normalde dönmez; dönerse yok sayın."
                                  },
                                  "OrderDetails": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "OrderDetailId": {
                                          "type": "integer",
                                          "description": "StockMount sipariş satırı ID'si. Diğer satır uçlarında bu değeri kullanın."
                                        },
                                        "StoreId": {
                                          "type": "integer",
                                          "description": "Mağaza ID'si."
                                        },
                                        "IntegrationOrderDetailId": {
                                          "type": "string",
                                          "description": "Satırın pazaryerindeki ID'si. Ek hizmet satırlarında `{siparişNo}_Service` gibi `_` içeren yapay bir değer olabilir."
                                        },
                                        "ProductId": {
                                          "type": "integer",
                                          "description": "Eşleşen StockMount ürün ID'si. Eşleşme yoksa `0`."
                                        },
                                        "IntegrationProductCode": {
                                          "type": "string",
                                          "description": "Ürünün pazaryerindeki kodu. Ek hizmet satırlarında sabit kodlar kullanılır: `999999999999` hizmet bedeli, `999999999998` vade farkı, `999999999997` komisyon, `999999999996` ödeme hizmet bedeli, `999999999995` kargo ücreti, `999999999994` hediye paketi, `999999999993` cari ödeme hizmet bedeli."
                                        },
                                        "ProductName": {
                                          "type": "string",
                                          "description": "Pazaryerindeki ürün adı. Boşsa eşleşen StockMount ürününün adı. İkisi de yoksa alan dönmez."
                                        },
                                        "ProductCode": {
                                          "type": "string",
                                          "description": "Eşleşen StockMount ürün kodu. Eşleşme yoksa `MerchantSku`, o da yoksa `IntegrationProductCode`."
                                        },
                                        "ProductCode2": {
                                          "type": "string",
                                          "description": "StockMount ürününün ikinci kodu. Yoksa boş metin."
                                        },
                                        "Barcode": {
                                          "type": "string",
                                          "description": "Eşleşen StockMount ürününün barkodu. Eşleşme yoksa boş metin."
                                        },
                                        "MerchantSku": {
                                          "type": "string",
                                          "description": "Pazaryerinin satıcı stok kodu (SKU)."
                                        },
                                        "ProductImage": {
                                          "type": "string",
                                          "description": "Eşleşen StockMount ürününün ilk görseli. Yoksa pazaryerinin görsel adresi."
                                        },
                                        "ProductUnit": {
                                          "type": "string",
                                          "description": "Satış birimi (pazaryeri bildiriyorsa)."
                                        },
                                        "ProductVariantCode": {
                                          "type": "string",
                                          "description": "Satırın varyant kodu. Yoksa boş metin."
                                        },
                                        "ProductVariantId": {
                                          "type": "integer",
                                          "description": "Her zaman `0` döner; kullanmayın."
                                        },
                                        "VariantProductCode": {
                                          "type": "string",
                                          "description": "Eşleşen StockMount varyantının kodu. Yoksa boş metin."
                                        },
                                        "VariantProductBarcode": {
                                          "type": "string",
                                          "description": "Eşleşen StockMount varyantının barkodu. Yoksa boş metin."
                                        },
                                        "VariantPhrase": {
                                          "type": "string",
                                          "description": "Pazaryerinin varyant açıklaması (ör. `Renk: Siyah, Beden: M`)."
                                        },
                                        "VariantName1": {
                                          "type": "string",
                                          "description": "1. varyant özelliğinin adı."
                                        },
                                        "VariantValue1": {
                                          "type": "string",
                                          "description": "1. varyant özelliğinin değeri."
                                        },
                                        "VariantName2": {
                                          "type": "string",
                                          "description": "2. varyant özelliğinin adı."
                                        },
                                        "VariantValue2": {
                                          "type": "string",
                                          "description": "2. varyant özelliğinin değeri."
                                        },
                                        "VariantName3": {
                                          "type": "string",
                                          "description": "3. varyant özelliğinin adı."
                                        },
                                        "VariantValue3": {
                                          "type": "string",
                                          "description": "3. varyant özelliğinin değeri."
                                        },
                                        "Price": {
                                          "type": "number",
                                          "description": "Birim fiyat. Satır toplamı = `Price` × `RawQuantity` (StockMount raporları da böyle hesaplar)."
                                        },
                                        "Quantity": {
                                          "type": "integer",
                                          "description": "Adet; küsuratlı miktarlarda aşağı yuvarlanmış tam sayı. Kesin değer için `RawQuantity` kullanın."
                                        },
                                        "RawQuantity": {
                                          "type": "number",
                                          "description": "Ondalıklı (kesin) miktar."
                                        },
                                        "TaxRate": {
                                          "type": "number",
                                          "description": "KDV oranı (ör. `20`). Satır bir StockMount ürünüyle eşleşmişse ve ürünün oranı 0'dan büyükse ürünün oranı kullanılır; aksi halde pazaryerinin bildirdiği oran. `OrderType` = 2 olan siparişlerde her zaman pazaryeri oranı döner."
                                        },
                                        "DetailType": {
                                          "type": "integer",
                                          "description": "Satır tipi.\n\n- `0`: Belirtilmemiş (varsayılan).\n- `1`: Ürün satırı.\n- `2`: Ek hizmet satırı (hizmet bedeli, kargo ücreti vb.).\n- `3`: Vade farkı satırı."
                                        },
                                        "OrderStatus": {
                                          "type": "string",
                                          "description": "Bu satırın durumu. `GetSales` yanıtında istekteki `OrderStatus` ile aynıdır."
                                        },
                                        "Invoiced": {
                                          "type": "boolean",
                                          "description": "Satır faturalandı olarak işaretliyse `true`."
                                        },
                                        "InvoiceNumber": {
                                          "type": "string",
                                          "description": "Fatura numarası. Yoksa boş metin."
                                        },
                                        "InvoiceTime": {
                                          "type": "string",
                                          "description": "Fatura tarihi, UTC (`Z` ekli). Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                        },
                                        "PackageNumber": {
                                          "type": "string",
                                          "description": "Pazaryerinin paket numarası (ör. Trendyol paket ID'si). Yoksa boş metin. Not: `GetOrder` bu alanda `SetOrderDetailInvoiced` ile yazılan StockMount paket numarasını döndürür."
                                        },
                                        "PackageTime": {
                                          "type": "string",
                                          "description": "Paket tarihi, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                        },
                                        "WayBillNumber": {
                                          "type": "string",
                                          "description": "İrsaliye numarası. Yoksa boş metin."
                                        },
                                        "WayBillTime": {
                                          "type": "string",
                                          "description": "İrsaliye tarihi, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                        },
                                        "Unread": {
                                          "type": "boolean",
                                          "description": "Satır StockMount panelinde okunmadı olarak işaretliyse `true`."
                                        },
                                        "SmUserSchemaId": {
                                          "type": "integer",
                                          "description": "Eşleşen StockMount ürününün şablon (şema) ID'si. Eşleşme yoksa `0`."
                                        },
                                        "SchemaName": {
                                          "type": "string",
                                          "description": "Eşleşen ürünün şablon adı. Yoksa boş metin."
                                        },
                                        "DeliveryTitle": {
                                          "type": "string",
                                          "description": "Teslimat adresindeki alıcı adı/unvanı."
                                        },
                                        "Address": {
                                          "type": "string",
                                          "description": "Teslimat adresi, posta kodu, ilçe ve il değerlerinin boşlukla birleştirilmiş hali. Satırda adres yoksa yalnızca boşluklardan oluşabilir."
                                        },
                                        "District": {
                                          "type": "string",
                                          "description": "Teslimat ilçesi."
                                        },
                                        "City": {
                                          "type": "string",
                                          "description": "Teslimat ili."
                                        },
                                        "Country": {
                                          "type": "string",
                                          "description": "Teslimat ülkesi. Boş dönebilir."
                                        },
                                        "PostalCode": {
                                          "type": "string",
                                          "description": "Siparişin (satırın değil) posta kodu."
                                        },
                                        "Telephone": {
                                          "type": "string",
                                          "description": "Teslimat telefonu."
                                        },
                                        "CargoCompany": {
                                          "type": "string",
                                          "description": "Kargo firması adı."
                                        },
                                        "CargoLabelCode": {
                                          "type": "string",
                                          "description": "Kargo takip / etiket kodu. Boşsa satıra henüz kargo bilgisi girilmemiştir."
                                        },
                                        "CargoPayment": {
                                          "type": "string",
                                          "description": "Kargo ücretini kimin ödediği; genelde `Seller`, `Buyer` veya `Unknown`."
                                        },
                                        "CargoDate": {
                                          "type": "string",
                                          "description": "Kargo bilgisinin girildiği tarih, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                        },
                                        "ShipmentCampaignCode": {
                                          "type": "string",
                                          "description": "Pazaryerinin kargo kampanya / gönderi kodu."
                                        },
                                        "LastModificationTime": {
                                          "type": "string",
                                          "description": "Satırın son değişiklik zamanı. Diğer tarihlerden farklı olarak UTC'ye çevrilmez; ofsetsiz Türkiye saatidir (ör. `2026-11-05T14:30:00`)."
                                        },
                                        "RowSalt": {
                                          "type": "string",
                                          "description": "İç alan (şifreleme tuzu, Base64). Normalde dönmez; dönerse yok sayın."
                                        }
                                      }
                                    },
                                    "description": "Siparişin istenen durumdaki satırları."
                                  }
                                }
                              },
                              "description": "Bu sayfadaki siparişler."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "TotalOrderCount": 1,
                    "TotalNotInvoicedCount": 0,
                    "TotalUnreadCount": 0,
                    "Orders": [
                      {
                        "OrderId": 4567890,
                        "StoreId": 12345,
                        "IntegrationOrderCode": "10293847",
                        "OrderDate": "2026-11-04T07:12:45Z",
                        "OrderStatus": "New",
                        "OrderType": 0,
                        "Name": "Ayşe",
                        "Surname": "Yılmaz",
                        "Fullname": "Ayşe Yılmaz",
                        "Nickname": "ayseyilmaz",
                        "PersonType": "Gerçek Kişi",
                        "PersonalIdentification": "11111111111",
                        "TaxAuthority": "",
                        "TaxNumber": "11111111111",
                        "Email": "ayse@example.com",
                        "Telephone": "05551112233",
                        "Address": "Örnek Mah. Deneme Sok. No:5 D:3 34710 Kadıköy İstanbul",
                        "District": "Kadıköy",
                        "City": "İstanbul",
                        "PostalCode": "34710",
                        "Country": "Türkiye",
                        "Notes": "",
                        "Member": "",
                        "PaymentType": "",
                        "OrderDetails": [
                          {
                            "OrderDetailId": 9876543,
                            "StoreId": 12345,
                            "IntegrationOrderDetailId": "3456789012",
                            "ProductId": 554433,
                            "IntegrationProductCode": "TSH-001-BLK-M",
                            "ProductName": "Basic Tişört Siyah M",
                            "ProductCode": "TSH-001",
                            "ProductCode2": "",
                            "Barcode": "8691234567890",
                            "MerchantSku": "TSH-001-BLK-M",
                            "ProductImage": "https://cdn.example.com/img/tsh-001.jpg",
                            "ProductUnit": "Adet",
                            "ProductVariantCode": "TSH-001-BLK-M",
                            "ProductVariantId": 0,
                            "VariantProductCode": "TSH-001-BLK-M",
                            "VariantProductBarcode": "8691234567890",
                            "VariantPhrase": "Renk: Siyah, Beden: M",
                            "VariantName1": "Renk",
                            "VariantValue1": "Siyah",
                            "VariantName2": "Beden",
                            "VariantValue2": "M",
                            "VariantName3": "",
                            "VariantValue3": "",
                            "Price": 249.9,
                            "Quantity": 2,
                            "RawQuantity": 2.0,
                            "TaxRate": 20.0,
                            "DetailType": 1,
                            "OrderStatus": "New",
                            "Invoiced": false,
                            "InvoiceNumber": "",
                            "InvoiceTime": "1899-12-31T22:03:00Z",
                            "PackageNumber": "",
                            "PackageTime": "1899-12-31T22:03:00Z",
                            "WayBillNumber": "",
                            "WayBillTime": "1899-12-31T22:03:00Z",
                            "Unread": true,
                            "SmUserSchemaId": 77,
                            "SchemaName": "Giyim",
                            "DeliveryTitle": "Ayşe Yılmaz",
                            "Address": "Örnek Mah. Deneme Sok. No:5 D:3 34710 Kadıköy İstanbul",
                            "District": "Kadıköy",
                            "City": "İstanbul",
                            "Country": "Türkiye",
                            "PostalCode": "34710",
                            "Telephone": "05551112233",
                            "CargoCompany": "",
                            "CargoLabelCode": "",
                            "CargoPayment": "Seller",
                            "CargoDate": "1899-12-31T22:03:00Z",
                            "ShipmentCampaignCode": "7330012345678",
                            "LastModificationTime": "2026-11-04T10:15:22"
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetOrder": {
      "post": {
        "operationId": "GetOrder",
        "tags": [
          "Siparişler"
        ],
        "summary": "Tek siparişi getir",
        "description": "**Tek siparişi getir** — `OrderId` ile tek bir siparişi tüm satırlarıyla döndürür.\n\nYalnızca `OrderId` kullanılır. `StoreId` filtre değildir; sadece Amazon mağazalarında şifre çözme için okunur. Diğer `GetSales` alanları yok sayılır.\n\nYanıt `GetSales` içindeki tek bir sipariş ile aynı yapıdadır, ancak farkları vardır: tüm satırlar durumdan bağımsız döner; `OrderStatus` siparişin genel durumudur ve her satırda aynı değer görünür (satır durumu için `GetOrderDetailStatus` kullanın); `PersonType`, `PaymentType` ve `Country` dönmez; `LastModificationTime` her zaman `0001-01-01T00:00:00` döner; `PackageNumber` pazaryeri paket numarası yerine `SetOrderDetailInvoiced` ile yazılan değeri içerir.\n\nTarih kuralları `GetSales` ile aynıdır: `OrderDate`, `CargoDate`, `InvoiceTime`, `PackageTime`, `WayBillTime` UTC'dir (`Z` ekli); boş tarihler `1899-12-31T22:03:00Z` döner.\n\nAlıcı ve adres alanları sipariş kaydından okunur. `GetSales` ayrıca güncellenmiş adres kaydını da okur; iki uçta adres farklıysa `GetSales` değerini esas alın.\n\nVar olmayan bir `OrderId` için `Result` false, `ErrorCode` `99999` döner (`ErrorMessage` bir .NET hata metnidir). `OrderId` gönderilmezse `00003` / `OrderId` döner.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetOrder",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "OrderId": {
                    "type": "integer",
                    "description": "StockMount sipariş ID'si (`GetSales` yanıtındaki `OrderId`)."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "İsteğe bağlı. Yalnızca Amazon şifre çözme kontrolü için kullanılır; gönderilmezse siparişin mağazası kullanılır."
                  }
                },
                "required": [
                  "ApiCode",
                  "OrderId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "OrderId": 4567890
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "OrderId": {
                              "type": "integer",
                              "description": "StockMount sipariş ID'si. `GetOrder`, `SetOrderNotes` gibi uçlarda bu değeri kullanın."
                            },
                            "StoreId": {
                              "type": "integer",
                              "description": "Mağaza ID'si."
                            },
                            "IntegrationOrderCode": {
                              "type": "string",
                              "description": "Pazaryerinin sipariş numarası."
                            },
                            "OrderDate": {
                              "type": "string",
                              "description": "Sipariş tarihi, UTC (`Z` ekli). Örn. Türkiye saatiyle 14:30 olan sipariş `…T11:30:00Z` döner."
                            },
                            "OrderStatus": {
                              "type": "string",
                              "description": "Siparişin genel durumu (sipariş tablosundaki değer). Satırların güncel durumu farklı olabilir; `GetOrderDetailStatus` ile kontrol edin."
                            },
                            "OrderType": {
                              "type": "integer",
                              "description": "Sipariş tipi.\n\n- `0`: Standart sipariş.\n- `1`: Trendyol muadil ürün siparişi.\n- `2`: Trendyol yurt dışı (mikro ihracat) siparişi.\n- `3`: Trendyol yurt dışı ve muadil sipariş.\n- `10`: Hepsiburada Şimdi Al Sonra Öde (BNPL) siparişi."
                            },
                            "Name": {
                              "type": "string",
                              "description": "Alıcının adı."
                            },
                            "Surname": {
                              "type": "string",
                              "description": "Alıcının soyadı."
                            },
                            "Fullname": {
                              "type": "string",
                              "description": "Alıcı kurumsal ise firma unvanı, değilse ad soyad. Ayrı bir `CompanyTitle` alanı dönmez."
                            },
                            "Nickname": {
                              "type": "string",
                              "description": "Alıcının pazaryerindeki kullanıcı adı."
                            },
                            "PersonalIdentification": {
                              "type": "string",
                              "description": "TC kimlik numarası."
                            },
                            "TaxAuthority": {
                              "type": "string",
                              "description": "Vergi dairesi."
                            },
                            "TaxNumber": {
                              "type": "string",
                              "description": "Vergi numarası."
                            },
                            "Email": {
                              "type": "string",
                              "description": "Alıcının e-posta adresi."
                            },
                            "Telephone": {
                              "type": "string",
                              "description": "Alıcının telefonu."
                            },
                            "Address": {
                              "type": "string",
                              "description": "Fatura adresi, posta kodu, ilçe ve il değerlerinin boşlukla birleştirilmiş hali."
                            },
                            "District": {
                              "type": "string",
                              "description": "İlçe."
                            },
                            "City": {
                              "type": "string",
                              "description": "İl."
                            },
                            "PostalCode": {
                              "type": "string",
                              "description": "Posta kodu."
                            },
                            "Notes": {
                              "type": "string",
                              "description": "Sipariş notu (`SetOrderNotes` ile yazılır)."
                            },
                            "Member": {
                              "type": "string",
                              "description": "Pazaryerinin ham üyelik bilgisi (ör. IdeaSoft JSON metni). Çoğunlukla boş."
                            },
                            "RowSalt": {
                              "type": "string",
                              "description": "İç alan (şifreleme tuzu, Base64). Normalde dönmez; dönerse yok sayın."
                            },
                            "OrderDetails": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "OrderDetailId": {
                                    "type": "integer",
                                    "description": "StockMount sipariş satırı ID'si. Diğer satır uçlarında bu değeri kullanın."
                                  },
                                  "StoreId": {
                                    "type": "integer",
                                    "description": "Mağaza ID'si."
                                  },
                                  "IntegrationOrderDetailId": {
                                    "type": "string",
                                    "description": "Satırın pazaryerindeki ID'si. Ek hizmet satırlarında `{siparişNo}_Service` gibi `_` içeren yapay bir değer olabilir."
                                  },
                                  "ProductId": {
                                    "type": "integer",
                                    "description": "Eşleşen StockMount ürün ID'si. Eşleşme yoksa `0`."
                                  },
                                  "IntegrationProductCode": {
                                    "type": "string",
                                    "description": "Ürünün pazaryerindeki kodu. Ek hizmet satırlarında sabit kodlar kullanılır: `999999999999` hizmet bedeli, `999999999998` vade farkı, `999999999997` komisyon, `999999999996` ödeme hizmet bedeli, `999999999995` kargo ücreti, `999999999994` hediye paketi, `999999999993` cari ödeme hizmet bedeli."
                                  },
                                  "ProductName": {
                                    "type": "string",
                                    "description": "Pazaryerindeki ürün adı. Boşsa eşleşen StockMount ürününün adı. İkisi de yoksa alan dönmez."
                                  },
                                  "ProductCode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount ürün kodu. Eşleşme yoksa `MerchantSku`, o da yoksa `IntegrationProductCode`."
                                  },
                                  "ProductCode2": {
                                    "type": "string",
                                    "description": "StockMount ürününün ikinci kodu. Yoksa boş metin."
                                  },
                                  "Barcode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount ürününün barkodu. Eşleşme yoksa boş metin."
                                  },
                                  "MerchantSku": {
                                    "type": "string",
                                    "description": "Pazaryerinin satıcı stok kodu (SKU)."
                                  },
                                  "ProductImage": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount ürününün ilk görseli. Yoksa pazaryerinin görsel adresi."
                                  },
                                  "ProductUnit": {
                                    "type": "string",
                                    "description": "Satış birimi (pazaryeri bildiriyorsa)."
                                  },
                                  "ProductVariantCode": {
                                    "type": "string",
                                    "description": "Satırın varyant kodu. Yoksa boş metin."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Her zaman `0` döner; kullanmayın."
                                  },
                                  "VariantProductCode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount varyantının kodu. Yoksa boş metin."
                                  },
                                  "VariantProductBarcode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount varyantının barkodu. Yoksa boş metin."
                                  },
                                  "VariantPhrase": {
                                    "type": "string",
                                    "description": "Pazaryerinin varyant açıklaması (ör. `Renk: Siyah, Beden: M`)."
                                  },
                                  "VariantName1": {
                                    "type": "string",
                                    "description": "1. varyant özelliğinin adı."
                                  },
                                  "VariantValue1": {
                                    "type": "string",
                                    "description": "1. varyant özelliğinin değeri."
                                  },
                                  "VariantName2": {
                                    "type": "string",
                                    "description": "2. varyant özelliğinin adı."
                                  },
                                  "VariantValue2": {
                                    "type": "string",
                                    "description": "2. varyant özelliğinin değeri."
                                  },
                                  "VariantName3": {
                                    "type": "string",
                                    "description": "3. varyant özelliğinin adı."
                                  },
                                  "VariantValue3": {
                                    "type": "string",
                                    "description": "3. varyant özelliğinin değeri."
                                  },
                                  "Price": {
                                    "type": "number",
                                    "description": "Birim fiyat. Satır toplamı = `Price` × `RawQuantity` (StockMount raporları da böyle hesaplar)."
                                  },
                                  "Quantity": {
                                    "type": "integer",
                                    "description": "Adet; küsuratlı miktarlarda aşağı yuvarlanmış tam sayı. Kesin değer için `RawQuantity` kullanın."
                                  },
                                  "RawQuantity": {
                                    "type": "number",
                                    "description": "Ondalıklı (kesin) miktar."
                                  },
                                  "TaxRate": {
                                    "type": "number",
                                    "description": "KDV oranı (ör. `20`). Satır bir StockMount ürünüyle eşleşmişse ve ürünün oranı 0'dan büyükse ürünün oranı, aksi halde pazaryerinin bildirdiği oran."
                                  },
                                  "DetailType": {
                                    "type": "integer",
                                    "description": "Satır tipi.\n\n- `0`: Belirtilmemiş (varsayılan).\n- `1`: Ürün satırı.\n- `2`: Ek hizmet satırı (hizmet bedeli, kargo ücreti vb.).\n- `3`: Vade farkı satırı."
                                  },
                                  "OrderStatus": {
                                    "type": "string",
                                    "description": "Siparişin genel durumu (sipariş tablosundan); satırın kendi durumu değildir. Satır durumu için `GetOrderDetailStatus` kullanın."
                                  },
                                  "Invoiced": {
                                    "type": "boolean",
                                    "description": "Satır faturalandı olarak işaretliyse `true`."
                                  },
                                  "InvoiceNumber": {
                                    "type": "string",
                                    "description": "Fatura numarası. Yoksa boş metin."
                                  },
                                  "InvoiceTime": {
                                    "type": "string",
                                    "description": "Fatura tarihi, UTC (`Z` ekli). Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "PackageNumber": {
                                    "type": "string",
                                    "description": "`SetOrderDetailInvoiced` ile yazılan paket numarası. Yoksa boş metin. Not: `GetSales` bu alanda pazaryerinin paket numarasını döndürür."
                                  },
                                  "PackageTime": {
                                    "type": "string",
                                    "description": "Paket tarihi, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "WayBillNumber": {
                                    "type": "string",
                                    "description": "İrsaliye numarası. Yoksa boş metin."
                                  },
                                  "WayBillTime": {
                                    "type": "string",
                                    "description": "İrsaliye tarihi, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "Unread": {
                                    "type": "boolean",
                                    "description": "Satır StockMount panelinde okunmadı olarak işaretliyse `true`."
                                  },
                                  "SmUserSchemaId": {
                                    "type": "integer",
                                    "description": "Eşleşen StockMount ürününün şablon (şema) ID'si. Eşleşme yoksa `0`."
                                  },
                                  "SchemaName": {
                                    "type": "string",
                                    "description": "Eşleşen ürünün şablon adı. Yoksa boş metin."
                                  },
                                  "DeliveryTitle": {
                                    "type": "string",
                                    "description": "Teslimat adresindeki alıcı adı/unvanı."
                                  },
                                  "Address": {
                                    "type": "string",
                                    "description": "Teslimat adresi, posta kodu, ilçe ve il değerlerinin boşlukla birleştirilmiş hali. Satırda adres yoksa yalnızca boşluklardan oluşabilir."
                                  },
                                  "District": {
                                    "type": "string",
                                    "description": "Teslimat ilçesi."
                                  },
                                  "City": {
                                    "type": "string",
                                    "description": "Teslimat ili."
                                  },
                                  "PostalCode": {
                                    "type": "string",
                                    "description": "Siparişin (satırın değil) posta kodu."
                                  },
                                  "Telephone": {
                                    "type": "string",
                                    "description": "Teslimat telefonu."
                                  },
                                  "CargoCompany": {
                                    "type": "string",
                                    "description": "Kargo firması adı."
                                  },
                                  "CargoLabelCode": {
                                    "type": "string",
                                    "description": "Kargo takip / etiket kodu. Boşsa satıra henüz kargo bilgisi girilmemiştir."
                                  },
                                  "CargoPayment": {
                                    "type": "string",
                                    "description": "Kargo ücretini kimin ödediği; genelde `Seller`, `Buyer` veya `Unknown`."
                                  },
                                  "CargoDate": {
                                    "type": "string",
                                    "description": "Kargo bilgisinin girildiği tarih, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "ShipmentCampaignCode": {
                                    "type": "string",
                                    "description": "Pazaryerinin kargo kampanya / gönderi kodu."
                                  },
                                  "LastModificationTime": {
                                    "type": "string",
                                    "description": "Bu uçta doldurulmaz; her zaman `0001-01-01T00:00:00` döner. Gerçek değer için `GetSales` kullanın."
                                  },
                                  "RowSalt": {
                                    "type": "string",
                                    "description": "İç alan (şifreleme tuzu, Base64). Normalde dönmez; dönerse yok sayın."
                                  }
                                }
                              },
                              "description": "Siparişin tüm satırları."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "OrderId": 4567890,
                    "StoreId": 12345,
                    "IntegrationOrderCode": "10293847",
                    "OrderDate": "2026-11-04T07:12:45Z",
                    "OrderStatus": "New",
                    "OrderType": 0,
                    "Name": "Ayşe",
                    "Surname": "Yılmaz",
                    "Fullname": "Ayşe Yılmaz",
                    "Nickname": "ayseyilmaz",
                    "PersonalIdentification": "11111111111",
                    "TaxAuthority": "",
                    "TaxNumber": "11111111111",
                    "Email": "ayse@example.com",
                    "Telephone": "05551112233",
                    "Address": "Örnek Mah. Deneme Sok. No:5 D:3 34710 Kadıköy İstanbul",
                    "District": "Kadıköy",
                    "City": "İstanbul",
                    "PostalCode": "34710",
                    "Notes": "",
                    "Member": "",
                    "OrderDetails": [
                      {
                        "OrderDetailId": 9876543,
                        "StoreId": 12345,
                        "IntegrationOrderDetailId": "3456789012",
                        "ProductId": 554433,
                        "IntegrationProductCode": "TSH-001-BLK-M",
                        "ProductName": "Basic Tişört Siyah M",
                        "ProductCode": "TSH-001",
                        "ProductCode2": "",
                        "Barcode": "8691234567890",
                        "MerchantSku": "TSH-001-BLK-M",
                        "ProductImage": "https://cdn.example.com/img/tsh-001.jpg",
                        "ProductUnit": "Adet",
                        "ProductVariantCode": "TSH-001-BLK-M",
                        "ProductVariantId": 0,
                        "VariantProductCode": "TSH-001-BLK-M",
                        "VariantProductBarcode": "8691234567890",
                        "VariantPhrase": "Renk: Siyah, Beden: M",
                        "VariantName1": "Renk",
                        "VariantValue1": "Siyah",
                        "VariantName2": "Beden",
                        "VariantValue2": "M",
                        "VariantName3": "",
                        "VariantValue3": "",
                        "Price": 249.9,
                        "Quantity": 2,
                        "RawQuantity": 2.0,
                        "TaxRate": 20.0,
                        "DetailType": 1,
                        "OrderStatus": "New",
                        "Invoiced": false,
                        "InvoiceNumber": "",
                        "InvoiceTime": "1899-12-31T22:03:00Z",
                        "PackageNumber": "",
                        "PackageTime": "1899-12-31T22:03:00Z",
                        "WayBillNumber": "",
                        "WayBillTime": "1899-12-31T22:03:00Z",
                        "Unread": true,
                        "SmUserSchemaId": 77,
                        "SchemaName": "Giyim",
                        "DeliveryTitle": "Ayşe Yılmaz",
                        "Address": "Örnek Mah. Deneme Sok. No:5 D:3 34710 Kadıköy İstanbul",
                        "District": "Kadıköy",
                        "City": "İstanbul",
                        "PostalCode": "34710",
                        "Telephone": "05551112233",
                        "CargoCompany": "",
                        "CargoLabelCode": "",
                        "CargoPayment": "Seller",
                        "CargoDate": "1899-12-31T22:03:00Z",
                        "ShipmentCampaignCode": "7330012345678",
                        "LastModificationTime": "0001-01-01T00:00:00"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetOrder": {
      "post": {
        "operationId": "SetOrder",
        "tags": [
          "Siparişler"
        ],
        "summary": "Sipariş oluştur veya güncelle",
        "description": "**Sipariş oluştur veya güncelle** — StockMount tipi bir mağazaya dışarıdan sipariş ekler veya mevcut siparişi günceller.\n\nYalnızca StockMount tipi mağazalarda (pazaryeri `IntegrationId` = 9999) çalışır. Pazaryeri mağazalarına (Trendyol, Hepsiburada vb.) sipariş yazamazsınız; bu durumda `10001` / `Store has to be StockMount store!` döner.\n\n`Order.OrderId` 0 veya gönderilmezse yeni sipariş oluşturulur. Aynı mağazada aynı `IntegrationOrderCode` zaten varsa sipariş eklenmez ve hata döner. `Order.OrderId` doluysa o sipariş güncellenir; siparişin mağazada olmaması `50006` döndürür.\n\nGüncellemede siparişin tüm satırları silinip istekteki satırlar yeniden eklenir; bu yüzden satırların `OrderDetailId` değerleri değişir. Güncelleme `CompanyTitle`, `Nickname` ve `IntegrationOrderCode` alanlarını değiştirmez. İşlem tek bir veritabanı işleminde (transaction) yapılır; hata olursa hiçbir değişiklik kalmaz.\n\nVarsayılanlar: `OrderDate` gönderilmezse veya 2000'den önceyse sunucu saati (Türkiye) kullanılır. `Name` boşsa `Fullname` kullanılır. Satırda `Address` boşsa sipariş adresi, il, ilçe, posta kodu, telefon ve teslimat adı (unvan ya da ad soyad) kopyalanır. Satır `OrderStatus` boşsa siparişin durumu kullanılır. `CargoPayment` değeri `Seller`, `Buyer` veya `Unknown` değilse `Unknown` olur.\n\nTarihleri ofsetsiz Türkiye saatiyle gönderin (bkz. `GetSales`). `Price` ve `Quantity` veritabanında 2 ondalık basamakla saklanır.\n\nBaşarılı olursa `Response` kaydedilen siparişi `GetOrder` biçiminde döndürür. İstekteki `Order.Email`, satır `InvoiceNumber`, `InvoiceTime`, `PackageNumber`, `PackageTime`, `WayBillNumber`, `WayBillTime` ve `VariantProductCode` alanları kaydedilmez; fatura bilgisi için `SetOrderDetailInvoiced` kullanın.\n\nDoğrulama hataları `00003` ile döner ve `ErrorMessage` eksik alanı belirtir: `OrderDetails`, `StoreId`, `IntegrationOrderCode`, `Nickname`, `OrderStatus`, `CompanyTitle/Fullname`, `Address`, `OrderDetail.IntegrationProductCode`, `OrderDetail.ProductName`, `OrderDetail.Quantity`.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetOrder",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "StockMount tipi mağazanın ID'si."
                  },
                  "Order": {
                    "type": "object",
                    "properties": {
                      "OrderId": {
                        "type": "integer",
                        "description": "Güncellenecek siparişin ID'si. Yeni sipariş için 0 veya göndermeyin."
                      },
                      "IntegrationOrderCode": {
                        "type": "string",
                        "description": "Sipariş numaranız. Mağaza içinde benzersiz olmalı. En fazla 50 karakter."
                      },
                      "OrderStatus": {
                        "type": "string",
                        "description": "Sipariş durumu (büyük/küçük harf duyarsız).\n\n- `New`: Yeni.\n- `Approved`: Onaylandı.\n- `Rejected`: Reddedildi.\n- `Shipped`: Kargoya verildi.\n- `Delivered`: Teslim edildi.\n- `Completed`: Tamamlandı."
                      },
                      "Nickname": {
                        "type": "string",
                        "description": "Alıcının kullanıcı adı / müşteri kodu. En fazla 100 karakter."
                      },
                      "Fullname": {
                        "type": "string",
                        "description": "Alıcının adı soyadı. `CompanyTitle` boşsa zorunlu."
                      },
                      "CompanyTitle": {
                        "type": "string",
                        "description": "Firma unvanı. `Fullname` boşsa zorunlu. Güncellemede değişmez."
                      },
                      "Address": {
                        "type": "string",
                        "description": "Adres. En fazla 500 karakter."
                      },
                      "OrderDate": {
                        "type": "string",
                        "description": "Sipariş tarihi, ofsetsiz Türkiye saati. Varsayılan: şimdiki zaman."
                      },
                      "Name": {
                        "type": "string",
                        "description": "Alıcının adı. Boşsa `Fullname` kullanılır."
                      },
                      "Surname": {
                        "type": "string",
                        "description": "Alıcının soyadı."
                      },
                      "City": {
                        "type": "string",
                        "description": "İl."
                      },
                      "District": {
                        "type": "string",
                        "description": "İlçe."
                      },
                      "PostalCode": {
                        "type": "string",
                        "description": "Posta kodu. En fazla 10 karakter."
                      },
                      "Telephone": {
                        "type": "string",
                        "description": "Telefon."
                      },
                      "PersonalIdentification": {
                        "type": "string",
                        "description": "TC kimlik numarası."
                      },
                      "TaxAuthority": {
                        "type": "string",
                        "description": "Vergi dairesi."
                      },
                      "TaxNumber": {
                        "type": "string",
                        "description": "Vergi numarası."
                      },
                      "Notes": {
                        "type": "string",
                        "description": "Sipariş notu."
                      },
                      "OrderDetails": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "IntegrationProductCode": {
                              "type": "string",
                              "description": "Ürün kodu. En fazla 50 karakter."
                            },
                            "ProductName": {
                              "type": "string",
                              "description": "Ürün adı. En fazla 200 karakter."
                            },
                            "Quantity": {
                              "type": "integer",
                              "description": "Adet; en az 1."
                            },
                            "Price": {
                              "type": "number",
                              "description": "Birim fiyat."
                            },
                            "TaxRate": {
                              "type": "number",
                              "description": "KDV oranı (ör. `20`)."
                            },
                            "IntegrationOrderDetailId": {
                              "type": "string",
                              "description": "Satırın sizin sisteminizdeki ID'si."
                            },
                            "ProductId": {
                              "type": "integer",
                              "description": "Bağlanacak StockMount ürün ID'si. Varsayılan 0 (eşleşme yok)."
                            },
                            "ProductVariantId": {
                              "type": "integer",
                              "description": "Bağlanacak StockMount varyant ID'si."
                            },
                            "MerchantSku": {
                              "type": "string",
                              "description": "Satıcı stok kodu."
                            },
                            "ProductImage": {
                              "type": "string",
                              "description": "Ürün görsel adresi."
                            },
                            "OrderStatus": {
                              "type": "string",
                              "description": "Satır durumu. Boşsa sipariş durumu kullanılır. Doğrulanmaz."
                            },
                            "DetailType": {
                              "type": "integer",
                              "description": "Satır tipi. Varsayılan 0.\n\n- `0`: Belirtilmemiş (varsayılan).\n- `1`: Ürün satırı.\n- `2`: Ek hizmet satırı (hizmet bedeli, kargo ücreti vb.).\n- `3`: Vade farkı satırı."
                            },
                            "Invoiced": {
                              "type": "boolean",
                              "description": "Faturalandı işareti. Varsayılan false."
                            },
                            "DeliveryTitle": {
                              "type": "string",
                              "description": "Teslimat adı / unvanı."
                            },
                            "Address": {
                              "type": "string",
                              "description": "Teslimat adresi. Boşsa sipariş adresi ve iletişim alanları kopyalanır."
                            },
                            "City": {
                              "type": "string",
                              "description": "Teslimat ili."
                            },
                            "District": {
                              "type": "string",
                              "description": "Teslimat ilçesi."
                            },
                            "PostalCode": {
                              "type": "string",
                              "description": "Teslimat posta kodu."
                            },
                            "Telephone": {
                              "type": "string",
                              "description": "Teslimat telefonu."
                            },
                            "CargoCompany": {
                              "type": "string",
                              "description": "Kargo firması."
                            },
                            "CargoLabelCode": {
                              "type": "string",
                              "description": "Kargo takip kodu."
                            },
                            "CargoPayment": {
                              "type": "string",
                              "description": "Kargo ödemesi.\n\n- `Seller`: Satıcı öder.\n- `Buyer`: Alıcı öder.\n- `Unknown`: Bilinmiyor (geçersiz değerler buna çevrilir)."
                            },
                            "CargoDate": {
                              "type": "string",
                              "description": "Kargo tarihi; yalnızca 2000 sonrası değerler kaydedilir."
                            },
                            "ShipmentCampaignCode": {
                              "type": "string",
                              "description": "Kargo kampanya / gönderi kodu."
                            },
                            "PaymentMethod": {
                              "type": "string",
                              "description": "Ödeme yöntemi. En fazla 50 karakter."
                            },
                            "VariantName1": {
                              "type": "string",
                              "description": "1. varyant özelliğinin adı."
                            },
                            "VariantValue1": {
                              "type": "string",
                              "description": "1. varyant özelliğinin değeri."
                            },
                            "VariantName2": {
                              "type": "string",
                              "description": "2. varyant özelliğinin adı."
                            },
                            "VariantValue2": {
                              "type": "string",
                              "description": "2. varyant özelliğinin değeri."
                            },
                            "VariantName3": {
                              "type": "string",
                              "description": "3. varyant özelliğinin adı."
                            },
                            "VariantValue3": {
                              "type": "string",
                              "description": "3. varyant özelliğinin değeri."
                            }
                          },
                          "required": [
                            "IntegrationProductCode",
                            "ProductName",
                            "Quantity"
                          ]
                        },
                        "description": "Sipariş satırları; en az bir satır."
                      }
                    },
                    "required": [
                      "IntegrationOrderCode",
                      "OrderStatus",
                      "Nickname",
                      "Address",
                      "OrderDetails"
                    ],
                    "description": "Sipariş."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "Order"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 67890,
                "Order": {
                  "IntegrationOrderCode": "WEB-2026-000123",
                  "OrderStatus": "New",
                  "OrderDate": "2026-11-05T14:30:00",
                  "Nickname": "musteri-4411",
                  "Fullname": "Mehmet Demir",
                  "Name": "Mehmet",
                  "Surname": "Demir",
                  "Address": "Atatürk Cad. No:12",
                  "District": "Nilüfer",
                  "City": "Bursa",
                  "PostalCode": "16110",
                  "Telephone": "05321234567",
                  "PersonalIdentification": "11111111111",
                  "TaxNumber": "11111111111",
                  "Notes": "Kapıya bırakılabilir.",
                  "OrderDetails": [
                    {
                      "IntegrationOrderDetailId": "WEB-2026-000123-1",
                      "IntegrationProductCode": "KUPA-350",
                      "ProductName": "Seramik Kupa 350 ml",
                      "Quantity": 3,
                      "Price": 129.9,
                      "TaxRate": 20,
                      "DetailType": 1,
                      "CargoPayment": "Seller"
                    }
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "OrderId": {
                              "type": "integer",
                              "description": "StockMount sipariş ID'si. `GetOrder`, `SetOrderNotes` gibi uçlarda bu değeri kullanın."
                            },
                            "StoreId": {
                              "type": "integer",
                              "description": "Mağaza ID'si."
                            },
                            "IntegrationOrderCode": {
                              "type": "string",
                              "description": "Pazaryerinin sipariş numarası."
                            },
                            "OrderDate": {
                              "type": "string",
                              "description": "Sipariş tarihi, UTC (`Z` ekli). Örn. Türkiye saatiyle 14:30 olan sipariş `…T11:30:00Z` döner."
                            },
                            "OrderStatus": {
                              "type": "string",
                              "description": "Siparişin genel durumu (sipariş tablosundaki değer). Satırların güncel durumu farklı olabilir; `GetOrderDetailStatus` ile kontrol edin."
                            },
                            "OrderType": {
                              "type": "integer",
                              "description": "Sipariş tipi.\n\n- `0`: Standart sipariş.\n- `1`: Trendyol muadil ürün siparişi.\n- `2`: Trendyol yurt dışı (mikro ihracat) siparişi.\n- `3`: Trendyol yurt dışı ve muadil sipariş.\n- `10`: Hepsiburada Şimdi Al Sonra Öde (BNPL) siparişi."
                            },
                            "Name": {
                              "type": "string",
                              "description": "Alıcının adı."
                            },
                            "Surname": {
                              "type": "string",
                              "description": "Alıcının soyadı."
                            },
                            "Fullname": {
                              "type": "string",
                              "description": "Alıcı kurumsal ise firma unvanı, değilse ad soyad. Ayrı bir `CompanyTitle` alanı dönmez."
                            },
                            "Nickname": {
                              "type": "string",
                              "description": "Alıcının pazaryerindeki kullanıcı adı."
                            },
                            "PersonalIdentification": {
                              "type": "string",
                              "description": "TC kimlik numarası."
                            },
                            "TaxAuthority": {
                              "type": "string",
                              "description": "Vergi dairesi."
                            },
                            "TaxNumber": {
                              "type": "string",
                              "description": "Vergi numarası."
                            },
                            "Email": {
                              "type": "string",
                              "description": "Alıcının e-posta adresi."
                            },
                            "Telephone": {
                              "type": "string",
                              "description": "Alıcının telefonu."
                            },
                            "Address": {
                              "type": "string",
                              "description": "Fatura adresi, posta kodu, ilçe ve il değerlerinin boşlukla birleştirilmiş hali."
                            },
                            "District": {
                              "type": "string",
                              "description": "İlçe."
                            },
                            "City": {
                              "type": "string",
                              "description": "İl."
                            },
                            "PostalCode": {
                              "type": "string",
                              "description": "Posta kodu."
                            },
                            "Notes": {
                              "type": "string",
                              "description": "Sipariş notu (`SetOrderNotes` ile yazılır)."
                            },
                            "Member": {
                              "type": "string",
                              "description": "Pazaryerinin ham üyelik bilgisi (ör. IdeaSoft JSON metni). Çoğunlukla boş."
                            },
                            "RowSalt": {
                              "type": "string",
                              "description": "İç alan (şifreleme tuzu, Base64). Normalde dönmez; dönerse yok sayın."
                            },
                            "OrderDetails": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "OrderDetailId": {
                                    "type": "integer",
                                    "description": "StockMount sipariş satırı ID'si. Diğer satır uçlarında bu değeri kullanın."
                                  },
                                  "StoreId": {
                                    "type": "integer",
                                    "description": "Mağaza ID'si."
                                  },
                                  "IntegrationOrderDetailId": {
                                    "type": "string",
                                    "description": "Satırın pazaryerindeki ID'si. Ek hizmet satırlarında `{siparişNo}_Service` gibi `_` içeren yapay bir değer olabilir."
                                  },
                                  "ProductId": {
                                    "type": "integer",
                                    "description": "Eşleşen StockMount ürün ID'si. Eşleşme yoksa `0`."
                                  },
                                  "IntegrationProductCode": {
                                    "type": "string",
                                    "description": "Ürünün pazaryerindeki kodu. Ek hizmet satırlarında sabit kodlar kullanılır: `999999999999` hizmet bedeli, `999999999998` vade farkı, `999999999997` komisyon, `999999999996` ödeme hizmet bedeli, `999999999995` kargo ücreti, `999999999994` hediye paketi, `999999999993` cari ödeme hizmet bedeli."
                                  },
                                  "ProductName": {
                                    "type": "string",
                                    "description": "Pazaryerindeki ürün adı. Boşsa eşleşen StockMount ürününün adı. İkisi de yoksa alan dönmez."
                                  },
                                  "ProductCode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount ürün kodu. Eşleşme yoksa `MerchantSku`, o da yoksa `IntegrationProductCode`."
                                  },
                                  "ProductCode2": {
                                    "type": "string",
                                    "description": "StockMount ürününün ikinci kodu. Yoksa boş metin."
                                  },
                                  "Barcode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount ürününün barkodu. Eşleşme yoksa boş metin."
                                  },
                                  "MerchantSku": {
                                    "type": "string",
                                    "description": "Pazaryerinin satıcı stok kodu (SKU)."
                                  },
                                  "ProductImage": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount ürününün ilk görseli. Yoksa pazaryerinin görsel adresi."
                                  },
                                  "ProductUnit": {
                                    "type": "string",
                                    "description": "Satış birimi (pazaryeri bildiriyorsa)."
                                  },
                                  "ProductVariantCode": {
                                    "type": "string",
                                    "description": "Satırın varyant kodu. Yoksa boş metin."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Her zaman `0` döner; kullanmayın."
                                  },
                                  "VariantProductCode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount varyantının kodu. Yoksa boş metin."
                                  },
                                  "VariantProductBarcode": {
                                    "type": "string",
                                    "description": "Eşleşen StockMount varyantının barkodu. Yoksa boş metin."
                                  },
                                  "VariantPhrase": {
                                    "type": "string",
                                    "description": "Pazaryerinin varyant açıklaması (ör. `Renk: Siyah, Beden: M`)."
                                  },
                                  "VariantName1": {
                                    "type": "string",
                                    "description": "1. varyant özelliğinin adı."
                                  },
                                  "VariantValue1": {
                                    "type": "string",
                                    "description": "1. varyant özelliğinin değeri."
                                  },
                                  "VariantName2": {
                                    "type": "string",
                                    "description": "2. varyant özelliğinin adı."
                                  },
                                  "VariantValue2": {
                                    "type": "string",
                                    "description": "2. varyant özelliğinin değeri."
                                  },
                                  "VariantName3": {
                                    "type": "string",
                                    "description": "3. varyant özelliğinin adı."
                                  },
                                  "VariantValue3": {
                                    "type": "string",
                                    "description": "3. varyant özelliğinin değeri."
                                  },
                                  "Price": {
                                    "type": "number",
                                    "description": "Birim fiyat. Satır toplamı = `Price` × `RawQuantity` (StockMount raporları da böyle hesaplar)."
                                  },
                                  "Quantity": {
                                    "type": "integer",
                                    "description": "Adet; küsuratlı miktarlarda aşağı yuvarlanmış tam sayı. Kesin değer için `RawQuantity` kullanın."
                                  },
                                  "RawQuantity": {
                                    "type": "number",
                                    "description": "Ondalıklı (kesin) miktar."
                                  },
                                  "TaxRate": {
                                    "type": "number",
                                    "description": "KDV oranı (ör. `20`). Satır bir StockMount ürünüyle eşleşmişse ve ürünün oranı 0'dan büyükse ürünün oranı, aksi halde pazaryerinin bildirdiği oran."
                                  },
                                  "DetailType": {
                                    "type": "integer",
                                    "description": "Satır tipi.\n\n- `0`: Belirtilmemiş (varsayılan).\n- `1`: Ürün satırı.\n- `2`: Ek hizmet satırı (hizmet bedeli, kargo ücreti vb.).\n- `3`: Vade farkı satırı."
                                  },
                                  "OrderStatus": {
                                    "type": "string",
                                    "description": "Siparişin genel durumu (sipariş tablosundan); satırın kendi durumu değildir. Satır durumu için `GetOrderDetailStatus` kullanın."
                                  },
                                  "Invoiced": {
                                    "type": "boolean",
                                    "description": "Satır faturalandı olarak işaretliyse `true`."
                                  },
                                  "InvoiceNumber": {
                                    "type": "string",
                                    "description": "Fatura numarası. Yoksa boş metin."
                                  },
                                  "InvoiceTime": {
                                    "type": "string",
                                    "description": "Fatura tarihi, UTC (`Z` ekli). Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "PackageNumber": {
                                    "type": "string",
                                    "description": "`SetOrderDetailInvoiced` ile yazılan paket numarası. Yoksa boş metin. Not: `GetSales` bu alanda pazaryerinin paket numarasını döndürür."
                                  },
                                  "PackageTime": {
                                    "type": "string",
                                    "description": "Paket tarihi, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "WayBillNumber": {
                                    "type": "string",
                                    "description": "İrsaliye numarası. Yoksa boş metin."
                                  },
                                  "WayBillTime": {
                                    "type": "string",
                                    "description": "İrsaliye tarihi, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "Unread": {
                                    "type": "boolean",
                                    "description": "Satır StockMount panelinde okunmadı olarak işaretliyse `true`."
                                  },
                                  "SmUserSchemaId": {
                                    "type": "integer",
                                    "description": "Eşleşen StockMount ürününün şablon (şema) ID'si. Eşleşme yoksa `0`."
                                  },
                                  "SchemaName": {
                                    "type": "string",
                                    "description": "Eşleşen ürünün şablon adı. Yoksa boş metin."
                                  },
                                  "DeliveryTitle": {
                                    "type": "string",
                                    "description": "Teslimat adresindeki alıcı adı/unvanı."
                                  },
                                  "Address": {
                                    "type": "string",
                                    "description": "Teslimat adresi, posta kodu, ilçe ve il değerlerinin boşlukla birleştirilmiş hali. Satırda adres yoksa yalnızca boşluklardan oluşabilir."
                                  },
                                  "District": {
                                    "type": "string",
                                    "description": "Teslimat ilçesi."
                                  },
                                  "City": {
                                    "type": "string",
                                    "description": "Teslimat ili."
                                  },
                                  "PostalCode": {
                                    "type": "string",
                                    "description": "Siparişin (satırın değil) posta kodu."
                                  },
                                  "Telephone": {
                                    "type": "string",
                                    "description": "Teslimat telefonu."
                                  },
                                  "CargoCompany": {
                                    "type": "string",
                                    "description": "Kargo firması adı."
                                  },
                                  "CargoLabelCode": {
                                    "type": "string",
                                    "description": "Kargo takip / etiket kodu. Boşsa satıra henüz kargo bilgisi girilmemiştir."
                                  },
                                  "CargoPayment": {
                                    "type": "string",
                                    "description": "Kargo ücretini kimin ödediği; genelde `Seller`, `Buyer` veya `Unknown`."
                                  },
                                  "CargoDate": {
                                    "type": "string",
                                    "description": "Kargo bilgisinin girildiği tarih, UTC. Değer yoksa `null` yerine `1899-12-31T22:03:00Z` döner (1900-01-01 Türkiye saatinin UTC karşılığı)."
                                  },
                                  "ShipmentCampaignCode": {
                                    "type": "string",
                                    "description": "Pazaryerinin kargo kampanya / gönderi kodu."
                                  },
                                  "LastModificationTime": {
                                    "type": "string",
                                    "description": "Bu uçta doldurulmaz; her zaman `0001-01-01T00:00:00` döner. Gerçek değer için `GetSales` kullanın."
                                  },
                                  "RowSalt": {
                                    "type": "string",
                                    "description": "İç alan (şifreleme tuzu, Base64). Normalde dönmez; dönerse yok sayın."
                                  }
                                }
                              },
                              "description": "Siparişin tüm satırları."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "OrderId": 4567999,
                    "StoreId": 67890,
                    "IntegrationOrderCode": "WEB-2026-000123",
                    "OrderDate": "2026-11-05T11:30:00Z",
                    "OrderStatus": "New",
                    "OrderType": 0,
                    "Name": "Mehmet",
                    "Surname": "Demir",
                    "Fullname": "Mehmet Demir",
                    "Nickname": "musteri-4411",
                    "PersonalIdentification": "11111111111",
                    "TaxAuthority": "",
                    "TaxNumber": "11111111111",
                    "Email": "",
                    "Telephone": "05321234567",
                    "Address": "Atatürk Cad. No:12 16110 Nilüfer Bursa",
                    "District": "Nilüfer",
                    "City": "Bursa",
                    "PostalCode": "16110",
                    "Notes": "Kapıya bırakılabilir.",
                    "Member": "",
                    "OrderDetails": [
                      {
                        "OrderDetailId": 9877001,
                        "StoreId": 67890,
                        "IntegrationOrderDetailId": "WEB-2026-000123-1",
                        "ProductId": 0,
                        "IntegrationProductCode": "KUPA-350",
                        "ProductName": "Seramik Kupa 350 ml",
                        "ProductCode": "KUPA-350",
                        "ProductCode2": "",
                        "Barcode": "",
                        "MerchantSku": "",
                        "ProductImage": "",
                        "ProductUnit": "",
                        "ProductVariantCode": "",
                        "ProductVariantId": 0,
                        "VariantProductCode": "",
                        "VariantProductBarcode": "",
                        "Price": 129.9,
                        "Quantity": 3,
                        "RawQuantity": 3.0,
                        "TaxRate": 20.0,
                        "DetailType": 1,
                        "OrderStatus": "New",
                        "Invoiced": false,
                        "InvoiceNumber": "",
                        "InvoiceTime": "1899-12-31T22:03:00Z",
                        "PackageNumber": "",
                        "PackageTime": "1899-12-31T22:03:00Z",
                        "WayBillNumber": "",
                        "WayBillTime": "1899-12-31T22:03:00Z",
                        "Unread": false,
                        "SmUserSchemaId": 0,
                        "SchemaName": "",
                        "DeliveryTitle": "Mehmet Demir",
                        "Address": "Atatürk Cad. No:12 16110 Nilüfer Bursa",
                        "District": "Nilüfer",
                        "City": "Bursa",
                        "PostalCode": "16110",
                        "Telephone": "05321234567",
                        "CargoCompany": "",
                        "CargoLabelCode": "",
                        "CargoPayment": "Seller",
                        "CargoDate": "1899-12-31T22:03:00Z",
                        "ShipmentCampaignCode": "",
                        "LastModificationTime": "0001-01-01T00:00:00"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetOrderNotes": {
      "post": {
        "operationId": "SetOrderNotes",
        "tags": [
          "Siparişler"
        ],
        "summary": "Sipariş notunu kaydet",
        "description": "**Sipariş notunu kaydet** — Bir siparişin StockMount içindeki notunu yazar veya siler.\n\nNot yalnızca StockMount'ta saklanır; pazaryerine gönderilmez. Mevcut notun üzerine yazılır. `Notes` boş veya gönderilmezse not silinir.\n\nGövde bir sipariş nesnesidir ama yalnızca `OrderId` ve `Notes` okunur; diğer alanlar yok sayılır. Başarıda `Response` boştur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetOrderNotes",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "OrderId": {
                    "type": "integer",
                    "description": "StockMount sipariş ID'si."
                  },
                  "Notes": {
                    "type": "string",
                    "description": "Yeni not. Boşsa mevcut not silinir."
                  }
                },
                "required": [
                  "ApiCode",
                  "OrderId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "OrderId": 4567890,
                "Notes": "Müşteri aradı, hediye paketi istedi."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/ConfirmOrRejectOrderItem": {
      "post": {
        "operationId": "ConfirmOrRejectOrderItem",
        "tags": [
          "Siparişler"
        ],
        "summary": "N11 sipariş kalemini onayla veya reddet",
        "description": "**N11 sipariş kalemini onayla veya reddet** — N11 mağazasındaki tek bir sipariş kalemini N11 üzerinde onaylar veya reddeder.\n\nYalnızca N11 mağazaları içindir; `IntegrationId` 2 olmalıdır. Diğer değerler `00003` / `IntegrationId` döndürür.\n\n`IntegrationOrderDetailId`, N11'in sayısal kalem ID'sidir (`GetSales` yanıtındaki `IntegrationOrderDetailId`). İçinde `_` olan değerler (ör. ek hizmet satırları) onayda atlanır. Her çağrıda tek kalem işlenir.\n\nReddetmede N11'e gerekçe olarak `...` gönderilir; gerekçe belirleyemezsiniz.\n\nİşlem N11 üzerinde yapılır. StockMount'taki satır durumu bu çağrıyla güncellenmez; bir sonraki N11 sipariş senkronizasyonunda güncellenir.\n\nDoğrulama hataları `00003` ile döner; `ErrorMessage`: `StoreId`, `Status`, `IntegrationId` veya `IntegrationOrderDetailId`.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/ConfirmOrRejectOrderItem",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "N11 mağazasının ID'si."
                  },
                  "IntegrationId": {
                    "type": "integer",
                    "description": "Pazaryeri ID'si; yalnızca `2` (N11) kabul edilir.\n\n- `2`: N11."
                  },
                  "IntegrationOrderDetailId": {
                    "type": "string",
                    "description": "N11 sipariş kalemi ID'si (sayısal)."
                  },
                  "Status": {
                    "type": "integer",
                    "description": "İşlem.\n\n- `1`: Onayla.\n- `2`: Reddet."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "IntegrationId",
                  "IntegrationOrderDetailId",
                  "Status"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 12345,
                "IntegrationId": 2,
                "IntegrationOrderDetailId": "245678901234",
                "Status": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetOrderShipmentInformation": {
      "post": {
        "operationId": "SetOrderShipmentInformation",
        "tags": [
          "Siparişler"
        ],
        "summary": "Kargo bilgisini gönder",
        "description": "**Kargo bilgisini gönder** — Bir sipariş satırının kargo firması ve takip kodunu pazaryerine gönderir ve StockMount'a kaydeder.\n\nYalnızca şu mağaza tiplerinde iş yapar: N11 (`IntegrationId` 2), T-Soft (22) ve StockMount (9999). GittiGidiyor (1) kodu hâlâ vardır ancak pazaryeri kapalıdır. Diğer pazaryerlerinde (Trendyol, Hepsiburada vb.) çağrı kargo bilgisi göndermez; `Result` false ve `ErrorCode` `60001` döner.\n\n`IntegrationId` gönderilmezse mağazadan bulunur. Mağazanın pazaryerini bildiğiniz için göndermeniz önerilir.\n\n`SendShipmentInformation` true olmalıdır; aksi halde `00003` / `SendShipmentInformation` döner. `OrderId` ve `IntegrationOrderDetailId` gönderilmezse `OrderDetailId` üzerinden bulunur.\n\n`ShipmentCompany`, pazaryerinin kargo firması kodudur: `GetIntegrationShipmentCompanies` yanıtındaki `Code` değeri. N11 için sayısal olmalıdır. T-Soft için T-Soft panelindeki kargo kodu ile karşılaştırılır. StockMount mağazalarında serbest metindir. Kod bulunamazsa `00004` / `ShipmentCompany` döner.\n\nSatırda zaten kargo takip kodu varsa `60002` / `Order item shipment information already exists !` döner; bilgi değiştirilemez.\n\nBaşarılı olunca StockMount'ta kargo firması (`ShipmentCompany` veya kargo firmasının adı, ardından `ShipmentBranch`), takip kodu ve kargo tarihi (şimdi) kaydedilir. Bu değerler siparişin aynı mağazadaki tüm satırlarına yazılır. Durum güncellenir: N11 ve StockMount için `Shipped`, T-Soft için `6`.\n\n`ShipmentCompanyName`, `ShipmentCompanyId`, `ShipmentMethod`, `CampaignNumber`, `SendPhoneMessage`, `UserMessage` ve `SmUser` alanları yok sayılır.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetOrderShipmentInformation",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "Mağaza ID'si."
                  },
                  "IntegrationId": {
                    "type": "integer",
                    "description": "Mağazanın pazaryeri kimliği: N11 `2`, T-Soft `22`, StockMount `9999`. Gönderilmezse mağazadan bulunur.\n\n- `2`: N11.\n- `22`: T-Soft.\n- `9999`: StockMount mağazası.\n- `1`: GittiGidiyor (kapalı)."
                  },
                  "OrderDetailId": {
                    "type": "integer",
                    "description": "StockMount sipariş satırı ID'si."
                  },
                  "SendShipmentInformation": {
                    "type": "boolean",
                    "description": "`true` olmalıdır."
                  },
                  "ShipmentCompany": {
                    "type": "string",
                    "description": "Kargo firması kodu (`GetIntegrationShipmentCompanies` → `Code`)."
                  },
                  "ShipmentTrackingCode": {
                    "type": "string",
                    "description": "Kargo takip kodu."
                  },
                  "ShipmentBranch": {
                    "type": "string",
                    "description": "Kargo şubesi. StockMount'ta firma adının sonuna eklenir. GittiGidiyor için zorunluydu."
                  },
                  "OrderId": {
                    "type": "integer",
                    "description": "StockMount sipariş ID'si. Gönderilmezse satırdan bulunur."
                  },
                  "IntegrationOrderDetailId": {
                    "type": "string",
                    "description": "Pazaryeri satır ID'si (N11, T-Soft). Gönderilmezse satırdan alınır."
                  },
                  "IntegrationOrderCode": {
                    "type": "string",
                    "description": "Pazaryeri sipariş numarası. Yalnızca GittiGidiyor için kullanılırdı."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "OrderDetailId",
                  "SendShipmentInformation",
                  "ShipmentCompany",
                  "ShipmentTrackingCode"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 12345,
                "IntegrationId": 2,
                "OrderDetailId": 9876543,
                "SendShipmentInformation": true,
                "ShipmentCompany": "344",
                "ShipmentTrackingCode": "1234567890123"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetOrderDetailInvoiced": {
      "post": {
        "operationId": "SetOrderDetailInvoiced",
        "tags": [
          "Siparişler"
        ],
        "summary": "Satırların fatura bilgisini kaydet",
        "description": "**Satırların fatura bilgisini kaydet** — Sipariş satırlarını faturalandı/faturalanmadı olarak işaretler; fatura, paket ve irsaliye numarası ile tarihlerini kaydeder.\n\nBilgi yalnızca StockMount'a yazılır; pazaryerine gönderilmez. Fatura linkini pazaryerine iletmek için `SetEinvoiceLink` kullanın.\n\nHer satır için `OrderDetailId` ve `StoreId` gönderin. `StoreId` yanlış veya eksikse satır sessizce güncellenmez, yine de `Result` true döner.\n\n`Invoiced` her çağrıda yazılır; gönderilmezse `false` kabul edilir ve satır faturalanmadı olarak işaretlenir. Fatura kayıt tarihi her çağrıda şimdiki zamana çekilir.\n\n`InvoiceNumber`, `PackageNumber`, `WayBillNumber` yalnızca dolu gönderilirse güncellenir; boş metin veya gönderilmemesi mevcut değeri korur. Tarih alanları da yalnızca gönderilirse güncellenir. Tarihleri ofsetsiz Türkiye saatiyle gönderin; `GetSales` bu tarihleri UTC'ye çevirerek döndürür.\n\nSatırlar tek tek işlenir; işlem bütünsel (transaction) değildir. Başka bir kullanıcıya ait satır işlemi durdurur ve `99999` döndürebilir; önceki satırlar güncellenmiş kalır. Başarıda `Response` boştur.\n\n`OrderDetails` boşsa `00003` / `OrderDetails`, bir satırda `OrderDetailId` < 1 ise `00003` / `OrderDetailId` döner.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetOrderDetailInvoiced",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "OrderDetails": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "OrderDetailId": {
                          "type": "integer",
                          "description": "StockMount sipariş satırı ID'si."
                        },
                        "StoreId": {
                          "type": "integer",
                          "description": "Satırın mağaza ID'si. Doğrulanmaz ama yanlışsa satır güncellenmez."
                        },
                        "Invoiced": {
                          "type": "boolean",
                          "description": "Faturalandı işareti. Varsayılan `false`."
                        },
                        "InvoiceNumber": {
                          "type": "string",
                          "description": "Fatura numarası. En fazla 64 karakter."
                        },
                        "InvoiceTime": {
                          "type": "string",
                          "description": "Fatura tarihi."
                        },
                        "PackageNumber": {
                          "type": "string",
                          "description": "Paket numarası. En fazla 64 karakter."
                        },
                        "PackageTime": {
                          "type": "string",
                          "description": "Paket tarihi."
                        },
                        "WayBillNumber": {
                          "type": "string",
                          "description": "İrsaliye numarası. En fazla 64 karakter."
                        },
                        "WayBillTime": {
                          "type": "string",
                          "description": "İrsaliye tarihi."
                        }
                      },
                      "required": [
                        "OrderDetailId",
                        "StoreId"
                      ]
                    },
                    "description": "Güncellenecek satırlar."
                  }
                },
                "required": [
                  "ApiCode",
                  "OrderDetails"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "OrderDetails": [
                  {
                    "OrderDetailId": 9876543,
                    "StoreId": 12345,
                    "Invoiced": true,
                    "InvoiceNumber": "ABC2026000000123",
                    "InvoiceTime": "2026-11-05T15:00:00"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetEinvoiceLink": {
      "post": {
        "operationId": "SetEinvoiceLink",
        "tags": [
          "Siparişler"
        ],
        "summary": "E-fatura linkini kaydet",
        "description": "**E-fatura linkini kaydet** — Bir siparişin e-fatura bilgisini ve linkini kaydeder; isterseniz linki pazaryerine de gönderir.\n\nSipariş, mağaza ve pazaryeri sipariş numarası (`IntegrationOrderCode`) ile bulunur. `IntegrationOrderDetailIds` verilirse yalnızca bu pazaryeri satır ID'leri, verilmezse siparişin tüm satırları güncellenir. Sipariş numarası `StoreId` ile verdiğiniz mağazada bulunamazsa `Invalid order.` döner; başka mağazadaki aynı numaralı sipariş güncellenmez.\n\nGüncellenen satırlarda fatura numarası, fatura UUID'si, senaryo, link, fatura tarihi yazılır ve satır faturalandı olarak işaretlenir.\n\n`SendEinvoiceToPlatform` true ise link ayrıca pazaryerine gönderilir. Bu yalnızca Trendyol, Hepsiburada, N11 ve Pazarama mağazalarında desteklenir. Gönderim başarısız olursa link yine kaydedilmiş olur ancak `Result` false ve `ErrorMessage` `Invoice link saved successfully. Invoice link could not be sent: …` döner (devamı çoğunlukla Türkçe pazaryeri/sistem mesajıdır).\n\nBaşarılı olunca `Message` alanı `Invoice link saved successfully.` veya `Invoice link saved and sent successfully.` olur; `Response` boştur.\n\nEksik alanlar tek seferde raporlanır: `00003` ve `ErrorMessage` `Missing: StoreId, InvoiceNumber, …` biçimindedir. `InvoiceTime` ofsetsiz Türkiye saatiyle gönderilmelidir.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetEinvoiceLink",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "Mağaza ID'si."
                  },
                  "IntegrationOrderCode": {
                    "type": "string",
                    "description": "Pazaryerinin sipariş numarası."
                  },
                  "IntegrationOrderDetailIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "İsteğe bağlı pazaryeri satır ID'leri. Boşsa tüm satırlar."
                  },
                  "InvoiceNumber": {
                    "type": "string",
                    "description": "Fatura numarası (ör. `ABC2026000000123`)."
                  },
                  "InvoiceId": {
                    "type": "string",
                    "description": "Faturanın UUID'si (ETTN)."
                  },
                  "InvoiceScenario": {
                    "type": "string",
                    "description": "Fatura senaryosu (ör. `EARSIVFATURA`, `TEMELFATURA`). Doğrulanmaz; olduğu gibi saklanır."
                  },
                  "InvoiceTime": {
                    "type": "string",
                    "description": "Fatura tarihi, ofsetsiz Türkiye saati."
                  },
                  "InvoiceLink": {
                    "type": "string",
                    "description": "Faturanın herkese açık linki (PDF/HTML)."
                  },
                  "SendEinvoiceToPlatform": {
                    "type": "boolean",
                    "description": "`true` ise link pazaryerine de gönderilir. Varsayılan `false`."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "IntegrationOrderCode",
                  "InvoiceNumber",
                  "InvoiceId",
                  "InvoiceScenario",
                  "InvoiceTime",
                  "InvoiceLink"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 12345,
                "IntegrationOrderCode": "10293847",
                "InvoiceNumber": "ABC2026000000123",
                "InvoiceId": "3f2a9c1e-7b4d-4e8a-9c21-5d6e7f8a9b0c",
                "InvoiceScenario": "EARSIVFATURA",
                "InvoiceTime": "2026-11-05T15:00:00",
                "InvoiceLink": "https://efatura.example.com/view/3f2a9c1e-7b4d-4e8a-9c21-5d6e7f8a9b0c.pdf",
                "SendEinvoiceToPlatform": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Message": "Invoice link saved and sent successfully."
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetOrderDetailStatus": {
      "post": {
        "operationId": "SetOrderDetailStatus",
        "tags": [
          "Siparişler"
        ],
        "summary": "Satır durumunu değiştir",
        "description": "**Satır durumunu değiştir** — StockMount tipi mağazalardaki sipariş satırlarının durumunu toplu olarak günceller.\n\nYalnızca StockMount tipi mağazalarda (`IntegrationId` 9999) çalışır ve pazaryerine bir şey göndermez. Pazaryeri mağazalarının satırları için hata döner.\n\nSatırlar tek tek işlenir. `Response` her satır için bir sonuç listesidir: `Result`, `ErrorCode`, `ErrorMessage` ve satırın `OrderDetailId` değerini taşıyan `Response`. Üst düzey `Result` yalnızca tüm satırlar başarılıysa true olur; kısmi hatada üst düzey `ErrorCode` boştur, ayrıntı için listeye bakın.\n\n`OrderStatus` değeri doğrulanmaz (en fazla 50 karakter). Tutarlılık için StockMount durum kodlarını kullanın. Durum değişirse satırın `LastModificationTime` değeri güncellenir; bu sayede değişiklikler `GetSales` + `LastModificationTimeFrom` ile izlenebilir.\n\nYalnızca satır durumu değişir; siparişin genel durumu değişmez. Bu nedenle `GetOrder` eski genel durumu göstermeye devam eder; `GetSales` ve `GetOrderDetailStatus` satır durumunu gösterir.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetOrderDetailStatus",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "OrderDetails": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "OrderDetailId": {
                          "type": "integer",
                          "description": "StockMount sipariş satırı ID'si."
                        },
                        "StoreId": {
                          "type": "integer",
                          "description": "Satırın mağaza ID'si (StockMount tipi mağaza)."
                        },
                        "OrderStatus": {
                          "type": "string",
                          "description": "Yeni durum kodu.\n\n- `New`: Yeni.\n- `Approved`: Onaylandı.\n- `Rejected`: Reddedildi.\n- `Shipped`: Kargoya verildi.\n- `Delivered`: Teslim edildi.\n- `Completed`: Tamamlandı."
                        }
                      },
                      "required": [
                        "OrderDetailId",
                        "StoreId",
                        "OrderStatus"
                      ]
                    },
                    "description": "Güncellenecek satırlar."
                  }
                },
                "required": [
                  "ApiCode",
                  "OrderDetails"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "OrderDetails": [
                  {
                    "OrderDetailId": 9877001,
                    "StoreId": 67890,
                    "OrderStatus": "Shipped"
                  },
                  {
                    "OrderDetailId": 9877002,
                    "StoreId": 67890,
                    "OrderStatus": "Shipped"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "Result": {
                                "type": "boolean",
                                "description": "Bu satır güncellendiyse `true`."
                              },
                              "ErrorCode": {
                                "type": "string",
                                "description": "Satır hatası kodu: doğrulama/mağaza hatalarında `00003`, diğerlerinde `99999`."
                              },
                              "ErrorMessage": {
                                "type": "string",
                                "description": "Satır hatası: `OrderDetail.StoreId`, `OrderDetail.OrderDetailId`, `OrderDetail.OrderStatus`, `InvalidStore`, `Store has to be StockMount store!` veya satır bulunamadıysa `NotExisted`. Satır başka bir kullanıcıya aitse boş."
                              },
                              "Response": {
                                "type": "integer",
                                "description": "İstekteki `OrderDetailId`."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": false,
                  "Response": [
                    {
                      "Result": true,
                      "Response": 9877001
                    },
                    {
                      "Result": false,
                      "ErrorCode": "99999",
                      "ErrorMessage": "NotExisted",
                      "Response": 9877002
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetProductSourceProducts": {
      "post": {
        "operationId": "SetProductSourceProducts",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün kaynağı dosyasını yükle",
        "description": "**Ürün kaynağı dosyasını yükle** — Gönderdiğiniz ürün içeriğini (ör. XML) StockMount'taki ürün kaynağı adresinize dosya olarak yükler.\n\nAktif Ürün Paketi gerektirir; yoksa `70018` döner.\n\n`ProductSourceUrl` yolu `/{kullanıcıId}/out/{dosyaAdı}` biçiminde olmalıdır. `{kullanıcıId}`, StockMount kullanıcı ID'nizin 8 haneye sıfırla doldurulmuş halidir (ör. `00012345`). Alan adı kontrol edilmez. Biçim uymazsa `60501` döner.\n\n`ProductsText` UTF-8 olarak `/{kullanıcıId}/out/` klasörüne, URL'deki dosya adıyla yazılır. İçerik doğrulanmaz. Başarıda `Response` boştur.\n\nHata mesajları tutarsızdır: URL biçimi hatalı olduğunda da `ErrorMessage` `ProductsText` döner. Kodu (`60501`) esas alın.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetProductSourceProducts",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız API kodu."
                  },
                  "ProductSourceUrl": {
                    "type": "string",
                    "description": "Ürün kaynağı dosyasının adresi; yol `/{8 haneli kullanıcıId}/out/{dosyaAdı}`."
                  },
                  "ProductsText": {
                    "type": "string",
                    "description": "Dosyanın tam içeriği (ör. XML metni)."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductSourceUrl",
                  "ProductsText"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductSourceUrl": "https://files.example.com/00012345/out/products.xml",
                "ProductsText": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Products><Product><Code>KUPA-350</Code><Name>Seramik Kupa 350 ml</Name><Price>129.90</Price><Quantity>40</Quantity></Product></Products>"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/GetProductSources": {
      "post": {
        "operationId": "GetProductSources",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün kaynaklarını listele",
        "description": "**Ürün kaynaklarını listele** — Hesabınızdaki aktif, StockMount tipindeki ürün kaynaklarını döndürür. Diğer ürün çağrılarındaki `ProductSourceId` değerini buradan alırsınız.\n\nYalnızca StockMount tipindeki (tip 2) kaynaklar döner. Bunlar, ürünlerini StockMount panelinde veya bu API ile yönettiğiniz kaynaklardır. XML, pazaryeri entegrasyonu, tedarikçi, ERP ve Excel kaynakları listede yer almaz. Silinmiş (pasif) kaynaklar da dönmez.\n\n`ApiCode` dışında parametre yoktur. Liste kaynak adına göre sıralıdır ve sayfalanmaz. Kaynak listesi okunamazsa çağrı hata vermez; `Result: true` ile boş liste döner.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/GetProductSources",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  }
                },
                "required": [
                  "ApiCode"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "ProductSourceId": {
                                "type": "integer",
                                "description": "Kaynak kimliği. Diğer ürün çağrılarında `ProductSourceId` olarak gönderilir."
                              },
                              "Name": {
                                "type": "string",
                                "description": "Kaynağın StockMount panelindeki adı."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": [
                    {
                      "ProductSourceId": 1234,
                      "Name": "Ana Ürünler"
                    },
                    {
                      "ProductSourceId": 1301,
                      "Name": "Outlet"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/GetProductCategories": {
      "post": {
        "operationId": "GetProductCategories",
        "tags": [
          "Ürünler"
        ],
        "summary": "Kaynağın kategorilerini listele",
        "description": "**Kaynağın kategorilerini listele** — Bir StockMount ürün kaynağında kullanılan kategori adlarını kimlikleriyle birlikte döndürür.\n\nKategoriler serbest metindir. `AddProduct` ve `UpdateProduct`, `Category` alanında kaynakta olmayan bir ad gönderdiğinizde bu kategoriyi otomatik oluşturur. API kategori silmez; bu yüzden listede artık hiçbir üründe kullanılmayan adlar da olabilir.\n\nÜrün çağrıları kategori kimliğini değil adını bekler. `ProductCategoryId` yalnızca bilgi amaçlıdır; `GetProducts` içindeki `ProductCategory` filtresine de adı gönderirsiniz.\n\nListe ada göre sıralıdır ve sayfalanmaz. Yalnızca `GetProductSources` ile aldığınız kaynak kimliklerini gönderin.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/GetProductCategories",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "StockMount tipindeki kaynak kimliği (`GetProductSources`). 1'den küçükse 00003 döner (`ErrorMessage`: `ProductSourceId`)."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductSourceId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductSourceId": 1234
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "ProductCategoryId": {
                                "type": "integer",
                                "description": "Kategori kimliği (bilgi amaçlı)."
                              },
                              "Name": {
                                "type": "string",
                                "description": "Kategori adı. Ürün çağrılarında `Category` olarak bu ad kullanılır."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": [
                    {
                      "ProductCategoryId": 55102,
                      "Name": "Pantolon"
                    },
                    {
                      "ProductCategoryId": 55101,
                      "Name": "Tişört"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/AddProduct": {
      "post": {
        "operationId": "AddProduct",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün ekle",
        "description": "**Ürün ekle** — StockMount tipindeki bir kaynağa yeni ürün ekler; varyantları, görselleri ve özellikleri aynı çağrıda kaydeder. Yanıt yeni ürünün `ProductId` değeridir.\n\nZorunlu alanlar şu sırayla kontrol edilir: `ProductSourceId`, `CurrencyId`, `Price` (0'dan büyük olmalı), `Code`, `Name`, `Category`. İlk eksik alanda 00003 döner ve `ErrorMessage` alanı belirtir: `ProductSourceId is missing`, `CurrencyId is missing`, `Price is missing`, `Code is missing`, `Name is missing` veya yalnızca `Category`. Herhangi bir varyantta `VariantValueN` doluysa üründe `VariantNameN` de zorunludur; yoksa `VariantNameN is missing` döner.\n\nKaynak hesabınızda bulunamazsa 70002 (`Invalid Product Source`), StockMount tipinde değilse 70003 (`Invalid Product Source Type`) döner. Ürünü yalnızca `GetProductSources` listesindeki kaynaklara ekleyebilirsiniz.\n\n`Code` kaynak içinde benzersizdir ve birebir karşılaştırılır. Aynı kodlu ürün zaten varsa hiçbir şey değişmez ve yanıt `{\"Result\": true, \"Message\": \"Product code already exists\", \"ErrorCode\": \"70004\", \"Response\": <mevcut ProductId>}` olur. Yani `Result: true` tek başına ürünün eklendiğini göstermez; `ErrorCode` alanını da kontrol edin. Kaldırılmış `DeleteProduct` ile geçmişte silinen ürünlerin kodları da bu kontrolde sayılır.\n\n`UpdateProductByCode: true` gönderirseniz ve kod kaynakta varsa, 70004 yerine mevcut ürün güncellenir (ekle veya güncelle). Bu durumda `UpdateProduct` kuralları geçerlidir: gönderilmeyen alanlar temizlenir ve görseller değişmez.\n\nBaşarılı eklemede `Response` yeni ürünün `ProductId` değeridir. Yeni ürünün durumu stok miktarından bağımsız olarak 1 (yeni) olur. `ProductId`, `Status`, `Url`, `StoreId`, `CreationTime`, `Image`, `SoldCount` ve `SetProductQuantityFromVariants` alanları bu çağrıda yok sayılır.\n\nGörsel, varyant ve özellik kayıtları ürün satırı kaydedildikten sonra yapılır. Bunlardaki hatalar yanıta yansımaz; çağrı yine `Result: true` döner. Görsel yükleme başarısız olursa görsel boş adresle kaydedilir. Geçersiz Base64 verisi ise 99999 döndürür, ama ürün o anda zaten oluşmuştur; aynı isteği tekrarlarsanız 70004 alırsınız. Sonucu `GetProduct` ile kontrol edin.\n\nVaryantlar ürün üzerindeki `VariantName1`–`VariantName6` ve varyantlardaki `VariantValue1`–`VariantValue6` ile tanımlanır (ör. `VariantName1: Renk`, `VariantValue1: Siyah`). Varyant `Code` alanı sonraki güncellemelerde eşleştirme anahtarıdır. Ürünün `Quantity` değeri varyant stoklarından hesaplanmaz; toplam stoğu kendiniz gönderin.\n\nBu çağrı pazaryerine özel kontrolleri yapmaz: barkod biçimi ve özel karakterler, zorunlu marka, izinli KDV oranları, webp görseller veya katalog onayı burada denetlenmez. Bu kontroller ürün bir pazaryerine gönderilirken yapılır ve sonucu StockMount panelinde görünür. 70012 ve 70014–70017 kodları bu çağrıdan dönmez.\n\nUzunluk sınırları veritabanı alanlarından gelir ve API tarafından kontrol edilmez; sınırı aşan metinler hata vermeden kesilir. Hata mesajları İngilizcedir.\n\nYalnızca paket hatasının (`70018`) mesajı Türkçedir.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/AddProduct",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürünün bulunduğu StockMount tipindeki kaynak (`GetProductSources`). Hesabınızda yoksa 70002, StockMount tipinde değilse 70003 döner."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu (stok kodu). Kaynak içinde benzersizdir ve birebir karşılaştırılır. En fazla 50 karakter."
                  },
                  "Name": {
                    "type": "string",
                    "description": "Ürün adı. En fazla 400 karakter."
                  },
                  "Category": {
                    "type": "string",
                    "description": "Kategori adı (kimlik değil). Kaynakta yoksa otomatik oluşturulur. Mevcut adlar için `GetProductCategories`."
                  },
                  "Price": {
                    "type": "number",
                    "description": "Satış fiyatı. 0'dan büyük olmalıdır; değilse 00003 (`Price is missing`) döner. 2 ondalık basamak saklanır."
                  },
                  "CurrencyId": {
                    "type": "integer",
                    "description": "Para birimi kimliği (`GetCurrencies`; ör. 4 = TRY, 2 = USD, 3 = EUR). 1'den küçükse 00003 döner. API kimliğin varlığını doğrulamaz; geçerli bir kimlik gönderin."
                  },
                  "Quantity": {
                    "type": "integer",
                    "description": "Stok miktarı. Gönderilmezse 0. API negatif değeri reddetmez. Varyantlı üründe toplam stoğu kendiniz gönderin; varyant stoklarından hesaplanmaz."
                  },
                  "MarketPrice": {
                    "type": "number",
                    "description": "Piyasa (liste) fiyatı; genellikle `Price` değerinden yüksektir ve indirimi göstermek için kullanılır. Gönderilmezse 0."
                  },
                  "TaxRate": {
                    "type": "number",
                    "description": "KDV oranı, yüzde olarak (ör. `20`). API izinli değer listesi uygulamaz. Gönderilmezse 0 kaydedilir."
                  },
                  "Barcode": {
                    "type": "string",
                    "description": "Ürün barkodu. En fazla 30 karakter. Biçim veya özel karakter kontrolü yapılmaz."
                  },
                  "Brand": {
                    "type": "string",
                    "description": "Marka. En fazla 30 karakter."
                  },
                  "Model": {
                    "type": "string",
                    "description": "Model. En fazla 30 karakter."
                  },
                  "Code2": {
                    "type": "string",
                    "description": "İkinci ürün kodu. En fazla 50 karakter."
                  },
                  "Mpn": {
                    "type": "string",
                    "description": "Üretici parça numarası (MPN). En fazla 50 karakter."
                  },
                  "Subtitle": {
                    "type": "string",
                    "description": "Alt başlık. En fazla 400 karakter."
                  },
                  "Description": {
                    "type": "string",
                    "description": "Ürün açıklaması; HTML olabilir. Güvenli olmayan HTML (ör. script) temizlenir. Gönderilmezse boş kaydedilir."
                  },
                  "UpdateProductDescription": {
                    "type": "boolean",
                    "description": "Yalnızca `UpdateProductByCode` ile çağrı güncellemeye dönüştüğünde anlamlıdır: `false` ise mevcut açıklama korunur. Varsayılan `true`."
                  },
                  "DispatchPeriod": {
                    "type": "integer",
                    "description": "Kargoya teslim (hazırlık) süresi, gün. Gönderilmezse -1 (tanımsız)."
                  },
                  "Volume": {
                    "type": "number",
                    "description": "Hacim / desi. Gönderilmezse 0."
                  },
                  "Width": {
                    "type": "number",
                    "description": "Genişlik. Gönderilmezse 0."
                  },
                  "Length": {
                    "type": "number",
                    "description": "Uzunluk. Gönderilmezse 0."
                  },
                  "Height": {
                    "type": "number",
                    "description": "Yükseklik. Gönderilmezse 0."
                  },
                  "Weight": {
                    "type": "number",
                    "description": "Ağırlık. Gönderilmezse 0."
                  },
                  "SellerNote": {
                    "type": "string",
                    "description": "Satıcı notu. En fazla 150 karakter."
                  },
                  "Price2": {
                    "type": "number",
                    "description": "Ek fiyat alanı. Yalnızca ürün oluşturulurken kaydedilir; `UpdateProduct` bu alanı değiştirmez. Gönderilmezse 0."
                  },
                  "Price3": {
                    "type": "number",
                    "description": "Ek fiyat alanı. Yalnızca ürün oluşturulurken kaydedilir; `UpdateProduct` bu alanı değiştirmez. Gönderilmezse 0."
                  },
                  "Price4": {
                    "type": "number",
                    "description": "Ek fiyat alanı. Yalnızca ürün oluşturulurken kaydedilir; `UpdateProduct` bu alanı değiştirmez. Gönderilmezse 0."
                  },
                  "Price5": {
                    "type": "number",
                    "description": "Ek fiyat alanı. Yalnızca ürün oluşturulurken kaydedilir; `UpdateProduct` bu alanı değiştirmez. Gönderilmezse 0."
                  },
                  "VariantName1": {
                    "type": "string",
                    "description": "1. varyant özelliğinin adı (ör. `Renk`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue1` doluysa zorunludur; yoksa 00003 (`VariantName1 is missing`) döner."
                  },
                  "VariantName2": {
                    "type": "string",
                    "description": "2. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue2` doluysa zorunludur; yoksa 00003 (`VariantName2 is missing`) döner."
                  },
                  "VariantName3": {
                    "type": "string",
                    "description": "3. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue3` doluysa zorunludur; yoksa 00003 (`VariantName3 is missing`) döner."
                  },
                  "VariantName4": {
                    "type": "string",
                    "description": "4. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue4` doluysa zorunludur; yoksa 00003 (`VariantName4 is missing`) döner."
                  },
                  "VariantName5": {
                    "type": "string",
                    "description": "5. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue5` doluysa zorunludur; yoksa 00003 (`VariantName5 is missing`) döner."
                  },
                  "VariantName6": {
                    "type": "string",
                    "description": "6. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue6` doluysa zorunludur; yoksa 00003 (`VariantName6 is missing`) döner."
                  },
                  "Images": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "Url": {
                          "type": "string",
                          "description": "Görsel adresi. Olduğu gibi kaydedilir; biçim, protokol veya webp kontrolü yapılmaz. `//` ile başlıyorsa başına `http:` eklenir. En fazla 400 karakter."
                        },
                        "Base64": {
                          "type": "string",
                          "description": "`Url` boşsa kullanılır: görsel StockMount görsel sunucusuna yüklenir ve `http://` adresiyle kaydedilir. `data:` öneki olmadan ham Base64 gönderin. PNG ve JPEG tanınır; diğer veriler `.png` uzantısıyla kaydedilir."
                        }
                      }
                    },
                    "description": "Ürün görselleri, en fazla 12 adet (fazlası yok sayılır). Sıra dizideki sıradır; `Order` alanı kullanılmaz."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. Güncellemelerde varyant bu kodla eşleştirilir; dolu ve ürün içinde benzersiz gönderin. En fazla 50 karakter."
                        },
                        "Barcode": {
                          "type": "string",
                          "description": "Varyant barkodu. Baştaki ve sondaki boşluklar kırpılır. En fazla 30 karakter."
                        },
                        "Quantity": {
                          "type": "integer",
                          "description": "Varyant stoğu. Negatif değerler 0 olarak kaydedilir."
                        },
                        "Price": {
                          "type": "number",
                          "description": "Varyant fiyatı. Gönderilmezse 0 kaydedilir."
                        },
                        "VariantValue1": {
                          "type": "string",
                          "description": "1. varyant özelliğinin değeri (ör. `Siyah`). En fazla 100 karakter."
                        },
                        "VariantValue2": {
                          "type": "string",
                          "description": "2. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue3": {
                          "type": "string",
                          "description": "3. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue4": {
                          "type": "string",
                          "description": "4. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue5": {
                          "type": "string",
                          "description": "5. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue6": {
                          "type": "string",
                          "description": "6. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "ImageUrl": {
                          "type": "string",
                          "description": "Varyant görselinin adresi. En fazla 200 karakter."
                        },
                        "ImageBase64": {
                          "type": "string",
                          "description": "`ImageUrl` boşsa kullanılır: görsel StockMount görsel sunucusuna yüklenir. `data:` öneki olmadan ham Base64 gönderin."
                        },
                        "Code2": {
                          "type": "string",
                          "description": "İkinci varyant kodu. En fazla 50 karakter. Boşsa varyantın dizideki sırası (`0`, `1`, `2`…) yazılır."
                        },
                        "Mpn": {
                          "type": "string",
                          "description": "Varyantın üretici parça numarası. En fazla 50 karakter."
                        }
                      }
                    },
                    "description": "Varyant listesi. `ProductVariantId`, `CurrencyId`, `MinSalePrice` ve `Price2`–`Price5` alanları yok sayılır."
                  },
                  "Specs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "Name": {
                          "type": "string",
                          "description": "Özellik adı (ör. `Materyal`). En fazla 50 karakter."
                        },
                        "Value": {
                          "type": "string",
                          "description": "Özellik değeri (ör. `Pamuk`). En fazla 100 karakter."
                        }
                      }
                    },
                    "description": "Ürün özellikleri (ad–değer çiftleri)."
                  },
                  "UpdateProductByCode": {
                    "type": "boolean",
                    "description": "`true` ise ve `Code` kaynakta zaten varsa, 70004 yerine mevcut ürün güncellenir (ekle veya güncelle). Varsayılan `false`."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductSourceId",
                  "Code",
                  "Name",
                  "Category",
                  "Price",
                  "CurrencyId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductSourceId": 1234,
                "Code": "TSHIRT-001",
                "Name": "Basic Pamuklu Tişört",
                "Category": "Tişört",
                "Price": 249.9,
                "MarketPrice": 299.9,
                "CurrencyId": 4,
                "TaxRate": 20,
                "Quantity": 30,
                "Barcode": "8690000000017",
                "Brand": "Örnek Marka",
                "Model": "BSC-01",
                "Description": "<p>%100 pamuk, regular fit.</p>",
                "DispatchPeriod": 2,
                "Volume": 1,
                "VariantName1": "Renk",
                "VariantName2": "Beden",
                "Images": [
                  {
                    "Url": "https://cdn.example.com/tshirt-001-1.jpg"
                  },
                  {
                    "Url": "https://cdn.example.com/tshirt-001-2.jpg"
                  }
                ],
                "Variants": [
                  {
                    "Code": "TSHIRT-001-BLK-M",
                    "Barcode": "8690000000024",
                    "Quantity": 10,
                    "Price": 249.9,
                    "VariantValue1": "Siyah",
                    "VariantValue2": "M"
                  },
                  {
                    "Code": "TSHIRT-001-BLK-L",
                    "Barcode": "8690000000031",
                    "Quantity": 20,
                    "Price": 249.9,
                    "VariantValue1": "Siyah",
                    "VariantValue2": "L"
                  }
                ],
                "Specs": [
                  {
                    "Name": "Materyal",
                    "Value": "Pamuk"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "Response": {
                              "type": "integer",
                              "description": "Yeni ürünün `ProductId` değeri. 70004 durumunda aynı kodlu mevcut ürünün kimliğidir."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": 987654
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProduct": {
      "post": {
        "operationId": "UpdateProduct",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürünü güncelle",
        "description": "**Ürünü güncelle** — Mevcut bir ürünün bilgilerini, varyantlarını ve özelliklerini gönderdiğiniz değerlerle baştan yazar. Görselleri ve ürün kodunu değiştirmez.\n\nBu çağrı kısmi güncelleme değildir; ürünün tamamını yeniden yazar. Zorunlu alanlar ve 00003 mesajları `AddProduct` ile aynıdır (`ProductSourceId`, `CurrencyId`, `Price` > 0, `Code`, `Name`, `Category`). Gönderilmeyen isteğe bağlı alanlar temizlenir: `Barcode`, `Brand`, `Model`, `Subtitle`, `Code2`, `Mpn`, `SellerNote` ve `VariantName1`–`VariantName6` boşalır; `TaxRate`, `MarketPrice`, `Volume`, `Width`, `Length`, `Height`, `Weight` 0 olur; `DispatchPeriod` -1 olur; `Description` boşalır (`UpdateProductDescription: false` göndermediğiniz sürece). Önce `GetProduct` ile ürünü okuyup tüm alanları geri gönderin.\n\nYalnızca StockMount panelinde yönetilen bazı değerler de her güncellemede sıfırlanır: satış adedi (`SoldCount`), minimum satış fiyatı, ürün sayfası adresi, meta/SEO alanları, fatura adı ve garanti bilgisi. Güncellenen varyantların satış adedi de 0 olur.\n\nDeğişmeyenler: görseller (`Images` ve varyant görsel alanları yok sayılır; görseller için `UpdateProductImages`), `Price2`–`Price5` ve ürün kodu (`SetProductCode`).\n\nÜrün `ProductId` ile bulunur ve `Code` ürünün kaynaktaki mevcut kodu olmalıdır. Kod kaynakta hiç yoksa 70005 (`Message`: `There is no product with the given ProductId`), kod başka bir üründeyse `Result: false` ile 70004 (`Message`: `Product code does not exist`) döner. `UpdateProductByCode: true` gönderirseniz `ProductId` gerekmez; ürün `ProductSourceId` + `Code` ile bulunur, bulunamazsa 70005 döner. Bu iki hatada metin `ErrorMessage` değil `Message` alanındadır.\n\nDurum stoktan yeniden hesaplanır: `Quantity` 1'den küçükse 3 (durdurulmuş / stok yok), değilse 2 (değişti). Böylece `StopProduct` ile durdurulmuş bir ürün, stoğu 0'dan büyük gönderildiğinde yeniden aktif olur.\n\n`Variants` gönderirseniz varyantlar `Code` ile eşleştirilir: eşleşenler güncellenir, yeni kodlar görselsiz eklenir, listede olmayan mevcut varyantlar pasife alınır. Pasif varyantlar silinmez ve `GetProduct` yanıtında görünmeye devam eder. `Variants` boş veya gönderilmemişse varyantlara dokunulmaz. `Specs` gönderirseniz özellik listesinin tamamı değiştirilir; göndermezseniz mevcut özellikler kalır.\n\nBaşarılı güncellemede `Response` ürünün `ProductId` değeridir ve ürün, listelendiği aktif mağazalar için senkronizasyon kuyruğuna alınır. Bu çağrı 70013 (değişiklik yok) döndürmez; değerler aynı olsa da kayıt yeniden yazılır. Kategori otomatik oluşturma, uzunluk sınırları ve HTML temizliği `AddProduct` ile aynıdır.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProduct",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "Güncellenecek ürünün kimliği. `UpdateProductByCode` `true` değilse zorunludur; 1'den küçükse 00003 döner (`ErrorMessage`: `ProductId is missing`)."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürünün bulunduğu StockMount tipindeki kaynak (`GetProductSources`). Hesabınızda yoksa 70002, StockMount tipinde değilse 70003 döner."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürünün kaynaktaki mevcut kodu. Ürünü doğrulamak için kullanılır; kodu bu çağrıyla değiştiremezsiniz (`SetProductCode`). En fazla 50 karakter."
                  },
                  "Name": {
                    "type": "string",
                    "description": "Ürün adı. En fazla 400 karakter."
                  },
                  "Category": {
                    "type": "string",
                    "description": "Kategori adı (kimlik değil). Kaynakta yoksa otomatik oluşturulur. Mevcut adlar için `GetProductCategories`."
                  },
                  "Price": {
                    "type": "number",
                    "description": "Satış fiyatı. 0'dan büyük olmalıdır; değilse 00003 (`Price is missing`) döner. 2 ondalık basamak saklanır."
                  },
                  "CurrencyId": {
                    "type": "integer",
                    "description": "Para birimi kimliği (`GetCurrencies`; ör. 4 = TRY, 2 = USD, 3 = EUR). 1'den küçükse 00003 döner. API kimliğin varlığını doğrulamaz; geçerli bir kimlik gönderin."
                  },
                  "Quantity": {
                    "type": "integer",
                    "description": "Stok miktarı. Gönderilmezse 0. API negatif değeri reddetmez. Varyantlı üründe toplam stoğu kendiniz gönderin; varyant stoklarından hesaplanmaz. Durum bu değere göre yeniden hesaplanır (1'den küçükse 3, değilse 2)."
                  },
                  "MarketPrice": {
                    "type": "number",
                    "description": "Piyasa (liste) fiyatı; genellikle `Price` değerinden yüksektir ve indirimi göstermek için kullanılır. Gönderilmezse 0. `UpdateProduct` içinde gönderilmezse 0 olur."
                  },
                  "TaxRate": {
                    "type": "number",
                    "description": "KDV oranı, yüzde olarak (ör. `20`). API izinli değer listesi uygulamaz. Gönderilmezse 0 kaydedilir. `UpdateProduct` içinde gönderilmezse 0 olur."
                  },
                  "Barcode": {
                    "type": "string",
                    "description": "Ürün barkodu. En fazla 30 karakter. Biçim veya özel karakter kontrolü yapılmaz. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "Brand": {
                    "type": "string",
                    "description": "Marka. En fazla 30 karakter. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "Model": {
                    "type": "string",
                    "description": "Model. En fazla 30 karakter. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "Code2": {
                    "type": "string",
                    "description": "İkinci ürün kodu. En fazla 50 karakter. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "Mpn": {
                    "type": "string",
                    "description": "Üretici parça numarası (MPN). En fazla 50 karakter. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "Subtitle": {
                    "type": "string",
                    "description": "Alt başlık. En fazla 400 karakter. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "Description": {
                    "type": "string",
                    "description": "Ürün açıklaması; HTML olabilir. Güvenli olmayan HTML (ör. script) temizlenir. Gönderilmezse boş kaydedilir. `UpdateProductDescription` `false` ise mevcut açıklama korunur."
                  },
                  "UpdateProductDescription": {
                    "type": "boolean",
                    "description": "`false` gönderirseniz açıklama değiştirilmez. Varsayılan `true`."
                  },
                  "DispatchPeriod": {
                    "type": "integer",
                    "description": "Kargoya teslim (hazırlık) süresi, gün. Gönderilmezse -1 (tanımsız). `UpdateProduct` içinde gönderilmezse -1 olur."
                  },
                  "Volume": {
                    "type": "number",
                    "description": "Hacim / desi. Gönderilmezse 0. `UpdateProduct` içinde gönderilmezse 0 olur."
                  },
                  "Width": {
                    "type": "number",
                    "description": "Genişlik. Gönderilmezse 0. `UpdateProduct` içinde gönderilmezse 0 olur."
                  },
                  "Length": {
                    "type": "number",
                    "description": "Uzunluk. Gönderilmezse 0. `UpdateProduct` içinde gönderilmezse 0 olur."
                  },
                  "Height": {
                    "type": "number",
                    "description": "Yükseklik. Gönderilmezse 0. `UpdateProduct` içinde gönderilmezse 0 olur."
                  },
                  "Weight": {
                    "type": "number",
                    "description": "Ağırlık. Gönderilmezse 0. `UpdateProduct` içinde gönderilmezse 0 olur."
                  },
                  "SellerNote": {
                    "type": "string",
                    "description": "Satıcı notu. En fazla 150 karakter. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "VariantName1": {
                    "type": "string",
                    "description": "1. varyant özelliğinin adı (ör. `Renk`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue1` doluysa zorunludur; yoksa 00003 (`VariantName1 is missing`) döner. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "VariantName2": {
                    "type": "string",
                    "description": "2. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue2` doluysa zorunludur; yoksa 00003 (`VariantName2 is missing`) döner. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "VariantName3": {
                    "type": "string",
                    "description": "3. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue3` doluysa zorunludur; yoksa 00003 (`VariantName3 is missing`) döner. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "VariantName4": {
                    "type": "string",
                    "description": "4. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue4` doluysa zorunludur; yoksa 00003 (`VariantName4 is missing`) döner. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "VariantName5": {
                    "type": "string",
                    "description": "5. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue5` doluysa zorunludur; yoksa 00003 (`VariantName5 is missing`) döner. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "VariantName6": {
                    "type": "string",
                    "description": "6. varyant özelliğinin adı (ör. `Beden`). En fazla 30 karakter. Herhangi bir varyantta `VariantValue6` doluysa zorunludur; yoksa 00003 (`VariantName6 is missing`) döner. `UpdateProduct` içinde gönderilmezse temizlenir."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. Güncellemelerde varyant bu kodla eşleştirilir; dolu ve ürün içinde benzersiz gönderin. En fazla 50 karakter."
                        },
                        "Barcode": {
                          "type": "string",
                          "description": "Varyant barkodu. Baştaki ve sondaki boşluklar kırpılır. En fazla 30 karakter."
                        },
                        "Quantity": {
                          "type": "integer",
                          "description": "Varyant stoğu. Negatif değerler 0 olarak kaydedilir."
                        },
                        "Price": {
                          "type": "number",
                          "description": "Varyant fiyatı. Gönderilmezse 0 kaydedilir."
                        },
                        "VariantValue1": {
                          "type": "string",
                          "description": "1. varyant özelliğinin değeri (ör. `Siyah`). En fazla 100 karakter."
                        },
                        "VariantValue2": {
                          "type": "string",
                          "description": "2. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue3": {
                          "type": "string",
                          "description": "3. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue4": {
                          "type": "string",
                          "description": "4. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue5": {
                          "type": "string",
                          "description": "5. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "VariantValue6": {
                          "type": "string",
                          "description": "6. varyant özelliğinin değeri (ör. `M`). En fazla 100 karakter."
                        },
                        "Code2": {
                          "type": "string",
                          "description": "İkinci varyant kodu. En fazla 50 karakter. Boşsa varyantın dizideki sırası (`0`, `1`, `2`…) yazılır."
                        },
                        "Mpn": {
                          "type": "string",
                          "description": "Varyantın üretici parça numarası. En fazla 50 karakter."
                        }
                      }
                    },
                    "description": "Varyant listesi. Gönderirseniz varyantlar `Code` ile eşleştirilir: eşleşenler güncellenir, yenileri görselsiz eklenir, listede olmayan mevcut varyantlar pasife alınır. Boş veya gönderilmemişse varyantlara dokunulmaz. Görsel alanları (`ImageUrl`, `ImageBase64`) yok sayılır."
                  },
                  "Specs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "Name": {
                          "type": "string",
                          "description": "Özellik adı (ör. `Materyal`). En fazla 50 karakter."
                        },
                        "Value": {
                          "type": "string",
                          "description": "Özellik değeri (ör. `Pamuk`). En fazla 100 karakter."
                        }
                      }
                    },
                    "description": "Ürün özellikleri. Gönderirseniz mevcut özellik listesinin tamamı bununla değiştirilir; gönderilmezse mevcut özellikler kalır."
                  },
                  "UpdateProductByCode": {
                    "type": "boolean",
                    "description": "`true` ise `ProductId` gerekmez; ürün `ProductSourceId` + `Code` ile bulunur. Bulunamazsa 70005 döner. Varsayılan `false`."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductSourceId",
                  "Code",
                  "Name",
                  "Category",
                  "Price",
                  "CurrencyId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 987654,
                "ProductSourceId": 1234,
                "Code": "TSHIRT-001",
                "Name": "Basic Pamuklu Tişört",
                "Category": "Tişört",
                "Price": 229.9,
                "MarketPrice": 299.9,
                "CurrencyId": 4,
                "TaxRate": 20,
                "Quantity": 25,
                "Barcode": "8690000000017",
                "Brand": "Örnek Marka",
                "Model": "BSC-01",
                "Description": "<p>%100 pamuk, regular fit.</p>",
                "DispatchPeriod": 2,
                "Volume": 1,
                "VariantName1": "Renk",
                "VariantName2": "Beden",
                "Variants": [
                  {
                    "Code": "TSHIRT-001-BLK-M",
                    "Barcode": "8690000000024",
                    "Quantity": 5,
                    "Price": 229.9,
                    "VariantValue1": "Siyah",
                    "VariantValue2": "M"
                  },
                  {
                    "Code": "TSHIRT-001-BLK-L",
                    "Barcode": "8690000000031",
                    "Quantity": 20,
                    "Price": 229.9,
                    "VariantValue1": "Siyah",
                    "VariantValue2": "L"
                  }
                ],
                "Specs": [
                  {
                    "Name": "Materyal",
                    "Value": "Pamuk"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "Response": {
                              "type": "integer",
                              "description": "Güncellenen ürünün `ProductId` değeri."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": 987654
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/DeleteProduct": {
      "post": {
        "operationId": "DeleteProduct",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün sil (kaldırıldı)",
        "description": "**Ürün sil (kaldırıldı)** — Bu uç nokta 1 Temmuz 2025'te kaldırıldı ve her çağrıda HTTP 410 döndürür.\n\nİstek gövdesi geçerli bir JSON olduğu sürece, `ApiCode` ve paket kontrolü yapılmadan HTTP 410 (Gone) döner. Gövde boş veya bozuksa önce ASP.NET 400 hatası alırsınız. Yanıt gövdesinde `ErrorCode` yoktur ve mesaj yalnızca Türkçedir.\n\nAPI ile ürün silmek artık mümkün değildir. Ürünü satıştan kaldırmak için `StopProduct` kullanın veya `UpdateProduct` ile `Quantity: 0` gönderin.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Product/DeleteProduct",
        "deprecated": true,
        "responses": {
          "410": {
            "description": "Kaldırıldı"
          }
        }
      }
    },
    "/api/Product/StopProduct": {
      "post": {
        "operationId": "StopProduct",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürünü durdur",
        "description": "**Ürünü durdur** — Ürünün durumunu 3 (durduruldu) yapar. Ürün silinmez ve stoğu değişmez.\n\nYalnızca `ProductId` okunur; diğer alanlar yok sayılır. Kaynak tipi kontrol edilmez, hesabınızdaki herhangi bir ürünü durdurabilirsiniz. Durum 3, stoğu 0 olan ürünlerin de durumudur.\n\nÜrünü yeniden aktif etmek için `UpdateProduct` ile `Quantity` değerini 0'dan büyük gönderin; durum 2 olur.\n\nÜrün bulunamazsa veya hesabınıza ait değilse 99999 döner ve `ErrorMessage` boştur. Başarılı yanıtta `Response` yoktur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/StopProduct",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "Durdurulacak ürünün kimliği. 1'den küçükse 00003 döner (`ErrorMessage`: `ProductId`)."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 987654
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/GetProduct": {
      "post": {
        "operationId": "GetProduct",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün getir",
        "description": "**Ürün getir** — Tek bir ürünü görselleri, varyantları ve özellikleriyle döndürür. Ürünü `ProductId` veya `ProductSourceId` + `Code` ile bulursunuz.\n\n`ProductId` 0'dan büyükse ürün yalnızca bu kimlikle, hesabınızın tüm kaynaklarında aranır; `Code` yok sayılır. `ProductId` yoksa `Code` ve `ProductSourceId` birlikte gerekir. İkisi de yoksa 00003 (`ErrorMessage`: `ProductId`), `Code` var ama kaynak yoksa 00003 (`ErrorMessage`: `ProductSourceId`) döner. Ürün bulunamazsa 70005 (`Product was not found!`) döner. Durdurulmuş ürünler (durum 3) de döner; kaldırılmış `DeleteProduct` ile silinmiş ürünler dönmez.\n\nVaryantlar ve özellikler yalnızca `ProductId` ile sorguda yüklenir. `Code` ile sorguda `Variants` boş dizi gelir ve `Specs` yanıtta hiç yer almaz.\n\n`Variants`, `UpdateProduct` ile pasife alınmış varyantları da içerir ve varyant durumu döndürülmez; varyantlar oluşturulma sırasıyla gelir.\n\nBazı alanlar okunmadığı için her zaman sabit değerle döner: `Weight`, `StoreId`, `Price2`–`Price5` 0; `UpdateProductByCode` ve `SetProductQuantityFromVariants` `false`; `UpdateProductDescription` `true`; varyantlarda `CurrencyId`, `MinSalePrice` ve `Price2`–`Price5` 0. `VariantName5`, `VariantName6`, `VariantValue5`, `VariantValue6` ve `Mpn` döndürülmez. Değeri `null` olan alanlar yanıtta hiç yer almaz.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/GetProduct",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "Ürün kimliği. Gönderirseniz diğer alanlar yok sayılır."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu. `ProductId` yoksa kullanılır; birebir eşleşir."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "`Code` ile sorguda zorunlu: kodun aranacağı kaynak."
                  }
                },
                "required": [
                  "ApiCode"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 987654
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Ürün kimliği."
                            },
                            "ProductSourceId": {
                              "type": "integer",
                              "description": "Ürünün kaynağı."
                            },
                            "Code": {
                              "type": "string",
                              "description": "Ürün kodu."
                            },
                            "Code2": {
                              "type": "string",
                              "description": "İkinci ürün kodu."
                            },
                            "Name": {
                              "type": "string",
                              "description": "Ürün adı."
                            },
                            "Subtitle": {
                              "type": "string",
                              "description": "Alt başlık."
                            },
                            "Description": {
                              "type": "string",
                              "description": "Açıklama (HTML, temizlenmiş)."
                            },
                            "Barcode": {
                              "type": "string",
                              "description": "Barkod. Ürün için entegrasyon tarafında ikinci bir barkod tanımlıysa o döner."
                            },
                            "Brand": {
                              "type": "string",
                              "description": "Marka."
                            },
                            "Model": {
                              "type": "string",
                              "description": "Model."
                            },
                            "Category": {
                              "type": "string",
                              "description": "Kategori adı."
                            },
                            "Price": {
                              "type": "number",
                              "description": "Satış fiyatı."
                            },
                            "MarketPrice": {
                              "type": "number",
                              "description": "Piyasa (liste) fiyatı; yoksa 0."
                            },
                            "CurrencyId": {
                              "type": "integer",
                              "description": "Para birimi kimliği."
                            },
                            "TaxRate": {
                              "type": "number",
                              "description": "KDV oranı; yoksa 0."
                            },
                            "Quantity": {
                              "type": "integer",
                              "description": "Stok miktarı."
                            },
                            "SoldCount": {
                              "type": "integer",
                              "description": "Satış adedi."
                            },
                            "Status": {
                              "type": "integer",
                              "description": "Ürün durumu.\n\n- `0`: Değişmedi\n- `1`: Yeni (API ile eklenen ürünlerin ilk durumu)\n- `2`: Değişti (`UpdateProduct` sonrası, stok 0'dan büyükse)\n- `3`: Durduruldu / stok yok (`StopProduct` veya stok 1'den küçük)\n- `4`: Yeniden eklendi"
                            },
                            "Volume": {
                              "type": "number",
                              "description": "Hacim / desi (ikinci değer tanımlıysa o)."
                            },
                            "Width": {
                              "type": "number",
                              "description": "Genişlik."
                            },
                            "Length": {
                              "type": "number",
                              "description": "Uzunluk."
                            },
                            "Height": {
                              "type": "number",
                              "description": "Yükseklik."
                            },
                            "Weight": {
                              "type": "number",
                              "description": "Her zaman 0 (saklanan değer döndürülmez)."
                            },
                            "Url": {
                              "type": "string",
                              "description": "Ürün sayfası adresi; yoksa boş."
                            },
                            "CreationTime": {
                              "type": "string",
                              "description": "Oluşturulma zamanı, saat dilimi eki olmadan (ör. `2025-11-05T10:22:31.497`)."
                            },
                            "VariantName1": {
                              "type": "string",
                              "description": "1. varyant özelliğinin adı (`VariantName2`–`VariantName4` de döner; 5 ve 6 dönmez)."
                            },
                            "DispatchPeriod": {
                              "type": "integer",
                              "description": "Kargoya teslim süresi (gün); -1 tanımsız."
                            },
                            "SellerNote": {
                              "type": "string",
                              "description": "Satıcı notu."
                            },
                            "Images": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Order": {
                                    "type": "integer",
                                    "description": "0'dan başlayan sıra."
                                  },
                                  "Url": {
                                    "type": "string",
                                    "description": "Görsel adresi."
                                  }
                                }
                              },
                              "description": "Görseller, en fazla 12."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  },
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "Barcode": {
                                    "type": "string",
                                    "description": "Varyant barkodu."
                                  },
                                  "Price": {
                                    "type": "number",
                                    "description": "Varyant fiyatı."
                                  },
                                  "Quantity": {
                                    "type": "integer",
                                    "description": "Varyant stoğu."
                                  },
                                  "ImageUrl": {
                                    "type": "string",
                                    "description": "Varyant görseli adresi."
                                  },
                                  "VariantValue1": {
                                    "type": "string",
                                    "description": "1. varyant özelliğinin değeri."
                                  },
                                  "VariantValue2": {
                                    "type": "string",
                                    "description": "2. varyant özelliğinin değeri."
                                  },
                                  "VariantValue3": {
                                    "type": "string",
                                    "description": "3. varyant özelliğinin değeri."
                                  },
                                  "VariantValue4": {
                                    "type": "string",
                                    "description": "4. varyant özelliğinin değeri."
                                  },
                                  "CurrencyId": {
                                    "type": "integer",
                                    "description": "Her zaman 0 (okunmaz)."
                                  },
                                  "MinSalePrice": {
                                    "type": "number",
                                    "description": "Her zaman 0 (okunmaz)."
                                  },
                                  "Price2": {
                                    "type": "number",
                                    "description": "Her zaman 0 (`Price3`, `Price4`, `Price5` de öyle)."
                                  }
                                }
                              },
                              "description": "Varyantlar. Yalnızca `ProductId` ile sorguda dolar; pasif varyantlar da dahildir."
                            },
                            "Specs": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Name": {
                                    "type": "string",
                                    "description": "Özellik adı."
                                  },
                                  "Value": {
                                    "type": "string",
                                    "description": "Özellik değeri."
                                  }
                                }
                              },
                              "description": "Özellikler. Yalnızca `ProductId` ile sorguda döner."
                            },
                            "StoreId": {
                              "type": "integer",
                              "description": "Her zaman 0 (yalnızca istek alanı)."
                            },
                            "Price2": {
                              "type": "number",
                              "description": "Her zaman 0 (`Price3`, `Price4`, `Price5` de öyle)."
                            },
                            "UpdateProductByCode": {
                              "type": "boolean",
                              "description": "Her zaman `false` (yalnızca istek alanı)."
                            },
                            "SetProductQuantityFromVariants": {
                              "type": "boolean",
                              "description": "Her zaman `false` (yalnızca istek alanı)."
                            },
                            "UpdateProductDescription": {
                              "type": "boolean",
                              "description": "Her zaman `true` (yalnızca istek alanı)."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 987654,
                    "ProductSourceId": 1234,
                    "Description": "<p>%100 pamuk, regular fit.</p>",
                    "Code": "TSHIRT-001",
                    "Code2": "",
                    "Barcode": "8690000000017",
                    "Name": "Basic Pamuklu Tişört",
                    "Subtitle": "",
                    "Price": 249.9,
                    "Quantity": 30,
                    "Brand": "Örnek Marka",
                    "TaxRate": 20.0,
                    "Model": "BSC-01",
                    "Category": "Tişört",
                    "CurrencyId": 4,
                    "Images": [
                      {
                        "Order": 0,
                        "Url": "https://cdn.example.com/tshirt-001-1.jpg"
                      },
                      {
                        "Order": 1,
                        "Url": "https://cdn.example.com/tshirt-001-2.jpg"
                      }
                    ],
                    "MarketPrice": 299.9,
                    "Status": 1,
                    "Volume": 1.0,
                    "Height": 0.0,
                    "Length": 0.0,
                    "Width": 0.0,
                    "VariantName1": "Renk",
                    "VariantName2": "Beden",
                    "Variants": [
                      {
                        "ProductVariantId": 5550001,
                        "Code": "TSHIRT-001-BLK-M",
                        "Price": 249.9,
                        "Price2": 0.0,
                        "Price3": 0.0,
                        "Price4": 0.0,
                        "Price5": 0.0,
                        "Quantity": 10,
                        "Barcode": "8690000000024",
                        "CurrencyId": 0,
                        "ImageUrl": "",
                        "VariantValue1": "Siyah",
                        "VariantValue2": "M",
                        "VariantValue3": "",
                        "VariantValue4": "",
                        "MinSalePrice": 0.0
                      }
                    ],
                    "Specs": [
                      {
                        "Name": "Materyal",
                        "Value": "Pamuk"
                      }
                    ],
                    "Url": "",
                    "StoreId": 0,
                    "Weight": 0.0,
                    "CreationTime": "2025-11-05T10:22:31.497",
                    "UpdateProductByCode": false,
                    "SetProductQuantityFromVariants": false,
                    "DispatchPeriod": 2,
                    "Price2": 0.0,
                    "Price3": 0.0,
                    "Price4": 0.0,
                    "Price5": 0.0,
                    "UpdateProductDescription": true,
                    "SoldCount": 0,
                    "SellerNote": ""
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/GetProducts": {
      "post": {
        "operationId": "GetProducts",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürünleri listele",
        "description": "**Ürünleri listele** — Bir kaynaktaki ürünleri filtreleyip sıralı ve sayfalı olarak döndürür.\n\n`PageIndex` 1'den başlar; 1'den küçük değerler 1 sayılır. `RowsByPage` gönderilmezse veya 0 ise 100'dür; en fazla 100'dür (daha büyük değerler 100'e, negatif değerler 1'e çekilir). Toplam sayfa sayısını `FilteredProductCount` ve `RowsByPage` ile hesaplayın.\n\n`OrderBy` şu değerlerden biri olmalıdır (büyük/küçük harf duyarsız): `Name`, `ProductId`, `Category`, `Price`, `Quantity`, `Status`, `CurrencyId`. Geçersiz değer hata vermez, `ProductId` kullanılır. `OrderDirection` `ASC` veya `DESC` olur; geçersizse `ASC`.\n\nSayısal filtrelerde 0, metin filtrelerinde boş değer filtreyi kapatır; bu yüzden `QuantityFrom`/`QuantityTo` ile stoğu 0 olan ürünleri süzemezsiniz. `ProductCode` ve `ProductCategory` birebir eşleşir. `Keywords` ürün adında (ve varsa pazaryerine özel adında) arar; boşluklar joker gibi davranır: `kırmızı tişört`, adında önce `kırmızı` sonra `tişört` geçen ürünleri bulur.\n\n`CreationTimeFrom` ve `CreationTimeTo` yalnızca yılı 2010'dan büyükse uygulanır. Değeri `2025-01-31T00:00:00` biçiminde, saat dilimi eki olmadan gönderin; veritabanında saklanan oluşturma zamanıyla olduğu gibi karşılaştırılır. Yanıttaki `CreationTime` de saat dilimi eki olmadan döner.\n\n`TotalProductCount` filtrelerden bağımsız olarak kaynaktaki toplam ürün sayısıdır; `FilteredProductCount` filtrelere uyan ürün sayısıdır. Kaldırılmış `DeleteProduct` ile silinmiş ürünler sayılmaz ve listelenmez; durdurulmuş ürünler (durum 3) listelenir. `ProductSourceId` herhangi bir kaynağınız olabilir; kaynak tipi kontrol edilmez.\n\nListe öğesi, `GetProduct` yanıtından daha az alan içerir; varyant, görsel listesi ve açıklama yoktur. `Image` ilk görselin adresidir. `Currency` para biriminin kodudur; kod `NON` ise `TRY` döner. `Barcode` ürünün kendi barkodudur (`GetProduct` ise entegrasyon barkodunu öncelikli döndürür).\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/GetProducts",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Listelenecek kaynak. 1'den küçükse 00003 döner (`ErrorMessage`: `ProductSourceId`)."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "Tek bir ürün kimliğiyle süzer. 0 = filtre yok."
                  },
                  "ProductCode": {
                    "type": "string",
                    "description": "Ürün kodu, birebir eşleşme. En fazla 50 karakter."
                  },
                  "Keywords": {
                    "type": "string",
                    "description": "Ürün adında arama; boşluklar joker gibi davranır."
                  },
                  "ProductCategory": {
                    "type": "string",
                    "description": "Kategori adı, birebir eşleşme."
                  },
                  "PriceFrom": {
                    "type": "number",
                    "description": "En düşük fiyat (dahil). 0 = filtre yok."
                  },
                  "PriceTo": {
                    "type": "number",
                    "description": "En yüksek fiyat (dahil). 0 = filtre yok."
                  },
                  "QuantityFrom": {
                    "type": "integer",
                    "description": "En düşük stok (dahil). 0 = filtre yok."
                  },
                  "QuantityTo": {
                    "type": "integer",
                    "description": "En yüksek stok (dahil). 0 = filtre yok."
                  },
                  "CurrencyId": {
                    "type": "integer",
                    "description": "Para birimi kimliği. 0 = filtre yok."
                  },
                  "ProductStatus": {
                    "type": "integer",
                    "description": "Ürün durumu filtresi. Varsayılan -1 (tümü).\n\n- `-1`: Tümü (varsayılan)\n- `0`: Değişmedi\n- `1`: Yeni\n- `2`: Değişti\n- `3`: Durduruldu / stok yok\n- `4`: Yeniden eklendi\n- `99`: 3 dışındaki tümü (durdurulmamış ürünler)"
                  },
                  "CreationTimeFrom": {
                    "type": "string",
                    "description": "Bu zamandan sonra oluşturulanlar (dahil). `yyyy-MM-ddTHH:mm:ss`, saat dilimi eki olmadan. Yılı 2010 veya öncesiyse yok sayılır."
                  },
                  "CreationTimeTo": {
                    "type": "string",
                    "description": "Bu zamandan önce oluşturulanlar (dahil). Biçim ve kural `CreationTimeFrom` ile aynı."
                  },
                  "PageIndex": {
                    "type": "integer",
                    "description": "Sayfa numarası, 1'den başlar. Varsayılan 1."
                  },
                  "RowsByPage": {
                    "type": "integer",
                    "description": "Sayfa boyutu. Varsayılan 100, en fazla 100."
                  },
                  "OrderBy": {
                    "type": "string",
                    "description": "Sıralama alanı. Varsayılan `ProductId`.\n\n- `Name`: Ürün adı\n- `ProductId`: Ürün kimliği (varsayılan)\n- `Category`: Kategori adı\n- `Price`: Fiyat\n- `Quantity`: Stok\n- `Status`: Durum\n- `CurrencyId`: Para birimi"
                  },
                  "OrderDirection": {
                    "type": "string",
                    "description": "Sıralama yönü. Varsayılan `ASC`.\n\n- `ASC`: Artan (varsayılan)\n- `DESC`: Azalan"
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductSourceId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductSourceId": 1234,
                "Keywords": "tişört",
                "ProductStatus": 99,
                "CreationTimeFrom": "2025-10-01T00:00:00",
                "PageIndex": 1,
                "RowsByPage": 50,
                "OrderBy": "Name",
                "OrderDirection": "ASC"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "TotalProductCount": {
                              "type": "integer",
                              "description": "Kaynaktaki toplam ürün sayısı (filtrelerden bağımsız)."
                            },
                            "FilteredProductCount": {
                              "type": "integer",
                              "description": "Filtrelere uyan ürün sayısı."
                            },
                            "Products": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "ProductId": {
                                    "type": "integer",
                                    "description": "Ürün kimliği."
                                  },
                                  "ProductSourceId": {
                                    "type": "integer",
                                    "description": "Kaynak kimliği."
                                  },
                                  "Category": {
                                    "type": "string",
                                    "description": "Kategori adı."
                                  },
                                  "Code": {
                                    "type": "string",
                                    "description": "Ürün kodu."
                                  },
                                  "Code2": {
                                    "type": "string",
                                    "description": "İkinci ürün kodu; yoksa boş."
                                  },
                                  "Name": {
                                    "type": "string",
                                    "description": "Ürün adı."
                                  },
                                  "TaxRate": {
                                    "type": "number",
                                    "description": "KDV oranı; yoksa 0."
                                  },
                                  "Quantity": {
                                    "type": "integer",
                                    "description": "Stok miktarı."
                                  },
                                  "SoldCount": {
                                    "type": "integer",
                                    "description": "Satış adedi."
                                  },
                                  "Price": {
                                    "type": "number",
                                    "description": "Satış fiyatı."
                                  },
                                  "Subtitle": {
                                    "type": "string",
                                    "description": "Alt başlık."
                                  },
                                  "Volume": {
                                    "type": "number",
                                    "description": "Hacim / desi (ikinci değer tanımlıysa o)."
                                  },
                                  "Brand": {
                                    "type": "string",
                                    "description": "Marka."
                                  },
                                  "Barcode": {
                                    "type": "string",
                                    "description": "Ürünün kendi barkodu."
                                  },
                                  "Status": {
                                    "type": "integer",
                                    "description": "Ürün durumu.\n\n- `0`: Değişmedi\n- `1`: Yeni (API ile eklenen ürünlerin ilk durumu)\n- `2`: Değişti (`UpdateProduct` sonrası, stok 0'dan büyükse)\n- `3`: Durduruldu / stok yok (`StopProduct` veya stok 1'den küçük)\n- `4`: Yeniden eklendi"
                                  },
                                  "CreationTime": {
                                    "type": "string",
                                    "description": "Oluşturulma zamanı, saat dilimi eki olmadan."
                                  },
                                  "CurrencyId": {
                                    "type": "integer",
                                    "description": "Para birimi kimliği."
                                  },
                                  "MarketPrice": {
                                    "type": "number",
                                    "description": "Piyasa (liste) fiyatı; yoksa 0."
                                  },
                                  "Image": {
                                    "type": "string",
                                    "description": "İlk görselin adresi; yoksa boş."
                                  },
                                  "Currency": {
                                    "type": "string",
                                    "description": "Para birimi kodu (ör. `TRY`, `USD`); `NON` ise `TRY` döner."
                                  },
                                  "SellerNote": {
                                    "type": "string",
                                    "description": "Satıcı notu; yoksa boş."
                                  }
                                }
                              },
                              "description": "Bu sayfadaki ürünler."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "TotalProductCount": 152,
                    "FilteredProductCount": 1,
                    "Products": [
                      {
                        "ProductId": 987654,
                        "ProductSourceId": 1234,
                        "Category": "Tişört",
                        "Code": "TSHIRT-001",
                        "Code2": "",
                        "Name": "Basic Pamuklu Tişört",
                        "TaxRate": 20.0,
                        "Quantity": 30,
                        "SoldCount": 4,
                        "Price": 249.9,
                        "Subtitle": "",
                        "Volume": 1.0,
                        "Brand": "Örnek Marka",
                        "Barcode": "8690000000017",
                        "Status": 1,
                        "CreationTime": "2025-11-05T10:22:31.497",
                        "CurrencyId": 4,
                        "MarketPrice": 299.9,
                        "Image": "https://cdn.example.com/tshirt-001-1.jpg",
                        "Currency": "TRY",
                        "SellerNote": ""
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/GetProductSummary": {
      "post": {
        "operationId": "GetProductSummary",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün özetini getir",
        "description": "**Ürün özetini getir** — Bir kaynaktaki tüm ürünlerin kimliğini, kodunu, adını, barkodunu ve durumunu tek yanıtta döndürür.\n\nSayfalama ve filtre yoktur; kaynaktaki tüm ürünler tek yanıtta gelir ve sıra garanti edilmez. Yalnızca `ProductSourceId` okunur; `GetProducts` filtre ve sayfalama alanları bu çağrıda yok sayılır.\n\n`TotalProductCount` ve `FilteredProductCount` her zaman aynıdır ve dönen ürün sayısını verir. Kaldırılmış `DeleteProduct` ile silinmiş ürünler dönmez; durdurulmuş ürünler (durum 3) döner. Bu çağrı, kendi sisteminizdeki ürünleri StockMount `ProductId` değerleriyle eşleştirmek için uygundur.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/GetProductSummary",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Kaynak kimliği. 1'den küçükse 00003 döner (`ErrorMessage`: `ProductSourceId`)."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductSourceId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductSourceId": 1234
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "TotalProductCount": {
                              "type": "integer",
                              "description": "Dönen ürün sayısı."
                            },
                            "FilteredProductCount": {
                              "type": "integer",
                              "description": "`TotalProductCount` ile aynı."
                            },
                            "Products": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "ProductId": {
                                    "type": "integer",
                                    "description": "Ürün kimliği."
                                  },
                                  "ProductSourceId": {
                                    "type": "integer",
                                    "description": "Kaynak kimliği."
                                  },
                                  "Code": {
                                    "type": "string",
                                    "description": "Ürün kodu."
                                  },
                                  "Name": {
                                    "type": "string",
                                    "description": "Ürün adı."
                                  },
                                  "Barcode": {
                                    "type": "string",
                                    "description": "Barkod; yoksa boş metin."
                                  },
                                  "Status": {
                                    "type": "integer",
                                    "description": "Ürün durumu.\n\n- `0`: Değişmedi\n- `1`: Yeni (API ile eklenen ürünlerin ilk durumu)\n- `2`: Değişti (`UpdateProduct` sonrası, stok 0'dan büyükse)\n- `3`: Durduruldu / stok yok (`StopProduct` veya stok 1'den küçük)\n- `4`: Yeniden eklendi"
                                  }
                                }
                              },
                              "description": "Kaynaktaki tüm ürünler."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "TotalProductCount": 2,
                    "FilteredProductCount": 2,
                    "Products": [
                      {
                        "ProductId": 987654,
                        "ProductSourceId": 1234,
                        "Code": "TSHIRT-001",
                        "Name": "Basic Pamuklu Tişört",
                        "Barcode": "8690000000017",
                        "Status": 2
                      },
                      {
                        "ProductId": 987655,
                        "ProductSourceId": 1234,
                        "Code": "PANT-002",
                        "Name": "Chino Pantolon",
                        "Barcode": "8690000000048",
                        "Status": 3
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/SetProductCode": {
      "post": {
        "operationId": "SetProductCode",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün kodunu değiştir",
        "description": "**Ürün kodunu değiştir** — Mevcut bir ürünün `Code` değerini değiştirir.\n\nYalnızca StockMount tipindeki kaynaklardaki ürünlerde çalışır. Yeni kod aynı kaynakta başka bir üründe kullanılıyorsa değişiklik yapılmaz.\n\n`Code` en fazla 50 karakterdir; daha uzunsa 70009 döner (`ErrorMessage`: `'Code' length must be at most 50 character.`).\n\nÜrün bulunamazsa, hesabınıza ait değilse, kaynağı StockMount tipinde değilse veya kod başka bir üründe kullanılıyorsa 99999 döner ve `ErrorMessage` boştur. Başarılı yanıtta `Response` yoktur.\n\nKod değiştikten sonra `UpdateProduct`, `GetProduct` ve kodla çalışan diğer çağrılarda yeni kodu kullanın.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/SetProductCode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` ile aldığınız oturum kodu."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "Kodu değişecek ürünün kimliği. 1'den küçükse 00003 döner (`ErrorMessage`: `ProductId`)."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Yeni ürün kodu. En fazla 50 karakter. Boşsa 00003 döner (`ErrorMessage`: `Code`)."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductId",
                  "Code"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 987654,
                "Code": "TSHIRT-001-V2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductPrice": {
      "post": {
        "operationId": "UpdateProductPrice",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün fiyatını güncelle (ProductId ile)",
        "description": "**Ürün fiyatını güncelle (ProductId ile)** — `ProductId` ile bulunan ürünün ve isteğe bağlı olarak varyantlarının fiyatlarını günceller.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz. Bir ürünün birden fazla varyantını `Variants` ile aynı çağrıda güncelleyebilirsiniz.\n\nÜrün yalnızca `ProductId` ile bulunur. Ürün kodu ile güncellemek için `ByCode` uç noktasını kullanın.\n\n`Price`, `MarketPrice` ve `Price2`–`Price5` her çağrıda istekteki değerle değiştirilir; göndermediğiniz alan `0` olur. Kullandığınız tüm fiyatları her seferinde gönderin.\n\n`Variants` içindeki her öğe `ProductVariantId` ile, bu yoksa varyant `Code` ile ürünün varyantlarıyla eşleştirilir. Eşleşen varyantın `Price` ve `Price2`–`Price5` değerleri istekteki değerle değiştirilir (gönderilmeyen `0` olur). Listede olmayan varyantlara dokunulmaz. Varyant düzeyinde `CurrencyId` okunmaz; ürün düzeyindeki `CurrencyId` kullanılır.\n\nBu uç nokta fiyatları doğrulamaz: `0`, negatif değer veya `Price` değerinden düşük bir `MarketPrice` kabul edilir. Bu tür sorunlar bu çağrıda değil, pazaryeri senkronizasyonu sırasında hata olarak ortaya çıkar.\n\nBu uç nokta stoğu ve adı değiştirmez; `Quantity` ve `Name` yok sayılır.\n\nFiyat önce StockMount'taki ürüne yazılır. Fiyatlardan biri gerçekten değiştiyse, ürünün pazaryerlerindeki aktif ilanları için fiyat güncellemesi kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir. Aynı tür bekleyen bir güncelleme varsa yenisi eklenmez.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductPrice",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "StockMount ürün kimliği. Ürün hesabınıza ait olmalıdır. Bu uç noktada `Code` yok sayılır."
                  },
                  "Price": {
                    "type": "number",
                    "description": "Ürünün satış fiyatı. 2 ondalık basamakla saklanır. Gönderilmezse `0` yazılır."
                  },
                  "MarketPrice": {
                    "type": "number",
                    "description": "Piyasa (liste) fiyatı. Gönderilmezse `0` yazılır."
                  },
                  "Price2": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 2. Gönderilmezse `0` yazılır."
                  },
                  "Price3": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 3. Gönderilmezse `0` yazılır."
                  },
                  "Price4": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 4. Gönderilmezse `0` yazılır."
                  },
                  "Price5": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 5. Gönderilmezse `0` yazılır."
                  },
                  "CurrencyId": {
                    "type": "integer",
                    "description": "Para birimi kimliği (`GetCurrencies`). 0'dan büyükse ürünün ve güncellenen varyantların para birimi bu değere çevrilir. Gönderilmezse veya `0` ise para birimi değişmez."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "Price": {
                          "type": "number",
                          "description": "Varyantın satış fiyatı. Gönderilmezse `0` yazılır."
                        },
                        "Price2": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 2. Gönderilmezse `0` yazılır."
                        },
                        "Price3": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 3. Gönderilmezse `0` yazılır."
                        },
                        "Price4": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 4. Gönderilmezse `0` yazılır."
                        },
                        "Price5": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 5. Gönderilmezse `0` yazılır."
                        }
                      }
                    },
                    "description": "Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 184522,
                "Price": 349.9,
                "MarketPrice": 449.9,
                "Price2": 329.9,
                "Price3": 0,
                "Price4": 0,
                "Price5": 0,
                "Variants": [
                  {
                    "ProductVariantId": 9120344,
                    "Price": 349.9,
                    "Price2": 329.9
                  },
                  {
                    "Code": "TSHIRT-RED-L",
                    "Price": 359.9,
                    "Price2": 339.9
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": [
                      {
                        "Code": "TSHIRT-RED-M",
                        "ProductVariantId": 9120344
                      },
                      {
                        "Code": "TSHIRT-RED-L",
                        "ProductVariantId": 9120345
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductPriceByCode": {
      "post": {
        "operationId": "UpdateProductPriceByCode",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün fiyatını güncelle (ürün kodu ile)",
        "description": "**Ürün fiyatını güncelle (ürün kodu ile)** — `Code` ve `ProductSourceId` ile bulunan ürünün ve isteğe bağlı olarak varyantlarının fiyatlarını günceller.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz. Bir ürünün birden fazla varyantını `Variants` ile aynı çağrıda güncelleyebilirsiniz.\n\nÜrün `Code` + `ProductSourceId` ile bulunur; gönderdiğiniz `ProductId` yok sayılır. `Code` boşsa dönen `ErrorMessage` alanında `ProductId` yazar; bu, kodun eksik olduğu anlamına gelir.\n\n`Price`, `MarketPrice` ve `Price2`–`Price5` her çağrıda istekteki değerle değiştirilir; göndermediğiniz alan `0` olur. Kullandığınız tüm fiyatları her seferinde gönderin.\n\n`Variants` içindeki her öğe `ProductVariantId` ile, bu yoksa varyant `Code` ile ürünün varyantlarıyla eşleştirilir. Eşleşen varyantın `Price` ve `Price2`–`Price5` değerleri istekteki değerle değiştirilir (gönderilmeyen `0` olur). Listede olmayan varyantlara dokunulmaz. Varyant düzeyinde `CurrencyId` okunmaz; ürün düzeyindeki `CurrencyId` kullanılır.\n\nBu uç nokta fiyatları doğrulamaz: `0`, negatif değer veya `Price` değerinden düşük bir `MarketPrice` kabul edilir. Bu tür sorunlar bu çağrıda değil, pazaryeri senkronizasyonu sırasında hata olarak ortaya çıkar.\n\nBu uç nokta stoğu ve adı değiştirmez; `Quantity` ve `Name` yok sayılır.\n\nFiyat önce StockMount'taki ürüne yazılır. Fiyatlardan biri gerçekten değiştiyse, ürünün pazaryerlerindeki aktif ilanları için fiyat güncellemesi kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir. Aynı tür bekleyen bir güncelleme varsa yenisi eklenmez.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductPriceByCode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu (stok kodu), en fazla 50 karakter. Ürün, `Code` ve `ProductSourceId` birlikte kullanılarak bulunur. Bu uç noktada `ProductId` yok sayılır."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürünün bağlı olduğu ürün kaynağının kimliği (`GetProductSources`). `Code` bu kaynak içinde aranır."
                  },
                  "Price": {
                    "type": "number",
                    "description": "Ürünün satış fiyatı. 2 ondalık basamakla saklanır. Gönderilmezse `0` yazılır."
                  },
                  "MarketPrice": {
                    "type": "number",
                    "description": "Piyasa (liste) fiyatı. Gönderilmezse `0` yazılır."
                  },
                  "Price2": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 2. Gönderilmezse `0` yazılır."
                  },
                  "Price3": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 3. Gönderilmezse `0` yazılır."
                  },
                  "Price4": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 4. Gönderilmezse `0` yazılır."
                  },
                  "Price5": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 5. Gönderilmezse `0` yazılır."
                  },
                  "CurrencyId": {
                    "type": "integer",
                    "description": "Para birimi kimliği (`GetCurrencies`). 0'dan büyükse ürünün ve güncellenen varyantların para birimi bu değere çevrilir. Gönderilmezse veya `0` ise para birimi değişmez."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "Price": {
                          "type": "number",
                          "description": "Varyantın satış fiyatı. Gönderilmezse `0` yazılır."
                        },
                        "Price2": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 2. Gönderilmezse `0` yazılır."
                        },
                        "Price3": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 3. Gönderilmezse `0` yazılır."
                        },
                        "Price4": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 4. Gönderilmezse `0` yazılır."
                        },
                        "Price5": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 5. Gönderilmezse `0` yazılır."
                        }
                      }
                    },
                    "description": "Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır."
                  }
                },
                "required": [
                  "ApiCode",
                  "Code",
                  "ProductSourceId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "Code": "TSHIRT-RED",
                "ProductSourceId": 3051,
                "Price": 349.9,
                "MarketPrice": 449.9,
                "Price2": 329.9,
                "Price3": 0,
                "Price4": 0,
                "Price5": 0,
                "Variants": [
                  {
                    "ProductVariantId": 9120344,
                    "Price": 349.9,
                    "Price2": 329.9
                  },
                  {
                    "Code": "TSHIRT-RED-L",
                    "Price": 359.9,
                    "Price2": 339.9
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": [
                      {
                        "Code": "TSHIRT-RED-M",
                        "ProductVariantId": 9120344
                      },
                      {
                        "Code": "TSHIRT-RED-L",
                        "ProductVariantId": 9120345
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductQuantity": {
      "post": {
        "operationId": "UpdateProductQuantity",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün stoğunu güncelle (ProductId ile)",
        "description": "**Ürün stoğunu güncelle (ProductId ile)** — `ProductId` ile bulunan ürünün ve isteğe bağlı olarak varyantlarının stok miktarını günceller.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz. Bir ürünün birden fazla varyantını `Variants` ile aynı çağrıda güncelleyebilirsiniz.\n\nÜrün yalnızca `ProductId` ile bulunur. Ürün kodu ile güncellemek için `ByCode` uç noktasını kullanın.\n\nGönderdiğiniz miktar ürünün satılabilir stoğunun yerine geçer; StockMount'un o ana kadar saydığı satılan adet sıfırlanır. Yeni ürün stoğu 1'den küçükse ürünün `Status` değeri `3`, aksi halde `2` olur.\n\nÜrün düzeyindeki `Quantity` her çağrıda yazılır. `Quantity` göndermeden yalnızca varyant stoklarını gönderirseniz ve `SetProductQuantityFromVariants` alanını `true` yapmazsanız ürün stoğu `0` olur. Varyantlı ürünlerde `SetProductQuantityFromVariants: true` göndermeniz önerilir.\n\n`Variants` içindeki her öğe `ProductVariantId` ile, bu yoksa varyant `Code` ile ürünün varyantlarıyla eşleştirilir. Eşleşen varyantın stoğu `Quantity` ile değiştirilir (gönderilmezse `0`). Listede olmayan varyantlara dokunulmaz.\n\nMiktarlar doğrulanmaz; negatif değerler reddedilmez.\n\nBu uç nokta fiyatları değiştirmez; fiyat alanları yok sayılır. Tek istisna `CurrencyId`: 0'dan büyük gönderirseniz ürünün para birimi de değişir. Bu alanı göndermeyin.\n\nStok önce StockMount'taki ürüne yazılır. Stok değiştiyse, ürünün pazaryerlerindeki aktif ilanları için stok güncellemesi kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir. Aynı tür bekleyen bir güncelleme varsa yenisi eklenmez.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductQuantity",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "StockMount ürün kimliği. Ürün hesabınıza ait olmalıdır. Bu uç noktada `Code` yok sayılır."
                  },
                  "Quantity": {
                    "type": "integer",
                    "description": "Ürünün yeni stok miktarı. Gönderilmezse `0` yazılır. `SetProductQuantityFromVariants` `true` ise ve `Variants` en az bir öğe içeriyorsa yok sayılır. Negatif değer reddedilmez."
                  },
                  "SetProductQuantityFromVariants": {
                    "type": "boolean",
                    "description": "`true` ise ürün stoğu aktif varyantların toplamı olarak hesaplanır: listede gönderdiğiniz varyantlar için yeni miktar, diğer varyantlar için mevcut satılabilir stok kullanılır. `Variants` boşsa etkisizdir. Varsayılan `false`."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "Quantity": {
                          "type": "integer",
                          "description": "Varyantın yeni stok miktarı. Gönderilmezse `0` yazılır. Negatif değer reddedilmez."
                        }
                      }
                    },
                    "description": "Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 184522,
                "SetProductQuantityFromVariants": true,
                "Variants": [
                  {
                    "ProductVariantId": 9120344,
                    "Quantity": 15
                  },
                  {
                    "Code": "TSHIRT-RED-L",
                    "Quantity": 0
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": [
                      {
                        "Code": "TSHIRT-RED-M",
                        "ProductVariantId": 9120344
                      },
                      {
                        "Code": "TSHIRT-RED-L",
                        "ProductVariantId": 9120345
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductQuantityByCode": {
      "post": {
        "operationId": "UpdateProductQuantityByCode",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün stoğunu güncelle (ürün kodu ile)",
        "description": "**Ürün stoğunu güncelle (ürün kodu ile)** — `Code` ve `ProductSourceId` ile bulunan ürünün ve isteğe bağlı olarak varyantlarının stok miktarını günceller.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz. Bir ürünün birden fazla varyantını `Variants` ile aynı çağrıda güncelleyebilirsiniz.\n\nÜrün `Code` + `ProductSourceId` ile bulunur; gönderdiğiniz `ProductId` yok sayılır. `Code` boşsa dönen `ErrorMessage` alanında `ProductId` yazar; bu, kodun eksik olduğu anlamına gelir.\n\nGönderdiğiniz miktar ürünün satılabilir stoğunun yerine geçer; StockMount'un o ana kadar saydığı satılan adet sıfırlanır. Yeni ürün stoğu 1'den küçükse ürünün `Status` değeri `3`, aksi halde `2` olur.\n\nÜrün düzeyindeki `Quantity` her çağrıda yazılır. `Quantity` göndermeden yalnızca varyant stoklarını gönderirseniz ve `SetProductQuantityFromVariants` alanını `true` yapmazsanız ürün stoğu `0` olur. Varyantlı ürünlerde `SetProductQuantityFromVariants: true` göndermeniz önerilir.\n\n`Variants` içindeki her öğe `ProductVariantId` ile, bu yoksa varyant `Code` ile ürünün varyantlarıyla eşleştirilir. Eşleşen varyantın stoğu `Quantity` ile değiştirilir (gönderilmezse `0`). Listede olmayan varyantlara dokunulmaz.\n\nMiktarlar doğrulanmaz; negatif değerler reddedilmez.\n\nBu uç nokta fiyatları değiştirmez; fiyat alanları yok sayılır. Tek istisna `CurrencyId`: 0'dan büyük gönderirseniz ürünün para birimi de değişir. Bu alanı göndermeyin.\n\nStok önce StockMount'taki ürüne yazılır. Stok değiştiyse, ürünün pazaryerlerindeki aktif ilanları için stok güncellemesi kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir. Aynı tür bekleyen bir güncelleme varsa yenisi eklenmez.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductQuantityByCode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu (stok kodu), en fazla 50 karakter. Ürün, `Code` ve `ProductSourceId` birlikte kullanılarak bulunur. Bu uç noktada `ProductId` yok sayılır."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürünün bağlı olduğu ürün kaynağının kimliği (`GetProductSources`). `Code` bu kaynak içinde aranır."
                  },
                  "Quantity": {
                    "type": "integer",
                    "description": "Ürünün yeni stok miktarı. Gönderilmezse `0` yazılır. `SetProductQuantityFromVariants` `true` ise ve `Variants` en az bir öğe içeriyorsa yok sayılır. Negatif değer reddedilmez."
                  },
                  "SetProductQuantityFromVariants": {
                    "type": "boolean",
                    "description": "`true` ise ürün stoğu aktif varyantların toplamı olarak hesaplanır: listede gönderdiğiniz varyantlar için yeni miktar, diğer varyantlar için mevcut satılabilir stok kullanılır. `Variants` boşsa etkisizdir. Varsayılan `false`."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "Quantity": {
                          "type": "integer",
                          "description": "Varyantın yeni stok miktarı. Gönderilmezse `0` yazılır. Negatif değer reddedilmez."
                        }
                      }
                    },
                    "description": "Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır."
                  }
                },
                "required": [
                  "ApiCode",
                  "Code",
                  "ProductSourceId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "Code": "TSHIRT-RED",
                "ProductSourceId": 3051,
                "SetProductQuantityFromVariants": true,
                "Variants": [
                  {
                    "ProductVariantId": 9120344,
                    "Quantity": 15
                  },
                  {
                    "Code": "TSHIRT-RED-L",
                    "Quantity": 0
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": [
                      {
                        "Code": "TSHIRT-RED-M",
                        "ProductVariantId": 9120344
                      },
                      {
                        "Code": "TSHIRT-RED-L",
                        "ProductVariantId": 9120345
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductQuantityByBarcode": {
      "post": {
        "operationId": "UpdateProductQuantityByBarcode",
        "tags": [
          "Ürünler"
        ],
        "summary": "Varyant stoğunu barkodla güncelle",
        "description": "**Varyant stoğunu barkodla güncelle** — `Code` ve `ProductSourceId` ile bulunan ürünün stoğunu ve varyantlarını barkodla eşleştirerek varyant stoklarını günceller.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz. Bir ürünün birden fazla varyantını `Variants` ile aynı çağrıda güncelleyebilirsiniz.\n\nÜrün barkodla değil, `Code` + `ProductSourceId` ile bulunur; `ProductId` yok sayılır. Kök düzeydeki `Barcode` alanı kullanılmaz. Barkod yalnızca `Variants` içindeki varyantları eşleştirmek için kullanılır.\n\n`Variants` içindeki her öğe `ProductVariantId` ile, bu yoksa `Barcode` ile bu ürünün varyantlarıyla eşleştirilir. Eşleşen varyantın stoğu `Quantity` ile değiştirilir (gönderilmezse `0`). Listede olmayan varyantlara dokunulmaz.\n\nGönderdiğiniz miktar ürünün satılabilir stoğunun yerine geçer; StockMount'un o ana kadar saydığı satılan adet sıfırlanır. Yeni ürün stoğu 1'den küçükse ürünün `Status` değeri `3`, aksi halde `2` olur.\n\nÜrün düzeyindeki `Quantity` her çağrıda yazılır. `Quantity` göndermeden yalnızca varyant stoklarını gönderirseniz ve `SetProductQuantityFromVariants` alanını `true` yapmazsanız ürün stoğu `0` olur. Varyantlı ürünlerde `SetProductQuantityFromVariants: true` göndermeniz önerilir.\n\nDikkat: Bu uç nokta, stok güncellemesi olmasına rağmen ürünün `Price2`–`Price5` alanlarını istekteki değerle değiştirir; göndermezseniz bu fiyatlar `0` olur. Bu fiyatları kullanıyorsanız mevcut değerlerini her çağrıda gönderin. `Price` ve `MarketPrice` değişmez.\n\n`CurrencyId` bu uç noktada yok sayılır; ürünün para birimi değişmez.\n\nMiktarlar doğrulanmaz; negatif değerler reddedilmez.\n\nBaşarılı her çağrıdan sonra, ürünün pazaryerlerindeki aktif ilanları için stok güncellemesi kuyruğa alınır (aynı tür bekleyen güncelleme yoksa). Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductQuantityByBarcode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu (stok kodu), en fazla 50 karakter. Ürün, `Code` ve `ProductSourceId` birlikte kullanılarak bulunur. Bu uç noktada `ProductId` yok sayılır."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürünün bağlı olduğu ürün kaynağının kimliği (`GetProductSources`). `Code` bu kaynak içinde aranır."
                  },
                  "Quantity": {
                    "type": "integer",
                    "description": "Ürünün yeni stok miktarı. Gönderilmezse `0` yazılır. `SetProductQuantityFromVariants` `true` ise ve `Variants` en az bir öğe içeriyorsa yok sayılır. Negatif değer reddedilmez."
                  },
                  "SetProductQuantityFromVariants": {
                    "type": "boolean",
                    "description": "`true` ise ürün stoğu varyantların toplamı olarak hesaplanır: listede gönderdiğiniz aktif varyantlar için yeni miktar, diğer tüm varyantlar (pasifler dahil) için mevcut satılabilir stok kullanılır. `Variants` boşsa etkisizdir. Varsayılan `false`."
                  },
                  "Price2": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 2. Bu uç nokta stok güncellese de bu alanı ürüne yazar; gönderilmezse `0` olur. Mevcut değeri gönderin."
                  },
                  "Price3": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 3. Bu uç nokta stok güncellese de bu alanı ürüne yazar; gönderilmezse `0` olur. Mevcut değeri gönderin."
                  },
                  "Price4": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 4. Bu uç nokta stok güncellese de bu alanı ürüne yazar; gönderilmezse `0` olur. Mevcut değeri gönderin."
                  },
                  "Price5": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 5. Bu uç nokta stok güncellese de bu alanı ürüne yazar; gönderilmezse `0` olur. Mevcut değeri gönderin."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Barcode` ile bulunur."
                        },
                        "Barcode": {
                          "type": "string",
                          "description": "Varyant barkodu. `ProductVariantId` yoksa varyant bu barkodla, yalnızca bu ürünün varyantları içinde aranır. Baştaki ve sondaki boşluklar silinir."
                        },
                        "Quantity": {
                          "type": "integer",
                          "description": "Varyantın yeni stok miktarı. Gönderilmezse `0` yazılır. Negatif değer reddedilmez."
                        }
                      }
                    },
                    "description": "Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır."
                  }
                },
                "required": [
                  "ApiCode",
                  "Code",
                  "ProductSourceId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "Code": "TSHIRT-RED",
                "ProductSourceId": 3051,
                "SetProductQuantityFromVariants": true,
                "Price2": 329.9,
                "Price3": 0,
                "Price4": 0,
                "Price5": 0,
                "Variants": [
                  {
                    "Barcode": "8690000000017",
                    "Quantity": 15
                  },
                  {
                    "Barcode": "8690000000024",
                    "Quantity": 0
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": [
                      {
                        "Code": "TSHIRT-RED-M",
                        "ProductVariantId": 9120344
                      },
                      {
                        "Code": "TSHIRT-RED-L",
                        "ProductVariantId": 9120345
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductQuantityAndPrice": {
      "post": {
        "operationId": "UpdateProductQuantityAndPrice",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün stoğunu ve fiyatını güncelle (ProductId ile)",
        "description": "**Ürün stoğunu ve fiyatını güncelle (ProductId ile)** — `ProductId` ile bulunan ürünün ve isteğe bağlı olarak varyantlarının stok ve fiyatlarını tek çağrıda günceller.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz. Bir ürünün birden fazla varyantını `Variants` ile aynı çağrıda güncelleyebilirsiniz.\n\nÜrün yalnızca `ProductId` ile bulunur. Ürün kodu ile güncellemek için `ByCode` uç noktasını kullanın.\n\nGönderdiğiniz miktar ürünün satılabilir stoğunun yerine geçer; StockMount'un o ana kadar saydığı satılan adet sıfırlanır. Yeni ürün stoğu 1'den küçükse ürünün `Status` değeri `3`, aksi halde `2` olur.\n\nÜrün düzeyindeki `Quantity` her çağrıda yazılır. `Quantity` göndermeden yalnızca varyant stoklarını gönderirseniz ve `SetProductQuantityFromVariants` alanını `true` yapmazsanız ürün stoğu `0` olur. Varyantlı ürünlerde `SetProductQuantityFromVariants: true` göndermeniz önerilir.\n\n`Price`, `MarketPrice` ve `Price2`–`Price5` her çağrıda istekteki değerle değiştirilir; göndermediğiniz alan `0` olur. Kullandığınız tüm fiyatları her seferinde gönderin.\n\n`Variants` içindeki her öğe `ProductVariantId` ile, bu yoksa varyant `Code` ile ürünün varyantlarıyla eşleştirilir. Eşleşen varyantın stoğu `Quantity`, fiyatları `Price` ve `Price2`–`Price5` ile değiştirilir; gönderilmeyen alan `0` olur. Listede olmayan varyantlara dokunulmaz. Varyant düzeyinde `CurrencyId` okunmaz.\n\nBu uç nokta fiyatları doğrulamaz: `0`, negatif değer veya `Price` değerinden düşük bir `MarketPrice` kabul edilir. Bu tür sorunlar bu çağrıda değil, pazaryeri senkronizasyonu sırasında hata olarak ortaya çıkar.\n\nMiktarlar doğrulanmaz; negatif değerler reddedilmez.\n\nDeğerler önce StockMount'taki ürüne yazılır. Stok veya fiyat gerçekten değiştiyse, ürünün pazaryerlerindeki aktif ilanları için ilgili güncelleme (stok, fiyat veya ikisi) kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductQuantityAndPrice",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "StockMount ürün kimliği. Ürün hesabınıza ait olmalıdır. Bu uç noktada `Code` yok sayılır."
                  },
                  "Quantity": {
                    "type": "integer",
                    "description": "Ürünün yeni stok miktarı. Gönderilmezse `0` yazılır. `SetProductQuantityFromVariants` `true` ise ve `Variants` en az bir öğe içeriyorsa yok sayılır. Negatif değer reddedilmez."
                  },
                  "SetProductQuantityFromVariants": {
                    "type": "boolean",
                    "description": "`true` ise ürün stoğu aktif varyantların toplamı olarak hesaplanır: listede gönderdiğiniz varyantlar için yeni miktar, diğer varyantlar için mevcut satılabilir stok kullanılır. `Variants` boşsa etkisizdir. Varsayılan `false`."
                  },
                  "Price": {
                    "type": "number",
                    "description": "Ürünün satış fiyatı. 2 ondalık basamakla saklanır. Gönderilmezse `0` yazılır."
                  },
                  "MarketPrice": {
                    "type": "number",
                    "description": "Piyasa (liste) fiyatı. Gönderilmezse `0` yazılır."
                  },
                  "Price2": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 2. Gönderilmezse `0` yazılır."
                  },
                  "Price3": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 3. Gönderilmezse `0` yazılır."
                  },
                  "Price4": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 4. Gönderilmezse `0` yazılır."
                  },
                  "Price5": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 5. Gönderilmezse `0` yazılır."
                  },
                  "CurrencyId": {
                    "type": "integer",
                    "description": "Para birimi kimliği (`GetCurrencies`). 0'dan büyükse ürünün ve güncellenen varyantların para birimi bu değere çevrilir. Gönderilmezse veya `0` ise para birimi değişmez."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "Quantity": {
                          "type": "integer",
                          "description": "Varyantın yeni stok miktarı. Gönderilmezse `0` yazılır. Negatif değer reddedilmez."
                        },
                        "Price": {
                          "type": "number",
                          "description": "Varyantın satış fiyatı. Gönderilmezse `0` yazılır."
                        },
                        "Price2": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 2. Gönderilmezse `0` yazılır."
                        },
                        "Price3": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 3. Gönderilmezse `0` yazılır."
                        },
                        "Price4": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 4. Gönderilmezse `0` yazılır."
                        },
                        "Price5": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 5. Gönderilmezse `0` yazılır."
                        }
                      }
                    },
                    "description": "Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 184522,
                "SetProductQuantityFromVariants": true,
                "Price": 349.9,
                "MarketPrice": 449.9,
                "Price2": 329.9,
                "Price3": 0,
                "Price4": 0,
                "Price5": 0,
                "Variants": [
                  {
                    "ProductVariantId": 9120344,
                    "Quantity": 15,
                    "Price": 349.9,
                    "Price2": 329.9
                  },
                  {
                    "Code": "TSHIRT-RED-L",
                    "Quantity": 0,
                    "Price": 359.9,
                    "Price2": 339.9
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": [
                      {
                        "Code": "TSHIRT-RED-M",
                        "ProductVariantId": 9120344
                      },
                      {
                        "Code": "TSHIRT-RED-L",
                        "ProductVariantId": 9120345
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductQuantityAndPriceByCode": {
      "post": {
        "operationId": "UpdateProductQuantityAndPriceByCode",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün stoğunu ve fiyatını güncelle (ürün kodu ile)",
        "description": "**Ürün stoğunu ve fiyatını güncelle (ürün kodu ile)** — `Code` ve `ProductSourceId` ile bulunan ürünün ve isteğe bağlı olarak varyantlarının stok ve fiyatlarını tek çağrıda günceller.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz. Bir ürünün birden fazla varyantını `Variants` ile aynı çağrıda güncelleyebilirsiniz.\n\nÜrün `Code` + `ProductSourceId` ile bulunur; gönderdiğiniz `ProductId` yok sayılır. `Code` boşsa dönen `ErrorMessage` alanında `ProductId` yazar; bu, kodun eksik olduğu anlamına gelir.\n\nGönderdiğiniz miktar ürünün satılabilir stoğunun yerine geçer; StockMount'un o ana kadar saydığı satılan adet sıfırlanır. Yeni ürün stoğu 1'den küçükse ürünün `Status` değeri `3`, aksi halde `2` olur.\n\nÜrün düzeyindeki `Quantity` her çağrıda yazılır. `Quantity` göndermeden yalnızca varyant stoklarını gönderirseniz ve `SetProductQuantityFromVariants` alanını `true` yapmazsanız ürün stoğu `0` olur. Varyantlı ürünlerde `SetProductQuantityFromVariants: true` göndermeniz önerilir.\n\n`Price`, `MarketPrice` ve `Price2`–`Price5` her çağrıda istekteki değerle değiştirilir; göndermediğiniz alan `0` olur. Kullandığınız tüm fiyatları her seferinde gönderin.\n\n`Variants` içindeki her öğe `ProductVariantId` ile, bu yoksa varyant `Code` ile ürünün varyantlarıyla eşleştirilir. Eşleşen varyantın stoğu `Quantity`, fiyatları `Price` ve `Price2`–`Price5` ile değiştirilir; gönderilmeyen alan `0` olur. Listede olmayan varyantlara dokunulmaz. Varyant düzeyinde `CurrencyId` okunmaz.\n\nBu uç nokta fiyatları doğrulamaz: `0`, negatif değer veya `Price` değerinden düşük bir `MarketPrice` kabul edilir. Bu tür sorunlar bu çağrıda değil, pazaryeri senkronizasyonu sırasında hata olarak ortaya çıkar.\n\nMiktarlar doğrulanmaz; negatif değerler reddedilmez.\n\nDeğerler önce StockMount'taki ürüne yazılır. Stok veya fiyat gerçekten değiştiyse, ürünün pazaryerlerindeki aktif ilanları için ilgili güncelleme (stok, fiyat veya ikisi) kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductQuantityAndPriceByCode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu (stok kodu), en fazla 50 karakter. Ürün, `Code` ve `ProductSourceId` birlikte kullanılarak bulunur. Bu uç noktada `ProductId` yok sayılır."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürünün bağlı olduğu ürün kaynağının kimliği (`GetProductSources`). `Code` bu kaynak içinde aranır."
                  },
                  "Quantity": {
                    "type": "integer",
                    "description": "Ürünün yeni stok miktarı. Gönderilmezse `0` yazılır. `SetProductQuantityFromVariants` `true` ise ve `Variants` en az bir öğe içeriyorsa yok sayılır. Negatif değer reddedilmez."
                  },
                  "SetProductQuantityFromVariants": {
                    "type": "boolean",
                    "description": "`true` ise ürün stoğu aktif varyantların toplamı olarak hesaplanır: listede gönderdiğiniz varyantlar için yeni miktar, diğer varyantlar için mevcut satılabilir stok kullanılır. `Variants` boşsa etkisizdir. Varsayılan `false`."
                  },
                  "Price": {
                    "type": "number",
                    "description": "Ürünün satış fiyatı. 2 ondalık basamakla saklanır. Gönderilmezse `0` yazılır."
                  },
                  "MarketPrice": {
                    "type": "number",
                    "description": "Piyasa (liste) fiyatı. Gönderilmezse `0` yazılır."
                  },
                  "Price2": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 2. Gönderilmezse `0` yazılır."
                  },
                  "Price3": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 3. Gönderilmezse `0` yazılır."
                  },
                  "Price4": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 4. Gönderilmezse `0` yazılır."
                  },
                  "Price5": {
                    "type": "number",
                    "description": "Ürünün ek fiyatı 5. Gönderilmezse `0` yazılır."
                  },
                  "CurrencyId": {
                    "type": "integer",
                    "description": "Para birimi kimliği (`GetCurrencies`). 0'dan büyükse ürünün ve güncellenen varyantların para birimi bu değere çevrilir. Gönderilmezse veya `0` ise para birimi değişmez."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "Quantity": {
                          "type": "integer",
                          "description": "Varyantın yeni stok miktarı. Gönderilmezse `0` yazılır. Negatif değer reddedilmez."
                        },
                        "Price": {
                          "type": "number",
                          "description": "Varyantın satış fiyatı. Gönderilmezse `0` yazılır."
                        },
                        "Price2": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 2. Gönderilmezse `0` yazılır."
                        },
                        "Price3": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 3. Gönderilmezse `0` yazılır."
                        },
                        "Price4": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 4. Gönderilmezse `0` yazılır."
                        },
                        "Price5": {
                          "type": "number",
                          "description": "Varyantın ek fiyatı 5. Gönderilmezse `0` yazılır."
                        }
                      }
                    },
                    "description": "Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır."
                  }
                },
                "required": [
                  "ApiCode",
                  "Code",
                  "ProductSourceId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "Code": "TSHIRT-RED",
                "ProductSourceId": 3051,
                "SetProductQuantityFromVariants": true,
                "Price": 349.9,
                "MarketPrice": 449.9,
                "Price2": 329.9,
                "Price3": 0,
                "Price4": 0,
                "Price5": 0,
                "Variants": [
                  {
                    "ProductVariantId": 9120344,
                    "Quantity": 15,
                    "Price": 349.9,
                    "Price2": 329.9
                  },
                  {
                    "Code": "TSHIRT-RED-L",
                    "Quantity": 0,
                    "Price": 359.9,
                    "Price2": 339.9
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": [
                      {
                        "Code": "TSHIRT-RED-M",
                        "ProductVariantId": 9120344
                      },
                      {
                        "Code": "TSHIRT-RED-L",
                        "ProductVariantId": 9120345
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductName": {
      "post": {
        "operationId": "UpdateProductName",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün adını güncelle (ProductId ile)",
        "description": "**Ürün adını güncelle (ProductId ile)** — `ProductId` ile bulunan ürünün adını değiştirir.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz.\n\nÜrün yalnızca `ProductId` ile bulunur. Ürün kodu ile güncellemek için `ByCode` uç noktasını kullanın.\n\nYalnızca ürünün ana adı (`Name`) değişir. Stok, fiyat ve varyantlar değişmez; diğer alanlar yok sayılır. Tek istisna `CurrencyId`: 0'dan büyük gönderirseniz ürünün para birimi de değişir. Bu alanı göndermeyin.\n\nAd gerçekten değiştiyse, ürünün pazaryerlerindeki aktif ilanları için ürün güncellemesi kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductName",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "StockMount ürün kimliği. Ürün hesabınıza ait olmalıdır. Bu uç noktada `Code` yok sayılır."
                  },
                  "Name": {
                    "type": "string",
                    "description": "Ürünün yeni adı. Boş olamaz. 400 karakterden uzun değerler kesilir."
                  }
                },
                "required": [
                  "ApiCode",
                  "ProductId",
                  "Name"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 184522,
                "Name": "Pamuklu Basic T-Shirt Kırmızı"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductNameByCode": {
      "post": {
        "operationId": "UpdateProductNameByCode",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün adını güncelle (ürün kodu ile)",
        "description": "**Ürün adını güncelle (ürün kodu ile)** — `Code` ve `ProductSourceId` ile bulunan ürünün adını değiştirir.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz.\n\nÜrün `Code` + `ProductSourceId` ile bulunur; gönderdiğiniz `ProductId` yok sayılır. `Code` boşsa dönen `ErrorMessage` alanında `ProductId` yazar; bu, kodun eksik olduğu anlamına gelir.\n\nYalnızca ürünün ana adı (`Name`) değişir. Stok, fiyat ve varyantlar değişmez; diğer alanlar yok sayılır. Tek istisna `CurrencyId`: 0'dan büyük gönderirseniz ürünün para birimi de değişir. Bu alanı göndermeyin.\n\nAd gerçekten değiştiyse, ürünün pazaryerlerindeki aktif ilanları için ürün güncellemesi kuyruğa alınır. Pazaryerleri bu çağrı sırasında değil, arka plandaki işlerle güncellenir.\n\nÜrün bulunamazsa veya hesabınıza ait değilse yanıt `Result: false`, `ErrorCode: \"70005\"` ve `ErrorMessage: \"ProductNotFound\"` olur. Veritabanı hatalarında `ErrorCode` `99999` olur.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductNameByCode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu (stok kodu), en fazla 50 karakter. Ürün, `Code` ve `ProductSourceId` birlikte kullanılarak bulunur. Bu uç noktada `ProductId` yok sayılır."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürünün bağlı olduğu ürün kaynağının kimliği (`GetProductSources`). `Code` bu kaynak içinde aranır."
                  },
                  "Name": {
                    "type": "string",
                    "description": "Ürünün yeni adı. Boş olamaz. 400 karakterden uzun değerler kesilir."
                  }
                },
                "required": [
                  "ApiCode",
                  "Code",
                  "ProductSourceId",
                  "Name"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "Code": "TSHIRT-RED",
                "ProductSourceId": 3051,
                "Name": "Pamuklu Basic T-Shirt Kırmızı"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "ProductId": {
                              "type": "integer",
                              "description": "Güncellenen ürünün kimliği."
                            },
                            "Variants": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "Code": {
                                    "type": "string",
                                    "description": "Varyant kodu."
                                  },
                                  "ProductVariantId": {
                                    "type": "integer",
                                    "description": "Varyant kimliği."
                                  }
                                }
                              },
                              "description": "Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "ProductId": 184522,
                    "Variants": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductImages": {
      "post": {
        "operationId": "UpdateProductImages",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün görsellerini güncelle",
        "description": "**Ürün görsellerini güncelle** — Ürünün görsel listesini (en fazla 12) ve isteğe bağlı olarak varyant görsellerini tamamen değiştirir.\n\nÜrün `ProductId` ile; `ProductId` 1'den küçükse `Code` + `ProductSourceId` ile bulunur. `UpdateProductImages` ve `UpdateProductImagesByCode` aynı kodu çalıştırır ve aynı alanları kabul eder; aralarında davranış farkı yoktur.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz.\n\nGörsel listesi tamamen değiştirilir: istekte olmayan mevcut görseller silinir, yeni görseller eklenir ve ürünün 1–12 numaralı görsel alanları istekteki sıraya göre yeniden yazılır. Kullanılmayan alanlar boşaltılır.\n\nİlk öğeden sonraki bir öğede ne `Url` ne `Base64` varsa çağrı `99999` ile başarısız olur.\n\nBase64 görseller StockMount görsel sunucusuna yüklenir ve kayıtlı adres `http://` ile başlar. Yükleme başarısız olursa görsel boş adresle kaydedilir ve hata dönmez.\n\nBu çağrı görsel biçimini veya protokolü kontrol etmez. Bazı pazaryerleri ilan gönderiminde `http(s)` dışındaki adresleri veya `.webp` görselleri reddeder (`70016`, `70015`); bu hatalar bu çağrıda değil, pazaryeri gönderiminde görünür.\n\nVaryant görsellerinin kaydedilip kaydedilmediği yanıta yansımaz: varyant görseli kaydedilemese de `Result: true` dönebilir.\n\nBu çağrı pazaryeri güncellemesi kuyruğa almaz. Görseller \"elle düzenlendi\" olarak işaretlenir; böylece ürün kaynağından (XML/feed) yapılan sonraki aktarımlar bu görselleri ezmez.\n\nUygulama bu uç nokta için ayrıca bir istek boyutu sınırı uygulamaz. Base64 görseller isteği büyütür; mümkünse `Url` kullanın.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductImages",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "StockMount ürün kimliği. 1'den küçükse ürün `Code` + `ProductSourceId` ile bulunur."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu. `ProductId` gönderilmediğinde zorunludur."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürün kaynağının kimliği (`GetProductSources`). `Code` ile arama yapıldığında zorunludur."
                  },
                  "Images": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "Url": {
                          "type": "string",
                          "description": "Görselin adresi, en fazla 512 karakter. `//` ile başlıyorsa başına `http:` eklenir. Biçim ve protokol bu çağrıda kontrol edilmez."
                        },
                        "Base64": {
                          "type": "string",
                          "description": "`Url` yoksa kullanılır. `data:` öneki olmadan, ham Base64 görsel verisi. PNG ve JPEG tanınır; diğerleri `.png` uzantısıyla kaydedilir."
                        }
                      }
                    },
                    "description": "Ürünün yeni görsel listesi. En az bir öğe gerekir ve ilk öğede `Url` veya `Base64` dolu olmalıdır. En fazla 12 görsel kullanılır; fazlası yok sayılır. Sıra, dizideki sıradır; ilk görsel ana görseldir. Öğelerdeki `Order` alanı okunmaz."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "ImageUrl": {
                          "type": "string",
                          "description": "Varyantın görsel adresi, en fazla 512 karakter. `&` veya `<` gibi XML'e özel karakterler içeriyorsa varyant görseli kaydedilmez ve hata dönmez."
                        },
                        "ImageBase64": {
                          "type": "string",
                          "description": "`ImageUrl` yoksa kullanılır. `data:` öneki olmadan, ham Base64 görsel verisi."
                        }
                      }
                    },
                    "description": "İsteğe bağlı varyant görselleri. Listede olup görseli boş olan varyantın görseli silinir. Listede olmayan varyantlara dokunulmaz."
                  }
                },
                "required": [
                  "ApiCode",
                  "Images"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "ProductId": 184522,
                "Images": [
                  {
                    "Url": "https://cdn.example.com/p/184522-1.jpg"
                  },
                  {
                    "Url": "https://cdn.example.com/p/184522-2.jpg"
                  }
                ],
                "Variants": [
                  {
                    "Code": "TSHIRT-RED-M",
                    "ImageUrl": "https://cdn.example.com/p/184522-red-m.jpg"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "Response": {
                              "type": "integer",
                              "description": "`Response` doğrudan güncellenen ürünün kimliğidir (sayı)."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": 184522
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Product/UpdateProductImagesByCode": {
      "post": {
        "operationId": "UpdateProductImagesByCode",
        "tags": [
          "Ürünler"
        ],
        "summary": "Ürün görsellerini güncelle (ürün kodu ile)",
        "description": "**Ürün görsellerini güncelle (ürün kodu ile)** — Ürünün görsel listesini (en fazla 12) ve isteğe bağlı olarak varyant görsellerini tamamen değiştirir; `UpdateProductImages` ile aynı şekilde çalışır.\n\nÜrün `ProductId` ile; `ProductId` 1'den küçükse `Code` + `ProductSourceId` ile bulunur. `UpdateProductImages` ve `UpdateProductImagesByCode` aynı kodu çalıştırır ve aynı alanları kabul eder; aralarında davranış farkı yoktur.\n\nHer çağrı tek bir ürünü günceller; birden fazla ürünü aynı çağrıda gönderemezsiniz.\n\nGörsel listesi tamamen değiştirilir: istekte olmayan mevcut görseller silinir, yeni görseller eklenir ve ürünün 1–12 numaralı görsel alanları istekteki sıraya göre yeniden yazılır. Kullanılmayan alanlar boşaltılır.\n\nİlk öğeden sonraki bir öğede ne `Url` ne `Base64` varsa çağrı `99999` ile başarısız olur.\n\nBase64 görseller StockMount görsel sunucusuna yüklenir ve kayıtlı adres `http://` ile başlar. Yükleme başarısız olursa görsel boş adresle kaydedilir ve hata dönmez.\n\nBu çağrı görsel biçimini veya protokolü kontrol etmez. Bazı pazaryerleri ilan gönderiminde `http(s)` dışındaki adresleri veya `.webp` görselleri reddeder (`70016`, `70015`); bu hatalar bu çağrıda değil, pazaryeri gönderiminde görünür.\n\nVaryant görsellerinin kaydedilip kaydedilmediği yanıta yansımaz: varyant görseli kaydedilemese de `Result: true` dönebilir.\n\nBu çağrı pazaryeri güncellemesi kuyruğa almaz. Görseller \"elle düzenlendi\" olarak işaretlenir; böylece ürün kaynağından (XML/feed) yapılan sonraki aktarımlar bu görselleri ezmez.\n\nUygulama bu uç nokta için ayrıca bir istek boyutu sınırı uygulamaz. Base64 görseller isteği büyütür; mümkünse `Url` kullanın.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nAktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.\n\nhttps://outsample.stockmount.com/tr/api/Product/UpdateProductImagesByCode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`User/DoLogin` ile aldığınız API anahtarı."
                  },
                  "ProductId": {
                    "type": "integer",
                    "description": "StockMount ürün kimliği. 1'den küçükse ürün `Code` + `ProductSourceId` ile bulunur."
                  },
                  "Code": {
                    "type": "string",
                    "description": "Ürün kodu. `ProductId` gönderilmediğinde zorunludur."
                  },
                  "ProductSourceId": {
                    "type": "integer",
                    "description": "Ürün kaynağının kimliği (`GetProductSources`). `Code` ile arama yapıldığında zorunludur."
                  },
                  "Images": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "Url": {
                          "type": "string",
                          "description": "Görselin adresi, en fazla 512 karakter. `//` ile başlıyorsa başına `http:` eklenir. Biçim ve protokol bu çağrıda kontrol edilmez."
                        },
                        "Base64": {
                          "type": "string",
                          "description": "`Url` yoksa kullanılır. `data:` öneki olmadan, ham Base64 görsel verisi. PNG ve JPEG tanınır; diğerleri `.png` uzantısıyla kaydedilir."
                        }
                      }
                    },
                    "description": "Ürünün yeni görsel listesi. En az bir öğe gerekir ve ilk öğede `Url` veya `Base64` dolu olmalıdır. En fazla 12 görsel kullanılır; fazlası yok sayılır. Sıra, dizideki sıradır; ilk görsel ana görseldir. Öğelerdeki `Order` alanı okunmaz."
                  },
                  "Variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ProductVariantId": {
                          "type": "integer",
                          "description": "Varyant kimliği. Gönderilmezse veya `0` ise varyant `Code` ile bulunur."
                        },
                        "Code": {
                          "type": "string",
                          "description": "Varyant kodu. `ProductVariantId` yoksa eşleştirme için kullanılır."
                        },
                        "ImageUrl": {
                          "type": "string",
                          "description": "Varyantın görsel adresi, en fazla 512 karakter. `&` veya `<` gibi XML'e özel karakterler içeriyorsa varyant görseli kaydedilmez ve hata dönmez."
                        },
                        "ImageBase64": {
                          "type": "string",
                          "description": "`ImageUrl` yoksa kullanılır. `data:` öneki olmadan, ham Base64 görsel verisi."
                        }
                      }
                    },
                    "description": "İsteğe bağlı varyant görselleri. Listede olup görseli boş olan varyantın görseli silinir. Listede olmayan varyantlara dokunulmaz."
                  }
                },
                "required": [
                  "ApiCode",
                  "Images"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "Code": "TSHIRT-RED",
                "ProductSourceId": 3051,
                "Images": [
                  {
                    "Url": "https://cdn.example.com/p/184522-1.jpg"
                  },
                  {
                    "Base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=="
                  }
                ],
                "Variants": [
                  {
                    "ProductVariantId": 9120344,
                    "ImageUrl": "https://cdn.example.com/p/184522-red-m.jpg"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "Response": {
                              "type": "integer",
                              "description": "`Response` doğrudan güncellenen ürünün kimliğidir (sayı)."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": 184522
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/General/GetCurrencies": {
      "post": {
        "operationId": "GetCurrencies",
        "tags": [
          "Genel ve listeler"
        ],
        "summary": "Para birimlerini listele",
        "description": "**Para birimlerini listele** — Sistemde aktif olan para birimlerini kimlik, kod ve adlarıyla döndürür.\n\nListe hesaba göre değişmez. Sayfalama yoktur ve sıralama garanti edilmez.\n\nYalnızca aktif para birimleri döner. İç kullanım için ayrılmış \"bilinmeyen\" kaydı (`CurrencyId` 1) listede yer almaz.\n\nPara birimi kimliği (`CurrencyId`) isteyen alanlarda bu listedeki değerleri kullanın. Kodda sabit tanımlı kimliklerden bazıları: 2 = ABD doları, 3 = Euro, 4 = Türk lirası.\n\nİstek gövdesinde yalnızca `ApiCode` okunur.\n\nhttps://outsample.stockmount.com/tr/api/General/GetCurrencies",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  }
                },
                "required": [
                  "ApiCode"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "CurrencyId": {
                                "type": "integer",
                                "description": "Para birimi kimliği."
                              },
                              "Code": {
                                "type": "string",
                                "description": "Para birimi kodu."
                              },
                              "Name": {
                                "type": "string",
                                "description": "Para biriminin adı."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": [
                    {
                      "CurrencyId": 2,
                      "Code": "USD",
                      "Name": "Amerikan Doları"
                    },
                    {
                      "CurrencyId": 3,
                      "Code": "EUR",
                      "Name": "Euro"
                    },
                    {
                      "CurrencyId": 4,
                      "Code": "TRY",
                      "Name": "Türk Lirası"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetStores": {
      "post": {
        "operationId": "GetStores",
        "tags": [
          "Genel ve listeler"
        ],
        "summary": "Mağazaları listele",
        "description": "**Mağazaları listele** — Hesabınıza bağlı pazaryeri ve e-ticaret mağazalarını `StoreId` değerleriyle döndürür.\n\n`StoreId`, diğer uç noktalarda mağazayı belirtmek için kullandığınız kimliktir. `IntegrationId` mağazanın bağlı olduğu pazaryerini veya platformu gösterir.\n\nYalnızca panelde aktif görünen mağazalar listelenir. `IntegrationId` gönderirseniz yalnızca o entegrasyonun mağazaları döner. Bilinmeyen bir `IntegrationId` hata vermez, boş liste döner.\n\nSayfalama yoktur; tüm mağazalar tek yanıtta gelir. Sıralama garanti edilmez. `StoreName` boş olabilir.\n\nModeldeki `StoreId` istek alanı yok sayılır. `Integration/GetStore` aynı işi yapan eski bir takma addır; yeni entegrasyonlarda `GetStores` kullanın.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetStores",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "IntegrationId": {
                    "type": "integer",
                    "description": "İsteğe bağlı. Yalnızca bu entegrasyonun mağazalarını döndürür. Gönderilmezse veya 0 ise tüm mağazalar döner."
                  }
                },
                "required": [
                  "ApiCode"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "IntegrationId": 14
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "StoreId": {
                                "type": "integer",
                                "description": "Mağaza kimliği."
                              },
                              "StoreName": {
                                "type": "string",
                                "description": "Mağazanın paneldeki adı. Boş olabilir."
                              },
                              "IntegrationId": {
                                "type": "integer",
                                "description": "Mağazanın bağlı olduğu entegrasyonun kimliği."
                              },
                              "IntegrationName": {
                                "type": "string",
                                "description": "Entegrasyonun adı (ör. `Trendyol`)."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": [
                    {
                      "StoreId": 1234,
                      "StoreName": "Örnek Mağaza",
                      "IntegrationId": 14,
                      "IntegrationName": "Trendyol"
                    },
                    {
                      "StoreId": 1240,
                      "StoreName": "Örnek Mağaza Outlet",
                      "IntegrationId": 14,
                      "IntegrationName": "Trendyol"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetIntegrationShipmentCompanies": {
      "post": {
        "operationId": "GetIntegrationShipmentCompanies",
        "tags": [
          "Genel ve listeler"
        ],
        "summary": "Kargo firmalarını listele",
        "description": "**Kargo firmalarını listele** — Pazaryerlerinin kabul ettiği kargo firmalarını ve kodlarını döndürür.\n\nKargo bilgisi gönderirken (`SetOrderShipmentInformation`) `ShipmentCompany` alanına bu listedeki `Code` değerini yazın.\n\n`IntegrationId` gönderirseniz yalnızca o entegrasyonun firmaları döner. Gönderilmezse veya 0 ise tüm entegrasyonların firmaları döner; bu liste uzundur.\n\nListe, entegrasyonun genel firmalarını ve yalnızca sizin mağazalarınız için tanımlı firmaları içerir. `Name` alanına göre sıralıdır. Sayfalama yoktur.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetIntegrationShipmentCompanies",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "IntegrationId": {
                    "type": "integer",
                    "description": "İsteğe bağlı. Kargo firmaları listelenecek entegrasyonun kimliği (`GetStores` yanıtındaki `IntegrationId`). Gönderilmezse veya 0 ise tümü döner."
                  }
                },
                "required": [
                  "ApiCode"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "IntegrationId": 2
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "IntegrationShipmentId": {
                                "type": "integer",
                                "description": "Kargo firması kaydının StockMount kimliği."
                              },
                              "IntegrationId": {
                                "type": "integer",
                                "description": "Firmanın ait olduğu entegrasyonun kimliği."
                              },
                              "Code": {
                                "type": "string",
                                "description": "Pazaryerindeki kargo firması kodu. `SetOrderShipmentInformation` çağrısında `ShipmentCompany` olarak gönderin."
                              },
                              "Name": {
                                "type": "string",
                                "description": "Kargo firmasının adı."
                              },
                              "ShortName": {
                                "type": "string",
                                "description": "Kısa ad. Boş olabilir."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": [
                    {
                      "IntegrationShipmentId": 57,
                      "IntegrationId": 2,
                      "Code": "345",
                      "Name": "Aras Kargo",
                      "ShortName": "Aras"
                    },
                    {
                      "IntegrationShipmentId": 61,
                      "IntegrationId": 2,
                      "Code": "349",
                      "Name": "Yurtiçi Kargo",
                      "ShortName": "Yurtiçi"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetIntegrationOrderListingStatus": {
      "post": {
        "operationId": "GetIntegrationOrderListingStatus",
        "tags": [
          "Genel ve listeler"
        ],
        "summary": "Sipariş durum kodlarını listele",
        "description": "**Sipariş durum kodlarını listele** — Entegrasyonların ve mağazaların kullandığı sipariş durumu kodlarını açıklamalarıyla döndürür.\n\nSonuç gruplar halinde gelir. Her grupta `IntegrationId`, `StoreId` ve `ListingStatuses` listesi bulunur. Entegrasyonun genel listesinde `StoreId` 0'dır; mağazaya özel listede mağazanın kimliğidir.\n\n`StoreId` gönderirseniz yalnızca o mağazanın durumları döner ve `IntegrationId` yok sayılır. Durumları sabit olan pazaryerlerinde pazaryerinin listesi, kendi durumlarını tanımlayan e-ticaret sitelerinde mağazanın kendi listesi gelir.\n\nYalnızca `IntegrationId` gönderirseniz o entegrasyonun durumları döner. İkisini de göndermezseniz kullandığınız tüm entegrasyonların ve mağazaların durumları döner. Genel gruplar önce, mağaza grupları sonra gelir. Bir entegrasyonun genel grubu, aynı entegrasyonun mağazaya özel durumlarını da tekrar içerebilir.\n\n`Code`, sipariş satırlarında görünen durum değeridir (ör. `GetOrderDetailStatus` yanıtındaki `OrderStatus`). `Description` her zaman Türkçedir. `Erp` değeri 1 ise bu durumdaki siparişler ERP/muhasebe aktarımına uygundur.\n\nHesabınıza ait olmayan bir `StoreId` `10001` döndürür. Bilinmeyen bir `IntegrationId` hata vermez, boş liste döner. Sayfalama yoktur.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetIntegrationOrderListingStatus",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "IntegrationId": {
                    "type": "integer",
                    "description": "İsteğe bağlı. Yalnızca bu entegrasyonun durumlarını döndürür. `StoreId` doluysa yok sayılır."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "İsteğe bağlı. Yalnızca bu mağazanın durumlarını döndürür (`GetStores` yanıtındaki `StoreId`)."
                  }
                },
                "required": [
                  "ApiCode"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 1234
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "IntegrationId": {
                                "type": "integer",
                                "description": "Entegrasyon kimliği."
                              },
                              "StoreId": {
                                "type": "integer",
                                "description": "Mağaza kimliği. Entegrasyonun genel listesinde 0'dır."
                              },
                              "ListingStatuses": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "Code": {
                                      "type": "string",
                                      "description": "Durum kodu."
                                    },
                                    "Description": {
                                      "type": "string",
                                      "description": "Durumun Türkçe açıklaması."
                                    },
                                    "Erp": {
                                      "type": "integer",
                                      "description": "1: bu durumdaki siparişler ERP/muhasebe aktarımına uygundur. 0: uygun değildir.\n\n- `0`: ERP aktarımı yok\n- `1`: ERP aktarımına uygun"
                                    }
                                  }
                                },
                                "description": "Bu gruptaki durumlar."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": [
                    {
                      "IntegrationId": 14,
                      "StoreId": 1234,
                      "ListingStatuses": [
                        {
                          "Code": "Created",
                          "Description": "Yeni Sipariş",
                          "Erp": 1
                        },
                        {
                          "Code": "Shipped",
                          "Description": "Kargoya Verildi",
                          "Erp": 1
                        },
                        {
                          "Code": "Cancelled",
                          "Description": "İptal Edildi",
                          "Erp": 0
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetOrderDetailStatus": {
      "post": {
        "operationId": "GetOrderDetailStatus",
        "tags": [
          "Genel ve listeler"
        ],
        "summary": "Sipariş satırı durumlarını sorgula",
        "description": "**Sipariş satırı durumlarını sorgula** — Verdiğiniz sipariş satırlarının güncel durum kodlarını döndürür.\n\n`OrderDetails` listesindeki her öğeden yalnızca `OrderDetailId` okunur; diğer alanlar yok sayılır.\n\nYalnızca sizin mağazalarınıza ait satırlar döner. Bulunamayan veya başka hesaba ait kimlikler hata vermeden atlanır. Yanıt sırası garanti edilmez.\n\nKodda liste uzunluğu için bir sınır yoktur. `OrderStatus` değerlerinin anlamı için `GetIntegrationOrderListingStatus` kullanın. Durum kaydı olmayan satırda `OrderStatus` boş gelir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetOrderDetailStatus",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "OrderDetails": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "OrderDetailId": {
                          "type": "integer",
                          "description": "Sipariş satırı kimliği (sipariş yanıtlarındaki `OrderDetailId`)."
                        }
                      },
                      "required": [
                        "OrderDetailId"
                      ]
                    },
                    "description": "Durumu sorgulanacak sipariş satırları. En az bir öğe gerekir."
                  }
                },
                "required": [
                  "ApiCode",
                  "OrderDetails"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "OrderDetails": [
                  {
                    "OrderDetailId": 9876543
                  },
                  {
                    "OrderDetailId": 9876544
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "OrderId": {
                                "type": "integer",
                                "description": "Siparişin StockMount kimliği."
                              },
                              "OrderDetailId": {
                                "type": "integer",
                                "description": "Sipariş satırı kimliği."
                              },
                              "StoreId": {
                                "type": "integer",
                                "description": "Satırın ait olduğu mağazanın kimliği."
                              },
                              "OrderStatus": {
                                "type": "string",
                                "description": "Satırın güncel durum kodu. Boş olabilir."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": [
                    {
                      "OrderId": 4567890,
                      "OrderDetailId": 9876543,
                      "StoreId": 1234,
                      "OrderStatus": "Shipped"
                    },
                    {
                      "OrderId": 4567890,
                      "OrderDetailId": 9876544,
                      "StoreId": 1234,
                      "OrderStatus": "Created"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetUserMessages": {
      "post": {
        "operationId": "GetUserMessages",
        "tags": [
          "Mesajlar"
        ],
        "summary": "Mesajları listele",
        "description": "**Mesajları listele** — Bir mağazanın pazaryerinden alınan mesajlarını tipe göre, en yeniden eskiye 20'şer kayıt halinde döndürür.\n\nMesajlar pazaryerinden StockMount'a aktarılmış kayıtlardır. Kodda mesaj aktarımı yalnızca N11 (`IntegrationId` 2) ve GittiGidiyor (1) mağazaları için vardır; diğer mağazalarda liste boş gelir.\n\nHer çağrı en fazla 20 mesaj döndürür, `Time` alanına göre en yeniden eskiye. Sayfa boyutu değiştirilemez.\n\nSayfalama kimlikle yapılır. Daha eski mesajlar için `SmallestIntegrationMessageId` alanına elinizdeki en küçük `UserMessageId` değerini gönderin; bu kimlikten küçük mesajlar gelir. Yeni mesajları almak için `BiggestIntegrationMessageId` alanına bildiğiniz en büyük `UserMessageId` değerini gönderin; bu kimlikten büyük mesajlar gelir. İki alan birlikte kullanılabilir.\n\nDikkat: Yalnızca `BiggestIntegrationMessageId` gönderdiğinizde 20'den fazla yeni mesaj varsa en yeni 20 mesaj gelir, aradakiler gelmez. Bu durumda `BiggestIntegrationMessageId` değerini koruyup `SmallestIntegrationMessageId` olarak son gelen en küçük kimliği göndererek geriye doğru devam edin.\n\n`MessageCount`, filtreye uyan toplam mesaj sayısıdır. Başka hesaba ait bir `StoreId` hata vermez, boş liste döner.\n\n`Integration/GetUserMessage` aynı işi yapan bir takma addır.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetUserMessages",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "Mesajları listelenecek mağazanın kimliği (`GetStores`)."
                  },
                  "MessageTypeId": {
                    "type": "integer",
                    "description": "Mesaj tipi.\n\n- `1`: Gelen\n- `2`: Gönderilen\n- `3`: Silinmiş gelen\n- `4`: Silinmiş gönderilen"
                  },
                  "SmallestIntegrationMessageId": {
                    "type": "integer",
                    "description": "İsteğe bağlı. Yalnızca `UserMessageId` değeri bundan küçük (daha eski) mesajları döndürür."
                  },
                  "BiggestIntegrationMessageId": {
                    "type": "integer",
                    "description": "İsteğe bağlı. Yalnızca `UserMessageId` değeri bundan büyük (daha yeni) mesajları döndürür."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "MessageTypeId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 1234,
                "MessageTypeId": 1,
                "SmallestIntegrationMessageId": 88120
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "MessageCount": {
                              "type": "integer",
                              "description": "Filtreye uyan toplam mesaj sayısı (dönen mesaj sayısı değil)."
                            },
                            "Messages": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "UserMessageId": {
                                    "type": "integer",
                                    "description": "Mesajın StockMount kimliği. Sayfalama ve `SetMessageRead` için kullanılır."
                                  },
                                  "Code": {
                                    "type": "string",
                                    "description": "Mesajın pazaryerindeki kodu. N11 sorularında soru kimliğidir; yanıtlarken `UserMessageCode` olarak gönderin."
                                  },
                                  "Subject": {
                                    "type": "string",
                                    "description": "Mesaj konusu."
                                  },
                                  "From": {
                                    "type": "string",
                                    "description": "Gönderen (gelen mesajlarda alıcının pazaryeri kullanıcı adı)."
                                  },
                                  "To": {
                                    "type": "string",
                                    "description": "Alıcı."
                                  },
                                  "MessageTypeId": {
                                    "type": "integer",
                                    "description": "Mesaj tipi.\n\n- `1`: Gelen\n- `2`: Gönderilen\n- `3`: Silinmiş gelen\n- `4`: Silinmiş gönderilen"
                                  },
                                  "Avatar": {
                                    "type": "string",
                                    "description": "Alıcının görseli. Çoğunlukla boştur."
                                  },
                                  "Body": {
                                    "type": "string",
                                    "description": "Mesaj metni."
                                  },
                                  "Time": {
                                    "type": "string",
                                    "description": "Mesaj zamanı, UTC olarak ISO 8601 biçiminde (ör. `2026-11-05T08:42:10Z`)."
                                  },
                                  "Unread": {
                                    "type": "boolean",
                                    "description": "`true`: mesaj okunmadı."
                                  },
                                  "Surname": {
                                    "type": "string",
                                    "description": "Alıcının soyadı. Boş olabilir."
                                  },
                                  "Name": {
                                    "type": "string",
                                    "description": "Alıcının adı. Ad ve soyad kayıtlı değilse mesajdaki tam ad gelir."
                                  }
                                }
                              },
                              "description": "Mesajlar, en yeniden eskiye."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "MessageCount": 57,
                    "Messages": [
                      {
                        "UserMessageId": 88119,
                        "Code": "301245678",
                        "Subject": "Ürün sorusu",
                        "From": "alici_123",
                        "To": "ornekmagaza",
                        "MessageTypeId": 1,
                        "Avatar": "",
                        "Body": "Bu ürün stokta var mı?",
                        "Time": "2026-11-05T08:42:10Z",
                        "Unread": true,
                        "Surname": "",
                        "Name": "Mehmet K."
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/GetAllUserMessage": {
      "post": {
        "operationId": "GetAllUserMessage",
        "tags": [
          "Mesajlar"
        ],
        "summary": "Bir alıcıyla yazışmayı getir",
        "description": "**Bir alıcıyla yazışmayı getir** — Bir mağazada belirli bir alıcıdan gelen ve ona gönderilen mesajları tek listede döndürür.\n\nİki sorgu birleştirilir: `From` alanı `User` ile eşleşen gelen mesajlar (tip 1) ve `To` alanı `User` ile eşleşen gönderilen mesajlar (tip 2). Silinmiş mesajlar dahil değildir.\n\nHer sorgudan en fazla 20 mesaj alınır; yanıt en fazla 40 mesaj içerir ve en yeniden eskiye sıralıdır. Sayfalama yoktur. `MessageCount` iki sorgunun toplam kayıt sayılarının toplamıdır.\n\n`User` eşleşmesi tam eşitlik değil, tam metin aramasıdır; benzer kullanıcı adları da eşleşebilir. `MessageTypeId`, `BiggestIntegrationMessageId` ve `SmallestIntegrationMessageId` bu uç noktada yok sayılır.\n\nMesajlar yalnızca N11 ve GittiGidiyor mağazaları için aktarılır. Başka hesaba ait bir `StoreId` boş liste döndürür.\n\nhttps://outsample.stockmount.com/tr/api/Integration/GetAllUserMessage",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "Mağaza kimliği (`GetStores`)."
                  },
                  "User": {
                    "type": "string",
                    "description": "Alıcının pazaryeri kullanıcı adı (mesajlardaki `From`/`To` değeri)."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "User"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 1234,
                "User": "alici_123"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "type": "object",
                          "properties": {
                            "MessageCount": {
                              "type": "integer",
                              "description": "Filtreye uyan toplam mesaj sayısı (dönen mesaj sayısı değil)."
                            },
                            "Messages": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "UserMessageId": {
                                    "type": "integer",
                                    "description": "Mesajın StockMount kimliği. Sayfalama ve `SetMessageRead` için kullanılır."
                                  },
                                  "Code": {
                                    "type": "string",
                                    "description": "Mesajın pazaryerindeki kodu. N11 sorularında soru kimliğidir; yanıtlarken `UserMessageCode` olarak gönderin."
                                  },
                                  "Subject": {
                                    "type": "string",
                                    "description": "Mesaj konusu."
                                  },
                                  "From": {
                                    "type": "string",
                                    "description": "Gönderen (gelen mesajlarda alıcının pazaryeri kullanıcı adı)."
                                  },
                                  "To": {
                                    "type": "string",
                                    "description": "Alıcı."
                                  },
                                  "MessageTypeId": {
                                    "type": "integer",
                                    "description": "Mesaj tipi.\n\n- `1`: Gelen\n- `2`: Gönderilen\n- `3`: Silinmiş gelen\n- `4`: Silinmiş gönderilen"
                                  },
                                  "Avatar": {
                                    "type": "string",
                                    "description": "Alıcının görseli. Çoğunlukla boştur."
                                  },
                                  "Body": {
                                    "type": "string",
                                    "description": "Mesaj metni."
                                  },
                                  "Time": {
                                    "type": "string",
                                    "description": "Mesaj zamanı, UTC olarak ISO 8601 biçiminde (ör. `2026-11-05T08:42:10Z`)."
                                  },
                                  "Unread": {
                                    "type": "boolean",
                                    "description": "`true`: mesaj okunmadı."
                                  },
                                  "Surname": {
                                    "type": "string",
                                    "description": "Alıcının soyadı. Boş olabilir."
                                  },
                                  "Name": {
                                    "type": "string",
                                    "description": "Alıcının adı. Ad ve soyad kayıtlı değilse mesajdaki tam ad gelir."
                                  }
                                }
                              },
                              "description": "Mesajlar, en yeniden eskiye."
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true,
                  "Response": {
                    "MessageCount": 2,
                    "Messages": [
                      {
                        "UserMessageId": 88131,
                        "Code": "301245678_ANSWER_14",
                        "Subject": "Ürün sorusu",
                        "From": "ornekmagaza",
                        "To": "alici_123",
                        "MessageTypeId": 2,
                        "Avatar": "",
                        "Body": "Merhaba, ürün stoktadır.",
                        "Time": "2026-11-05T09:10:14Z",
                        "Unread": false,
                        "Surname": "",
                        "Name": "Mehmet K."
                      },
                      {
                        "UserMessageId": 88119,
                        "Code": "301245678",
                        "Subject": "Ürün sorusu",
                        "From": "alici_123",
                        "To": "ornekmagaza",
                        "MessageTypeId": 1,
                        "Avatar": "",
                        "Body": "Bu ürün stokta var mı?",
                        "Time": "2026-11-05T08:42:10Z",
                        "Unread": true,
                        "Surname": "",
                        "Name": "Mehmet K."
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SetMessageRead": {
      "post": {
        "operationId": "SetMessageRead",
        "tags": [
          "Mesajlar"
        ],
        "summary": "Mesajı okundu işaretle",
        "description": "**Mesajı okundu işaretle** — Bir mesajı StockMount'ta okundu olarak işaretler.\n\nDesteklenen entegrasyon N11'dir (`IntegrationId` 2). Mesaj yalnızca StockMount'ta okundu olarak işaretlenir; N11'e bir istek gönderilmez.\n\n`IntegrationId` için 1 (GittiGidiyor) ve 2 (N11) dışındaki değerler `99999` döndürür ve `ErrorMessage` boş gelir.\n\nİşaretlenecek mesajı `UserMessageId` ile belirtin. Mesaj bulunamasa da yanıt başarılıdır (`Result: true`); sonucu doğrulamak için `GetUserMessages` yanıtındaki `Unread` alanına bakın.\n\nBaşarılı yanıtta `Response` alanı gelmez.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SetMessageRead",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "Mesajın ait olduğu mağazanın kimliği."
                  },
                  "IntegrationId": {
                    "type": "integer",
                    "description": "Mağazanın entegrasyon kimliği. N11 için 2."
                  },
                  "UserMessageId": {
                    "type": "integer",
                    "description": "Okundu işaretlenecek mesajın `UserMessageId` değeri. Doğrulanmaz; gönderilmezse hiçbir mesaj değişmez ama yanıt yine başarılıdır."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "IntegrationId"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 1234,
                "IntegrationId": 2,
                "UserMessageId": 88119
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    },
    "/api/Integration/SendUserMessage": {
      "post": {
        "operationId": "SendUserMessage",
        "tags": [
          "Mesajlar"
        ],
        "summary": "Mesajı yanıtla",
        "description": "**Mesajı yanıtla** — Pazaryerindeki bir alıcı sorusunu yanıtlar ve yanıtı StockMount'a gönderilen mesaj olarak kaydeder.\n\nDesteklenen entegrasyon N11'dir (`IntegrationId` 2). Yalnızca var olan bir ürün sorusu yanıtlanabilir; yeni bir yazışma başlatılamaz. Yanıtlanacak sorunun `Code` değerini `UserMessageCode` alanında gönderin; bu değer sayısal olmalıdır.\n\nGönderimden sonra yanıt, gönderilen mesaj (tip 2) olarak kaydedilir ve kodu `{soruKodu}_ANSWER_{n}` biçimini alır. Yanıtlanan soru kapatılır.\n\n`SetMessageRead` `true` ise `UserMessageId` ile belirtilen soru ayrıca okundu olarak işaretlenir.\n\n`Subject` ve `From` alanlarını da gönderin. Bu alanlar eksikse yanıt N11'e iletilebilir ama StockMount'a kaydedilemez ve `99999` döner; bu durumda isteği tekrarlamadan önce N11'de yanıtı kontrol edin.\n\nBaşarılı yanıt, N11'in yanıtı kabul ettiğini garanti etmez: N11 isteği başlatılır ancak N11'in sonucu beklenmez. N11 tarafındaki hatalar bu uç noktaya yansımaz.\n\n`IntegrationId` için 1 ve 2 dışındaki değerler `99999` döndürür ve `ErrorMessage` boş gelir. Başarılı yanıtta `Response` alanı gelmez.\n\n⚠ Bu servis hesabınızdaki gerçek verileri değiştirir.\n\nhttps://outsample.stockmount.com/tr/api/Integration/SendUserMessage",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ApiCode": {
                    "type": "string",
                    "description": "`DoLogin` yanıtından aldığınız oturum kodu."
                  },
                  "StoreId": {
                    "type": "integer",
                    "description": "Sorunun ait olduğu mağazanın kimliği."
                  },
                  "IntegrationId": {
                    "type": "integer",
                    "description": "Mağazanın entegrasyon kimliği. N11 için 2."
                  },
                  "UserMessageCode": {
                    "type": "string",
                    "description": "Yanıtlanacak sorunun `Code` değeri (N11 soru kimliği, sayısal). N11 için zorunludur."
                  },
                  "Message": {
                    "type": "string",
                    "description": "Yanıt metni."
                  },
                  "To": {
                    "type": "string",
                    "description": "Alıcının kullanıcı adı (sorudaki `From` değeri). Kayıtta alıcı olarak saklanır."
                  },
                  "From": {
                    "type": "string",
                    "description": "Gönderen olarak kaydedilecek değer (ör. mağaza adınız). Gönderilmezse kayıt başarısız olur."
                  },
                  "Subject": {
                    "type": "string",
                    "description": "Kaydedilecek konu (ör. sorunun `Subject` değeri). Gönderilmezse kayıt başarısız olur."
                  },
                  "SetMessageRead": {
                    "type": "boolean",
                    "description": "İsteğe bağlı. `true` ise soru ayrıca okundu işaretlenir. Varsayılan `false`."
                  },
                  "UserMessageId": {
                    "type": "integer",
                    "description": "Yanıtlanan sorunun `UserMessageId` değeri. `SetMessageRead` `true` ise kullanılır."
                  }
                },
                "required": [
                  "ApiCode",
                  "StoreId",
                  "IntegrationId",
                  "UserMessageCode",
                  "Message",
                  "To"
                ]
              },
              "example": {
                "ApiCode": "{{apiCode}}",
                "StoreId": 1234,
                "IntegrationId": 2,
                "UserMessageCode": "301245678",
                "UserMessageId": 88119,
                "To": "alici_123",
                "From": "ornekmagaza",
                "Subject": "Ürün sorusu",
                "Message": "Merhaba, ürün stoktadır.",
                "SetMessageRead": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "İş hataları da HTTP 200 ile döner; Result alanını kontrol edin.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ResultInfo"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "Response": {
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "Result": true
                }
              }
            }
          },
          "400": {
            "description": "Gövde geçerli bir JSON değil (ProblemDetails)."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ResultInfo": {
        "type": "object",
        "properties": {
          "Result": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "Response": {
            "nullable": true
          }
        }
      }
    }
  }
}