商品マスタフォーマット

商品のマスターデータはGS2マネージメントコンソールでショーケース情報を登録し、エクスポートすることで生成できます。

これによって、開発環境用のショーケースと製品環境のショーケースで同じデータを2度登録する手間を省けます。

また、エクスポートされるデータはただの JSON 形式のデータですので、GS2マネージメントコンソールを通さずに自作のツールでショーケースマスタを作成することも可能です。

マスターデータは以下のフォーマットで定義されます。

{
  "version": "2018-05-29",
  "items": [
    {
      "name": "item-0001",
      "itemType": "gs2_gold",
      "itemGoldName": "gold-showcase-0001",
      "itemAmount": 1000,
      "currencyType": "gs2_money_any",
      "currencyMoneyName": "money-showcase-0001",
      "price": 100.0,
      "openConditionType": "gs2_limit",
      "openConditionLimitCounterName": "counter-0001",
      "openConditionLimitName": "limit-showcase-0001"
    },
    {
      "name": "item-0002",
      "itemType": "gs2_gold",
      "itemGoldName": "gold-showcase-0001",
      "itemAmount": 2000,
      "currencyType": "gs2_money_paid",
      "currencyMoneyName": "money-showcase-0002",
      "price": 200.0,
      "openConditionType": "none"
    },
    {
      "name": "item-0003",
      "itemType": "gs2_stamina",
      "itemStaminaStaminaPoolName": "stamina-pool-showcase-0001",
      "itemAmount": 30,
      "currencyType": "gs2_gold",
      "currencyGoldName": "gold-showcase-0001",
      "price": 300.0,
      "openConditionType": "gs2_limit",
      "openConditionLimitCounterName": "counter-0002",
      "openConditionLimitName": "limit-showcase-0001"
    }
  ],
  "groups": [
    {
      "name": "item-group-0001",
      "itemNames": [
        "item-0001",
        "item-0002"
      ]
    }
  ],
  "showcaseItems": [
    {
      "showcaseItemId": "fbe43271-131a-444b-9dd1-231a842bebf3",
      "category": "group",
      "itemGroupName": "item-group-0001",
      "priority": 0,
      "releaseConditionType": "gs2_schedule",
      "releaseConditionScheduleName": "schedule-showcase-0001",
      "releaseConditionScheduleEventName": "event-0001"
    },
    {
      "showcaseItemId": "b43ece67-6d83-4632-a5c3-f494e5a0abcf",
      "category": "item",
      "itemName": "item-0003",
      "priority": 1,
      "releaseConditionType": "none"
    }
  ]
}

グローバルセクション

version

現時点では 『2018-05-29』 を指定してください。 将来フォーマットが変更されたときに読み込むフォーマットバージョンを確定するのに使用します。

items

商品のマスターリストを定義します。 最大30個の商品を定義出来ます。

groups

商品グループのマスターリストを定義します。 最大30個の商品グループを定義出来ます。

showcaseItems

陳列する商品のマスターリストを定義します。 最大30個の陳列する商品を定義出来ます。

items セクション

name

商品の名前を設定します。画面に表示される要素ではありませんので、商品を区別可能な値を使用してください。 showcaseItems セクションの陳列情報の設定に使用されます。

itemType

購入対象となる商品の種類を指定してください。 ここには以下の値を設定出来ます。

  • gs2_money / GS2-Money
  • gs2_gold / GS2-Gold
  • gs2_stamina / GS2-Stamina
  • gs2_consumable_item / GS2-ConsumableItem

itemMoneyName

itemType に GS2-Money を設定した場合に課金通貨名を設定します。

itemGoldName

itemType に GS2-Gold を設定した場合にゴールド名を設定します。

itemStaminaStaminaPoolName

itemType に GS2-Stamina を設定した場合にスタミナプール名を設定します。

itemConsumableItemItemPoolName / itemConsumableItemItemName

itemType に GS2-ConsumableItem を設定した場合にアイテムプール名/アイテム名を設定します。

itemAmount

購入対象となる商品の入手数量を指定します。

itemOption

設定した itemType の内容に応じて以下の値を設定出来ます。

gs2_stamina

{
    "overflow(省略可)": bool:スタミナの最大値を超えて加算するか,
    "consumeTriggerScriptName(省略可)": スタンプシート完了時に実行する GS2-Script,
    "consumeTriggerScriptArgs(省略可)": スクリプトに渡す引数
}

その他

{
    "consumeTriggerScriptName(省略可)": スタンプシート完了時に実行する GS2-Script,
    "consumeTriggerScriptArgs(省略可)": スクリプトに渡す引数
}

currencyType

購入時に対価として消費する通貨の種類を指定してください。 ここには以下の値を設定出来ます。

  • real_money / 現金
  • gs2_money_paid / GS2-Money(有償通貨のみ)
  • gs2_money_any / GS2-Money
  • gs2_gold / GS2-Gold

currencyMoneyName

currencyType に GS2-Money を設定した場合に課金通貨名を設定します。

currencyGoldName

currencyType に GS2-Gold を設定した場合にゴールド名を設定します。

price

商品の価格を設定します。 real_money を設定した場合は AppStore や GooglePlay で購入するIAPの商品の価格を設定します。 gs2_money_paid / gs2_money_any / gs2_gold を設定した場合は各通貨の消費数量を設定します。

currencyOption

設定した itemType の内容に応じて以下の値を設定出来ます。

real_money

{
    "purchaseItems(必須)": [
        {
            "platform(必須)": string:販売プラットフォーム("AppleAppStore" or "GooglePlay"),
            "purchaseItemId(必須)": string:プロダクトID
        }
    ],
    "stampTriggerScriptName(省略可)": string:タスク完了時に実行する GS2-Script,
    "stampTriggerScriptArgs(省略可)": string|number|array|json:スクリプトに渡す引数
}

その他

{
    "stampTriggerScriptName(省略可)": タスク完了時に実行する GS2-Script,
    "stampTriggerScriptArgs(省略可)": スクリプトに渡す引数
}

openConditionType

商品が購入できるか判定するための条件を設定します。 ここには以下の値を設定出来ます。

  • none
  • gs2_limit / GS2-Limit

openConditionLimitName / openConditionLimitCounterName

openConditionType に GS2-Limit を設定した場合に回数制限名/ショーケース名を設定します。

groups セクション

name

商品グループの名前を設定します。画面に表示される要素ではありませんので、商品グループを区別可能な値を使用してください。 showcaseItems セクションの陳列情報の設定に使用されます。

itemNames

商品グループに加える商品名を設定します。 先に設定した商品ほど高い優先度で陳列されます。

showcaseItems セクション

showcaseItemId

陳列商品のIDを設定します。 Gs2Showcase:DescribeItem や Gs2Showcase:GetItem でショーケースの商品を取得する際の戻り値や、商品の購入処理を実行する際に使用されます。

category

陳列する商品の種類を設定します。 ここには以下の値を設定出来ます。

  • item / 商品
  • group / 商品グループ

itemName

category に item を指定した場合には items セクションで設定した nameを指定します。

itemGroupName

category に group を設定した場合には groups セクションで設定した name を指定します。

priority

ショーケースを取得したときに応答する優先順位を指定します。値が小さいほどリストの先頭に応答されます。

releaseConditionType

商品または商品グループを陳列開始する時間を指定します。 ここには以下の値を設定出来ます。

  • none
  • gs2_schedule / GS2-Schedule

releaseConditionScheduleName / releaseConditionScheduleEventName

releaseConditionType に GS2-Schedule を設定した場合にスケジュール名/イベント名を設定します。