Kelola notifikasi email Merchant Center

Panduan ini menjelaskan cara menggunakan referensi EmailPreferences untuk mengelola notifikasi email Merchant Center, dan melihat jenis email yang diterima users akun Anda. Untuk mengetahui daftar lengkap jenis notifikasi email, lihat referensi EmailPreferences.

Anda hanya dapat menggunakan Merchant API untuk mengelola notifikasi email untuk akun tempat Anda ditambahkan sebagai pengguna.

Untuk melihat atau memperbarui notifikasi email, Anda memerlukan nilai berikut:

Memilih ikut atau tidak ikut notifikasi

Untuk memperbarui setelan notifikasi email untuk akun penjual tertentu, panggil accounts.v1beta.accounts.users.updateEmailPreferences dengan ACCOUNT_ID akun dan alamat email pengguna.

Gunakan nilai berikut untuk mengontrol notifikasi email yang diterima pengguna:

  • OPTED_IN: Menerima notifikasi email untuk akun.
  • OPTED_OUT: Tidak menerima notifikasi email untuk akun tersebut.

Berikut adalah contoh permintaan untuk memilih tidak ikut menerima notifikasi email bagi akun penjual tertentu:

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

{
  "newsAndTips": "OPTED_OUT"
}

Untuk mengambil preferensi email bagi pengguna tertentu, Anda dapat menggunakan metode google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest, seperti yang ditunjukkan dalam contoh berikut.

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

Melihat notifikasi yang ada

Untuk melihat setelan notifikasi email saat ini untuk pengguna tertentu, panggil accounts.v1beta.accounts.users.getEmailPreferences.

Berikut adalah contoh permintaan, dengan ACCOUNT_ID adalah ID penjual akun yang menjadi tujuan notifikasi email, dan EMAIL_ADDRESS adalah alamat email pengguna yang menerima email.

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

Berikut adalah contoh respons dari panggilan yang berhasil:

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

Untuk mengambil preferensi email bagi pengguna tertentu, Anda dapat menggunakan paket google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest, seperti yang ditunjukkan dalam contoh berikut.

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

Untuk informasi selengkapnya tentang notifikasi email, lihat Mengubah preferensi email Merchant Center.