Ở bài trước, chúng ta đã thay phần lớn dữ liệu mẫu trên Landing Page /levela bằng nội dung, hình ảnh và thông tin sản phẩm thực tế. Sau khi kiểm tra lại toàn bộ hành trình của khách hàng, Landing Page đã hiển thị tốt trên desktop và mobile, nhưng vẫn còn một vấn đề quan trọng: khách hàng có thể xem sản phẩm nhưng chưa có một hành động tiếp theo thực sự rõ ràng.

Ví dụ, các nút "Mua ngay" hoặc "Xem sản phẩm" vẫn chưa dẫn đến một quy trình mua hàng hoặc liên hệ cụ thể. Trong bài này, chúng ta sẽ tiếp tục sử dụng Vibe Coding để hoàn thiện phần đó.

1. Xác định hành động chính của Landing Page

Trước khi sửa CTA, chúng ta cần xác định khách hàng sẽ làm gì sau khi quan tâm đến sản phẩm. Với một Landing Page giới thiệu mỹ phẩm như Levela, chưa nhất thiết phải xây dựng ngay toàn bộ hệ thống giỏ hàng và thanh toán.

Ở giai đoạn hiện tại, chúng ta có thể lựa chọn một hành động đơn giản hơn:

  • Khách quan tâm sản phẩm
  • →
  • Để lại thông tin
  • →
  • Levela liên hệ tư vấn

Điều này cũng giúp chúng ta xác định rõ nhiệm vụ của các CTA thay vì để mỗi button dẫn đến một vị trí không rõ ràng.

2. Hoàn thiện các CTA trên Landing Page

Ở phiên bản hiện tại, một số CTA vẫn đang sử dụng href="#" hoặc chỉ cuộn đến Product Section. Chúng ta cần xác định lại chức năng của từng CTA.

CTA Vị trí Hành động
Khám phá sản phẩm Hero Cuộn đến Product Section
Xem sản phẩm Product Card Hiển thị hoặc đưa khách đến thông tin sản phẩm tương ứng
Mua ngay Product Card hoặc CTA Đưa khách đến form tư vấn và ghi nhận sản phẩm đang quan tâm
Nhận tư vấn CTA cuối trang Đưa khách đến form tư vấn

Ví dụ, CTA ở Hero vẫn có thể dẫn đến Product Section:

<a href="#lvProducts">Khám phá sản phẩm</a>

Còn Mua ngay có thể dẫn xuống form:

<a href="#lvContact">Mua ngay</a>

Tuy nhiên, nếu khách nhấn Mua ngay từ một Product Card, chúng ta nên ghi nhận sản phẩm họ đang quan tâm. Ví dụ:

<a
    href="#lvContact"
    data-product="Levela Hydrating Serum">
    Mua ngay
</a>

Có thể yêu cầu AI xử lý toàn bộ phần này:

Prompt mẫu

"Hãy kiểm tra toàn bộ CTA trên Landing Page /levela.

Cập nhật hành động như sau:

  • Khám phá sản phẩm → cuộn đến Product Section.
  • Mua ngay → cuộn đến form tư vấn.
  • Nếu Mua ngay nằm trong Product Card, hãy ghi nhận sản phẩm khách đang quan tâm.
  • Nhận tư vấn → cuộn đến form tư vấn.

Không để CTA sử dụng href="#" nếu không có hành động.

Giữ nguyên giao diện và Brand Identity Levela.

Không thay đổi những section không liên quan."

Landing Page levela sau khi hoàn thiện hành động của các CTA
Landing Page /levela sau khi hoàn thiện hành động của các CTA

Sau bước này, mỗi CTA trên Landing Page phải trả lời được một câu hỏi đơn giản: "Khách hàng bấm vào đây thì chuyện gì xảy ra tiếp theo?"

3. Tạo form nhận tư vấn

Khi khách hàng đã quan tâm đến sản phẩm, chúng ta cần một nơi để họ để lại thông tin. Không nên tạo một form quá dài. Mỗi trường bổ sung đều khiến khách hàng phải thực hiện thêm một thao tác.

Thông tin Mục đích
Họ và tên Biết người cần liên hệ
Số điện thoại Thông tin liên hệ
Email Kênh liên hệ bổ sung
Sản phẩm quan tâm Biết khách đang quan tâm sản phẩm nào
Nội dung Cho phép khách ghi thêm nhu cầu

Sau đó yêu cầu AI thêm form vào khu vực CTA cuối Landing Page:

Prompt mẫu

"Hãy cập nhật khu vực CTA cuối Landing Page /levela thành form nhận yêu cầu tư vấn.

Form gồm:

  • Họ và tên.
  • Số điện thoại.
  • Email.
  • Sản phẩm quan tâm.
  • Nội dung.

Button: Gửi yêu cầu tư vấn.

Yêu cầu:

  • Giữ đúng Brand Identity Levela.
  • Form đơn giản, dễ điền.
  • Label rõ ràng.
  • Hiển thị tốt trên mobile.
  • Không thêm trường không cần thiết.
  • Chưa cần kết nối backend ở bước này.
Form nhận tư vấn ở cuối Landing Page levela
Form nhận tư vấn ở cuối Landing Page /levela

4. Tự động chọn sản phẩm khách hàng quan tâm

Nếu khách đang xem Levela Hydrating Serum rồi nhấn Mua ngay, sau đó phải tự chọn lại sản phẩm trong form sẽ tạo thêm một bước không cần thiết. Chúng ta có thể sử dụng chính CTA trên Product Card để truyền thông tin này xuống form. Ví dụ:

<a
    href="#lvContact"
    class="buy-now"
    data-product="Levela Hydrating Serum">
    Mua ngay
</a>

Khi khách nhấn CTA, JavaScript có thể lấy giá trị data-product và chọn sản phẩm tương ứng trong form. Có thể yêu cầu AI thực hiện thay vì tự viết toàn bộ logic:

Prompt mẫu

"Hãy kết nối nút Mua ngay của từng Product Card với form tư vấn.

Khi khách nhấn Mua ngay:

  • Ghi nhận sản phẩm tương ứng.
  • Cuộn đến form tư vấn.
  • Tự động chọn sản phẩm đó trong trường Sản phẩm quan tâm.

Không reload trang.

Không sử dụng thư viện mới nếu JavaScript hiện tại có thể xử lý được."

Nút Mua ngay tự động chọn sản phẩm tương ứng trong form - phần 1
Nút Mua ngay tự động chọn sản phẩm tương ứng trong form (1/2)
Nút Mua ngay tự động chọn sản phẩm tương ứng trong form - phần 2
Nút Mua ngay tự động chọn sản phẩm tương ứng trong form (2/2)

5. Kiểm tra dữ liệu trước khi gửi form

Form không nên cho phép gửi dữ liệu hoàn toàn trống hoặc sai định dạng.

Ở mức cơ bản, chúng ta cần kiểm tra:

  • Họ tên không để trống.
  • Có ít nhất một phương thức liên hệ cần thiết.
  • Email đúng định dạng nếu khách nhập email.
  • Sản phẩm quan tâm được xác định.
  • Không gửi form nhiều lần liên tiếp khi đang xử lý.

Có thể yêu cầu AI:

Prompt mẫu

"Hãy bổ sung validation cho form tư vấn Levela.

Kiểm tra:

  • Họ tên không được để trống.
  • Số điện thoại không được để trống.
  • Email phải đúng định dạng nếu được nhập.
  • Sản phẩm quan tâm phải có giá trị.

Khi dữ liệu không hợp lệ, hiển thị lỗi ngay tại trường tương ứng.

Thông báo lỗi cần ngắn gọn và dễ hiểu.

Không thay đổi giao diện tổng thể của Landing Page."

Form hiển thị lỗi validation tại trường tương ứng - phần 1
Form hiển thị lỗi validation tại trường tương ứng (1/2)
Form hiển thị lỗi validation tại trường tương ứng - phần 2
Form hiển thị lỗi validation tại trường tương ứng (2/2)

Không cần tạo validation quá phức tạp ở phía giao diện. Khi form được kết nối backend ở bước tiếp theo, dữ liệu vẫn cần được kiểm tra lại phía server.

6. Xử lý trạng thái sau khi khách gửi form

Một chi tiết nhỏ nhưng rất quan trọng là phản hồi sau khi khách nhấn nút gửi. Nếu người dùng bấm Gửi yêu cầu tư vấn nhưng giao diện không thay đổi, họ sẽ không biết yêu cầu đã được gửi hay chưa.

Form nên có ít nhất ba trạng thái:

Trạng thái Hiển thị
Đang gửi Vô hiệu hóa button và hiển thị "Đang gửi..."
Thành công "Yêu cầu của bạn đã được gửi. Levela sẽ liên hệ với bạn sớm."
Có lỗi "Chưa thể gửi yêu cầu. Vui lòng thử lại."

Ở giai đoạn hiện tại, chúng ta mới chuẩn bị giao diện cho những trạng thái này. Không nên giả lập việc lưu dữ liệu thành công nếu chưa có backend thực sự xử lý form.

Prompt mẫu

"Hãy chuẩn bị các trạng thái giao diện cho form tư vấn Levela:

  • Default.
  • Submitting.
  • Success.
  • Error.

Khi đang gửi, disable button để tránh gửi nhiều lần.

Không giả lập trạng thái Success nếu dữ liệu chưa thực sự được backend xử lý."

Các trạng thái giao diện của form tư vấn Levela
Các trạng thái giao diện của form tư vấn Levela

7. Kiểm tra toàn bộ hành trình chuyển đổi

Sau khi hoàn thành, chúng ta không chỉ kiểm tra từng button hay từng input riêng lẻ. Hãy thử đóng vai một khách hàng lần đầu truy cập /levela.

Ví dụ, có thể yêu cầu AI kiểm tra:

Prompt mẫu

"Hãy kiểm tra toàn bộ hành trình chuyển đổi trên Landing Page /levela từ lúc khách truy cập đến khi gửi form tư vấn.

Kiểm tra:

  • Không còn CTA dẫn đến #.
  • Anchor không bị sticky Header che nội dung.
  • Nút Mua ngay truyền đúng sản phẩm sang form.
  • Form dễ sử dụng trên desktop và mobile.
  • Validation hoạt động đúng.
  • Button không thể bị gửi liên tục.
  • Các trạng thái Default, Submitting, Success và Error hiển thị đúng.

Chỉ sửa những vấn đề thực sự ảnh hưởng đến hành trình chuyển đổi.

Không thêm section hoặc chức năng mới."

Sau khi AI kiểm tra và trả kết quả phản hồi như sau đây:

AI phản hồi kết quả kiểm tra hành trình chuyển đổi trên Landing Page levela
AI phản hồi kết quả kiểm tra hành trình chuyển đổi

Kết luận

Đến đây, hành trình chuyển đổi trên Landing Page Levela đã được hoàn thiện ở phía giao diện. Các CTA đã dẫn khách hàng đến đúng hành động, nút Mua ngay có thể ghi nhận sản phẩm khách đang quan tâm và form đã có validation, chống gửi liên tục cũng như các trạng thái xử lý cần thiết.

Qua bước kiểm tra cuối cùng, chúng ta cũng đã xử lý những vấn đề ảnh hưởng trực tiếp đến trải nghiệm như anchor bị Header che và khả năng sử dụng form trên desktop/mobile. Tuy nhiên, form hiện chưa được kết nối với backend, vì vậy dữ liệu khách hàng vẫn chưa thể được lưu trữ và trạng thái thành công chỉ nên xuất hiện khi hệ thống thực sự xác nhận đã nhận dữ liệu.

Ở bài tiếp theo, chúng ta sẽ kết nối form tư vấn Levela với EzyPlatform, đưa dữ liệu khách hàng từ Landing Page về hệ thống để lưu trữ và xử lý, từ đó biến form hiện tại thành một kênh thu thập khách hàng tiềm năng thực sự.