> ## 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 Economy v2

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

Les abonnements vous permettent d'accorder un accès limité dans le temps à 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éation d'un abonnement

Pour créer un abonnement, vous devez d'abord vous assurer d'avoir publié des [articles de catalogue](/fr/services/playfab/economy-monetization/economy-v2/quickstart#step-3---publish-an-item-to-the-catalog), des [devises](/fr/services/playfab/economy-monetization/economy-v2/quickstart#part-2-inventory-and-virtual-currencies-overview) ou du [contenu généré par les utilisateurs (UGC)](/fr/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/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, 5 diamants et 10 pièces d'or, rend l'abonnement valide pendant une semaine, tandis que le second, 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.

Cette requête doit 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 sont présents dans la collection d'inventaire du joueur avec un ID, un StackId, une date d'expiration et des propriétés d'affichage. Tout élément d'un abonnement peut être modifié comme n'importe quel autre article à l'aide d'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 dispose actuellement un joueur.

```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 possèdent l'ID attendu et un StackId composé unique constitué de l'ID de l'abonnement et du StackId de l'abonnement. La quantité est définie sur 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 d'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 n'importe quel 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

- [Qu'est-ce que PlayFab Economy ?](/fr/services/playfab/economy-monetization/economy-what-is.md)
- [Offres ciblées Economy V2](/fr/services/playfab/economy-monetization/economy-v2/player-segmented-monetization/targeted-offers.md)
- [FAQ d'Economy version 2 (V2)](/fr/services/playfab/economy-monetization/economy-v2/faq.md)
- [Bundles Economy v2](/fr/services/playfab/economy-monetization/economy-v2/catalog/bundles.md)
- [Localisation Economy v2](/fr/services/playfab/economy-monetization/economy-v2/catalog/localization.md)
