Ürün Listesi

Mağazanın ürünlerini sayfa sayfa listeler. Tek bir ürünü stok kodu ya da barkodla bulmak için de bu uç kullanılır.

GET https://api.hizlisanalmarket.com/api/v1/products · İzin: products:read

Sorgu parametreleri

Parametre Tür Açıklama
page Sayı Sayfa numarası, 1'den başlar. Varsayılan 1.
pageSize Sayı Sayfadaki ürün sayısı, en fazla 100. Varsayılan 20.
sku Metin Stok kodu tam eşleşme.
barcode Metin Barkod tam eşleşme.
search Metin Ürün adında ya da stok kodunda geçen metin. Büyük/küçük harfe duyarlıdır.
categorySlug Metin Yalnız bu kategorideki ürünler. Değer kategorinin slug alanıdır. Bulunamayan kategori boş liste döndürür.
brandSlug Metin Yalnız bu markanın ürünleri. Değer markanın slug alanıdır. Bulunamayan marka boş liste döndürür.
updatedSince Tarih Yalnız bu andan sonra açılan ya da değişen ürünler. Artımlı senkron için kullanılır. Örnek: 2026-10-20T00:00:00Z

Ürünler en yeni açılandan eskiye doğru sıralanır. Taslak ve arşivlenmiş ürünler de listelenir. Gerekirse status alanına göre ayırın.

Tarihleri UTC ve ISO 8601 biçiminde gönderin (2026-10-20T00:00:00Z). Türkiye saatiyle göndermek için ofset ekleyin: 2026-10-20T00:00:00%2B03:00 (+ işareti adreste %2B yazılır). Saat dilimi yazılmayan tarih UTC kabul edilir.

Örnek istek

curl "https://api.hizlisanalmarket.com/api/v1/products?sku=KUPA-350" \
  -H "Authorization: Bearer hm_sk_..."

Örnek yanıt

{
  "products": [
    {
      "id": "8f1c2a4e-3b5d-4c6e-9f70-1a2b3c4d5e6f",
      "name": "Seramik Kupa 350 ml",
      "slug": "seramik-kupa-350-ml",
      "sku": "KUPA-350",
      "price": 249.90,
      "compareAtPrice": 299.90,
      "stockQuantity": 120,
      "isInStock": true,
      "status": "Active",
      "categoryName": "Kupalar",
      "brandName": "Demo Seramik",
      "images": [
        "https://api.hizlisanalmarket.com/uploads/.../kupa-350-1.webp",
        "https://api.hizlisanalmarket.com/uploads/.../kupa-350-2.webp"
      ],
      "createdAt": "2026-09-14T08:21:05.112Z",
      "updatedAt": "2026-10-20T12:03:44.508Z",
      "unit": "adet",
      "allowFractionalQuantity": false,
      "barcode": "8690000000017",
      "categoryId": "3c9d2e71-6a40-4f5b-8e12-7b0a9c4d1e22",
      "brandId": "b4e8a1c3-2d7f-4a96-b051-6e3c8f0d2a19",
      "taxRate": 20,
      "description": "<p>Bulaşık makinesinde yıkanabilir.</p>"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 20,
  "totalPages": 1
}

Ürün alanları

Alan Açıklama
id Ürün kimliği (GUID).
name, slug Ürün adı ve vitrin adresindeki kısa adı.
sku, barcode Stok kodu ve barkod.
price KDV dahil satış fiyatı.
compareAtPrice Üstü çizili fiyat (yoksa null).
taxRate KDV oranı (yüzde).
stockQuantity Ürünün stok miktarı.
isInStock Ürün şu an satılabilir mi. Vitrindeki kuralla hesaplanır: varyantlı üründe varyant stoklarına bakılır; stok takibi kapalı ya da ön siparişe açık ürün her zaman satılabilir sayılır.
status Active, Draft, Archived ya da OutOfStock.
categoryId, categoryName Ürünün kategorisi.
brandId, brandName Ürünün markası.
images Görsel adresleri. İlki ana görseldir.
unit, allowFractionalQuantity Satış birimi ve kesirli miktarla satılıp satılmadığı.
description Ürün açıklaması (HTML).
createdAt, updatedAt Açılma ve son değişiklik zamanı (UTC). Hiç değişmemiş üründe updatedAt null olur.

Sayfalama alanları: totalCount (filtreye uyan toplam ürün), page, pageSize, totalPages.

Tüm kataloğu çekme

page=1 ile başlayıp page değeri totalPages değerini geçene kadar artırın. Sonraki senkronlarda yalnız değişenleri almak için bir önceki çekimin başlangıç zamanını updatedSince olarak gönderin.

Tek ürün

GET https://api.hizlisanalmarket.com/api/v1/products/{id} · İzin: products:read

Yanıt, listedeki ürün nesnesinin aynısıdır. Ürün bulunamazsa 404 döner:

{ "error": "Ürün bulunamadı.", "code": "PRODUCT_NOT_FOUND" }