Modul shipping menghitung ongkos kirim dan tracking resi via dua vendor: Rajaongkir (Komerce + Pro) dan Apikurir. Juga mengelola master data wilayah dan warehouse merchant.
File kunci
| File | Baris | Peran |
|---|---|---|
app/Http/Controllers/Api/RajaongkirController.php | 235 | Ongkir + waybill via Rajaongkir |
app/Http/Controllers/Api/ShippingController.php | 117 | Location + rates via Apikurir |
app/Http/Controllers/HandleGudangController.php | 10 | Kosong — hanya deklarasi class |
app/Models/Province.php | 26 | Master provinsi |
app/Models/City.php | 26 | Master kota |
app/Models/Subdistrict.php | 26 | Master kecamatan |
app/Models/Warehouse.php | 31 | Gudang merchant |
app/Models/HandleGudang.php | 24 | Antrian handle gudang untuk chat |
Vendor
| Vendor | URL | Untuk |
|---|---|---|
| Rajaongkir Komerce | rajaongkir.komerce.id/api/v1/... | domestic-cost, waybill tracking, destination search |
| Rajaongkir Pro (legacy) | pro.rajaongkir.com/api/... | autocomplete kota, calculate cost versi lama |
| Apikurir | live.apikurir.id/shipments/... | rates + location autocomplete |
Controller method utama
RajaongkirController
| Method | Fungsi |
|---|---|
province | List provinsi dari DB lokal |
city | List kota by province_id |
kecamatan | List subdistrict dari DB lokal |
checkDomesticDestination | GET Rajaongkir Komerce destination/domestic-destination |
expedisiV2 | POST Rajaongkir Komerce calculate/domestic-cost |
expedisi | POST Rajaongkir Pro cost (legacy) |
waybill | POST Rajaongkir Komerce track/waybill (resi + courier) |
sync_courier | Map nama kurir — dead code (tidak dipanggil) |
ShippingController
| Method | Fungsi |
|---|---|
location | GET Apikurir v2/public/location (autocomplete) |
rates | POST Apikurir v1/open-api/rates (origin dari Setting, dimensi dari Order.product.shipping) |
Route
API (routes/api.php)
| Method | Path | Fungsi |
|---|---|---|
| GET | /rajaongkir/province | List provinsi |
| GET | /rajaongkir/city | List kota |
| GET | /rajaongkir/kecamatan | List kecamatan |
| POST | /rajaongkir/expedisiV2 | Hitung ongkir |
| POST | /rajaongkir/waybill | Tracking resi |
| GET | /shipping/location | Autocomplete lokasi |
| POST | /shipping/rates | Hitung rates |
Temuan
HandleGudangController.phpkosong — hanya deklarasi class. ModelHandleGudangdipakai langsung dariTeamController&LiveChatControllerexpedisivsexpedisiV2— transisi tidak dirampungkan, keduanya hidup. Typoexpedisi(seharusnyaekspedisi)sync_couriermati — diwaybilllangsungstrtolower($request->courier), tidak pakai method$warehousedi-assign tapi tidak dipakai diexpedisi/expedisiV2- Typo
otomatic(seharusnyaautomatic) tersebar di setting shipping - Warehouse routing tersebar di
SettingController, bukan controller sendiri