Ana içeriğe geç

save-product

POST /api/{team}/gateway/save-product

Kanal içindeki ürün kataloğuna ürün kaydeder. Aynı channel_token ve channel_reference ile bir ürün varsa yeni ürün açılmaz, mevcut ürün güncellenir. Sipariş kalemleri ve abonelikler ürünleri bu channel_reference ile adlandırır. Ödeme uçları katalogdaki ürünü değiştirmez.

Kimlik doğrulama​

X-Api-Key, X-Signature, Content-Type: application/json. Ayrıntılar: Kimlik Doğrulama ve İmza.

İstek​

{
"product": {
"channel_token": "6f1c2e7a-4b3d-4c8e-9a61-2f5d7b0c3e14",
"channel_reference": "PREMIUM-AYLIK",
"name": "Premium üyelik",
"type": "recurring",
"amount": "149.90",
"tax_rate": "20",
"period": "monthly"
}
}
AlanTipZorunluAçıklama
product.channel_tokenstring (UUID)evetÇalışma alanınıza ait kanalın token'ı.
product.channel_referencestringevetÜrünün sizin sisteminizdeki kimliği. En çok 255 karakter.
product.namestringevetEn çok 255 karakter.
product.typestringevetsimple ya da recurring.
product.amountstring | numberevetBirim fiyat (KDV dahil). En az 0.01, en çok iki ondalık.
product.tax_ratestring | numberevetFiyatın içindeki KDV oranı. 0–100, en çok iki ondalık.
product.periodstringkoşullumonthly ya da yearly. type: recurring için zorunlu; simple üründe yok sayılır ve null kaydedilir.
product.currencystringhayırTRY, USD, EUR, GBP. Gönderilmezse TRY.
product.is_activebooleanhayırSatışta mı. Gönderilmezse true.

product içinde bu alanlar dışında bir anahtar gönderilirse istek 422 ile reddedilir.

SDK örnekleri​

use Gurmehub\Odemehub\Request\SaveProduct;

$product = $client->saveProduct(new SaveProduct(
channelReference: 'PREMIUM-AYLIK',
name: 'Premium üyelik',
type: 'recurring',
amount: '149.90',
taxRate: '20',
period: 'monthly',
));

Yanıt​

{
"result": {
"successful": true,
"message": null
},
"product": {
"channel_token": "6f1c2e7a-4b3d-4c8e-9a61-2f5d7b0c3e14",
"channel_reference": "PREMIUM-AYLIK",
"name": "Premium üyelik",
"type": "recurring",
"amount": "149.90",
"currency": "TRY",
"tax_rate": "20.00",
"period": "monthly",
"is_active": true
}
}
AlanTipAçıklama
product.channel_tokenstringÜrünün kanalı.
product.channel_referencestringÜrünün kimliği.
product.namestring
product.typestringsimple ya da recurring.
product.amountstringİki ondalıklı birim fiyat.
product.currencystring
product.tax_ratestringİki ondalıklı KDV oranı.
product.periodstring | nullrecurring üründe monthly/yearly; simple üründe null.
product.is_activeboolean

Fiyat değişikliği​

  • Açık siparişler, oluşturuldukları andaki kalem fiyatlarını korur.
  • Abonelik dönemlerinin tutarı dönem açılırken katalogdan hesaplanır; değişiklik bir sonraki dönemden itibaren geçerli olur.
  • Satıştan kaldırmak için is_active: false gönderin. Ürün silme ucu yoktur. Satışta olmayan ürünle abonelik açılamaz.

HTTP durum kodları​

KodDurum
200Ürün kaydedildi ya da güncellendi.
401API anahtarı ya da imza geçersiz.
403Çalışma alanı işlem yapamıyor.
422Doğrulama hatası.