Objets virtuels

Présentation

Les objets virtuels sont des objets en jeu que les utilisateurs peuvent acheter contre des devises réelles ou de la monnaie virtuelle, ou encore recevoir en bonus. Ces objets sont dépourvus de forme physique et sont exclusivement utilisés dans le jeu. Exemples courants : skins, potions, armes, clés et autres éléments qui influencent le gameplay ou l’apparence des personnages.

Fonctionnalités principales :

Note

Les objets virtuels, comme les autres types d’objets (monnaie virtuelle, lots, etc.), peuvent être créés dans le Compte éditeur, via API ou importés en tant qu’éléments d’un catalogue.

Ce guide couvre la création manuelle d’objets et l’utilisation de l’API.

Pour plus d’informations sur l’importation d’un catalogue, reportez-vous aux sections suivantes :

Configuration dans le Compte éditeur

Créer un groupe

Note
Un groupe peut inclure différents types d’objets (objets virtuels, package de monnaie virtuelle, etc.). Pour obtenir des informations détaillées sur le groupement et le tri, reportez-vous à l’instruction Comment grouper et trier les objets dans le catalogue.

Les groupes vous permettent de construire un catalogue à plusieurs niveaux. Les objets qui ne sont pas affectés à un groupe seront placés dans le groupe Ungrouped. Le groupe Ungrouped ne peut être ni modifié ni supprimé.

Pour créer un groupe :

  1. Dans votre projet, dans le Compte éditeur, accédez à la section Store > Virtual items.
  2. Cliquez sur + et sélectionnez Create group dans la liste déroulante.
  1. Spécifiez les paramètres suivants :
    • External ID — ID de groupe unique ;
    • Group name.
  2. Pour que le groupe soit disponible dans le magasin, réglez la bascule Show group in Store sur On. Dans ce cas, le groupe sera créé avec le statut Enabled. Vous pouvez modifier le statut du groupe ultérieurement.
  3. Cliquez sur Create group.
Note

Si un groupe a le statut Disabled, ce groupe :

  • n’est pas renvoyé dans la réponse lors de l’appel à la méthode API Get item group list ;
  • n’est pas affiché dans les propriétés de objets inclus dans ce groupe lors de l’appel aux méthodes API du client pour obtenir une liste des objets ;
  • n’est pas disponible pour une utilisation dans Site Builder.

Pour modifier le statut du groupe après sa création, recherchez le groupe souhaité dans la section Store > Virtual items et sélectionnez le statut nécessaire dans la colonne Status.

Vous pouvez créer un catalogue à plusieurs niveaux en ajoutant de nouveaux groupes à l’intérieur des groupes existants. L’exception est le groupe Ungrouped, pour lequel la création de groupes imbriqués n’est pas disponible.

Pour imbriquer un groupe existant dans un autre groupe :

  1. Dans votre projet, dans le Compte éditeur, accédez à la section Store > Virtual items.
  2. Sélectionnez le groupe que vous souhaitez imbriquer dans un autre groupe existant.
  3. Cliquez sur ••• et sélectionnez Edit group dans la liste déroulante.
  4. Dans la liste déroulante Directory location, sélectionnez le groupe parent dans lequel vous souhaitez placer le groupe actuel.
  1. Cliquez sur Save changes.

Créer un objet virtuel

Pour créer un objet virtuel :

  1. Dans votre projet, dans le Compte éditeur, accédez à la section Store > Virtual items.
  2. Cliquez sur + et sélectionnez Create item dans la liste déroulante.
  1. Définissez le statut de disponibilité de l’objet virtuel dans le catalogue. Sélectionnez l’une des options suivantes :
    • Unavailable (par défaut) — l’objet n’est pas disponible à l’achat dans le catalogue, ne peut pas être inclus dans un lot ou utilisé comme bonus pour l’achat d’un autre objet ;
    • Available — l’objet est disponible à l’achat dans le catalogue et peut être inclus dans un lot ou utilisé comme bonus pour l’achat d’un autre objet ;
    • Partially available — l’objet n’est pas disponible à l’achat dans le catalogue, mais peut être ajouté à un lot ou utilisé comme bonus pour l’achat d’un autre objet.
    Vous pouvez modifier le statut de disponibilité de l’objet ultérieurement.
  1. Configurez les paramètres de base. Spécifiez les éléments suivants :
    • image (facultatif) ;
    • UGS ;
    • un ou plusieurs groupes auxquels l’article doit appartenir ;
    • nom de l’objet ;
    • description de l’objet (facultatif).
Note
La description d’un objet est limitée à 255 symboles. Pour ajouter une description de plus de 255 symboles, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.
  1. Laissez le type d’objet défini par défaut : Consumable (recommandé).
Note
Le type d’objet, consommable, non consommable ou à durée limitée, détermine le comportement de l’objet dans le système d’inventaire Xsolla. L’inventaire Xsolla n’est disponible que lorsqu’il est intégré via le SDK.
  1. Configurez le prix de l’objet virtuel :
    • Pour créer un objet virtuel gratuit, dans le champ Paid or free, sélectionnez Free item ;
    • Pour créer un objet virtuel payant, dans le champ Paid or free, sélectionnez Paid item et indiquez le prix dans une ou plusieurs devises.
    • Configurez les prix régionaux (facultatif).
Note
Un objet virtuel peut avoir des prix dans plusieurs devises réelles et monnaies virtuelles. Dans ce cas, vous devez définir une devise par défaut pour chaque type : une pour les devises réelles et une pour les monnaies virtuelles.
  1. Limiter le nombre d’objets disponibles à l’achat (facultatif). Pour ce faire :
    1. Réglez la bascule Limit number of times one user can buy this item sur On, et spécifiez le nombre d’objets achetable par utilisateur.
    2. Configurez la fréquence d’actualisation de la limite :
      1. Si vous ne souhaitez pas réinitialiser la limite, sélectionnez No regular refresh dans la liste déroulante.
      2. Si vous souhaitez réinitialiser régulièrement la limite, sélectionnez une fréquence d’actualisation dans la liste déroulante et indiquez quand la réinitialisation doit avoir lieu.
  2. Limiter la durée d’affichage des objets dans le magasin (facultatif). Pour ce faire, dans le champ Show item in store, sélectionnez Time period, indiquez le fuseau horaire ainsi que les dates de début et de fin de la période. Si vous ne souhaitez pas indiquer de date de fin d’affichage pour l’objet, cochez la case No end date.
  3. Ajoutez des attributs supplémentaires (facultatif).
  4. Cliquez sur Create item.

Interagir avec les objets virtuels via API

Utilisez les appels API de la sous-section Administrateur du groupe Objets et monnaie virtuels pour configurer les objets virtuels.

Avis
Les endpoints de la sous-section Administrateur ne sont pas destinés à la création d’un catalogue dans le magasin côté client. Vous ne devez pas les utiliser pour les pages de destination, les magasins en ligne et les logiques en jeu.

Une autorisation de base est requise pour utiliser les appels API. Passez le code Authorization:Basic <your_authorization_basic_key>, où <your_authorization_basic_key> est la paire merchant ID:API key encodée conformément à la norme Base64. Accédez au Compte éditeur pour trouver les paramètres suivants :

  • Merchant ID est affiché :
    • Dans la section Company settings > Company ;
    • Dans l'URL de la barre d'adresse du navigateur sur n'importe quelle page du Compte éditeur. L'URL est au format suivant : https://publisher.xsolla.com/<merchant_id>/.

Avis

Pour plus d’informations sur l’utilisation des clés API, consultez la référence API.

Recommandations principales :

  • Enregistrez la clé API générée de votre côté. Lors de sa création dans le Compte éditeur, la clé API ne s’affiche qu’une seule fois.
  • Gardez votre clé API secrète. Elle donne accès à votre compte personnel et à vos projets dans le Compte éditeur.
  • Stockez la clé API sur votre serveur et non dans des fichiers binaires ou sur le client.

Si l’appel API nécessaire ne contient pas le paramètre de chemin project_id, utilisez la clé API valide dans tous les projets de l’entreprise pour l’autorisation.

Utilisez les appels API de la sous-section Catalogue du groupe Objets et monnaie virtuels pour obtenir le catalogue des objets virtuels côté client. Ces appels ne nécessitent pas d’autorisation de base.

Utilisez l’appel API Lire une liste d’objets virtuels pour obtenir la liste complète des objets non divisés en groupes. Pour obtenir la liste des objets du groupe défini, passez le paramètre external_id à l’appel Lire une liste d’objets par groupe spécifique.

Paramètres avancés pour les objets virtuels

Limiter le nombre d'objets disponibles à l'achat

Vous pouvez limiter le nombre d’achats d’un objet virtuel spécifique par utilisateur. Cela permet de contrôler la disponibilité des objets et de créer des offres exclusives.

Voici quelques cas d’usage :

  • Limiter l’achat d’un objet virtuel à une fois par jour, par semaine ou par mois.
  • Proposer un objet de bienvenue que chaque utilisateur peut acheter une seule fois.

Il existe deux façons de configurer les limites d’achat :

  • Dans le Compte éditeur : Lors de la création ou de la modification d’un objet, réglez la bascule Limit number of times one user can buy this item sur On, indiquez la quantité disponible à l’achat et configurez le calendrier d’actualisation ;
  • Via API : Lors de la création ou de la modification d’un objet, passez les paramètres de limite d’achat dans l’objet limits dans le corps de la requête.

L’application des limites est entièrement gérée côté Xsolla. Le système suit le nombre d’achats effectués par chaque utilisateur pour un objet donné et empêche les achats dépassant la limite configurée.

Si un jeton d’accès utilisateur est inclus dans une requête de catalogue (lors de l’appel de méthodes API de la sous-section Catalogue du groupe Virtual Items & Currency), Xsolla calcule le nombre d’unités de chaque bien que l’utilisateur spécifique peut encore acheter. La réponse comprendra l’objet limits contenant la quantité totale autorisée (le paramètre total) et la quantité restante disponible pour cet utilisateur (le paramètre available). Ces valeurs peuvent être utilisées pour afficher la disponibilité dans l’interface.

Si le jeton d’accès utilisateur n’est pas fourni dans la requête, la valeur du paramètre available correspondra toujours à la limite totale dans la réponse.

Exemple de réponse contenant des biens avec des limites d’achat :

Copy
Full screen
Small screen
 1{
 2  "items": [
 3    {
 4      "sku": "big_rocket",
 5      "name": "Big Rocket",
 6      "groups": [
 7        {
 8          "external_id": "accessory",
 9          "name": "Accessory"
10        }
11      ],
12      "attributes": [
13        {
14          "external_id": "stack_size",
15          "name": "Stack size",
16          "values": [
17            {
18              "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
19              "value": "5"
20            }
21          ]
22        }
23      ],
24      "type": "virtual_good",
25      "description": "Big Rocket - description",
26      "image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
27      "is_free": false,
28      "price": {
29        "amount": "100.99",
30        "amount_without_discount": "100.99",
31        "currency": "USD"
32      },
33      "virtual_prices": [
34        {
35          "amount": 100,
36          "sku": "vc_test",
37          "is_default": true,
38          "amount_without_discount": 100,
39          "image_url": "http://image.png",
40          "name": "SHOTGUN FOR TRUE RAIDERS",
41          "type": "virtual_currency",
42          "description": "description"
43        }
44      ],
45      "can_be_bought": true,
46      "inventory_options": {
47        "consumable": {
48          "usages_count": 1
49        },
50        "expiration_period": {
51          "type": "day",
52          "value": 1
53        }
54      },
55      "virtual_item_type": "non_renewing_subscription",
56      "limits": {
57        "per_user": {
58            "total": 5,
59            "available": 5
60        },
61        "per_item": null
62      },
63}

En outre, Xsolla applique la limite d’achat à la fois lors de l’initialisation de la commande et lors de la finalisation de la commande. Si un utilisateur ouvre plusieurs onglets ou tente de créer plusieurs commandes simultanément, le système empêchera le dépassement de la limite : les commandes non payées contenant des objets déjà achetés seront annulées.

Note
Pour en savoir plus sur cette limite et sur d’autres types de limites de quantité d’achat, consultez l’instruction Nombre d’offres limité.

Limiter la durée d'affichage des objets dans le magasin

Vous pouvez spécifier une période d’affichage pour les objets dans le magasin afin de :

  • maintenir la pertinence du catalogue à un moment donné, par exemple pendant les soldes de fin d’années ;
  • créer un objet à l’avance sans l’afficher dans le catalogue ;
  • inciter les utilisateurs à acheter en affichant une minuterie à côté de l’objet.

Note
Lorsque de la création de l’interface du catalogue à l’aide de Site Builder, la minuterie s’affichera automatiquement. Si vous créez un catalogue dans votre propre interface, vous devez implémenter la minuterie manuellement.

Pour configurer la durée d’affichage d’un objet dans le magasin, procédez comme suit :

  • Dans le Compte éditeur : Lors de la création ou de la modification d’un objet, dans le champ Show item in store, sélectionnez Time period et indiquez le fuseau horaire, les dates de début et de fin. Pour laisser la date de fin ouverte, cochez la case No end date.
  • Via API : Lors de la création ou de la mise à jour d’un bien, inclure les paramètres suivants dans l’objet periods :
    • periods[0].date_from — la date et l’heure de début de la période d’affichage (format :YYYY-MM-DDThh:mm:ss±hh:mm ) ;
    • periods[0].date_until — la date et l’heure de fin de la période d’affichage. Pour omettre la date de fin, passez null.

Vous pouvez définir plusieurs périodes d’affichage à via API en transmettant un tableau d’objets, chacun comportant une date de début et une date de fin.

Exemple de tableau de périodes :

Copy
Full screen
Small screen
 1"periods": [
 2      {
 3        "date_from": "2022-06-10T14:00:00+03:00",
 4        "date_until": "2022-06-30T14:00:00+03:00"
 5      },
 6       {
 7        "date_from": "2022-07-10T14:00:00+03:00",
 8        "date_until": "2022-07-30T14:00:00+03:00"
 9      },
10       {
11        "date_from": "2022-08-10T14:00:00+03:00",
12        "date_until": "2022-08-30T14:00:00+03:00"
13      }
14]

Configurez des restrictions régionales

Vous pouvez configurer les régions dans lesquelles un objet virtuel sera disponible à l’achat. Cela vous permet de contrôler qui voit l’objet et où. Par exemple, vous pouvez masquer l’objet pour les utilisateurs de certains pays ou le rendre disponible uniquement dans des régions spécifiques dans le cadre d’une campagne promotionnelle régionale.

Pour configurer des restrictions régionales pour les objets virtuels, incluez un tableau d’objets regions avec les ID de région correspondants dans le corps de la requête lorsque vous appelez les méthodes API Créer un objet virtuel ou Mettre à jour un objet virtuel.

Exemple de tableau de régions :

Copy
Full screen
Small screen
1"regions": [{
2     “id”: “123”
3  }, {
4     “id”: “456”
5  }
6]
Note
Pour en savoir plus sur la configuration des restrictions régionales, consultez l’instruction Restrictions régionales de vente.

Configurez les prix régionaux

Vous pouvez définir des prix régionaux pour ajuster le coût des objets virtuels en fonction des conditions économiques propres à chaque pays. Cette approche permet de rendre les offres plus accessibles dans les régions au pouvoir d’achat variable, ce qui augmente le taux de conversion et stimule les ventes globales.

Vous pouvez configurer les prix régionaux comme suit :

  • Dans le Compte éditeur (configuration manuelle) : Lors de la création ou de la modification d’un objet, accédez à la section Price settings, réglez la bascule Prices in real currency sur On, puis cliquez sur Set up prices. Vous pouvez saisir les prix manuellement ou les calculer automatiquement en fonction des devises et des taxes.
  • Via l’importation CSV dans le Compte éditeur : dans le fichier CSV, vous pouvez ajouter plusieurs lignes indiquant les prix des objets pour différentes régions. Pour plus d’informations sur la structure du fichier et des exemples, consultez l’instruction Prix locaux.
Exemple de fichier CSV à importer :
Copy
Full screen
Small screen
 1SKU,Currency,Amount,Country,IsDefault,Platform
 2game-key-1,EUR,9.09,,1,steam
 3game-key-1,EUR,9.2,DE,0,steam
 4game-key-1,EUR,8.09,IT,0,steam
 5game-key-1,USD,10.1,US,0,steam
 6game-key-1,MYR,47,MY,0,steam
 7game-key-2,EUR,2.09,,1,steam
 8game-key-2,EUR,2.2,DE,0,steam
 9game-key-2,EUR,1.79,IT,0,steam
10game-key-2,USD,2.3,US,0,steam
11game-key-2,MYR,24,MY,0,steam
  • Via API : Lors de la création ou mise à jour d’un objet, incluez le tableauprices dans le corps de la requête avec les paramètres de prix régionaux.
Exemple de tableau de prix :
Copy
Full screen
Small screen
 1"prices": [
 2      {
 3        "amount": 100,
 4        "currency": "USD",
 5        "is_enabled": true,
 6        "is_default": true
 7      },
 8      {
 9        "amount": 200,
10        "currency": "CZK",
11        "country_iso": "CZ",
12        "is_enabled": false,
13        "is_default": false
14      }
15    ]
Note
Pour en savoir plus sur la configuration des prix régionaux, le mécanisme de détection des pays et les règles d’affichage des prix dans le catalogue, reportez-vous à l’instruction Prix locaux.
Cet article vous a été utile ?
Merci !
Que pouvons-nous améliorer ? Message
Nous sommes désolés de l'apprendre
Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
Merci pour votre commentaire !
Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.

Liens utiles

Dernière mise à jour: 22 Avril 2025

Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.

Signaler un problème
Nous améliorons continuellement notre contenu grâce à vos commentaires.
Indiquez votre adresse e-mail pour un suivi
Merci pour votre commentaire !
Impossible d'envoyer votre commentaire
Réessayez plus tard ou contactez-nous à doc_feedback@xsolla.com.