Amazon SP-API 在庫を登録するには?

ショコラ
ショコラ

Amazon SP-API 在庫を登録するには?

アマゾンに在庫を登録するには「Listings API」を使って登録します。
「Feeds APIからListings APIへの移行」という動画があるので「Feeds API」は昔の方式ですね。
(そういえば昔MWSで使ってたかも。。。Feedの場合、一覧を用意して、一気にドガッと渡す感じ)

在庫を登録するには、ListingsItems を PUT で呼び出します。

関連ドキュメントは
【Listings Items API v2021-08-01 リファレンス】
https://developer-docs.amazon.com/sp-api/docs/listings-items-api-v2021-08-01-reference

【出品アイテムAPI v2021-08-01ユースケースガイド】
https://developer-docs.amazon.com/sp-api/docs/listings-items-api-v2021-08-01-use-case-guide

【リスティング管理ワークフローの移行】
https://developer-docs.amazon.com/sp-api/docs/migrating-listings-management-workflows
↑画像の項目をみつけました。

もっさん先輩
もっさん先輩

在庫を登録するプログラムです。
プロダクトタイプ必要です。

#!/usr/local/bin/php
<?[php
// 在庫を登録する

$access_token   = file_get_contents('access_token');
$Host           = 'sellingpartnerapi-fe.amazon.com';
$sellerId       = '[出品者トークン]';
$sku            = '[SKU]';
$marketplaceIds = 'A1VC38T7YXB528';
$url = "https://{$Host}/listings/2021-08-01/items/{$sellerId}/{$sku}?marketplaceIds={$marketplaceIds}";
$productType = 'PRODUCT';
$start_at = date('Y-m-d').'T15:00:00.000Z';

$json =<<< JSON
{
  "requirements": "LISTING_OFFER_ONLY",
  "productType": "{$productType }",
  "attributes":
    {
      "merchant_suggested_asin":[
        {
          "value":"[ASIN]"
        }
      ],
      "purchasable_offer":[
        {
          "currency":"JPY",
          "start_at":{
              "value":"{$start_at}"
          },
          "our_price":[
            {
              "schedule":[{"value_with_tax":"[商品の販売価格]"}]
            }
          ]
        }
      ],
      "fulfillment_availability":[
        {
          "fulfillment_channel_code":"DEFAULT",
          "quantity":"[在庫数]"
        }
      ],
      "condition_type":[
        {
          "value":"[コンティション]"
        }
      ],
      "condition_note":[
        {
          "language_tag":"ja_JP",
          "value":"[コンティション説明]"
        }
      ],
      "main_offer_image_locator":[
        {
          "media_location":"[画像ファイルURL]"
        }
      ],
      "other_offer_image_locator_1":[
        {
          "media_location":"[画像ファイルURL]"
        }
      ]
    }
}
JSON;
mb_convert_variables('UTF-8','EUC-JP',$body);

$options = array(
  CURLOPT_CUSTOMREQUEST  => 'PUT',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_URL            => $url,
  CURLOPT_HTTPHEADER     => array(
    "Host: {$Host}",
    "x-amz-access-token: {$access_token}",
    'Content-Type: application/json; charset=utf-8',
  ),
  CURLOPT_POSTFIELDS     => $json,
  CURLOPT_SSL_VERIFYPEER => false,
  CURLOPT_SSL_VERIFYHOST => false,
);

$curl = curl_init();
curl_setopt_array($curl,$options);
$resp = curl_exec($curl);
curl_close($curl);
$json = json_decode($resp,true);

mb_convert_variables('EUC-JP','UTF-8',$json);
var_dump($json);

以上

Scroll to Top