Phần này giải đáp các câu hỏi thường gặp về việc Đăng ký nhà phát triển cho Merchant API.
Đăng ký chung
Câu hỏi thường gặp về quy trình đăng ký:
Nhà phát triển có bắt buộc phải đăng ký để sử dụng Merchant API không?
Có. Bạn phải đăng ký thông tin liên hệ của nhà phát triển để Google có thể gửi các thông tin cập nhật quan trọng dành riêng cho API, chẳng hạn như thông báo dịch vụ và thông tin về tính năng mới.
Nếu chỉ muốn khám phá và thử nghiệm Merchant API, bạn có thể sử dụng các công cụ như Google OAuth Playground và API Explorer mà không cần đăng ký.
Tôi cần đăng ký bao lâu một lần?
Bạn chỉ cần đăng ký một lần cho mỗi dự án trên Google Cloud. Cho dù bạn có làm việc với nhiều tài khoản người bán hay không, bạn chỉ thực hiện thao tác đăng ký một lần và thao tác này áp dụng cho tất cả người dùng và tài khoản dịch vụ trong dự án Google Cloud được liên kết.
Sau khi một dự án Google Cloud được đăng ký thành công, đường liên kết sẽ vẫn hoạt động trừ phi bị xoá rõ ràng bằng cách gọi phương thức unregisterGcp. Bạn không thể đăng ký các dự án dùng chung, do Google sở hữu, chẳng hạn như APIs Explorer hoặc OAuth Playground.
Tôi nên cung cấp địa chỉ email nào làm thông tin liên hệ của nhà phát triển?
Bạn nên sử dụng địa chỉ email công ty của một cá nhân. Ngoài ra, bạn có thể sử dụng email đại diện chung cho nhóm. Bạn không thể sử dụng email của tài khoản dịch vụ vì thông tin liên lạc chỉ dành cho người nhận là con người. Google gửi các thông tin cập nhật quan trọng dành riêng cho API, chẳng hạn như thông báo dịch vụ và thông tin về tính năng mới.
Nếu địa chỉ email thuộc về một người dùng hiện có trong tài khoản Merchant Center, thì người dùng đó sẽ tự động được cấp vai trò API developer. Nếu không, lời mời sẽ được gửi đến địa chỉ đó.
Trường địa chỉ email liên hệ của nhà phát triển là không bắt buộc trong phương thức registerGcp. Nếu không cung cấp giá trị cho trường này khi đăng ký, bạn phải tạo một người dùng có vai trò API developer trong giao diện người dùng của Merchant Center hoặc bằng cách gọi phương thức accounts.users.create.
Email liên hệ của nhà phát triển có cần phải là Tài khoản Google không?
Có. Để sử dụng một email hiện có không phải của Google, bạn có thể liên kết email đó với một Tài khoản Google bằng cách chọn Sử dụng email hiện có trong quy trình đăng ký Tạo Tài khoản Google. Bạn không thể sử dụng email của tài khoản dịch vụ vì tài khoản dịch vụ không thể nhận email.
Làm cách nào để thực hiện quy trình xác thực và uỷ quyền cho lệnh gọi đăng ký?
Có hai trường hợp xác thực riêng biệt cho việc xác thực và uỷ quyền lệnh gọi đăng ký, tuỳ thuộc vào trường hợp sử dụng của bạn:
- OAuth 2.0: dành cho các nhà cung cấp bên thứ ba hoặc các công ty quản lý nhiều tài khoản nhà bán hàng
- Tài khoản dịch vụ: để truy cập vào tài khoản Merchant Center của riêng bạn
Sơ đồ trước cho thấy hai quy trình xác thực và uỷ quyền cho lệnh gọi đăng ký. Bạn có thể chọn giữa:
- Sử dụng OAuth bằng địa chỉ email như account@email.com được liên kết với Tài khoản Google
- Sử dụng tài khoản dịch vụ, chẳng hạn như sa@project.iam.gserviceaccount.com
Nếu bạn quyết định sử dụng OAuth:
- Tạo thông tin xác thực OAuth trong dự án trên đám mây Google Cloud cho email của bạn
- Đảm bảo rằng địa chỉ email uỷ quyền có trong
Merchant Center và có loại quyền truy cập
ADMIN
Nếu bạn quyết định sử dụng tài khoản dịch vụ:
- Đảm bảo rằng tài khoản dịch vụ tồn tại trong dự án Google Cloud của bạn
- Đảm bảo rằng địa chỉ email liên kết với tài khoản dịch vụ tồn tại trong
Merchant Center và có loại quyền truy cập
ADMIN
Thực hiện lệnh gọi đăng ký trong bối cảnh bảo mật của danh tính xác thực, sử dụng lệnh gọi API trực tiếp hoặc thư viện ứng dụng. Cung cấp địa chỉ email để liên hệ với nhà phát triển, ví dụ: developer@email.com.
Nếu lệnh gọi đăng ký thành công, thì người dùng sẽ tồn tại trong Merchant Center của bạn với địa chỉ email nhà phát triển được cung cấp và vai trò API developer. Bạn sẽ nhận được phản hồi là tài nguyên DeveloperRegistration.
Sự khác biệt giữa email xác thực và email liên hệ của nhà phát triển là gì?
Hai địa chỉ email này phục vụ các mục đích riêng biệt trong hệ sinh thái Merchant API:
- Email xác thực: Bạn thường sử dụng email được liên kết với Tài khoản Google hoặc với tài khoản dịch vụ làm danh tính để uỷ quyền cho các yêu cầu gửi đến Merchant API, miễn là:
- Tài khoản này tồn tại trong Merchant Center của bạn và có vai trò
ADMIN. - Một dự án Google Cloud đã bật Merchant API lưu trữ ứng dụng OAuth hoặc tài khoản dịch vụ liên kết với email uỷ quyền cho các lệnh gọi API.
- Tài khoản này tồn tại trong Merchant Center của bạn và có vai trò
- Email liên hệ của nhà phát triển: Email liên hệ của nhà phát triển cũng phải được liên kết với một Tài khoản Google, nhưng email này đóng vai trò là người liên hệ chính để nhận các thông báo dịch vụ quan trọng và thông tin cập nhật về API từ Google. Tài khoản này có thể thuộc về một người dùng hoặc một nhóm người dùng. Theo mặc định, người dùng này sẽ có vai trò
API developertrong Merchant Center.
Tôi có phải chấp nhận lời mời được gửi đến địa chỉ email liên hệ của nhà phát triển không?
Có. Người nhận email liên hệ của nhà phát triển mà bạn cung cấp có 14 ngày để chấp nhận lời mời. Quá trình đăng ký chỉ hoàn tất sau khi họ chấp nhận lời mời. Tuy nhiên, bạn có thể thực hiện lệnh gọi API trong thời gian này.
Nếu lời mời không được chấp nhận trong thời gian đã chỉ định, thì đường liên kết của lời mời sẽ hết hạn. Bạn không thể thực hiện lệnh gọi Merchant API nữa và phải bắt đầu lại quy trình đăng ký.
Tại sao tôi không đăng ký được tài khoản nhà phát triển và gặp lỗi "tài khoản thử nghiệm"?
Việc đăng ký nhà phát triển chỉ dành cho các tài khoản chính thức (đang hoạt động) để đảm bảo tính ổn định của quá trình tích hợp. Nếu bạn đang sử dụng một tài khoản được tạo riêng cho mục đích thử nghiệm và được đánh dấu là "tài khoản thử nghiệm" trong Merchant Center, thì yêu cầu đăng ký sẽ bị từ chối.
Tôi có thể đăng ký một tài khoản phụ mà tôi quản lý cho khách hàng không?
Bạn nên đăng ký tài khoản đại diện cho danh tính doanh nghiệp của bạn. Bạn không được phép đăng ký tài khoản phụ của khách hàng và việc này dễ xảy ra lỗi; nếu khách hàng đó ngừng sử dụng dịch vụ của bạn hoặc xoá tài khoản, thì toàn bộ hoạt động tích hợp API của bạn có thể bị vô hiệu hoá.
Trang web của tôi cần được xác nhận quyền sở hữu hay chỉ cần xác minh?
Để đăng ký nhà phát triển, trang web phải được xác minh. Điều này chứng minh rằng bạn có quyền quản trị đối với trang web liên kết với tài khoản. Mặc dù bạn phải xác nhận quyền sở hữu đối với các tính năng khác như quảng cáo Mua sắm, nhưng việc xác minh là yêu cầu chính để đăng ký API.
Quản lý tài khoản và dự án
Câu hỏi thường gặp về việc quản lý tài khoản và dự án:
Tôi làm việc với nhiều tài khoản Merchant Center. Tôi có cần đăng ký mọi tài khoản Merchant Center mà tôi muốn sử dụng với Merchant API không?
Không. Nếu bạn là nhà phát triển bên thứ ba hoặc công ty quản lý tài khoản của nhiều người bán, bạn sẽ đăng ký dự án trên đám mây Google Cloud bằng tài khoản Merchant Center chính của riêng bạn, chứ không phải bằng tài khoản của từng người bán. Bằng cách này, bạn đại diện cho nhà phát triển trong tất cả công việc liên quan đến API mà bạn thực hiện cho người bán.
Tôi làm việc với nhiều tài khoản Merchant Center. Làm cách nào để chọn tài khoản Merchant Center chính?
Việc chọn tài khoản chính để sử dụng sẽ tuỳ thuộc vào loại hình doanh nghiệp của bạn:
- Trang web thương mại có tài khoản nâng cao hiện có: Nếu doanh nghiệp của bạn hoạt động như một trang web thương mại và đã có một tài khoản nâng cao đại diện cho toàn bộ nền tảng, hãy sử dụng mã tài khoản hiện có này làm tài khoản Merchant Center chính.
- Dịch vụ so sánh giá (CSS): Nếu bạn là một CSS, hãy sử dụng mã tài khoản CSS hoặc mã tài khoản nhóm Dịch vụ so sánh giá riêng biệt của bạn.
- Đại lý, nhà phát triển và các bên thứ ba khác: Nếu bạn là một doanh nghiệp bên thứ ba, chẳng hạn như một đại lý hoặc nhà phát triển bên thứ ba quản lý nhiều tài khoản nhà bán hàng và không có một Mã truy cập Merchant Center duy nhất đại diện cho doanh nghiệp của bạn, thì bạn nên tạo một tài khoản Merchant Center chính mới và yêu cầu chuyển đổi tài khoản đó thành một tài khoản nâng cao.
Sau khi đăng ký dự án trên Google Cloud cho tài khoản Merchant Center chính, bạn có thể sử dụng chính dự án đó để quản lý mọi tài khoản Merchant Center khác mà bạn có quyền truy cập mà không cần đăng ký riêng từng tài khoản đó.
Tôi sử dụng nhiều dự án trên Google Cloud. Tôi có cần đăng ký từng tài khoản không?
Có. Vì quy trình đăng ký liên kết với dự án Google Cloud đang gọi, nên bạn phải thực hiện lệnh gọi registerGcp từ mỗi dự án Google Cloud mà bạn dùng để thực hiện lệnh gọi API.
Mỗi dự án trên đám mây của Google chỉ có thể được đăng ký với đúng một tài khoản Merchant Center tại một thời điểm. Tuy nhiên, một tài khoản Merchant Center có thể có nhiều dự án trên đám mây của Google đã đăng ký. Tương tự, bạn có thể sử dụng cùng một địa chỉ email của nhà phát triển để thực hiện nhiều lượt đăng ký, trên nhiều dự án trên đám mây của Google hoặc nhiều Merchant Center.
Điều gì sẽ xảy ra nếu tôi đăng ký một dự án trên đám mây của Google với nhiều tài khoản Merchant Center?
Nếu bạn cố gắng đăng ký một dự án Google Cloud đã được đăng ký với một tài khoản Merchant Center khác, thì bạn sẽ gặp lỗi ALREADY_REGISTERED.
Làm cách nào để xác thực lệnh gọi API đăng ký của nhà phát triển?
Để xác thực lệnh gọi API đăng ký nhà phát triển cho Merchant API, bạn sử dụng thông tin xác thực được quản lý thông qua một dự án Google Cloud. Bạn có hai lựa chọn chính cho danh tính thực hiện việc xác thực:
- Tài khoản Google (chẳng hạn như Gmail) sử dụng OAuth 2.0: Phương thức này sử dụng thông tin xác thực ứng dụng OAuth 2.0 được tạo trong Dự án trên đám mây của Google. Lệnh gọi API được uỷ quyền thay mặt cho một Tài khoản Google cụ thể mà người dùng đăng nhập.
- Tài khoản dịch vụ: Phương thức này sử dụng Tài khoản dịch vụ Google Cloud, một loại Tài khoản Google đặc biệt dành cho các ứng dụng. Thông tin xác thực cho Tài khoản dịch vụ cũng được quản lý trong dự án Google Cloud của bạn.
Để đăng ký thành công nhà phát triển, danh tính xác thực (Tài khoản Google hoặc Tài khoản dịch vụ) phải đáp ứng các tiêu chí sau trong Merchant Center:
- Tồn tại dưới dạng người dùng trong Merchant Center: Địa chỉ email liên kết với Tài khoản Google xác thực hoặc Tài khoản dịch vụ phải được thêm làm người dùng trong tài khoản Merchant Center mà bạn đang đăng ký.
- Cần có vai trò quản trị viên: Người dùng này phải được chỉ định vai trò
ADMINtrong tài khoản Merchant Center cụ thể đó.
Khi thực hiện lệnh gọi API:
- Nếu đang sử dụng Lệnh gọi API trực tiếp, bạn phải lấy và cung cấp một Mã truy cập hợp lệ trong tiêu đề
Authorization. Mã thông báo này được tạo theo quy trình OAuth 2.0 cho Tài khoản Google hoặc quy trình xác thực từ máy chủ đến máy chủ cho Tài khoản dịch vụ. - Thư viện ứng dụng do Google cung cấp thường xử lý những vấn đề phức tạp khi lấy và làm mới Mã truy cập cho bạn trong quá trình định cấu hình.
Người dùng xác thực có thể không phải là người dùng liên hệ của nhà phát triển. Để biết thêm thông tin, hãy xem bài viết Sự khác biệt giữa email xác thực và email liên hệ của nhà phát triển là gì?
Tôi cần làm mới mã truy cập bao lâu một lần?
Mã truy cập cho cả Tài khoản dịch vụ và OAuth 2.0 thường hết hạn sau 1 giờ. Tuy nhiên, cơ chế để nhận mã mới phụ thuộc vào phương pháp xác thực mà bạn đang sử dụng:
- Tài khoản dịch vụ sử dụng khoá riêng tư hoặc thông tin xác thực môi trường để tạo mã truy cập mới bất cứ khi nào cần.
- Quy trình OAuth 2.0 sử dụng refresh_token để gọi điểm cuối mã thông báo OAuth2 của Google nhằm nhận mã truy cập mới có hiệu lực trong 1 giờ.
Bạn nên sử dụng Thư viện xác thực chính thức của Google. Thư viện này sẽ tự động xử lý việc xoay vòng này để ứng dụng của bạn không bao giờ gặp phải thời gian ngừng hoạt động.
Người dùng và vai trò
Câu hỏi thường gặp về người dùng và vai trò:
Tài khoản email của nhà phát triển có cần phải tồn tại trong Merchant Center không?
Không. Nếu tài khoản email đăng ký chưa tồn tại trong Merchant Center, thì Merchant API sẽ tạo tài khoản trong Merchant Center bằng email được chỉ định ở trạng thái Đang chờ xử lý. Nếu địa chỉ email của nhà phát triển thuộc về một người dùng hiện có trong tài khoản Merchant Center, thì họ sẽ tự động được cấp vai trò API developer.
Email liên hệ của nhà phát triển có cần có quyền Quản trị trong Merchant Center không?
Không. Người dùng Merchant Center liên kết với email liên hệ của nhà phát triển
sẽ nhận được vai trò API developer theo mặc định. Đây là vai trò cần thiết để nhận
các thông báo quan trọng. Tuy nhiên, người dùng này có quyền tối thiểu trong
Merchant Center. Để cho phép người dùng này thực hiện các lệnh gọi API khác hoặc quản lý
chế độ cài đặt trong giao diện người dùng của Merchant Center, bạn cần cấp cho họ các vai trò
bổ sung, chẳng hạn như STANDARD hoặc ADMIN. Để biết thêm thông tin về các vai trò trong Merchant Center, hãy xem bài viết Các loại quyền truy cập.
Vai trò "API developer" có những quyền gì?
Vai trò API developer là vai trò có ít quyền nhất trong Merchant Center. Nếu bạn dự định sử dụng email liên hệ của nhà phát triển để
cho phép các lệnh gọi đến Merchant API, bạn nên thêm quyền ADMIN hoặc STANDARD
để cho phép người dùng thực hiện các lệnh gọi API.
Tôi có cần đăng ký từng người dùng nhà phát triển hoặc tài khoản dịch vụ gọi API không?
Không. Quy trình đăng ký nhà phát triển được liên kết với dự án trên đám mây của Google đang được dùng để thực hiện lệnh gọi API, chứ không phải với từng người dùng hoặc tài khoản dịch vụ. Sau khi
đăng ký thành công một dự án Google Cloud với tài khoản Merchant Center
chính, bạn có thể sử dụng bất kỳ danh tính nào được quản lý thông qua
dự án Google Cloud được liên kết bằng thông tin xác thực OAuth hoặc tài khoản
dịch vụ để uỷ quyền cho các lệnh gọi Merchant API, miễn là các danh tính đó tồn tại trong
Merchant Center và được chỉ định vai trò ADMIN.
Làm cách nào để thay đổi email liên hệ của nhà phát triển sau khi đăng ký lần đầu?
Để quản lý hoặc thay đổi người liên hệ, hãy sử dụng dịch vụ accounts.users tiêu chuẩn hoặc
trang "Quyền truy cập và dịch vụ" trong giao diện người dùng của Merchant Center để thêm hoặc
xoá người dùng có vai trò API developer.
Điều gì sẽ xảy ra nếu người dùng "API developer" cuối cùng bị xoá khỏi tài khoản Merchant Center?
Thời gian ân hạn 30 ngày sẽ được kích hoạt để tránh bị gián đoạn dịch vụ ngay lập tức. Trong thời gian này:
- Quản trị viên sẽ nhận được 3 thông báo bắt buộc về dịch vụ qua email (thường là khoảng 30, 17 và 4 ngày trước khi bị chặn).
- Các lệnh gọi API vẫn sẽ hoạt động bình thường.
- Nếu bạn không thêm
API developermới trước khi thời gian ân hạn kết thúc, thì các lệnh gọi API từ những dự án trên đám mây của Google liên kết sẽ bị chặn kèm theo lỗiAUTH_GCP_NOT_REGISTERED.
Khi thời gian ân hạn 30 ngày kết thúc, các lệnh gọi API từ các dự án trên đám mây của Google liên kết sẽ bị chặn và họ sẽ nhận được lỗi AUTH_GCP_NOT_REGISTERED cho đến khi thông tin liên hệ hợp lệ của nhà phát triển được khôi phục.
Điều gì sẽ xảy ra nếu mã truy cập Merchant Center dùng để đăng ký nhà phát triển bị xoá?
Đừng xoá tài khoản Merchant Center dùng để đăng ký nhà phát triển khi quá trình tích hợp đang hoạt động. Việc xoá tài khoản này sẽ ngay lập tức làm gián đoạn quá trình tích hợp của bạn và bạn sẽ không thể thực hiện Lệnh gọi API từ dự án trên đám mây Google được liên kết nữa.
Nếu phải xoá tài khoản Merchant Center đó, trước tiên, bạn nên gọi phương thức unregisterGcp để xoá mối liên kết một cách an toàn, sau đó mới tiến hành xoá mã truy cập Merchant Center. Nếu muốn tiếp tục sử dụng Merchant API, bạn cần đăng ký bằng một mã truy cập Merchant Center khác ngay sau khi huỷ đăng ký mã truy cập hiện tại. Chỉ khi đó, bạn mới có thể xoá mã truy cập Merchant Center.
Tại sao tôi không thấy vai trò "API developer" trong Merchant Center?
Vai trò API developer chỉ xuất hiện trong giao diện người dùng của Merchant Center sau khi bạn đăng ký nhà phát triển cho tài khoản Merchant Center đó. Những tài khoản Merchant Center chưa đăng ký sẽ không thấy vai trò API developer.
Các trường hợp sử dụng đặc biệt
Câu hỏi thường gặp về các trường hợp sử dụng đặc biệt:
Tôi là một công ty quảng cáo hoặc nhà phát triển bên thứ ba quản lý nhiều tài khoản nhà bán hàng. Đâu là cách thiết lập hay nhất?
Nhà phát triển và đại lý bên thứ ba nên duy trì tài khoản Merchant Center chính của riêng họ và đăng ký tất cả dự án Google Cloud của họ vào tài khoản tập trung duy nhất đó. Đừng đăng ký dự án trên đám mây của Google Cloud bằng tài khoản của từng người bán.
Quy trình đăng ký cho Google Apps Script hoạt động như thế nào?
Apps Script thường chạy trên một dự án trên đám mây của Google mặc định. Bạn phải đăng ký mã nhận dạng Google Cloud mặc định này với tài khoản Merchant Center của mình. API sẽ tự động lấy mã nhận dạng Google Cloud, vì vậy, bạn không cần cung cấp mã nhận dạng này dưới dạng tham số.
Tôi có thể kiểm tra xem một mã truy cập Merchant Center có được đăng ký cho một mã dự án cụ thể trên Google Cloud hay không?
Có. Bạn có thể kiểm tra xem mã truy cập Merchant Center nào được đăng ký cho một dự án trên đám mây Google cụ thể bằng cách sử dụng phương thức getAccountForGcpRegistration. Để xoá một đường liên kết của dự án Google Cloud đến tài khoản Merchant Center, hãy sử dụng phương thức unregisterGcp.
Di chuyển từ Content API sang Merchant API cho người dùng ứng dụng Google & YouTube trên Shopify
Câu hỏi thường gặp về việc di chuyển từ Content API sang Merchant API cho các nền tảng và ứng dụng bên thứ ba:
Tôi có cần làm gì để di chuyển từ Content API sang Merchant API không?
Bạn không cần làm gì cả. Nếu bạn dùng ứng dụng Google & YouTube trên Shopify để quản lý nguồn cấp dữ liệu Merchant Center, thì Google sẽ xử lý việc di chuyển từ Content API sang Merchant API.
Quá trình di chuyển có thay đổi mã sản phẩm của tôi không?
Không, quá trình di chuyển không thay đổi mã sản phẩm trong nguồn cấp dữ liệu Merchant Center.
Tôi có cần cài đặt lại ứng dụng Google & YouTube trên Shopify để hoàn tất quá trình chuyển đổi không?
Bạn không cần làm gì để hoàn tất quá trình chuyển đổi. Bạn không cần cài đặt lại ứng dụng Google & YouTube.
Tại sao tôi vẫn thấy nguồn dữ liệu Content API trong Merchant Center?
Nguồn dữ liệu Content API vẫn có thể xuất hiện trong Merchant Center trong quá trình chuyển đổi sang Merchant API. Đây là những trường hợp nằm trong dự tính nên bạn không cần làm gì cả.