pokepay_partner_ruby_sdk 0.3.2 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/release-pr.yml +18 -0
- data/Gemfile.lock +1 -1
- data/docs/README.md +269 -0
- data/docs/account.md +159 -0
- data/docs/bank_pay.md +235 -0
- data/docs/bill.md +365 -0
- data/docs/bulk.md +121 -0
- data/docs/campaign.md +1749 -0
- data/docs/cashtray.md +318 -0
- data/docs/check.md +883 -0
- data/docs/coupon.md +724 -0
- data/docs/customer.md +1042 -0
- data/docs/error-response.csv +839 -0
- data/docs/event.md +308 -0
- data/docs/index.md +1279 -305
- data/docs/organization.md +292 -0
- data/docs/private_money.md +213 -0
- data/docs/responses.md +711 -0
- data/docs/shop.md +678 -0
- data/docs/transaction.md +2021 -0
- data/docs/transfer.md +686 -0
- data/docs/user.md +3 -0
- data/docs/user_device.md +134 -0
- data/docs/webhook.md +231 -0
- data/lib/pokepay_partner_ruby_sdk/request/activate_user_device.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_bank.rb +17 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_bank_topup_transaction.rb +18 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_coupon.rb +19 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_external_transaction.rb +2 -2
- data/lib/pokepay_partner_ruby_sdk/request/create_transaction_with_cashtray.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_user_device.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/delete_webhook.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/get_check.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/get_coupon.rb +1 -1
- data/lib/pokepay_partner_ruby_sdk/request/get_external_transaction_by_request_id.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/get_user_device.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/list_banks.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/list_checks.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/list_organizations.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/refund_external_transaction.rb +2 -2
- data/lib/pokepay_partner_ruby_sdk/request/update_check.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/update_coupon.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/response/bank.rb +28 -0
- data/lib/pokepay_partner_ruby_sdk/response/bank_registering_info.rb +13 -0
- data/lib/pokepay_partner_ruby_sdk/response/banks.rb +13 -0
- data/lib/pokepay_partner_ruby_sdk/response/campaign.rb +6 -0
- data/lib/pokepay_partner_ruby_sdk/response/check.rb +2 -0
- data/lib/pokepay_partner_ruby_sdk/response/external_transaction_detail.rb +34 -0
- data/lib/pokepay_partner_ruby_sdk/response/organization_summary.rb +4 -0
- data/lib/pokepay_partner_ruby_sdk/response/paginated_checks.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/response/paginated_organizations.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/response/private_money_summary.rb +4 -0
- data/lib/pokepay_partner_ruby_sdk/response/product.rb +2 -0
- data/lib/pokepay_partner_ruby_sdk/response/user_device.rb +18 -0
- data/lib/pokepay_partner_ruby_sdk/version.rb +1 -1
- data/lib/pokepay_partner_ruby_sdk.rb +26 -4
- data/partner.yaml +1578 -216
- metadata +46 -2
data/docs/campaign.md
ADDED
@@ -0,0 +1,1749 @@
|
|
1
|
+
# Campaign
|
2
|
+
|
3
|
+
<a name="list-campaigns"></a>
|
4
|
+
## ListCampaigns: キャンペーン一覧を取得する
|
5
|
+
マネーIDを指定してキャンペーンを取得します。
|
6
|
+
発行体の組織マネージャ権限で、自組織が発行するマネーのキャンペーンについてのみ閲覧可能です。
|
7
|
+
閲覧権限がない場合は unpermitted_admin_user エラー(422)が返ります。
|
8
|
+
|
9
|
+
```RUBY
|
10
|
+
response = $client.send(Pokepay::Request::ListCampaigns.new(
|
11
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # private_money_id: マネーID
|
12
|
+
is_ongoing: false, # 現在適用可能なキャンペーンかどうか
|
13
|
+
available_from: "2020-06-05T02:44:45.000000Z", # 指定された日時以降に適用可能期間が含まれているか
|
14
|
+
available_to: "2022-07-22T06:25:55.000000Z", # 指定された日時以前に適用可能期間が含まれているか
|
15
|
+
page: 1, # ページ番号
|
16
|
+
per_page: 20 # 1ページ分の取得数
|
17
|
+
))
|
18
|
+
```
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
### Parameters
|
23
|
+
**`private_money_id`**
|
24
|
+
|
25
|
+
|
26
|
+
マネーIDです。
|
27
|
+
|
28
|
+
フィルターとして使われ、指定したマネーでのキャンペーンのみ一覧に表示されます。
|
29
|
+
|
30
|
+
```json
|
31
|
+
{
|
32
|
+
"type": "string",
|
33
|
+
"format": "uuid"
|
34
|
+
}
|
35
|
+
```
|
36
|
+
|
37
|
+
**`is_ongoing`**
|
38
|
+
|
39
|
+
|
40
|
+
有効化されており、現在キャンペーン期間内にあるキャンペーンをフィルターするために使われます。
|
41
|
+
真であれば適用可能なもののみを抽出し、偽であれば適用不可なもののみを抽出します。
|
42
|
+
デフォルトでは未指定(フィルターなし)です。
|
43
|
+
|
44
|
+
```json
|
45
|
+
{
|
46
|
+
"type": "boolean"
|
47
|
+
}
|
48
|
+
```
|
49
|
+
|
50
|
+
**`available_from`**
|
51
|
+
|
52
|
+
|
53
|
+
キャンペーン終了日時が指定された日時以降であるキャンペーンをフィルターするために使われます。
|
54
|
+
デフォルトでは未指定(フィルターなし)です。
|
55
|
+
|
56
|
+
```json
|
57
|
+
{
|
58
|
+
"type": "string",
|
59
|
+
"format": "date-time"
|
60
|
+
}
|
61
|
+
```
|
62
|
+
|
63
|
+
**`available_to`**
|
64
|
+
|
65
|
+
|
66
|
+
キャンペーン開始日時が指定された日時以前であるキャンペーンをフィルターするために使われます。
|
67
|
+
デフォルトでは未指定(フィルターなし)です。
|
68
|
+
|
69
|
+
```json
|
70
|
+
{
|
71
|
+
"type": "string",
|
72
|
+
"format": "date-time"
|
73
|
+
}
|
74
|
+
```
|
75
|
+
|
76
|
+
**`page`**
|
77
|
+
|
78
|
+
|
79
|
+
取得したいページ番号です。
|
80
|
+
|
81
|
+
```json
|
82
|
+
{
|
83
|
+
"type": "integer",
|
84
|
+
"minimum": 1
|
85
|
+
}
|
86
|
+
```
|
87
|
+
|
88
|
+
**`per_page`**
|
89
|
+
|
90
|
+
|
91
|
+
1ページ分の取得数です。デフォルトでは 20 になっています。
|
92
|
+
|
93
|
+
```json
|
94
|
+
{
|
95
|
+
"type": "integer",
|
96
|
+
"minimum": 1,
|
97
|
+
"maximum": 50
|
98
|
+
}
|
99
|
+
```
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
成功したときは
|
104
|
+
[PaginatedCampaigns](./responses.md#paginated-campaigns)
|
105
|
+
を返します
|
106
|
+
|
107
|
+
### Error Responses
|
108
|
+
|status|type|ja|en|
|
109
|
+
|---|---|---|---|
|
110
|
+
|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
---
|
115
|
+
|
116
|
+
|
117
|
+
<a name="create-campaign"></a>
|
118
|
+
## CreateCampaign: ポイント付与キャンペーンを作る
|
119
|
+
ポイント付与キャンペーンを作成します。
|
120
|
+
|
121
|
+
|
122
|
+
```RUBY
|
123
|
+
response = $client.send(Pokepay::Request::CreateCampaign.new(
|
124
|
+
"NRGCHkqW6b190Xf2yHeAyBqIIySMiYLD3kq3Znz8pepfEmpSiLZTFdERWScAwFtubDUWmymMiDwFFfcNNLAfTp6G3m2S11HDiNC2T6Z1NRFWi9xNJqHv5TG4qAHZdsob31RGFcTjCHIRk", # name: キャンペーン名
|
125
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # private_money_id: マネーID
|
126
|
+
"2023-08-28T11:39:58.000000Z", # starts_at: キャンペーン開始日時
|
127
|
+
"2021-01-19T17:11:18.000000Z", # ends_at: キャンペーン終了日時
|
128
|
+
7052, # priority: キャンペーンの適用優先度
|
129
|
+
"payment", # event: イベント種別
|
130
|
+
bear_point_shop_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # ポイント負担先店舗ID
|
131
|
+
description: "OKDYDfh7IyYBfS", # キャンペーンの説明文
|
132
|
+
status: "enabled", # キャンペーン作成時の状態
|
133
|
+
point_expires_at: "2022-11-15T14:41:54.000000Z", # ポイント有効期限(絶対日時指定)
|
134
|
+
point_expires_in_days: 8986, # ポイント有効期限(相対日数指定)
|
135
|
+
is_exclusive: true, # キャンペーンの重複設定
|
136
|
+
subject: "all", # ポイント付与の対象金額の種別
|
137
|
+
amount_based_point_rules: [{
|
138
|
+
"point_amount": 5,
|
139
|
+
"point_amount_unit": "percent",
|
140
|
+
"subject_more_than_or_equal": 1000,
|
141
|
+
"subject_less_than": 5000
|
142
|
+
}], # 取引金額ベースのポイント付与ルール
|
143
|
+
product_based_point_rules: [{
|
144
|
+
"point_amount": 5,
|
145
|
+
"point_amount_unit": "percent",
|
146
|
+
"product_code": "4912345678904",
|
147
|
+
"is_multiply_by_count": true,
|
148
|
+
"required_count": 2
|
149
|
+
}, {
|
150
|
+
"point_amount": 5,
|
151
|
+
"point_amount_unit": "percent",
|
152
|
+
"product_code": "4912345678904",
|
153
|
+
"is_multiply_by_count": true,
|
154
|
+
"required_count": 2
|
155
|
+
}], # 商品情報ベースのポイント付与ルール
|
156
|
+
blacklisted_product_rules: [{
|
157
|
+
"product_code": "4912345678904",
|
158
|
+
"classification_code": "c123"
|
159
|
+
}, {
|
160
|
+
"product_code": "4912345678904",
|
161
|
+
"classification_code": "c123"
|
162
|
+
}, {
|
163
|
+
"product_code": "4912345678904",
|
164
|
+
"classification_code": "c123"
|
165
|
+
}], # 商品情報ベースのキャンペーンで除外対象にする商品リスト
|
166
|
+
applicable_days_of_week: [5], # キャンペーンを適用する曜日 (複数指定)
|
167
|
+
applicable_time_ranges: [{
|
168
|
+
"from": "12:00",
|
169
|
+
"to": "23:59"
|
170
|
+
}, {
|
171
|
+
"from": "12:00",
|
172
|
+
"to": "23:59"
|
173
|
+
}, {
|
174
|
+
"from": "12:00",
|
175
|
+
"to": "23:59"
|
176
|
+
}], # キャンペーンを適用する時間帯 (複数指定)
|
177
|
+
applicable_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象となる店舗IDのリスト
|
178
|
+
blacklisted_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象外となる店舗IDのリスト(ブラックリスト方式)
|
179
|
+
minimum_number_of_products: 3677, # キャンペーンを適用する1会計内の商品個数の下限
|
180
|
+
minimum_number_of_amount: 9333, # キャンペーンを適用する1会計内の商品総額の下限
|
181
|
+
minimum_number_for_combination_purchase: 1069, # 複数種類の商品を同時購入するときの商品種別数の下限
|
182
|
+
exist_in_each_product_groups: true, # 複数の商品グループにつき1種類以上の商品購入によって発火するキャンペーンの指定フラグ
|
183
|
+
max_point_amount: 7906, # キャンペーンによって付与されるポイントの上限
|
184
|
+
max_total_point_amount: 1642, # キャンペーンによって付与されるの1人当たりの累計ポイントの上限
|
185
|
+
dest_private_money_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # ポイント付与先となるマネーID
|
186
|
+
applicable_account_metadata: {
|
187
|
+
"key": "sex",
|
188
|
+
"value": "male"
|
189
|
+
}, # ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
190
|
+
applicable_transaction_metadata: {
|
191
|
+
"key": "rank",
|
192
|
+
"value": "bronze"
|
193
|
+
}, # 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
194
|
+
budget_caps_amount: 1315895000 # キャンペーン予算上限
|
195
|
+
))
|
196
|
+
```
|
197
|
+
|
198
|
+
|
199
|
+
|
200
|
+
### Parameters
|
201
|
+
**`name`**
|
202
|
+
|
203
|
+
|
204
|
+
キャンペーン名です(必須項目)。
|
205
|
+
|
206
|
+
ポイント付与によってできるチャージ取引の説明文に転記されます。取引説明文はエンドユーザーからも確認できます。
|
207
|
+
|
208
|
+
```json
|
209
|
+
{
|
210
|
+
"type": "string",
|
211
|
+
"maxLength": 256
|
212
|
+
}
|
213
|
+
```
|
214
|
+
|
215
|
+
**`private_money_id`**
|
216
|
+
|
217
|
+
|
218
|
+
キャンペーン対象のマネーのIDです(必須項目)。
|
219
|
+
|
220
|
+
```json
|
221
|
+
{
|
222
|
+
"type": "string",
|
223
|
+
"format": "uuid"
|
224
|
+
}
|
225
|
+
```
|
226
|
+
|
227
|
+
**`starts_at`**
|
228
|
+
|
229
|
+
|
230
|
+
キャンペーン開始日時です(必須項目)。
|
231
|
+
キャンペーン期間中のみポイントが付与されます。
|
232
|
+
開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
|
233
|
+
|
234
|
+
```json
|
235
|
+
{
|
236
|
+
"type": "string",
|
237
|
+
"format": "date-time"
|
238
|
+
}
|
239
|
+
```
|
240
|
+
|
241
|
+
**`ends_at`**
|
242
|
+
|
243
|
+
|
244
|
+
キャンペーン終了日時です(必須項目)。
|
245
|
+
キャンペーン期間中のみポイントが付与されます。
|
246
|
+
開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
|
247
|
+
|
248
|
+
```json
|
249
|
+
{
|
250
|
+
"type": "string",
|
251
|
+
"format": "date-time"
|
252
|
+
}
|
253
|
+
```
|
254
|
+
|
255
|
+
**`priority`**
|
256
|
+
|
257
|
+
|
258
|
+
キャンペーンの適用優先度です。
|
259
|
+
|
260
|
+
優先度が大きいものから順に適用判定されていきます。
|
261
|
+
キャンペーン期間が重なっている同一の優先度のキャンペーンが存在するとcampaign_period_overlapsエラー(422)になります。
|
262
|
+
|
263
|
+
```json
|
264
|
+
{
|
265
|
+
"type": "integer"
|
266
|
+
}
|
267
|
+
```
|
268
|
+
|
269
|
+
**`event`**
|
270
|
+
|
271
|
+
|
272
|
+
キャンペーンのトリガーとなるイベントの種類を指定します(必須項目)。
|
273
|
+
|
274
|
+
以下のいずれかを指定できます。
|
275
|
+
|
276
|
+
1. topup
|
277
|
+
店舗からエンドユーザーへの送金取引(チャージ)
|
278
|
+
2. payment
|
279
|
+
エンドユーザーから店舗への送金取引(支払い)
|
280
|
+
3. external-transaction
|
281
|
+
ポケペイ外の取引(現金決済など)
|
282
|
+
|
283
|
+
```json
|
284
|
+
{
|
285
|
+
"type": "string",
|
286
|
+
"enum": [
|
287
|
+
"topup",
|
288
|
+
"payment",
|
289
|
+
"external-transaction"
|
290
|
+
]
|
291
|
+
}
|
292
|
+
```
|
293
|
+
|
294
|
+
**`bear_point_shop_id`**
|
295
|
+
|
296
|
+
|
297
|
+
ポイントを負担する店舗のIDです。デフォルトではマネー発行体の本店が設定されます。
|
298
|
+
ポイント負担先店舗は後から更新することはできません。
|
299
|
+
|
300
|
+
```json
|
301
|
+
{
|
302
|
+
"type": "string",
|
303
|
+
"format": "uuid"
|
304
|
+
}
|
305
|
+
```
|
306
|
+
|
307
|
+
**`description`**
|
308
|
+
|
309
|
+
|
310
|
+
キャンペーンの内容を記載します。管理画面などでキャンペーンを管理するための説明文になります。
|
311
|
+
|
312
|
+
```json
|
313
|
+
{
|
314
|
+
"type": "string",
|
315
|
+
"maxLength": 200
|
316
|
+
}
|
317
|
+
```
|
318
|
+
|
319
|
+
**`status`**
|
320
|
+
|
321
|
+
|
322
|
+
キャンペーン作成時の状態を指定します。デフォルトではenabledです。
|
323
|
+
|
324
|
+
以下のいずれかを指定できます。
|
325
|
+
|
326
|
+
1. enabled
|
327
|
+
有効
|
328
|
+
2. disabled
|
329
|
+
無効
|
330
|
+
|
331
|
+
```json
|
332
|
+
{
|
333
|
+
"type": "string",
|
334
|
+
"enum": [
|
335
|
+
"enabled",
|
336
|
+
"disabled"
|
337
|
+
]
|
338
|
+
}
|
339
|
+
```
|
340
|
+
|
341
|
+
**`point_expires_at`**
|
342
|
+
|
343
|
+
|
344
|
+
キャンペーンによって付与されるポイントの有効期限を絶対日時で指定します。
|
345
|
+
省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
|
346
|
+
|
347
|
+
```json
|
348
|
+
{
|
349
|
+
"type": "string",
|
350
|
+
"format": "date-time"
|
351
|
+
}
|
352
|
+
```
|
353
|
+
|
354
|
+
**`point_expires_in_days`**
|
355
|
+
|
356
|
+
|
357
|
+
キャンペーンによって付与されるポイントの有効期限を相対日数で指定します。
|
358
|
+
省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
|
359
|
+
|
360
|
+
```json
|
361
|
+
{
|
362
|
+
"type": "integer",
|
363
|
+
"minimum": 1
|
364
|
+
}
|
365
|
+
```
|
366
|
+
|
367
|
+
**`is_exclusive`**
|
368
|
+
|
369
|
+
|
370
|
+
キャンペーンの重ね掛けを行うかどうかのフラグです。
|
371
|
+
|
372
|
+
これにtrueを指定すると他のキャンペーンと同時適用されません。デフォルト値はtrueです。
|
373
|
+
falseを指定すると次の優先度の重ね掛け可能なキャンペーンの適用判定に進みます。
|
374
|
+
|
375
|
+
```json
|
376
|
+
{
|
377
|
+
"type": "boolean"
|
378
|
+
}
|
379
|
+
```
|
380
|
+
|
381
|
+
**`subject`**
|
382
|
+
|
383
|
+
|
384
|
+
ポイント付与額を計算する対象となる金額の種類を指定します。デフォルト値はallです。
|
385
|
+
eventとしてexternal-transactionを指定した場合はポイントとマネーの区別がないためsubjectの指定に関わらず常にallとなります。
|
386
|
+
|
387
|
+
以下のいずれかを指定できます。
|
388
|
+
|
389
|
+
1. money
|
390
|
+
moneyを指定すると決済額の中で「マネー」を使って支払った額を対象にします
|
391
|
+
|
392
|
+
2. all
|
393
|
+
all を指定すると決済額全体を対象にします (「ポイント」での取引額を含む)
|
394
|
+
注意: event を topup にしたときはポイントの付与に対しても適用されます
|
395
|
+
|
396
|
+
```json
|
397
|
+
{
|
398
|
+
"type": "string",
|
399
|
+
"enum": [
|
400
|
+
"money",
|
401
|
+
"all"
|
402
|
+
]
|
403
|
+
}
|
404
|
+
```
|
405
|
+
|
406
|
+
**`amount_based_point_rules`**
|
407
|
+
|
408
|
+
|
409
|
+
金額をベースとしてポイント付与を行うルールを指定します。
|
410
|
+
amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
|
411
|
+
各ルールは一つのみ適用され、条件に重複があった場合は先に記載されたものが優先されます。
|
412
|
+
|
413
|
+
例:
|
414
|
+
```javascript
|
415
|
+
[
|
416
|
+
// 1000円以上、5000円未満の決済には 5%
|
417
|
+
{
|
418
|
+
"point_amount": 5,
|
419
|
+
"point_amount_unit": "percent",
|
420
|
+
"subject_more_than_or_equal": 1000,
|
421
|
+
"subject_less_than": 5000
|
422
|
+
},
|
423
|
+
// 5000円以上の決済には 10%
|
424
|
+
{
|
425
|
+
"point_amount": 10,
|
426
|
+
"point_amount_unit": "percent",
|
427
|
+
"subject_more_than_or_equal": 5000
|
428
|
+
},
|
429
|
+
]
|
430
|
+
```
|
431
|
+
|
432
|
+
```json
|
433
|
+
{
|
434
|
+
"type": "array",
|
435
|
+
"items": {
|
436
|
+
"type": "object"
|
437
|
+
}
|
438
|
+
}
|
439
|
+
```
|
440
|
+
|
441
|
+
**`product_based_point_rules`**
|
442
|
+
|
443
|
+
|
444
|
+
商品情報をベースとしてポイント付与を行うルールを指定します。
|
445
|
+
ルールは商品ごとに設定可能で、ルールの配列として指定します。
|
446
|
+
amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
|
447
|
+
event が payment か external-transaction の時のみ有効です。
|
448
|
+
各ルールの順序は問わず、適用可能なものは全て適用されます。
|
449
|
+
一つの決済の中で複数の商品がキャンペーン適用可能な場合はそれぞれの商品についてのルールが適用され、ポイント付与額はその合算になります。
|
450
|
+
|
451
|
+
例:
|
452
|
+
```javascript
|
453
|
+
[
|
454
|
+
// 対象商品の購入額から5%ポイント付与。複数購入時は単価の5%が付与される。
|
455
|
+
{
|
456
|
+
"point_amount": 5,
|
457
|
+
"point_amount_unit": "percent",
|
458
|
+
"product_code": "4912345678904",
|
459
|
+
},
|
460
|
+
// 対象商品の購入額から5%ポイント付与。複数購入時は購入総額の5%が付与される。
|
461
|
+
{
|
462
|
+
"point_amount": 5,
|
463
|
+
"point_amount_unit": "percent",
|
464
|
+
"product_code": "4912345678904",
|
465
|
+
"is_multiply_by_count": true,
|
466
|
+
},
|
467
|
+
// 対象商品を2つ以上購入したら500ポイント付与(固定額付与)
|
468
|
+
{
|
469
|
+
"point_amount": 500,
|
470
|
+
"point_amount_unit": "absolute",
|
471
|
+
"product_code": "4912345678904",
|
472
|
+
"required_count": 2
|
473
|
+
},
|
474
|
+
// 書籍は10%ポイント付与
|
475
|
+
// ※ISBNの形式はレジがポケペイに送信する形式に準じます
|
476
|
+
{
|
477
|
+
"point_amount": 10,
|
478
|
+
"point_amount_unit": "percent",
|
479
|
+
"product_code": "978-%",
|
480
|
+
},
|
481
|
+
// 一部の出版社の書籍は10%ポイント付与
|
482
|
+
{
|
483
|
+
"point_amount": 10,
|
484
|
+
"point_amount_unit": "percent",
|
485
|
+
"product_code": "978-4-01-%", // 旺文社
|
486
|
+
}
|
487
|
+
]
|
488
|
+
```
|
489
|
+
|
490
|
+
```json
|
491
|
+
{
|
492
|
+
"type": "array",
|
493
|
+
"items": {
|
494
|
+
"type": "object"
|
495
|
+
}
|
496
|
+
}
|
497
|
+
```
|
498
|
+
|
499
|
+
**`blacklisted_product_rules`**
|
500
|
+
|
501
|
+
|
502
|
+
商品情報をベースとしてポイント付与を行う際に、事前に除外対象とする商品リストを指定します。
|
503
|
+
除外対象の商品コード、または分類コードのパターンの配列として指定します。
|
504
|
+
取引時には、まずここで指定した除外対象商品が除かれ、残った商品に対して `product_based_point_rules` のルール群が適用されます。
|
505
|
+
|
506
|
+
```json
|
507
|
+
{
|
508
|
+
"type": "array",
|
509
|
+
"items": {
|
510
|
+
"type": "object"
|
511
|
+
}
|
512
|
+
}
|
513
|
+
```
|
514
|
+
|
515
|
+
**`applicable_days_of_week`**
|
516
|
+
|
517
|
+
|
518
|
+
キャンペーンを適用する曜日を指定します (複数指定)。
|
519
|
+
曜日は整数で表します。月曜を 0 とし、日曜を 6 とします。
|
520
|
+
指定しなかった場合は全日を対象にします (曜日による適用条件なし)
|
521
|
+
|
522
|
+
```json
|
523
|
+
{
|
524
|
+
"type": "array",
|
525
|
+
"items": {
|
526
|
+
"type": "integer",
|
527
|
+
"minimum": 0,
|
528
|
+
"maximum": 6
|
529
|
+
}
|
530
|
+
}
|
531
|
+
```
|
532
|
+
|
533
|
+
**`applicable_time_ranges`**
|
534
|
+
|
535
|
+
|
536
|
+
キャンペーンを適用する時間帯を指定します (複数指定可)。
|
537
|
+
時間帯はfromとtoからなるオブジェクトで指定します。
|
538
|
+
fromとtoは両方必要です。
|
539
|
+
|
540
|
+
```json
|
541
|
+
{
|
542
|
+
"type": "array",
|
543
|
+
"items": {
|
544
|
+
"type": "object"
|
545
|
+
}
|
546
|
+
}
|
547
|
+
```
|
548
|
+
|
549
|
+
**`applicable_shop_ids`**
|
550
|
+
|
551
|
+
|
552
|
+
キャンペーンを適用する店舗IDを指定します (複数指定)。
|
553
|
+
指定しなかった場合は全店舗が対象になります。
|
554
|
+
|
555
|
+
```json
|
556
|
+
{
|
557
|
+
"type": "array",
|
558
|
+
"items": {
|
559
|
+
"type": "string",
|
560
|
+
"format": "uuid"
|
561
|
+
}
|
562
|
+
}
|
563
|
+
```
|
564
|
+
|
565
|
+
**`blacklisted_shop_ids`**
|
566
|
+
|
567
|
+
|
568
|
+
キャンペーンの適用対象外となる店舗IDをブラックリスト方式で指定します (複数指定可)。
|
569
|
+
このパラメータが指定されている場合、blacklisted_shop_idsに含まれていない店舗全てがキャンペーンの適用対象になります。
|
570
|
+
blacklisted_shop_idsとapplicable_shop_idsは同時には指定できません。ホワイトリスト方式を使うときはapplicable_shop_idsを指定してください。
|
571
|
+
|
572
|
+
```json
|
573
|
+
{
|
574
|
+
"type": "array",
|
575
|
+
"items": {
|
576
|
+
"type": "string",
|
577
|
+
"format": "uuid"
|
578
|
+
}
|
579
|
+
}
|
580
|
+
```
|
581
|
+
|
582
|
+
**`minimum_number_of_products`**
|
583
|
+
|
584
|
+
|
585
|
+
このパラメータを指定すると、取引時の1会計内のルールに適合する商品個数がminimum_number_of_productsを超えたときにのみキャンペーンが発火するようになります。
|
586
|
+
|
587
|
+
```json
|
588
|
+
{
|
589
|
+
"type": "integer",
|
590
|
+
"minimum": 1
|
591
|
+
}
|
592
|
+
```
|
593
|
+
|
594
|
+
**`minimum_number_of_amount`**
|
595
|
+
|
596
|
+
|
597
|
+
このパラメータを指定すると、取引時の1会計内のルールに適合する商品総額がminimum_number_of_amountを超えたときにのみキャンペーンが発火するようになります。
|
598
|
+
|
599
|
+
```json
|
600
|
+
{
|
601
|
+
"type": "integer",
|
602
|
+
"minimum": 1
|
603
|
+
}
|
604
|
+
```
|
605
|
+
|
606
|
+
**`minimum_number_for_combination_purchase`**
|
607
|
+
|
608
|
+
|
609
|
+
複数種別の商品を同時購入したとき、同時購入キャンペーンの対象となる商品種別数の下限です。デフォルトでは未指定で、指定する場合は1以上の整数を指定します。
|
610
|
+
|
611
|
+
このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定されている必要があります。
|
612
|
+
例えば、A商品とB商品とC商品のうち、キャンペーンの発火のために2商品以上が同時購入される必要があるときは 2 を指定します。
|
613
|
+
|
614
|
+
例1: 商品A, Bが同時購入されたときに固定ポイント額(200ポイント)付与
|
615
|
+
```javascript
|
616
|
+
{
|
617
|
+
minimum_number_for_combination_purchase: 2,
|
618
|
+
product_based_point_rules: [
|
619
|
+
{
|
620
|
+
"point_amount": 100,
|
621
|
+
"point_amount_unit": "absolute",
|
622
|
+
"product_code": "商品Aの商品コード"
|
623
|
+
},
|
624
|
+
{
|
625
|
+
"point_amount": 100,
|
626
|
+
"point_amount_unit": "absolute",
|
627
|
+
"product_code": "商品Bの商品コード"
|
628
|
+
}
|
629
|
+
]
|
630
|
+
}
|
631
|
+
```
|
632
|
+
|
633
|
+
例2: 商品A, Bが3個ずつ以上同時購入されたときに固定ポイント額(200ポイント)付与
|
634
|
+
```javascript
|
635
|
+
{
|
636
|
+
minimum_number_for_combination_purchase: 2,
|
637
|
+
product_based_point_rules: [
|
638
|
+
{
|
639
|
+
"point_amount": 100,
|
640
|
+
"point_amount_unit": "absolute",
|
641
|
+
"product_code": "商品Aの商品コード",
|
642
|
+
"required_count": 3
|
643
|
+
},
|
644
|
+
{
|
645
|
+
"point_amount": 100,
|
646
|
+
"point_amount_unit": "absolute",
|
647
|
+
"product_code": "商品Bの商品コード",
|
648
|
+
"required_count": 3
|
649
|
+
}
|
650
|
+
]
|
651
|
+
}
|
652
|
+
```
|
653
|
+
|
654
|
+
例2: 商品A, B, Cのうち2商品以上が同時購入されたときに総額の10%ポイントが付与
|
655
|
+
```javascript
|
656
|
+
{
|
657
|
+
minimum_number_for_combination_purchase: 2,
|
658
|
+
product_based_point_rules: [
|
659
|
+
{
|
660
|
+
"point_amount": 10,
|
661
|
+
"point_amount_unit": "percent",
|
662
|
+
"product_code": "商品Aの商品コード",
|
663
|
+
"is_multiply_by_count": true,
|
664
|
+
},
|
665
|
+
{
|
666
|
+
"point_amount": 10,
|
667
|
+
"point_amount_unit": "percent",
|
668
|
+
"product_code": "商品Bの商品コード",
|
669
|
+
"is_multiply_by_count": true,
|
670
|
+
},
|
671
|
+
{
|
672
|
+
"point_amount": 10,
|
673
|
+
"point_amount_unit": "percent",
|
674
|
+
"product_code": "商品Cの商品コード",
|
675
|
+
"is_multiply_by_count": true,
|
676
|
+
}
|
677
|
+
]
|
678
|
+
}
|
679
|
+
```
|
680
|
+
|
681
|
+
```json
|
682
|
+
{
|
683
|
+
"type": "integer",
|
684
|
+
"minimum": 1
|
685
|
+
}
|
686
|
+
```
|
687
|
+
|
688
|
+
**`exist_in_each_product_groups`**
|
689
|
+
|
690
|
+
|
691
|
+
複数の商品グループの各グループにつき1種類以上の商品が購入されることによって発火するキャンペーンであるときに真を指定します。デフォルトは偽です。
|
692
|
+
|
693
|
+
このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定され、さらにその中でgroup_idが指定されている必要があります。group_idは正の整数です。
|
694
|
+
exist_in_each_product_groupsが指定されているにも関わらず商品毎のルールでgroup_idが指定されていないものが含まれている場合はinvalid_parametersエラー(missing group_id, エラーコード400)が返ります。
|
695
|
+
|
696
|
+
例えば、商品グループA(商品コードa1, a2)、商品グループB(商品コードb1, b2)の2つの商品グループがあるとします。
|
697
|
+
このとき、各商品グループからそれぞれ少なくとも1種類以上の商品が購入されることにより発火するキャンペーンに対するリクエストパラメータは以下のようなものになります。
|
698
|
+
|
699
|
+
```javascript
|
700
|
+
{
|
701
|
+
exist_in_each_product_groups: true,
|
702
|
+
product_based_point_rules: [
|
703
|
+
{
|
704
|
+
"point_amount": 100,
|
705
|
+
"point_amount_unit": "absolute",
|
706
|
+
"product_code": "a1",
|
707
|
+
"group_id": 1
|
708
|
+
},
|
709
|
+
{
|
710
|
+
"point_amount": 100,
|
711
|
+
"point_amount_unit": "absolute",
|
712
|
+
"product_code": "a2",
|
713
|
+
"group_id": 1
|
714
|
+
},
|
715
|
+
{
|
716
|
+
"point_amount": 200,
|
717
|
+
"point_amount_unit": "absolute",
|
718
|
+
"product_code": "b1",
|
719
|
+
"group_id": 2
|
720
|
+
},
|
721
|
+
{
|
722
|
+
"point_amount": 200,
|
723
|
+
"point_amount_unit": "absolute",
|
724
|
+
"product_code": "b2",
|
725
|
+
"group_id": 2
|
726
|
+
}
|
727
|
+
]
|
728
|
+
}
|
729
|
+
```
|
730
|
+
|
731
|
+
このキャンペーンが設定された状態で、商品a1、b1が同時に購入された場合、各商品に対する個別のルールが適用された上での総和がポイント付与値になります。つまり100 + 200=300がポイント付与値になります。商品a1、a2、 b1、b2が同時に購入された場合は100 + 100 + 200 + 200=600がポイント付与値になります。 商品a1、a2が同時に購入された場合は全商品グループから1種以上購入されるという条件を満たしていないためポイントは付与されません。
|
732
|
+
|
733
|
+
ポイント付与値を各商品毎のルールの総和ではなく固定値にしたい場合には、max_point_amountを指定します。
|
734
|
+
例えば以下のようなリクエストパラメータ指定の場合を考えます。
|
735
|
+
|
736
|
+
```javascript
|
737
|
+
{
|
738
|
+
max_point_amount: 100,
|
739
|
+
exist_in_each_product_groups: true,
|
740
|
+
product_based_point_rules: [
|
741
|
+
{
|
742
|
+
"point_amount": 100,
|
743
|
+
"point_amount_unit": "absolute",
|
744
|
+
"product_code": "a1",
|
745
|
+
"group_id": 1
|
746
|
+
},
|
747
|
+
{
|
748
|
+
"point_amount": 100,
|
749
|
+
"point_amount_unit": "absolute",
|
750
|
+
"product_code": "a2",
|
751
|
+
"group_id": 1
|
752
|
+
},
|
753
|
+
{
|
754
|
+
"point_amount": 100,
|
755
|
+
"point_amount_unit": "absolute",
|
756
|
+
"product_code": "b1",
|
757
|
+
"group_id": 2
|
758
|
+
},
|
759
|
+
{
|
760
|
+
"point_amount": 100,
|
761
|
+
"point_amount_unit": "absolute",
|
762
|
+
"product_code": "b2",
|
763
|
+
"group_id": 2
|
764
|
+
}
|
765
|
+
]
|
766
|
+
}
|
767
|
+
```
|
768
|
+
|
769
|
+
このキャンペーンが設定された状態で、商品a1、b1が同時に購入された場合、各商品に対する個別のルールが適用された上での総和がポイント付与値になりますが、付与値の上限が100ポイントになります。つまり100 + 200=300と計算されますが上限額の100ポイントが実際の付与値になります。商品a1、a2、 b1、b2が同時に購入された場合は100 + 100 + 200 + 200=600ですが上限額の100がポイント付与値になります。 商品a1、a2が同時に購入された場合は全商品グループから1種以上購入されるという条件を満たしていないためポイントは付与されません。
|
770
|
+
|
771
|
+
```json
|
772
|
+
{
|
773
|
+
"type": "boolean"
|
774
|
+
}
|
775
|
+
```
|
776
|
+
|
777
|
+
**`max_point_amount`**
|
778
|
+
|
779
|
+
|
780
|
+
キャンペーンによって付与されるポイントの上限を指定します。デフォルトは未指定です。
|
781
|
+
|
782
|
+
このパラメータが指定されている場合、amount_based_point_rules や product_based_point_rules によって計算されるポイント付与値がmax_point_amountを越えている場合、max_point_amountの値がポイント付与値となり、越えていない場合はその値がポイント付与値となります。
|
783
|
+
|
784
|
+
```json
|
785
|
+
{
|
786
|
+
"type": "integer",
|
787
|
+
"minimum": 1
|
788
|
+
}
|
789
|
+
```
|
790
|
+
|
791
|
+
**`max_total_point_amount`**
|
792
|
+
|
793
|
+
|
794
|
+
キャンペーンによって付与される1人当たりの累計ポイント数の上限を指定します。デフォルトは未指定です。
|
795
|
+
|
796
|
+
このパラメータが指定されている場合、各ユーザに対してそのキャンペーンによって過去付与されたポイントの累積値が記録されるようになります。
|
797
|
+
累積ポイント数がmax_total_point_amountを超えない限りにおいてキャンペーンで算出されたポイントが付与されます。
|
798
|
+
|
799
|
+
```json
|
800
|
+
{
|
801
|
+
"type": "integer",
|
802
|
+
"minimum": 1
|
803
|
+
}
|
804
|
+
```
|
805
|
+
|
806
|
+
**`dest_private_money_id`**
|
807
|
+
|
808
|
+
|
809
|
+
キャンペーンを駆動するイベントのマネーとは「別のマネー」に対してポイントを付けたいときに、そのマネーIDを指定します。
|
810
|
+
|
811
|
+
ポイント付与先のマネーはキャンペーンを駆動するイベントのマネーと同一発行体が発行しているものに限ります。その他のマネーIDが指定された場合は private_money_not_found (422) が返ります。
|
812
|
+
エンドユーザー、店舗、ポイント負担先店舗はポイント付与先マネーのウォレットを持っている必要があります。持っていない場合はポイントは付きません。
|
813
|
+
元のイベントのマネーと異なる複数のマネーに対して同時にポイントを付与することはできません。重複可能に設定されている複数のキャンペーンで別々のポイント付与先マネーを指定した場合は最も優先度の高いものが処理され、残りは無視されます。
|
814
|
+
キャンペーンのポイント付与先マネーは後から更新することはできません。
|
815
|
+
デフォルトではポイント付与先はキャンペーンを駆動するイベントのマネー(private_money_idで指定したマネー)になります。
|
816
|
+
|
817
|
+
別マネーに対するポイント付与は別のtransactionとなります。 RefundTransaction で元のイベントをキャンセルしたときはポイント付与のtransactionもキャンセルされ、逆にポイント付与のtransactionをキャンセルしたときは連動して元のイベントがキャンセルされます。
|
818
|
+
|
819
|
+
```json
|
820
|
+
{
|
821
|
+
"type": "string",
|
822
|
+
"format": "uuid"
|
823
|
+
}
|
824
|
+
```
|
825
|
+
|
826
|
+
**`applicable_account_metadata`**
|
827
|
+
|
828
|
+
|
829
|
+
ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
830
|
+
メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
|
831
|
+
ウォレットのメタデータはCreateUserAccountやUpdateCustomerAccountで登録できます。
|
832
|
+
|
833
|
+
オプショナルパラメータtestによって比較方法を指定することができます。
|
834
|
+
デフォルトは equal で、その他に not-equalを指定可能です。
|
835
|
+
|
836
|
+
例1: 取引が行なわれたウォレットのメタデータに住所として東京が指定されているときのみ発火
|
837
|
+
|
838
|
+
```javascript
|
839
|
+
{
|
840
|
+
"key": "prefecture",
|
841
|
+
"value": "tokyo"
|
842
|
+
}
|
843
|
+
```
|
844
|
+
|
845
|
+
例2: 取引が行なわれたウォレットのメタデータに住所として東京以外が指定されているときのみ発火
|
846
|
+
|
847
|
+
```javascript
|
848
|
+
{
|
849
|
+
"key": "prefecture",
|
850
|
+
"value": "tokyo",
|
851
|
+
"test": "not-equal"
|
852
|
+
}
|
853
|
+
```
|
854
|
+
|
855
|
+
```json
|
856
|
+
{
|
857
|
+
"type": "object"
|
858
|
+
}
|
859
|
+
```
|
860
|
+
|
861
|
+
**`applicable_transaction_metadata`**
|
862
|
+
|
863
|
+
|
864
|
+
取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
865
|
+
メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
|
866
|
+
取引のメタデータはCreatePaymentTransactionやCreateExternalTransactionで登録できます。
|
867
|
+
|
868
|
+
オプショナルパラメータtestによって比較方法を指定することができます。
|
869
|
+
デフォルトは equal で、その他に not-equalを指定可能です。
|
870
|
+
|
871
|
+
例1: 取引のメタデータに会員ランクとしてbronzeが指定されているときのみ発火
|
872
|
+
|
873
|
+
```javascript
|
874
|
+
{
|
875
|
+
"key": "rank",
|
876
|
+
"value": "bronze"
|
877
|
+
}
|
878
|
+
```
|
879
|
+
|
880
|
+
例2: 取引のメタデータに会員ランクとしてbronze以外が指定されているときのみ発火
|
881
|
+
|
882
|
+
```javascript
|
883
|
+
{
|
884
|
+
"key": "rank",
|
885
|
+
"value": "bronze",
|
886
|
+
"test": "not-equal"
|
887
|
+
}
|
888
|
+
```
|
889
|
+
|
890
|
+
```json
|
891
|
+
{
|
892
|
+
"type": "object"
|
893
|
+
}
|
894
|
+
```
|
895
|
+
|
896
|
+
**`budget_caps_amount`**
|
897
|
+
|
898
|
+
|
899
|
+
キャンペーンの予算上限を指定します。デフォルトは未指定です。
|
900
|
+
|
901
|
+
このパラメータが指定されている場合、このキャンペーンの適用により付与されたポイント全体を定期的に集計し、その合計が上限を越えていた場合にはキャンペーンを無効にします。
|
902
|
+
一度この値を越えて無効となったキャンペーンを再度有効にすることは出来ません。
|
903
|
+
|
904
|
+
```json
|
905
|
+
{
|
906
|
+
"type": "integer",
|
907
|
+
"minimum": 1,
|
908
|
+
"maximum": 10000000000
|
909
|
+
}
|
910
|
+
```
|
911
|
+
|
912
|
+
|
913
|
+
|
914
|
+
成功したときは
|
915
|
+
[Campaign](./responses.md#campaign)
|
916
|
+
を返します
|
917
|
+
|
918
|
+
### Error Responses
|
919
|
+
|status|type|ja|en|
|
920
|
+
|---|---|---|---|
|
921
|
+
|400|invalid_parameters|項目が無効です|Invalid parameters|
|
922
|
+
|403|unpermitted_admin_user|この管理ユーザには権限がありません|Admin does not have permission|
|
923
|
+
|422|campaign_overlaps|同期間に開催されるキャンペーン間で優先度が重複してます|The campaign period overlaps under the same private-money / type / priority|
|
924
|
+
|422|shop_account_not_found||The shop account is not found|
|
925
|
+
|422|campaign_period_overlaps|同期間に開催されるキャンペーン間で優先度が重複してます|The campaign period overlaps under the same private-money / type / priority|
|
926
|
+
|422|campaign_invalid_period||Invalid campaign period starts_at later than ends_at|
|
927
|
+
|422|shop_user_not_found|店舗が見つかりません|The shop user is not found|
|
928
|
+
|422|private_money_not_found||Private money not found|
|
929
|
+
|
930
|
+
|
931
|
+
|
932
|
+
---
|
933
|
+
|
934
|
+
|
935
|
+
<a name="get-campaign"></a>
|
936
|
+
## GetCampaign: キャンペーンを取得する
|
937
|
+
IDを指定してキャンペーンを取得します。
|
938
|
+
発行体の組織マネージャ権限で、自組織が発行するマネーのキャンペーンについてのみ閲覧可能です。
|
939
|
+
閲覧権限がない場合は unpermitted_admin_user エラー(422)が返ります。
|
940
|
+
|
941
|
+
```RUBY
|
942
|
+
response = $client.send(Pokepay::Request::GetCampaign.new(
|
943
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # campaign_id: キャンペーンID
|
944
|
+
))
|
945
|
+
```
|
946
|
+
|
947
|
+
|
948
|
+
|
949
|
+
### Parameters
|
950
|
+
**`campaign_id`**
|
951
|
+
|
952
|
+
|
953
|
+
キャンペーンIDです。
|
954
|
+
|
955
|
+
指定したIDのキャンペーンを取得します。存在しないIDを指定した場合は404エラー(NotFound)が返ります。
|
956
|
+
|
957
|
+
```json
|
958
|
+
{
|
959
|
+
"type": "string",
|
960
|
+
"format": "uuid"
|
961
|
+
}
|
962
|
+
```
|
963
|
+
|
964
|
+
|
965
|
+
|
966
|
+
成功したときは
|
967
|
+
[Campaign](./responses.md#campaign)
|
968
|
+
を返します
|
969
|
+
|
970
|
+
|
971
|
+
|
972
|
+
---
|
973
|
+
|
974
|
+
|
975
|
+
<a name="update-campaign"></a>
|
976
|
+
## UpdateCampaign: ポイント付与キャンペーンを更新する
|
977
|
+
ポイント付与キャンペーンを更新します。
|
978
|
+
|
979
|
+
|
980
|
+
```RUBY
|
981
|
+
response = $client.send(Pokepay::Request::UpdateCampaign.new(
|
982
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # campaign_id: キャンペーンID
|
983
|
+
name: "kYeLppJ33CkMXXFMJbGPqbgq29Gzz59vVOvin5VZAtZIBDPoHNl5n64I544K0pgRwqKcwLRpyfhvSp3huvf9ISSZ1V5b6lHxDKXrcl2EVGtJV2Ntce9IqiVZ5m5eyekXLeKtBuImxNnX45R5ZNI", # キャンペーン名
|
984
|
+
starts_at: "2020-12-10T15:59:33.000000Z", # キャンペーン開始日時
|
985
|
+
ends_at: "2020-07-21T16:40:09.000000Z", # キャンペーン終了日時
|
986
|
+
priority: 7436, # キャンペーンの適用優先度
|
987
|
+
event: "topup", # イベント種別
|
988
|
+
description: "w9LWlkrqUcz43dBm26Or7FE7oxXwqyeP95WFsrDTZsTHaLMAx4xhJmPNb", # キャンペーンの説明文
|
989
|
+
status: "enabled", # キャンペーン作成時の状態
|
990
|
+
point_expires_at: "2022-08-19T17:52:52.000000Z", # ポイント有効期限(絶対日時指定)
|
991
|
+
point_expires_in_days: 8960, # ポイント有効期限(相対日数指定)
|
992
|
+
is_exclusive: false, # キャンペーンの重複設定
|
993
|
+
subject: "all", # ポイント付与の対象金額の種別
|
994
|
+
amount_based_point_rules: [{
|
995
|
+
"point_amount": 5,
|
996
|
+
"point_amount_unit": "percent",
|
997
|
+
"subject_more_than_or_equal": 1000,
|
998
|
+
"subject_less_than": 5000
|
999
|
+
}, {
|
1000
|
+
"point_amount": 5,
|
1001
|
+
"point_amount_unit": "percent",
|
1002
|
+
"subject_more_than_or_equal": 1000,
|
1003
|
+
"subject_less_than": 5000
|
1004
|
+
}], # 取引金額ベースのポイント付与ルール
|
1005
|
+
product_based_point_rules: [{
|
1006
|
+
"point_amount": 5,
|
1007
|
+
"point_amount_unit": "percent",
|
1008
|
+
"product_code": "4912345678904",
|
1009
|
+
"is_multiply_by_count": true,
|
1010
|
+
"required_count": 2
|
1011
|
+
}], # 商品情報ベースのポイント付与ルール
|
1012
|
+
blacklisted_product_rules: [{
|
1013
|
+
"product_code": "4912345678904",
|
1014
|
+
"classification_code": "c123"
|
1015
|
+
}, {
|
1016
|
+
"product_code": "4912345678904",
|
1017
|
+
"classification_code": "c123"
|
1018
|
+
}, {
|
1019
|
+
"product_code": "4912345678904",
|
1020
|
+
"classification_code": "c123"
|
1021
|
+
}], # 商品情報ベースのキャンペーンで除外対象にする商品リスト
|
1022
|
+
applicable_days_of_week: [6, 5, 4], # キャンペーンを適用する曜日 (複数指定)
|
1023
|
+
applicable_time_ranges: [{
|
1024
|
+
"from": "12:00",
|
1025
|
+
"to": "23:59"
|
1026
|
+
}, {
|
1027
|
+
"from": "12:00",
|
1028
|
+
"to": "23:59"
|
1029
|
+
}, {
|
1030
|
+
"from": "12:00",
|
1031
|
+
"to": "23:59"
|
1032
|
+
}], # キャンペーンを適用する時間帯 (複数指定)
|
1033
|
+
applicable_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象となる店舗IDのリスト
|
1034
|
+
blacklisted_shop_ids: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"], # キャンペーン適用対象外となる店舗IDのリスト(ブラックリスト方式)
|
1035
|
+
minimum_number_of_products: 4846, # キャンペーンを適用する1会計内の商品個数の下限
|
1036
|
+
minimum_number_of_amount: 692, # キャンペーンを適用する1会計内の商品総額の下限
|
1037
|
+
minimum_number_for_combination_purchase: 9839, # 複数種類の商品を同時購入するときの商品種別数の下限
|
1038
|
+
exist_in_each_product_groups: true, # 複数の商品グループにつき1種類以上の商品購入によって発火するキャンペーンの指定フラグ
|
1039
|
+
max_point_amount: 5024, # キャンペーンによって付与されるポイントの上限
|
1040
|
+
max_total_point_amount: 2550, # キャンペーンによって付与されるの1人当たりの累計ポイントの上限
|
1041
|
+
applicable_account_metadata: {
|
1042
|
+
"key": "sex",
|
1043
|
+
"value": "male"
|
1044
|
+
}, # ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
1045
|
+
applicable_transaction_metadata: {
|
1046
|
+
"key": "rank",
|
1047
|
+
"value": "bronze"
|
1048
|
+
}, # 取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
1049
|
+
budget_caps_amount: 992917404 # キャンペーン予算上限
|
1050
|
+
))
|
1051
|
+
```
|
1052
|
+
|
1053
|
+
|
1054
|
+
|
1055
|
+
### Parameters
|
1056
|
+
**`campaign_id`**
|
1057
|
+
|
1058
|
+
|
1059
|
+
キャンペーンIDです。
|
1060
|
+
|
1061
|
+
指定したIDのキャンペーンを更新します。存在しないIDを指定した場合は404エラー(NotFound)が返ります。
|
1062
|
+
|
1063
|
+
```json
|
1064
|
+
{
|
1065
|
+
"type": "string",
|
1066
|
+
"format": "uuid"
|
1067
|
+
}
|
1068
|
+
```
|
1069
|
+
|
1070
|
+
**`name`**
|
1071
|
+
|
1072
|
+
|
1073
|
+
キャンペーン名です。
|
1074
|
+
|
1075
|
+
ポイント付与によってできるチャージ取引の説明文に転記されます。取引説明文はエンドユーザーからも確認できます。
|
1076
|
+
|
1077
|
+
```json
|
1078
|
+
{
|
1079
|
+
"type": "string",
|
1080
|
+
"maxLength": 256
|
1081
|
+
}
|
1082
|
+
```
|
1083
|
+
|
1084
|
+
**`starts_at`**
|
1085
|
+
|
1086
|
+
|
1087
|
+
キャンペーン開始日時です。
|
1088
|
+
キャンペーン期間中のみポイントが付与されます。
|
1089
|
+
開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
|
1090
|
+
|
1091
|
+
```json
|
1092
|
+
{
|
1093
|
+
"type": "string",
|
1094
|
+
"format": "date-time"
|
1095
|
+
}
|
1096
|
+
```
|
1097
|
+
|
1098
|
+
**`ends_at`**
|
1099
|
+
|
1100
|
+
|
1101
|
+
キャンペーン終了日時です。
|
1102
|
+
キャンペーン期間中のみポイントが付与されます。
|
1103
|
+
開始日時よりも終了日時が前のときはcampaign_invalid_periodエラー(422)になります。
|
1104
|
+
|
1105
|
+
```json
|
1106
|
+
{
|
1107
|
+
"type": "string",
|
1108
|
+
"format": "date-time"
|
1109
|
+
}
|
1110
|
+
```
|
1111
|
+
|
1112
|
+
**`priority`**
|
1113
|
+
|
1114
|
+
|
1115
|
+
キャンペーンの適用優先度です。
|
1116
|
+
|
1117
|
+
優先度が大きいものから順に適用判定されていきます。
|
1118
|
+
キャンペーン期間が重なっている同一の優先度のキャンペーンが存在するとcampaign_period_overlapsエラー(422)になります。
|
1119
|
+
|
1120
|
+
```json
|
1121
|
+
{
|
1122
|
+
"type": "integer"
|
1123
|
+
}
|
1124
|
+
```
|
1125
|
+
|
1126
|
+
**`event`**
|
1127
|
+
|
1128
|
+
|
1129
|
+
キャンペーンのトリガーとなるイベントの種類を指定します。
|
1130
|
+
|
1131
|
+
以下のいずれかを指定できます。
|
1132
|
+
|
1133
|
+
1. topup
|
1134
|
+
店舗からエンドユーザーへの送金取引(チャージ)
|
1135
|
+
2. payment
|
1136
|
+
エンドユーザーから店舗への送金取引(支払い)
|
1137
|
+
3. external-transaction
|
1138
|
+
ポケペイ外の取引(現金決済など)
|
1139
|
+
|
1140
|
+
```json
|
1141
|
+
{
|
1142
|
+
"type": "string",
|
1143
|
+
"enum": [
|
1144
|
+
"topup",
|
1145
|
+
"payment",
|
1146
|
+
"external-transaction"
|
1147
|
+
]
|
1148
|
+
}
|
1149
|
+
```
|
1150
|
+
|
1151
|
+
**`description`**
|
1152
|
+
|
1153
|
+
|
1154
|
+
キャンペーンの内容を記載します。管理画面などでキャンペーンを管理するための説明文になります。
|
1155
|
+
|
1156
|
+
```json
|
1157
|
+
{
|
1158
|
+
"type": "string",
|
1159
|
+
"maxLength": 200
|
1160
|
+
}
|
1161
|
+
```
|
1162
|
+
|
1163
|
+
**`status`**
|
1164
|
+
|
1165
|
+
|
1166
|
+
キャンペーン作成時の状態を指定します。デフォルトではenabledです。
|
1167
|
+
|
1168
|
+
以下のいずれかを指定できます。
|
1169
|
+
|
1170
|
+
1. enabled
|
1171
|
+
有効
|
1172
|
+
2. disabled
|
1173
|
+
無効
|
1174
|
+
|
1175
|
+
```json
|
1176
|
+
{
|
1177
|
+
"type": "string",
|
1178
|
+
"enum": [
|
1179
|
+
"enabled",
|
1180
|
+
"disabled"
|
1181
|
+
]
|
1182
|
+
}
|
1183
|
+
```
|
1184
|
+
|
1185
|
+
**`point_expires_at`**
|
1186
|
+
|
1187
|
+
|
1188
|
+
キャンペーンによって付与されるポイントの有効期限を絶対日時で指定します。
|
1189
|
+
省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
|
1190
|
+
|
1191
|
+
```json
|
1192
|
+
{
|
1193
|
+
"type": "string",
|
1194
|
+
"format": "date-time"
|
1195
|
+
}
|
1196
|
+
```
|
1197
|
+
|
1198
|
+
**`point_expires_in_days`**
|
1199
|
+
|
1200
|
+
|
1201
|
+
キャンペーンによって付与されるポイントの有効期限を相対日数で指定します。
|
1202
|
+
省略した場合はマネーに設定された有効期限と同じものがポイントの有効期限となります。
|
1203
|
+
|
1204
|
+
```json
|
1205
|
+
{
|
1206
|
+
"type": "integer",
|
1207
|
+
"minimum": 1
|
1208
|
+
}
|
1209
|
+
```
|
1210
|
+
|
1211
|
+
**`is_exclusive`**
|
1212
|
+
|
1213
|
+
|
1214
|
+
キャンペーンの重ね掛けを行うかどうかのフラグです。
|
1215
|
+
|
1216
|
+
これにtrueを指定すると他のキャンペーンと同時適用されません。デフォルト値はtrueです。
|
1217
|
+
falseを指定すると次の優先度の重ね掛け可能なキャンペーンの適用判定に進みます。
|
1218
|
+
|
1219
|
+
```json
|
1220
|
+
{
|
1221
|
+
"type": "boolean"
|
1222
|
+
}
|
1223
|
+
```
|
1224
|
+
|
1225
|
+
**`subject`**
|
1226
|
+
|
1227
|
+
|
1228
|
+
ポイント付与額を計算する対象となる金額の種類を指定します。デフォルト値はallです。
|
1229
|
+
eventとしてexternal-transactionを指定した場合はポイントとマネーの区別がないためsubjectの指定に関わらず常にallとなります。
|
1230
|
+
|
1231
|
+
以下のいずれかを指定できます。
|
1232
|
+
|
1233
|
+
1. money
|
1234
|
+
moneyを指定すると決済額の中で「マネー」を使って支払った額を対象にします
|
1235
|
+
|
1236
|
+
2. all
|
1237
|
+
all を指定すると決済額全体を対象にします (「ポイント」での取引額を含む)
|
1238
|
+
注意: event を topup にしたときはポイントの付与に対しても適用されます
|
1239
|
+
|
1240
|
+
```json
|
1241
|
+
{
|
1242
|
+
"type": "string",
|
1243
|
+
"enum": [
|
1244
|
+
"money",
|
1245
|
+
"all"
|
1246
|
+
]
|
1247
|
+
}
|
1248
|
+
```
|
1249
|
+
|
1250
|
+
**`amount_based_point_rules`**
|
1251
|
+
|
1252
|
+
|
1253
|
+
金額をベースとしてポイント付与を行うルールを指定します。
|
1254
|
+
amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
|
1255
|
+
各ルールは一つのみ適用され、条件に重複があった場合は先に記載されたものが優先されます。
|
1256
|
+
|
1257
|
+
例:
|
1258
|
+
```javascript
|
1259
|
+
[
|
1260
|
+
// 1000円以上、5000円未満の決済には 5%
|
1261
|
+
{
|
1262
|
+
"point_amount": 5,
|
1263
|
+
"point_amount_unit": "percent",
|
1264
|
+
"subject_more_than_or_equal": 1000,
|
1265
|
+
"subject_less_than": 5000
|
1266
|
+
},
|
1267
|
+
// 5000円以上の決済には 10%
|
1268
|
+
{
|
1269
|
+
"point_amount": 10,
|
1270
|
+
"point_amount_unit": "percent",
|
1271
|
+
"subject_more_than_or_equal": 5000
|
1272
|
+
},
|
1273
|
+
]
|
1274
|
+
```
|
1275
|
+
|
1276
|
+
```json
|
1277
|
+
{
|
1278
|
+
"type": "array",
|
1279
|
+
"items": {
|
1280
|
+
"type": "object"
|
1281
|
+
}
|
1282
|
+
}
|
1283
|
+
```
|
1284
|
+
|
1285
|
+
**`product_based_point_rules`**
|
1286
|
+
|
1287
|
+
|
1288
|
+
商品情報をベースとしてポイント付与を行うルールを指定します。
|
1289
|
+
ルールは商品ごとに設定可能で、ルールの配列として指定します。
|
1290
|
+
amount_based_point_rules と product_based_point_rules はどちらか一方しか指定できません。
|
1291
|
+
event が payment か external-transaction の時のみ有効です。
|
1292
|
+
各ルールの順序は問わず、適用可能なものは全て適用されます。
|
1293
|
+
一つの決済の中で複数の商品がキャンペーン適用可能な場合はそれぞれの商品についてのルールが適用され、ポイント付与額はその合算になります。
|
1294
|
+
|
1295
|
+
例:
|
1296
|
+
```javascript
|
1297
|
+
[
|
1298
|
+
// 対象商品の購入額から5%ポイント付与。複数購入時は単価の5%が付与される。
|
1299
|
+
{
|
1300
|
+
"point_amount": 5,
|
1301
|
+
"point_amount_unit": "percent",
|
1302
|
+
"product_code": "4912345678904",
|
1303
|
+
},
|
1304
|
+
// 対象商品の購入額から5%ポイント付与。複数購入時は購入総額の5%が付与される。
|
1305
|
+
{
|
1306
|
+
"point_amount": 5,
|
1307
|
+
"point_amount_unit": "percent",
|
1308
|
+
"product_code": "4912345678904",
|
1309
|
+
"is_multiply_by_count": true,
|
1310
|
+
},
|
1311
|
+
// 対象商品を2つ以上購入したら500ポイント付与(固定額付与)
|
1312
|
+
{
|
1313
|
+
"point_amount": 500,
|
1314
|
+
"point_amount_unit": "absolute",
|
1315
|
+
"product_code": "4912345678904",
|
1316
|
+
"required_count": 2
|
1317
|
+
},
|
1318
|
+
// 書籍は10%ポイント付与
|
1319
|
+
// ※ISBNの形式はレジがポケペイに送信する形式に準じます
|
1320
|
+
{
|
1321
|
+
"point_amount": 10,
|
1322
|
+
"point_amount_unit": "percent",
|
1323
|
+
"product_code": "978-%",
|
1324
|
+
},
|
1325
|
+
// 一部の出版社の書籍は10%ポイント付与
|
1326
|
+
{
|
1327
|
+
"point_amount": 10,
|
1328
|
+
"point_amount_unit": "percent",
|
1329
|
+
"product_code": "978-4-01-%", // 旺文社
|
1330
|
+
}
|
1331
|
+
]
|
1332
|
+
```
|
1333
|
+
|
1334
|
+
```json
|
1335
|
+
{
|
1336
|
+
"type": "array",
|
1337
|
+
"items": {
|
1338
|
+
"type": "object"
|
1339
|
+
}
|
1340
|
+
}
|
1341
|
+
```
|
1342
|
+
|
1343
|
+
**`blacklisted_product_rules`**
|
1344
|
+
|
1345
|
+
|
1346
|
+
商品情報をベースとしてポイント付与を行う際に、事前に除外対象とする商品リストを指定します。
|
1347
|
+
除外対象の商品コード、または分類コードのパターンの配列として指定します。
|
1348
|
+
取引時には、まずここで指定した除外対象商品が除かれ、残った商品に対して `product_based_point_rules` のルール群が適用されます。
|
1349
|
+
|
1350
|
+
```json
|
1351
|
+
{
|
1352
|
+
"type": "array",
|
1353
|
+
"items": {
|
1354
|
+
"type": "object"
|
1355
|
+
}
|
1356
|
+
}
|
1357
|
+
```
|
1358
|
+
|
1359
|
+
**`applicable_days_of_week`**
|
1360
|
+
|
1361
|
+
|
1362
|
+
キャンペーンを適用する曜日を指定します (複数指定)。
|
1363
|
+
曜日は整数で表します。月曜を 0 とし、日曜を 6 とします。
|
1364
|
+
指定しなかった場合は全日を対象にします (曜日による適用条件なし)
|
1365
|
+
|
1366
|
+
```json
|
1367
|
+
{
|
1368
|
+
"type": "array",
|
1369
|
+
"items": {
|
1370
|
+
"type": "integer",
|
1371
|
+
"minimum": 0,
|
1372
|
+
"maximum": 6
|
1373
|
+
}
|
1374
|
+
}
|
1375
|
+
```
|
1376
|
+
|
1377
|
+
**`applicable_time_ranges`**
|
1378
|
+
|
1379
|
+
|
1380
|
+
キャンペーンを適用する時間帯を指定します (複数指定可)。
|
1381
|
+
時間帯はfromとtoからなるオブジェクトで指定します。
|
1382
|
+
fromとtoは両方必要です。
|
1383
|
+
|
1384
|
+
```json
|
1385
|
+
{
|
1386
|
+
"type": "array",
|
1387
|
+
"items": {
|
1388
|
+
"type": "object"
|
1389
|
+
}
|
1390
|
+
}
|
1391
|
+
```
|
1392
|
+
|
1393
|
+
**`applicable_shop_ids`**
|
1394
|
+
|
1395
|
+
|
1396
|
+
キャンペーンを適用する店舗IDを指定します (複数指定)。
|
1397
|
+
指定しなかった場合は全店舗が対象になります。
|
1398
|
+
|
1399
|
+
```json
|
1400
|
+
{
|
1401
|
+
"type": "array",
|
1402
|
+
"items": {
|
1403
|
+
"type": "string",
|
1404
|
+
"format": "uuid"
|
1405
|
+
}
|
1406
|
+
}
|
1407
|
+
```
|
1408
|
+
|
1409
|
+
**`blacklisted_shop_ids`**
|
1410
|
+
|
1411
|
+
|
1412
|
+
キャンペーンの適用対象外となる店舗IDをブラックリスト方式で指定します (複数指定可)。
|
1413
|
+
このパラメータが指定されている場合、blacklisted_shop_idsに含まれていない店舗全てがキャンペーンの適用対象になります。
|
1414
|
+
blacklisted_shop_idsとapplicable_shop_idsは同時には指定できません。ホワイトリスト方式を使うときはapplicable_shop_idsを指定してください。
|
1415
|
+
|
1416
|
+
```json
|
1417
|
+
{
|
1418
|
+
"type": "array",
|
1419
|
+
"items": {
|
1420
|
+
"type": "string",
|
1421
|
+
"format": "uuid"
|
1422
|
+
}
|
1423
|
+
}
|
1424
|
+
```
|
1425
|
+
|
1426
|
+
**`minimum_number_of_products`**
|
1427
|
+
|
1428
|
+
|
1429
|
+
このパラメータを指定すると、取引時の1会計内のルールに適合する商品個数がminimum_number_of_productsを超えたときにのみキャンペーンが発火するようになります。
|
1430
|
+
|
1431
|
+
```json
|
1432
|
+
{
|
1433
|
+
"type": "integer",
|
1434
|
+
"minimum": 1
|
1435
|
+
}
|
1436
|
+
```
|
1437
|
+
|
1438
|
+
**`minimum_number_of_amount`**
|
1439
|
+
|
1440
|
+
|
1441
|
+
このパラメータを指定すると、取引時の1会計内のルールに適合する商品総額がminimum_number_of_amountを超えたときにのみキャンペーンが発火するようになります。
|
1442
|
+
|
1443
|
+
```json
|
1444
|
+
{
|
1445
|
+
"type": "integer",
|
1446
|
+
"minimum": 1
|
1447
|
+
}
|
1448
|
+
```
|
1449
|
+
|
1450
|
+
**`minimum_number_for_combination_purchase`**
|
1451
|
+
|
1452
|
+
|
1453
|
+
複数種別の商品を同時購入したとき、同時購入キャンペーンの対象となる商品種別数の下限です。
|
1454
|
+
|
1455
|
+
このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定されている必要があります。
|
1456
|
+
例えば、A商品とB商品とC商品のうち、キャンペーンの発火のために2商品以上が同時購入される必要があるときは 2 を指定します。
|
1457
|
+
|
1458
|
+
例1: 商品A, Bが同時購入されたときに固定ポイント額(200ポイント)付与
|
1459
|
+
```javascript
|
1460
|
+
{
|
1461
|
+
minimum_number_for_combination_purchase: 2,
|
1462
|
+
product_based_point_rules: [
|
1463
|
+
{
|
1464
|
+
"point_amount": 100,
|
1465
|
+
"point_amount_unit": "absolute",
|
1466
|
+
"product_code": "商品Aの商品コード"
|
1467
|
+
},
|
1468
|
+
{
|
1469
|
+
"point_amount": 100,
|
1470
|
+
"point_amount_unit": "absolute",
|
1471
|
+
"product_code": "商品Bの商品コード"
|
1472
|
+
}
|
1473
|
+
]
|
1474
|
+
}
|
1475
|
+
```
|
1476
|
+
|
1477
|
+
例2: 商品A, Bが3個ずつ以上同時購入されたときに固定ポイント額(200ポイント)付与
|
1478
|
+
```javascript
|
1479
|
+
{
|
1480
|
+
minimum_number_for_combination_purchase: 2,
|
1481
|
+
product_based_point_rules: [
|
1482
|
+
{
|
1483
|
+
"point_amount": 100,
|
1484
|
+
"point_amount_unit": "absolute",
|
1485
|
+
"product_code": "商品Aの商品コード",
|
1486
|
+
"required_count": 3
|
1487
|
+
},
|
1488
|
+
{
|
1489
|
+
"point_amount": 100,
|
1490
|
+
"point_amount_unit": "absolute",
|
1491
|
+
"product_code": "商品Bの商品コード",
|
1492
|
+
"required_count": 3
|
1493
|
+
}
|
1494
|
+
]
|
1495
|
+
}
|
1496
|
+
```
|
1497
|
+
|
1498
|
+
例2: 商品A, B, Cのうち2商品以上が同時購入されたときに総額の10%ポイントが付与
|
1499
|
+
```javascript
|
1500
|
+
{
|
1501
|
+
minimum_number_for_combination_purchase: 2,
|
1502
|
+
product_based_point_rules: [
|
1503
|
+
{
|
1504
|
+
"point_amount": 10,
|
1505
|
+
"point_amount_unit": "percent",
|
1506
|
+
"product_code": "商品Aの商品コード",
|
1507
|
+
"is_multiply_by_count": true,
|
1508
|
+
},
|
1509
|
+
{
|
1510
|
+
"point_amount": 10,
|
1511
|
+
"point_amount_unit": "percent",
|
1512
|
+
"product_code": "商品Bの商品コード",
|
1513
|
+
"is_multiply_by_count": true,
|
1514
|
+
},
|
1515
|
+
{
|
1516
|
+
"point_amount": 10,
|
1517
|
+
"point_amount_unit": "percent",
|
1518
|
+
"product_code": "商品Cの商品コード",
|
1519
|
+
"is_multiply_by_count": true,
|
1520
|
+
}
|
1521
|
+
]
|
1522
|
+
}
|
1523
|
+
```
|
1524
|
+
|
1525
|
+
```json
|
1526
|
+
{
|
1527
|
+
"type": "integer",
|
1528
|
+
"minimum": 1
|
1529
|
+
}
|
1530
|
+
```
|
1531
|
+
|
1532
|
+
**`exist_in_each_product_groups`**
|
1533
|
+
|
1534
|
+
|
1535
|
+
複数の商品グループの各グループにつき1種類以上の商品が購入されることによって発火するキャンペーンであるときに真を指定します。デフォルトは偽です。
|
1536
|
+
|
1537
|
+
このパラメータを指定するときは product_based_point_rules で商品毎のルールが指定され、さらにその中でgroup_idが指定されている必要があります。group_idは正の整数です。
|
1538
|
+
exist_in_each_product_groupsが指定されているにも関わらず商品毎のルールでgroup_idが指定されていないものが含まれている場合はinvalid_parametersエラー(missing group_id, エラーコード400)が返ります。
|
1539
|
+
|
1540
|
+
例えば、商品グループA(商品コードa1, a2)、商品グループB(商品コードb1, b2)の2つの商品グループがあるとします。
|
1541
|
+
このとき、各商品グループからそれぞれ少なくとも1種類以上の商品が購入されることにより発火するキャンペーンに対するリクエストパラメータは以下のようなものになります。
|
1542
|
+
|
1543
|
+
```javascript
|
1544
|
+
{
|
1545
|
+
exist_in_each_product_groups: true,
|
1546
|
+
product_based_point_rules: [
|
1547
|
+
{
|
1548
|
+
"point_amount": 100,
|
1549
|
+
"point_amount_unit": "absolute",
|
1550
|
+
"product_code": "a1",
|
1551
|
+
"group_id": 1
|
1552
|
+
},
|
1553
|
+
{
|
1554
|
+
"point_amount": 100,
|
1555
|
+
"point_amount_unit": "absolute",
|
1556
|
+
"product_code": "a2",
|
1557
|
+
"group_id": 1
|
1558
|
+
},
|
1559
|
+
{
|
1560
|
+
"point_amount": 200,
|
1561
|
+
"point_amount_unit": "absolute",
|
1562
|
+
"product_code": "b1",
|
1563
|
+
"group_id": 2
|
1564
|
+
},
|
1565
|
+
{
|
1566
|
+
"point_amount": 200,
|
1567
|
+
"point_amount_unit": "absolute",
|
1568
|
+
"product_code": "b2",
|
1569
|
+
"group_id": 2
|
1570
|
+
}
|
1571
|
+
]
|
1572
|
+
}
|
1573
|
+
```
|
1574
|
+
|
1575
|
+
このキャンペーンが設定された状態で、商品a1、b1が同時に購入された場合、各商品に対する個別のルールが適用された上での総和がポイント付与値になります。つまり100 + 200=300がポイント付与値になります。商品a1、a2、 b1、b2が同時に購入された場合は100 + 100 + 200 + 200=600がポイント付与値になります。 商品a1、a2が同時に購入された場合は全商品グループから1種以上購入されるという条件を満たしていないためポイントは付与されません。
|
1576
|
+
|
1577
|
+
ポイント付与値を各商品毎のルールの総和ではなく固定値にしたい場合には、max_point_amountを指定します。
|
1578
|
+
例えば以下のようなリクエストパラメータ指定の場合を考えます。
|
1579
|
+
|
1580
|
+
```javascript
|
1581
|
+
{
|
1582
|
+
max_point_amount: 100,
|
1583
|
+
exist_in_each_product_groups: true,
|
1584
|
+
product_based_point_rules: [
|
1585
|
+
{
|
1586
|
+
"point_amount": 100,
|
1587
|
+
"point_amount_unit": "absolute",
|
1588
|
+
"product_code": "a1",
|
1589
|
+
"group_id": 1
|
1590
|
+
},
|
1591
|
+
{
|
1592
|
+
"point_amount": 100,
|
1593
|
+
"point_amount_unit": "absolute",
|
1594
|
+
"product_code": "a2",
|
1595
|
+
"group_id": 1
|
1596
|
+
},
|
1597
|
+
{
|
1598
|
+
"point_amount": 100,
|
1599
|
+
"point_amount_unit": "absolute",
|
1600
|
+
"product_code": "b1",
|
1601
|
+
"group_id": 2
|
1602
|
+
},
|
1603
|
+
{
|
1604
|
+
"point_amount": 100,
|
1605
|
+
"point_amount_unit": "absolute",
|
1606
|
+
"product_code": "b2",
|
1607
|
+
"group_id": 2
|
1608
|
+
}
|
1609
|
+
]
|
1610
|
+
}
|
1611
|
+
```
|
1612
|
+
|
1613
|
+
このキャンペーンが設定された状態で、商品a1、b1が同時に購入された場合、各商品に対する個別のルールが適用された上での総和がポイント付与値になりますが、付与値の上限が100ポイントになります。つまり100 + 200=300と計算されますが上限額の100ポイントが実際の付与値になります。商品a1、a2、 b1、b2が同時に購入された場合は100 + 100 + 200 + 200=600ですが上限額の100がポイント付与値になります。 商品a1、a2が同時に購入された場合は全商品グループから1種以上購入されるという条件を満たしていないためポイントは付与されません。
|
1614
|
+
|
1615
|
+
```json
|
1616
|
+
{
|
1617
|
+
"type": "boolean"
|
1618
|
+
}
|
1619
|
+
```
|
1620
|
+
|
1621
|
+
**`max_point_amount`**
|
1622
|
+
|
1623
|
+
|
1624
|
+
キャンペーンによって付与される1取引当たりのポイント数の上限を指定します。デフォルトは未指定です。
|
1625
|
+
|
1626
|
+
このパラメータが指定されている場合、amount_based_point_rules や product_based_point_rules によって計算されるポイント付与値がmax_point_amountを越えている場合、max_point_amountの値がポイント付与値となり、越えていない場合はその値がポイント付与値となります。
|
1627
|
+
|
1628
|
+
```json
|
1629
|
+
{
|
1630
|
+
"type": "integer",
|
1631
|
+
"minimum": 1
|
1632
|
+
}
|
1633
|
+
```
|
1634
|
+
|
1635
|
+
**`max_total_point_amount`**
|
1636
|
+
|
1637
|
+
|
1638
|
+
キャンペーンによって付与される1人当たりの累計ポイント数の上限を指定します。デフォルトは未指定です。
|
1639
|
+
|
1640
|
+
このパラメータが指定されている場合、各ユーザに対してそのキャンペーンによって過去付与されたポイントの累積値が記録されるようになります。
|
1641
|
+
累積ポイント数がmax_total_point_amountを超えない限りにおいてキャンペーンで算出されたポイントが付与されます。
|
1642
|
+
|
1643
|
+
```json
|
1644
|
+
{
|
1645
|
+
"type": "integer",
|
1646
|
+
"minimum": 1
|
1647
|
+
}
|
1648
|
+
```
|
1649
|
+
|
1650
|
+
**`applicable_account_metadata`**
|
1651
|
+
|
1652
|
+
|
1653
|
+
ウォレットに紐付くメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
1654
|
+
メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
|
1655
|
+
ウォレットのメタデータはCreateUserAccountやUpdateCustomerAccountで登録できます。
|
1656
|
+
|
1657
|
+
オプショナルパラメータtestによって比較方法を指定することができます。
|
1658
|
+
デフォルトは equal で、その他に not-equalを指定可能です。
|
1659
|
+
|
1660
|
+
例1: 取引が行なわれたウォレットのメタデータに住所として東京が指定されているときのみ発火
|
1661
|
+
|
1662
|
+
```javascript
|
1663
|
+
{
|
1664
|
+
"key": "prefecture",
|
1665
|
+
"value": "tokyo"
|
1666
|
+
}
|
1667
|
+
```
|
1668
|
+
|
1669
|
+
例2: 取引が行なわれたウォレットのメタデータに住所として東京以外が指定されているときのみ発火
|
1670
|
+
|
1671
|
+
```javascript
|
1672
|
+
{
|
1673
|
+
"key": "prefecture",
|
1674
|
+
"value": "tokyo",
|
1675
|
+
"test": "not-equal"
|
1676
|
+
}
|
1677
|
+
```
|
1678
|
+
|
1679
|
+
```json
|
1680
|
+
{
|
1681
|
+
"type": "object"
|
1682
|
+
}
|
1683
|
+
```
|
1684
|
+
|
1685
|
+
**`applicable_transaction_metadata`**
|
1686
|
+
|
1687
|
+
|
1688
|
+
取引時に指定するメタデータが特定の値を持つときにのみ発火するキャンペーンを登録します。
|
1689
|
+
メタデータの属性名 key とメタデータの値 value の組をオブジェクトとして指定します。
|
1690
|
+
取引のメタデータはCreatePaymentTransactionやCreateExternalTransactionで登録できます。
|
1691
|
+
|
1692
|
+
オプショナルパラメータtestによって比較方法を指定することができます。
|
1693
|
+
デフォルトは equal で、その他に not-equalを指定可能です。
|
1694
|
+
|
1695
|
+
例1: 取引のメタデータに会員ランクとしてbronzeが指定されているときのみ発火
|
1696
|
+
|
1697
|
+
```javascript
|
1698
|
+
{
|
1699
|
+
"key": "rank",
|
1700
|
+
"value": "bronze"
|
1701
|
+
}
|
1702
|
+
```
|
1703
|
+
|
1704
|
+
例2: 取引のメタデータに会員ランクとしてbronze以外が指定されているときのみ発火
|
1705
|
+
|
1706
|
+
```javascript
|
1707
|
+
{
|
1708
|
+
"key": "rank",
|
1709
|
+
"value": "bronze",
|
1710
|
+
"test": "not-equal"
|
1711
|
+
}
|
1712
|
+
```
|
1713
|
+
|
1714
|
+
```json
|
1715
|
+
{
|
1716
|
+
"type": "object"
|
1717
|
+
}
|
1718
|
+
```
|
1719
|
+
|
1720
|
+
**`budget_caps_amount`**
|
1721
|
+
|
1722
|
+
|
1723
|
+
キャンペーンの予算上限を指定します。
|
1724
|
+
|
1725
|
+
キャンペーン予算上限が設定されておらずこのパラメータに数値が指定されている場合、このキャンペーンの適用により付与されたポイント全体を定期的に集計し、その合計が上限を越えていた場合にはキャンペーンを無効にします。
|
1726
|
+
一度この値を越えて無効となったキャンペーンを再度有効にすることは出来ません。
|
1727
|
+
キャンペーン予算上限が設定されておらずこのパラメータにnullが指定されている場合、何も発生しない。
|
1728
|
+
キャンペーン予算上限が設定されておりこのパラメータにnullが指定された場合、キャンペーン予算上限は止まります。
|
1729
|
+
|
1730
|
+
```json
|
1731
|
+
{
|
1732
|
+
"type": "integer",
|
1733
|
+
"minimum": 1,
|
1734
|
+
"maximum": 10000000000
|
1735
|
+
}
|
1736
|
+
```
|
1737
|
+
|
1738
|
+
|
1739
|
+
|
1740
|
+
成功したときは
|
1741
|
+
[Campaign](./responses.md#campaign)
|
1742
|
+
を返します
|
1743
|
+
|
1744
|
+
|
1745
|
+
|
1746
|
+
---
|
1747
|
+
|
1748
|
+
|
1749
|
+
|