Sipariş kaydet
POST /openapi/Order/SaveOrder — TMS API · Sipariş ve Gönderi Kaydı
Bir veya daha fazla siparişi gönderileriyle (konsinye) birlikte TMS'e aktarır.
İstek kuyruğa alınır ve bir ticketNumber döner; kaydın sonucunu
GetTicketNumberStatus ile sorgulayın.
Doğrulama kuralları (kayıt sırasında uygulanır, sonuç ticket'ta görünür):
orders[].orderNumber,orders[].orderDateveorders[].customerInfo.customerCodezorunludur.orders[].consignmentsboş olamaz.consignments[].locationCodeboşsa hesabın varsayılan lokasyonu kullanılır; varsayılan lokasyon tanımlı değilse hata verir.salesChannelCodeverilirse geçerli bir satış kanalı olmalıdır.- Aynı sipariş numarası daha önce kaydedildiyse
Sipariş zaten mevcuthatası alınır.
Organizasyonunuz için asenkron kayıt kapalıysa sipariş anında işlenir ve yanıtta synchronous: true döner.
İstek gövdesi
orders(object[], zorunlu): Kaydedilecek siparişler.orders.orderDate(string<date-time>, zorunlu): Sipariş tarihi.orders.totalPrice(number): Sipariş tutarı.orders.orderNumber(string, zorunlu): Sipariş numarası (hesap içinde tekil).orders.consignments(object[], zorunlu): Siparişin gönderileri; boş olamaz.orders.consignments.attr1(string): Serbest alan 1.orders.consignments.attr2(string): Serbest alan 2.orders.consignments.attr3(string): Serbest alan 3.orders.consignments.attr4(string): Serbest alan 4.orders.consignments.attr5(string): Serbest alan 5.orders.consignments.attr6(string): Serbest alan 6.orders.consignments.attr7(string): Serbest alan 7.orders.consignments.attr8(string): Serbest alan 8.orders.consignments.attr9(string): Serbest alan 9.orders.consignments.attr10(string): Serbest alan 10.orders.consignments.weight(number): Ağırlık (kg).orders.consignments.products(object[]): Gönderideki ürünler.orders.consignments.vendorId(integer): Satıcı kimliği (pazaryeri satıcı gönderisi).orders.consignments.totalPrice(number): Gönderi tutarı.orders.consignments.carrierCode(string): Taşıyıcı kodu. Boşsa taşıyıcı hesap kurallarına göre seçilir.orders.consignments.currentPrice(number): Kapıda ödemede tahsil edilecek tutar.orders.consignments.isChangeable(boolean): Taşıyıcı sonradan değiştirilebilir mi.orders.consignments.locationCode(string): Çıkış lokasyonu kodu. Boşsa hesabın varsayılan lokasyonu kullanılır.orders.consignments.senderAddress(oneOf): Gönderici adresi (pazaryeri müşteriden müşteriye gönderilerde).orders.consignments.totalQuantity(integer): Gönderideki ürün adedi.orders.consignments.toLocationCode(string): Varış lokasyonu kodu (mağazaya/depoya transferde).orders.consignments.isSendCargoData(boolean): Gönderi verisi taşıyıcıya iletilsin mi.orders.consignments.isVendorPackage(boolean): Satıcı (vendor) gönderisi mi.orders.consignments.paymentTypeCode(string): Ödeme tipi kodu (bkz.GetPaymentTypes).orders.consignments.pickUpPointCode(string): Teslimat noktası (pick-up point) kodu.orders.consignments.shippingAddress(object)orders.consignments.deliverySlotCode(string): Teslimat zaman dilimi kodu.orders.consignments.deliveryTypeCode(string): Teslimat tipi kodu.orders.consignments.volumetricWeight(number): Desi.orders.consignments.consignmentNumber(string): Gönderi (konsinye/paket) numarası.orders.consignments.isStatusTrackManuel(boolean): Durum takibi elle (Durum Bildirimi uçlarıyla) yapılacak mı.orders.consignments.vendorAgreementTypeId(integer): Satıcı anlaşma tipi kimliği.orders.consignments.pickUpPointCompanyCode(string): Teslimat noktası firma kodu.orders.consignments.salesChannelTrackingNumber(string): Satış kanalının (pazaryerinin) verdiği takip numarası.orders.consignments.saleChannelConfigurationKey(string): Satış kanalı yapılandırma anahtarı.orders.consignments.estimatedPackagingCompletionDate(string<date-time>): Kargoya teslim tarihi.orders.consignments.expectedPackagingCompletionDueDate(string<date-time>): Pazaryerinin beklediği/anlaşılan kargoya teslim tarihi.
orders.customerInfo(object, zorunlu)orders.customerInfo.customerCode(string): Müşterinin sizin sisteminizdeki tekil kodu.orders.customerInfo.customerSegmentCode(string): Müşteri segment kodu (segment bazlı taşıyıcı kuralları için).
orders.totalQuantity(integer): Toplam ürün adedi.orders.sendSmsNotification(boolean): Alıcıya SMS bildirimi gönderilsin mi.orders.sendEmailNotification(boolean): Alıcıya e-posta bildirimi gönderilsin mi.orders.saleChannelConfigurationKey(string): Satış kanalı yapılandırma anahtarı.
clientCode(string, zorunlu): Organizasyon kodu.accountCode(string, zorunlu): Hesap kodu.salesChannelCode(string): Satış kanalı/pazaryeri kodu.
Yanıtlar
- 200: Kayıt kuyruğa alındı (ya da senkron işlendi)
- 400: Hesap doğrulanamadı ya da senkron kayıt hata verdi
- 401: Token yok, geçersiz ya da süresi dolmuş (gövdesiz yanıt).
- 429: İstek sınırı aşıldı.