Yapı & Hırdavat · E-Ticaret Mobil

Yapı Market için iOS & Android Uygulaması

Web sitesi olan ama mobil kanalı olmayan bir yapı market mağazasını, mevcut ERP sistemine dokunmadan iOS ve Android'e taşıyan e-ticaret uygulaması.

Rol
Full-stack Developer (tek)
Stack
React Native · Express.js · REST API · SQLite
Yapı market mobil uygulama ana ekranıMobil uygulama hero: kategori filtreleri, ürün kataloğu grid, sticky bottom nav9:41MerhabaAradığını bul3Ürün, marka veya kategori ara…TümüHırdavatEl AletleriÖne çıkan ürünlerTümü →−15%Akülü Matkap18V · 2 batarya₺1.890₺2.220+Elektrikli Süpürge850W · Toz torbalı₺2.450+Hırdavat Seti120 parça · Çelik₺849+YeniMatkap Ucu Seti10 parça · HSS₺259+Ana sayfaKategori``SepetSiparişHesap

Yıllarca duran bir dijital boşluk

Müşterimiz, kendi bölgesinde tanınan büyük bir yapı market mağazası. Bir web siteleri vardı, fiziksel olarak yoğun ziyaret aldıkları bir noktaydılar; ama mobil cihazda alışveriş yapmak isteyen müşterilerine sunabilecekleri hiçbir şey yoktu.

Plan basitti, uygulama tarafı değil: Müşterinin yıllarca kullandığı ERP / stok yönetim sistemini değiştirmemek. O sistem işliyordu, ekip ona alışıktı, ürün/fiyat/stok verisi orada yaşıyordu. Bizden istenen, bu sistemin üzerine - onu hiç bozmadan - bir mobil katman inşa etmekti.

“Mevcut sistemi değiştirmeden, üzerine bir mobil katman inşa etmek.”

Yaklaşımımız

Projeye girerken karşımızda bir karar vardı: ya ERP'yi modernleştirmeye çalışıp ucu açık bir dönüşüme girişeceğiz, ya da mevcut sistemi olduğu gibi kabul edip üzerine bir köprü kuracağız. İkinci yolu seçtik. Müşterinin iş akışı durmadan devam etmeli, geliştirme bağımsız ilerlemeliydi.

Bu yüzden Express.js ile yazılmış bir bridge backend kurduk: ERP'den veri çeker, mobil uygulamanın anlayacağı bir formata çevirir, gerektiğinde cache'ler. Mobil uygulama ERP'yi hiç görmedi, sadece bizim API'mizi konuştu.

Teknik Kararlar

1

Dokümantasyonsuz bir API ile çalışmak

Müşterinin ERP sistemini yapan şirketin sunduğu API'nin hiçbir yazılı dokümantasyonu yoktu. Onlarla konuştuğumuzda kendileri bile bazı endpoint'lerin ne döndürdüğüne net cevap veremiyordu. Ne yapacağımıza karar vermek için önce sistemi tanımak gerekti: birkaç hafta boyunca her endpoint'i tek tek test ettik, response formatlarını çıkardık, hangi alanın ne anlama geldiğini deneme yanılma ile çözdük. Express.js backend'imiz, bu kaotik kaynağı mobil uygulamanın anlayacağı temiz bir REST API'ye dönüştürdü.

2

React Native ile tek codebase

Tek bir geliştirici, 4 ay ve iki platform (iOS + Android). Native geliştirmeye girişmek bu kapsamda mümkün değildi. React Native ile tek codebase'den her iki platforma yayın yaptık; native modüllerin gerektiği yerlerde (push notification, ödeme akışı) gerekli native köprüleri ekledik. Sonuç, geliştirme süresini ikiye katlamadan native deneyime yakın bir uygulamaydı.

3

Offline-first ürün kataloğu

Bir yapı market müşterisi çoğu zaman mağaza içinde, depo arkasında veya mobil internetin zayıf olduğu yerlerde uygulamayı kullanır. Kullanıcının her sayfayı her seferinde indirmek zorunda kalması iyi bir deneyim olmazdı. AsyncStorage ve SQLite kombinasyonuyla bir cache katmanı kurduk: kullanıcı katalogu bir kez gezdikten sonra çevrimdışıyken de ürünlere bakabilir, sepete ekleyebilir. Yalnızca sipariş kesinleştirme adımında bağlantı şart.

4

Güvenli ödeme akışı

Ödeme finansal bir hassasiyet alanı. Kart bilgilerini hiçbir zaman uygulamada veya kendi backend'imizde tutmadık - PCI uyumlu bir ödeme sağlayıcısının token sistemini kullandık. Kullanıcı kart bilgisini doğrudan sağlayıcının güvenli alanına girdi, biz sadece dönen token'la siparişi finalize ettik. Bu yaklaşım hem hukuki yükü azalttı hem de güvenlik sorumluluğunu ödeme sağlayıcısının uzmanlık alanına bıraktı.

Arayüzden

Ürün detay ekranıBir ürünün detay sayfası: büyük görsel, başlık, fiyat, açıklama, sepete ekle9:41−15%Akülü Matkap18V · 2 batarya · Şarj cihazı4.2 (87)₺1.890₺2.220Stokta varAçıklama−1+Sepete Ekle
Ürün detay sayfası: galeri, fiyat, stok durumu ve sepete ekleme akışı.
Sepet ekranıMobil uygulamada sepet: ürünler, miktar, kupon, ara toplam, kargo, toplam9:41Sepet3 ürünAkülü Matkap18V · 2 batarya₺1.890−1+Matkap Ucu Seti10 parça · HSS₺259−2+Hırdavat Seti120 parça · Çelik₺849−1+Kupon koduUYGULAAra toplam₺3.257KargoÜcretsizToplam₺3.257Sepeti Onayla →
Sepet ekranı: miktar düzenleme, kupon uygulama, kargo ve toplam tutar.
Ödeme ekranıSipariş özeti, teslimat adresi, kart bilgileri ve güvenli ödeme akışı9:41Ödeme3SepetAdresÖdemeEv AdresiKadıköy, İstanbulKargo: 1-2 iş günüDeğiştirÖdeme YöntemiGüvenliKartHavale / EFTKart Numarası•••• •••• •••• 4242Son Kullanma12 / 27CVV•••3D Secure ile güvenli ödemeSipariş ÖzetiAra toplam (3 ürün)₺3.257KargoÜcretsizÖdenecek₺3.257Ödemeyi Tamamla
Ödeme akışı: adres ve ödeme yöntemi adımları, güvenli kart girişi.

Sonuç & Etki

Uygulama 4 ayın sonunda hem App Store hem Google Play'de yayına alındı. Müşteri, yıllardır web'de bıraktığı dijital varlığını ilk kez mobil cihazlarda da kullanılabilir hale getirdi.

Mimari tarafta kazanılan şey daha kalıcı oldu: mevcut ERP'ye tek satır dokunulmadan, üzerine bir API köprüsü kuruldu. Stok ve fiyat verisi gerçek zamanlı senkron çalıştı, mağaza ekibi alışkın olduğu sistemlerden çıkmadı. Bu yaklaşım - eski ama vazgeçilmez sistemleri olduğu gibi koruyup üzerlerine yeni bir dijital katman eklemek - bizim için hâlâ bir referans noktası.

Mevcut sistemleriniz üzerine inşa edebileceğimiz bir şey mi var?

Yıllardır çalışan bir ERP, eski ama vazgeçilmez bir backend, ya da entegre etmesi zor bir API mi var? Onların üzerine yeni bir katman kurmak için konuşalım.

Teklif Alın