D
Modul

Shipping

Integrasi Rajaongkir (ongkir + waybill tracking) dan Apikurir. Master data wilayah, warehouse management.

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

FileBarisPeran
app/Http/Controllers/Api/RajaongkirController.php235Ongkir + waybill via Rajaongkir
app/Http/Controllers/Api/ShippingController.php117Location + rates via Apikurir
app/Http/Controllers/HandleGudangController.php10Kosong — hanya deklarasi class
app/Models/Province.php26Master provinsi
app/Models/City.php26Master kota
app/Models/Subdistrict.php26Master kecamatan
app/Models/Warehouse.php31Gudang merchant
app/Models/HandleGudang.php24Antrian handle gudang untuk chat

Vendor

VendorURLUntuk
Rajaongkir Komercerajaongkir.komerce.id/api/v1/...domestic-cost, waybill tracking, destination search
Rajaongkir Pro (legacy)pro.rajaongkir.com/api/...autocomplete kota, calculate cost versi lama
Apikurirlive.apikurir.id/shipments/...rates + location autocomplete

Controller method utama

RajaongkirController

MethodFungsi
provinceList provinsi dari DB lokal
cityList kota by province_id
kecamatanList subdistrict dari DB lokal
checkDomesticDestinationGET Rajaongkir Komerce destination/domestic-destination
expedisiV2POST Rajaongkir Komerce calculate/domestic-cost
expedisiPOST Rajaongkir Pro cost (legacy)
waybillPOST Rajaongkir Komerce track/waybill (resi + courier)
sync_courierMap nama kurir — dead code (tidak dipanggil)

ShippingController

MethodFungsi
locationGET Apikurir v2/public/location (autocomplete)
ratesPOST Apikurir v1/open-api/rates (origin dari Setting, dimensi dari Order.product.shipping)

Route

API (routes/api.php)

MethodPathFungsi
GET/rajaongkir/provinceList provinsi
GET/rajaongkir/cityList kota
GET/rajaongkir/kecamatanList kecamatan
POST/rajaongkir/expedisiV2Hitung ongkir
POST/rajaongkir/waybillTracking resi
GET/shipping/locationAutocomplete lokasi
POST/shipping/ratesHitung rates

Temuan

  • HandleGudangController.php kosong — hanya deklarasi class. Model HandleGudang dipakai langsung dari TeamController & LiveChatController
  • expedisi vs expedisiV2 — transisi tidak dirampungkan, keduanya hidup. Typo expedisi (seharusnya ekspedisi)
  • sync_courier mati — di waybill langsung strtolower($request->courier), tidak pakai method
  • $warehouse di-assign tapi tidak dipakai di expedisi/expedisiV2
  • Typo otomatic (seharusnya automatic) tersebar di setting shipping
  • Warehouse routing tersebar di SettingController, bukan controller sendiri