Các phương pháp hay nhất về biểu mẫu thanh toán và biểu mẫu địa chỉ

Tối đa hoá lượt chuyển đổi bằng cách giúp người dùng hoàn tất biểu mẫu địa chỉ và thanh toán nhanh chóng và dễ dàng nhất có thể.

Biểu mẫu được thiết kế tốt sẽ giúp người dùng và tăng tỷ lệ chuyển đổi. Một thay đổi nhỏ có thể tạo nên khác biệt lớn!

Sau đây là ví dụ về một hình thức thanh toán đơn giản, thể hiện tất cả các phương pháp hay nhất:

Sau đây là ví dụ về một biểu mẫu địa chỉ đơn giản minh hoạ tất cả các phương pháp hay nhất:

Danh sách kiểm tra

Sử dụng HTML có ý nghĩa

Sử dụng các phần tử và thuộc tính được tạo cho công việc:

  • <form>, <input>, <label><button>
  • type, autocompleteinputmode

Các thuật toán này kích hoạt chức năng tích hợp sẵn của trình duyệt, cải thiện khả năng tiếp cận và thêm ý nghĩa cho mục đánh dấu của bạn.

Sử dụng các phần tử HTML đúng mục đích

Đặt biểu mẫu của bạn trong <form>

Bạn có thể không cần phải gói các phần tử <input> trong <form> và chỉ xử lý dữ liệu gửi bằng JavaScript.

Đừng làm vậy!

<form> HTML cho phép bạn sử dụng một bộ tính năng tích hợp mạnh mẽ trên tất cả trình duyệt hiện đại, đồng thời có thể giúp trình đọc màn hình và các thiết bị hỗ trợ tiếp cận khác truy cập vào trang web của bạn. <form> cũng giúp đơn giản hoá việc xây dựng chức năng cơ bản cho các trình duyệt cũ có hỗ trợ JavaScript hạn chế và cho phép gửi biểu mẫu ngay cả khi mã của bạn có sự cố – và cho một số ít người dùng thực sự tắt JavaScript.

Nếu bạn có nhiều thành phần trang để người dùng nhập, hãy nhớ đặt từng thành phần vào phần tử <form> riêng. Ví dụ: nếu bạn có tính năng tìm kiếm và đăng ký trên cùng một trang, hãy đặt từng tính năng vào <form> riêng.

Dùng <label> để gắn nhãn các phần tử

Để gắn nhãn cho <input>, <select> hoặc <textarea>, hãy sử dụng <label>.

Liên kết một nhãn với một dữ liệu đầu vào bằng cách gán cho thuộc tính for của nhãn đó cùng một giá trị với id của dữ liệu đầu vào đó.

<label for="address-line1">Address line 1</label>
<input id="address-line1" …>

Sử dụng một nhãn duy nhất cho một giá trị nhập duy nhất: đừng cố gắng gắn nhãn nhiều giá trị đầu vào chỉ bằng một nhãn. Phương thức này hoạt động hiệu quả nhất đối với trình duyệt và trình đọc màn hình. Thao tác nhấn hoặc nhấp vào một nhãn sẽ di chuyển tiêu điểm đến dữ liệu đầu vào liên kết với nhãn đó và trình đọc màn hình sẽ thông báo văn bản nhãn khi nhãn hoặc dữ liệu đầu vào của nhãn nhận được tiêu điểm.

Làm cho các nút trở nên hữu ích

Sử dụng <button> cho các nút! Bạn cũng có thể sử dụng <input type="submit">, nhưng đừng sử dụng div hoặc một số phần tử ngẫu nhiên khác đóng vai trò là nút. Các thành phần nút cung cấp hành vi hỗ trợ tiếp cận, chức năng gửi biểu mẫu tích hợp sẵn và có thể dễ dàng tạo kiểu.

Đặt giá trị cho mỗi nút gửi biểu mẫu để cho biết chức năng của nút đó. Đối với mỗi bước thanh toán, hãy sử dụng lời kêu gọi hành động mô tả cho biết tiến trình và làm rõ bước tiếp theo. Ví dụ: gắn nhãn Tiếp tục thanh toán cho nút gửi trên biểu mẫu địa chỉ giao hàng thay vì Tiếp tục hoặc Lưu.

Cân nhắc việc tắt nút gửi sau khi người dùng nhấn hoặc nhấp vào nút đó, đặc biệt là khi người dùng đang thanh toán hoặc đặt hàng. Nhiều người dùng nhấp vào nút nhiều lần, ngay cả khi các nút đó vẫn hoạt động bình thường. Điều đó có thể làm rối quy trình thanh toán và làm tăng tải máy chủ.

Mặt khác, đừng vô hiệu hoá nút gửi khi người dùng đang chờ hoạt động đầu vào hoàn chỉnh và hợp lệ. Ví dụ: đừng chỉ tắt nút Lưu địa chỉ vì thiếu hoặc không hợp lệ. Điều đó không giúp ích gì cho người dùng – họ có thể tiếp tục nhấn hoặc nhấp vào nút và cho rằng nút đó bị hỏng. Thay vào đó, nếu người dùng cố gắng gửi một biểu mẫu có dữ liệu không hợp lệ, hãy giải thích cho họ biết vấn đề và cách khắc phục. Điều này đặc biệt quan trọng trên thiết bị di động, nơi việc nhập dữ liệu khó khăn hơn và dữ liệu biểu mẫu bị thiếu hoặc không hợp lệ có thể không hiển thị trên màn hình của người dùng vào thời điểm họ cố gắng gửi biểu mẫu.

Khai thác tối đa thuộc tính HTML

Giúp người dùng dễ dàng nhập dữ liệu

Sử dụng thuộc tính type đầu vào thích hợp để cung cấp bàn phím phù hợp trên thiết bị di động và bật tính năng xác thực tích hợp cơ bản của trình duyệt.

Ví dụ: sử dụng type="email" cho địa chỉ email và type="tel" cho số điện thoại.

Hai ảnh chụp màn hình điện thoại Android, hiển thị bàn phím phù hợp để nhập địa chỉ email (sử dụng type=email) và để nhập số điện thoại (với type=tel).
Bàn phím phù hợp với email và điện thoại.

Đối với ngày, hãy cố gắng tránh sử dụng các phần tử select tuỳ chỉnh. Các lỗi này sẽ làm hỏng trải nghiệm tự động điền nếu không được triển khai đúng cách và không hoạt động trên các trình duyệt cũ. Đối với các số như năm sinh, hãy cân nhắc sử dụng phần tử input thay vì select, vì việc nhập chữ số theo cách thủ công có thể dễ dàng hơn và ít gặp lỗi hơn so với việc chọn trong danh sách thả xuống dài, đặc biệt là trên thiết bị di động. Sử dụng inputmode="numeric" để đảm bảo bàn phím phù hợp trên thiết bị di động, đồng thời thêm tính năng xác thực và gợi ý định dạng bằng văn bản hoặc phần giữ chỗ để đảm bảo người dùng nhập dữ liệu ở định dạng thích hợp.

Sử dụng tính năng tự động hoàn thành để cải thiện khả năng hỗ trợ tiếp cận và giúp người dùng tránh nhập lại dữ liệu

Việc sử dụng các giá trị autocomplete thích hợp cho phép trình duyệt giúp người dùng bằng cách lưu trữ dữ liệu một cách an toàn và tự động điền các giá trị input, selecttextarea. Điều này đặc biệt quan trọng trên thiết bị di động và rất quan trọng để tránh tỷ lệ bỏ ngang biểu mẫu cao. Tính năng tự động hoàn thành cũng mang lại nhiều lợi ích về khả năng hỗ trợ tiếp cận.

Nếu có giá trị tự động hoàn thành phù hợp cho một trường trong biểu mẫu, bạn nên sử dụng giá trị đó. Tài liệu web MDN có danh sách đầy đủ các giá trị và nội dung giải thích về cách sử dụng đúng cách.

Giá trị ổn định

Địa chỉ thanh toán

Theo mặc định, hãy đặt địa chỉ thanh toán giống với địa chỉ giao hàng. Giảm sự lộn xộn về hình ảnh bằng cách cung cấp đường liên kết để chỉnh sửa địa chỉ thanh toán (hoặc sử dụng phần tử summarydetails) thay vì hiển thị địa chỉ thanh toán trong biểu mẫu.

Ví dụ về trang thanh toán cho thấy đường liên kết để thay đổi địa chỉ thanh toán.
Thêm đường liên kết để xem lại thông tin thanh toán.

Sử dụng các giá trị tự động điền thích hợp cho địa chỉ thanh toán, giống như bạn làm cho địa chỉ giao hàng, để người dùng không phải nhập dữ liệu nhiều lần. Thêm một từ tiền tố vào các thuộc tính tự động hoàn thành nếu bạn có các giá trị khác nhau cho dữ liệu đầu vào có cùng tên trong các phần khác nhau.

<input autocomplete="shipping address-line-1" ...>
...
<input autocomplete="billing address-line-1" ...>

Giúp người dùng nhập dữ liệu phù hợp

Cố gắng tránh "nói sai" khách hàng vì họ "đã làm sai". Thay vào đó, hãy giúp người dùng hoàn tất biểu mẫu nhanh chóng và dễ dàng hơn bằng cách giúp họ khắc phục sự cố khi sự cố xảy ra. Trong quy trình thanh toán, khách hàng đang cố gắng trả tiền cho công ty của bạn để mua một sản phẩm hoặc dịch vụ. Việc của bạn là hỗ trợ họ chứ không phải trừng phạt họ!

Bạn có thể thêm thuộc tính quy tắc ràng buộc vào các phần tử biểu mẫu để chỉ định các giá trị chấp nhận được, bao gồm min, maxpattern. Trạng thái hợp lệ của phần tử được đặt tự động tuỳ thuộc vào việc giá trị của phần tử có hợp lệ hay không, cũng như các lớp giả lập CSS :valid:invalid có thể được dùng để tạo kiểu cho các phần tử có giá trị hợp lệ hoặc không hợp lệ.

Ví dụ: HTML sau đây chỉ định dữ liệu đầu vào cho năm sinh từ năm 1900 đến năm 2020. Việc sử dụng type="number" sẽ ràng buộc các giá trị đầu vào chỉ ở dạng số, trong phạm vi do minmax chỉ định. Nếu bạn cố gắng nhập một số nằm ngoài phạm vi, thì dữ liệu đầu vào sẽ được đặt trạng thái không hợp lệ.

Ví dụ sau sử dụng pattern="[\d ]{10,30}" để đảm bảo số thẻ thanh toán hợp lệ, đồng thời cho phép dấu cách:

Các trình duyệt hiện đại cũng thực hiện quy trình xác thực cơ bản cho dữ liệu đầu vào có loại email hoặc url.

Khi gửi biểu mẫu, trình duyệt tự động đặt tiêu điểm vào các trường có giá trị bắt buộc có vấn đề hoặc bị thiếu. Không cần JavaScript!

Ảnh chụp màn hình của một biểu mẫu đăng nhập trong Chrome trên máy tính cho thấy lời nhắc của trình duyệt và tiêu điểm cho một giá trị email không hợp lệ.
Trình duyệt xác thực tích hợp cơ bản.

Xác thực cùng dòng và cung cấp phản hồi cho người dùng khi họ nhập dữ liệu, thay vì cung cấp danh sách lỗi khi họ nhấp vào nút gửi. Nếu bạn cần xác thực dữ liệu trên máy chủ sau khi gửi biểu mẫu, hãy liệt kê tất cả vấn đề phát hiện được và làm nổi bật rõ ràng tất cả trường biểu mẫu có giá trị không hợp lệ, cũng như hiển thị thông báo cùng dòng bên cạnh mỗi trường có vấn đề để giải thích những gì cần khắc phục. Kiểm tra nhật ký máy chủ và dữ liệu phân tích để tìm lỗi thường gặp. Bạn có thể cần thiết kế lại biểu mẫu.

Bạn cũng nên sử dụng JavaScript để xác thực mạnh mẽ hơn trong khi người dùng nhập dữ liệu và khi gửi biểu mẫu. Sử dụng Constraint Validation API (được hỗ trợ rộng rãi) để thêm tính năng xác thực tuỳ chỉnh bằng cách sử dụng giao diện người dùng trình duyệt tích hợp để đặt tiêu điểm và hiển thị lời nhắc.

Tìm hiểu thêm trong phần Sử dụng JavaScript để xác thực theo thời gian thực phức tạp hơn.

Giúp người dùng tránh bị thiếu dữ liệu bắt buộc

Sử dụng thuộc tính required cho các giá trị bắt buộc.

Khi biểu mẫu được gửi, các trình duyệt hiện đại sẽ tự động nhắc và đặt trọng tâm vào các trường required bị thiếu dữ liệu. Bạn có thể sử dụng lớp giả :required để làm nổi bật các trường bắt buộc. Không yêu cầu JavaScript!

Thêm dấu hoa thị vào nhãn cho mọi trường bắt buộc và thêm một ghi chú ở đầu biểu mẫu để giải thích ý nghĩa của dấu hoa thị.

Đơn giản hoá quy trình thanh toán

Hãy chú ý đến khoảng cách thương mại trên thiết bị di động!

Hãy tưởng tượng rằng người dùng của bạn có một ngân sách mệt mỏi. Nếu bạn sử dụng hết, người dùng sẽ rời bỏ ứng dụng của bạn.

Bạn cần giảm thiểu sự phiền toái và duy trì sự tập trung, đặc biệt là trên thiết bị di động. Nhiều trang web có nhiều lưu lượng truy cập hơn trên thiết bị di động nhưng có nhiều lượt chuyển đổi hơn trên máy tính. Đây là hiện tượng được gọi là khoảng cách thương mại trên thiết bị di động. Có thể khách hàng chỉ muốn hoàn tất giao dịch mua trên máy tính, nhưng tỷ lệ chuyển đổi trên thiết bị di động thấp hơn cũng là do trải nghiệm người dùng kém. Nhiệm vụ của bạn là giảm thiểu số lượt chuyển đổi bị mất trên thiết bị di động và tối đa hoá số lượt chuyển đổi trên máy tính. Nghiên cứu đã chỉ ra rằng có rất nhiều cơ hội để mang lại trải nghiệm tốt hơn cho biểu mẫu trên thiết bị di động.

Quan trọng nhất là người dùng có nhiều khả năng bỏ dở những biểu mẫu có vẻ dài dòng, phức tạp và không có hướng dẫn. Điều này đặc biệt đúng khi người dùng sử dụng màn hình nhỏ hơn, bị phân tâm hoặc vội vàng. Yêu cầu ít dữ liệu nhất có thể.

Đặt chế độ thanh toán không cần đăng nhập làm chế độ mặc định

Đối với cửa hàng trực tuyến, cách đơn giản nhất để giảm sự phiền hà khi điền thông tin vào biểu mẫu là đặt chế độ thanh toán không cần đăng nhập làm chế độ mặc định. Không buộc người dùng tạo tài khoản trước khi mua hàng. Việc không cho phép khách thanh toán được coi là lý do chính khiến khách hàng bỏ dở giỏ hàng.

Lý do khiến người dùng bỏ ngang giỏ hàng trong quá trình thanh toán.
Từ baymard.com/checkout-usability

Bạn có thể cho phép người dùng đăng ký tài khoản sau khi thanh toán. Khi đó, bạn đã có hầu hết dữ liệu cần thiết để thiết lập tài khoản, vì vậy, người dùng có thể tạo tài khoản nhanh chóng và dễ dàng.

Hiển thị tiến trình thanh toán

Bạn có thể giúp quy trình thanh toán trở nên đơn giản hơn bằng cách cho thấy tiến trình và nêu rõ việc cần làm tiếp theo. Video dưới đây cho thấy cách nhà bán lẻ johnlewis.com ở Vương quốc Anh đạt được điều này.

Hiển thị tiến trình thanh toán.

Bạn cần duy trì đà phát triển! Đối với mỗi bước thanh toán, hãy sử dụng tiêu đề trang và giá trị nút mô tả để cho biết rõ việc cần làm ngay và bước thanh toán tiếp theo.

Đặt tên có ý nghĩa cho các nút trong biểu mẫu để cho biết bước tiếp theo.

Dùng thuộc tính enterkeyhint trên các thao tác nhập vào biểu mẫu để đặt nhãn phím enter trên bàn phím di động. Ví dụ: sử dụng enterkeyhint="previous"enterkeyhint="next" trong một biểu mẫu nhiều trang, enterkeyhint="done" cho dữ liệu đầu vào cuối cùng trong biểu mẫu và enterkeyhint="search" cho dữ liệu đầu vào tìm kiếm.

Hai ảnh chụp màn hình của một biểu mẫu địa chỉ trên Android cho thấy cách thuộc tính đầu vào enterkeyhint thay đổi biểu tượng nút phím enter.
Nhập các nút chính trên Android: "tiếp theo" và "Xong".

Thuộc tính enterkeyhint được hỗ trợ trên Android và iOS. Bạn có thể tìm hiểu thêm trong hướng dẫn giải thích gợi ý mật khẩu.

Giúp người dùng dễ dàng qua lại trong quy trình thanh toán để dễ dàng điều chỉnh đơn đặt hàng, ngay cả khi họ đang ở bước thanh toán cuối cùng. Hiển thị toàn bộ thông tin chi tiết về đơn đặt hàng, chứ không chỉ một bản tóm tắt hạn chế. Cho phép người dùng dễ dàng điều chỉnh số lượng mặt hàng trên trang thanh toán. Ưu tiên của bạn tại bước thanh toán là tránh làm gián đoạn tiến trình chuyển đổi.

Loại bỏ chi tiết thừa

Hạn chế các điểm thoát tiềm ẩn bằng cách loại bỏ các yếu tố gây rối mắt và mất tập trung, chẳng hạn như quảng cáo sản phẩm. Nhiều nhà bán lẻ thành công thậm chí còn xoá tính năng điều hướng và tìm kiếm khỏi quy trình thanh toán.

Hai ảnh chụp màn hình trên thiết bị di động cho thấy tiến trình thanh toán trên johnlewis.com. Xoá tính năng tìm kiếm, điều hướng và các yếu tố gây mất tập trung khác.
Loại bỏ tính năng tìm kiếm, điều hướng và các yếu tố gây mất tập trung khác cho quy trình thanh toán.

Luôn tập trung vào hành trình. Đây không phải là thời điểm để dụ dỗ người dùng làm việc khác!

Ảnh chụp màn hình trang thanh toán trên thiết bị di động cho thấy chương trình khuyến mãi gây mất tập trung về FREE STICKERS (HÌNH DÁN MIỄN PHÍ).
Đừng làm khách hàng mất tập trung khi hoàn tất giao dịch mua.

Đối với người dùng cũ, bạn có thể đơn giản hoá quy trình thanh toán hơn nữa bằng cách ẩn dữ liệu mà họ không cần xem. Ví dụ: hiển thị địa chỉ giao hàng ở dạng văn bản thuần tuý (không phải trong biểu mẫu) và cho phép người dùng thay đổi địa chỉ đó thông qua một đường liên kết.

Ảnh chụp màn hình mục &quot;Xem lại đơn đặt hàng&quot; trên trang thanh toán, trong đó hiển thị văn bản ở dạng văn bản thuần tuý cùng các đường liên kết để thay đổi địa chỉ giao hàng, phương thức thanh toán và địa chỉ thanh toán. Tuy nhiên, những yếu tố này sẽ không xuất hiện.
Ẩn dữ liệu mà khách hàng không cần xem.

Giúp người dùng dễ dàng nhập tên và địa chỉ

Chỉ yêu cầu dữ liệu bạn cần

Trước khi bắt đầu lập trình biểu mẫu tên và địa chỉ, hãy đảm bảo bạn hiểu rõ những dữ liệu cần thiết. Đừng yêu cầu dữ liệu mà bạn không cần! Cách đơn giản nhất để giảm độ phức tạp của biểu mẫu là xoá các trường không cần thiết. Điều này cũng tốt cho quyền riêng tư của khách hàng và có thể giảm chi phí và trách nhiệm pháp lý liên quan đến dữ liệu phụ trợ.

Sử dụng một phương thức nhập tên

Cho phép người dùng nhập tên của họ bằng một thông tin đầu vào duy nhất, trừ phi bạn có lý do chính đáng để lưu trữ riêng tên, họ, kính ngữ hoặc các phần tên khác. Việc sử dụng thông tin đầu vào tên duy nhất giúp biểu mẫu bớt phức tạp, cho phép cắt và dán, đồng thời giúp tính năng tự động điền trở nên đơn giản hơn.

Cụ thể, trừ phi bạn có lý do chính đáng để từ chối, đừng bận tâm đến việc thêm dữ liệu đầu vào riêng cho tiền tố hoặc tên phim (như Mrs, Dr hoặc Lord). Người dùng có thể nhập tên của họ vào đó nếu muốn. Ngoài ra, tính năng tự động hoàn thành của honorific-prefix hiện không hoạt động trên hầu hết các trình duyệt. Vì vậy, việc thêm một trường cho tiền tố tên hoặc tiêu đề sẽ làm gián đoạn trải nghiệm tự động điền biểu mẫu địa chỉ đối với hầu hết người dùng.

Bật tính năng tự động điền tên

Sử dụng name cho tên đầy đủ:

<input autocomplete="name" ...>

Nếu bạn thực sự có lý do để phân tách các phần tên, hãy nhớ sử dụng các giá trị tự động hoàn thành phù hợp:

  • honorific-prefix
  • given-name
  • nickname
  • additional-name-initial
  • additional-name
  • family-name
  • honorific-suffix

Cho phép tên quốc tế

Bạn nên xác thực dữ liệu tên đầu vào hoặc hạn chế các ký tự được phép cho dữ liệu tên. Tuy nhiên, bạn cần phải không hạn chế chữ cái nhất có thể. Thật thô lỗ khi bị nói rằng tên của bạn "không hợp lệ"!

Để xác thực, hãy tránh sử dụng biểu thức chính quy chỉ khớp với các ký tự La-tinh. Chỉ Latinh sẽ loại trừ những người dùng có tên hoặc địa chỉ chứa các ký tự không có trong bảng chữ cái Latinh. Thay vào đó, hãy cho phép so khớp chữ cái Unicode và đảm bảo rằng phần phụ trợ của bạn hỗ trợ Unicode một cách an toàn cả ở đầu vào và đầu ra. Unicode trong biểu thức chính quy được các trình duyệt hiện đại hỗ trợ tốt.

Không nên
<!-- Names with non-Latin characters (such as Françoise or Jörg) are 'invalid'. -->
<input pattern="[\w \-]+" ...>
Nên
<!-- Accepts Unicode letters. -->
<input pattern="[\p{L} \-]+" ...>
So sánh tính năng so khớp chữ cái Unicode với tính năng so khớp chữ cái chỉ có chữ cái Latinh.

Cho phép nhiều định dạng địa chỉ

Khi bạn thiết kế biểu mẫu địa chỉ, hãy lưu ý đến sự đa dạng của các định dạng địa chỉ, ngay cả trong một quốc gia. Hãy cẩn thận để không đưa ra giả định về địa chỉ "bình thường". (Hãy xem bài viết Địa chỉ kỳ lạ ở Vương quốc Anh! nếu bạn chưa tin!)

Làm cho biểu mẫu địa chỉ linh hoạt

Đừng buộc người dùng phải cố gắng nhét địa chỉ của họ vào các trường biểu mẫu không vừa.

Ví dụ: đừng bắt buộc phải nhập số nhà và tên đường trong các trường nhập riêng biệt, vì nhiều địa chỉ không sử dụng định dạng đó và dữ liệu không đầy đủ có thể làm hỏng tính năng tự động điền của trình duyệt.

Hãy đặc biệt cẩn thận với các trường địa chỉ required. Ví dụ: địa chỉ ở các thành phố lớn ở Vương quốc Anh không có hạt, nhưng nhiều trang web vẫn buộc người dùng phải nhập hạt.

Việc sử dụng hai dòng địa chỉ linh hoạt có thể phù hợp với nhiều định dạng địa chỉ.

<input autocomplete="address-line-1" id="address-line1" ...>
<input autocomplete="address-line-2" id="address-line2" ...>

Thêm nhãn để so khớp:

<label for="address-line-1">
Address line 1 (or company name)
</label>
<input autocomplete="address-line-1" id="address-line1" ...>

<label for="address-line-2">
Address line 2 (optional)
</label>
<input autocomplete="address-line-2" id="address-line2" ...>

Bạn có thể thử tính năng này bằng cách phối lại và chỉnh sửa bản minh hoạ được nhúng bên dưới.

Cân nhắc sử dụng một vùng văn bản duy nhất cho địa chỉ

Lựa chọn linh hoạt nhất cho địa chỉ là cung cấp một textarea.

Phương pháp textarea phù hợp với mọi định dạng địa chỉ và rất phù hợp để cắt và dán. Tuy nhiên, hãy lưu ý rằng phương pháp này có thể không phù hợp với yêu cầu về dữ liệu của bạn và người dùng có thể bỏ lỡ tính năng tự động điền nếu trước đó họ chỉ sử dụng các biểu mẫu có address-line1address-line2.

Đối với vùng văn bản, hãy sử dụng street-address làm giá trị tự động hoàn thành.

Dưới đây là ví dụ về một biểu mẫu minh hoạ cách sử dụng một textarea cho địa chỉ:

Quốc tế hoá và bản địa hoá mẫu địa chỉ

Đặc biệt, bạn cần xem xét việc quốc tế hoá và bản địa hoá cho biểu mẫu địa chỉ, tuỳ thuộc vào vị trí của người dùng.

Xin lưu ý rằng cách đặt tên cho các phần địa chỉ cũng khác nhau như định dạng địa chỉ, ngay cả trong cùng một ngôn ngữ.

    ZIP code: US
 Postal code: Canada
    Postcode: UK
     Eircode: Ireland
         PIN: India

Bạn có thể cảm thấy khó chịu hoặc khó hiểu khi thấy một biểu mẫu không phù hợp với địa chỉ của mình hoặc không sử dụng những từ mà bạn mong đợi.

Bạn có thể cần tuỳ chỉnh biểu mẫu địa chỉ cho nhiều ngôn ngữ cho trang web của mình, nhưng bạn nên sử dụng các kỹ thuật để tăng tối đa tính linh hoạt của biểu mẫu (như mô tả ở trên). Nếu bạn không bản địa hoá biểu mẫu địa chỉ, hãy nhớ nắm được những vấn đề ưu tiên chính để xử lý nhiều định dạng địa chỉ: * Tránh trình bày quá cụ thể về các phần địa chỉ, chẳng hạn như chỉ định tên đường hoặc số nhà. * Tránh tạo trường required nếu có thể. Ví dụ: địa chỉ ở nhiều quốc gia không có mã bưu chính và địa chỉ ở vùng nông thôn có thể không có tên đường. * Sử dụng tên bao gồm: "Quốc gia/khu vực" thay vì "Quốc gia"; "Mã zip/mã bưu chính" thay vì "Mã zip".

Hãy linh hoạt! Ví dụ về biểu mẫu địa chỉ đơn giản ở trên có thể được điều chỉnh để hoạt động "đủ tốt" cho nhiều ngôn ngữ.

Cân nhắc việc tránh tra cứu địa chỉ theo mã bưu chính

Một số trang web sử dụng dịch vụ tra cứu địa chỉ dựa trên mã bưu chính hoặc mã zip. Điều này có thể hợp lý đối với một số trường hợp sử dụng, nhưng bạn nên lưu ý đến những nhược điểm tiềm ẩn.

Tính năng đề xuất địa chỉ theo mã bưu chính không hoạt động ở một số quốc gia và ở một số khu vực, mã bưu chính có thể bao gồm một lượng lớn địa chỉ tiềm năng.

Mã zip hoặc mã bưu chính có thể bao gồm nhiều địa chỉ!

Người dùng khó có thể chọn trong danh sách dài địa chỉ, đặc biệt là trên thiết bị di động nếu họ đang vội hoặc căng thẳng. Việc cho phép người dùng tận dụng tính năng tự động điền và nhập địa chỉ đầy đủ được điền bằng một lần nhấn hoặc nhấp có thể trở nên dễ dàng và ít gặp lỗi hơn.

Chỉ cần nhập một tên là bạn có thể nhập địa chỉ bằng một lần nhấn (một lần nhấp).

Đơn giản hoá biểu mẫu thanh toán

Biểu mẫu thanh toán là phần quan trọng nhất trong quy trình thanh toán. Thiết kế biểu mẫu thanh toán kém là một nguyên nhân phổ biến khiến khách hàng bỏ dở giỏ hàng. Điều quan trọng nằm ở chi tiết: các lỗi nhỏ có thể khiến người dùng bỏ dở giao dịch mua, đặc biệt là trên thiết bị di động. Công việc của bạn là thiết kế các biểu mẫu để giúp người dùng nhập dữ liệu dễ dàng nhất có thể.

Giúp người dùng tránh phải nhập lại dữ liệu thanh toán

Hãy nhớ thêm các giá trị autocomplete thích hợp vào biểu mẫu thẻ thanh toán, bao gồm cả số thẻ thanh toán, tên trên thẻ cũng như tháng và năm hết hạn:

  • cc-number
  • cc-name
  • cc-exp-month
  • cc-exp-year

Điều này cho phép trình duyệt giúp người dùng bằng cách lưu trữ an toàn thông tin thẻ thanh toán và nhập chính xác dữ liệu biểu mẫu. Nếu không có tính năng tự động hoàn thành, người dùng có nhiều khả năng sẽ lưu giữ bản ghi thực tế về thông tin thẻ thanh toán hoặc lưu trữ dữ liệu thẻ thanh toán một cách không an toàn trên thiết bị của họ.

Tránh sử dụng phần tử tuỳ chỉnh cho ngày trên thẻ thanh toán

Nếu không được thiết kế đúng cách, các phần tử tuỳ chỉnh có thể làm gián đoạn quy trình thanh toán do lỗi tự động điền và sẽ không hoạt động trên các trình duyệt cũ. Nếu mọi thông tin khác về thẻ thanh toán có trong tính năng tự động hoàn thành nhưng người dùng buộc phải tìm thẻ thanh toán thực để tra cứu ngày hết hạn vì tính năng tự động điền không hoạt động đối với phần tử tuỳ chỉnh, thì bạn có thể mất một giao dịch bán hàng. Thay vào đó, hãy cân nhắc sử dụng các phần tử HTML chuẩn và tạo kiểu cho các phần tử đó cho phù hợp.

Ảnh chụp màn hình biểu mẫu thanh toán cho thấy các phần tử tuỳ chỉnh cho ngày hết hạn thẻ làm gián đoạn tính năng tự động điền.
Tính năng tự động hoàn thành đã điền tất cả các trường, ngoại trừ ngày hết hạn!

Sử dụng một mục nhập duy nhất cho thẻ thanh toán và số điện thoại

Đối với số thẻ thanh toán và số điện thoại, hãy sử dụng một phương thức nhập duy nhất: không chia số thành các phần. Điều này giúp người dùng dễ dàng nhập dữ liệu, đơn giản hoá quy trình xác thực và cho phép trình duyệt tự động điền. Cân nhắc làm tương tự với các dữ liệu số khác như mã PIN và mã ngân hàng.

Ảnh chụp màn hình biểu mẫu thanh toán cho thấy một trường thẻ tín dụng được chia thành 4 phần tử đầu vào.
Không sử dụng nhiều phương thức nhập cho số thẻ tín dụng.

Xác thực cẩn thận

Bạn nên xác thực hoạt động nhập dữ liệu cả theo thời gian thực và trước khi gửi biểu mẫu. Một cách để thực hiện việc này là thêm thuộc tính pattern vào phương thức nhập thẻ thanh toán. Nếu người dùng cố gắng gửi biểu mẫu thanh toán có giá trị không hợp lệ, thì trình duyệt sẽ hiển thị thông báo cảnh báo và tập trung vào thông tin nhập. Không yêu cầu JavaScript!

Tuy nhiên, biểu thức chính quy pattern phải đủ linh hoạt để xử lý phạm vi độ dài số thẻ thanh toán: từ 14 chữ số (hoặc có thể ít hơn) đến 20 chữ số (hoặc nhiều hơn). Bạn có thể tìm hiểu thêm về cấu trúc số thẻ thanh toán từ LDAPwiki.

Cho phép người dùng thêm dấu cách khi nhập số thẻ thanh toán mới, vì đây là cách số xuất hiện trên thẻ thực. Điều đó thân thiện hơn với người dùng (bạn sẽ không phải nói với họ rằng "họ đã làm gì sai"), ít có khả năng làm gián đoạn luồng chuyển đổi và bạn cũng có thể xoá dấu cách trong số trước khi xử lý cũng rất đơn giản.

Kiểm thử trên nhiều thiết bị, nền tảng, trình duyệt và phiên bản

Điều đặc biệt quan trọng là bạn phải kiểm thử biểu mẫu địa chỉ và thanh toán trên các nền tảng phổ biến nhất với người dùng, vì chức năng và giao diện của phần tử biểu mẫu có thể khác nhau, đồng thời sự khác biệt về kích thước khung nhìn có thể dẫn đến vấn đề về vị trí. BrowserStack cho phép kiểm thử miễn phí cho các dự án nguồn mở trên nhiều thiết bị và trình duyệt.

Ảnh chụp màn hình một biểu mẫu thanh toán, payment-form.glitch.me, trên iPhone 7 và 11. Nút Hoàn tất thanh toán xuất hiện trên iPhone 11 nhưng không xuất hiện trên iPhone 7
Cùng một trang trên iPhone 7 và iPhone 11.
Giảm khoảng đệm cho các khung nhìn nhỏ hơn trên thiết bị di động để đảm bảo nút Thanh toán xong không bị ẩn.

Triển khai tính năng phân tích và RUM

Việc kiểm tra khả năng hữu dụng và hiệu suất trên thiết bị có thể hữu ích, nhưng bạn cần dữ liệu thực tế để hiểu rõ cách người dùng trải nghiệm các biểu mẫu thanh toán và địa chỉ của bạn.

Do đó, bạn cần có dữ liệu phân tích và Giám sát người dùng thực – dữ liệu về trải nghiệm của người dùng thực tế, chẳng hạn như thời gian tải trang thanh toán hoặc thời gian hoàn tất thanh toán:

  • Phân tích trang: số lượt xem trang, tỷ lệ thoát và số lượt thoát cho mỗi trang có biểu mẫu.
  • Phân tích lượt tương tác: phễu mục tiêusự kiện cho biết thời điểm người dùng bỏ ngang quy trình thanh toán và hành động mà họ thực hiện khi tương tác với biểu mẫu.
  • Hiệu suất trang web: các chỉ số tập trung vào người dùng có thể cho bạn biết liệu trang thanh toán của bạn có tải chậm hay không và nếu có thì nguyên nhân là gì.

Phân tích trang, phân tích lượt tương tác và đo lường hiệu suất của người dùng thực tế trở nên đặc biệt có giá trị khi kết hợp với nhật ký máy chủ, dữ liệu chuyển đổi và thử nghiệm A/B, cho phép bạn trả lời các câu hỏi như liệu mã giảm giá có làm tăng doanh thu hay không hoặc liệu việc thay đổi bố cục biểu mẫu có cải thiện số lượt chuyển đổi hay không.

Nhờ đó, bạn có cơ sở vững chắc để ưu tiên nỗ lực, thực hiện thay đổi và khen thưởng thành công.

Không ngừng tìm hiểu

Ảnh của @rupixen trên Unsplash.