Masalah
SDK saat ini hanya support pengiriman domestik. Semua adapter provider cuma
memanggil endpoint domestic pricing:
- Biteship:
POST /v1/rates/couriers
- Komerce (RajaOngkir):
POST /calculate/domestic-cost
- Shipper:
POST /v3/pricing/domestic
Tipe RateRequest di core tidak punya field negara — origin/destination
cuma RegionRef (wilayah Indonesia) atau postal code.
Kenapa perlu
Banyak toko online kirim barang ke luar negeri (jualan lintas negara),
dan API internasional ternyata sudah tersedia di sebagian provider:
- Komerce/RajaOngkir: sudah ada publik —
GET destination/international-destination + POST calculate/international-cost
- Biteship: tidak ada endpoint rates internasional terdokumentasi
- Shipper: layanan internasional lewat produk freight forwarding terpisah, bukan bagian dari pricing API v3
Scope yang diusulkan
Catatan
- Ini keputusan arsitektur (ubah bentuk contract publik core) — perlu diskusi desain dulu, lihat
ARCHITECTURE.md §6 dan CONTRIBUTING.md.
- Perhitungan internasional biasanya memakai volumetric weight +
item.value untuk deklarasi bea cukai.
Masalah
SDK saat ini hanya support pengiriman domestik. Semua adapter provider cuma
memanggil endpoint domestic pricing:
POST /v1/rates/couriersPOST /calculate/domestic-costPOST /v3/pricing/domesticTipe
RateRequestdi core tidak punya field negara — origin/destinationcuma
RegionRef(wilayah Indonesia) atau postal code.Kenapa perlu
Banyak toko online kirim barang ke luar negeri (jualan lintas negara),
dan API internasional ternyata sudah tersedia di sebagian provider:
GET destination/international-destination+POST calculate/international-costScope yang diusulkan
RateRequest.origin/destination), atau tipe baruInternationalRateRequest— impact kecontract.ts= majorgetRates()internasional di adapter Komerce dulu (satu-satunya yang API-nya benar-benar tersedia)RATE_NOT_AVAILABLEatau semacamnya), jangan hardcode workaroundrunProviderContractTests()Catatan
ARCHITECTURE.md§6 danCONTRIBUTING.md.item.valueuntuk deklarasi bea cukai.