İçeriğe geç
siparis.app geliştiriciAnahtarları yönet ↗

Ürünler

Seçeneği arşivle

POST/v1/variants/{id}/archive

Satılmayan bir seçeneği üründen kaldırın; kaydı silinmez.

Gereken izin

Bearer anahtarı ve archive:write, products:write

Yanıtı genişleten izin

costs:read: yanıttaki ilgili alanları açar; izin yoksa bu alanlar atlanır, istek reddedilmez.

Maliyet

1 puan (bağlantı başına 60 saniyede 600 puan)

Tekrar anahtarı

Gerekir: Idempotency-Key başlığı.

İstek

Temel adres: https://api.siparis.app/v1

Yol parametreleri

AlanTürZorunluAçıklamaÖrnek
idmetinEvetOkunacak kaynağın var_ önekli dış kimliği."var_1234567890abcdef1234567890abcdef"

Başlıklar

AlanTürZorunluAçıklamaÖrnek
Idempotency-Keymetin · null olabilirEvetZorunlu tekrar anahtarı; en çok 200 karakter. Yeni işte yeni değer; ağ tekrarında aynı gövde ve aynı değer."ilk-esitleme-20261016-001"
If-Matchmetin · null olabilirHayırİsteğe bağlı önkoşul: son ETag değerini çift tırnaklarıyla gönderin. Komutun kilidi altında farklıysa 412 revision_mismatch."\"0123456789abcdef\""

Gövde (application/json)

AlanTürZorunluAçıklamaÖrnek

Örnek istek

curl --fail-with-body --silent --show-error --request POST \
  "${SIPARIS_API_URL:-https://api.siparis.app/v1}/variants/var_1234567890abcdef1234567890abcdef/archive" \
  -H "Authorization: Bearer $SIPARIS_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: ornek-post-v1-variants-var-1234567890abcdef1234567890abcdef-archive-001' \
  --data-binary @- <<'JSON'
{}
JSON
import json
import os
from urllib.request import Request, build_opener, HTTPRedirectHandler
from urllib.error import HTTPError

# İmzalı indirme hedefine Bearer taşımamak için yönlendirme kendiliğinden izlenmez.
class NoRedirect(HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, headers, newurl):
        return None

base = os.environ.get("SIPARIS_API_URL", "https://api.siparis.app/v1")
headers = {
    "Authorization": "Bearer " + os.environ["SIPARIS_API_KEY"],
    "Content-Type": "application/json",
    "Idempotency-Key": "ornek-post-v1-variants-var-1234567890abcdef1234567890abcdef-archive-001",
}
request = Request(base + "/variants/var_1234567890abcdef1234567890abcdef/archive", headers=headers, method="POST",
    data="{}".encode("utf-8"))
try:
    with build_opener(NoRedirect).open(request, timeout=30) as response:
        print(response.read().decode("utf-8"))
except HTTPError as error:
    print(error.code, error.read().decode("utf-8"))
    raise
// Node.js 22+; anahtar yalnız sunucunun ortam değişkenindedir.
const base = process.env.SIPARIS_API_URL ?? "https://api.siparis.app/v1";
if (!process.env.SIPARIS_API_KEY) throw new Error("SIPARIS_API_KEY gerekli");
const response = await fetch(base + "/variants/var_1234567890abcdef1234567890abcdef/archive", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.SIPARIS_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "ornek-post-v1-variants-var-1234567890abcdef1234567890abcdef-archive-001",
  },
  redirect: "manual", // 307 hedefini Bearer olmadan ayrı istekte okuyun.
  signal: AbortSignal.timeout(30_000),
  body: JSON.stringify({}),
});
const text = await response.text();
if (!response.ok) throw new Error(`${response.status}: ${text}`);
console.log(text);

Kimlik içeren yollarda örnek kimliği kendi liste yanıtınızdan alın. SIPARIS_API_KEY sunucu ortamında tanımlı olmalı; yerelde SIPARIS_API_URL ile /v1 içeren adresi değiştirin. Üretimde tekrar kurallarını uygulayın.

Yanıt

200 İstek başarıyla tamamlandı.

İçerik türü: application/json

{
  "archived": false,
  "barcode": "8690000000001",
  "compare_price": "150.00",
  "created_at": "2026-10-16T09:00:00Z",
  "currency": "TRY",
  "expired": false,
  "id": "var_1234567890abcdef1234567890abcdef",
  "is_default": true,
  "made_to_order": false,
  "name": "Mavi",
  "options": [
    {
      "name": "Renk",
      "value": "Mavi"
    }
  ],
  "pool_quantity": "1.000",
  "price": "120.00",
  "product": "prd_1234567890abcdef1234567890abcdef",
  "sku": "KUPA-MAVI",
  "stock_uncounted": false,
  "updated_at": "2026-10-16T09:00:00Z"
}
Yanıt alanları (20)
AlanTürZorunluAçıklamaÖrnek
archivedtrue/falseEvetArşivdeki veya kapanmış kaynaksa true. archived=true süzgeci bunları da içerir.false
barcodemetin · null olabilirEvetÜrünün veya seçeneğin barkodu."8690000000001"
compare_pricemetin · null olabilirEvetKarşılaştırma fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin."150.00"
created_attarih-saatEvetOluşturulma zamanı; RFC 3339 UTC."2026-10-16T09:00:00Z"
currencysabit "TRY"EvetPara birimi; v1 tutarları Türk lirasıdır."TRY"
expiredtrue/falseEvetSeçenek emekli edilmişse true.false
idmetinEvetKaynağın dış kimliği; var_ ve 32 küçük onaltılık karakter. İç sayısal kimlik kullanılmaz."var_1234567890abcdef1234567890abcdef"
is_defaulttrue/falseEvetVarsayılan seçenek veya depo ise true.true
made_to_ordertrue/falseEvetSipariş üzerine hazırlanırsa true; sayılmayan stoktan önceliklidir.false
namemetinEvetKaydın görünen adı."Mavi"
optionsliste: nesneEvetSeçeneğin ad/değer özellikleri.
namemetinEvetSeçenek özelliğinin adı."Renk"
valuemetinEvetSeçenek özelliğinin değeri."Mavi"
pool_quantitymetin · null olabilirEvetSeçeneğin ortak stoktan kullandığı miktar; birimi ilgili ürün/depo alanında verilen ondalık metin."1.000"
pricemetin · null olabilirEvetSatış fiyatı; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin."120.00"
productmetinEvetÜrün kimliği (prd_ ve 32 küçük onaltılık karakter)."prd_1234567890abcdef1234567890abcdef"
skumetin · null olabilirEvetStok takip kodu; eşitlik araması normalize edilerek yapılır."KUPA-MAVI"
stock_uncountedtrue/falseEvetStok sayılmıyorsa true; stok miktarı null sunulur.false
updated_attarih-saatEvetSon değişiklik zamanı; RFC 3339 UTC."2026-10-16T09:00:00Z"
costmetin · null olabilirHayırMaliyet; yalnız costs:read ile görünür; TRY cinsinden ondalık metin. Kuruş kaybını önlemek için ondalık sayı kütüphanesiyle işleyin."80.00"

Bu uca özgü yanıt başlıkları: ETag (Ürünün API görünümünün SHA-256 içerik özetinin ilk 16 onaltılık karakteri; stok durumu ve updated_at hariç. If-Match için tırnaklarıyla saklayın.).

Hatalar

HTTPcodeAnlamıNasıl düzelir?
403forbiddenMevcut ticari kural bu işlemi yapmanıza izin vermiyor.Gerekli kapsamları ve siparişin durumunu kontrol edin.
409conflictSipariş veya ödeme bilgisi değişmiş ya da işlem mevcut duruma uygun değil.Güncel siparişi okuyun, iş kuralını kontrol edip yeni tekrar anahtarıyla deneyin.
409code_takenStok kodu veya barkod başka bir kayıtta kullanılıyor.Görünür existing_variant / existing_product kimliğini okuyun veya farklı kod seçin.
400invalid_if_matchIf-Match geçerli bir güçlü ETag değil.GET kaynak yanıtındaki ETag değerini çift tırnaklarıyla aynen kullanın.
412revision_mismatchKayıt siz okuduktan sonra değişmiş.Güncel kaydı okuyun; düzeltmeyi yeniden değerlendirip yeni tekrar anahtarıyla gönderin.
422store_requiredÇok markalı işletmede kaydın markası eksik./me yanıtındaki sto_ kimliğini store alanına yazın.
403store_forbiddenAnahtar başka markaya yazamaz.Anahtarın kendi markasını seçin; marka sınırı gövdeyle genişletilmez.
403reference_namespace_forbiddenDış numaranın ad alanı başka bağlantıya ait.namespace alanını atlayın veya /me içindeki grt_ kimliğini kullanın.
409external_reference_conflictBu dış numarayla stok belgesi zaten açılmış.Ağ tekrarında özgün Idempotency-Key değerini ve gövdeyi kullanın.

Ortak hatalar (anahtar, izin, istek biçimi, hız sınırı, tekrar anahtarı) her uçta aynıdır: Hata kodları › Ortak hatalar.