OrderType 1) ve satış siparişleri (OrderType 2) aynı endpoint’leri kullanır.
Zorunlu alanlar
OrderType:1alış siparişi,2satış siparişi. Cari hareketi olan siparişte değiştirilemez (6015).OrderNumber: şirkette aynıOrderTypeiç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:
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,
GrandTotaltutarı 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.
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
ProductCodeveUnitCodezorunludur. Birim, ürünün kendi birimlerinden biri olmalıdır (ana birimi ya da 2./3. birimi).Quantitysıfırdan büyük olmalı;UnitPricenegatif olamaz.- Satırın
CurrencyCodealanı verilmezse sipariş dövizi kullanılır;ExchangeRatesatı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.LineGroupNameisteğe bağlıdır ve satır grupları tanımından gelir.WarehouseNameisteğ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 birimiyseMainUnitQuantityQuantity’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
0ise1alınır).MainUnitQuantity=Quantity/ çarpan.
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.