Ürün Listesi

Mağazaya ait ürünleri sayfalama, filtreleme ve tarih aralıkları ile birlikte listeler. Variant (varyant) bazında stok, fiyat ve niteliklerle döner.

Gerekli yetki: product:read

Endpoint

GET /integration/product/sellers/{sellerId}/products

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

Sorgu Parametreleri

Sayfalama ve Sıralama

ParametreTipVarsayılanAçıklama
pageinteger0Sayfa numarası (sıfırdan başlar).
sizeinteger50Sayfa başına dönen ürün adedi (en fazla 1000).
creationDatestringASCOluşturma tarihine göre sıralama yönü: ASC veya DESC.

Ürün Filtreleri

ParametreTipAçıklama
barcodestringBelirli bir barkoda göre filtreleme.
stockCodestringBelirli bir SKU'ya göre filtreleme.
productMainIdstringÜrün ana kimliği ile filtreleme.
statusstringÜrün durumu: onSale, notOnSale, archived.

Marka / Kategori Filtreleri

ParametreTipAçıklama
brandstringMarka adı (virgülle çoklu).
brandIdsstringMarka ID'si (virgülle çoklu).
categorystringAna kategori adı (virgülle çoklu).
categoryIdintegerAna kategori ID (virgülle çoklu).
subCategorystringAlt kategori adı (virgülle çoklu).
subCategoryIdintegerAlt kategori ID (virgülle çoklu).
productTypestringÜrün tipi adı (virgülle çoklu).
productTypeIdintegerÜrün tipi ID (virgülle çoklu).

Tarih Filtreleri

ParametreTipAçıklama
startDatelong (ms)Bu tarihten sonra güncellenen ürünler (Unix milisaniye).
endDatelong (ms)Bu tarihten önce güncellenen ürünler.
creationDateStartlong (ms)Bu tarihten sonra oluşturulan ürünler.
creationDateEndlong (ms)Bu tarihten önce oluşturulan ürünler.

Yanıt (200)

{
  "totalElements": 487,
  "totalPages": 10,
  "page": 0,
  "size": 50,
  "content": [
    {
      "contentId": 60042,
      "productMainId": "9084249637087",
      "title": "Ürün Adı",
      "description": "

Ürün açıklaması...

", "images": [ { "url": "https://cdn.milagron.com/products/image1.webp" }, { "url": "https://cdn.milagron.com/products/image2.webp" } ], "brand": { "id": 12, "name": "By Lamp" }, "category": { "id": 3, "name": "Aydınlatma" }, "subCategory": { "id": 7, "name": "Aplik" }, "productType": { "id": 9, "name": "Aplik" }, "taxRate": 20, "productUrl": "https://milagron.com/products/urun-handle", "creationDate": 1749416400000, "lastModifiedDate": 1749502800000, "deliveryOptions": { "minDeliveryDays": 2, "maxDeliveryDays": 5 }, "onSale": true, "archived": false, "variants": [ { "variantId": "47115403722975", "barcode": "8690000000001", "stockCode": "APLIK-7151", "stock": { "quantity": 100, "lastModifiedDate": 1749502800000 }, "price": { "salePrice": 2554.74, "listPrice": 3609.90 }, "productUrl": "https://milagron.com/products/urun-handle?variant=47115403722975", "attributes": [ { "attributeId": 1, "attributeName": "Renk", "attributeValueId": 8, "attributeValue": "Lila" } ] } ] } ] }

Ürün Alanları

AlanTipAçıklama
contentIdintegerÜrünün dahili kimliği.
productMainIdstringÜrün ana kimliği.
titlestringÜrün başlığı.
descriptionstringHTML formatında ürün açıklaması.
imagesarrayÜrün görselleri listesi (her biri { url }).
brandobjectMarka bilgisi: { id, name }.
categoryobjectAna kategori: { id, name }.
subCategoryobjectAlt kategori: { id, name }.
productTypeobjectÜrün tipi: { id, name }.
taxRateintegerKDV oranı.
productUrlstring \| nullSatışa açık ürünün genel müşteri URL'si.
creationDatelongOluşturma zamanı, Unix milisaniye.
lastModifiedDatelongSon değişiklik zamanı, Unix milisaniye.
deliveryOptionsobjectTeslimat süresi: { minDeliveryDays, maxDeliveryDays }.
onSalebooleanÜrün aktif satıştaysa true.
archivedbooleanÜrün arşivlendiyse true.
variantsarrayVaryantlar listesi (aşağıda).

Varyant Alanları (variants[])

AlanTipAçıklama
variantIdstringVaryant kimliği.
barcodestringBarkod.
stockCodestringSKU.
stock.quantityintegerStok adedi.
stock.lastModifiedDatelongStokun son güncelleme zamanı, Unix milisaniye.
price.salePricenumberSatış fiyatı.
price.listPricenumberListe fiyatı (indirim öncesi).
productUrlstring \| nullVaryant seçimi ile oluşturulmuş ürün URL'si.
attributesarrayVaryant nitelikleri (renk, beden vb.).

Attribute Alanları (variants[].attributes[])

AlanTipAçıklama
attributeIdintegerNitelik ID.
attributeNamestringNitelik adı (örn. Renk).
attributeValueIdintegerDeğer ID.
attributeValuestringDeğer adı (örn. Kırmızı).

Kullanım Örnekleri

curl -u "API_KEY:API_SECRET" \
  -X GET "https://api.milagron.com/integration/product/sellers/123/products?page=0&size=50&status=onSale"
<?php

$ch = curl_init('https://api.milagron.com/integration/product/sellers/123/products?page=0&size=50&status=onSale');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'API_KEY:API_SECRET',
    CURLOPT_CUSTOMREQUEST  => 'GET',
]);

$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/product/sellers/123/products?page=0&size=50&status=onSale', {
    method: 'GET',
    headers: {
        'Authorization': `Basic ${auth}`
    }
});

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

response = requests.get(
    'https://api.milagron.com/integration/product/sellers/123/products?page=0&size=50&status=onSale',
    auth=('API_KEY', 'API_SECRET')
)

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

import (
    "net/http"
)

func main() {
    req, _ := http.NewRequest("GET", "https://api.milagron.com/integration/product/sellers/123/products?page=0&size=50&status=onSale", nil)
    req.SetBasicAuth("API_KEY", "API_SECRET")

    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/product/sellers/123/products?page=0&size=50&status=onSale"))
    .header("Authorization", "Basic " + auth)
    .GET()
    .build();

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

uri = URI('https://api.milagron.com/integration/product/sellers/123/products?page=0&size=50&status=onSale')

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

request = Net::HTTP::Get.new(uri.request_uri)
request.basic_auth('API_KEY', 'API_SECRET')

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 response = await client.GetAsync("https://api.milagron.com/integration/product/sellers/123/products?page=0&size=50&status=onSale");
var data = await response.Content.ReadAsStringAsync();

Hata Kodları

KodSebep
400page sınırı aşılmış (maks 5000).
401 / 403Kimlik doğrulama veya yetki problemi.
404Seller bulunamadı.

Notlar

  • Bu endpoint salt-okunur niteliktedir; stage ortamında dahi gerçek veri döner.
  • barcode, stockCode, status filtreleri aktifken ürünün yalnızca eşleşen varyantları variants dizisinde döner.
  • productUrl alanı, ürün aktif olarak satışta değilse null olur.