Per ora questo documento è disponibile solo in turco.

Ürünler

Admin API ile ürün listele, ekle, güncelle ve sil; varyant, görsel ve İngilizce içerik gönder. Panelde geçerli olan doğrulama kuralları burada da geçerlidir.

Uçlar

Yöntem ve adres Kapsam Ne yapar
GET /products products.read Listeler
GET /products/{id} products.read Tek ürün
POST /products products.write Ekler, 201 döner
PATCH /products/{id} products.write Yalnız gönderilen alanları değiştirir
DELETE /products/{id} products.write Siler, 204 döner
GET /locations products.read Stok lokasyonlarını listeler, ayrıntı Stok sayfasında

Listeleme

Süzgeç Açıklama
status active ya da draft
q Ad ya da markada arar
sku Üründe ya da varyantında bu stok kodu olanlar
updated_since Bu tarihten sonra değişenler
bash
curl "https://piyodo.com/api/store/v1/products?status=active&q=gomlek" \
  -H "Authorization: Bearer psk_..."

Ürün ekleme

name, price ve status zorunludur.

bash
curl -X POST "https://piyodo.com/api/store/v1/products" \
  -H "Authorization: Bearer psk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Keten Gömlek",
    "price": "899.90",
    "status": "active",
    "stock": 12,
    "sku": "KG-1",
    "image_urls": ["https://cdn.example.com/keten-gomlek.jpg"]
  }'

Alanlar

Alan Tür Not
name metin, en çok 120 Zorunlu
price ondalık Zorunlu. "899,90" da kabul edilir
status active, draft Zorunlu
slug metin Boşsa addan üretilir. Değişirse eski adres yeni adrese yönlenir
description metin, en çok 20000 HTML gelebilir, izin listesinden geçirilir
compare_price ondalık Üstü çizili eski fiyat
stock tam sayı null stok takibini kapatır
stock_levels nesne Lokasyon kimliği → adet. Lokasyonu olan mağazada gönderilirse stock yok sayılır, toplam adetlerden hesaplanır. Varyant satırında da geçerlidir
sku, barcode metin, en çok 64
brand, vendor metin, en çok 80
weight tam sayı Gram. Yanıtta weight_grams olarak döner
vat_rate 0, 1, 10, 20 ya da null Faturaya yazılan KDV oranı. null mağazanın oranıdır
min_quantity 1-99 ya da null Vitrinde en az sipariş adedi. Panel ve satış ekranında uygulanmaz
subscription_months 1, 2, 3, 6, 12 ya da null Doluysa satın alan müşteriye her dönem ödeme bağlantısı gider
tags metin dizisi
badge, tagline metin En çok 30 ve 200
meta_title, meta_description metin En çok 120 ve 200
collection_ids kimlik dizisi Gönderilirse koleksiyon atamaları bununla değişir
sort tam sayı Sıralama
fields nesne Mağazanın tanımladığı özel alanlar
faq dizi [{"q": "...", "a": "..."}], en çok 10
personalization dizi Müşteriden alınan kişiselleştirme seçenekleri
options, variants dizi Aşağıda
translations nesne Aşağıda
image_urls adres dizisi Aşağıda

Görseller

POST ya da PATCH içinde image_urls gönder: en çok 8 http(s) adresi. Görseller arka planda iner, yanıt beklemez ve ürünün mevcut görsellerinin sonuna eklenir (ürün başına en çok 8).

Adres herkese açık olmalı, görsel dosyası dönmeli ve 10 MB'ı geçmemeli. Yönlendirme izlenmez; inmeyen görsel atlanır.

Varyantlar

options seçenekleri (en çok 3), variants satırları tanımlar. Varyant fiyatı boşsa ürün fiyatı geçerlidir; yanıttaki effective_price geçerli fiyatı verir.

json
{
  "options": [
    {"name": "Beden", "values": ["S", "M"]},
    {"name": "Renk", "values": ["Ekru"], "swatches": {"Ekru": "#efe6d5"}}
  ],
  "variants": [
    {"options": {"Beden": "S", "Renk": "Ekru"}, "stock": 4, "sku": "KG-1-S"},
    {"options": {"Beden": "M", "Renk": "Ekru"}, "stock": 8, "sku": "KG-1-M", "price": "949.90"}
  ]
}

PATCH içinde options gönderirsen variants listesi de gönder: listede olmayan varyantlar silinir. Var olan varyantı korumak için satırda id ver; id olmayan satır yeni varyanttır. Satır başına alanlar: id, options, price, compare_price, stock, stock_levels, sku, barcode. options göndermezsen varyantlara dokunulmaz.

İngilizce içerik

Mağaza İngilizce de yayındaysa translations.en içinde gönder. Alanlar: name, description, tagline, meta_title, meta_description.

json
{"translations": {"en": {"name": "Linen Shirt", "tagline": "Light, breathable, everyday"}}}

Yanıt

json
{
  "data": {
    "id": "01J...",
    "slug": "keten-gomlek",
    "name": "Keten Gömlek",
    "description": null,
    "status": "active",
    "url": "https://ayse.example.com/urun/keten-gomlek",
    "price": "899.90",
    "compare_price": null,
    "stock": 12,
    "stock_levels": [],
    "sku": "KG-1",
    "barcode": null,
    "brand": null,
    "vendor": null,
    "weight_grams": null,
    "tags": [],
    "badge": null,
    "tagline": null,
    "images": [],
    "fields": {},
    "translations": {},
    "meta_title": null,
    "meta_description": null,
    "options": [],
    "personalization": [],
    "rating": null,
    "reviews_count": 0,
    "variants": [],
    "collection_ids": [],
    "created_at": "2026-11-05T10:00:00+00:00",
    "updated_at": "2026-11-05T10:00:00+00:00"
  }
}

images tam adres listesidir. stock satılabilir toplamdır; stock_levels onun lokasyonlara dağılımıdır ([{"location_id": "01J...", "quantity": 7}]), varyant satırlarında da döner. Mağazada lokasyon yoksa boş listedir. Stok güncellemek için ürünün tamamını göndermen gerekmez: Stok sayfasındaki toplu uç daha uygundur.