Enabling XStore development and testing
Games will use the XStore APIs to perform operations on the licenses and entitlements that are associated with your game and its related products (e.g. add-ons).
Many of the XStore
operations manipulate information about your game that's managed by Microsoft Store services.
Note
This page has been substantially updated from previous versions.
As of June 2023, most* XStore
API testing no longer requires setting up the build to be licensable (e.g. contentIdOverride) and for each account to have an entitlement to the game.
When testing commerce in development sandboxes, all purchases on a single test account must be done in the same sandbox. Switching a test account to another sandbox and purchasing additional items will result in unexpected query results for the account in both sandboxes. This is due to the fact that the licenses and information of a purchase are tied to the first sandbox the item was purchased in for a single account.
When testing commerce in development sandboxes on PC, make sure that the account signed into the Microsoft Store App and the Xbox app are the same. When in sandboxes, the credentials used for items in the Microsoft Store are tied to the Xbox account specifically. This is critical to ensure all operations interact with products published specifically to the active sandbox. See Handling mismatched store account scenarios on PC for more info.
In order to test most* XStore
API, ensure the game config contains the proper values derived from Partner Center.
* API related to licensing, such as XStoreQueryGameLicenseAsync, will require a fully licensed context to function properly. See Enabling license testing for complete details.
Apply game IDs to MicrosoftGameConfig
First, publish your game and add-ons on Partner Center.
Then in the game's config file ensure the values match those of your configured title:
<Identity
Name="41336MicrosoftATG.InGameStoreXS"
Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"
Version="2023.5.5.0" />
<StoreId>9NTL0QDWZ4FS</StoreId>
<MSAAppId>000000004C2690C8</MSAAppId>
<TitleId>62ab3c24</TitleId>
Identity
This is in Partner Center under Game setup > Identity details.
On PC: This is strictly required to match what is assigned to your game in Partner Center.
While it is not required for console, in practice it should be as it will be checked when a package is created for submission to Partner Center.
Name
in the Identity
node needs to match Package/Identity/Name; Publisher
in the Identity
node needs to match Package/Identity/Publisher.
StoreID
This also can be found in Game setup > Identity details
See also
Initial configuration in Partner Center