Stok Sorgulama

Belirtilen barkodlara ait güncel stok adetlerini döndürür. Tekli ve çoklu sorgu biçimlerini destekler.

Gerekli yetki: stock:read

Endpoint

POST /integration/inventory/sellers/{sellerId}/products/stock

Production
https://api.milagron.com/integration/inventory/sellers/{sellerId}/products/stock
Stage
https://stageapi.milagron.com/integration/inventory/sellers/{sellerId}/products/stock

Tekli Sorgu

İstek

{ "barcode": "8690000000001" }

Yanıt (200)

{
  "barcode": "8690000000001",
  "stock": 42
}

Belirtilen barkodun sistemde bulunmaması durumunda stock alanı null olarak döner.

Çoklu Sorgu

İstek

{
  "barcodes": [
    "8690000000001",
    "8690000000002",
    "8690000000003"
  ]
}

Yanıt (200)

{
  "items": [
    { "barcode": "8690000000001", "stock": 42 },
    { "barcode": "8690000000002", "stock": 0 },
    {
      "barcode": "8690000000003",
      "stock": null,
      "message": "barcode not found for this seller"
    }
  ]
}

Bulunamayan barkodlar için stock: null döner ve açıklayıcı bir message alanı eklenir. Bu durum bir hata değildir; istemci tarafında uygun biçimde işlenmelidir.

Kullanım Örnekleri

curl -u "API_KEY:API_SECRET" \
  -X POST "https://api.milagron.com/integration/inventory/sellers/123/products/stock" \
  -H "Content-Type: application/json" \
  -d '{
    "barcodes": [
        "8690000000001",
        "8690000000002"
    ]
}'
<?php

$ch = curl_init('https://api.milagron.com/integration/inventory/sellers/123/products/stock');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'API_KEY:API_SECRET',
    CURLOPT_CUSTOMREQUEST  => 'POST',
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
    'barcodes' => [
        '8690000000001',
        '8690000000002'
    ]
]),
]);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
const auth = Buffer.from('API_KEY:API_SECRET').toString('base64');

const res = await fetch('https://api.milagron.com/integration/inventory/sellers/123/products/stock', {
    method: 'POST',
    headers: {
        'Authorization': `Basic ${auth}`,
        'Content-Type':  'application/json'
    },
    body: JSON.stringify({
    barcodes: [
        '8690000000001',
        '8690000000002'
    ]
})
});

const data = await res.json();
import requests

response = requests.post(
    'https://api.milagron.com/integration/inventory/sellers/123/products/stock',
    auth=('API_KEY', 'API_SECRET'),
    json={
    'barcodes': [
        '8690000000001',
        '8690000000002'
    ]
}
)

response.raise_for_status()
data = response.json()
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    payload, _ := json.Marshal(map[string]interface{}{
    "barcodes": []interface{}{
        "8690000000001",
        "8690000000002",
    },
})
    req, _ := http.NewRequest("POST", "https://api.milagron.com/integration/inventory/sellers/123/products/stock", bytes.NewBuffer(payload))
    req.SetBasicAuth("API_KEY", "API_SECRET")
    req.Header.Set("Content-Type", "application/json")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
}
import java.net.URI;
import java.net.http.*;
import java.util.Base64;

HttpClient client = HttpClient.newHttpClient();

String auth = Base64.getEncoder()
    .encodeToString("API_KEY:API_SECRET".getBytes());

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.milagron.com/integration/inventory/sellers/123/products/stock"))
    .header("Authorization", "Basic " + auth)
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString("{\"barcodes\":[\"8690000000001\",\"8690000000002\"]}"))
    .build();

HttpResponse<String> response = client.send(request,
    HttpResponse.BodyHandlers.ofString());
require 'net/http'
require 'uri'
require 'json'

uri = URI('https://api.milagron.com/integration/inventory/sellers/123/products/stock')

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.request_uri)
request.basic_auth('API_KEY', 'API_SECRET')
request['Content-Type'] = 'application/json'
request.body = {
  barcodes: [
    '8690000000001',
    '8690000000002'
  ]
}.to_json

response = http.request(request)
data = JSON.parse(response.body)
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;

var client = new HttpClient();

var auth = Convert.ToBase64String(
    Encoding.UTF8.GetBytes("API_KEY:API_SECRET"));
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Basic", auth);

var content = new StringContent(
    "{\"barcodes\":[\"8690000000001\",\"8690000000002\"]}",
    Encoding.UTF8,
    "application/json");

var response = await client.PostAsync("https://api.milagron.com/integration/inventory/sellers/123/products/stock", content);
var data = await response.Content.ReadAsStringAsync();

Notlar

  • Bu endpoint salt-okunur niteliktedir; stage ortamında dahi gerçek veri döner.
  • Tek istek içerisinde en fazla 1000 barkod sorgulanabilir.
  • Bulunamayan barkodlar için stock: null dönmesi hata sayılmaz; istemci tarafında uygun şekilde işlenmelidir.