Skip to content

Commit

Permalink
webhookに関するドキュメントを追加
Browse files Browse the repository at this point in the history
okazy committed Aug 7, 2020

Verified

This commit was signed with the committer’s verified signature.
matthewnessworthy Matthew Nessworthy
1 parent c2cb373 commit 7ba3340
Showing 2 changed files with 79 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/_pages/index.md
Original file line number Diff line number Diff line change
@@ -125,6 +125,10 @@ GraphQL の Mutation で以下のデータを更新可能です。
- [商品在庫の更新](mutation/product_stock)
- [出荷ステータスの更新](mutation/update_shipped)

商品/受注/会員情報の変更時(登録/更新/削除)に登録されたWebHookに対して変更を通知します。

- [WebHook による通知](webhook)

## 拡張機構

CustomizeディレクトリやプラグインでAPIを拡張できます。
75 changes: 75 additions & 0 deletions docs/_pages/webhook.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
layout: home
author_profile: true
permalink: /webhook
---

## WebHook による通知

商品/受注/会員情報の変更時(登録/更新/削除)に登録されたWebHookに対して変更を通知します。

### 通知リクエスト

以下のようなコマンドと同等の内容を送信します。

```
curl \
-X POST \
--header "Content-Type: application/json" \
--header 'X-ECCUBE-URL': 'https://eccube.exampel.com/' \
--header 'X-ECCUBE-Signature': '1e577a7deaa9df89edeaf060c1032326814f362a74525e2c534751e82a6f802e' \
'https://webhook.example.com' \
--data '{
"entity": "product",
"id": 13,
"action": "created"
},
{
"entity": "product",
"id": 14,
"action": "created"
}'
```

### 対象のEntity

以下のEntityの変更(登録/更新/削除)が対象です。

- product
- 商品 (Product)
- 商品規格 (ProductClass)
- 商品カテゴリ (ProductCategory)
- 商品タグ (ProductTag)
- 在庫数 (ProductStock)
- 商品税率設定 (TaxRule)
- 商品画像 (ProductImage)
- order
- 受注 (Order)
- 受注明細 (OrderItem)
- 出荷 (Shipping)
- メール履歴 (MailHistory)
- customer
- 会員 (Customer)
- お届け先 (CustomerAddress)
- お気に入り (CustomerFavoriteProduct)

#### 上記以外のEntityで発火させるカスタマイズ

プラグインやカスタマイズで上記以外の Entity で発火させたい場合は、 `Plugin\Api\Service\WebHookTrigger` インターフェイスを実装したクラスを定義します。

### 対象のアクション

- 登録: `created`
- 更新: `updated`
- 削除: `deleted`

### シークレット

入力された値をキーにしてペイロードをHMAC-SHA256により署名した値を `X-ECCUBE-Signature` ヘッダーに設定します。

## WebHook側の処理

通知を受け取る側の実装は以下のようにすることを推奨します。

- 素早くレスポンス(200 OK)を返す。受け取った通知をキューに登録して先にレスポンスを返すようにする。処理はレスポンスを返したあとに実行する。
- 空のレスポンスを返す。EC-CUBE側ではレスポンスボディの内容は無視します。

0 comments on commit 7ba3340

Please sign in to comment.