Sipariş indirimi

Sipariş indirimi

POST /order-discount

Bir siparişe indirim uygulamak için kullanılır. İndirim sipariş geneline, belirli kalemlere veya ikisine birden uygulanabilir.

İndirim tutarı doğrudan gönderilebileceği gibi, Adisyo'da tanımlı bir indirimin ID'si de gönderilebilir. Tanımlı indirim kullanıldığında tutar Adisyo tarafından hesaplanır. Tanımlı indirimlerin listesi için İndirim listesi sayfasına bakabilirsiniz.

İndirimin uygulandığı yer

İsteğin kökündeki discountId, discountAmount ve discountRate alanları sipariş geneline uygulanır.

orderDetails listesindeki alanlar ise ilgili kaleme uygulanır.

Gönderilmeyen taraf korunur: yalnızca orderDetails gönderildiğinde siparişin mevcut genel indirimi değişmez, yalnızca kök alanlar gönderildiğinde kalem indirimleri değişmez.

Örnek istek

Sipariş geneline indirim
curl -X POST 'https://ext.adisyo.com/api/External/v2/order-discount' \
  --header "x-api-key: ..." \
  --header "x-api-secret: ..." \
  --header "x-api-consumer: ..." \
  --header 'Content-Type: application/json' \
  --data '{
      "orderId": 4815162342,
      "discountAmount": 50
  }'
Tanımlı indirim ile
curl -X POST 'https://ext.adisyo.com/api/External/v2/order-discount' \
  --header "x-api-key: ..." \
  --header "x-api-secret: ..." \
  --header "x-api-consumer: ..." \
  --header 'Content-Type: application/json' \
  --data '{
      "orderId": 4815162342,
      "discountId": 34
  }'
Kalem bazlı indirim
curl -X POST 'https://ext.adisyo.com/api/External/v2/order-discount' \
  --header "x-api-key: ..." \
  --header "x-api-secret: ..." \
  --header "x-api-consumer: ..." \
  --header 'Content-Type: application/json' \
  --data '{
      "orderId": 4815162342,
      "orderDetails": [
        { "orderDetailId": 671962, "discountId": 77 },
        { "orderDetailId": 671963, "discountAmount": 25 }
      ]
  }'

İstek Parametreleri

ParametreData TipiAçıklama
orderIdNumberİndirim uygulanacak siparişin Adisyo ID'si
discountIdNumber?Sipariş geneline uygulanacak tanımlı indirimin ID'si. Gönderildiğinde tutar/oran tanımdan hesaplanır
discountAmountDecimal?Sipariş geneline uygulanacak indirim tutarı
discountRateDecimal?Sipariş geneline uygulanacak indirim oranı (0-100)
orderDetailsArray?Kalem bazlı indirimler

orderDetails parametreleri

ParametreData TipiAçıklama
orderDetailIdNumberİndirim uygulanacak sipariş kaleminin Adisyo ID'si. Sipariş detayları yanıtındaki products[].id alanından alınır
discountIdNumber?Kaleme uygulanacak tanımlı indirimin ID'si
discountAmountDecimal?Kaleme uygulanacak indirim tutarı
discountRateDecimal?Kaleme uygulanacak indirim oranı (0-100)

Kurallar

  • İstekte en az bir indirim bulunmalıdır: ya sipariş geneli için ya da en az bir kalem için.
  • discountId ile birlikte discountAmount veya discountRate gönderilirse discountId önceliklidir, diğerleri dikkate alınmaz.
  • discountId gönderilmediğinde discountAmount ve discountRate aynı anda gönderilemez.
  • Aynı orderDetailId listede birden fazla kez gönderilemez.
  • Kaleme uygulanan indirim, kalemin tutarını aşamaz.
  • Toplam indirim (kalem indirimleri + sipariş geneli indirim) siparişin tutarını aşamaz.

Örnek cevap

İndirim uygulandı cevabı
{
  "status": 100,
  "message": "İndirim başarıyla uygulandı."
}