> ## 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.

# Abonnements dans Economy v2

> Créez des abonnements virtuels PlayFab Economy v2 pour accorder un accès temporaire à des articles durables dans le jeu et gérer les avantages récurrents des joueurs.

Les abonnements vous permettent d'accorder un accès temporaire à des biens durables. Les articles d'un abonnement sont dépaquetés dans l'inventaire d'un joueur après l'appel de [GetInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/get-inventory-items).

<Note>
  Cet article porte sur les abonnements virtuels, c'est-à-dire les abonnements qui existent à l'intérieur de votre jeu.
</Note>

## Créer un abonnement

Pour créer un abonnement, vous devez d'abord vous assurer d'avoir publié les [articles du catalogue](/fr-CA/services/playfab/economy-monetization/economy-v2/quickstart#step-3---publish-an-item-to-the-catalog), les [devises](/fr-CA/services/playfab/economy-monetization/economy-v2/quickstart#part-2-inventory-and-virtual-currencies-overview) ou le [contenu généré par les utilisateurs (UGC)](/fr-CA/services/playfab/economy-monetization/economy-v2/ugc/quickstart) que vous souhaitez rendre accessibles ou achetables dans votre jeu. Pour configurer votre catalogue avant de créer un abonnement, consultez le [démarrage rapide d'Economy V2](/fr-CA/services/playfab/economy-monetization/economy-v2/quickstart)

### GameManager

1. Accédez à **Economy** > **Catalog (V2)**.
2. Sous l'onglet **Subscriptions**, sélectionnez **New Subscription**.

### API

Vous pouvez utiliser l'API [CreateDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-draft-item) pour créer un abonnement.

Exemple de requête d'API `CreateDraftItem` pour créer un abonnement :

```json theme={null}
{
  "Item": {
   "Type": "subscription",
    "Title": {
      "NEUTRAL": "Holiday Skins Pass"
    },
    "StartDate": "2023-03-07T00:01:00.0000000Z",
    "ItemReferences":[
      {
        "Id":"{{GlowingGlovesItemID}}",
        "Amount": 1
      }, 
      {
        "Id":"{{ShinyShoesItemID}}", 
        "Amount": 1
      }
    ],
        "PriceOptions": {
          "Prices": [
        {
            "UnitDurationInSeconds":604800,
              "Amounts": [
                {
                    "ItemId": "{{DiamondItemID}}",
                    "Amount": 5
                },
                {
                    "ItemId": "{{GoldItemID}}",
                    "Amount": 10
                }
                ]
        },      
        {
            "UnitDurationInSeconds":2628000,
              "Amounts": [
                {
                    "ItemId": "{{DiamondItemID}}",
                    "Amount": 7
                },
                {
                    "ItemId": "{{GoldItemID}}",
                    "Amount": 12
                }
                ]
        } ]
          }
        },
  "Publish": true
}
```

***

L'abonnement Holiday Skins Pass ci-dessus accorde deux articles, `Glowing Gloves` et `Shiny Shoes`, à deux niveaux de prix pour deux périodes de validité différentes. Le premier ensemble de prix, soit 5 diamants et 10 pièces d'or, rend l'abonnement valide pendant une semaine, tandis que le second ensemble de prix, soit 7 diamants et 12 pièces d'or, le rend valide pendant un mois. Notez que la durée doit être définie en secondes.

Cela devrait retourner une réponse indiquant que l'abonnement a été créé et publié :

```json theme={null}
{
  "code": 200,
    "status": "OK",
    "data": {
        "Item": {
            "Id": "{{NewlyCreatedSubscriptionItemID}}",
            "Type": "subscription",
            "AlternateIds": [],
            "Title": {
                "NEUTRAL": "Holiday Skins Pass"
            },
    ...
}
```

***

## Abonnements dans l'inventaire

Les abonnements figurent dans la collection d'inventaire du joueur avec un ID, un StackId, une date d'expiration et des propriétés d'affichage. Tout ce qui se trouve dans un abonnement peut être modifié comme n'importe quel autre article à l'aide des opérations Add, Subtract, Update, etc.

Vous pouvez utiliser [GetInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/get-inventory-items) avec un filtre Type pour récupérer tous les abonnements dont un joueur dispose actuellement.

```json theme={null}
{ 
    "Entity": {
        "Type": "title_player_account", 
        "Id": "ID" 
    }, 
    "CollectionId": "default", 
    "Filter": "type eq 'subscription'"
}

**Sample Response**

{
    "code": 200,
    "status": "OK",
    "data": {
        "Items": [
            {
                "Id": "{{SubscriptionID}}",
                "StackId": "default",
                "DisplayProperties": {},
                "Type": "subscription",
                "ExpirationDate": "2023-08-27T23:59:59Z"
            }
        ],
        "ETag": "1/Mw=="
    }
}
```

Un abonnement non expiré est dépaqueté au moment de la lecture. Les articles dépaquetés ont l'ID attendu et un StackId composé unique formé de l'ID de l'abonnement et du StackId de l'abonnement. La quantité correspond à celle configurée dans la référence d'article de l'abonnement. Ces articles dépaquetés sont immuables et ne peuvent pas être modifiés à l'aide des opérations Add, Subtract, Update, etc.

```json theme={null}

{ 
    "Entity": {
        "Type": "title_player_account", 
        "Id": "ID" 
    }, 
    "CollectionId": "default", 
    "Filter": "StackId eq 'SubscriptionItemID:default'"
}

**Sample Response**

{
    "code": 200,
    "status": "OK",
    "data": {
        "Items": [
            {
                "Id": "{{GlowingGlovesItemID}}",
                "StackId": "{{SubscriptionID:default}}",
                "DisplayProperties": {},
                "Amount": 1,
                "Type": "catalogItem"
            },
            {
                "Id": "{{ShinyShoesItemID}}",
                "StackId": "{{SubscriptionID:default}}",
                "DisplayProperties": {},
                "Amount": 1,
                "Type": "catalogItem"
            }
        ],
        "ETag": "1/NQ=="
    }
}
```

Le dépaquetage des abonnements a lieu avant le filtrage et la pagination, de sorte que les articles d'abonnement peuvent être filtrés et paginés de manière fiable comme tout autre article d'une collection.

Vous pouvez utiliser [UpdateInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/update-inventory-items), [AddInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/add-inventory-items) et [SubtractIventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/subtract-inventory-items) pour mettre à jour la date d'expiration d'un abonnement pour un joueur.

L'appel d'API `UpdateInventoryItems` ci-dessous met à jour la date d'expiration de l'abonnement.

```json theme={null}
{
   "Entity": { 
      "Type": "title_player_account", 
      "Id": "{{ID}}" 
    }, 
  "CollectionId": "default", 
   "Item": { 
        "Id": "{{SubscriptionID}}", 
        "StackId": "default",
        "DisplayProperties": {},
        "Type": "subscription",
        "ExpirationDate": "2023-03-27T23:59:59Z" 
    } 
} 
```

L'appel d'API `AddInventoryItems` ci-dessous prolonge la date d'expiration en augmentant le paramètre DurationInSeconds.

```json theme={null}
{
    "Entity": { 
        "Type": "title_player_account", 
        "Id": "{{ID}}" 
    }, 
    "CollectionId": "default", 
    "Item": { 
        "Id": "{{SubscriptionID}}" 
    }, 
    "DurationInSeconds":2628000 
} 
```

L'appel d'API `SubtractInventoryItems` ci-dessous avance la date d'expiration en réduisant le paramètre DurationInSeconds.

```json theme={null}
{
    "Entity": { 
        "Type": "title_player_account", 
        "Id": "{{ID}}" 
    }, 
    "CollectionId": "default", 
    "Item": { 
        "Id": "{{SubscriptionID}}" 
    }, 
    "DurationInSeconds":60 
} 
```


## Related topics

- [Magasins dans Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/stores.md)
- [Conteneurs à contenu fixe dans Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/tutorials/containers-with-fixed-contents.md)
- [Prix en argent réel dans Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/catalog/real-money-prices.md)
- [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)
- [Suivi des prix en argent réel dans Economy v2](/fr-CA/services/playfab/economy-monetization/economy-v2/tutorials/real-money-price-tracking.md)
