---
title: ZEPETO.Product
slug: world-sdk-guide-fr/zepetoproduct
docTags: 
createdAt: 2026-09-04T06:28:36.073Z
---

| Type                                                                | Description                                                                                                                                                                  |
| ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BaseResponse](./#baseresponse)                                     | Classe de base des classes de réponse.                                                                                                                                       |
| [BaseRequest](./#baserequest)                                       | Classe `BaseRequest` qui accepte un type générique `TResponse` comme données de réponse.                                                                                     |
| [ProductListResponse](./#productlistresponse)                       | La classe `ProductListResponse` fournit le résultat de l'appel d'API ainsi que la liste des informations de produit récupérées.                                              |
| [ProductBaseResponse](./#productbaseresponse)                       | Classe de base des classes de réponse liées aux produits.                                                                                                                    |
| [ProductResponse](./#productresponse)                               | La classe `ProductResponse` fournit le résultat de l'appel d'API ainsi que les informations de produit récupérées.                                                           |
| [PurchaseResponse](./#purchaseresponse)                             | La classe `ProductResponse` fournit le résultat de l'appel d'API ainsi que les informations d'achat.                                                                         |
| [CurrencyListResponse](./#currencylistresponse)                     | La classe `CurrencyListResponse` fournit le résultat de l'appel d'API ainsi que la liste des informations de devise.                                                         |
| [CurrencyResponse](./#currencyresponse)                             | La classe `CurrencyResponse` fournit le résultat de l'appel d'API ainsi que les informations de devise.                                                                      |
| [ProductRecord](./#productrecord)                                   | Informations sur le produit.                                                                                                                                                 |
| [CurrencyRecord](./#currencyrecord)                                 | Informations sur la devise.                                                                                                                                                  |
| [ItemPackageUnitRecord](./#itempackageunitrecord)                   | Détails de chaque produit inclus dans le pack de produits d'articles.                                                                                                        |
| [CurrencyPackageUnitRecord](./#currencypackageunitrecord)           | Détails de chaque devise incluse dans le pack de produits de devises.                                                                                                        |
| [ProductType](./#producttype)                                       | Énumération représentant le type de produit.                                                                                                                                 |
| [PurchaseType](./#purchasetype)                                     | Énumération représentant le type d'achat du produit.                                                                                                                         |
| [ProductStatus](./#productstatus)                                   | Énumération représentant l'état du produit.                                                                                                                                  |
| [CurrencyType](./#currencytype)                                     | Énumération représentant le type de devise.                                                                                                                                  |
| [ProductService](./#productservice)                                 | `ProductService` gère les opérations liées aux produits in-World. Les joueurs peuvent accéder aux informations des produits in-World et effectuer des achats via ce service. |
| [ProductPurchaseButton](./#productpurchasebutton)                   | Classe gérant les fonctionnalités d'un bouton d'achat de produit in-World.                                                                                                   |
| [ProductError](./#producterror)                                     | Code d'erreur indiquant la raison de l'échec des requêtes liées aux produits.                                                                                                |
| [OfficialCurrencyBalanceRequest](./#officialcurrencybalancerequest) | Représente une requête asynchrone permettant de récupérer le solde de la devise officielle de ZEPETO (ZEM).                                                                  |

## BaseResponse

`class`

Classe de base des classes de réponse.

### Propriétés

| Nom       | Type      | Description                                                           |
| --------- | --------- | --------------------------------------------------------------------- |
| isSuccess | `boolean` | Indique l'état de réussite de la requête. Vaut true en cas de succès. |
| message   | `string`  | Décrit le résultat de la requête.                                     |

## BaseRequest

`class` · extends `BaseAPIRequest`

Classe `BaseRequest` qui accepte un type générique `TResponse` comme données de réponse.

### Propriétés

| Nom          | Type        | Description                                       |
| ------------ | ----------- | ------------------------------------------------- |
| responseData | `TResponse` | Données de réponse du type générique `TResponse`. |

## ProductListResponse

`class` · extends [ProductBaseResponse](./#productbaseresponse)

La classe `ProductListResponse` fournit le résultat de l'appel d'API ainsi que la liste des informations de produit récupérées.

### Propriétés

| Nom      | Type                                  | Description                        |
| -------- | ------------------------------------- | ---------------------------------- |
| products | [ProductRecord\[\]](./#productrecord) | Liste des informations de produit. |

## ProductBaseResponse

`class` · extends [BaseResponse](./#baseresponse)

Classe de base des classes de réponse liées aux produits.

### Propriétés

| Nom       | Type                            | Description                                                      |
| --------- | ------------------------------- | ---------------------------------------------------------------- |
| ErrorCode | [ProductError](./#producterror) | Récupère le code d'erreur d'une requête de produit ayant échoué. |

## ProductResponse

`class` · extends [ProductBaseResponse](./#productbaseresponse)

La classe `ProductResponse` fournit le résultat de l'appel d'API ainsi que les informations de produit récupérées.

### Propriétés

| Nom     | Type                              | Description                  |
| ------- | --------------------------------- | ---------------------------- |
| product | [ProductRecord](./#productrecord) | Informations sur le produit. |

## PurchaseResponse

`class` · extends [ProductBaseResponse](./#productbaseresponse)

La classe `ProductResponse` fournit le résultat de l'appel d'API ainsi que les informations d'achat.

### Propriétés

| Nom         | Type     | Description                                      |
| ----------- | -------- | ------------------------------------------------ |
| userId      | `string` | ID utilisateur du joueur ayant effectué l'achat. |
| productId   | `string` | ID du produit in-World acheté.                   |
| price       | `number` | Prix du produit in-World acheté.                 |
| receiptId   | `string` | ID du reçu de l'achat.                           |
| purchasedAt | `Date`   | Date et heure d'achat du produit in-World.       |

## CurrencyListResponse

`class` · extends [ProductBaseResponse](./#productbaseresponse)

La classe `CurrencyListResponse` fournit le résultat de l'appel d'API ainsi que la liste des informations de devise.

### Propriétés

| Nom        | Type                                    | Description                       |
| ---------- | --------------------------------------- | --------------------------------- |
| currencies | [CurrencyRecord\[\]](./#currencyrecord) | Liste des informations de devise. |

## CurrencyResponse

`class` · extends [ProductBaseResponse](./#productbaseresponse)

La classe `CurrencyResponse` fournit le résultat de l'appel d'API ainsi que les informations de devise.

### Propriétés

| Nom      | Type                                | Description                 |
| -------- | ----------------------------------- | --------------------------- |
| currency | [CurrencyRecord](./#currencyrecord) | Informations sur la devise. |

## ProductRecord

`class`

Informations sur le produit.

### Propriétés

| Nom                  | Type                                                          | Description                                                                                        |
| -------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| productId            | `string`                                                      | ID du produit.                                                                                     |
| name                 | `string`                                                      | Nom du produit.                                                                                    |
| price                | `number`                                                      | Prix du produit.                                                                                   |
| isPurchased          | `boolean`                                                     | Indique si l'utilisateur a acheté le produit. S'applique uniquement aux produits non consommables. |
| itemPackageUnits     | [ItemPackageUnitRecord\[\]](./#itempackageunitrecord)         | Articles inclus dans le produit si `ProductType` vaut `ItemPackage`.                               |
| currencyPackageUnits | [CurrencyPackageUnitRecord\[\]](./#currencypackageunitrecord) | Devises incluses dans le produit si `ProductType` vaut `CurrencyPackage`.                          |
| ProductType          | [ProductType](./#producttype)                                 | Renvoie le `ProductType` du produit.                                                               |
| PurchaseType         | [PurchaseType](./#purchasetype)                               | Renvoie le `PurchaseType` du produit.                                                              |
| ProductStatus        | [ProductStatus](./#productstatus)                             | Renvoie le `ProductStatus` du produit.                                                             |
| CurrencyType         | [CurrencyType](./#currencytype)                               | Renvoie le type de devise utilisé pour l'achat du produit.                                         |
| currencyId           | `string`                                                      | Renvoie l'ID de la devise utilisée pour l'achat du produit.                                        |
| currencyName         | `string`                                                      | Renvoie le nom de la devise utilisée pour l'achat du produit.                                      |

### Méthodes

### GetCurrencySprite

`GetCurrencySprite() → Sprite`

Renvoie l'image de la devise utilisée pour l'achat du produit.

**Renvoie :** `Sprite`

## CurrencyRecord

`class`

Informations sur la devise.

### Propriétés

| Nom                | Type      | Description                                                                           |
| ------------------ | --------- | ------------------------------------------------------------------------------------- |
| currencyId         | `string`  | ID de la devise.                                                                      |
| name               | `string`  | Nom de la devise.                                                                     |
| isOfficialCurrency | `boolean` | Indique si la devise est la devise officielle de ZEPETO (ZEM) ou une devise in-World. |

## ItemPackageUnitRecord

`class`

Détails de chaque produit inclus dans le pack de produits d'articles.

### Propriétés

| Nom       | Type     | Description            |
| --------- | -------- | ---------------------- |
| productId | `string` | ID du produit.         |
| itemName  | `string` | Nom de l'article.      |
| quantity  | `bigint` | Quantité de l'article. |

## CurrencyPackageUnitRecord

`class`

Détails de chaque devise incluse dans le pack de produits de devises.

### Propriétés

| Nom          | Type     | Description         |
| ------------ | -------- | ------------------- |
| currencyId   | `string` | ID de la devise.    |
| currencyName | `string` | Nom de la devise.   |
| quantity     | `bigint` | Quantité de devise. |

## ProductType

`enum`

Énumération représentant le type de produit.

| Nom             | Valeur | Description                                               |
| --------------- | ------ | --------------------------------------------------------- |
| Item            | 0      | Produit composé d'un seul article.                        |
| ItemPackage     | 1      | Pack de produits d'articles contenant plusieurs articles. |
| CurrencyPackage | 2      | Pack de produits de devises contenant plusieurs devises.  |

## PurchaseType

`enum`

Énumération représentant le type d'achat du produit.

| Nom           | Valeur | Description              |
| ------------- | ------ | ------------------------ |
| Consumable    | 0      | Produit consommable.     |
| NonConsumable | 1      | Produit non consommable. |

## ProductStatus

`enum`

Énumération représentant l'état du produit.

| Nom       | Valeur | Description                                                          |
| --------- | ------ | -------------------------------------------------------------------- |
| Active    | 0      | État actif.                                                          |
| InActive  | 1      | État inactif.                                                        |
| Forbidden | 2      | État interdit en raison de l'expiration de la période d'utilisation. |

## CurrencyType

`enum`

Énumération représentant le type de devise.

| Nom              | Valeur | Description                       |
| ---------------- | ------ | --------------------------------- |
| OfficialCurrency | 0      | Devise officielle de ZEPETO (ZEM) |
| UserCurrency     | 1      | Devise in-World.                  |

## ProductService

`class`

`ProductService` gère les opérations liées aux produits in-World.
Les joueurs peuvent accéder aux informations des produits in-World et effectuer des achats via ce service.

### Événements

| Nom                          | Type                                             | Description                                                                                                                                                                                                                                                                                |
| ---------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| OnPurchaseCompleted (static) | `UnityEvent<ProductRecord, PurchaseResponse>`    | Événement déclenché lors de l'achat réussi d'un produit in-World. Des écouteurs peuvent être ajoutés ; ils reçoivent en arguments les instances `ProductRecord` (informations du produit acheté) et `PurchaseResponse` (informations du résultat de l'achat).                              |
| OnPurchaseFailed (static)    | `UnityEvent<ProductRecord, ProductBaseResponse>` | Événement déclenché lors de l'échec de l'achat d'un produit in-World. Des écouteurs peuvent être ajoutés ; ils reçoivent en arguments les instances `ProductRecord` (informations du produit dont l'achat a été tenté) et `PurchaseResponse` (informations du résultat de l'achat échoué). |

### Méthodes

### GetProductsAsync

`static GetProductsAsync(productIds: string[]) → BaseRequest<ProductListResponse>`

Cette méthode asynchrone récupère la liste des produits in-World à partir des ID de produit fournis.

| Paramètre  | Type       | Description                  |
| ---------- | ---------- | ---------------------------- |
| productIds | `string[]` | ID des produits à récupérer. |

**Renvoie :** [BaseRequest\<ProductListResponse>](./#baserequest) — Un objet `BaseRequest`. Une fois le traitement asynchrone terminé, vous pouvez accéder à l'objet `ProductListResponse` via la propriété `responseData`.

### GetProductAsync

`static GetProductAsync(productId: string) → BaseRequest<ProductResponse>`

Cette méthode asynchrone récupère les informations d'un produit in-World à partir de l'ID de produit fourni.

| Paramètre | Type     | Description                |
| --------- | -------- | -------------------------- |
| productId | `string` | ID du produit à récupérer. |

**Renvoie :** [BaseRequest\<ProductResponse>](./#baserequest) — Un objet `BaseRequest`. Une fois le traitement asynchrone terminé, vous pouvez accéder à l'objet `ProductResponse` via la propriété `responseData`.

### PurchaseProductAsync

`static PurchaseProductAsync(product: ProductRecord, reason?: string) → BaseRequest<PurchaseResponse>`

Cette méthode asynchrone effectue l'achat d'un produit in-World à partir des informations de produit fournies.

| Paramètre           | Type                              | Description                                    |
| ------------------- | --------------------------------- | ---------------------------------------------- |
| product             | [ProductRecord](./#productrecord) | Instance `ProductRecord` du produit à acheter. |
| reason (facultatif) | `string`                          | Explication de l'achat.                        |

**Renvoie :** [BaseRequest\<PurchaseResponse>](./#baserequest) — Un objet `BaseRequest`. Une fois le traitement asynchrone terminé, vous pouvez accéder à l'objet `PurchaseResponse` via la propriété `responseData`.

### PurchaseProductAsync

`static PurchaseProductAsync(productId: string, reason?: string) → BaseRequest<PurchaseResponse>`

Cette méthode asynchrone effectue l'achat d'un produit in-World à partir de l'ID de produit fourni.

| Paramètre           | Type     | Description              |
| ------------------- | -------- | ------------------------ |
| productId           | `string` | ID du produit à acheter. |
| reason (facultatif) | `string` | Explication de l'achat.  |

**Renvoie :** [BaseRequest\<PurchaseResponse>](./#baserequest) — Un objet `BaseRequest`. Une fois le traitement asynchrone terminé, vous pouvez accéder à l'objet `PurchaseResponse` via la propriété `responseData`.

### GetCurrenciesAsync

`static GetCurrenciesAsync() → BaseRequest<CurrencyListResponse>`

Méthode asynchrone permettant d'obtenir la liste des devises.
Une fois l'opération terminée, la liste des devises est obtenue et vous pouvez accéder à l'objet `CurrencyListResponse` via la propriété `responseData`.

**Renvoie :** [BaseRequest\<CurrencyListResponse>](./#baserequest)

### GetCurrencyAsync

`static GetCurrencyAsync(currencyId: string) → BaseRequest<CurrencyResponse>`

Cette méthode asynchrone récupère les informations d'une devise in-World à partir de l'ID de produit fourni.

| Paramètre  | Type     | Description                  |
| ---------- | -------- | ---------------------------- |
| currencyId | `string` | ID de la devise à récupérer. |

**Renvoie :** [BaseRequest\<CurrencyResponse>](./#baserequest) — Un objet `BaseRequest`. Une fois le traitement asynchrone terminé, vous pouvez accéder à l'objet `CurrencyResponse` via la propriété `responseData`.

### OpenPurchaseUI

`static OpenPurchaseUI(product: ProductRecord) → void`

Cette méthode ouvre l'interface d'achat de produit in-World.

| Paramètre | Type                              | Description                                    |
| --------- | --------------------------------- | ---------------------------------------------- |
| product   | [ProductRecord](./#productrecord) | Instance `ProductRecord` du produit à acheter. |

## ProductPurchaseButton

`class`

Classe gérant les fonctionnalités d'un bouton d'achat de produit in-World.

### Propriétés

| Nom       | Type                              | Description                                                           |
| --------- | --------------------------------- | --------------------------------------------------------------------- |
| productId | `string`                          | Obtient l'ID du produit in-World disponible à l'achat.                |
| product   | [ProductRecord](./#productrecord) | Récupère les informations du produit in-World associé au `productId`. |

### Méthodes

### SetProductId

`SetProductId(productId: string) → void`

Définit l'ID d'un produit in-World disponible à l'achat via ce bouton.

| Paramètre | Type     | Description    |
| --------- | -------- | -------------- |
| productId | `string` | ID du produit. |

## ProductError

`enum`

Code d'erreur indiquant la raison de l'échec des requêtes liées aux produits.

| Nom                              | Valeur | Description                                                                                                                                                              |
| -------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Unknown                          | -1     | Erreur : erreur inconnue.                                                                                                                                                |
| NetworkError                     | 0      | Erreur : erreurs liées au réseau, notamment les déconnexions ou les connexions instables.                                                                                |
| UserCanceled                     | 1      | Erreur : la requête a été annulée par l'utilisateur.                                                                                                                     |
| ProductRefreshResponseError      | 2      | Erreur : métadonnées de produit non valides dans la requête.                                                                                                             |
| ItemPackageProductsResponseError | 3      | Erreur : échec de la récupération des informations d'un ou plusieurs articles du pack de produits d'articles.                                                            |
| IAPCardError                     | 4      | Erreur : échec de la récupération des informations d'une ou plusieurs devises du pack de produits de devises.                                                            |
| ProductPriceChanged              | 4001   | Erreur : le prix du produit ne correspond pas.                                                                                                                           |
| ProductAlreadyPurchased          | 4002   | Erreur : le produit a déjà été acheté.                                                                                                                                   |
| BalanceOfficialCurrencyNotEnough | 4003   | Erreur : solde insuffisant en devise officielle de ZEPETO (ZEM) pour effectuer l'achat.                                                                                  |
| BalanceUserCurrencyNotEnough     | 4004   | Erreur : solde insuffisant en devise in-World pour effectuer l'achat.                                                                                                    |
| ProductNotActive                 | 4005   | Erreur : le produit n'est pas actif.                                                                                                                                     |
| InvalidCreator                   | 4006   | Erreur : l'ID utilisateur du joueur diffère de celui du créateur du World. Cette erreur ne survient que dans l'environnement de développement utilisant l'éditeur Unity. |

## OfficialCurrencyBalanceRequest

`class` · extends [BaseRequest\<BalanceResponse>](./#baserequest)

Représente une requête asynchrone permettant de récupérer le solde de la devise officielle de ZEPETO (ZEM).
