Bi Teslimat
Platform Dokümantasyonu
Bu belge; platformun sunduğu hizmetleri, kullanıcı rollerini, sipariş ve ödeme süreçlerini ile yazılım mimarisini ve kod yapısını özetler. Destek başvuruları, yatırım sunumları ve teknik değerlendirmeler için hazırlanmıştır.
1. Platform Özeti
Bi Teslimat, Türkiye genelinde faaliyet gösteren, çok taraflı bir dijital teslimat ve hizmet aracılık platformudur. Platform; müşteriler, yerel işletmeler ve bağımsız kuryeleri tek bir ekosistemde buluşturur. Yalnızca yemek siparişi değil; market alışverişi, kurye çağırma, taksi/yol yardımı, ev-iş hizmetleri ve nöbetçi eczane bilgisi gibi geniş bir hizmet yelpazesini kapsar.
Platform aracı konumundadır: ürün/hizmetin sahibi veya taşıyıcısı değildir; taraflar arasındaki iletişim, konum, sipariş takibi ve ödeme altyapısını sağlar.
Çok rollü yapı
Müşteri, işletme, kurye ve yönetici panelleri ayrı URL ve yetki katmanlarında çalışır.
Konum tabanlı
Leaflet haritaları, Haversine mesafe hesabı ve Türkiye sınır kontrolü ile çalışır.
Türk POS entegrasyonları
Ödeal, PayTR, iyzico, Param ve Sipay ile kartlı ödeme altyapısı.
PWA desteği
Mobil cihazlara ana ekrana eklenebilir; responsive Bootstrap 5 arayüzü.
2. Sunulan Hizmetler & Kategoriler
Kategori ağacı PublicBrowseController::groups() ve
BrowseCatalog sınıflarında tanımlıdır. Her kategori bir
hizmet tipi ile eşleştirilir:
- catalog — İşletme ürün kataloğu + kurye teslimatı
- courier — Doğrudan kurye çağırma (evrak, paket, anahtar vb.)
- direct — Kuryesiz doğrudan hizmet (taksi, çekici, temizlik vb.)
- on_duty — Nöbetçi eczane listesi (EczaneAPI)
Yeme & İçme
Restoran & Lokanta Burger & Fast Food Pizza Kafe & Kahve Tatlı & Pastane
Market & Alışveriş
Market & Bakkal Su & İçecek Çiçekçi Eczane & Medikal Nöbetçi Eczane Tütün & Büfe
Kurye & Taşıma
Evrak Teslimi Anahtar Teslimi Paket & Koli Gönderimi Acil / Aynı Gün Gönderi Unutulan Eşya Getir
Ulaşım & Taksi
Taksi Çağır
Yol & Araç Yardım
Yol Yardım Çekici & Kurtarıcı Lastik & Oto Tamir Akü Takviye
Ev & İş Hizmetleri
Temizlik Teknik Servis Nakliyat & Evden Eve Tadilat & Usta
3. Kullanıcı Rolleri
| Rol | Panel URL | Temel işlevler |
|---|---|---|
| Müşteri | /uygulama |
İşletme keşfi, sipariş verme, kurye çağırma, adres yönetimi, sipariş takibi, teslim onayı |
| İşletme | /isletme |
Ürün/kategori yönetimi, sipariş kabul, kurye çağırma, POS ayarları, hizmet talebi yönetimi |
| Kurye | /kurye |
Çevrimiçi/çevrimdışı, konum paylaşımı, çağrı havuzu, teslimat durumu güncelleme, kazanç takibi |
| Yönetici | /yonetim |
Kullanıcı yönetimi, sipariş denetimi, platform ödemeleri, CMS, destek talepleri, POS/IBAN ayarları |
Kayıt süreci
Kayıt /register üzerinden rol seçimi ile başlar. E-posta doğrulama kodu
(6 hane, 15 dk geçerlilik) gönderilir. İşletme ve kurye kayıtlarında harita üzerinden
konum seçimi zorunludur ve konum Türkiye sınırları içinde olmalıdır
(Geo::isInServiceArea()). Müşteri kaydında T.C. kimlik numarası opsiyoneldir.
4. Sipariş Türleri & İş Akışları
| Tür | Kod | Kurye | Açıklama |
|---|---|---|---|
| İşletme Siparişi | business_order |
Evet | Müşteri işletme kataloğundan ürün seçer; işletme hazırlar, kurye teslim eder. |
| Kurye Çağrısı | courier_call |
Evet | Evrak, paket, anahtar vb. için doğrudan kurye talebi. |
| Hizmet Talebi | service_request |
Hayır | Taksi, çekici, temizlik gibi doğrudan hizmetler; işletme durumu günceller. |
Kuryeli sipariş durum akışı
Her sipariş benzersiz bir public_token ile /takip/{token} adresinden
giriş yapmadan takip edilebilir. Kurye «teslim etti» işaretledikten sonra müşteri
«teslim aldım» onayı verir (çift onaylı teslimat).
Kurye eşleştirme
CourierMatcher sınıfı, alım noktasına en yakın ve müsait kuryeleri
Haversine formülü ile sıralar. Kurye müsaitliği: aktif hesap, çevrimiçi durum ve
devam eden teslimatı olmaması koşullarına bağlıdır.
5. Ödeme Sistemleri
İşletme siparişlerinde ödeme ayrımı
| Kalem | Ödeyen | Yöntemler |
|---|---|---|
| Ürün tutarı | Müşteri → İşletme | Kart (sanal POS), havale/EFT, nakit |
| Teslimat ücreti | Müşteri veya işletme | Nakit, kurye IBAN'ına havale |
| Platform ücreti | İşletme / Kurye | Aylık 200 TL — kart (Ödeal) veya havale |
Desteklenen sanal POS sağlayıcıları
IYZICO PAYTR ODEAL PARAM SIPAY
İşletmeler kendi POS bilgilerini /ayarlar/odeme ekranından girer;
kimlik bilgileri veritabanında şifreli saklanır (encrypted:array).
Platform aylık ücret tahsilatı için yönetici panelinde tanımlanan merkezi POS kullanılır
(PlatformFeeCharger — Ödeal).
Ödeme akışı (kart)
6. Dış Entegrasyonlar
| Entegrasyon | Servis sınıfı | Amaç |
|---|---|---|
| EczaneAPI | OnDutyPharmacyService |
Türkiye geneli nöbetçi eczane listesi (81 il); 1 saat önbellek, günlük «Bugün» verisi |
| Ödeal / PayTR / iyzico / Param / Sipay | PaymentGatewayManager |
Sanal POS ödeme başlatma ve callback işleme |
| OpenStreetMap / Leaflet | Frontend CDN | Harita, konum seçimi, kurye takibi |
| Google Maps | Deep link | Eczane/adres yol tarifi açma |
| SMTP / Mail | OrderNotifier |
Sipariş takip linki ve doğrulama kodu e-postaları |
| Google Ads | partials/head.blade.php |
Dönüşüm izleme etiketi (AW-18348727053) |
7. Yazılım Mimarisi
Teknoloji yığını
| Katman | Teknoloji |
|---|---|
| Backend framework | Laravel 9.52.21 (PHP 8.3.36) |
| Veritabanı | MySQL / MariaDB |
| Kimlik doğrulama | Laravel Breeze (oturum tabanlı), rol middleware |
| Frontend | Blade şablonları, Bootstrap 5.3, Bootstrap Icons |
| Harita | Leaflet 1.9.4 |
| HTTP istemcisi | Guzzle (API çağrıları) |
| Derleme | Laravel Mix, Tailwind (Breeze iskelet) |
Katmanlı kod yapısı
app/ ├── Http/Controllers/ → İstek yönlendirme (Customer, Business, Courier, Admin, Auth) ├── Models/ → Eloquent ORM (User, Order, BusinessProfile, …) ├── Services/ → İş mantığı (OnDutyPharmacyService, Payment/*Gateway) ├── Support/ → Yardımcılar (Geo, CourierMatcher, BrowseCatalog, RegistrationHelper) ├── Http/Middleware/ → EnsureRole, CSRF, throttle resources/views/ → Blade arayüz şablonları (role bazlı layout'lar) routes/web.php → Tüm web rotaları config/ → payment, pharmacy, area, legal
Önemli servis sınıfları
PaymentGatewayManager— POS sağlayıcı seçimi, ödeme başlatma, callbackOnDutyPharmacyService— EczaneAPI veri çekme ve normalizasyonCourierMatcher— En yakın müsait kurye sıralamasıGeo— Mesafe hesabı, Türkiye sınır kontrolüBrowseCatalog— Kategori hizmet tipi belirlemeOrderNotifier— Takip e-postası gönderimiPlatformFeeCharger— Aylık platform ücreti tahsilatı
8. Veri Modeli
User (merkez) ├── BusinessProfile → İşletme bilgileri, sektör, vergi, konum ├── CourierProfile → Araç tipi, ücret tarifeleri, canlı konum ├── Address → Müşteri adresleri ├── Category / Product → İşletme katalog yönetimi ├── Order → Sipariş (customer, business, courier ilişkileri) │ └── OrderItem → Sipariş kalemleri ├── PlatformPayment → Aylık platform ücreti kayıtları ├── BusinessPaymentProvider → Şifreli POS kimlik bilgileri └── SupportTicket → Destek talepleri CMS: Slide, Faq, SitePage Ayarlar: platform_settings (Setting modeli, şifreli POS)
Sipariş tablosu — kritik alanlar
type, status, public_token,
delivery_fee, items_total,
payment_method, items_payment_method,
koordinat alanları (pickup_lat/lng, dropoff_lat/lng)
ve çift onay zaman damgaları (courier_delivered_at, customer_received_at).
9. Güvenlik & Uyumluluk
- Rol middleware — Her panel yalnızca ilgili role açık (
EnsureRole) - CSRF koruması — Tüm formlar; PayTR webhook istisna
- Rate limiting — Giriş, kayıt ve kod gönderme istekleri sınırlandırılır
- Şifreli credentials — POS API anahtarları Laravel Crypt ile saklanır
- Coğrafi sınır — Kayıt ve siparişler Türkiye bbox içinde doğrulanır
- E-posta doğrulama kodu — Kayıt öncesi 6 haneli kod, önbellekte 15 dk
- Yasal onay — Kayıtta sözleşme sürümü (
legal_version) kaydedilir - KVKK — Aydınlatma metni ve gizlilik politikası
/yasalaltında
10. URL & Modül Haritası
| URL | Modül | Erişim |
|---|---|---|
/ | Ana sayfa, kategori vitrin | Herkese açık |
/kesfet | İşletme keşfi, kategori listesi | Herkese açık |
/takip/{token} | Sipariş takibi | Token ile |
/uygulama | Müşteri paneli | Müşteri |
/isletme | İşletme paneli | İşletme |
/kurye | Kurye paneli | Kurye |
/yonetim | Yönetici paneli | Admin |
/odeme | Ödeme checkout & callback | Karma |
/ayarlar | Profil, banka, POS, güvenlik | Giriş gerekli |
/destek | Yardım merkezi, SSS | Herkese açık |
/yasal | Sözleşme, gizlilik, KVKK | Herkese açık |
/dokumantasyon | Bu teknik belge | Herkese açık |