捆绑包

运行机制

捆绑包是作为一个单元出售的一组商品。

主要功能:

捆绑包在以下情况下自动解开:

如果捆绑包中包含捆绑包,则包含的捆绑包自动解开为里面的独立商品。

解开后的捆绑包中的商品交付方法取决于商品类型:

注:
如果您的服务器实现了游戏内商店逻辑,可设置商品购买Webhook。该Webhook将包含捆绑包及其内容。

卖家如通过取消交易(假设)退回捆绑包,则捆绑包中所有已发放的商品将自动撤回。如果用户已消耗部分商品,剩余商品仍将撤回。

限制:

  • 不能在捆绑包中添加以下商品:
    • 同样的捆绑包
    • 实体商品
  • 不能创建空捆绑包。
  • 如果捆绑包中包含密钥,则提供的密钥用完时将暂停销售该捆绑包。
  • 捆绑包价格应为固定的真实和/或虚拟货币价格。
  • 只能通过API配置捆绑包的区域销售限制。

限制捆绑包可购买的数量

您可以限制捆绑包的购买次数。例如可以限制:

  • 单个用户可购的捆绑包数量
  • 仅可购买一次的新人捆绑包

如果用户已达到指定的购买限制,则该捆绑包不会在目录中显示。如捆绑包包含有购买限制的虚拟货币套餐或物品,而用户已购的数量已达到允许的数量,则该捆绑包不在目录中显示。

您可以显示捆绑包的最大可购数量以及该用户的剩余捆绑包可购数量。

要在发布商帐户中创建捆绑包时设置购买数量限制,请将限制单个用户可购买此捆绑包的次数开关设置为,并指定捆绑包的可购次数。

您可以使用捆绑包方法组中的目录子部分下的方法获取捆绑包的信息。

在响应中,除捆绑包的信息之外,还将收到以下信息:

  • 单个用户捆绑包的最大可购数量
  • 该用户的剩余捆绑包可购数量

关于如何设置或更新限制的更多信息,请参阅用户限制说明。

注:

对于未授权用户,将始终显示其可购买的最大捆绑包数量。要显示用户剩余可购买的捆绑包数量(取决于当前限制),使用捆绑包方法组目录子部分下的方法请求捆绑包目录时,请传入用户授权数据。

要正确显示用户可购的捆绑包数量,需配置身份认证

响应示例:
Copy
Full screen
Small screen

{
  "items": [
    {
      "sku": "kg_1",
      "name": "kg_10.00_bundle",
      "type": "bundle",
      "description": "pricePoint_44056_1",
      "image_url": null,
      "long_description": null,
      "attributes": {
        "external_id": "genre",
        "name": "Genre",
        "values": [
          {
            "external_id": "genre_e3364991f92e751689a68b96598a5a5a84010b85",
            "value": "Casual"
          },
          {
            "external_id": "genre_eba07bfd0f982940773cba3744d97264dd58acd7",
            "value": "Strategy"
          },
          {
            "external_id": "genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8",
            "value": "Mobile"
          }
        ]
      },
      "is_free": false,
      "order": 999,
      "groups": [],
      "price": {
        "amount": 9.99,
        "currency": "USD",
        "amount_without_discount": 9.99
      },
      "total_content_price": {
        "amount": 10.99,
        "currency": "USD",
        "amount_without_discount": 10.99
      },
      "media_list": [],
      "virtual_prices": [],
      "can_be_bought": true,
      "bundle_type": "standard",
      "limits": {
        "$ref": "./Catalog_item_limits.yaml"
      },
      "content": [
        {
          "sku": "big_rocket",
          "name": "Big Rocket",
          "description": "Big Rocket - short description.",
          "image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
          "type": "virtual_currency",
          "quantity": 100,
          "virtual_item_type": "non_consumable",
          "attributes": {
            "external_id": "size",
            "name": "Size",
            "values": [
              {
                "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
                "value": "Large"
              }
            ]
          },
          "is_free": false,
          "groups": [],
          "price": {
            "amount": 10.99,
            "currency": "USD",
            "amount_without_discount": 10.99
          },
          "virtual_prices": [],
          "limits": {
            "per_user": {
              "total": 5,
              "available": 5
              },
            "per_item": null
           },
          }
        }
      ]
    }
  ]
}
注:

艾克索拉会确保不超过购买限制数并阻止用户购买超过设定限制的捆绑包。

打开支付界面并支付某个捆绑包后,所有包含该捆绑包的未支付订单将失效。

示例:假设某个捆绑包有购买数量限制,在下单之前,用户可以在多个浏览器选项卡中打开该捆绑包的支付表单。这样会自动为同一个捆绑包创建多个订单。在某个选项卡中购买了该捆绑包后,艾克索拉将自动让该捆绑包的所有其他未付订单失效。

限制捆绑包在商店中的显示时间

您可以设置商品在商店中的显示时间,以实现以下目的:
  • 保持目录与某段时间的相关性,例如节假日促销期间
  • 提前创建捆绑包但不在目录中显示
  • 通过在捆绑包旁边显示计时器,激励用户购买
注:
使用建站器创建目录界面时,会自动显示计时器。在自己的界面中创建目录时,需实现计时器的显示。

要通过发布商帐户为某个捆绑包设置在商店中的显示时间限制,请选择时间段,然后指定时区及开始和结束日期。如不希望指定捆绑包的显示结束日期,请勾选无结束日期复选框。

要通过API设置在商店中显示捆绑包的时间限制,请在Create bundleUpdate bundle API调用中传入以下参数:

  • periods[0].date_from,包含YYYY-MM-DDThh:mm:ss±TMZ格式的商品显示开始日期和时间,其中TMZhh:mm GMT格式的时区
  • periods[0].date_until,包含YYYY-MM-DDThh:mm:ss±TMZ格式的商品显示结束日期和时间,其中TMZhh:mm GMT格式的时区。如不要指定商品显示结束时间,请传入null

可为商店中的捆绑包设置多个显示时间段。方法是在Create bundleUpdate bundle方法中传入一个包含所有时间段开始和结束时间的对象数组。

示例

Copy
Full screen
Small screen
    "periods": [
          {
            "date_from": "2022-06-10T14:00:00+03:00",
            "date_until": "2022-06-30T14:00:00+03:00"
          },
           {
            "date_from": "2022-07-10T14:00:00+03:00",
            "date_until": "2022-07-30T14:00:00+03:00"
          },
           {
            "date_from": "2022-08-10T14:00:00+03:00",
            "date_until": "2022-08-30T14:00:00+03:00"
          }
    ]
    

    适用对象

    适用于想通过捆绑包的形式以低于原始总价的价格销售一组商品从而提高销量及吸引新玩家的合作伙伴,以及集成了以下产品(之一或两者)的合作伙伴:

    如何获取

    集成过程

    1. 设置捆绑包
    2. 实现获取目录中的捆绑包

    设置捆绑包

    通过以下方式之一设置捆绑包:

    通过发布商帐户进行设置

    1. 前往发布商帐户 > 商店 > 捆绑包,然后单击创建捆绑包
    2. 为捆绑包指定以下参数:
      1. 图像
      2. 名称
      3. 描述
      4. 内容
      5. 价格
      6. 在商店中显示
    3. 检查设置并单击保存

    通过API方法进行设置

    要设置捆绑包,可使用Bundles方法组Admin子部分下的方法。
    注意
    Admin子部分下的方法并非用于在前端创建商店中的目录,而是用于着陆页、网页商城和游戏内逻辑。

    向捆绑包添加游戏密钥

    要在捆绑包中添加一个用于所选平台的游戏密钥,请向Create bundleUpdate bundle方法传入包含所需平台的SKU的数组。

    Copy
    Full screen
    Small screen
    
    "content": [{
         “sku”: “brilliant_game_sku_steam”,
         “quantity”: 1
      }
    ]
    

    设置区域限制

    要为捆绑包设置区域限制,请向Create bundleUpdate bundle方法传入包含受支持区域ID的数组。

    注:
    请确保通过API方法设置项目的区域,或联系您的客户成功经理进行设置。
    Copy
    Full screen
    Small screen
    "regions": [{
         “id”: “123”
      }, {
         “id”: “456”
      }
    ]
    

    设置区域价格

    要为捆绑包设置区域价格,请向Create bundleUpdate bundle方法传入包含区域价格设置对象的数组。

    注:
    请确保通过API方法设置项目的区域,或联系您的客户成功经理进行设置。
    Copy
    Full screen
    Small screen
    "regional_prices": [{
         “region_id”: “123”,
         “country_iso”: “CHN”,
         “amount”: 40,
         “currency_iso”: “CNY”,
         “is_default”: true,
         “is_enabled”: true
      }
    ]
    

    获取目录中的捆绑包

    要获取捆绑包目录,可使用Bundles方法组Catalog子部分下的方法。
    注:
    Catalog子部分下的方法用于在前端创建商店中的目录。它们不需要授权。
    本文对您的有帮助吗?
    谢谢!
    我们还有其他可改进之处吗? 留言
    非常抱歉
    请说明为何本文没有帮助到您。 留言
    感谢您的反馈!
    我们会查看您的留言并运用它改进用户体验。
    为此页面评分
    为此页面评分
    我们还有其他可改进之处吗?

    不想回答

    感谢您的反馈!
    上次更新时间: 2023年10月10日

    发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

    报告问题
    我们非常重视内容质量。您的反馈将帮助我们做得更好。
    请留下邮箱以便我们后续跟进
    感谢您的反馈!