> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conteneurs à contenu fixe dans Economy v2

> Recréez les articles conteneurs hérités de PlayFab dans Economy v2 en combinant un jeton de monnaie virtuelle avec un ensemble qui dépaquette des récompenses fixes lors de l'achat.

<Info>
  Economy v2 est maintenant en disponibilité générale. Pour obtenir du soutien et transmettre vos commentaires, rendez-vous sur le [forum PlayFab](https://community.playfab.com).
</Info>

Economy v1 (héritée) disposait d'une fonctionnalité **Containers** intégrée : des articles de catalogue spéciaux qui, une fois ouverts, accordaient leur contenu à l'inventaire du joueur. Economy v2 n'inclut pas les conteneurs comme type d'article natif, mais vous pouvez obtenir le même comportement pour les **conteneurs à contenu fixe** (conteneurs qui accordent toujours les mêmes articles) en combinant une monnaie virtuelle et des ensembles.

## Fonctionnement

Ce modèle utilise trois blocs de construction d'Economy v2 :

1. **Une monnaie virtuelle (ou un article empilable)** qui représente le conteneur lui-même, par exemple « Treasure Chest Token ».
2. **Un ensemble (Bundle)** au prix de 1 unité de cette monnaie, contenant les articles que le conteneur doit accorder.
3. **Un appel d'achat** dans lequel le joueur dépense 1 jeton pour acheter l'ensemble, qui est automatiquement dépaqueté et accorde les articles.

Du point de vue du joueur, celui-ci reçoit un jeton (au moyen de récompenses de jeu, d'achats en boutique, etc.), puis l'« ouvre » pour obtenir les articles qu'il contient, exactement comme fonctionnaient les conteneurs de la V1.

## Prérequis

* Un [compte de développeur PlayFab](https://developer.playfab.com/en-us/sign-up).
* Un titre créé dans [Game Manager](https://developer.playfab.com/).
* Au moins un article de catalogue publié que vous souhaitez faire accorder par le conteneur.

## Étape 1 : Créer une monnaie virtuelle pour le conteneur

Créez une monnaie virtuelle qui représente le conteneur. Chaque unité de cette monnaie correspond à un conteneur non ouvert.

### Game Manager

1. Accédez à **Economy** > **Catalog (V2)** > **Currency**.
2. Sélectionnez **New currency**.
3. Définissez le **Title** sur un nom descriptif, comme `Treasure Chest`.
4. Définissez le **FriendlyId** sur un code court, comme `tc`.
5. Sélectionnez **Save and publish**.

### API REST

Appelez [CreateDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-draft-item) :

```json theme={null}
{
  "Item": {
    "CreatorEntity": {
      "Id": "{{TitleID}}",
      "Type": "title"
    },
    "Type": "currency",
    "AlternateIds": [
      {
        "Type": "FriendlyId",
        "Value": "tc"
      }
    ],
    "Title": {
      "NEUTRAL": "Treasure Chest"
    },
    "Description": {
      "NEUTRAL": "A treasure chest that can be opened to reveal its contents."
    },
    "StartDate": "2023-07-27T00:00:00.000Z"
  },
  "Publish": true
}
```

***

## Étape 2 : Créer un ensemble au prix d'un jeton de conteneur

Créez un ensemble qui contient les articles que le conteneur doit accorder. Fixez le prix de l'ensemble à exactement une unité de la monnaie du conteneur.

### Game Manager

1. Accédez à **Economy** > **Catalog (V2)** > **Bundles**.
2. Sélectionnez **New bundle**.
3. Définissez le **Title** pour décrire le contenu du conteneur, par exemple `Treasure Chest Contents`.
4. Sous **Items**, ajoutez les articles et les quantités que le conteneur doit accorder, par exemple 1 **Legendary Sword** et 100 **Gold**.
5. Sous **Price**, fixez le prix à **1** unité de la monnaie de votre conteneur (**Treasure Chest**).
6. Sélectionnez **Save and publish**.

### API REST

Appelez [CreateDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-draft-item) :

```json theme={null}
{
  "Item": {
    "Type": "bundle",
    "Title": {
      "NEUTRAL": "Treasure Chest Contents"
    },
    "StartDate": "2023-07-27T00:00:00.000Z",
    "ItemReferences": [
      {
        "Id": "{{LegendarySwordID}}",
        "Amount": 1
      },
      {
        "Id": "{{GoldCurrencyID}}",
        "Amount": 100
      }
    ],
    "PriceOptions": {
      "Prices": [
        {
          "Amounts": [
            {
              "ItemId": "{{TreasureChestCurrencyID}}",
              "Amount": 1
            }
          ]
        }
      ]
    }
  },
  "Publish": true
}
```

***

Lorsqu'un joueur achète cet ensemble, celui-ci est [automatiquement dépaqueté](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/bundles#purchasing-and-unpacking-bundles) : les articles individuels sont directement ajoutés à l'inventaire du joueur.

## Étape 3 : Accorder des jetons de conteneur aux joueurs

Accordez la monnaie du conteneur aux joueurs au moyen de tout mécanisme adapté à la conception de votre jeu :

* **Récompenses de jeu** : Accordez des jetons après la réussite d'un niveau, d'une quête ou d'un succès à l'aide de [AddInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/add-inventory-items).
* **Achats en boutique** : Vendez le jeton de conteneur dans une [boutique](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/stores) contre une autre monnaie virtuelle ou de l'argent réel.
* **Passe de combat / récompenses saisonnières** : Incluez le jeton comme palier de récompense.

Exemple d'utilisation de `AddInventoryItems` pour accorder trois jetons Treasure Chest :

```json theme={null}
{
  "Entity": {
    "Type": "title_player_account",
    "Id": "{{PlayerID}}"
  },
  "Item": {
    "Id": "{{TreasureChestCurrencyID}}"
  },
  "Amount": 3
}
```

## Étape 4 : Ouvrir le conteneur

Lorsque le joueur souhaite ouvrir un conteneur, appelez [PurchaseInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/purchase-inventory-items) pour acheter l'ensemble avec un jeton de conteneur :

```json theme={null}
{
  "Entity": {
    "Type": "title_player_account",
    "Id": "{{PlayerID}}"
  },
  "Item": {
    "Id": "{{TreasureChestContentsBundleID}}"
  },
  "Amount": 1,
  "PriceAmounts": [
    {
      "ItemId": "{{TreasureChestCurrencyID}}",
      "Amount": 1
    }
  ]
}
```

Après un appel réussi, l'inventaire du joueur est mis à jour : un jeton Treasure Chest est déduit et le contenu de l'ensemble (une Legendary Sword + 100 Gold) est ajouté.

## Plusieurs types de conteneurs

Créez plusieurs types de conteneurs en répétant ce modèle. Par exemple :

| Conteneur | Monnaie (FriendlyId) | Contenu de l'ensemble |
| - | - | - |
| Treasure Chest | `tc` | Une Legendary Sword + 100 Gold |
| Supply Crate | `sc` | Cinq Health Potions + 3 Mana Potions |
| Premium Box | `pb` | Une Rare Mount + 500 Gold + 50 Gems |

Chaque type de conteneur possède sa propre monnaie et son propre ensemble.

## Utiliser une boutique pour les achats de conteneurs

Utilisez une [boutique](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/stores) pour remplacer le prix de l'ensemble du conteneur. En utilisant une boutique, vous pouvez proposer le même conteneur à des prix différents selon le contexte (par exemple, un coût d'« ouverture » réduit pendant un événement) :

```json theme={null}
{
  "Item": {
    "Type": "store",
    "Title": {
      "NEUTRAL": "Event Store"
    },
    "ItemReferences": [
      {
        "Id": "{{TreasureChestContentsBundleID}}",
        "Amount": 1,
        "PriceOptions": {
          "Prices": [
            {
              "Amounts": [
                {
                  "ItemId": "{{TreasureChestCurrencyID}}",
                  "Amount": 1
                }
              ]
            }
          ]
        }
      }
    ]
  },
  "Publish": true
}
```

Transmettez ensuite le `StoreId` lors de l'achat :

```json theme={null}
{
  "Entity": {
    "Type": "title_player_account",
    "Id": "{{PlayerID}}"
  },
  "Item": {
    "Id": "{{TreasureChestContentsBundleID}}"
  },
  "Amount": 1,
  "PriceAmounts": [
    {
      "ItemId": "{{TreasureChestCurrencyID}}",
      "Amount": 1
    }
  ],
  "StoreId": "{{EventStoreID}}"
}
```

## Limitations

Ce modèle fonctionne pour les conteneurs à **contenu fixe et déterministe**. Si vous avez besoin de **butin aléatoire** (dont le contenu varie chaque fois qu'un conteneur est ouvert, comme les conteneurs de la V1 associés à des tables de butin), consultez le tutoriel [Tables de butin et butin aléatoire](/fr-CA/services/playfab/economy-monetization/economy-v2/tutorials/drop-tables-and-randomized-loot). Ce tutoriel utilise [Azure Functions](https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview) pour :

1. Soustraire le jeton de conteneur de l'inventaire du joueur.
2. Exécuter votre logique de sélection aléatoire pondérée.
3. Accorder les articles obtenus au moyen des API d'inventaire.

## Voir aussi

* [Ensembles d'Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/bundles)
* [Boutiques d'Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/stores)
* [Monnaies virtuelles](/fr-CA/services/playfab/economy-monetization/economy-v2/tutorials/currencies)
* [Vue d'ensemble d'Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/overview)
* [Référence de l'API PurchaseInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/purchase-inventory-items)
* [Référence de l'API AddInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/add-inventory-items)


## Related topics

- [Tables de butin et butin aléatoire dans Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/tutorials/drop-tables-and-randomized-loot.md)
- [Vue d'ensemble d'Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/overview.md)
- [FAQ sur Economy version 2 (V2)](/fr-CA/services/playfab/economy-monetization/economy-v2/faq.md)
- [Ensembles d'Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/bundles.md)
- [Abonnements dans Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/subscriptions.md)
