---
title: Alexa配送通知機能の設定
url: ja/amazon-pay-checkout/ja-setting-up-delivery-notifications.html
---

<a href="../amazon-pay-api-v2/delivery-tracker.md#create-delivery-tracker" target="_blank" rel="noopener noreferrer">Create Delivery Tracker</a>APIを利用して配送追跡用の情報を提供することで、購入者が配送に関する通知を受け取ることができるようになります。この API はチャネル非依存です。つまり、Amazon Pay をどこで使用しても、Delivery Tracker API を使うことができます。

<!-- <div style="display:none" class="environmentSpecificKeys">
  <div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> publicKeyIdの先頭に環境名が<b>付与されていない</b>場合 (SANDBOX'や'LIVE'で始まっていない場合)、<a href='#' onclick='window.location.href=window.location.href.split("?")[0]+"?environmentSpecificKeys=false"' rel='noopener noreferrer'>こちらの手順</a>を確認してください。</div>
</div>
<div style="display:none" class="notEnvironmentSpecificKeys">
  <div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> publicKeyIdの先頭に環境名が付与されている場合 (例: SANDBOX-AFVX7ULWSGBZ5535PCUQOY7B)、<a href='#' onclick='window.location.href=window.location.href.split("?")[0]+"?environmentSpecificKeys=true"' rel='noopener noreferrer'>こちらの手順</a>を確認してください。</div>
</div> -->

* TOC
{:toc}
{::options toc_levels="3" /}

***

### Delivery Tracker API での購入者エクスペリエンス

こちらが購入者のエクスペリエンスになります。

購入者: *アレクサ, 通知を読んで。*

**配達中通知**
Alexa: *Amazon Pay から通知が１件あります。  [セラーセントラルに登録された店舗名] からの商品は [date]までに到着予定です。*
<iframe width="560" height="315" spellcheck="false" src="https://www.youtube.com/embed/CDmeVudaz1A" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

**配達済み通知**
Alexa: *Amazon Pay から通知が１件あります。 [セラーセントラルに登録された店舗名] からの配達が完了しました。*
<iframe width="560" height="315" spellcheck="false" src="https://www.youtube.com/embed/SlVluRNN8aw" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>


### Ecommerce plugins

ご自身でDelivery TrackerのAPIをインテグレーションする事もできますし、下記のお客様の地域に合わせてあらかじめ構築されたソリューションを利用することもできます。

<ul role="tablist" class="nav nav-tabs">
    <li class="nav-item"><a class="nav-link noExtIcon" href="#us_csps" data-toggle="tab">US</a></li>
    <li class="nav-item"><a class="nav-link noExtIcon" href="#eu_csps" data-toggle="tab">EU/UK</a></li>
    <li class="nav-item"><a class="active nav-link noExtIcon" href="#jp_csps" data-toggle="tab">JP</a></li>
</ul>
<div class="tab-content">
    <div role="tabpanel" class="tab-pane" id="us_csps">
<div>&nbsp;</div>
<table width="100%" border="1">
    <tbody>
        <tr id=''>
            <td id='' style='vertical-align: top; font-weight: bold; width: 30%;'>Ecommerce solution
                <br /></td>
            <td id='' style='vertical-align: top; font-weight: bold; width: 40%; text-align: center;'>Resources
                <br /></td>
            <td id='' style='vertical-align: top; font-weight: bold; width: 30%; text-align: center;'>Min. plugin version
                <br /></td>
        </tr>
        <tr>
	        <td>Magento 1</td>
	        <td><a href='https://github.com/amzn/amazon-payments-magento-2-plugin#amazon-pay-and-login-with-amazon-for-magento' target='_blank' rel='noopener noreferrer'>インストール手順とドキュメント</a></td>
	        <td>3.0.14</td>
        </tr>
        <tr>
	        <td>Magento 2</td>
	        <td><a href='https://github.com/amzn/amazon-pay-magento-2-alexa-plugin#extension-to-enable-amazon-pay-alexa-features-on-magento-2' target='_blank' rel='noopener noreferrer'>インストール手順とドキュメント</a></td>
	        <td>1.0.0</td>
	    </tr>
     
    </tbody>
</table>
    </div>
    <div role="tabpanel" class="tab-pane" id="eu_csps">
<div>&nbsp;</div>
<table width="100%" border="1">
    <tbody>
        <tr id=''>
            <td id='' style='vertical-align: top; font-weight: bold; width: 30%;'>Ecommerce solution
                <br /></td>
            <td id='' style='vertical-align: top; font-weight: bold; width: 40%; text-align: center;'>Resources
                <br /></td>
            <td id='' style='vertical-align: top; font-weight: bold; width: 30%; text-align: center;'>Min. plugin version
                <br /></td>
        </tr>
        <tr>
	        <td>Magento 1</td>
	        <td><a href='http://amazon.creativestyle.de/en/latest/overview.html' target='_blank' rel='noopener noreferrer'>インストール手順とドキュメント</a></td>
	        <td>3.0.14</td>
	    </tr>
	    <tr>
	        <td>Magento 2</td>
	        <td><a href='https://github.com/amzn/amazon-pay-magento-2-alexa-plugin#extension-to-enable-amazon-pay-alexa-features-on-magento-2' target='_blank' rel='noopener noreferrer'>インストール手順とドキュメント</a></td>
	        <td>1.0.0</td>
	    </tr>
        <tr>
	        <td>PrestaShop</td>
	        <td><a href='https://addons.prestashop.com/en/payment-card-wallet/21293-amzpayments.html' target='_blank' rel='noopener noreferrer'>インストール手順とドキュメント</a></td>
	        <td>2.3.2 (PrestaShop 1.6)<br />
	        3.3.0 (PrestaShop 1.7)</td>
        </tr>
	    <tr>
	        <td>JTL Shop 4</td>
	        <td><a href='https://www.solution360.de/Login-und-Bezahlen-mit-Amazon-JTL-Shop-Plugin' target='_blank' rel='noopener noreferrer'>インストール手順とドキュメント</a></td>
	        <td>1.0.0</td>
        </tr>
    </tbody>
</table>
    </div>
    <div role="tabpanel" class="tab-pane active" id="jp_csps">
<div>&nbsp;</div>
現在、未対応です
    </div>
</div>

### インテグレーションステップ

#### 1. Delivery Trackerの作成

Amazonの <code>chargePermissionId</code>, 配送会社の<code>carrierCode</code>と<code>trackingNumber</code>と共にCreate Delivery Trackerを呼び出し、Alexa配送通知機能を有効にします

#### リクエスト


<div style="display:none" class="environmentSpecificKeys">
<ul role="tablist" class="nav nav-tabs">
  <li class="nav-item"><a class="active nav-link" href="#button_widget_php" data-toggle="tab" aria-controls="button_widget_php" role="tab">PHP</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_java" data-toggle="tab" aria-controls="button_widget_java" role="tab">Java</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_net" data-toggle="tab" aria-controls="button_widget_net" role="tab">.NET</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_nodejs" data-toggle="tab" aria-controls="button_widget_nodejs" role="tab">NodeJS</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_other" data-toggle="tab" aria-controls="button_widget_other" role="tab">Other</a></li>
</ul>
<div class="tab-content">
  <div role="tabpanel" class="tab-pane active" id="button_widget_php">
    <pre><code
>&lt;?php
include 'vendor/autoload.php';

$amazonpay_config = array(
  'public_key_id' => 'MY_PUBLIC_KEY_ID',
  'private_key'   => 'keys/private.pem',
  'region'        => 'US',
  'sandbox'       => false
);
$payload = array(
  'amazonOrderReferenceId' => 'P00-0000000-0000000',
  'deliveryDetails' => array(array(
      'trackingNumber' => '1Z999AA10123456784',
      'carrierCode' => 'UPS'
  ))
);
try {
  $client = new Amazon\Pay\API\Client($amazonpay_config);
  $result = $client->deliveryTrackers($payload);
  if ($result['status'] === 200) {
      // success
      echo $result['response'] . "\n";
  } else {
    // check the error
    echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
  }
} catch (\Exception $e) {
  // handle the exception
  echo $e . "\n";
}
?>
</code></pre>
  </div>
  <div role="tabpanel" class="tab-pane" id="button_widget_java">
<pre><code>
AmazonPayResponse response = null;

JSONObject payload = new JSONObject();
JSONObject deliveryDetails = new JSONObject();
JSONArray deliveryDetailsArray = new JSONArray();
deliveryDetails.put("trackingNumber", "1Z999AA10123456784");
deliveryDetails.put("carrierCode", "UPS");
deliveryDetailsArray.add(deliveryDetails);
payload.put("amazonOrderReferenceId", "P00-0000000-0000000");
payload.put("deliveryDetails", deliveryDetailsArray);

try {
    response = client.deliveryTracker(payload);
} catch (AmazonPayClientException e) {
    e.printStackTrace();
}
</code></pre>
  </div>
  <div role="tabpanel" class="tab-pane" id="button_widget_net">
 <pre><code
>// prepare the request
var request = new DeliveryTrackerRequest
(
    objectId: "P00-0000000-0000000", // ChargePermissionID or OrderReferenceID
    objectIsChargePermission: true,  // true if above is ChargePermissionID, false otherwise 
    trackingNumber: "1Z999AA10123456784", 
    carrierCode: "UPS"
);
// generate the button signature
var result = client.SendDeliveryTrackingInformation(request);
// check if API call was successful
if (!result.Success)
{
    // do something, e.g. throw an error
}

return result;
  
  </code></pre>
  </div>
  <div role="tabpanel" class="tab-pane" id="button_widget_nodejs">
 <pre><code
>const fs = require('fs');
const Client = require('../src/client');

const config = {
    publicKeyId: 'ABC123DEF456XYZ',
    privateKey: fs.readFileSync('tst/private.pem'),
    region: 'us',
    sandbox: true
};

const payload = {
    amazonOrderReferenceId: 'P00-0000000-0000000',
    deliveryDetails: [{
        trackingNumber: '1Z999AA10123456789',
        carrierCode: 'UPS'
    }]
};

const testPayClient = new Client.AmazonPayClient(config);
const response = testPayClient.deliveryTrackers(payload);
</code></pre>
  </div>
   <div role="tabpanel" class="tab-pane" id="button_widget_other">

<pre><code>
POST /:version/deliveryTrackers HTTP/1.1
Host: pay-api.amazon.com
Accept: application/json
Authorization: AMZN-PAY-RSASSA-PSS PublicKeyId=f4fc06fc-c5a7-11e7-abc4-cec278b6b50a, SignedHeaders=content-type;x-amz-pay-date, Signature=4164128ec5d1b9da1700167ab2ccda8125f472c8bb9de447cebf5d741ee317c8       
X-Amz-Pay-Date: 20190305T024410Z
Content-type: application/json

{
    "amazonOrderReferenceId" : "P00-0000000-0000000",
    "deliveryDetails" : [{
    "trackingNumber" : "1Z999AA10123456784",
    "carrierCode" : "UPS"
  }]
}
</code></pre>
  </div>
</div>

</div>
<div style="display:none" class="notEnvironmentSpecificKeys">
<ul role="tablist" class="nav nav-tabs">
  <li class="nav-item"><a class="active nav-link" href="#button_widget_php_nesk" data-toggle="tab" aria-controls="button_widget_php" role="tab">PHP</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_java_nesk" data-toggle="tab" aria-controls="button_widget_java" role="tab">Java</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_net_nesk" data-toggle="tab" aria-controls="button_widget_net" role="tab">.NET</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_nodejs_nesk" data-toggle="tab" aria-controls="button_widget_nodejs" role="tab">NodeJS</a></li>
  <li class="nav-item"><a class="nav-link"  href="#button_widget_other_nesk" data-toggle="tab" aria-controls="button_widget_other" role="tab">Other</a></li>
</ul>
<div class="tab-content">
  <div role="tabpanel" class="tab-pane active" id="button_widget_php_nesk">
    <pre><code
>&lt;?php
include 'vendor/autoload.php';

$amazonpay_config = array(
  'public_key_id' => 'MY_PUBLIC_KEY_ID',
  'private_key'   => 'keys/private.pem',
  'region'        => 'US',
  'sandbox'       => false
);
$payload = array(
  'amazonOrderReferenceId' => 'P00-0000000-0000000',
  'deliveryDetails' => array(array(
      'trackingNumber' => '1Z999AA10123456784',
      'carrierCode' => 'UPS'
  ))
);
try {
  $client = new Amazon\Pay\API\Client($amazonpay_config);
  $result = $client->deliveryTrackers($payload);
  if ($result['status'] === 200) {
      // success
      echo $result['response'] . "\n";
  } else {
    // check the error
    echo 'status=' . $result['status'] . '; response=' . $result['response'] . "\n";
  }
} catch (\Exception $e) {
  // handle the exception
  echo $e . "\n";
}
?>
</code></pre>
  </div>
  <div role="tabpanel" class="tab-pane" id="button_widget_java_nesk">
<pre><code>
AmazonPayResponse response = null;

JSONObject payload = new JSONObject();
JSONObject deliveryDetails = new JSONObject();
JSONArray deliveryDetailsArray = new JSONArray();
deliveryDetails.put("trackingNumber", "1Z999AA10123456784");
deliveryDetails.put("carrierCode", "UPS");
deliveryDetailsArray.add(deliveryDetails);
payload.put("amazonOrderReferenceId", "P00-0000000-0000000");
payload.put("deliveryDetails", deliveryDetailsArray);

try {
    response = client.deliveryTracker(payload);
} catch (AmazonPayClientException e) {
    e.printStackTrace();
}
</code></pre>
  </div>
  <div role="tabpanel" class="tab-pane" id="button_widget_net_nesk">
 <pre><code
>// prepare the request
var request = new DeliveryTrackerRequest
(
    objectId: "P00-0000000-0000000", // ChargePermissionID or OrderReferenceID
    objectIsChargePermission: true,  // true if above is ChargePermissionID, false otherwise 
    trackingNumber: "1Z999AA10123456784", 
    carrierCode: "UPS"
);
// generate the button signature
var result = client.SendDeliveryTrackingInformation(request);
// check if API call was successful
if (!result.Success)
{
    // do something, e.g. throw an error
}

return result;
  
  </code></pre>
  </div>
  <div role="tabpanel" class="tab-pane" id="button_widget_nodejs_nesk">
 <pre><code
>const fs = require('fs');
const Client = require('../src/client');

const config = {
    publicKeyId: 'ABC123DEF456XYZ',
    privateKey: fs.readFileSync('tst/private.pem'),
    region: 'us',
    sandbox: true
};

const payload = {
    amazonOrderReferenceId: 'P00-0000000-0000000',
    deliveryDetails: [{
        trackingNumber: '1Z999AA10123456789',
        carrierCode: 'UPS'
    }]
};

const testPayClient = new Client.AmazonPayClient(config);
const response = testPayClient.deliveryTrackers(payload);
</code></pre>
  </div>
   <div role="tabpanel" class="tab-pane" id="button_widget_other_nesk">

<pre><code>
POST /live/v2/deliveryTrackers HTTP/1.1
Host: pay-api.amazon.com
Accept: application/json
Authorization: AMZN-PAY-RSASSA-PSS PublicKeyId=f4fc06fc-c5a7-11e7-abc4-cec278b6b50a, SignedHeaders=content-type;x-amz-pay-date, Signature=4164128ec5d1b9da1700167ab2ccda8125f472c8bb9de447cebf5d741ee317c8       
X-Amz-Pay-Date: 20190305T024410Z
Content-type: application/json

{
    "amazonOrderReferenceId" : "P00-0000000-0000000",
    "deliveryDetails" : [{
    "trackingNumber" : "1Z999AA10123456784",
    "carrierCode" : "UPS"
  }]
}
</code></pre>
  </div>
</div>

</div>

#### リクエストパラメータ

<table width="100%" border="1">
    <tbody>
        <tr id=''>
            <td id='s:ERL9CAO0JHD;ERL9CA2r6qD' style='vertical-align: top; font-weight: bold; width: 30%;' class='bold'>名前
                <br /></td>
            <td id='s:ERL9CAO0JHD;ERL9CAZAZrc' style='vertical-align: top; font-weight: bold; width: 20%;' class='bold'>ロケーション
                <br /></td>
            <td id='s:ERL9CAO0JHD;ERL9CAoRgfP' style='vertical-align: top; font-weight: bold; width: 50%;' class='bold'>説明
                <br /></td>
        </tr>
        <tr id=''>
            <td id='s:ERL9CAMViVA;ERL9CA2r6qD' style='vertical-align: top;'>chargePermissionId<br><b>(必須)</b><br><br>Type: string
                <br /></td>
            <td id='s:ERL9CAMViVA;ERL9CAZAZrc' style='vertical-align: top;'>Body
                <br /></td>
            <td id='s:ERL9CAMViVA;ERL9CAoRgfP' style='vertical-align: top;'>追跡される配送に紐付くCharge Permission ID
                <br /></td>
        </tr>
        <tr id=''>
            <td id='s:ERL9CAvm2Or;ERL9CAFccoh' style='vertical-align: top;'>carrierCode<br><b>(必須)</b><br><br>Type: string
                <br /></td>
            <td id='s:ERL9CAvm2Or;ERL9CAjQdu4' style='vertical-align: top;'>Body
                <br /></td>
            <td id='s:ERL9CAvm2Or;ERL9CAxmCJ7' style='vertical-align: top;'>商品をお届けする際に使用するcarrier code(配送会社のコード)<br><a href="https://d2bvfbw64wr20e.cloudfront.net/Alexa/Delivery+Notifications/amazon-pay-delivery-tracker-supported-carriers-v2.csv" target="_blank" rel="noopener noreferrer">配送会社リストのダウンロード</a>
                <br /></td>
        </tr>
        <tr id=''>
            <td id='s:ERL9CAVOprL;ERL9CA2r6qD' style='vertical-align: top;'>trackingNumber<br><b>(必須)</b><br><br>Type: string
                <br /></td>
            <td id='s:ERL9CAVOprL;ERL9CAZAZrc' style='vertical-align: top;'>Body
                <br /></td>
            <td id='s:ERL9CAVOprL;ERL9CAoRgfP' style='vertical-align: top;'>配送会社より提供されたtracking number(お問い合わせ番号・追跡番号)
                <br /></td>
        </tr>       
    </tbody>
</table>

#### レスポンス

```
{
    "amazonOrderReferenceId": "P00-0000000-0000000",
    "deliveryDetails": [{
        "trackingNumber": "1Z999AA10123456784",
        "carrierCode": "UPS"
    }]
}
```

#### 2. インテグレーションのテスト

エンドツーエンドのテストには、Alexa対応のデバイスが必要です。

**SANDBOX テスト**

SANDBOXでエンドツーエンドのテストを実行することで機能のインテグレーションを確認できますが、実際のAlexa配送通知は送信されません。以下の通りテストができます。

1. テストオーダーを作成し、<code>chargePermissionId</code>を保存します。 
2. <a href="../amazon-pay-api-v2/delivery-tracker.md#create-delivery-tracker" target="_blank" rel="noopener noreferrer">Create Delivery Tracker</a>を<code>chargePermissionId</code>、ランダムなtracking number(お問い合わせ番号・追跡番号)、carrier code(配送会社のコード)と共に呼び出します。配送会社コードは <a href="https://d2bvfbw64wr20e.cloudfront.net/Alexa/Delivery+Notifications/amazon-pay-delivery-tracker-supported-carriers-v2.csv" target="_blank" rel="noopener noreferrer">サポート対象の配送会社</a>のいずれかとなります。
3. APIが<a href="https://restfulapi.net/http-status-200-ok" target="_blank" rel="noopener noreferrer">HTTP 200 (OK) status</a>を返すことを確認します。



**本番環境テスト（オプション）**

SANDBOXテストが成功すれば、期待どおりにインテグレーションされたことを確認できますが、本番環境テストは、Alexa対応デバイスでの通知を含む完全なエクスペリエンスを確認する唯一の方法です。確認に辺り、以下の前提条件が必要となります。 

* Alexa対応デバイスは、本番環境の注文に使用しているAmazonアカウントに接続されている必要があります。
* Alexaアプリの「設定」→「通知」→「Amazon でお買い物」で、「配送中」と「配達済み」の設定を有効にする必要があります。US以外のお客様の場合、少なくとも一つ以上は Amazon 発送の商品を購入しないと、通知を受け取ることも、こちらの設定を見ることもできません。

注文が発送され、実際のtracking number(お問い合わせ番号・追跡番号)が生成されたら、<a href="../amazon-pay-api-v2/delivery-tracker.md#create-delivery-tracker" target="_blank" rel="noopener noreferrer">Create Delivery Tracker</a>を呼び出します。 注文が発送されたときと注文が配達されたときに、Alexa対応デバイスに通知が届きます。トラッキングコードは1回しか使用できないことに注意してください。







