İçeriğe geç
← İşler

Yedek parça e-ticareti

Zaman aşımına düşmeyi bırakan bir çok yüzlü katalog

Beş yüzlü bir filtrenin arkasında on binlerce SKU sık sık zaman aşımına düşüyor, sayfalar iki-üç dakika sürüyordu. Filtrenin altındaki veri modelini değiştirdik ve günler süren manuel tedarikçi işini otomatikleştirdik.

Dönem
2017 · 5 ay
Teslim ettiğimiz
Katalog filtresinin yeniden kurgulanması, Redis önbelleği, otomatik çoklu tedarikçi aktarımı
Çalışma ortamı
Uçtan uca teslim sahipliği

Müşteri ve proje adları gizlilik yükümlülüğü gereği paylaşılmıyor. Sektör, ölçek ve sonuçlar teslim edildiği hâliyle aktarılıyor.

2–3 dk → ~5sn

Katalog sayfası render süresi

Sıfır

Kalan filtre zaman aşımı

Günler → günlük

Tedarikçi katalog bakımı

5 akış

Otomatik tedarikçi içe aktarımı

Bağlam

Pazarında bulunan her araç markası ve modeli için yedek parça satan bir online perakendeci: yaklaşık 15 desteklenen marka ve on binlerce SKU, tek tek somun ve cıvatalara kadar.

Problem

İki problem; ikisi de operasyonel.

Mağaza, marka, model, kategori, alt kategori ve fiyat üzerinden çok yüzlü bir katalog filtresi sunuyordu. Bu katalog büyüklüğünde filtre sık sık zaman aşımına düşüyor, tamamlanabilen sayfalar ise iki ila üç dakika sürüyordu.

Ayrıca tedarikçi kataloglarını eklemek ve güncellemek manueldi ve döngü başına günler alıyordu; bu da fiyatların ve stokların kronik olarak güncel olmaması anlamına geliyordu. Üstelik fiyat doğruluğu, bu üründe satın alma kararının çoğunu oluşturuyor.

Yaklaşım

Filtre bir sorgu problemi değil, veri modeli problemiydi

Darboğazı platformun normalize edilmiş öznitelik ve meta veri modeli olarak teşhis ettik: her filtre sorgusu okuma anında ürün meta tablolarını dolaşıyordu ve on binlerce SKU’da hiçbir sorgu optimizasyonu buna dayanamaz.

Bu yüzden amaca özel, denormalize bir filtre indeks tablosu etrafında yeniden kurguladık; ürün oluştur, güncelle ve sil hook’ları üzerinden sürekli senkron tutuldu. Filtre sorguları meta tablolarına hiç dokunmayı bıraktı. Filtreleme bileşenini sıfırdan, bağımsız bir eklenti olarak yeniden yazdık ve çözülmüş sonuç kümelerinin üzerine Redis önbelleği koyduk.

Otomatik çoklu tedarikçi içe aktarımı

Beş tedarikçi akışını kapsayan bir XML içe aktarma hattı kurduk. Mevcut ürünlerin fiyat ve stokları otomatik güncelleniyor; daha önce görülmemiş ürünler taslak olarak oluşturulup manuel bir inceleme-onay adımına yönlendiriliyordu; böylece günlük senkron bloklanmadan katalog kalitesi korunuyordu.

İşten sonra ayakta kalacak biçimde teslim

Her iki sistem de yerel platform konvansiyonlarına göre, birbirinden bağımsız ve temadan bağımsız iki eklenti olarak teslim edildi; müşteri, tema değiştirme ve platformu yükseltme özgürlüğünü korudu.

Sonuç

  • Katalog filtresi zaman aşımları tamamen ortadan kalktı. Daha önce doğrudan başarısız olan istekler on saniye civarında dönmeye başladı.
  • Daha önce iki-üç dakika süren sayfalar yaklaşık beş saniyede dönmeye başladı.
  • Tedarikçi katalog bakımı günler süren manuel bir işten otomatik günlük senkrona geçti; on binlerce SKU’da fiyat ve stok doğru kaldı.
  • Müşteriye temaya gömülmüş özelleştirmeler değil, bakılabilir ve ayrıştırılmış eklentiler kaldı; iş bittikten sonra da yükseltme yolu korundu.