Skip to content

feat: dukungan rate ongkir internasional (indo → luar negeri) #1

Description

@cakfan

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 publikGET 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

  • Tambah field negara di tipe core (RateRequest.origin/destination), atau tipe baru InternationalRateRequestimpact ke contract.ts = major
  • Implementasi getRates() internasional di adapter Komerce dulu (satu-satunya yang API-nya benar-benar tersedia)
  • Provider lain: dokumentasikan keterbatasan (throw RATE_NOT_AVAILABLE atau semacamnya), jangan hardcode workaround
  • Fixture + unit test mapper + runProviderContractTests()
  • Update README package + docsite

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions