API referansı · Ürünler
Ü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.
https://out.stockmount.com/api/Product/UpdateProduct
Bu ç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.
Yalnı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.
Değ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).
Ü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.
Durum 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.
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.
Baş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.
Aktif Ürün Paketi olmayan hesaplar 70018 hatası alır; paket bilgisi doğrulanamazsa 99999 döner.
İstek alanları
| Alan | Tip | Açıklama |
|---|---|---|
ApiCode
zorunlu
|
string |
DoLogin ile aldığınız oturum kodu.
|
ProductId
|
integer |
Güncellenecek ürünün kimliği. UpdateProductByCode true değilse zorunludur; 1'den küçükse 00003 döner (ErrorMessage: ProductId is missing).
|
ProductSourceId
zorunlu
|
integer |
Ürünün bulunduğu StockMount tipindeki kaynak (GetProductSources). Hesabınızda yoksa 70002, StockMount tipinde değilse 70003 döner.
|
Code
zorunlu
|
string |
Ürünün kaynaktaki mevcut kodu. Ürünü doğrulamak için kullanılır; kodu bu çağrıyla değiştiremezsiniz (SetProductCode). En fazla 50 karakter.
|
Name
zorunlu
|
string | Ürün adı. En fazla 400 karakter. |
Category
zorunlu
|
string |
Kategori adı (kimlik değil). Kaynakta yoksa otomatik oluşturulur. Mevcut adlar için GetProductCategories.
|
Price
zorunlu
|
number |
Satış fiyatı. 0'dan büyük olmalıdır; değilse 00003 (Price is missing) döner. 2 ondalık basamak saklanır.
|
CurrencyId
zorunlu
|
integer |
Para birimi kimliği (GetCurrencies; ör. 4 = TRY, 2 = USD, 3 = EUR). 1'den küçükse 00003 döner. API kimliğin varlığını doğrulamaz; geçerli bir kimlik gönderin.
|
Quantity
|
integer | Stok miktarı. Gönderilmezse 0. API negatif değeri reddetmez. Varyantlı üründe toplam stoğu kendiniz gönderin; varyant stoklarından hesaplanmaz. Durum bu değere göre yeniden hesaplanır (1'den küçükse 3, değilse 2). |
MarketPrice
|
number |
Piyasa (liste) fiyatı; genellikle Price değerinden yüksektir ve indirimi göstermek için kullanılır. Gönderilmezse 0. UpdateProduct içinde gönderilmezse 0 olur.
|
TaxRate
|
number |
KDV oranı, yüzde olarak (ör. 20). API izinli değer listesi uygulamaz. Gönderilmezse 0 kaydedilir. UpdateProduct içinde gönderilmezse 0 olur.
|
Barcode
|
string |
Ürün barkodu. En fazla 30 karakter. Biçim veya özel karakter kontrolü yapılmaz. UpdateProduct içinde gönderilmezse temizlenir.
|
Brand
|
string |
Marka. En fazla 30 karakter. UpdateProduct içinde gönderilmezse temizlenir.
|
Model
|
string |
Model. En fazla 30 karakter. UpdateProduct içinde gönderilmezse temizlenir.
|
Code2
|
string |
İkinci ürün kodu. En fazla 50 karakter. UpdateProduct içinde gönderilmezse temizlenir.
|
Mpn
|
string |
Üretici parça numarası (MPN). En fazla 50 karakter. UpdateProduct içinde gönderilmezse temizlenir.
|
Subtitle
|
string |
Alt başlık. En fazla 400 karakter. UpdateProduct içinde gönderilmezse temizlenir.
|
Description
|
string |
Ürün açıklaması; HTML olabilir. Güvenli olmayan HTML (ör. script) temizlenir. Gönderilmezse boş kaydedilir. UpdateProductDescription false ise mevcut açıklama korunur.
|
UpdateProductDescription
|
boolean |
false gönderirseniz açıklama değiştirilmez. Varsayılan true.
|
DispatchPeriod
|
integer |
Kargoya teslim (hazırlık) süresi, gün. Gönderilmezse -1 (tanımsız). UpdateProduct içinde gönderilmezse -1 olur.
|
Volume
|
number |
Hacim / desi. Gönderilmezse 0. UpdateProduct içinde gönderilmezse 0 olur.
|
Width
|
number |
Genişlik. Gönderilmezse 0. UpdateProduct içinde gönderilmezse 0 olur.
|
Length
|
number |
Uzunluk. Gönderilmezse 0. UpdateProduct içinde gönderilmezse 0 olur.
|
Height
|
number |
Yükseklik. Gönderilmezse 0. UpdateProduct içinde gönderilmezse 0 olur.
|
Weight
|
number |
Ağırlık. Gönderilmezse 0. UpdateProduct içinde gönderilmezse 0 olur.
|
SellerNote
|
string |
Satıcı notu. En fazla 150 karakter. UpdateProduct içinde gönderilmezse temizlenir.
|
VariantName1
|
string |
1. varyant özelliğinin adı (ör. Renk). En fazla 30 karakter. Herhangi bir varyantta VariantValue1 doluysa zorunludur; yoksa 00003 (VariantName1 is missing) döner. UpdateProduct içinde gönderilmezse temizlenir.
|
VariantName2
|
string |
2. varyant özelliğinin adı (ör. Beden). En fazla 30 karakter. Herhangi bir varyantta VariantValue2 doluysa zorunludur; yoksa 00003 (VariantName2 is missing) döner. UpdateProduct içinde gönderilmezse temizlenir.
|
VariantName3
|
string |
3. varyant özelliğinin adı (ör. Beden). En fazla 30 karakter. Herhangi bir varyantta VariantValue3 doluysa zorunludur; yoksa 00003 (VariantName3 is missing) döner. UpdateProduct içinde gönderilmezse temizlenir.
|
VariantName4
|
string |
4. varyant özelliğinin adı (ör. Beden). En fazla 30 karakter. Herhangi bir varyantta VariantValue4 doluysa zorunludur; yoksa 00003 (VariantName4 is missing) döner. UpdateProduct içinde gönderilmezse temizlenir.
|
VariantName5
|
string |
5. varyant özelliğinin adı (ör. Beden). En fazla 30 karakter. Herhangi bir varyantta VariantValue5 doluysa zorunludur; yoksa 00003 (VariantName5 is missing) döner. UpdateProduct içinde gönderilmezse temizlenir.
|
VariantName6
|
string |
6. varyant özelliğinin adı (ör. Beden). En fazla 30 karakter. Herhangi bir varyantta VariantValue6 doluysa zorunludur; yoksa 00003 (VariantName6 is missing) döner. UpdateProduct içinde gönderilmezse temizlenir.
|
Variants
|
object[] |
Varyant listesi. Gönderirseniz varyantlar Code ile eşleştirilir: eşleşenler güncellenir, yenileri görselsiz eklenir, listede olmayan mevcut varyantlar pasife alınır. Boş veya gönderilmemişse varyantlara dokunulmaz. Görsel alanları (ImageUrl, ImageBase64) yok sayılır.
|
Variants[].
Code
|
string | Varyant kodu. Güncellemelerde varyant bu kodla eşleştirilir; dolu ve ürün içinde benzersiz gönderin. En fazla 50 karakter. |
Variants[].
Barcode
|
string | Varyant barkodu. Baştaki ve sondaki boşluklar kırpılır. En fazla 30 karakter. |
Variants[].
Quantity
|
integer | Varyant stoğu. Negatif değerler 0 olarak kaydedilir. |
Variants[].
Price
|
number | Varyant fiyatı. Gönderilmezse 0 kaydedilir. |
Variants[].
VariantValue1
|
string |
1. varyant özelliğinin değeri (ör. Siyah). En fazla 100 karakter.
|
Variants[].
VariantValue2
|
string |
2. varyant özelliğinin değeri (ör. M). En fazla 100 karakter.
|
Variants[].
VariantValue3
|
string |
3. varyant özelliğinin değeri (ör. M). En fazla 100 karakter.
|
Variants[].
VariantValue4
|
string |
4. varyant özelliğinin değeri (ör. M). En fazla 100 karakter.
|
Variants[].
VariantValue5
|
string |
5. varyant özelliğinin değeri (ör. M). En fazla 100 karakter.
|
Variants[].
VariantValue6
|
string |
6. varyant özelliğinin değeri (ör. M). En fazla 100 karakter.
|
Variants[].
Code2
|
string |
İkinci varyant kodu. En fazla 50 karakter. Boşsa varyantın dizideki sırası (0, 1, 2…) yazılır.
|
Variants[].
Mpn
|
string | Varyantın üretici parça numarası. En fazla 50 karakter. |
Specs
|
object[] | Ürün özellikleri. Gönderirseniz mevcut özellik listesinin tamamı bununla değiştirilir; gönderilmezse mevcut özellikler kalır. |
Specs[].
Name
|
string |
Özellik adı (ör. Materyal). En fazla 50 karakter.
|
Specs[].
Value
|
string |
Özellik değeri (ör. Pamuk). En fazla 100 karakter.
|
UpdateProductByCode
|
boolean |
true ise ProductId gerekmez; ürün ProductSourceId + Code ile bulunur. Bulunamazsa 70005 döner. Varsayılan false.
|
Yanıt alanları (Response)
| Alan | Tip | Açıklama |
|---|---|---|
Response
|
integer |
Güncellenen ürünün ProductId değeri.
|
Bu servisin hata kodları
| Kod | Ne zaman |
|---|---|
70002 |
ProductSourceId hesabınızdaki bir kaynak değil. |
70003 |
Kaynak StockMount tipinde değil. |
70004 |
Code kaynakta başka bir ürüne ait (Result: false, Message: Product code does not exist). |
70005 |
Code kaynakta yok (ör. ürün kodu değiştirilmeye çalışıldı) veya UpdateProductByCode ile ürün bulunamadı (Message: There is no product with the given ProductId). |
70018 |
Hesabınızda aktif Ürün Paketi yok (ErrorMessage: Ürün entegrasyonu için aktif Ürün Paketi gereklidir.). |
99999 |
Beklenmeyen bir hata oluştu. Ürün kaydı güncellenemediğinde de döner. |
Oturum hataları (00001, 00006) ve tüm kodlar için hata kodları.
İlgili servisler
Örnek istek
{
"ApiCode": "API_CODE",
"ProductId": 987654,
"ProductSourceId": 1234,
"Code": "TSHIRT-001",
"Name": "Basic Pamuklu Tişört",
"Category": "Tişört",
"Price": 229.9,
"MarketPrice": 299.9,
"CurrencyId": 4,
"TaxRate": 20,
"Quantity": 25,
"Barcode": "8690000000017",
"Brand": "Örnek Marka",
"Model": "BSC-01",
"Description": "<p>%100 pamuk, regular fit.</p>",
"DispatchPeriod": 2,
"Volume": 1,
"VariantName1": "Renk",
"VariantName2": "Beden",
"Variants": [
{
"Code": "TSHIRT-001-BLK-M",
"Barcode": "8690000000024",
"Quantity": 5,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "M"
},
{
"Code": "TSHIRT-001-BLK-L",
"Barcode": "8690000000031",
"Quantity": 20,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "L"
}
],
"Specs": [
{
"Name": "Materyal",
"Value": "Pamuk"
}
]
}
curl -X POST 'https://out.stockmount.com/api/Product/UpdateProduct' \
-H 'Content-Type: application/json' \
-d '{
"ApiCode": "API_CODE",
"ProductId": 987654,
"ProductSourceId": 1234,
"Code": "TSHIRT-001",
"Name": "Basic Pamuklu Tişört",
"Category": "Tişört",
"Price": 229.9,
"MarketPrice": 299.9,
"CurrencyId": 4,
"TaxRate": 20,
"Quantity": 25,
"Barcode": "8690000000017",
"Brand": "Örnek Marka",
"Model": "BSC-01",
"Description": "<p>%100 pamuk, regular fit.</p>",
"DispatchPeriod": 2,
"Volume": 1,
"VariantName1": "Renk",
"VariantName2": "Beden",
"Variants": [
{
"Code": "TSHIRT-001-BLK-M",
"Barcode": "8690000000024",
"Quantity": 5,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "M"
},
{
"Code": "TSHIRT-001-BLK-L",
"Barcode": "8690000000031",
"Quantity": 20,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "L"
}
],
"Specs": [
{
"Name": "Materyal",
"Value": "Pamuk"
}
]
}'
using System.Net.Http;
using System.Text;
using var http = new HttpClient();
var json = """
{
"ApiCode": "API_CODE",
"ProductId": 987654,
"ProductSourceId": 1234,
"Code": "TSHIRT-001",
"Name": "Basic Pamuklu Tişört",
"Category": "Tişört",
"Price": 229.9,
"MarketPrice": 299.9,
"CurrencyId": 4,
"TaxRate": 20,
"Quantity": 25,
"Barcode": "8690000000017",
"Brand": "Örnek Marka",
"Model": "BSC-01",
"Description": "<p>%100 pamuk, regular fit.</p>",
"DispatchPeriod": 2,
"Volume": 1,
"VariantName1": "Renk",
"VariantName2": "Beden",
"Variants": [
{
"Code": "TSHIRT-001-BLK-M",
"Barcode": "8690000000024",
"Quantity": 5,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "M"
},
{
"Code": "TSHIRT-001-BLK-L",
"Barcode": "8690000000031",
"Quantity": 20,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "L"
}
],
"Specs": [
{
"Name": "Materyal",
"Value": "Pamuk"
}
]
}
""";
var response = await http.PostAsync(
"https://out.stockmount.com/api/Product/UpdateProduct",
new StringContent(json, Encoding.UTF8, "application/json"));
var result = await response.Content.ReadAsStringAsync();
// Result == false ise ErrorCode ve ErrorMessage alanlarına bakın.
Console.WriteLine(result);
<?php
$body = <<<'JSON'
{
"ApiCode": "API_CODE",
"ProductId": 987654,
"ProductSourceId": 1234,
"Code": "TSHIRT-001",
"Name": "Basic Pamuklu Tişört",
"Category": "Tişört",
"Price": 229.9,
"MarketPrice": 299.9,
"CurrencyId": 4,
"TaxRate": 20,
"Quantity": 25,
"Barcode": "8690000000017",
"Brand": "Örnek Marka",
"Model": "BSC-01",
"Description": "<p>%100 pamuk, regular fit.</p>",
"DispatchPeriod": 2,
"Volume": 1,
"VariantName1": "Renk",
"VariantName2": "Beden",
"Variants": [
{
"Code": "TSHIRT-001-BLK-M",
"Barcode": "8690000000024",
"Quantity": 5,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "M"
},
{
"Code": "TSHIRT-001-BLK-L",
"Barcode": "8690000000031",
"Quantity": 20,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "L"
}
],
"Specs": [
{
"Name": "Materyal",
"Value": "Pamuk"
}
]
}
JSON;
$ch = curl_init('https://out.stockmount.com/api/Product/UpdateProduct');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (!$result['Result']) {
echo $result['ErrorCode'] . ' ' . $result['ErrorMessage'];
}
import requests
payload = {
"ApiCode": "API_CODE",
"ProductId": 987654,
"ProductSourceId": 1234,
"Code": "TSHIRT-001",
"Name": "Basic Pamuklu Ti\u015F\u00F6rt",
"Category": "Ti\u015F\u00F6rt",
"Price": 229.9,
"MarketPrice": 299.9,
"CurrencyId": 4,
"TaxRate": 20,
"Quantity": 25,
"Barcode": "8690000000017",
"Brand": "\u00D6rnek Marka",
"Model": "BSC-01",
"Description": "\u003Cp\u003E%100 pamuk, regular fit.\u003C/p\u003E",
"DispatchPeriod": 2,
"Volume": 1,
"VariantName1": "Renk",
"VariantName2": "Beden",
"Variants": [
{
"Code": "TSHIRT-001-BLK-M",
"Barcode": "8690000000024",
"Quantity": 5,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "M"
},
{
"Code": "TSHIRT-001-BLK-L",
"Barcode": "8690000000031",
"Quantity": 20,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "L"
}
],
"Specs": [
{
"Name": "Materyal",
"Value": "Pamuk"
}
]
}
response = requests.post("https://out.stockmount.com/api/Product/UpdateProduct", json=payload, timeout=60)
result = response.json()
if not result["Result"]:
print(result["ErrorCode"], result["ErrorMessage"])
const payload = {
"ApiCode": "API_CODE",
"ProductId": 987654,
"ProductSourceId": 1234,
"Code": "TSHIRT-001",
"Name": "Basic Pamuklu Tişört",
"Category": "Tişört",
"Price": 229.9,
"MarketPrice": 299.9,
"CurrencyId": 4,
"TaxRate": 20,
"Quantity": 25,
"Barcode": "8690000000017",
"Brand": "Örnek Marka",
"Model": "BSC-01",
"Description": "<p>%100 pamuk, regular fit.</p>",
"DispatchPeriod": 2,
"Volume": 1,
"VariantName1": "Renk",
"VariantName2": "Beden",
"Variants": [
{
"Code": "TSHIRT-001-BLK-M",
"Barcode": "8690000000024",
"Quantity": 5,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "M"
},
{
"Code": "TSHIRT-001-BLK-L",
"Barcode": "8690000000031",
"Quantity": 20,
"Price": 229.9,
"VariantValue1": "Siyah",
"VariantValue2": "L"
}
],
"Specs": [
{
"Name": "Materyal",
"Value": "Pamuk"
}
]
};
const response = await fetch("https://out.stockmount.com/api/Product/UpdateProduct", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
});
const result = await response.json();
if (!result.Result) {
console.error(result.ErrorCode, result.ErrorMessage);
}
Örnek yanıt
{
"Result": true,
"Response": 987654
}
Deneyin
İstek tarayıcınızdan doğrudan out.stockmount.com adresine gider. ApiCode bu sitede saklanmaz; yalnızca bu sekme açıkken tutulur.
İstek göndermek için önce ApiCode alın.
Bu servis hesabınızdaki gerçek verileri değiştirir.
Son istekler
Bu sekmeden gönderdiğiniz son istekler; birine tıklayınca gövdesi yeniden yüklenir.