Webは用いる人のリテラシーで決まる ウェブ運用と開発現場を経験したエンジニアのTIPS
TOP > BLOG > IT記事

Amazon SP-APIとPythonでFBA出荷指示を自動でする方法

早川朋孝 早川朋孝
EC専門のSE

Amazon、ヤフオクやメルカリなど複数モールで商品を販売している店舗が、商品の出荷をFBAに集約して運用しているというケースはあるでしょう。
この場合、Amazon以外で売れた場合、注文データをセラーセントラルからFBA出荷指示をしないといけません。

FBA出荷指示のたびに毎日CSVを手動で用意して、アップロードしていては時間がかかります。毎日この作業がある場合、かなり面倒です。

こんな定型作業もプログラムを使えばAmazon FBA出荷指示を自動でできます。面倒な作業はプログラムで自動化しましょう。ここではPythonを例にコードを紹介します。

なお認証はクリアしている前提の記事です。認証について詳しくは公式ドキュメントがおすすめです。サンプルのリクエストとレスポンスも記載があります。

言うまでもなく、FBA出荷指示をするには、FBA在庫があることが前提です。FBA出荷指示後は、伝票番号を取得して購入者に通知する必要がありますが、当然それもAPIで自動化できます。

    def create_fulfillment_order(self, order_id, items_info, address_info, ship_info):
        """ 
        FBAヘ出荷指示する
        """ 

        method = 'POST'
        canonical_uri = '/fba/outbound/2020-07-01/fulfillmentOrders'
        
        fba_order_id = 'hogehoge'  #自社生成の注文ID 最大40byte

        headers = {'x-amz-access-token': token,
                         'user-agent': user_agent,
                         'Content-Type': content_type,
                         'X-Amz-Date': amz_date,
                         'Authorization': authorization_header}

        request_parameters = { 
         'marketplaceId': MarketplaceIds, 
         'sellerFulfillmentOrderId': fba_order_id,  
         'displayableOrderId': fba_order_id, #同上
         'displayableOrderDate': '2024-04-01T00:00:00Z',
         'displayableOrderComment': 'hogehoge', #必要に応じて購入者へのメッセージ
         'shippingSpeedCategory': ship_info['ship_method'], #配送カテゴリ
         #以下配送先情報
         'destinationAddress':{
           'name': address_info['name'],
           'addressLine1': address_info['Line1'],  
           'addressLine2': address_info['Line2'], 
           'addressLine3': address_info['Line3'], 
           'stateOrRegion': address_info['prefecture'], 
           'postalCode': address_info['postal_code'],
           'countryCode': 'JP',
           'phone': address_info['phone']
          },  
         'items': [{'sellerSku': hoge, sellerFulfillmentOrderItemId: hoge, 'quantity':int }] #出荷する商品情報
        }   

        endpoint = 'https://sellingpartnerapi-fe.amazon.com' + canonical_uri
        request_url = endpoint + '?' + request_parameters

        request_parameters = json.dumps(request_parameters)
        response = requests.post(request_url, data=request_parameters, headers=headers)
        
        return response
×
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP