Semua artikel
Panduan·1 Jun 2026·8 min baca

Jual ke Singapura dari Malaysia — Apa yang Perlu Anda Sediakan Sebelum Terima Order SG

Merchant Malaysia yang jual ke SG selalu buat satu kesilapan yang sama: terima order dalam RM, hantar ke SG, driver kuti

Masalah yang ramai seller tidak sedar

Bayangkan ini: anda dapat order dari pelanggan di Singapura. Nilai order RM 150. Anda generate AWB, Ninja Van kutip parsel, hantar ke SG. Driver tiba di pintu pelanggan dan minta SGD 150.

Pelanggan ambik kalkulator. SGD 150 ≈ RM 457.

Dia tolak. Parsel balik. Anda rugi kos penghantaran dua hala.

Ini bukan kes terpencil. Ini berlaku setiap minggu kepada merchant Malaysia yang expand ke SG tanpa faham satu isu asas: mata wang COD mesti dalam mata wang negara penerima.

Cara COD lintas sempadan sebenarnya berfungsi

Bila anda hantar order COD ke Singapura melalui Ninja Van, driver dikehendaki kutip dalam SGD — bukan RM. Sistem Ninja Van sendiri expect jumlah dalam SGD dalam payload AWB.

Jadi kalau anda generate AWB dengan jumlah totalAmount: 150 yang sebenarnya adalah RM 150, dan Ninja Van interpret itu sebagai SGD 150 untuk dikutip — pelanggan akan diminta bayar hampir tiga kali ganda.

Peraturan mudah: Untuk order COD ke SG, amount yang dihantar ke Ninja Van mesti dalam SGD. Bukan RM yang diconvert pakai label SGD. SGD sebenar.

Tiga perkara yang perlu anda sediakan

1. Harga dalam SGD, bukan konversi manual

Jangan ambil harga RM anda dan bahagi 3 secara mental. Setup harga SGD dengan betul dalam sistem anda.

Di ARAS, ini berfungsi melalui per-variasi pricing: setiap variasi yang anda nak jual ke SG ada field harga SGD tersendiri. Anda masukkan SGD 45, bukan RM 135.

Kenapa penting? Sebab exchange rate berubah. Kalau anda hardcode RM÷3, anda akan salah harga dalam masa beberapa bulan. Dan bila ada promotion atau rebate, anda nak control kedua-dua harga secara berasingan.

2. Cart dan checkout yang diasingkan untuk SG

Pelanggan SG dan MY tidak sepatutnya ada dalam cart yang sama. Sebabnya mudah: kalau seorang pelanggan dari KL dan seorang dari Singapore ada produk yang sama dalam cart, fee penghantaran, kaedah pembayaran, dan validasi stok mungkin berbeza.

Storefront ARAS mengasingkan cart secara automatik: ?market=SG bermakna cart SG, URL biasa bermakna cart MY. Dua konteks berbeza, tiada crossover.

3. Validasi server-side sebelum order ditulis

Ini yang ramai tidak fikir sampai ada masalah: bila pelanggan checkout, harga yang dipakai untuk order mesti divalidasi di server, bukan dipercayai dari browser.

Kalau harga datang dari browser, sesiapa boleh manipulasi nilai tu. Ini bukan teori — ini vektor serangan yang dokumentasi keselamatan e-dagang ulang sebut.

Untuk SG khususnya, server perlu:

  • Verify variasi tu ada availableMarkets: ['SG']
  • Guna prices.SG untuk compute subtotal (bukan retailPrice RM)
  • Compute shipping fee dalam SGD
  • Simpan originalAmount dalam SGD, originalCurrency: 'SGD', dan exchange rate pada masa order

Ini sebab createStorefrontOrder ARAS buat semua pengiraan server-side — browser hantar intent (produk, kuantiti, alamat), backend compute dan commit.

Apa yang berlaku di pihak Ninja Van

Bila AWB dijana untuk order SG COD:

  • ARAS detect penerima di SG berdasarkan negara atau kod telefon (+65)
  • cash_on_delivery.amount dalam payload API diisi dengan originalAmount dalam SGD
  • Kalau originalAmount tidak ada (order lama atau order sumber lain), ARAS backfill nilai SGD sebelum hantar ke NV

Dua lapisan perlindungan: satu di pushToCourier, satu lagi di createNinjaVanOrder. Keduanya tidak boleh dibuang.

Soal logistik lain yang perlu diberi perhatian

Penghantaran percuma tidak apply secara otomatis untuk SG. Kalau threshold penghantaran percuma anda RM 150, pelanggan SG dengan order SGD 50 (≈ RM 152) mungkin expect percuma — tapi sistem anda perlu tahu threshold SG berbeza atau gunakan logic yang betul.

Flash sale harus dimatikan untuk SG mode sehingga anda ada sistem untuk urus flash sale dalam SGD. Kalau anda run flash sale dalam RM dan SG mode accessible, pelanggan SG boleh exploit perbezaan exchange rate.

Free shipping eligible per produk masih berfungsi untuk SG — kalau produk ditandakan, cart SG pun dapat percuma.

Ringkasan

Jual ke Singapura boleh — tapi bukan "hantar sahaja". Persediaan yang betul:

  1. Set harga SGD per variasi, bukan konversi RM manual
  2. Gunakan sistem yang asingkan cart SG dari cart MY
  3. Pastikan checkout validate dan compute dalam SGD server-side
  4. Pastikan AWB generation hantar cash_on_delivery.amount dalam SGD

Bila semua ini betul, COD ke SG berjalan seperti COD biasa — driver kutip jumlah yang pelanggan expect, tiada kejutan, tiada parsel ditolak.

Risiko PlatformCOD & Kutipansingaporecross-bordercodsgdninja-van
Glosari istilah →

Seller COD pun guna ARAS untuk kawal aliran tunai.

Bila order, AWB, status, dan settlement duduk dalam satu tempat, operasi COD jadi lebih senang dipantau.