https://app.flextell.ai/api/v1 altındadır. Her istekte Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıkları gerekir (Klinikler ve X-Tenant). Listeler sayfalıdır; per_page 1–100 arasındadır, varsayılan 15’tir (Sayfalama).
Endpoint özeti
Başarılı yanıtlar
{"success": true, "data": ...} zarfıyla gelir. Başka bir kliniğe ait kayıtlar 404 döner. İzin eksikse 403 FORBIDDEN alırsınız (İzinler ve görünürlük).
Ürün nesnesi
Ürün, kliniğe aittir. Ürün oluştururkenproduct_type_id ve base_unit_code_id değerlerini GET /general/product-types ve GET /general/unit-codes arama listelerinden alın (Klinik ve genel).
Ürün nesnesi stok bakiyesi içermez. Bakiye için Depolar ve stok sayfasındaki stok endpoint’lerini kullanın.
Stok takip modları
Ürün listeleme
GET /products için süzgeçler:
Sıralama kuralları (Türkçe harf sıralaması,
sort_order verilmediğinde yön) için Filtreleme ve sıralama sayfasına bakın.
Ürün oluşturma
POST /products gövdesinde yukarıdaki alanlara ek olarak initial_stock_quantity gönderebilirsiniz (0 ile 9999999999.9999 arası, en çok 4 ondalık).
initial_stock_quantity0’dan büyükseCreate:Productizninin yanındaCreate:StockMovementizni de gerekir. Ürün oluşurken kliniğin varsayılan deposuna bir başlangıç stoku hareketi yazılır. Varsayılan depo yoksaAna Depoadıyla oluşturulur.- Güncellemede (
PUT) alanların hepsi isteğe bağlıdır. Boşaltılabilir alanlaranullgöndererek değeri silebilirsiniz.initial_stock_quantityvecatalog_product_idgüncellemede kabul edilmez. - Aynı barkodu ikinci kez kaydederseniz
422döner:This barcode is already registered for the current tenant.
Kategoriler ve markalar
Kategoriler ve markalar kliniğe aittir. Ürünlereproduct_category_id ve product_brand_id ile bağlanır.
Kategori nesnesi
Liste süzgeçleri:
search (ad ve açıklama), parent_id, is_active. Sıralama anahtarları: name, is_active, created_at, updated_at (varsayılan created_at, desc). Bir kategoriyi kendi üst kategorisi yaparsanız 422 döner: A category cannot be its own parent.
Marka nesnesi
Liste süzgeçleri:
search (ad), is_active. Sıralama anahtarları: name, is_active, products_count, created_at, updated_at. Marka adını değiştirdiğinizde bu markadaki ürünlerin aramada bulunma bilgisi de güncellenir.
Katalog ürünleri
Katalog, tüm kliniklerin ortak kullandığı salt okunur bir ürün listesidir. API’den katalog kaydı eklenemez, değiştirilemez ve silinemez. Katalog erişimiproducts:read scope’u ve View:Product izniyle yapılır; ayrı bir katalog izni gerekmez.
GET /catalog-products süzgeçleri: search (ad, marka adı, açıklama), product_type_id, is_active, created_at_from, created_at_to. is_active göndermezseniz yalnızca aktif kayıtlar gelir. Sıralama anahtarları: name, brand_name, created_at, updated_at (varsayılan name, asc). Pasif bir katalog kaydının detayı 404 döner.
Katalogdan ürün oluşturma
1
Katalog kaydını bulun
GET /catalog-products?search=serum ile arayın ve istediğiniz kaydın id değerini alın.2
Taslağı alın
GET /catalog-products/{id} yanıtındaki product_prefill nesnesini okuyun. product_brand_id yalnızca aynı adlı bir marka klinikte zaten varsa gelir; detay endpoint’i marka oluşturmaz.3
Ürünü oluşturun
POST /products gövdesine taslağı koyun, price, tax_rate ve is_active alanlarını ekleyin. Taslak fiyat, KDV oranı ve barkod taşımaz.POST /products gövdesinde catalog_product_id gönderir ve product_brand_id göndermezseniz marka katalog kaydının brand_name değerinden çözülür: aynı adlı bir marka varsa o kullanılır, yoksa yeni ve aktif bir marka oluşturulur. Açıkça gönderdiğiniz product_brand_id her zaman önceliklidir. Katalogdan yalnızca bağlantı ve marka alınır; diğer alanları siz göndermelisiniz. Pasif veya silinmiş bir katalog kaydı 422 döner.Ürün setleri
Ürün seti, ürün ve tedavilerden oluşan yeniden kullanılabilir bir pakettir. Set, satış oluştururken tek çağrıyla satış kalemlerine açılır. Setlerin kendi para birimi yoktur; yanıttakicurrency_code kliniğin para birimidir.
Her kalem (
items[]) şu alanlara sahiptir:
GET /product-sets süzgeçleri: search (ad ve açıklama), is_active, created_at_from, created_at_to. Sıralama anahtarları: created_at (varsayılan, desc), updated_at, name.
Seti satış kalemlerine açma
GET /product-sets/{id}/sale-items, setin kalemlerini POST /sales gövdesindeki items[] biçiminde döndürür. Yanıtta product_set_id, name, items[] ve total_price bulunur. Her kalemde staff_id ve warehouse_id null gelir; staff_id satış oluştururken zorunlu olduğu için sizin doldurmanız gerekir. Miktar en az 1’e yükseltilir, indirimler 0’dır. Satış oluşturma ayrıntıları için Satışlar sayfasına bakın.
Kurallar
- KDV oranları.
tax_rateyalnızca0,1,10,20olabilir.8ve18reddedilir. - Silme. Ürün, kategori ve marka silme geri alınabilir bir silmedir ve bağımlılık denetimi yapmaz: stoğu veya satış kalemi olan ürün, ürünleri olan marka ya da alt kategorisi olan kategori silinebilir. Silinen kayıtlar Geri Dönüşüm Kutusu’ndan geri yüklenemez. Silinen ürünün barkodu yeniden kullanılabilir. Genel kurallar için Silme yaşam döngüsü sayfasına bakın.
- Set silme.
DELETE /product-sets/{id}kalıcıdır; setin kalemleri de silinir. - Başka kliniğin kaydı. Başka bir kliniğe ait marka veya kategori kimliği göndermek
422döner. - Arama. Ürün aramasında sonuçlar önce eşleşme ilgisine göre sıralanır. Açık bir
sort_byverirseniz sıralamayı o belirler.
Hata kodları
Tüm hata biçimleri için Hata kodları sayfasına bakın. Bu kaynakları panelde nasıl yöneteceğiniz için Ürünler sayfasına bakın.