Poin utama

  • Uji entri manual, isi otomatis browser, dan saran alamat
  • Hitung ulang tanggal pengiriman, pajak, dan pengiriman setelah koreksi
  • Izinkan alamat penagihan dan pengiriman berbeda
  • Jadikan pengiriman pesanan akhir idempoten

Penulis dan tinjauan

Prinsip editorial
Ditulis oleh
Tim Editorial Penghasil Alamat Acak
Ditinjau oleh
Formulir dan Tim Peninjau QA
Pembaruan substantif terakhir
Menambahkan koreksi alamat, perhitungan ulang pengiriman, pemisahan penagihan, penyerahan idempoten, dan kasus seluler.

Entri alamat memiliki banyak jalur

Meliputi entri keyboard, isi otomatis browser, tempel multibaris, saran, dan alamat tersimpan. Setiap jalur harus menghasilkan satu kontrak API dengan tetap mempertahankan detail negara dan unit.

Batas waktu saran tidak boleh menghalangi entri manual yang valid. Jelaskan bahwa pembeli dapat melanjutkan daripada menjebak mereka dalam daftar kosong.

JalanPenegasan intiKegagalan umum
petunjukKirim tanpa saranMemaksa pilihan daftar
Autofill perambanSemua pembaruan status dependen diaktifkanNilai yang terisi masih dianggap kosong
SaranKeyboard dan pembaca layar berfungsiInteraksi hanya dengan mouse
Alamat tersimpanPenawaran pengiriman dihitung ulangKutipan sebelumnya masih ada

Jaga agar pembelanja tetap mengendalikan koreksi

Tampilkan alamat yang dimasukkan dan disarankan secara berdampingan, sorot perubahan, dan izinkan alamat asli. Jangan pernah diam-diam mencantumkan nama apartemen atau gedung.

Uji terima, pertahankan, buka kembali, batas waktu, dan saran hilang baris 2.

Hitung ulang metode pengiriman, pajak, dan pengiriman

Pengeditan negara, wilayah, atau kode pos dapat membuat metode tidak valid dan mengubah pengiriman, pajak, ambang batas, dan tanggal. Blokir pengiriman akhir hingga penawaran baru tiba.

Pengeditan cepat membuat kutipan bersamaan. Terapkan hanya hasil yang cocok dengan versi alamat terbaru.

  • Hapus metode yang tidak valid setelah perubahan negara
  • Perbarui pengiriman dan pajak secara bersamaan
  • Abaikan tanggapan kutipan basi
  • Pertahankan keranjang dan alamat setelah kegagalan

Penagihan dan pengiriman memerlukan salinan independen yang dapat diedit

Sama seperti pengiriman dapat membuat salinan, namun keduanya tidak boleh berbagi objek yang bisa berubah. Mengedit penagihan setelah menghapus centang tidak boleh mengubah pengiriman.

Gunakan sandbox penyedia pembayaran dan pemicu yang terdokumentasi, bukan data acak untuk pemeriksaan alamat pembayaran.

shippingAddress = structuredClone(selectedAddress);
billingAddress = sameAsShipping
  ? structuredClone(shippingAddress)
  : enteredBillingAddress;

Jadikan penyerahan akhir idempoten dan potret alamatnya

Klik dua kali, percobaan ulang batas waktu, dan navigasi kembali seluler dapat mengulangi permintaan. Nonaktifkan tindakan UI berulang dan gunakan kunci idempotensi sisi server.

Simpan cuplikan alamat yang dikonfirmasi dan versi penawaran pada pesanan alih-alih hanya mereferensikan entri buku alamat yang dapat diedit.

Cakupan seluler harus mencakup keyboard perangkat lunak yang menyembunyikan tindakan utama, memindahkan aplikasi ke latar belakang lalu memulihkan halaman, dan kembali dari otorisasi pembayaran eksternal. Saat melanjutkan, kueri pesanan yang ada atau permintaan idempoten sebelum mengirim operasi pembuatan lainnya.

Audit pesanan yang alamatnya berubah dua kali saat checkout. Cuplikannya harus berisi versi akhir yang dikonfirmasi, penawaran pengirimannya harus termasuk dalam versi tersebut, dan pengeditan selanjutnya pada buku alamat pembeli tidak boleh menulis ulang riwayat pesanan.

Uji juga kegagalan yang ambigu: waktu browser habis setelah pengiriman, tetapi server telah membuat pesanan. Percobaan ulang dengan kunci yang sama harus mengembalikan hasil asli, bukan membebankan biaya lagi atau mencadangkan inventaris dua kali. Alat pendukung harus mengekspos kunci permintaan, versi alamat, dan pengidentifikasi pesanan tanpa menampilkan alamat lengkap di log rutin. Hal ini membuat pemulihan dapat diuji sambil membatasi akses data pribadi yang tidak diperlukan.

  • Simulasikan klik dua kali, coba lagi batas waktu, dan pengembalian pembayaran
  • Status idempoten kueri setelah restorasi halaman
  • Cocokkan alamat pesanan dan versi penawaran
  • Buka kembali riwayat setelah mengedit buku alamat

Pertanyaan umum

Haruskah penghentian saran memblokir pembayaran?

Belum tentu. Tergantung pada risikonya, izinkan konfirmasi manual dan tandai alamat belum diverifikasi.

Apa yang berubah setelah edit kode pos?

Hitung ulang metode pengiriman, biaya pengiriman, tanggal, dan pajak yang relevan, sambil mengabaikan tanggapan yang sudah usang.

Apakah menonaktifkan tombol mencegah duplikat pesanan?

Tidak sepenuhnya. Server juga memerlukan kunci idempotensi atau perlindungan percobaan ulang yang setara.

Sumber dan bacaan

  1. MDN: Pelengkapan otomatis formulir alamat
  2. W3C WAI: Pemberitahuan kesalahan formulir