こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- PythonでAmazon SP-APIを呼び出す方法が知りたい。
- Amazon SP-APIのFinance機能を用いて、Amazonセラーセントラルにおける売上や会計情報を取得する方法が知りたい。
Amazon セリングパートナーAPI(SP-API)とは
Amazon SP-APIとは、商品リサーチ・出品・注文状況確認・配送・会計管理などの機能を多数取り扱う、業務効率化を実現するためのWebサービスです。
Amazon SP-APIでできること|取得できるデータ
Amazon SP-APIの活用により、Amazon上での商品販売の作業効率化が期待できます。
Amazon SP-APIには次のような機能が備わっています。
- Amazon商品データ(商品詳細・価格・在庫・売上ランキング)の取得
- 商品販売にかかる手数料計算
- 商品の出品状況の管理(商品登録・参照・更新・削除)
- 商品の注文状況の管理
- FBA配送に対する適格性(禁止・規制品)データの取得
- 会計(商品売上等)データの取得・レポーティング
- 顧客との問い合わせ・メッセージの管理
- 通知情報の管理
Amazon SP-APIの利用条件
Amazon SP-APIを利用するには、Amazon開発者として登録が必須です。
また、下記を満たした上で開発者登録する必要があります。
- Amazonセラーセントラルのアカウントを保有していること
- 上記アカウントステータスが「大口出品」であること
【参考】物販業務を効率化する代替手段
前述で述べた通り、Amazon SP-APIを利用するにはAmazonセラーセントラルの大口出品者としてをアカウントを登録する必要があります。
大口出品者になると月額4,900円の支払いが発生することに注意が必要です。
SP-APIを利用しない代替手段として、既存のツールを用いて物販自動化を検討する方法もあります。筆者おすすめの使い勝手が良い既存ツールも合わせて紹介します。
こんな方におすすめ!
- オンラインショッピングにおける販路を拡大したい
- 商品リサーチに時間をかけたくない
- 中国輸入やOEMに興味がある
- 競合他社を効率的に分析したい
- 自社ショップの商品売上等の時系列分析をやりたい
本記事の解説内容|SP-API Finance機能
本記事ではSelling Partner API for Finances
という機能の使い方について解説します。
これは、売り手のビジネスに関連する財務情報を取得するのに有効です。 ステートメント期間が終了するまで待たなくても、特定の注文、財務イベントグループ、または指定した日付範囲の財務イベントが取得可能です。
【事前準備】Python×Amazon SP-API
Amazon SP-APIを利用するには、以下のPythonパッケージをインストールする必要があります。
pip install python-amazon-sp-api
後述で紹介するプログラミングコードの実行には、API情報の紐付けが必須です。下記credentials
内に示すAPI情報を事前に入力し、Pythonスクリプト先頭にこのコードを貼り付けておきましょう。
credentials=dict(
refresh_token = 'リフレッシュトークン', # Amazon Seller開発者登録後に入手可能
lwa_app_id = 'クライアントID', # Amazon Seller開発者登録後に入手可能
lwa_client_secret = 'クライアント機密情報', # Amazon Seller開発者登録後に入手可能
aws_access_key = 'AWS アクセスキー', #(AWS IAMユーザーロール登録時に取得可能)
aws_secret_key = 'AWS シークレットキー', #(AWS IAMユーザーロール登録時に取得可能)
role_arn = 'AWS IAM ARN', #(AWS IAMユーザーロール登録時に取得可能)
)
【Python】Amazon セリングパートナーAPI for Finances
実際にAmazonセリングパートナーAPI for Finances機能の使い方について解説していきます。
財務イベントの全量取得
引数にOrder_id
を指定し以下を実行すると、財務イベントの全量を取得できます。
from sp_api.api import Finances
from sp_api.base.marketplaces import Marketplaces
"""
***************************
引数情報
***************************
"""
Order_id = 'xxx-xxx-xxxxxxx' # 3-7-7形式のAmazon定義の注文識別子
MRPP = 10 # 1ページに返される結果の最大数(最小:1、最大:100)
"""
***************************
メソッド実行
***************************
"""
# 商品検索用オブジェクト
obj = Finances(marketplace=Marketplaces.JP, # 対象のマーケットプレイスを指定
credentials=credentials) # API情報を指定
# 結果取得
result = obj.get_financial_events_for_order(order_id=Order_id,
MaxResultsPerPage=MRPP)()
# 出力
print(result)
# 出力イメージ
# {'FinancialEvents': {'ShipmentEventList': [],
# 'RefundEventList': [],
# 'GuaranteeClaimEventList': [],
# 'ChargebackEventList': [],
# 'PayWithAmazonEventList': [],
# 'ServiceProviderCreditEventList': [],
# 'RetrochargeEventList': [],
# 'RentalTransactionEventList': [],
# 'PerformanceBondRefundEventList': [],
# 'ProductAdsPaymentEventList': [],
# 'ServiceFeeEventList': [],
# 'SellerDealPaymentEventList': [],
# 'DebtRecoveryEventList': [],
# 'LoanServicingEventList': [],
# 'AdjustmentEventList': [],
# 'SAFETReimbursementEventList': [],
# 'SellerReviewEnrollmentPaymentEventList': [],
# 'FBALiquidationEventList': [],
# 'CouponPaymentEventList': [],
# 'ImagingServicesFeeEventList': [],
# 'TaxWithholdingEventList': [],
# 'NetworkComminglingTransactionEventList': [],
# 'AffordabilityExpenseEventList': [],
# 'AffordabilityExpenseReversalEventList': [],
# 'RemovalShipmentAdjustmentEventList': [],
# 'RemovalShipmentEventList': []}}
イベントグループ別に財務情報を取得
イベントグループIDevent_group_id
を指定し、特定の会計情報を取得したい場合、次のように記載します。
from sp_api.api import Finances
from sp_api.base.marketplaces import Marketplaces
"""
***************************
引数情報
***************************
"""
event_group_id = "xxx"
"""
***************************
メソッド実行
***************************
"""
# 商品検索用オブジェクト
obj = Finances(marketplace=Marketplaces.JP, # 対象のマーケットプレイスを指定
credentials=credentials) # API情報を指定
# 結果取得
result = obj.list_financial_events_by_group_id(event_group_id)()
# 結果出力
print(result)
【参考】Amazon SP-API その他機能の使い方
最後までご覧いただきありがとうございました。当サイトではAmazon物販の効率化に向けたAPI情報を多数配信しております。是非合わせてご覧下さい。
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら