Ana içeriğe geç

Ürün İşlemleri

AVCI CMS Public API üzerinden mağazanızdaki aktif ürünleri listeleyebilir, filtreleyebilir, detaylarını çekebilir ve SEO verilerini alabilirsiniz.

Tüm isteklerde x-avci-client kimlik başlığının gönderilmesi zorunludur. Detaylar için Başlangıç sayfasına göz atın.


1. Ürünleri Listeleme (List Products)

Katalogdaki ürünleri sayfalama ve zengin filtreleme seçenekleriyle listeler.

  • Endpoint: GET /product
  • Auth Gereksinimi: x-avci-client

Query Parametreleri

Sayfalama ve sıralama kuralları geçerlidir (Bknz: Sayfalama & Filtreleme).

ParametreTipAçıklama
pageNumberSayfa numarası (Varsayılan: 1)
limitNumberSayfa başı kayıt sayısı (Varsayılan: 10)
categoryString | ArrayKategori ID'si veya ID dizisi. Çoklu seçim destekler.
brandStringMarka ID'sine göre filtreleme.
merchantStringSatıcı (Mağaza) ID'sine göre filtreleme.
minPriceNumberMinimum fiyat filtresi.
maxPriceNumberMaksimum fiyat filtresi.
yearNumberÜretim yılı filtresi.
languageStringÇeviri / Dil filtresi.
attributesStringÖzelliklere göre filtreleme (Örn: renk:kirmizi).
discardArrayGösterilmeyecek (dışlanan) ürün ID'leri dizisi.
searchStringÜrün adı veya açıklamasında metin araması.

Örnek cURL İsteği:

curl -X GET "https://api.avcicms.com/v1/product?category=cat_123&minPrice=100&maxPrice=500" \
-H "x-avci-client: <tenant_id>"

Örnek JSON Yanıtı:

{
"status": "success",
"data": [
{
"id": "prod_123",
"slug": "mavi-erkek-tisort",
"name": "Mavi Erkek Tişört",
"price": 129.99,
"brand": { "id": "b_1", "name": "Mavi" }
}
],
"pagination": {
"totalRecords": 45,
"totalPages": 5,
"currentPage": 1,
"limit": 10
}
}

TypeScript Yanıt Şeması (Response Interface):

export interface ProductListResponse {
_id: string; // Types.ObjectId
title: string;
name: string;
thumbnail?: string;
slug: string;
stockAmount?: number;
featuredImage?: string;
saleType?: string;
price: {
sale?: number;
list?: number;
amount?: number;
discount?: number;
currency?: string;
lowestPrice30Days?: number;
};
category?: {
value: string; // Types.ObjectId
label: string;
}[];
status: string; // 'PUBLISHED' | 'DRAFT' | 'OUT_OF_STOCK' vb.
brand?: {
name?: string;
slug?: string;
image?: string;
};
merchant?: {
_id?: string;
name?: string;
slug?: string;
image?: string;
};
year?: number;
attributes?: any[];
liked?: boolean;
isHolidayActive?: boolean;
badges?: any[];
}

2. Ürün Detayı (Product Details)

Belirli bir ürünün slug değeri kullanılarak tüm detaylarını getirir.

  • Endpoint: GET /product/:slug
  • Auth Gereksinimi: x-avci-client

Örnek JSON Yanıtı:

{
"status": "success",
"data": {
"id": "prod_123",
"slug": "mavi-erkek-tisort",
"name": "Mavi Erkek Tişört",
"description": "<p>Yüzde yüz pamuk...</p>",
"price": 129.99,
"stock": 50,
"variants": [],
"images": ["https://..."]
}
}

TypeScript Yanıt Şeması (Response Interface):

export interface ProductDetailsResponse {
id: string; // Types.ObjectId
name: string;
slug: string;
year?: number;
liked: boolean;
images: string[];
brief?: string;
price: {
sale?: number;
currency?: string;
amount?: number;
discount?: number;
lowestPrice30Days?: number;
};
brand?: {
name?: string;
slug?: string;
description?: string;
image?: string;
};
merchant?: {
_id: string;
name: string;
slug: string;
image?: string;
};
description?: string;
properties?: any[];
sku?: string;
techniques?: string[];
materials?: string[];
tools?: string[];
saleType?: string;
edition?: {
number?: number;
amount?: number;
};
modelNo?: string;
stn?: string;
category?: any[];
stock?: {
amount?: number;
min?: number;
};
holidayMode?: {
active: boolean;
message?: string;
};
badges?: any[];
}

3. Yeni Ürünler (New Products)

Sisteme yeni eklenen ürünleri sayfalamalı olarak listeler.

  • Endpoint: GET /product/new?page=1&limit=10
  • Auth Gereksinimi: x-avci-client

Çok satan veya en çok ziyaret edilen popüler ürünleri listeler.

  • Endpoint: GET /product/popular?page=1&limit=10
  • Auth Gereksinimi: x-avci-client

5. Rastgele Ürünler (Random Products)

Belirtilen miktarda rastgele ürün getirir (Örn. ana sayfa keşfet bölümleri için).

  • Endpoint: GET /product/random/:amount
  • Auth Gereksinimi: x-avci-client

Örnek: /product/random/5


Mevcut arama/kategori kriterlerine göre yan menüde (sidebar) gösterilebilecek aktif filtreleri (fiyat aralığı, markalar, kategoriler) getirir.

  • Endpoint: GET /product/filters
  • Auth Gereksinimi: x-avci-client
  • Parametreler: Listeleme işlemiyle aynı query parametrelerini (category, search, brand) alır.

7. Benzer Ürünler (Similar Products)

Görüntülenen bir ürüne benzeyen (aynı kategoride vb.) alternatif ürünleri getirir.

  • Endpoint: GET /product/:slug/similar?limit=4
  • Auth Gereksinimi: x-avci-client