Ana içeriğe geç

Tedarikçi Sipariş Oluşturma - createPaysSupplierShipping()

Tedarikçi Sipariş Oluşturma İşlemi

Horoz Lojistik Yurtiçi Dağıtım Entegrasyonu üzerinde bulunan createPaysSupplierShipping metodu, Horoz sisteminde tanımlı bir carinin yine Horoz ile anlaşması bulunan bir satıcının satış platformunun üzerinden yaptığı satışlarının sipariş verilerinin ilgili satış platformu tarafından ilgili metoda gönderilecek olan, göndericisinden alıcısına taşınacak, bünyesinde bir yada birden fazla koli, paket, palet vb taşınacak fiziksel ürün bulunduran bir sevk emri oluşturmak için kullanılması gereken web servis metodudur.

Horoz Lojistik ile Yurtiçi Dağıtım Entegrasyonu için tedarikçi öder anlaşması olan carinin ürünlerinin satışını yaptığı yine Horoz Lojistik ile anlaşması olan e-ticaret satıcısı, ilgili carinin anlaşması kapsamında carinin deposundan carinin son tüketicilerine yapılacak ürün çıkışları için createPaysSupplierShipping metodunu kullanarak Horoz Lojistik Yurtiçi Dağıtım Entegrasyonu üzerinden Horoz sistemine tedarikçi öder tipinde sevk emri verisi oluşturabilir.

İstemci tarafından Horoz Lojistik sistemine gönderilen tedarikçi öder tipindeki sevk emri bir iş emri niteliğinde olup, Horoz Lojistik Yurtiçi Dağıtım Operasyon Birimi tarafından yapılan planlama ve mal kabul işlemlerinin akabinde operasyon yaşam döngüsüne girerek, satıcısından son tüketicisine taşınacak bir sipariş niteliği kazanır. createPaysSupplierShipping() metodu ile ilgili önemli bilgiler ve Horoz sisteminde tedarikçi öder tipinde sevk emri oluşturulurken dikkat edilmesi gerekenler liste halinde aşağıda istemcilerin bilgisine sunulmuştur.

  • createPaysSupplierShipping() metodu POST yöntem ile JSON formatta veri alan, bir RESTful web servis metodudur.

  • createPaysSupplierShipping() metodu ile Horoz sistemine sevk emri gönderimi yaparken, siparişe ait bilgiler metodun body kısmına JSON veri tipinde geçilmelidir. İstemciye ait processKey bilgisi metodun header kısmına parametre tipinde geçilmelidir. createPaysSupplierShipping() metodu ile yapılan gönderim UTF-8 olarak encode edilerek Horoz Lojistik Yurtiçi Dağıtım Entegrasyonu Web servisine iletilmelidir.

  • createPaysSupplierShipping() metodu bir ana sevk emri verisi yapısı ve bu ana sevk emri verisi yapısının altında bir dizi listesi olarak içeriğinde ürün bilgileri bulunan bir detay sevk emri yapısından oluşur. Bir sevk emri yapısı içerisinde, son tüketicinin satıcıya verdiği siparişe ait sipariş numarası, gönderen bilgileri, alıcı bilgileri, toplam adet, toplam desi bilgileri ve bu sevk emrinin detayında ilgili siparişe ait bir veya birden fazla ürünü niteleyen ürün kodu, ürün adı, ürün adedi, ürün desisi, ürün ağırlığı, ürün kategorisi bilgilerini içeren ürün bilgileri bulunur.

  • createPaysSupplierShipping() metodu ile Horoz sistemine istemci tarafından bir sevk emri iletilirken, senderCity, senderCounty, recipientCity ve recipientCounty alanlarına istemci tarafından geçilecek bilgilerin Horoz Lojistik sisteminde tanımlı il ve ilçe bilgileri olması gerekir. Aksi halde istemciye createPaysSupplierShipping() metodundan hata döner. İstemci Horoz Lojistik sisteminde tanımlı il ve ilçe bilgilerini Horoz Lojistik Yurtiçi Dağıtım Entegrasyonu içerisinde bulunan, GET yöntem ile çalışan listCounties() metodunu kullanarak elde edebilir. Horoz Lojistik sisteminde tanımlı il-ilçe bilgileri, Türkiye Cumhuriyeti İçişleri Bakanlığı Türkiye Mülki İdare Bölümleri Envanteri sisteminden alınarak kümelenip oluşturulmuştur. Mevcut veri aralıklar ile manuel olarak kontrol edilmektedir.

  • createPaysSupplierShipping() metodu ile Horoz sistemine istemci tarafından tedarikçi öder tipinde bir sevk emri iletilirken, Horoz Yurtiçi Dağıtım Entegrasyonu Web servisine gönderilecek istek içerisindeki totalDesi ve shipmentCount alanlarına girilen siparişin bünyesindeki ürünlere ait toplam desi ve toplam adet bilgileri shippingDetail dizi listesi içerisine item olarak geçilen ürün bilgilerindeki desi ve quantity alanlarına geçilen ürün bazındaki desi ve adet bilgileri ile uyumlu olmalıdır. Sipariş gönderimi yapılırken createShipping() metodunun içerisindeki master ve detay bilgilerinde bulunan adet ve desi uyum ilişkisi için hatalı ve beklenen birer örnek gösterim aşağıdaki tablolarda belirtilmiştir.

Ana Kayıt;

REQUESTNUMBERSENDERTITLERECIPIENTTITLESHIPMENTCOUNTTOTALDESI
123456SATICI UNVANALICI UNVAN2320,000

Hatalı Kayıt Detayı;

PRODUCTCODEPRODUCTNAMEQUANTITYWEIGHTINKGTOTALDESIPRODUCTCATEGORY
PRODUCTCODE-1PRODUCTNAME-11,00020,650160,000YATAK
PRODUCTCODE-1PRODUCTNAME-11,00020,650160,000YATAK

Doğru Kayıt Detayı;

PRODUCTCODEPRODUCTNAMEQUANTITYWEIGHTINKGTOTALDESIPRODUCTCATEGORY
PRODUCTCODE-1PRODUCTNAME-12,00041,300320,000YATAK
  • createPaysSupplierShipping() metodu ile Horoz sistemine istemci tarafından tedarikçi öder tipinde bir sevk emri iletilirken, Horoz Yurtiçi Dağıtım Entegrasyonu Web servisine gönderilecek istek içerisindeki alanlardan enum veri tipi dışında değer alan shippingType alanı dışındaki string veri tipinde değer alan diğer tüm alanlara geçilecek verilerin UPPERCASE ve Türkçe karakter olarak geçilmesi beklenir.

  • createPaysSupplierShipping() metodu ile Horoz sistemine istemci tarafından bir sevk emri iletilirken, Horoz Yurtiçi Dağıtım Entegrasyonu Web servisine gönderilecek istek içerisindeki alanlardan requestNumber, shipmentCount, totalDesi, quantity, desi ve weightInKg alanları mutlaka dolu geçilmelidir.

  • İstemci tarafından createPaysSupplierShipping() metodu ile Horoz sistemine iletilen tedarikçi öder tipindeki sevk emirleri içerisindeki siparişlere ait bilgilerden özellikle desi bilgilerini niteleyen alanlara (totalDesi, desi), siparişlerin bünyesindeki ürünlere ait gerçek desi bilgileri geçilmelidir. Aksi halde sevk emrinin onaylanıp, mal kabul işlemi öncesinde araç planlaması yapılacak aşamada lojistik operasyon için sorun yaşanacaktır. Bu nedenle entegrasyon üzerinden iletilecek sevk emri verisinin gerçekten fiziksel olarak taşınacak ürünlere ait adet ve desi bilgilerini içermesi gerekir.

  • İstemci tarafından createPaysSupplierShipping() metodu ile Horoz sistemine iletilen sevk emirleri içerisindeki ürünlerin bilgileri geçilirken, eğer istemcide ilgili ürünler için ağırlık bilgisi mevcut ise weightInKg alanına ürünlere ait ağırlık bilgisi, desi alanına desi bilgisi geçilmelidir. Eğer istemcide fiziksel olarak taşınabilir ürünlere ait ağırlık bilgisi mevcut değilse desi ve weightInKg alanlarının her ikisinede ürün bazında birim desi bilgilerinin adet ile çarpılmış hallerinin geçilmesi beklenir.

  • createPaysSupplierShipping() metodu ile Horoz sisteminde istemci tarafından tedarikçi öder tipinde bir sevk emri oluşturulabilmesi için Horoz Lojistik sisteminde tanımlı ilgili tedarikçiye ait cari kodu bilgisinin Horoz Lojistik tedarikçi öder sistemine daha evvelden kayıt edilmesi gerekir. Bu kayıt işlemi için tedarikçi öder entegrasyonu için veri gönderimi yapacak e-ticaret platformunun sorumlusu, Horoz Lojistik müşteri temsilcileri ile irtibata geçebilirler. Akabinde Horoz Lojistik müşteri temsilcileri tarafından ilgili cari için talep edilen bilgiler ile Horoz Lojistik müşteri temsilcileri carinin tedarikçi öder entegrasyonuna uygunluğunu kontrol ederek, tanımlama işlemini gerçekleştirebilir.

  • createPaysSupplierShipping() metodu ile Horoz sisteminde istemci tarafından tedarikçi öder tipinde bir sevk emri oluştururken 2 tip gönderim yapılabilir. Firmanın tedarikçisinden, tedarikçinin firma üzerinden tedarikçiye sipariş veren son müşterisine yapılan gönderimler için shippingType alanına PaySupplier, senderCode alanına tedarikçi kodu, recipientCode alanına 0 (sıfır) geçilmelidir. Alıcıya yapılan gönderimlerde alıcı bilgilerinin1 doldurulması beklenir, gönderici bilgileri için sadece senderCode alanına tedarikçi kodu bilgisi geçilerek, diğer gönderici bilgilerinin2 boş bırakılması yeterli olur.

  • Firmanın tedarikçinin firma üzerinden tedarikçiye sipariş veren son müşterisinden, firmanın tedarikçisine yapılan gönderimler için shippingType alanına PaysSupplierReturn, recipientCode alanına tedarikçi kodu, senderCode alanına 0 (sıfır) geçilmelidir. Tedarikçiye yapılan iade gönderimlerinde gönderici bilgilerinin2 doldurulması beklenir, alıcı bilgileri için sadece recipientCode alanına tedarikçi kodu bilgisi geçilerek, diğer alıcı bilgilerinin1 boş geçilmesi yeterli olacaktır.

  • Tedarikçi öder entegrasyonu kapsamında sevkiyatın sağlıklı bir şekilde yürütülmesi için yukarıda paylaşılan bilgilere istinaden ilgili alanların eksiksiz ve beklenen biçimde geçilmesine özen gösterilmelidir.


POST createPaysSupplierShipping()

Parametre Açıklamaları & Kuralları

Aşağıdaki tabloda createPaysSupplierShipping() işleminin giriş ve çıkış parametreleri ve bu parametrelerin tür ve formatları listelenmiştir.

AlanlarAçıklamaVeri TipiUzunlukAlan YeriZorunluluk
processKeyİstemci için tanımlanan processKey bilgisistring100HeaderZorunlu
requestNumberSipariş numarasıstring50inBody RequestZorunlu
customerRefNoSipariş numarasıstring50inBody RequestZorunlu
senderCodeGönderen koduinteger-inBody RequestZorunlu
senderTitleGönderen unvanıstring100inBody RequestZorunlu
senderCityGönderen il adıstring50inBody RequestZorunlu
senderCountyGönderen ilçe adıstring50inBody RequestZorunlu
senderAdressGönderen adresstring500inBody RequestZorunlu
senderPhoneNumberGönderen telefon numarasıstring20inBody RequestZorunlu
senderEmailGönderen emailstring100inBody RequestOpsiyonel
recipientCodeAlıcı koduinteger-inBody RequestZorunlu
recipientTitleAlıcı unvanıstring100inBody RequestZorunlu
recipientCityAlıcı il adıstring50inBody RequestZorunlu
recipientCountyAlıcı ilçe adıstring50inBody RequestZorunlu
recipientAddressAlıcı adresstring500inBody RequestZorunlu
recipientPhoneNumberAlıcı telefon numarasıstring20inBody RequestZorunlu
recipientEmailAlıcı emailstring100inBody RequestOpsiyonel
taxOfficeVergi dairesistring20inBody RequestOpsiyonel
taxNumberVergi numarasıstring20inBody RequestOpsiyonel
shipmentCountToplam adetinteger-inBody RequestZorunlu
totalDesiToplam desifloat-inBody RequestZorunlu
shippingTypeSevk tipistring20inBody RequestZorunlu
requestDateİstek gönderim tarihiDATEYYYY-MM-DDinBody RequestZorunlu
requestedDeliveryDateİstenilen teslimat tarihiDATEYYYY-MM-DDinBody RequestZorunlu
shippingDetail[]Sevk detayıArrayList-inBody RequestZorunlu
productCodeÜrün kodustring50inBody RequestZorunlu
productNameÜrün adıstring100inBody RequestZorunlu
quantityAdetinteger-inBody RequestZorunlu
weightInKgAğırlıkfloat-inBody RequestZorunlu
desiDesifloat-inBody RequestZorunlu
productCategoryÜrün kategorisistring100inBody RequestZorunlu

Servis Cevapları


Response KoduResponse MesajıAçıklama
STA-100Kayit islemi basariliSevkiyat oluşturma işleminin başarılı olduğunu ifade eder.
ERR-20001HATALI IŞLEM ANAHTARIGeçilen processKey bilgisinin yanlış olduğunu belirtir.
ERR-20002EKSİK PARAMETRE: TALEP NUMARASIrequestNumber bilgisinin eksik girildiğini ifade eder.
ERR-20002GİRİLEN DEĞER ÇOK UZUN: Alan AdıBelirtilen alana girilen değerin çok uzun olduğunu belirtir.
ERR-20003BU TALEP NUMARASI SISTEMDE MEVCUT - Key: XXX TalepNo: XXXDaha önce aynı requestNumber bilgisi ile bir sevkiyat oluşturulduğunu belirtir.
ERR-20005GEÇERSİZ GÖNDEREN BİLGİSİsenderCode alanına girilen değerin Horoz Sisteminde tanımlı olmadığını belirtir.
ERR-20006GEÇERSİZ ALICI BİLGİSİrecipientCode alanına girilen değerin Horoz Sisteminde tanımlı olmadığını belirtir.
ERR-20007EKSİK PARAMETRE: TOPLAM ADET/DESİtotalDesi ve shipmentCount alanlarının boş geçildiğini ifade eder.
ERR-20008EKSİK PARAMETRE: KARGO BİLGİLERİshippingDetail arrayi altındaki alanlarda eksik olduğunu ifade eder.
ERR-20009DESI BILGISI SIFIR OLAMAZ.desi alanlarına girilen değerin 0'dan büyük olması gerekir.
ERR-20012TOPLAM DESI SIFIR OLAMAZtotalDesi alanına girilen değerin 0'dan büyük olması gerekir
ERR-20056shippingType BİLGİSİ BOŞ GEÇİLEMEZ.shippingType alanına değer girilmesi gerektiğini belirtir.
ERR-20071BU TALEP DAHA ÖNCE GÖNDEREN İL/İLÇE YADA ALICI İL/İLÇE BOZUK OLARAK SİSTEME GÖNDERİLMİŞ. KAYDI DÜZELTİP TEKRAR DENEYİNİZİstekte geçilen requestNumber bilgisi ile daha önce il ve ilçe bilgileri hatalı bir kayıt oluşturulduğunu ve il ilçe bilgilerini doğru bir şekilde girerek aynı requestNumber ile kaydın oluşturulması gerektiğini ifade

Dip Notlar

Footnotes

  1. (recipientTitle, recipientCity, recipientCounty, recipientAddress, recipientPhone…) 2

  2. (senderTitle, senderCity, senderCounty, senderAddress, senderPhone…) 2