{
  "info": {
    "_postman_id": "5d1c2f7e-0b8a-4c6e-9f3a-6a2f1d0e7b11",
    "name": "StockMount Out API (TR)",
    "description": "StockMount Out API servisleri. Önce kimlik doğrulama klasöründeki DoLogin isteklerinden birini çalıştırın; dönen ApiCode `apiCode` değişkenine yazılır.\n\nDokümantasyon: https://outsample.stockmount.com/tr",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "event": [
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "exec": [
          "pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));",
          "const body = pm.response.json();",
          "pm.test(\"Result: true\", () => pm.expect(body.Result, `${body.ErrorCode} ${body.ErrorMessage}`).to.be.true);",
          "if (body.ErrorCode === \"00001\" || body.ErrorCode === \"00006\") {",
          "    console.warn(\"ApiCode geçersiz veya süresi dolmuş / ApiCode invalid or expired: run DoLogin again.\");",
          "}"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://out.stockmount.com"
    },
    {
      "key": "apiCode",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Kimlik doğrulama",
      "description": "Diğer tüm çağrılarda kullanılan ApiCode bu servisten alınır.",
      "item": [
        {
          "name": "DoLogin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiKey\": \"{{apiKey}}\",\n  \"ApiPassword\": \"{{apiPassword}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/User/DoLogin",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "User",
                "DoLogin"
              ]
            },
            "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"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const login = pm.response.json();",
                  "const apiCode = login.Result && login.Response ? login.Response.ApiCode : null;",
                  "if (apiCode) {",
                  "    pm.collectionVariables.set(\"apiCode\", apiCode);",
                  "    if (pm.environment.name) pm.environment.set(\"apiCode\", apiCode);",
                  "}"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Siparişler",
      "description": "Pazaryeri siparişlerini çekin, durumlarını, kargo ve fatura bilgilerini güncelleyin.",
      "item": [
        {
          "name": "GetSales",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 12345,\n  \"OrderStatus\": \"New\",\n  \"StartDate\": \"2026-11-01T00:00:00\",\n  \"EndDate\": \"2026-11-04T00:00:00\",\n  \"InvoiceStatus\": 0,\n  \"PageIndex\": 1,\n  \"RowsByPage\": 100\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetSales",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetSales"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetOrder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"OrderId\": 4567890\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetOrder",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetOrder"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetOrder",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 67890,\n  \"Order\": {\n    \"IntegrationOrderCode\": \"WEB-2026-000123\",\n    \"OrderStatus\": \"New\",\n    \"OrderDate\": \"2026-11-05T14:30:00\",\n    \"Nickname\": \"musteri-4411\",\n    \"Fullname\": \"Mehmet Demir\",\n    \"Name\": \"Mehmet\",\n    \"Surname\": \"Demir\",\n    \"Address\": \"Atatürk Cad. No:12\",\n    \"District\": \"Nilüfer\",\n    \"City\": \"Bursa\",\n    \"PostalCode\": \"16110\",\n    \"Telephone\": \"05321234567\",\n    \"PersonalIdentification\": \"11111111111\",\n    \"TaxNumber\": \"11111111111\",\n    \"Notes\": \"Kapıya bırakılabilir.\",\n    \"OrderDetails\": [\n      {\n        \"IntegrationOrderDetailId\": \"WEB-2026-000123-1\",\n        \"IntegrationProductCode\": \"KUPA-350\",\n        \"ProductName\": \"Seramik Kupa 350 ml\",\n        \"Quantity\": 3,\n        \"Price\": 129.9,\n        \"TaxRate\": 20,\n        \"DetailType\": 1,\n        \"CargoPayment\": \"Seller\"\n      }\n    ]\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetOrder",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetOrder"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetOrderNotes",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"OrderId\": 4567890,\n  \"Notes\": \"Müşteri aradı, hediye paketi istedi.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetOrderNotes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetOrderNotes"
              ]
            },
            "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"
          }
        },
        {
          "name": "ConfirmOrRejectOrderItem",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 12345,\n  \"IntegrationId\": 2,\n  \"IntegrationOrderDetailId\": \"245678901234\",\n  \"Status\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/ConfirmOrRejectOrderItem",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "ConfirmOrRejectOrderItem"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetOrderShipmentInformation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 12345,\n  \"IntegrationId\": 2,\n  \"OrderDetailId\": 9876543,\n  \"SendShipmentInformation\": true,\n  \"ShipmentCompany\": \"344\",\n  \"ShipmentTrackingCode\": \"1234567890123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetOrderShipmentInformation",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetOrderShipmentInformation"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetOrderDetailInvoiced",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"OrderDetails\": [\n    {\n      \"OrderDetailId\": 9876543,\n      \"StoreId\": 12345,\n      \"Invoiced\": true,\n      \"InvoiceNumber\": \"ABC2026000000123\",\n      \"InvoiceTime\": \"2026-11-05T15:00:00\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetOrderDetailInvoiced",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetOrderDetailInvoiced"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetEinvoiceLink",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 12345,\n  \"IntegrationOrderCode\": \"10293847\",\n  \"InvoiceNumber\": \"ABC2026000000123\",\n  \"InvoiceId\": \"3f2a9c1e-7b4d-4e8a-9c21-5d6e7f8a9b0c\",\n  \"InvoiceScenario\": \"EARSIVFATURA\",\n  \"InvoiceTime\": \"2026-11-05T15:00:00\",\n  \"InvoiceLink\": \"https://efatura.example.com/view/3f2a9c1e-7b4d-4e8a-9c21-5d6e7f8a9b0c.pdf\",\n  \"SendEinvoiceToPlatform\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetEinvoiceLink",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetEinvoiceLink"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetOrderDetailStatus",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"OrderDetails\": [\n    {\n      \"OrderDetailId\": 9877001,\n      \"StoreId\": 67890,\n      \"OrderStatus\": \"Shipped\"\n    },\n    {\n      \"OrderDetailId\": 9877002,\n      \"StoreId\": 67890,\n      \"OrderStatus\": \"Shipped\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetOrderDetailStatus",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetOrderDetailStatus"
              ]
            },
            "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"
          }
        }
      ]
    },
    {
      "name": "Ürünler",
      "description": "Ürün ekleyin, güncelleyin; stok, fiyat, ad ve görselleri senkronize edin. Ürün Paketi gerekir.",
      "item": [
        {
          "name": "SetProductSourceProducts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductSourceUrl\": \"https://files.example.com/00012345/out/products.xml\",\n  \"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>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetProductSourceProducts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetProductSourceProducts"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetProductSources",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/GetProductSources",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "GetProductSources"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetProductCategories",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductSourceId\": 1234\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/GetProductCategories",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "GetProductCategories"
              ]
            },
            "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"
          }
        },
        {
          "name": "AddProduct",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductSourceId\": 1234,\n  \"Code\": \"TSHIRT-001\",\n  \"Name\": \"Basic Pamuklu Tişört\",\n  \"Category\": \"Tişört\",\n  \"Price\": 249.9,\n  \"MarketPrice\": 299.9,\n  \"CurrencyId\": 4,\n  \"TaxRate\": 20,\n  \"Quantity\": 30,\n  \"Barcode\": \"8690000000017\",\n  \"Brand\": \"Örnek Marka\",\n  \"Model\": \"BSC-01\",\n  \"Description\": \"<p>%100 pamuk, regular fit.</p>\",\n  \"DispatchPeriod\": 2,\n  \"Volume\": 1,\n  \"VariantName1\": \"Renk\",\n  \"VariantName2\": \"Beden\",\n  \"Images\": [\n    {\n      \"Url\": \"https://cdn.example.com/tshirt-001-1.jpg\"\n    },\n    {\n      \"Url\": \"https://cdn.example.com/tshirt-001-2.jpg\"\n    }\n  ],\n  \"Variants\": [\n    {\n      \"Code\": \"TSHIRT-001-BLK-M\",\n      \"Barcode\": \"8690000000024\",\n      \"Quantity\": 10,\n      \"Price\": 249.9,\n      \"VariantValue1\": \"Siyah\",\n      \"VariantValue2\": \"M\"\n    },\n    {\n      \"Code\": \"TSHIRT-001-BLK-L\",\n      \"Barcode\": \"8690000000031\",\n      \"Quantity\": 20,\n      \"Price\": 249.9,\n      \"VariantValue1\": \"Siyah\",\n      \"VariantValue2\": \"L\"\n    }\n  ],\n  \"Specs\": [\n    {\n      \"Name\": \"Materyal\",\n      \"Value\": \"Pamuk\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/AddProduct",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "AddProduct"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProduct",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 987654,\n  \"ProductSourceId\": 1234,\n  \"Code\": \"TSHIRT-001\",\n  \"Name\": \"Basic Pamuklu Tişört\",\n  \"Category\": \"Tişört\",\n  \"Price\": 229.9,\n  \"MarketPrice\": 299.9,\n  \"CurrencyId\": 4,\n  \"TaxRate\": 20,\n  \"Quantity\": 25,\n  \"Barcode\": \"8690000000017\",\n  \"Brand\": \"Örnek Marka\",\n  \"Model\": \"BSC-01\",\n  \"Description\": \"<p>%100 pamuk, regular fit.</p>\",\n  \"DispatchPeriod\": 2,\n  \"Volume\": 1,\n  \"VariantName1\": \"Renk\",\n  \"VariantName2\": \"Beden\",\n  \"Variants\": [\n    {\n      \"Code\": \"TSHIRT-001-BLK-M\",\n      \"Barcode\": \"8690000000024\",\n      \"Quantity\": 5,\n      \"Price\": 229.9,\n      \"VariantValue1\": \"Siyah\",\n      \"VariantValue2\": \"M\"\n    },\n    {\n      \"Code\": \"TSHIRT-001-BLK-L\",\n      \"Barcode\": \"8690000000031\",\n      \"Quantity\": 20,\n      \"Price\": 229.9,\n      \"VariantValue1\": \"Siyah\",\n      \"VariantValue2\": \"L\"\n    }\n  ],\n  \"Specs\": [\n    {\n      \"Name\": \"Materyal\",\n      \"Value\": \"Pamuk\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProduct",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProduct"
              ]
            },
            "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"
          }
        },
        {
          "name": "StopProduct",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 987654\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/StopProduct",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "StopProduct"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetProduct",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 987654\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/GetProduct",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "GetProduct"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetProducts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductSourceId\": 1234,\n  \"Keywords\": \"tişört\",\n  \"ProductStatus\": 99,\n  \"CreationTimeFrom\": \"2025-10-01T00:00:00\",\n  \"PageIndex\": 1,\n  \"RowsByPage\": 50,\n  \"OrderBy\": \"Name\",\n  \"OrderDirection\": \"ASC\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/GetProducts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "GetProducts"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetProductSummary",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductSourceId\": 1234\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/GetProductSummary",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "GetProductSummary"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetProductCode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 987654,\n  \"Code\": \"TSHIRT-001-V2\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/SetProductCode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "SetProductCode"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductPrice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 184522,\n  \"Price\": 349.9,\n  \"MarketPrice\": 449.9,\n  \"Price2\": 329.9,\n  \"Price3\": 0,\n  \"Price4\": 0,\n  \"Price5\": 0,\n  \"Variants\": [\n    {\n      \"ProductVariantId\": 9120344,\n      \"Price\": 349.9,\n      \"Price2\": 329.9\n    },\n    {\n      \"Code\": \"TSHIRT-RED-L\",\n      \"Price\": 359.9,\n      \"Price2\": 339.9\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductPrice",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductPrice"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductPriceByCode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"Code\": \"TSHIRT-RED\",\n  \"ProductSourceId\": 3051,\n  \"Price\": 349.9,\n  \"MarketPrice\": 449.9,\n  \"Price2\": 329.9,\n  \"Price3\": 0,\n  \"Price4\": 0,\n  \"Price5\": 0,\n  \"Variants\": [\n    {\n      \"ProductVariantId\": 9120344,\n      \"Price\": 349.9,\n      \"Price2\": 329.9\n    },\n    {\n      \"Code\": \"TSHIRT-RED-L\",\n      \"Price\": 359.9,\n      \"Price2\": 339.9\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductPriceByCode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductPriceByCode"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductQuantity",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 184522,\n  \"SetProductQuantityFromVariants\": true,\n  \"Variants\": [\n    {\n      \"ProductVariantId\": 9120344,\n      \"Quantity\": 15\n    },\n    {\n      \"Code\": \"TSHIRT-RED-L\",\n      \"Quantity\": 0\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductQuantity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductQuantity"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductQuantityByCode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"Code\": \"TSHIRT-RED\",\n  \"ProductSourceId\": 3051,\n  \"SetProductQuantityFromVariants\": true,\n  \"Variants\": [\n    {\n      \"ProductVariantId\": 9120344,\n      \"Quantity\": 15\n    },\n    {\n      \"Code\": \"TSHIRT-RED-L\",\n      \"Quantity\": 0\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductQuantityByCode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductQuantityByCode"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductQuantityByBarcode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"Code\": \"TSHIRT-RED\",\n  \"ProductSourceId\": 3051,\n  \"SetProductQuantityFromVariants\": true,\n  \"Price2\": 329.9,\n  \"Price3\": 0,\n  \"Price4\": 0,\n  \"Price5\": 0,\n  \"Variants\": [\n    {\n      \"Barcode\": \"8690000000017\",\n      \"Quantity\": 15\n    },\n    {\n      \"Barcode\": \"8690000000024\",\n      \"Quantity\": 0\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductQuantityByBarcode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductQuantityByBarcode"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductQuantityAndPrice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 184522,\n  \"SetProductQuantityFromVariants\": true,\n  \"Price\": 349.9,\n  \"MarketPrice\": 449.9,\n  \"Price2\": 329.9,\n  \"Price3\": 0,\n  \"Price4\": 0,\n  \"Price5\": 0,\n  \"Variants\": [\n    {\n      \"ProductVariantId\": 9120344,\n      \"Quantity\": 15,\n      \"Price\": 349.9,\n      \"Price2\": 329.9\n    },\n    {\n      \"Code\": \"TSHIRT-RED-L\",\n      \"Quantity\": 0,\n      \"Price\": 359.9,\n      \"Price2\": 339.9\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductQuantityAndPrice",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductQuantityAndPrice"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductQuantityAndPriceByCode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"Code\": \"TSHIRT-RED\",\n  \"ProductSourceId\": 3051,\n  \"SetProductQuantityFromVariants\": true,\n  \"Price\": 349.9,\n  \"MarketPrice\": 449.9,\n  \"Price2\": 329.9,\n  \"Price3\": 0,\n  \"Price4\": 0,\n  \"Price5\": 0,\n  \"Variants\": [\n    {\n      \"ProductVariantId\": 9120344,\n      \"Quantity\": 15,\n      \"Price\": 349.9,\n      \"Price2\": 329.9\n    },\n    {\n      \"Code\": \"TSHIRT-RED-L\",\n      \"Quantity\": 0,\n      \"Price\": 359.9,\n      \"Price2\": 339.9\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductQuantityAndPriceByCode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductQuantityAndPriceByCode"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductName",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 184522,\n  \"Name\": \"Pamuklu Basic T-Shirt Kırmızı\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductName",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductName"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductNameByCode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"Code\": \"TSHIRT-RED\",\n  \"ProductSourceId\": 3051,\n  \"Name\": \"Pamuklu Basic T-Shirt Kırmızı\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductNameByCode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductNameByCode"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductImages",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"ProductId\": 184522,\n  \"Images\": [\n    {\n      \"Url\": \"https://cdn.example.com/p/184522-1.jpg\"\n    },\n    {\n      \"Url\": \"https://cdn.example.com/p/184522-2.jpg\"\n    }\n  ],\n  \"Variants\": [\n    {\n      \"Code\": \"TSHIRT-RED-M\",\n      \"ImageUrl\": \"https://cdn.example.com/p/184522-red-m.jpg\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductImages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductImages"
              ]
            },
            "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"
          }
        },
        {
          "name": "UpdateProductImagesByCode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"Code\": \"TSHIRT-RED\",\n  \"ProductSourceId\": 3051,\n  \"Images\": [\n    {\n      \"Url\": \"https://cdn.example.com/p/184522-1.jpg\"\n    },\n    {\n      \"Base64\": \"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==\"\n    }\n  ],\n  \"Variants\": [\n    {\n      \"ProductVariantId\": 9120344,\n      \"ImageUrl\": \"https://cdn.example.com/p/184522-red-m.jpg\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Product/UpdateProductImagesByCode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Product",
                "UpdateProductImagesByCode"
              ]
            },
            "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"
          }
        }
      ]
    },
    {
      "name": "Genel ve listeler",
      "description": "Mağazalar, kargo firmaları, durum listeleri ve döviz kurları.",
      "item": [
        {
          "name": "GetCurrencies",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/General/GetCurrencies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "General",
                "GetCurrencies"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetStores",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"IntegrationId\": 14\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetStores",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetStores"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetIntegrationShipmentCompanies",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"IntegrationId\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetIntegrationShipmentCompanies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetIntegrationShipmentCompanies"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetIntegrationOrderListingStatus",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 1234\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetIntegrationOrderListingStatus",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetIntegrationOrderListingStatus"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetOrderDetailStatus",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"OrderDetails\": [\n    {\n      \"OrderDetailId\": 9876543\n    },\n    {\n      \"OrderDetailId\": 9876544\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetOrderDetailStatus",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetOrderDetailStatus"
              ]
            },
            "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"
          }
        }
      ]
    },
    {
      "name": "Mesajlar",
      "description": "Pazaryeri müşteri mesajlarını okuyun ve yanıtlayın.",
      "item": [
        {
          "name": "GetUserMessages",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 1234,\n  \"MessageTypeId\": 1,\n  \"SmallestIntegrationMessageId\": 88120\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetUserMessages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetUserMessages"
              ]
            },
            "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"
          }
        },
        {
          "name": "GetAllUserMessage",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 1234,\n  \"User\": \"alici_123\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/GetAllUserMessage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "GetAllUserMessage"
              ]
            },
            "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"
          }
        },
        {
          "name": "SetMessageRead",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 1234,\n  \"IntegrationId\": 2,\n  \"UserMessageId\": 88119\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SetMessageRead",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SetMessageRead"
              ]
            },
            "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"
          }
        },
        {
          "name": "SendUserMessage",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ApiCode\": \"{{apiCode}}\",\n  \"StoreId\": 1234,\n  \"IntegrationId\": 2,\n  \"UserMessageCode\": \"301245678\",\n  \"UserMessageId\": 88119,\n  \"To\": \"alici_123\",\n  \"From\": \"ornekmagaza\",\n  \"Subject\": \"Ürün sorusu\",\n  \"Message\": \"Merhaba, ürün stoktadır.\",\n  \"SetMessageRead\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/Integration/SendUserMessage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "Integration",
                "SendUserMessage"
              ]
            },
            "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"
          }
        }
      ]
    }
  ]
}