Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Marketplace API Update 対応が めちゃくちゃ大変だった件

Amazon Marketplace API Update 対応が めちゃくちゃ大変だった件

#burikaigi 2022/01/29
CData Software Japan Kazuya Sugimoto

CData Software Japan

January 29, 2022
Tweet

More Decks by CData Software Japan

Other Decks in Technology

Transcript

  1. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    1. About CData Software
    Amazon Marketplace API Update 対応が
    めちゃくちゃ大変だった件
    #burikaigi 2022/01/29
    CData Software Japan Kazuya Sugimoto

    View full-size slide

  2. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    CData Software Japan の API holic 担当
    年100種類以上のAPIを見たり触ったりしています。
    Twitter:@sugimomoto
    Facebook:sugimomoto
    Blog:http://kageura.hatenadiary.jp/
    About Speaker
    朝5時起きでブリを買ってきました

    View full-size slide

  3. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    1. About CData Software
    本日のお話

    View full-size slide

  4. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    業界最多級のデータソース
    Drivers for NoSQL, Big Data, & SaaS Connectivity
    CRMおよびマーケティング自動化
    会計システム
    コラボレーションおよびERP
    オンプレミスおよびクラウドDB
    ドキュメントおよびファイル形式
    ソーシャルネットワーキング
    ネットワーキングおよび認証
    電子商取引
    その他

    View full-size slide

  5. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    API アップデートへの追従がチョー大変

    View full-size slide

  6. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    その中でもとりわけエグかった
    「Amazon Marketplace API Update 」
    その対応で得た知見をシェア

    View full-size slide

  7. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    1. About CData Software
    Amazon Marketplace API とは?

    View full-size slide

  8. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    Amazon Marketplace の
    在庫・注文・商品・レポートなどが管理できるAPI

    View full-size slide

  9. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    1. About CData Software
    どんなAPI Updateだったの?

    View full-size slide

  10. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    API Update の変更ポイント
    1.APIデザイン
    2.フォーマット
    3.認証・認可
    4.スケジュール

    View full-size slide

  11. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    APIデザインが大幅刷新
    RPCライクなものからRESTベースに
    POST /Orders/2013-09-
    01/?AWSAccessKeyId=AKIAIKW5JHOTOOWSF43A&Ac
    tion=ListOrders&LastUpdatedAfter=1969-12-
    31T15%3A00%3A00Z&MWSAuthToken=amzn.mws.X
    XX&MarketplaceId.Id.1=A1VC38T7YXB528&SellerId=A
    1WD8M4EQL9XVH&Signature=XXXXX&SignatureMeth
    od=HmacSHA256&SignatureVersion=2&Timestamp=
    2020-10-02T00%3A27%3A20Z&Version=2013-09-01
    HTTP/1.1
    Host: mws.amazonservices.jp
    Accept: application/xml
    Content-Type: application/xml
    GET
    /orders/v0/orders?MarketplaceIds=A1VC38T7YXB5
    28&CreatedAfter=2021-08-09 HTTP/1.1
    Host: sellingpartnerapi-fe.amazon.com
    Accept: application/json
    Authorization:******
    x-amz-access-token: XXXXX
    x-amz-date: 20210809T073105Z
    x-amz-security-token: XXXXX
    MWS API Selling Partner API

    View full-size slide

  12. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    レスポンスフォーマットが
    XMLからJSONに変更
    xmlns="https://mws.amazonservices.com/Orders/2013
    -09-01">



    2018-08-
    17T14:59:59Z
    StandardOrder
    2018-08-
    15T09:59:55.270Z
    {
    "payload": {
    "Orders": [
    {
    "NumberOfItemsUnshipped": 0,
    "BuyerInfo": {},
    "IsReplacementOrder": "false",
    "IsSoldByAB": false,
    "AmazonOrderId": "503-9993250-1405404",
    "LatestShipDate": "2018-08-17T14:59:59Z",
    "EarliestShipDate": "2018-08-15T15:00:00Z
    MWS API Selling Partner API

    View full-size slide

  13. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    認証・認可方法が
    独自認証から独特な OAuth 2.0?に
    クライアント
    ユーザー
    リソース
    1. AWS IAMで AssumeRole を実施
    2. Amazon marketplace APIへのア
    クセス権を付与したAWS
    AccessKey・SecretKeyを取得
    3. 認可URLを生成
    4. 認証・認可処理をリクエスト・
    Codeを取得
    5. Codeと引き換えにAccess Token
    を取得
    6. Access TokenとAccessKey・
    SecretKeyを元にAWS Signature
    を生成して、リクエストを実施

    View full-size slide

  14. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    API仕様が大幅変更にも関わらず
    旧バージョンAPI終了予定が半年後
    https://sellercentral.amazon.co.jp/forums/t/topic/73349
    ※現在は2022年7月に延期

    View full-size slide

  15. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    1. About CData Software
    対応として工夫した点

    View full-size slide

  16. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    デザインディスカッションする前に
    必要なAPIをすべて試す
    ・開発チームに共有するために自分が実装
    できる粒度でAPIを一通り試しておく
    ・Postman Collectionで必要なAPIリ
    クエスト・設定・検証方法を共有
    ・検証した知見をドキュメント化して共有・つ
    いでに Blog にしてマーケティングコンテンツ
    に。開発チームもHappy
    https://www.cdatablog.jp/entry/amazonspapihowto01

    View full-size slide

  17. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    データモデルを極力変えない
    MWS API SP-API
    Column Name Type Column Name Type
    OrderItemId VARCHAR OrderItemId VARCHAR
    AmazonOrderId VARCHAR AmazonOrderId VARCHAR
    ASIN VARCHAR ASIN VARCHAR
    SellerSKU VARCHAR SellerSKU VARCHAR
    BuyerCustomizedInfoCustomizedURL
    VARCHAR BuyerCustomizedInfoCustomizedURL
    VARCHAR
    Title VARCHAR Title VARCHAR
    QuantityOrdered INT QuantityOrdered INT
    QuantityShipped INT QuantityShipped INT
    GrantedPointsNumber INT GrantedPointsNumber INT
    GrantedPointsMonetaryValueAmount
    DECIMAL GrantedPointsMonetaryValueAmount
    DECIMAL
    GrantedPointsMonetaryValueCurrencyCode
    VARCHAR GrantedPointsMonetaryValueCurrencyCode
    VARCHAR
    NumberOfItems INT NumberOfItems INT
    ItemPriceAmount DECIMAL ItemPriceAmount DECIMAL
    ItemPriceCurrencyCode VARCHAR ItemPriceCurrencyCode VARCHAR
    ShippingPriceAmount DECIMAL ShippingPriceAmount DECIMAL
    ShippingPriceCurrencyCode
    VARCHAR ShippingPriceCurrencyCode
    VARCHAR
    GiftWrapPriceAmount VARCHAR GiftWrapPriceAmount VARCHAR
    GiftWrapPriceCurrencyCode
    VARCHAR GiftWrapPriceCurrencyCode
    VARCHAR
    TaxCollectionName VARCHAR #N/A #N/A
    TaxCollectionValue VARCHAR #N/A #N/A
    ItemTaxAmount DECIMAL ItemTaxAmount DECIMAL
    ・内部の実装は異なるが、インターフェース
    レベルでは同じ仕様を保てるようにする
    ・移行のしやすさ、ビジネスロジックサイドへ
    の影響を最小化
    ・新しいAPIで存在しない項目、追加され
    た項目は致し方ないが

    View full-size slide

  18. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    前のデータモデル・ロジックも残す
    ・API順次廃止とはいえ、まだ未リリースの
    APIもあったため、スムーズな切り替えのた
    めデータモデル・ロジックを残存
    (メンテナンスコストの観点から最初は反
    発があった)

    View full-size slide

  19. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    1. About CData Software
    まとめ

    View full-size slide

  20. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    そんなこんなありながら、無事リリースしました
    https://www.cdatablog.jp/entry/amazonmarketplacespapiupdate

    View full-size slide

  21. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    不安定かつ多様な「API」と共存している

    View full-size slide

  22. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    不安定かつ多様なAPIと
    連携しなければいけないのが実情
    もし、この不安定さが直接的に
    ビジネスロジックに影響したら?
    APIへの追従・機能追加がアプリの
    スケールを阻害する可能性がある

    View full-size slide

  23. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    API Update 前提でビジネスと
    アーキテクチャを考えておくこと
    疎結合・インターフェースを意識
    ビジネスロジックへの影響を最小化するポイント
    こういうアップデートもあるんだということを
    ぜひ心に留めておいてください

    View full-size slide

  24. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    1. About CData Software
    最後に

    View full-size slide

  25. © 2022 CData Software Japan, LLC | www.cdata.com/jp
    CData Software Japan では
    業務拡大につき新しいメンバーを絶賛募集中!
    https://www.wantedly.com/companies/cdata2/projects
    ・テクニカルサポートエンジニア
    ・製品開発エンジニア
    ・インサイドセールス
    ・ローカライゼーション etc

    View full-size slide