Skip to main content
Sipariş, bir başlık ve bir ya da daha fazla satırdan oluşur. Alış siparişleri (OrderType 1) ve satış siparişleri (OrderType 2) aynı endpoint’leri kullanır.
API tutarları hesaplamaz ve tutarlı olup olmadıklarını denetlemez. Satır tutarları, indirim tutarları, KDV, ek vergiler, tevkifat, sipariş toplamları ve ağırlıklı kur ortalaması gönderdiğiniz gibi kaydedilir. Hesap kuralları için teklif hesaplamaları sayfasına bakın; sipariş satırları teklif satırlarıyla aynı alanlara sahiptir. Tek istisna satırın ana birim miktarıdır, onu API hesaplar.

Zorunlu alanlar

  • OrderType: 1 alış siparişi, 2 satış siparişi. Cari hareketi olan siparişte değiştirilemez (6015).
  • OrderNumber: şirkette aynı OrderType içinde benzersiz, en fazla 10 karakter (6002). Oluştururken "Next" gönderilirse numara şirketin numara serisinden üretilir: alış siparişleri için ALSİPNO, satış siparişleri için SATSİPNO. Güncellemede "Next" gönderilemez (6003).
  • Date: sipariş tarihi. Saat de gönderirseniz sipariş saati olarak yazılır, göndermezseniz o anki saat kullanılır.
  • CustomerCode: kullanıcının görebildiği bir cari. Sipariş carinin adresiyle yazılır: carinin fatura adresi varsa o, yoksa ilk adresi.
  • CurrencyCode: sipariş dövizi.
  • Lines: en az bir satır (6012).
DueDays (vade günü) ve AverageExchangeRate (satırların ağırlıklı ortalama kuru, varsayılan 1) siparişle birlikte saklanır; ikisi de aşağıdaki cari hareketin vadesi ve kuru için kullanılır.

Cari hareket

CreateCustomerMovement alanı siparişin carinin hesabına yansıyıp yansımayacağını belirler. Ayrı bir istek ya da alan göndermeniz gerekmez, hareket siparişle birlikte, aynı işlemde yazılır. true iken sipariş tutarı (GrandTotal) carinin hesabına şu şekilde yazılır: Hareketin tarihi, saati, belge numarası (sipariş no), açıklaması, dövizi (CurrencyCode) ve kuru (AverageExchangeRate) siparişten alınır. Vade tarihi Date + DueDays’tir; DueDays 0 ise vade tarihi boş kalır. Yanıtta CreateCustomerMovement, siparişin bir cari hareketi olup olmadığını gösterir. Güncellemede hareket, isteğe göre eşitlenir:
Hareket bir tahsilat ya da ödeme ile kapatılmışsa (kısmen olsa bile) bu hareketin carisi, dövizi ve tutarı değiştirilemez, hareket silinemez ve hareketi olan sipariş silinemez. İşlem iptal edilir ve şu hatalardan biri döner: alış siparişi için 6016, satış siparişi için 6017. Tutarı, dövizi ve carisi aynı kalan bir güncelleme kapatılmış hareketi etkilemez, kabul edilir.

Onay ve durum

Sipariş oluşturulurken aşağıdakiler otomatik atanır, bunlar için istekte bir alan yoktur:
  • Onaylar: Şirketin aktif sipariş onay tanımlarından, GrandTotal tutarı tanımın asgari tutarından büyük olan ve sipariş tipine uyan (tanım hem alış hem satış için ya da yalnızca siparişin tipi için geçerli) her biri için sıra numarasına göre “beklemede” bir onay kaydı oluşur.
  • Durum: Şirketin varsayılan sipariş durumu tanımlıysa sipariş bu durumla başlar. Tanımlı değilse durum boş kalır.
Yanıttaki StatusId ve StatusName siparişin güncel durumunu gösterir. Güncelleme ve kısmi güncelleme onayları ve durumu değiştirmez, onaylar GrandTotal değişse bile yeniden hesaplanmaz.

Satırlar

  • ProductCode ve UnitCode zorunludur. Birim, ürünün kendi birimlerinden biri olmalıdır (ana birimi ya da 2./3. birimi).
  • Quantity sıfırdan büyük olmalı; UnitPrice negatif olamaz.
  • Satırın CurrencyCode alanı verilmezse sipariş dövizi kullanılır; ExchangeRate satır dövizinin kurudur.
  • Discounts, satırın indirim oranlarının listesidir. Liste sırasıyla art arda uygulanır: 10, 10 ve 10 satırda %27,1’lik indirim eder. Satırda indirim yoksa liste boş bırakılır.
  • LineGroupName isteğe bağlıdır ve satır grupları tanımından gelir.
  • WarehouseName isteğe bağlıdır ve şirketin depolarından biri olmalıdır (6112).
  • Satırların ID’si yoktur: listedeki sıraları siparişteki sıralarıdır ve güncelleme bütün satırları değiştirir.

Ana birim miktarı

Satır miktarı (Quantity) satırın birimindedir. Yanıttaki MainUnitQuantity aynı miktarın ürünün ana birimi cinsinden karşılığıdır ve API tarafından hesaplanır; istekte göndermezsiniz.
  • UnitCode ürünün ana birimiyse MainUnitQuantity Quantity’ye eşittir.
  • Ürünün 2. ya da 3. birimiyse önce o birimin çarpanı bulunur: üründe o birim için tanımlı miktar, karşı miktara bölünür (karşı miktar 0 ise 1 alınır). MainUnitQuantity = Quantity / çarpan.
Örneğin üründe 2. birim için 100 miktar ve 3 karşı miktar tanımlıysa çarpan 33,33’tür ve 2. birimden 1000 adetlik bir satır 30 ana birim eder. Ürünün ilgili birimi için miktar tanımlı değilse (0) ana birim miktarı hesaplanamaz ve satır 6113 ile reddedilir.

Düzenleme ve silme

Düzenleme ve silme siparişin durumuna ya da başka belgelere (irsaliye, fatura) aktarılmış olmasına göre kısıtlanmaz. Kısıtlar yalnızca şunlardır: kapatılmış cari hareket (yukarıya bakın) ve başka kayıtların (örneğin bir teklif ya da fırsat) bu siparişe bağlı olması (6014).

Paylaşım

SharingCode siparişi kimlerin görebileceğini sınırlar: boşsa herkes görür, doluysa kullanıcının paylaşım kodlarından biri olmalıdır (6011). Kullanıcının göremediği siparişler 404 döner.