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

# 商店（旧版 Economy）快速入门

> 创建 PlayFab 旧版 Economy (v1) 商店的快速入门，包括添加物品、设置商店特定价格以及向游戏内玩家展示商店。

# 商店快速入门（旧版 Economy）

<Info>
  Economy v1 API 处于维护模式，不会接收任何新功能，只有 bug 修复。\*\*v1 API 在可预见的将来将持续维护。\*\*参见 [Economy v2 概览](/services/playfab/economy-monetization/economy-v2/overview)，了解有关 PlayFab Economy 下一版本的更多信息！
</Info>

商店是让玩家在你的游戏中购买物品的最佳方式。

如[物品快速入门](/services/playfab/economy-monetization/economy/items/quickstart)所示，PlayFab 支持从目录购买物品，但大多数游戏并不是这样构建购买流程的。无论你在制作放置类点击游戏、RPG、FPS 还是无尽跑酷游戏，你的游戏中很可能都有商家。玩家可以购买武器、盔甲或跑步鞋的地方。

我们针对游戏内商家和店铺的解决方案是商店 (Stores)，它是你的目录的一个子集，价格可以被覆盖。

在本商店快速入门中，你将：

* 使用普通价格向目录添加物品。
* 创建一个包含相同物品但价格折扣的商店。
* 使用 PlayFab API 从商店购买物品。
* 使用 Game Manager 中的信息确认物品是以折扣商店价格购买的。

## 向目录添加物品

首先，让我们向你的目录中添加一些要出售的物品：

1. 打开 **Game Manager**，并在左侧栏中选择 **Economy**。
2. 选择 **Catalogs** 选项卡，并打开你的 **main** 目录。
3. 选择几次 **New Item**，并创建一些物品：
   * **apricot**，**GD** 价格为 **4**。
   * **pear**，**GD** 价格为 **3**。
   * **grape**，没有 **GD** 价格（不选择任何价格）。

<Tip>
  你不必为目录中的物品分配虚拟货币价格，它们也可以出现在商店中。
</Tip>

在以下示例中，一个名为 **apricot** 的物品以 **GD** 价格 **4** 添加到 **main** 目录。

<img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-add-item.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=974c10b2f774db3364e1e8c17690dbc1" alt="Economy - Catalogs - Add Item" width="1280" height="900" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-add-item.png" />

## 创建商店

你的目录中现在应该有一些带价格的物品。让我们创建一个商店把它们卖给玩家。

1. 打开你的 **main** 目录并选择 **Stores**。
2. 选择 **New store**。
3. 将 **Store Id** 和 **Store name** 设置为 **fruits**（如以下示例所示）。
   <img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-stores-new-store.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=bbf8142167e24b8043ed9c17b8a88cbe" alt="Economy - Catalogs - Stores - New Store" width="1280" height="900" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-stores-new-store.png" />
4. 选择 **ADD TO STORE**。
   * 弹出屏幕（如下所示）将显示当前目录中所有的物品、捆绑包和容器。
5. 通过选择物品旁边的 **Add** 按钮，向你的商店添加一些物品。
   <img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-stores-add-to-store.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=7493d74a40355bb7b89322b4d3d74889" alt="Economy - Catalogs - Stores - Add To Store" width="1280" height="900" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-stores-add-to-store.png" />

## 为物品设置商店价格

你现在应该在 **STORE CONTENTS** 中看到列出的物品，但在至少设置一个价格之前，它们无效。

价格文本框旁边的小静态数字（例如 **\< 4**）是原始目录价格。你每行只需要在*一个*框中输入价格，但你可以根据需要输入多个价格。

* 如果你没有为物品输入任何价格，则会将其从商店移除。
* 如果商店物品没有某种货币的价格，则无法使用该货币购买该物品。
* 商店价格可以高于目录价格，并且零是物品的有效价格。

<Tip>
  你可以拖放商店内容中的行来重新排列物品的顺序。
</Tip>

1. 为你的物品添加一些 **GD** 价格，但使其低于目录价格：
   * **Apricot: 3**。
   * **Pear: 2**。
   * **Grape: 1**。
2. 完成后选择 **SAVE STORE**。

在以下示例中，一个名为 **apricot** 的物品，其目录价格为 **4 GD**，被给予 **3 GD** 的商店价格。

<img src="https://mintcdn.com/microsoft-4404708b/Oa_DP1q6U1lat7c2/images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-stores-set-price.png?fit=max&auto=format&n=Oa_DP1q6U1lat7c2&q=85&s=e8b18e16d87da6105ceda47afe2ea56f" alt="Create Store" width="1280" height="900" data-path="images/playfab/economy-monetization/economy/tutorials/game-manager-economy-catalogs-stores-set-price.png" />

## 从商店购买物品

现在你有了一个商店，让我们使用 PlayFab API 在游戏中从商店购买物品。

1. 通过使用以下请求参数调用 [GetStoreItems](xref:titleid.playfabapi.com.client.title-widedatamanagement.getstoreitems) 来获取你的商店：
   * `CatalogVersion = "main"`
   * `StoreId = "fruits"`
2. [GetStoreItemsResult](xref:titleid.playfabapi.com.client.title-widedatamanagement.getstoreitems#getstoreitemsresult) 中的 `Store` 字段应包含你的商店物品列表及其价格。
3. 使用请求中指定你想要购买物品的货币和商店价格的值来调用 [PurchaseItem](xref:titleid.playfabapi.com.client.playeritemmanagement.purchaseitem)。
   * `CatalogVersion = "main"`
   * `StoreId = "fruits"`
   * `ItemId = "pear"`
   * `VirtualCurrency = "GD"`
   * `Price = 2`

<Tip>
  如果在调用 [PurchaseItem](xref:titleid.playfabapi.com.client.playeritemmanagement.purchaseitem) 时未指定 **`StoreId`**，则会尝试按目录价格购买。
</Tip>

## 确认购买价格

打开 Game Manager，确认购买是以两个 GD 的商店价格进行的。

1. 从左侧栏选择 **Players** 打开 **Players** 选项卡。
2. 选择购买了物品的玩家的 **ID**。
3. 检查该玩家的以下信息：
   * 打开 **Inventory** 选项卡。库存中现在应该包含一个 **pear**。
   * 打开 **Virtual Currency** 选项卡。检查虚拟货币 **Amount**，以验证玩家只花费了 2 GD。
   * 打开 **PlayStream** 选项卡。你将看到显示从商店购买流程的事件。事件包括[玩家虚拟货币物品购买](/services/playfab/api-references/events/Player/player-vc-item-purchased)事件，以及显示虚拟货币余额变化了两个 GD 的[玩家虚拟货币余额变化](/services/playfab/api-references/events/Player/player-virtual-currency-balance-changed)事件。

<Tip>
  你可以随时使用 Game Manager 更改商店中物品的顺序并调整价格。
</Tip>

## 后续步骤

你现在已经学习了如何在游戏中创建和使用商店，可以准备探索一些商店的更高级用法。

例如，通过将分组与商店结合使用，你可以在不修改游戏代码的情况下为某些玩家提供特殊价格。

* [玩家分组的自定义商店](/services/playfab/economy-monetization/economy/tutorials/custom-stores-for-player-segments)
* [商店分组最佳实践](/services/playfab/economy-monetization/economy/tutorials/best-practices-for-store-segmentation)


## Related topics

- [Economy（旧版）快速入门](/zh-CN/services/playfab/economy-monetization/economy/quickstart.md)
- [物品（旧版 Economy）快速入门](/zh-CN/services/playfab/economy-monetization/economy/items/quickstart.md)
- [使用 Economy v2、Unity IAP 和 Android 快速入门](/zh-CN/services/playfab/economy-monetization/economy-v2/tutorials/getting-started-with-unity-and-android.md)
- [Economy v2 虚拟货币快速入门](/zh-CN/services/playfab/economy-monetization/economy-v2/tutorials/currencies.md)
- [快速入门](/zh-CN/services/playfab/economy-monetization/economy-v2/quickstart.md)
