API referansı · Ürünler
Ü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.
https://out.stockmount.com/api/Product/UpdateProductQuantityAndPrice
Her ç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.
Ürün yalnızca ProductId ile bulunur. Ürün kodu ile güncellemek için ByCode uç noktasını kullanın.
Gö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.
Ü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.
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.
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.
Bu 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.
Miktarlar doğrulanmaz; negatif değerler reddedilmez.
Değ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.
Ü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.
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 |
User/DoLogin ile aldığınız API anahtarı.
|
ProductId
zorunlu
|
integer |
StockMount ürün kimliği. Ürün hesabınıza ait olmalıdır. Bu uç noktada Code yok sayılır.
|
Quantity
|
integer |
Ürünün yeni stok miktarı. Gönderilmezse 0 yazılır. SetProductQuantityFromVariants true ise ve Variants en az bir öğe içeriyorsa yok sayılır. Negatif değer reddedilmez.
|
SetProductQuantityFromVariants
|
boolean |
true ise ürün stoğu aktif varyantların toplamı olarak hesaplanır: listede gönderdiğiniz varyantlar için yeni miktar, diğer varyantlar için mevcut satılabilir stok kullanılır. Variants boşsa etkisizdir. Varsayılan false.
|
Price
|
number |
Ürünün satış fiyatı. 2 ondalık basamakla saklanır. Gönderilmezse 0 yazılır.
|
MarketPrice
|
number |
Piyasa (liste) fiyatı. Gönderilmezse 0 yazılır.
|
Price2
|
number |
Ürünün ek fiyatı 2. Gönderilmezse 0 yazılır.
|
Price3
|
number |
Ürünün ek fiyatı 3. Gönderilmezse 0 yazılır.
|
Price4
|
number |
Ürünün ek fiyatı 4. Gönderilmezse 0 yazılır.
|
Price5
|
number |
Ürünün ek fiyatı 5. Gönderilmezse 0 yazılır.
|
CurrencyId
|
integer |
Para birimi kimliği (GetCurrencies). 0'dan büyükse ürünün ve güncellenen varyantların para birimi bu değere çevrilir. Gönderilmezse veya 0 ise para birimi değişmez.
|
Variants
|
object[] | Güncellenecek varyantlar. Yalnızca listedeki varyantlar değişir; eşleşmeyen öğeler hata vermeden atlanır. |
Variants[].
ProductVariantId
|
integer |
Varyant kimliği. Gönderilmezse veya 0 ise varyant Code ile bulunur.
|
Variants[].
Code
|
string |
Varyant kodu. ProductVariantId yoksa eşleştirme için kullanılır.
|
Variants[].
Quantity
|
integer |
Varyantın yeni stok miktarı. Gönderilmezse 0 yazılır. Negatif değer reddedilmez.
|
Variants[].
Price
|
number |
Varyantın satış fiyatı. Gönderilmezse 0 yazılır.
|
Variants[].
Price2
|
number |
Varyantın ek fiyatı 2. Gönderilmezse 0 yazılır.
|
Variants[].
Price3
|
number |
Varyantın ek fiyatı 3. Gönderilmezse 0 yazılır.
|
Variants[].
Price4
|
number |
Varyantın ek fiyatı 4. Gönderilmezse 0 yazılır.
|
Variants[].
Price5
|
number |
Varyantın ek fiyatı 5. Gönderilmezse 0 yazılır.
|
Yanıt alanları (Response)
| Alan | Tip | Açıklama |
|---|---|---|
ProductId
|
integer | Güncellenen ürünün kimliği. |
Variants
|
object[] | Bu çağrıda güncellenen varyantlar. Varyant göndermediyseniz boş dizi döner. |
Variants[].
Code
|
string | Varyant kodu. |
Variants[].
ProductVariantId
|
integer | Varyant kimliği. |
Bu servisin hata kodları
| Kod | Ne zaman |
|---|---|
70005 |
Ürün bulunamadı veya hesabınıza ait değil (ErrorMessage: ProductNotFound). |
00003 |
ProductId gönderilmedi veya 1'den küçük (ErrorMessage: "ProductId"). |
70018 |
Hesabınızda aktif Ürün Paketi yok. |
99999 |
Beklenmeyen bir sunucu hatası oluştu. |
Oturum hataları (00001, 00006) ve tüm kodlar için hata kodları.
İlgili servisler
Örnek istek
{
"ApiCode": "API_CODE",
"ProductId": 184522,
"SetProductQuantityFromVariants": true,
"Price": 349.9,
"MarketPrice": 449.9,
"Price2": 329.9,
"Price3": 0,
"Price4": 0,
"Price5": 0,
"Variants": [
{
"ProductVariantId": 9120344,
"Quantity": 15,
"Price": 349.9,
"Price2": 329.9
},
{
"Code": "TSHIRT-RED-L",
"Quantity": 0,
"Price": 359.9,
"Price2": 339.9
}
]
}
curl -X POST 'https://out.stockmount.com/api/Product/UpdateProductQuantityAndPrice' \
-H 'Content-Type: application/json' \
-d '{
"ApiCode": "API_CODE",
"ProductId": 184522,
"SetProductQuantityFromVariants": true,
"Price": 349.9,
"MarketPrice": 449.9,
"Price2": 329.9,
"Price3": 0,
"Price4": 0,
"Price5": 0,
"Variants": [
{
"ProductVariantId": 9120344,
"Quantity": 15,
"Price": 349.9,
"Price2": 329.9
},
{
"Code": "TSHIRT-RED-L",
"Quantity": 0,
"Price": 359.9,
"Price2": 339.9
}
]
}'
using System.Net.Http;
using System.Text;
using var http = new HttpClient();
var json = """
{
"ApiCode": "API_CODE",
"ProductId": 184522,
"SetProductQuantityFromVariants": true,
"Price": 349.9,
"MarketPrice": 449.9,
"Price2": 329.9,
"Price3": 0,
"Price4": 0,
"Price5": 0,
"Variants": [
{
"ProductVariantId": 9120344,
"Quantity": 15,
"Price": 349.9,
"Price2": 329.9
},
{
"Code": "TSHIRT-RED-L",
"Quantity": 0,
"Price": 359.9,
"Price2": 339.9
}
]
}
""";
var response = await http.PostAsync(
"https://out.stockmount.com/api/Product/UpdateProductQuantityAndPrice",
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": 184522,
"SetProductQuantityFromVariants": true,
"Price": 349.9,
"MarketPrice": 449.9,
"Price2": 329.9,
"Price3": 0,
"Price4": 0,
"Price5": 0,
"Variants": [
{
"ProductVariantId": 9120344,
"Quantity": 15,
"Price": 349.9,
"Price2": 329.9
},
{
"Code": "TSHIRT-RED-L",
"Quantity": 0,
"Price": 359.9,
"Price2": 339.9
}
]
}
JSON;
$ch = curl_init('https://out.stockmount.com/api/Product/UpdateProductQuantityAndPrice');
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": 184522,
"SetProductQuantityFromVariants": True,
"Price": 349.9,
"MarketPrice": 449.9,
"Price2": 329.9,
"Price3": 0,
"Price4": 0,
"Price5": 0,
"Variants": [
{
"ProductVariantId": 9120344,
"Quantity": 15,
"Price": 349.9,
"Price2": 329.9
},
{
"Code": "TSHIRT-RED-L",
"Quantity": 0,
"Price": 359.9,
"Price2": 339.9
}
]
}
response = requests.post("https://out.stockmount.com/api/Product/UpdateProductQuantityAndPrice", json=payload, timeout=60)
result = response.json()
if not result["Result"]:
print(result["ErrorCode"], result["ErrorMessage"])
const payload = {
"ApiCode": "API_CODE",
"ProductId": 184522,
"SetProductQuantityFromVariants": true,
"Price": 349.9,
"MarketPrice": 449.9,
"Price2": 329.9,
"Price3": 0,
"Price4": 0,
"Price5": 0,
"Variants": [
{
"ProductVariantId": 9120344,
"Quantity": 15,
"Price": 349.9,
"Price2": 329.9
},
{
"Code": "TSHIRT-RED-L",
"Quantity": 0,
"Price": 359.9,
"Price2": 339.9
}
]
};
const response = await fetch("https://out.stockmount.com/api/Product/UpdateProductQuantityAndPrice", {
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": {
"ProductId": 184522,
"Variants": [
{
"Code": "TSHIRT-RED-M",
"ProductVariantId": 9120344
},
{
"Code": "TSHIRT-RED-L",
"ProductVariantId": 9120345
}
]
}
}
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.