Orjeen
Suudi Arabistan pazarındaki bir çevrimiçi mağaza için, taksit ve kart ödeme altyapıları uçtan uca entegre edilmiş çok platformlu bir e-ticaret uygulaması.
- 2
- iOS + Android
- KSA
Mimari
- İstemci
- Servis
- Veri deposu
- Harici
Problem
Orjeen, Suudi pazarına hizmet veren bir çevrimiçi mağaza işletiyordu. Uygulamanın bölgeye uygun ödeme yöntemlerine ihtiyacı vardı — Körfez'de taksit niş bir seçenek değil, yaygın bir beklenti — ve kuryenin binayı gerçekten bulabileceği kadar kesin teslimat adreslerine.
Körfez'deki müşteriler kart ödemesinin yanında Tabby taksitini de bekliyor ve ikisinin de güvenilir olması gerekiyor: yarısı başarılı olan bir ödeme, temiz biçimde başarısız olandan daha kötüdür. Ayrıca bölgede sokak adresleri çoğu zaman güvenilmez olduğundan, yazılı adres tek başına kuryenin teslimatı tamamlaması için çoğu kez yetmiyor.
Yaklaşım
Taksit için Tabby'yi, kart ödemesi için Urway'i entegre ettim; ödemenin gerçekleşip gerçekleşmediği konusunda istemcinin geri dönüşünü değil, ağ geçidinin geri çağrısını yetkili kabul ettim. Uygulama, Cubit durum yönetimiyle MVVM olarak kuruldu. Adresler harita üzerinde pin bırakılarak onaylanıyor; böylece sipariş yalnızca metin adres değil, koordinat taşıyor.
Fark yaratan kararlar
Cubit ile MVVM
Tam BLoC yerine Cubit: uygulamanın durum geçişleri büyük ölçüde doğrusal ve Cubit bunları, bu karmaşıklık düzeyinde hiçbir şey kazandırmayan olay sınıfı kalabalığı olmadan ifade ediyor.
İstemciye değil, geri çağrıya güven
Ödeme durumu, ağ geçidinin sunucudan sunucuya geri çağrısıyla kesinleşiyor. Müşterinin yönlendirme ortasında uygulamayı kapatması, sinyal kaybetmesi ya da iki kez dokunması siparişi parayla senkronsuz bırakamıyor.
Mevcut mağazayla olduğu yerde buluşmak
İşletme zaten WooCommerce üzerinde çalışıyordu. Göçü bir ön koşul olarak dayatmak yerine uygulama WooCommerce REST API'sini tüketti ve boşlukları ek servisler doldurdu — mağaza süreç boyunca açık kaldı.
Zor problemler
İki ağ geçidi, tek ödeme akışı
Tabby ve Urway'in akışları, geri çağrı biçimleri ve hata modları farklı. Ödeme adımı müşteriye tek ve tutarlı bir yol sunarken ikisini ortak bir arayüzün ardında uzlaştırıyor; böylece hiçbir ağ geçidinin tuhaflığı sipariş mantığına sızmıyor.
Kuryenin gerçekten kullanabileceği adresler
Konum belirleme ve coğrafi kodlama, müşterilerin teslimatı harita üzerinde pinle onaylamasını sağlıyor. Sipariş, yazılı adresin yanında koordinatları da saklıyor — teslimat denemesi ile teslimat arasındaki fark bu.
Durmadan yeniden inşa etmek
Uygulama, mağaza açık kalmaya devam ederken Ionic/Angular yapısından Flutter'a taşındı. Göç, topyekûn bir geçiş olarak değil, canlı bir arka uca karşı özellik özellik ilerledi.
Rolüm
Flutter uygulamasını geliştirdim, her iki ödeme altyapısını entegre ettim ve uygulamaya hizmet veren arka uçta çalıştım.
Durum
Müşteriye teslim edildi ve işletildi. Mağaza ve uygulama listelemeleri artık yayında olmadığı için bu vaka çalışması, çalışan bir ürüne bağlantı vermek yerine mühendisliği anlatıyor.
Teknolojiler
- FlutterMVVMCubitFCMFirebase Analytics
- TabbyUrway
- GeolocationGeocoding
- NestJSNode.jsWooCommerce REST