İndirim Kuponları
İndirim kuponlarını tanımlayan, çoğaltan ve koşullarını yöneten yedi uç.
Genel Bakış
Kuponlar müşterinin sepette ya da faturada kullandığı indirim kodlarıdır. Bir kupon ya yüzde ya da sabit tutar indirir; hangisi olduğu tip alanında yazar ve karşılığı gelen alan doldurulur.
Kuponun ne zaman geçerli olduğu üç şeye bağlıdır: kayıtlı durumu, tarih aralığı ve kullanım sınırı. Liste ucu bu üçünü birleştirip gerçek durumu ayrıca döndürür; müşterinin karşılaştığı da odur.
Koşullar bundan sonrası için: hangi ürünlerde, hangi dönemlerde, hangi müşteri grubunda ve en az ne kadarlık sepette geçerli olduğu. Ürün değerlerinin listesi ayrı bir uçtan alınır.
Referans
Kuponları Listeleme
İndirim kuponlarını gerçek durumlarıyla döndürür.
curl 'https://panel.ornek.com/api/v1/admin/financial/coupons?status=active' \
-H "Authorization: Bearer $API_KEY"const url = new URL('https://panel.ornek.com/api/v1/admin/financial/coupons');
url.searchParams.set('status', 'active');
const res = await fetch(url, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/coupons?' . http_build_query(['status' => 'active']));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Iki durum alani vardir: kayitli olan ile GERCEK olan. Musteriyi ikincisi ilgilendirir.
$rows = Api::Financial()->GetCoupons()['data'];
$live = array_filter($rows, fn ($c) => $c['effective_status'] === 'active');Kupon Oluşturma
Yeni bir indirim kuponu tanımlar.
percentage ya da amount. Öntanımlı olarak yüzde.curl -X POST 'https://panel.ornek.com/api/v1/admin/financial/coupons' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"code":"HOSGELDIN30","type":"percentage","rate":30,"max_uses":50}'const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/coupons', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
code: 'WELCOME30',
type: 'percentage',
rate: 30,
max_uses: 50,
due_date: '2026-12-31',
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/coupons');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'code' => 'WELCOME30',
'type' => 'percentage',
'rate' => 30,
'max_uses' => 50,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Kupon ETKIN dogar ve bitis tarihi verilmezse SURESIZ olur; ikisini birlikte dusunun.
Api::Financial()->CreateCoupon([
'code' => 'WELCOME30',
'rate' => 30,
'max_uses' => 50,
'due_date' => '2026-12-31',
]);Ürün Ağacını Getirme
Kuponun bağlanabileceği ürün ve kategorilerin listesini döndürür.
curl 'https://panel.ornek.com/api/v1/admin/financial/coupons/products-hierarchy' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/coupons/products-hierarchy', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/coupons/products-hierarchy');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Degerleri koda gomme: kurulumun urunleri degistikce bu liste de degisir.
$options = Api::Financial()->GetCouponProductsHierarchy()['data'];Kupon Detayı
Tek bir kuponu bütün koşullarıyla döndürür.
curl 'https://panel.ornek.com/api/v1/admin/financial/coupons/19' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/financial/coupons/${id}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/coupons/' . $id);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Detayda GERCEK durum alani YOKTUR; onu yalniz liste hesaplar.
$coupon = Api::Financial()->GetCoupon(['id' => $id])['data'];Kuponu Güncelleme
Kuponun gönderdiğiniz alanlarını değiştirir.
percentage ya da amount. Öntanımlı olarak yüzde.curl -X PATCH 'https://panel.ornek.com/api/v1/admin/financial/coupons/19' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"rate":25,"due_date":"2027-01-31"}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/financial/coupons/${id}`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ rate: 25, due_date: '2027-01-31', auto_apply: true }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/coupons/' . $id);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['rate' => 25, 'due_date' => '2027-01-31']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Orani degistirmek GECMIS siparislere islemez; yalniz bundan sonraki kullanimlari etkiler.
Api::Financial()->UpdateCoupon(['id' => $id, 'rate' => 25]);Kuponu Silme
Kuponu kaldırır.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/financial/coupons/19' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/financial/coupons/${id}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/coupons/' . $id);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Silmek yerine KAPATIN: kod tekrar kullanilamaz kalir, gecmis kullanim izi de durur.
Api::Financial()->UpdateCoupon(['id' => $id, 'status' => 'inactive']);Kuponu Çoğaltma
Var olan bir kuponun ayarlarıyla yeni bir kupon açar.
curl -X POST 'https://panel.ornek.com/api/v1/admin/financial/coupons/19/duplicate' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/financial/coupons/${id}/duplicate`, {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
console.log(data.code); // WELCOME30-COPY$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/coupons/' . $id . '/duplicate');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Kopya KAPALI dogar: kodunu ve tarihlerini duzelttikten sonra kendiniz acarsiniz.
$copy = Api::Financial()->DuplicateCoupon(['id' => $id])['data'];
Api::Financial()->UpdateCoupon([
'id' => $copy['id'], 'code' => 'SUMMER30', 'status' => 'active',
]);Tuzaklar
Kayıtlı durum operatörün açıp kapattığı anahtardır; gerçek durum ise tarih aralığı ve kullanım sınırıyla birlikte hesaplanır. Etkin görünen bir kupon süresi dolduğu ya da sınırı dolduğu için çalışmayabilir. Müşteriye ne göreceğini anlatan alan ikincisidir ve yalnız liste ucunda döner.
Bitiş tarihi boş bırakılan bir kupon hiç sona ermez. Kampanya için açılıp unutulan böyle bir kod aylar sonra hâlâ indirim yapar. Kullanım sınırı da sıfırsa kupon hem süresiz hem sınırsızdır; kampanya kuponlarında ikisinden en az birini doldurun.
Çoğaltma ucu yeni kuponu kapalı durumda açar, koduna bir kopya eki ekler, kullanım sayacını sıfırlar ve başlangıç tarihini siler. Yani kopya kullanıma hazır değildir: kodunu düzeltip açmanız gerekir. Aynı kuponu iki kez çoğaltırsanız ek numaralanarak artar.
Kuponun oranını ya da koşullarını değiştirmek bundan sonraki kullanımları etkiler. Daha önce o kuponla kesilmiş siparişler ve faturalar eski oranıyla kalır; bu doğru davranıştır, çünkü o belgeler geçmişi anlatır. Bir hatayı düzeltmek istiyorsanız ilgili faturaya ayrıca dokunmanız gerekir.
Kuponun hangi ürünlerde geçerli olduğunu yazarken kullanılan değerler ayrı bir uçtan gelir ve kurulumun ürün ağacına göre değişir. Bu değerleri koda gömmek, kuponu başka bir kurulumda ya da ürünler değiştiğinde sessizce hiçbir şeye uymayan bir hâle getirir. Her seferinde listeyi okuyun.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.