Tổng quan

Thông tin tổng quan này tóm tắt quy trình Đặt hàng toàn diện và cách quy trình này tương tác với dịch vụ web thực hiện đơn hàng của bạn.

Thứ tự sắp xếp

Giao diện người dùng Đặt hàng toàn diện xử lý mọi hoạt động tương tác với người dùng khi họ thêm các món ăn vào đơn đặt hàng và quyết định đến lấy hàng hoặc giao hàng, tuỳ thuộc vào dịch vụ mà nhà hàng cung cấp. Trải nghiệm này được cung cấp bởi các thực thể Restaurant, ServiceMenu có trong nguồn cấp dữ liệu.

Bước tiếp theo là bước xác thực giỏ hàng, trong đó Cart do người dùng tạo sẽ được dịch vụ web của bạn xử lý.

Hành động thanh toán

Hành động thanh toán là lệnh gọi đầu tiên mà Google thực hiện đến điểm cuối dịch vụ web của bạn. Dịch vụ web của bạn chịu trách nhiệm xác thực Cart. Bạn phải xác nhận tình trạng còn hàng và giá của các mặt hàng, tính toán và trả lại thuế, chiết khấu và phí, đồng thời xác thực địa chỉ giao hàng của đơn đặt hàng.

Quy trình thanh toán tuân theo trình tự sau:

  1. Dịch vụ Đặt hàng toàn diện sẽ gửi một CheckoutRequestMessage chứa Cart đến điểm cuối của dịch vụ web thực hiện đơn hàng.
  2. Dịch vụ web của bạn cần xác thực các mặt hàng trong Cart dựa trên giá hiện tại, tình trạng còn hàng và nhà cung cấp dịch vụ. Sau đó, bạn tính tổng giá, bao gồm cả chiết khấu, thuế và phí giao hàng.
  3. Điểm cuối của bạn phản hồi bằng một CheckoutResponseMessage chứa Cart chưa sửa đổi cho các yêu cầu thành công. Bạn có thể đưa FoodErrorExtension vào CheckoutResponseMessage để báo lỗi xử lý hoặc đề xuất các thay đổi nhỏ (nếu cần).

Sau khi Cart được xác thực, người dùng có thể chọn tiếp tục đến bước gửi đơn đặt hàng của quy trình.

Hành động gửi đơn đặt hàng

Thao tác gửi đơn đặt hàng được kích hoạt khi người dùng đặt hàng. Dịch vụ web của bạn phải xác thực lại giỏ hàng, xử lý mã thông báo thẻ nếu bạn bật tính năng thanh toán trực tuyến, và cuối cùng là cập nhật trạng thái của đơn đặt hàng.

Quy trình gửi đơn đặt hàng tuân theo trình tự sau:

  1. Dịch vụ Đặt hàng toàn diện sẽ gửi một SubmitOrderRequestMessage chứa Order đến điểm cuối của dịch vụ web thực hiện đơn hàng. Phần phụ trợ của bạn cần thực hiện một quy trình xác thực Cart khác trước khi tiếp tục.
  2. Dịch vụ web của bạn xử lý thông tin thanh toán có trong Order, thường thực hiện các thao tác sau:

    1. Thực hiện xác minh mã thông báo, hành vi gian lận và các bước kiểm tra khác về điều kiện.
    2. Xác thực và (không bắt buộc) tính phí thẻ.
  3. Điểm cuối của bạn phản hồi bằng một SubmitOrderResponseMessage chứa một OrderUpdate có trạng thái là CREATED ("Đã đặt hàng"), CONFIRMED ("Đã chấp nhận") hoặc REJECTED ("Đã từ chối").

Sau khi đặt hàng, người dùng sẽ nhận được thông tin cập nhật về trạng thái đơn đặt hàng từ cả bạn và giao diện người dùng Đặt hàng toàn diện. Bạn bắt buộc phải gửi email xác nhận đơn đặt hàng cho người dùng. Ngoài ra, bạn có thể sử dụng API Cập nhật đơn đặt hàng không đồng bộ để gửi thông tin cập nhật liên quan về đơn đặt hàng cho Google.

Thao tác cập nhật đơn đặt hàng không đồng bộ

Ngoài mọi thông báo cho người dùng từ phía bạn, bạn cũng phải gửi thông tin cập nhật trạng thái đơn đặt hàng cho Google đối với các sự kiện sau:

  1. Các thay đổi đối với OrderState, chẳng hạn như chuyển đổi từ CREATED sang CONFIRMEDCONFIRMED sang IN_TRANSIT.
  2. Thay đổi đối với các mặt hàng trong đơn đặt hàng, chẳng hạn như giá hoặc tình trạng còn hàng.
  3. Bất cứ khi nào người dùng kích hoạt yêu cầu hỗ trợ từ một trong các kênh hỗ trợ khách hàng của bạn.

Thông tin cập nhật được gửi từ điểm cuối dịch vụ web dưới dạng một AsyncOrderUpdateRequestMessage chứa OrderUpdate. Google phản hồi bằng AsyncOrderUpdateResponseMessage.

Sơ đồ trình tự

Hình minh hoạ sau đây cho thấy cách các hành động thực hiện tương tác với dịch vụ web của bạn. Nhấp để phóng to.

Quy trình thực hiện đơn hàng toàn diện

Thiết lập điểm cuối thực hiện đơn hàng

Các hành động Đặt hàng toàn diện sử dụng thông điệp JSON để giao tiếp với dịch vụ web của bạn và xử lý, xác nhận cũng như cập nhật đơn đặt món ăn. Khi thiết kế dịch vụ web Toàn diện về việc đặt hàng, bạn phải xác định một điểm cuối URL nhận thông báo yêu cầu từ dịch vụ Toàn diện về việc đặt hàng và có thể trả về thông báo cho dịch vụ của Google. Cách triển khai của bạn phải đáp ứng các yêu cầu sau:

  • Dịch vụ web của bạn phải có thể nhận được thông báo JSON dưới dạng yêu cầu POST từ dịch vụ Đặt hàng toàn diện.
  • Dịch vụ web của bạn phải cung cấp một điểm cuối URL có thể truy cập công khai, được gọi là URL thực hiện đơn hàng mà bạn chỉ định trong Trung tâm hành động. URL thực hiện đơn hàng được dùng để thanh toán và gửi đơn đặt hàng. Quá trình triển khai của bạn phải xử lý cả hai loại yêu cầu.
  • Dịch vụ web của bạn phải có khả năng xác minh tin nhắn từ Google bằng phương thức Xác minh tin nhắn.
  • Việc triển khai điểm cuối URL của bạn phải có thể xử lý cả quy trình thanh toán và thực hiện đơn đặt hàng bằng một điểm cuối duy nhất. Bạn không thể có một điểm cuối URL để thanh toán và một điểm cuối riêng để gửi đơn đặt hàng.

Thư viện ứng dụng

Bạn có thể sử dụng trình tạo mã ứng dụng trong mục Công cụ để xác thực dịch vụ web của mình theo thông số kỹ thuật của API Thực hiện.