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()
metoduPOST
yöntem ileJSON
formatta veri alan, birRESTful
web servis metodudur. -
createPaysSupplierShipping()
metodu ile Horoz sistemine sevk emri gönderimi yaparken, siparişe ait bilgiler metodun body kısmınaJSON
veri tipinde geçilmelidir. İstemciye aitprocessKey
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 istemciyecreatePaysSupplierShipping()
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ışanlistCounties()
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ırkencreateShipping()
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;
REQUESTNUMBER | SENDERTITLE | RECIPIENTTITLE | SHIPMENTCOUNT | TOTALDESI |
---|---|---|---|---|
123456 | SATICI UNVAN | ALICI UNVAN | 2 | 320,000 |
Hatalı Kayıt Detayı;
PRODUCTCODE | PRODUCTNAME | QUANTITY | WEIGHTINKG | TOTALDESI | PRODUCTCATEGORY |
---|---|---|---|---|---|
PRODUCTCODE-1 | PRODUCTNAME-1 | 1,000 | 20,650 | 160,000 | YATAK |
PRODUCTCODE-1 | PRODUCTNAME-1 | 1,000 | 20,650 | 160,000 | YATAK |
Doğru Kayıt Detayı;
PRODUCTCODE | PRODUCTNAME | QUANTITY | WEIGHTINKG | TOTALDESI | PRODUCTCATEGORY |
---|---|---|---|---|---|
PRODUCTCODE-1 | PRODUCTNAME-1 | 2,000 | 41,300 | 320,000 | YATAK |
-
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.
- Alanlar
- Örnek İstek
- Örnek Cevap
Alanlar | Açıklama | Veri Tipi | Uzunluk | Alan Yeri | Zorunluluk |
---|---|---|---|---|---|
processKey | İstemci için tanımlanan processKey bilgisi | string | 100 | Header | Zorunlu |
requestNumber | Sipariş numarası | string | 50 | inBody Request | Zorunlu |
customerRefNo | Sipariş numarası | string | 50 | inBody Request | Zorunlu |
senderCode | Gönderen kodu | integer | - | inBody Request | Zorunlu |
senderTitle | Gönderen unvanı | string | 100 | inBody Request | Zorunlu |
senderCity | Gönderen il adı | string | 50 | inBody Request | Zorunlu |
senderCounty | Gönderen ilçe adı | string | 50 | inBody Request | Zorunlu |
senderAdress | Gönderen adres | string | 500 | inBody Request | Zorunlu |
senderPhoneNumber | Gönderen telefon numarası | string | 20 | inBody Request | Zorunlu |
senderEmail | Gönderen email | string | 100 | inBody Request | Opsiyonel |
recipientCode | Alıcı kodu | integer | - | inBody Request | Zorunlu |
recipientTitle | Alıcı unvanı | string | 100 | inBody Request | Zorunlu |
recipientCity | Alıcı il adı | string | 50 | inBody Request | Zorunlu |
recipientCounty | Alıcı ilçe adı | string | 50 | inBody Request | Zorunlu |
recipientAddress | Alıcı adres | string | 500 | inBody Request | Zorunlu |
recipientPhoneNumber | Alıcı telefon numarası | string | 20 | inBody Request | Zorunlu |
recipientEmail | Alıcı email | string | 100 | inBody Request | Opsiyonel |
taxOffice | Vergi dairesi | string | 20 | inBody Request | Opsiyonel |
taxNumber | Vergi numarası | string | 20 | inBody Request | Opsiyonel |
shipmentCount | Toplam adet | integer | - | inBody Request | Zorunlu |
totalDesi | Toplam desi | float | - | inBody Request | Zorunlu |
shippingType | Sevk tipi | string | 20 | inBody Request | Zorunlu |
requestDate | İstek gönderim tarihi | DATE | YYYY-MM-DD | inBody Request | Zorunlu |
requestedDeliveryDate | İstenilen teslimat tarihi | DATE | YYYY-MM-DD | inBody Request | Zorunlu |
shippingDetail[] | Sevk detayı | ArrayList | - | inBody Request | Zorunlu |
productCode | Ürün kodu | string | 50 | inBody Request | Zorunlu |
productName | Ürün adı | string | 100 | inBody Request | Zorunlu |
quantity | Adet | integer | - | inBody Request | Zorunlu |
weightInKg | Ağırlık | float | - | inBody Request | Zorunlu |
desi | Desi | float | - | inBody Request | Zorunlu |
productCategory | Ürün kategorisi | string | 100 | inBody Request | Zorunlu |
{
"requestNumber": "20230619",
"customerRefNo": "20230619",
"senderCode": 801452,
"senderTitle": "SENDER TITLE",
"senderCity": "İSTANBUL",
"senderCounty": "BEŞİKTAŞ",
"senderAdress": "ÖRNEK ADRES İSTANBUL/BEŞİKTAŞ",
"senderPhoneNumber": "05551112233",
"senderEmail": "test@mail.com",
"recipientCode": 0,
"recipientTitle": "RECIPIENT TITLE",
"recipientCity": "ANKARA",
"recipientCounty": "MAMAK",
"recipientAdress": "ÖRNEK ADRES ANKARA/MAMAK",
"recipientPhoneNumber": "05443335511",
"recipientEmail": "test2@mail.com",
"taxOffice": "TEST OFFICE",
"taxNumber": "TEST NUMBER",
"shipmentCount": 5,
"totalDesi": 50.5,
"shippingType": "PaysSupplier",
"requestDate": "2024-09-16",
"requestedDeliveryDate": "2024-09-19",
"shippingDetail": [
{
"productCode": "PRODUCTCODE1",
"productName": "PRODUCTNAME1",
"quantity": 2,
"weightInKg": 20.2,
"desi": 20.2,
"productCategory": "PRODUCTCATEGORY1"
},
{
"productCode": "PRODUCTCODE2",
"productName": "PRODUCTNAME2",
"quantity": 3,
"weightInKg": 30.3,
"desi": 30.3,
"productCategory": "PRODUCTCATEGORY2"
}
]
}
{
"response": {
"responseCode": "STA-100",
"responseMessage": "Kayit islemi basarili"
}
}
Servis Cevapları
Response Kodu | Response Mesajı | Açıklama |
---|---|---|
STA-100 | Kayit islemi basarili | Sevkiyat oluşturma işleminin başarılı olduğunu ifade eder. |
ERR-20001 | HATALI IŞLEM ANAHTARI | Geçilen processKey bilgisinin yanlış olduğunu belirtir. |
ERR-20002 | EKSİK PARAMETRE: TALEP NUMARASI | requestNumber bilgisinin eksik girildiğini ifade eder. |
ERR-20002 | GİRİLEN DEĞER ÇOK UZUN: Alan Adı | Belirtilen alana girilen değerin çok uzun olduğunu belirtir. |
ERR-20003 | BU TALEP NUMARASI SISTEMDE MEVCUT - Key: XXX TalepNo: XXX | Daha önce aynı requestNumber bilgisi ile bir sevkiyat oluşturulduğunu belirtir. |
ERR-20005 | GEÇERSİZ GÖNDEREN BİLGİSİ | senderCode alanına girilen değerin Horoz Sisteminde tanımlı olmadığını belirtir. |
ERR-20006 | GEÇERSİZ ALICI BİLGİSİ | recipientCode alanına girilen değerin Horoz Sisteminde tanımlı olmadığını belirtir. |
ERR-20007 | EKSİK PARAMETRE: TOPLAM ADET/DESİ | totalDesi ve shipmentCount alanlarının boş geçildiğini ifade eder. |
ERR-20008 | EKSİK PARAMETRE: KARGO BİLGİLERİ | shippingDetail arrayi altındaki alanlarda eksik olduğunu ifade eder. |
ERR-20009 | DESI BILGISI SIFIR OLAMAZ. | desi alanlarına girilen değerin 0'dan büyük olması gerekir. |
ERR-20012 | TOPLAM DESI SIFIR OLAMAZ | totalDesi alanına girilen değerin 0'dan büyük olması gerekir |
ERR-20056 | shippingType BİLGİSİ BOŞ GEÇİLEMEZ. | shippingType alanına değer girilmesi gerektiğini belirtir. |
ERR-20071 | BU 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 |