Tổng quan

Phần tổng quan này tóm tắt quy trình Đặt hàng hai đầu và cách quy trình này tương tác với dịch vụ thực hiện đơn hàng trên web.

Thứ tự sắp xếp

Giao diện người dùng gọi món từ đầu đến cuối 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 trong thực đơn vào đơn gọi món và quyết định đến lấy hàng hay 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 hỗ trợ bởi các thực thể Restaurant, ServiceMenu có trong nguồn cấp dữ liệu của bạn.

Bước tiếp theo là giai đoạn xác thực giỏ hàng, trong đó Cart kết quả 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 Google thực hiện đến điểm cuối của 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ả về thuế, chiết khấu và phí, đồng thời xác thực địa chỉ giao hàng.

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

  1. Dịch vụ Đặt hàng hai đầu 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ác khoản 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 đối với các yêu cầu thành công. Bạn có thể đưa FoodErrorExtension vào CheckoutResponseMessage để phát sinh lỗi xử lý hoặc đề xuất những 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 giai đoạn gửi đơn đặt hàng trong luồng.

Gửi hành động đối vớ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 tính năng thanh toán trực tuyến đã được bật 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 hàng tuân theo trình tự sau:

  1. Dịch vụ Đặt hàng hai đầu 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 xác thực Cart lần nữa trước khi tiếp tục.
  2. Dịch vụ web của bạn sẽ xử lý thông tin thanh toán có trong Order, thường là những thao tác sau:

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

Sau khi đặt hàng, người dùng mong muốn 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 hai đầu. Bạn được yêu cầu gửi email xác nhận đơn đặt hàng cho người dùng. Ngoài ra, bạn hãy 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 về đơn đặt hàng có liên quan cho Google.

Tác vụ cập nhật thứ tự không đồng bộ

Bất kể bạn nhận được thông báo nào của người dùng, bạn cũng phải gửi thông tin cập nhật về 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. Các thay đổi đối với 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.

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

Sơ đồ trình tự

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

Sắp xếp quy trình thực hiện hai đầu

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

Hành động Đặt món ăn hai đầu sử dụng thông báo JSON để giao tiếp với dịch vụ web của bạn và xử lý quá trình xử lý, xác nhận và cập nhật các đơn đặt món ăn. Khi thiết kế dịch vụ web Đặt hàng hai đầu, bạn phải xác định điểm cuối URL nhận thông báo yêu cầu từ dịch vụ Đặt hàng hai đầu và có thể trả về tin nhắn 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 hai đầu.
  • 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. Bạn sẽ chỉ định URL này trong Trung tâm hành động. URL của cách thực hiện đơn hàng được dùng để thanh toán và gửi đơn đặt hàng. Phương thức 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ó thể xác minh tin nhắn từ Google bằng cách sử dụng phương thức Xác minh tin nhắn.
  • Khi triển khai điểm cuối URL, bạn phải xử lý được cả quá 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 được có một điểm cuối URL cho quy trình thanh toán và một điểm cuối riêng để gửi yêu cầu đặt hàng.

Thư viện ứng dụng

Trình tạo mã ứng dụng khách trong phần Công cụ có sẵn để xác thực dịch vụ web của bạn theo thông số kỹ thuật của Fulfillment API.