Algoritma Scoring
Bagaimana OtoSwitch memilih supplier "terbaik" untuk setiap produk — dan cara tuning agar sesuai preferensi.
Formula
Setiap supplier kandidat mendapat skor total berdasarkan kombinasi:
Total = (price × 0.4) + (connection × 0.3) + (sla × 0.2) + (stock × 0.1)
+ review_bonus
+ preferred_bonus
Default weights: Price 40%, Connection 30%, SLA 20%, Stock 10%. Total weights = 100%. Bonus ditambahkan di atas skor 100, jadi skor akhir bisa > 100.
Supplier dengan skor tertinggi yang dipilih. Jika skor sama, tiebreaker = harga termurah.
Komponen
Price (40%)
Semakin murah, semakin tinggi skornya:
score = 100 × (cheapest_price / this_price)
Supplier termurah dapat 100. Yang dua kali lebih mahal dapat 50.
Connection (30%)
| Tipe | Default skor |
|---|---|
| IP (Direct API) | 100 |
| H2H (Host-to-Host bridge) | 70 |
IP biasanya lebih cepat dan stabil daripada H2H. Bisa di-tune.
SLA (20%)
| SLA | Default skor |
|---|---|
| H+0 (proses real-time) | 100 |
| H+1 (besok) | 60 |
| H+2 (lusa) | 30 |
Skor mencerminkan kecepatan proses. Bisa di-tune.
Stock (10%)
| Stok | Skor |
|---|---|
| Unlimited / ada stok | 100 |
| Habis | 0 |
Tidak ada gradasi — biner. Supplier yang sedang habis stok otomatis skip.
Review bonus
Rating supplier (0-5) jadi bonus tambahan:
review_bonus = (rating / 5.0) × reviewBonusMax
| Rating | Bonus (max=15) |
|---|---|
| 5.0 | +15 |
| 4.0 | +12 |
| 3.0 | +9 |
| 0 | 0 |
Disable di Pengaturan → Scoring → Review Bonus toggle.
Preferred bonus
Supplier yang ada di daftar Preferred dapat +20 flat.
Bonus +20 cukup signifikan. Berguna untuk "memaksa" supplier favorit naik di ranking, tapi jangan berlebihan — supplier mahal yang preferred tetap bisa kalah dengan supplier lebih murah + rating tinggi.
Filter sebelum scoring
Tidak semua supplier ikut di-scoring. Filter pre-scoring:
- Status aktif —
status_sellerSku == 1. Yang nonaktif diabaikan. - Tidak di-blocked — supplier di daftar Blocked tidak masuk kandidat.
- Harga dalam batas wajar —
price ≤ current_price × (1 + maxPriceIncreasePercent/100). DefaultmaxPriceIncreasePercent = 10artinya harga baru tidak boleh > 110% harga sekarang.
Untuk produk bermasalah (NO_SELLER, PRICE_EXCEEDS_MAX, PRODUCT_INACTIVE), filter #3 (harga) diabaikan — supaya OtoSwitch tetap menemukan kandidat walaupun lebih mahal.
Filter zona (kalau pakai)
Kalau produk ter-assign ke zona, ada filter tambahan sebelum scoring:
- Pattern matching — supplier harus deskripsinya cocok dengan rule zona.
- Sibling exclusion — supplier yang sudah dipakai sibling lain di-exclude.
Detail: Grup Produk.
Tuning scenarios
Skenario 1: Stabilitas > Harga
Kalau prioritas kestabilan transaksi > harga termurah, naikkan bobot Connection & SLA, turunkan Price:
Price 20% — Connection 40% — SLA 30% — Stock 10%
Supplier dengan koneksi IP H+0 selalu menang walaupun lebih mahal.
Skenario 2: Harga Sensitif
Kalau prioritas selalu cari termurah:
Price 60% — Connection 20% — SLA 10% — Stock 10%
Lebih agresif ganti supplier saat ada yang lebih murah.
Skenario 3: Preferred Heavy
Kalau ingin supplier preferred sangat dominan, naikkan preferredBonus (currently fixed +20 di kode — perlu modifikasi config atau patch). Alternatif: matikan Connection/SLA bobot dan andalkan rating.
Skenario 4: Review Bias
Pembeli pemula lebih trust review:
Price 40% — Connection 25% — SLA 15% — Stock 10% + reviewBonusMax = 25
Supplier rating 5 dapat +25 bonus → bisa kalahkan supplier IP H+0 yang rating 3.
Cara tuning
- Klik Settings di sidebar bawah.
- Klik panel Scoring → tombol Buka Editor Scoring.
- Drag slider weights — auto-rebalance ke 100%.
- Atur connection/SLA scores di section Skor Tipe.
- Toggle review bonus di section Review Bonus.
- Tambah/hapus supplier di section Preferred / Blocked.
- Klik Save All.
Setelah tuning, pantau tab Perubahan beberapa siklus untuk lihat efeknya. Kalau auto-switch terlalu agresif (sering ganti-ganti), kecilkan bobot Price.
FAQ
Skor maksimum berapa? Tanpa bonus: 100. Dengan review (max +15) + preferred (+20) = max 135.
Apakah scoring berbeda untuk produk gangguan vs sehat? Formula sama. Yang berbeda hanya filter — produk bermasalah skip filter harga (#3).
Bisa custom formula sendiri? Belum. Weights bisa di-tune, tapi struktur formula fix.
Kenapa supplier termurah tidak selalu dipilih? Karena scoring multi-faktor. Termurah dengan koneksi H2H + SLA H+2 + rating 2 bisa kalah dengan yang sedikit lebih mahal tapi IP + H+0 + rating 5.