Dapatkan informasi tentang barang yang dimiliki oleh pengguna
Anda dapat menggunakan ZEPETO.Module.Shop API untuk mengambil informasi item dari pengguna yang terhubung saat ini berdasarkan kategori.
Instal
Jendela → Pengelola Paket → Silakan instal Paket ZEPETO.World versi 1.21.14 atau yang lebih tinggi terlebih dahulu.
Kemudian instal paket ZEPETO.Module versi 1.0.7 atau yang lebih tinggi.

ZEPETO.Module.Shop API
Jika Anda tertarik dengan ZEPETO.Module.Shop API, silakan merujuk ke dokumentasi:
📘 Silakan merujuk ke panduan berikut. [ZEPETO.Module.Shop API]
Contoh Mengeluarkan Informasi Item
- Proyek > Buat > ZEPETO > TypeScript dibuat dan namanya diubah menjadi MyItemList.
- Tulis skrip contoh seperti yang ditunjukkan di bawah ini.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script'
import { ShopService, Category, ItemKeyword } from 'ZEPETO.Module.Shop'
import { ZepetoPropertyFlag } from 'Zepeto'
import { Texture2D, WaitUntil } from 'UnityEngine'
import { RawImage } from 'UnityEngine.UI'
import { Item } from 'ZEPETO.Module.Content'
export default class MyItemList extends ZepetoScriptBehaviour {
public thumbnailImage: RawImage;
Start() {
this.StartCoroutine(this.CoGetMyCategory());
}
*CoGetMyCategory() {
var requestCategory = ShopService.GetMyCategoryAsync();
yield new WaitUntil(() => requestCategory.keepWaiting == false);
if (requestCategory.responseData.isSuccess) {
let categoryInfo = requestCategory.responseData.category;
console.log(`[Informasi Kategori] ${categoryInfo.displayName} - panjang : ${categoryInfo.categories.Length}`);
let categories: Category[] = categoryInfo.categories;
for (const category of categories) {
console.log(`[Nama Tampilkan Kategori] ${category.displayName} `);
//Kata Kunci Kategori digunakan sebagai argumen dalam fungsi ShopService.GetMyContentItemListAsync
console.log(`[Kata Kunci Kategori] ${category.keyword} `);
}
}
this.StartCoroutine(this.CoGetMyItem());
}
*CoGetMyItem() {
var requestItemList = ShopService.GetMyContentItemListAsync(ItemKeyword.all, null);
yield new WaitUntil(() => requestItemList.keepWaiting == false);
if (requestItemList.responseData.isSuccess) {
let items: Item[] = requestItemList.responseData.items;
// Jumlah item yang diterima sebagai hasil dari GetMyContentItemListAsync().
console.log(items.length);
for (let i = 0; i < items.length; ++i) {
const property: ZepetoPropertyFlag = items[i].property;
// ID item dan properti item
console.log(`[Item Konten] (id): ${items[i].id} | (properti): ${property}`);
// Mengatur thumbnail item sebagai tekstur dari rawImage
var textureReq = items[i].GetThumbnailAsync();
yield new WaitUntil(() => textureReq.keepWaiting == false);
let thumbnailTexture: Texture2D = textureReq.responseData.texture;
this.thumbnailImage.texture = thumbnailTexture;
}
}
}
}

- Deskripsi Skrip
- Ambil Informasi Tab Item Saya
- Panggil ShopService.GetMyCategoryAsync() untuk mengetahui kategori item di tab Item Saya.
- Ketika Anda berhasil menerima respons, Anda dapat mengakses objek CategoryResponse melalui properti responseData.
- CategoryResponse.category.categories dijelajahi dan daftar kategori item di tab Item Saya dikeluarkan.
- Ambil Daftar Item
- Panggil ShopService.GetMyContentItemListAsync(ItemKeyword.all, null) untuk mengambil daftar item untuk semua kategori.
- Anda dapat memilih untuk mengambil item hanya dari kategori tertentu. Misalnya, Anda dapat menggunakan ItemKeyword.hair alih-alih ItemKeyword.all untuk mengambil hanya item rambut.
- Parameter kedua hanya digunakan jika Anda mengetahui token halaman berikutnya untuk diminta. Atur ke null saat pertama kali Anda memanggil API.
- Untuk contoh terkait nextPageToken, periksa informasi di bawah ini.
- Ketika Anda menerima respons yang berhasil, Anda dapat mengakses objek ContentItemListResponse melalui properti responseData
- ItemResponse.items dijelajahi dan ID serta kode Enum bagian untuk setiap item dikeluarkan.
- Selain itu, thumbnail item diatur sebagai rawImage yang ditentukan.
- Setelah Anda selesai menulis skrip, tambahkan skrip ke objek di Scene.
- Menekan tombol Putar akan menunjukkan daftar kategori dari tab Item Saya dan informasi item dari semua kategori.



- Jika Anda membuat prefab thumbnail item dan memiliki thumbnail yang dibuat secara dinamis berdasarkan daftar item, Anda dapat menampilkan thumbnail daftar item di UI.
Contoh untuk Memeriksa Status Kepemilikan Item Tertentu Pengguna
Anda dapat memanfaatkan GetMyContentItemListAsync() untuk memeriksa apakah seseorang di Dunia mengenakan pakaian tertentu.
Berikut adalah contoh sederhana untuk menampilkan pesan di UI pengguna yang memiliki item tertentu.
- Proyek > Buat > ZEPETO > TypeScript dibuat dan namanya diubah menjadi CheckItem.
- Tulis skrip contoh seperti yang ditunjukkan di bawah ini.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script'
import { ShopService, ItemKeyword } from 'ZEPETO.Module.Shop'
import { ZepetoPropertyFlag } from 'Zepeto'
import { WaitUntil } from 'UnityEngine'
import { Text } from 'UnityEngine.UI'
import { Item } from 'ZEPETO.Module.Content'
export default class CheckItem extends ZepetoScriptBehaviour {
public resultText: Text;
public checkItemID: string;
Start() {
this.resultText.gameObject.SetActive(false);
this.StartCoroutine(this.CoCheckItem());
}
*CoCheckItem() {
let nextPageToken: string | null = null;
do {
// Minta daftar item konten pengguna.
const requestItemList = ShopService.GetMyContentItemListAsync(ItemKeyword.all, nextPageToken);
yield new WaitUntil(() => requestItemList.keepWaiting == false);
if (requestItemList.responseData.isSuccess) {
// Dapatkan item konten dari respons.
const contentItems: Item[] = requestItemList.responseData.items;
nextPageToken = requestItemList.responseData.nextPageToken;
// Iterasi melalui item konten.
for (let i = 0; i < contentItems.length; ++i) {
const property: ZepetoPropertyFlag = contentItems[i].property;
// Periksa apakah ID item cocok dengan ID yang ditentukan.
if (contentItems[i].id == this.checkItemID) {
// Aktifkan pesan item yang cocok.
this.ActivateMatchedItem();
break;
}
}
}
else {
break;
}
} while (nextPageToken != null);
}
ActivateMatchedItem() {
// Tampilkan pesan item yang cocok.
this.resultText.gameObject.SetActive(true);
this.resultText.text = "Wow, Anda memiliki item yang saya buat!";
}
}
- Deskripsi Skrip
- Ini adalah skrip yang menjelajahi daftar 'Item Saya' (semua kategori) dari pengguna yang masuk ke dalam Dunia dan menemukan ID item yang cocok yang dimasukkan di Inspector.
- Jika ada banyak item, nilai nextPageToken tidak null. Oleh karena itu, proses diulang dengan pernyataan do-while sampai nilai menjadi null.
- Perhatikan bagaimana nextPageToken diberikan sebagai parameter kedua dari ShopService.GetMyContentItemListAsync(ItemKeyword.all, nextPageToken).
- Ketika Anda menerima respons yang berhasil, Anda dapat mengakses objek ContentItemListResponse melalui properti responseData.
- ItemResponse.items dijelajahi untuk menemukan kecocokan untuk ID item yang dimasukkan.
- Jika item yang cocok ditemukan, ActivateMatchedItem() dipanggil untuk menampilkan teks di layar pengguna dan mengakhiri loop.
- Setelah Anda selesai menulis skrip, tambahkan skrip ke objek di Scene.
- Masukkan ID item yang ingin Anda periksa apakah pengguna di Dunia memilikinya di Inspector.

- Tekan tombol Putar untuk menjalankan proses. Teks akan muncul di layar jika pengguna yang masuk ke Dunia memiliki item yang cocok dengan ID item yang dimasukkan.

Anda dapat menerapkan contoh ini untuk membuat berbagai jenis konten yang menarik.