Управление уведомлениями по электронной почте Merchant Center

В этом руководстве объясняется, как использовать ресурс EmailPreferences для управления уведомлениями по электронной почте Merchant Center и просмотра типов электронных писем, которые получают users вашего аккаунта. Полный список типов уведомлений по электронной почте см. в справочнике EmailPreferences .

Вы можете использовать Merchant API для управления уведомлениями по электронной почте только для аккаунтов, в которых вы добавлены в качестве пользователя .

Чтобы просмотреть или обновить уведомления по электронной почте, вам потребуются следующие значения:

  • Адрес электронной почты пользователя, который получает электронные письма. Вы можете найти их адрес электронной почты в поле name ресурса User .
  • Идентификатор продавца учетной записи, о которой можно начать или прекратить получать электронные письма. Если учетная запись продавца является расширенной учетной записью и у пользователя есть доступ к расширенной учетной записи , используйте идентификатор продавца расширенной учетной записи.

Включить или отключить уведомления

Чтобы обновить настройки уведомлений по электронной почте для определенной учетной записи продавца, accounts.v1beta.accounts.users.updateEmailPreferences , указав ACCOUNT_ID учетной записи и адрес электронной почты пользователя.

Используйте следующие значения для управления уведомлениями по электронной почте, которые получает пользователь:

  • OPTED_IN : получать уведомления по электронной почте для учетной записи.
  • OPTED_OUT : не получать уведомления по электронной почте для этой учетной записи.

Вот пример запроса на отказ пользователя от уведомлений по электронной почте для определенного аккаунта продавца:

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

{
  "newsAndTips": "OPTED_OUT"
}

Чтобы получить настройки электронной почты для конкретного пользователя, вы можете использовать метод google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest , как показано в следующем примере.

Ява

  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);
    }
  }

Просмотр существующих уведомлений

Чтобы просмотреть текущие настройки уведомлений по электронной почте для конкретного пользователя, accounts.v1beta.accounts.users.getEmailPreferences .

Ниже приведен пример запроса, где ACCOUNT_ID — это идентификатор продавца учетной записи, о которой отправляются уведомления по электронной почте, а EMAIL_ADDRESS — это адрес электронной почты пользователя, который получает электронные письма.

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

Вот пример ответа на успешный вызов:

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

Чтобы получить настройки электронной почты для конкретного пользователя, вы можете использовать пакет google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest , как показано в следующем примере.

Ява

  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);
    }
  }

Дополнительную информацию об уведомлениях по электронной почте см. в разделе Изменение настроек электронной почты Merchant Center .