Quản lý thông báo qua email của Merchant Center

Hướng dẫn này giải thích cách sử dụng tài nguyên EmailPreferences để quản lý thông báo qua email của Merchant Center và xem những loại email mà users của tài khoản nhận được. Để biết danh sách đầy đủ các loại thông báo qua email, hãy xem tài liệu tham khảo về EmailPreferences.

Bạn chỉ có thể sử dụng Merchant API để quản lý thông báo qua email cho những tài khoản mà bạn được thêm làm người dùng.

Để xem hoặc cập nhật thông báo qua email, bạn cần có các giá trị sau:

  • Địa chỉ email của người dùng nhận email. Bạn có thể tìm thấy địa chỉ email của họ trong trường name của tài nguyên User.
  • Mã người bán của tài khoản mà bạn muốn bắt đầu hoặc ngừng nhận email. Nếu tài khoản người bán là tài khoản nâng caongười dùng có quyền truy cập vào tài khoản nâng cao, hãy sử dụng mã nhận dạng người bán của tài khoản nâng cao.

Chọn nhận hoặc không nhận thông báo

Để cập nhật chế độ cài đặt thông báo qua email cho một tài khoản người bán cụ thể, hãy gọi accounts.v1beta.accounts.users.updateEmailPreferences bằng ACCOUNT_ID của tài khoản và địa chỉ email của người dùng.

Sử dụng các giá trị sau để kiểm soát thông báo qua email mà người dùng nhận được:

  • OPTED_IN: Nhận thông báo qua email cho tài khoản.
  • OPTED_OUT: Không nhận được thông báo qua email cho tài khoản.

Dưới đây là một yêu cầu mẫu để người dùng chọn không nhận thông báo qua email cho một tài khoản người bán cụ thể:

PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences

{
  "newsAndTips": "OPTED_OUT"
}

Để truy xuất lựa chọn ưu tiên về email cho một người dùng cụ thể, bạn có thể sử dụng phương thức google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest như trong mẫu sau.

Java

  public static void updateEmailPreferences(Config config, String email) throws Exception {

    GoogleCredentials credential = new Authenticator().authenticate();

    EmailPreferencesServiceSettings emailPreferencesServiceSettings =
        EmailPreferencesServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates EmailPreferences name to identify EmailPreferences.
    String name =
        EmailPreferencesName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .setEmail(email)
            .build()
            .toString();

    // Create a EmailPreferences with the updated fields.
    EmailPreferences emailPreferences =
        EmailPreferences.newBuilder().setName(name).setNewsAndTips(OptInState.OPTED_IN).build();

    FieldMask fieldMask = FieldMask.newBuilder().addPaths("news_and_tips").build();

    try (EmailPreferencesServiceClient emailPreferencesServiceClient =
        EmailPreferencesServiceClient.create(emailPreferencesServiceSettings)) {

      UpdateEmailPreferencesRequest request =
          UpdateEmailPreferencesRequest.newBuilder()
              .setEmailPreferences(emailPreferences)
              .setUpdateMask(fieldMask)
              .build();

      System.out.println("Sending Update EmailPreferences request");
      EmailPreferences response = emailPreferencesServiceClient.updateEmailPreferences(request);
      System.out.println("Updated EmailPreferences Name below");
      System.out.println(response.getName());
    } catch (Exception e) {
      System.out.println(e);
    }
  }

Xem thông báo hiện có

Để xem chế độ cài đặt thông báo qua email hiện tại cho một người dùng cụ thể, hãy gọi accounts.v1beta.accounts.users.getEmailPreferences.

Dưới đây là một yêu cầu mẫu, trong đó ACCOUNT_ID là mã người bán của tài khoản liên quan đến thông báo qua email và EMAIL_ADDRESS là địa chỉ email của người dùng nhận được email.

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences

Dưới đây là phản hồi mẫu từ một lệnh gọi thành công:

{
  "name": "accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences",
  "newsAndTips": "OPTED_IN"
}

Để truy xuất lựa chọn ưu tiên về email cho một người dùng cụ thể, bạn có thể sử dụng gói google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest như trong mẫu sau.

Java

  public static void getEmailPreferences(Config config, String email) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    EmailPreferencesServiceSettings emailPreferencesServiceSettings =
        EmailPreferencesServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates EmailPreferences name to identify the EmailPreferences.
    String name =
        EmailPreferencesName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .setEmail(email)
            .build()
            .toString();

    // Calls the API and catches and prints any network failures/errors.
    try (EmailPreferencesServiceClient emailPreferencesServiceClient =
        EmailPreferencesServiceClient.create(emailPreferencesServiceSettings)) {

      // The name has the format: accounts/{account}/users/{user}/emailPreferences
      GetEmailPreferencesRequest request =
          GetEmailPreferencesRequest.newBuilder().setName(name).build();

      System.out.println("Sending get EmailPreferences request:");
      EmailPreferences response = emailPreferencesServiceClient.getEmailPreferences(request);

      System.out.println("Retrieved EmailPreferences below");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println(e);
    }
  }

Để biết thêm thông tin về thông báo qua email, hãy xem bài viết Thay đổi lựa chọn ưu tiên về email trong Merchant Center.