Rutıx
İçindekiler

Sevkiyat ve teslimat

Onaylanan sipariş bir sevkiyata girer, araç depoda yüklenir, sürücü kapıya gider ve orada olan biten kodlanarak kaydedilir. Ay sonunda tartışılan şey tam olarak bu kayıttır.

Planlanabilir siparişler #

Bir sevkiyat, henüz bir sevkiyata bağlanmamış, onaylanmış ve sıcak satış olmayan siparişlerden kurulur. Sıcak satış dışarıda kalır: mal zaten müşteride.

Planlanabilir liste, teslim tarihi verilen güne kadar olan siparişleri kapsar ve sipariş sayısı, toplam tutar ve kaç müşteriye gidileceğiyle birlikte döner. Sipariş seçimi elle yapılabilir; yapılmazsa o güne kadar birikmiş her şey alınır.

Siparişler sevkiyata bağlanırken aynı işlemde sahiplenilir, yani iki dağıtım sorumlusu aynı siparişi iki ayrı araca yükleyemez.

Duraklar sipariş başına değil, müşteri başına kurulur. Aynı dükkâna giden üç sipariş tek bir kapıdır ve durak numarası ile tutarı üçünün toplamını gösterir.

Rota sıralama #

Sıralama en yakın komşu ile bir tur kurar, sonra 2-opt ile o turun bıraktığı kesişmeleri söker. Buna sezgisel deniyor, optimize edici değil, çünkü öyle: araç rotalama NP-zor bir problemdir ve dağıtıcının 06:00’da ihtiyacı olan şey 06:40’ta kanıtlanmış en iyi sıralama değil, milisaniyeler içinde çıkan ve dağıtım sorumlusunun katıldığı iyi bir sıralamadır.

  • Başlangıç noktası merkez deponun konumudur. Deponun konumu girilmemişse plan reddedilmez; makul bir varsayılan konumdan kurulur.
  • Kuş uçuşu mesafe 1,35 ile çarpılır. Sokaklar düz değildir ve kuş uçuşuna göre kurulmuş bir plan, şoförün tutamayacağı bir bitiş saati vaat eder.
  • Durak başına servis süresi sekiz dakika artı sipariş başına dört dakikadır.
  • Varsayılan çıkış saati 08:00’dir ve bu Marmaris’te sabahın sekizi demektir. Saat dilimi çevrimi tek bir yerde durur.
  • Sonuç belirlenimcidir: eşit mesafeler müşteri kimliğine göre bozulur, aynı girdi aynı planı verir.
  • Konumu olmayan duraklar plandan atılmaz; sona eklenir ve bunu söyleyen bir kodla işaretlenir.

Her durak bir kod ve sayıları taşır, cümle değil: depoya en yakın durak, en yakın komşu, zaman penceresi zorladı, konum yok. Sebebi pratik — verilen sıralamayı saçma bulan bir şoför kendi sırasını sürer ve o andan sonra arkasındaki bütün varış saatleri kurgudur.

Aracın yüklenmesi #

  1. 1

    Plan kurulur

    Stok kıpırdamaz. Plan bir öneridir ve saat altıdan önce üç kez yeniden kurulur; her seferinde stok hareketi yazmak defteri anlamsızlaştırır.
  2. 2

    Araç yüklenir

    Stok burada hareket eder: sipariş satırlarının tamamı depodan düşer, aracın kendi deposuna girer. Araç bir depodur — ayrı bir defter değil.
  3. 3

    Yolda

    İlk durak sonuçlandığında sevkiyat “yolda”ya geçer; bütün duraklar sonuçlandığında “tamamlandı”.

Yükleme düğmesi eldivenli elle, depo tabletinde ve genellikle iki kez basılarak kullanılır. Bu yüzden zaten yüklenmiş bir sevkiyatı yüklemek sessizce hiçbir şey yapar; ikinci bir stok hareketi yazmaz.

Yükleme, aracı ya da aracın deposu olmadığında açıkça reddedilir. Bunlar sonradan fark edilmesi zor eksiklerdir; planı kurarken değil, yüklerken sorulur.

Kapıda #

Bir durak evet/hayır değildir. Ay sonunda tartışılan şeyler şunlardır: müşterinin hiç gelmediğini söylediği teslimat, hasarlı dönen palet ve üçüncü salı üst üste 14:00’te kapalı olan dükkân. Bu yüzden durak dört şey taşır: ne alındı, ne geri döndü, kim teslim aldı ve kodlu sebep.

  • Geri dönen mal ürün bazında, taban birimde bildirilir. Şoför koli sayar; çevrim, sipariş satırının kendi katsayısıyla cihazda yapılır.
  • Geri dönen mal varsa en az bir sebep kodu zorunludur. Sebep, müşteri faturayı sorduğunda kendisine gösterilecek olan şeydir.
  • Serbest metin kabul edilmez. Kırk türlü yazılan “müşteri yoktu” panoda kırk ayrı problem sayılır ve hiçbiri sayılabilir olmaz; her salı kapalı olan dükkân böylece hiç bulunamaz.
  • Aynı durak iki kez teslim edilmiş sayılamaz; tekrar gönderim sessizce yok sayılır.

Sebep kodları #

KodTürkçe karşılığıGenellikle
delivery.shop_closedDükkân kapalıydıBaşarısız durak
delivery.nobody_to_receiveTeslim alacak kimse yoktuBaşarısız durak
delivery.refusedMüşteri kabul etmediBaşarısız durak
delivery.payment_refusedÖdeme yapılmadıBaşarısız durak
delivery.access_blockedAraç yanaşamadıBaşarısız durak
delivery.partial_refusalBir kısmını kabul etmediKısmi teslim
delivery.damagedHasarlıKısmi teslim
delivery.wrong_goodsYanlış ürünKısmi teslim

Sürücü uygulaması listeyi iki gruba ayırarak sunar; bu bir arayüz kolaylığıdır, API her kodu her iki yerde de kabul eder. Listede olmayan bir kod açıkça reddedilir ve hata, kabul edilen kodların tamamını taşır.

Teslim kanıtı #

Şoför kapıda fotoğraf çeker ve teslimat o fotoğrafın kimliğine karşı kapanır — ama fotoğrafın baytları beklemeye devam edebilir. Kayıt ile baytlar ayrı yolculuk eder ve tasarımın tamamı budur.

Bir palet yeraltı otoparkında fotoğraflanır ve teslimatın o anda kaydedilmesi gerekir. Teslimatı yüklemenin bitmesine bağlamak, tek çubuk çekimde kapının önünde ilerleme çubuğu izleyen bir şoför demektir; ürünün bırakılıp kâğıda dönülme biçimi tam olarak budur. Bu yüzden “kaydedildi ama yüklenmedi” bir hata değil, normal bir durumdur ve onu gösteren her ekran kırık bir görsel çizmek yerine bunu açıkça söyler.

  • Kayıt, diğer işlemlerle aynı işlem günlüğünden geçer: uygulama öldürülse de hayatta kalır ve kendisine atıf yapan teslimatla aynı sıralı kuyruğa düşer.
  • Baytlar kuyruk boşaldıktan sonra gider. Kuyruk az önce geçtiyse, kullanmaya değer bir bağlantı var demektir.
  • Fotoğraflar cihazda küçültülür: telefon kamerası dört megabayt üretir, bir teslim kanıtının göstermesi gereken şey kapıdaki palettir.
  • Baytlar imzalı genel bir bağlantı yerine API üzerinden geri servis edilir. Rakip bir teşhirin raf fotoğrafı, bir imza, bir hasar iddiası ticari olarak hassastır ve kiracıya bağlıdır; genel bir bağlantı, satır düzeyi güvenliği arkasında bırakmış bir bağlantıdır.
  • Boyut sınırı, istemcinin bildirdiği uzunluğa değil, kopyalama sırasında uygulanır — bildirilen uzunluk gönderilenle aynı olmak zorunda değildir ve parçalı bir yükleme hiç bildirmez.

Kısmi teslimde stok #

Araçtan yalnızca müşterinin aldığı kadarı düşer. Geri dönen mal hareket ettirilmez, çünkü hiç inmediği araca “iade” edilemez: bunu yazmak, aracı bütün gün üzerinde duran stokla ikinci kez alacaklandırır ve şoförün akşamki sayımını eksik bırakır.

Teslim edilemeyen durak #

Sipariş iptal edilmez, onaylı kalır. Dükkân kapalıydı; mal duruyor, yarınki sevkiyata ait ve temsilci satışı yine yaptı. Burada iptal etmek, yapılmış bir satışı sessizce yok etmek olurdu. Stok kıpırdamaz — mal hâlâ araçtadır.

B2B portalında bu durum açıkça söylenir: siparişin hâlâ canlı olduğu ve bir sonraki sevkiyatta olacağı yazılır. Ekranın en kötü hâli “teslim edilemedi” yazıp susmaktır; bir dükkân sahibi bunu siparişinin kaybolduğu şeklinde okur.

Müşteri ne görür #

Sipariş takibi dakika sözü vermez, sevkiyattaki sırayı gösterir. Ağustosta Marmaris’teki bir araç geri sayıma uyamaz ve geri sayım gösteren bir portal, müşterinin inanmayı bıraktığı bir portaldır. “Önünüzde 3 durak var” hem doğrudur hem işe yarar; yanlış bir varış saati ikisi de değildir.