店舗と商品の更新
弊社のマーケットプレイス統合パイプラインは、現在上限に達しています。加盟店オンボーディング用セルフサービスツール開発する当面の間は、新しいパートナーを受け付けておりません。統合の構築前にDoorDashにお問い合わせいただくには、 マーケットプレイス統合に関するお問い合わせ フォームにご入力ください。
DoorDash には、加盟店レベルでアクションを実装できる一連の API があります。これには、加盟店の無効化、商品と商品オプションの無効化、加盟店情報の取得、および加盟店メニュー情報の取得が含まれます。
店舗の有効化ステータスの変更
PUT /api/v1/stores/{merchant_supplied_id}/activation-status
DoorDash には、店舗を無効化できる Webhook があります。店舗を無効化する必要が生じた場合は、直ちに店舗を無効化できます。店舗のmerchant_supplied_id
を URL パラメータに含めてください。ペイロードは以下の形式である必要があります。詳細は、StoreActivationStatus モデルで確認してください。
{
"is_active": false,
"reason": string from list of accepted reasons for deactivation,
"notes": string detailing reason for deactivation
}
ペイロード内で提供しなければならない必須の理由パラメータがあります。この理由は弊社での内部記録のために必要とされ、加盟店の無効化に「最適な」実装がここで要求されます。このパラメータが以下のいずれかの理由に関連付けられていることを確認してください。
out_of_business
delete_store
payment_issue
operational_issues
store_self_disabled_in_their_POS_portal
store_pos_connectivity_issues
リクエストを送信すると、加盟店が正常に無効化されたことを確認するレスポンスコード 200 が届きます。
店舗を再度有効化するには、PUT リクエストをもう 1 つエンドポイントに送信します。店舗を再度有効化する際にペイロードに含まれる必要があるパラメータは、「"is_active": true
」だけです。
加盟店が正常に無効化されたことを確認するレスポンスコード 200 が届きます。加盟店を有効化する前に DoorDash 側がチェックする検証事項がいくつかあります。この場合、400 のレスポンスが届きます。400 のレスポンスでは試行しないでください。ここで試行しても問題が手動で修正されるまで失敗し続けます。これらのチェックを理由に有効化 Webhook が失敗する原因として以下が考えられます。
- 加盟店の銀行情報がない。
- 加盟店の銀行情報が無効である。
- 加盟店に有効な POS メニューがない。
商品の有効化ステータスの一括変更
PUT /api/v1/stores/{merchant_supplied_id}/item/activation-status
DoorDash には、特定の店舗で商品を在庫あり/在庫切れにできる Webhook があります。在庫切れの商品は、在庫ありに戻るまで DoorDash のウェブサイトから削除されます。メニュー更新を使用して商品を無効化するのではなく(この操作には面倒が伴います)、以下のコールを使用することをお勧めします。これを行うには、店舗のmerchant_supplied_id
を URL パラメータに入力してください。それに加えて、無効化する商品のmerchant_supplied_id
もリクエストペイロードに含めます。商品を無効化するには「false」、有効化するには「true」を入れます。ペイロードは、以下の形式になっている必要があります。詳細は、ItemActivation モデルで確認してください。
{
"merchant_supplied_id": “string”,
"is_active" : false
}
商品オプションの有効化ステータスの一括変更
PUT /api/v1/stores/{merchant_supplied_id}/item_option/activation-status
DoorDash には、「item_option
」を在庫から削除できる Webhook があります。これを行うには、店舗のmerchant_supplied_id
を URL パラメータに入力してください。それに加えて、無効化する商品オプションの「merchant_supplied_id
」もリクエストペイロードに含めます。ペイロードは、以下の形式である必要があります。詳細は、ItemOptionActivation モデルで確認してください。
{
"merchant_supplied_id": “string”,
"is_active" : false
}
商品と商品オプションの再有効化は、エンドポイントを介して行う必要があります。メニューを更新しても、商品が自動的に在庫ありになることはありません。商品がメニューに表示されるには、商品メニューステータスと商品 Webhook ステータスの両方が「true」になっている必要があります。商品メニューステータスまたは商品 Webhook ステータスのいずれかが「false」の場合、その商品はメニューに表示されません。リクエストとレスポンスの例はリファレンスでご覧いただけます。
注意すべきフィールド
is_suspended
: 商品を無効化するには「false」、有効化するには「true」を入れます。price
: 整数値。 $5.00 に設定するには「500」を送信します。
商品および「item_option」のレスポンスステータスコード
ステータスコード | 詳細 |
---|---|
200 | 成功 |
400 | 不正なリクエスト(いずれかの商品の更新に失敗した場合は、400 が返されます) |
401 | 認証エラー |
403 | この加盟店の変更は許可されていません |
404 | 加盟店が見つかりません |
429 | レート上限を超えました |
500 | 内部サーバーエラー |
各エンティティのレスポンスの詳細
レスポンス | 詳細 |
---|---|
成功 | |
見つかりません | 商品が見つかりません |
サーバーエラー | サーバー内部エラー |
ステータスコード 500 のレスポンスがある場合にのみ、リクエストを再試行してください。指数バックオフ 0.5 秒で 3 回再試行することをお勧めします。
加盟店情報の取得(GET)
GET api/v1/stores/{merchant_supplied_id}
パートナーは、このエンドポイントを使用して、その統合で設定されたロケーションにおける加盟店別の有効な情報を取得できます。このエンドポイントは、以下の情報の検証に役立ちます。
加盟店が現在使用している注文プロトコル(タブレット、POS など) 加盟店に設定された「お店へのご要望」の長さの上限 自分のお店が一時的または永久に無効化されているかどうかとその理由 この加盟店で自動注文リリース(AOR)が有効になっているかどうか
レスポンスオブジェクトについては、Swagger のドキュメントで詳しく説明されています。また、本ドキュメントの「リファレンス」セクションにも例があります。
店舗のメニュー詳細の取得(GET)
GET api/v1/stores/{merchant_supplied_id}/menu_details
パートナーは、このエンドポイントを使用して、その統合で設定されたロケーションにおけるメニュー別の有効な情報を取得できます。このエンドポイントによって、店舗でメニューが有効になっているかどうかに関係なく以下の情報を確認できるので、便利です。
- その店舗に関連付けられているメニュー ID
- メニューが現在有効になっているかどうか
- メニューの最終更新日
- メニューでの特別/通常の営業時間
- メニューが POS または別のメソッドで作成されたかどうか
- メニューのプレビュー用 URL
レスポンスオブジェクトについては、Swagger のドキュメントで詳しく説明されています。また、本ドキュメントの「リファレンス」セクションにも例があります。