一人ECやサイドビジネスなどで、これからAmazonでの販売を始めるという方に、あるいはすでにAmazonで販売を始めていて、日々の雑務に苦労している方に向けて、FBAでの在庫をSP-APIで自動で取得して、エクセルに書き出す方法をお伝えします。
目次
- FBA在庫取得などの面倒な作業はAPIで自動化
- 正確な利益計算をしよう
- スプレッドシートのサンプル
- FBAへのAPIリクエストのPythonサンプルコード
- 関連記事
FBA在庫取得などの面倒な作業はAPIで自動化できます
ネットショップの参入は簡単である反面、ある程度売るにはITリテラシーが求められます。最初から詳しくなくても、ネットショップ事業の成長に伴い「APIって何?」という認識のままでは、かなり厳しくなってくるでしょう。
APIというのは、システムの外からそのシステムのデータにアクセスできる機能のことです。
例えば、Amazonを運用をしていると、FBAに預けている商品在庫がどれくらいなのか把握したい場面があります。あなたが仮に、扱っている商品数が100程度だとしても、人間が100の商品の在庫を手作業で把握するのはかなり大変です。セラーセントラルにログインするのすら面倒でしょう。二段階認証もあります。
そこで、APIを使えば、セラーセントラルにログインすることなく、エクセルやスプレッドシートに商品名とFBAの実在庫を自動で書き出せます。ネットショップを楽しく運用し継続するには、日々の雑務は極力自動化することがとても大事で、そのためにAmazonもSP-APIという仕組みを用意しています。
Amazonに限らず、楽天もYahooショッピングにもShopifyにもカラーミー、メルカリなどにも当然のごとくAPIがあります。そのモールもカートシステムもAPIを必ず用意しているわけで、つまりネットショップ運用はAPIを使わないとビジネスにならないと言えるでしょう。
正確な利益計算をしよう
毎日でもいいですし、月末だけでもいいですが、倉庫の実在庫を把握し帳簿で管理すれば、試算表にできます。自分が抱えている在庫がどれくらいなのか把握することは、小売り業の継続に大事なことです。仕入れ値が時期によって異なると正確な利益計算を阻害する要因となり得ますが、先出し先入れ法や移動平均法、売上原価対立法などとFBAの在庫取得自動化を組み合わせることで、正確な利益計算ができるのです。
ビジネスの規模にもよりますが、在庫や利益計算はこまめに実施しましょう。1年に一度整理すればいいなどと考えていると、けっこう苦労します。かつての私がそうでした。
ちなみに、帳簿ソフトのfreeeやマネーフォワードにもAPIはあります。異なるシステムのAPIを組み合わせることで、自社固有の業務を自動化できます。
スプレッドシートのサンプル
とりあえずここでは、月ごとに商品ごとの数を正確に把握するという前提でのスプレッドシートのサンプルを用意しました。スプレッドシートに下記のAPIで在庫を書き出すことができます。毎日の在庫書き出しも自動化できます。
ここではサンプルとしてエクセルを用意しましたが、もちろんスプレッドシートでも書き出せますし、kintoneなどに共有もできます。APIを扱えると業務自動化の可能性はどんどん広がります。
FBAへのAPIリクエストのPythonサンプルコード
FBAへの在庫をAPIでリクエストするには、前提として大口契約とアプリの申請が必要です。まだ準備ができていない方はセラーセントラルでアプリ申請をしてSP-APIでEC業務を自動化しようを参考までにご覧ください。
FBAへのAPIリクエストのPythonサンプルコード
以下のようなコードでAPIが動きますが、パソコンが苦手な人が自分で動かせるはずもありません。得意な方は自分でPythonを動かしてもらうとして、苦手な人は、無料で動かせるサンプルを用意したのでご相談ください。実際に動いている画面をご覧頂けます。
こちらの問い合わせフォームより、「無料サンプル希望」の趣旨のことをお知らせください。
def get_fba_inventory(sku_list):
"""
FBAで在庫取得
"""
canonical_uri = '/fba/inventory/v1/summaries'
method = 'GET'
headers = {'x-amz-access-token': token,
'user-agent': user_agent,
'Content-Type': content_type,
'X-Amz-Date': amz_date,
'Authorization': authorization_header
}
#queryを作成
request_parameters_unencode = {
'details': False,
'granularityType':'Marketplace',
'granularityId': 'hogehoge',
'marketplaceIds': 'hogehoge',
'sellerSkus': 'hoge1,hoge2', #カンマ区切りのstr
}
endpoint = 'https://sellingpartnerapi-fe.amazon.com' + canonical_uri
request_url = endpoint + '?' + request_parameters
request_parameters = urllib.parse.urlencode(sorted(request_parameters_unencode.items()))
request_url = endpoint + '?' + request_parameters
response = requests.get(request_url, headers=headers)
return response




