ゆゆのExcelVBA覚書-副業から独立-

現役社内SEがExcel VBAを中心に覚書として書いていくブログです。

【商品情報取得ツール】説明書【Excel VBA】

プライスター登録特典第二弾「商品情報取得ツール」の説明書になります。

 

 

 

 動作環境 : Window10 Excel 2016

 

なにができるのか?

入力されたASINを元に、MWS APIを使用して商品情報を一括で取得します。

※Amazon MWS APIの開発者登録が必要です。

 

使い方

まずは各種設定

最初に各種設定で、MWS APIのキーを入力して登録してください。

f:id:yumeigunshi444:20200112165730p:plain

ASINシートの「各種設定」ボタンをクリック

f:id:yumeigunshi444:20200112163825p:plain

入力して「保存」

出品者ID、アクセスキー、秘密キーを入力して「保存」してください。

 

商品情報を取得したい商品を探す

Amazonのサイトで商品を探します。

 

商品情報を取得したい商品を見つけたら、

ASINシートのリストボックスへドラック&ドロップします。

f:id:yumeigunshi444:20200112172354p:plain

するとその商品のASINがリストに追加されます。

※スポンサープロダクトで表示されている商品は不可。

f:id:yumeigunshi444:20200112172429p:plain

 

こちらの方がASINを収集するスピードが早いと思います。

これを繰り返し、ASINが溜まったらリストボックス上部の「保存」ボタンを押します。

f:id:yumeigunshi444:20200112172541p:plain

f:id:yumeigunshi444:20200112172655p:plain

するとA列にASINが追加されます。(重複するASINは排除)

既にASINが存在する場合は、末尾に追加されます。

 

※もちろんA列に直接ASINを入力してもOK!

 

「実行」ボタンで商品情報を取得

f:id:yumeigunshi444:20200112173113p:plain

実行中は左下のステータスバーに進捗が表示される。


※実行中に「中断」ボタンで処理を中断できます。

 

f:id:yumeigunshi444:20200112173135p:plain

結果はResultシートに出力される。


FBA手数料の項目については下記の記事を参照。 

 

 

項目の「大きさ」について、
FBAで大型に該当する商品は"×"がつくようにしています。

(45x35x20cm 以上 または 9kg以上)

 

標準と大型で納品する倉庫が変わってしまうので、基本的に私は大型商品の仕入を避けています。

輸入を始めたばかりの人は物量が少ないので役立つと思います!

 

 

出力結果を使って利益が出るか計算し、仕入判断をします。

 

他の機能について説明

集めたASINの保存

ASINシートに「読込」「保存」「クリア」の3つのボタンがあります。

 

「保存」ボタンで、入力したASINの保存ができます。

(保存場所:/01_ASIN_LIST/asinList.csv)

保存したASINは「読込」ボタンで読み込むことができます。

「クリア」ボタンはA列をクリアします。

 

リストボックスから保存したASINは自動でファイルに保存されます。

 

 

ASINを集めてどんどん保存していきましょう。

儲かる商品を見つけるには、なるべく多くの商品をリサーチする必要があるので、対象ASINは多いほどよいです。

 

儲かる見込みのないASINはNGへ

商品をリストボックスへドラック&ドロップして保存していると、

仕入判断した時に無駄なASINが混ざっていることに気付いたりします。

 

・アメリカAmazonに存在しない商品だった。

・モノレートで全く売れていない商品だった。

・出品制限で出品できない商品だった。

・FBA納品できない商品だった。

・安すぎる or 高すぎる商品で仕入れる見込みのない商品だった。

 

などなどいざ仕入れようと思ってダメだったものってたくさんあります。

 

絶対仕入れないような商品の情報を取得する必要はありませんので、

そのようなASINは「NG」シートに記載していってください。

f:id:yumeigunshi444:20200112175214p:plain

A列にASINを記載。B列はメモ。

そして実行してみると・・・

f:id:yumeigunshi444:20200112175258p:plain

「NG商品は除く」チェックボックスにチェックがあるか確認。

f:id:yumeigunshi444:20200112175348p:plain

このように1行目に入力されていた、B01L9J68YWが処理対象外になります。

 

 

MWS APIは1時間に処理できるASINの数が決まっており、

無駄なASINまで商品情報を取得してしまうと実行時間が長くなってしまいます。

 

しかし、いちいちASINをファイルから削除するのも面倒です。

忘れた頃にまた同じ商品を、リストボックスに入れてしまう時もあると思います。

 

そこでNGシートに記載してもらうことで、2度と情報を取得することがないようにしました。

 

 

私は現在37,000個のASINが保存されていますが、

有効なASINは9,000個ほどしかなく、残りのASINはNGに入っています。

 

それくらい仕入れない商品の方が多いので、

ぜひ活用していただきたいです。

 

ASIN合わせ

 ASINが日本とアメリカで不一致の場合は、

この「ASIN合わせ」シートに記載してください。

f:id:yumeigunshi444:20200112180402p:plain

私自身がアメリカのMWS APIを取得できていないので、

アメリカ価格を取得することはできませんが、

いずれ実装するのでアメリカASINと突き合わせが必要になります。

 

f:id:yumeigunshi444:20200112180350p:plain

こちらはASIN合わせ作業の補助のために作成したシートです。

 

A列には日本ASINを記載。

C列にはResultシートの検索文字を記載。

E列でアメリカAmazonの検索結果に飛びます。

 

で、B列にASIN合わせの結果を記載。

 

「反映」ボタンを押すと、

先頭が「B」で始まる場合はASINと認識し、「ASIN合わせ」シートへ自動で移動します。

先頭が「B」以外で始まる場合はNGとして「NG」シートへ自動で移動します。

 

まとめ

某月額ツールと似たような感じになっています。

 

ずっとそれを使っていましたが、有料化を機にツールを自作し、使いにくいと思っていた部分を改良したものになります。

 

ASINをストックし、あなただけの商品リストを作り上げましょう。

 

 

関連記事

  

【Amazon欧米輸入】2019年12月の月利報告【副業】

年末商戦の結果について報告です!

 

副業の月利報告はこれで最後にしたいと思います。

 

 

2019年12月の結果

早速結果から。

 

売上:2,077,700円

原価:1,380,123円

Amazon手数料:288,080円

その他損失、返品等:37,602円

利益:371,895円

利益率:17%

 

目標だった本業の月給を大幅に超えて稼ぐことができました!

 

本業の月給越えどころか月利30万達成です。

40万も目前でしたが、これは資金の問題だと思っています。

キャッシュフローギリギリを攻めてこの結果なので、自分としては満足です。

 

 

正直ここまで利益出るとは全く思っておらず、自分でも驚いています。

去年の12月は月利5万でしたからね・・・

 

しかし去年の失敗があったからこそ、今年の結果だと思っています。

 

去年の年末商戦は初めてだったので、在庫不足、物流遅延、リサーチ能力不足で全く結果が出せませんでした。

 

せっかくなので私の年末商戦の失敗も書いていこうと思います。

 

 

年末商戦の失敗

在庫不足

12月はおもちゃ等の商品であれば、通常月の2, 3倍以上の個数が売れていきます。

 

今年はそれを見越して通常の2, 3倍の在庫を持っていましたが、それでも在庫不足になってしまった商品が多くあるくらいでした。

 

おもちゃ以外の商品でも通常月より売れていくので、全体的に在庫多めに持っておいていいくらいだと思いました。

 

物流遅延

Twitterを見ていると、今年は去年よりもFCの受領遅延が酷かったようですね。

 

私の納品した商品については受領遅延が発生しませんでしたが、MyUSから荷物を転送する際に、到着まで10日もかかってしまったりしました。

(普段であれば3~5日)

 

12月に入るくらいの時期ではFedex エコノミーは選択しないほうがいいですね。

 

余分にお金がかかってしまいますが、この時期は早さを優先したほうがいいと感じました。

 

 

さらに私は納品代行を利用しているので、この時期は納品までがどうしても遅くなってしまいます。

 

 

この物流遅延もあって在庫不足になりがちです。

 

11月から在庫積み始めてもいいくらいだと思いました。

 

 

リサーチ能力不足

これは去年の失敗なのですが、

「普段あまり売れていないけど、去年の12月を見るとちょこちょこ売れている商品」

を仕入れて失敗しました。

 

競合が大量に来るのが怖くて、あまり目立たないような商品を仕入れていたんですね。

 

例えば、『ミニオンズのクリスマスオーナメント』とか絶対売れそうな感じするじゃないですか?

 

そう思って仕入れたんですが、12月中に1個も売れませんでした・・・

 

 

なので今年は普段から普通に売れてる商品を、多めに仕入れました。

 

普段から大量に売れてる商品は大量に仕入れました。

 

こうするだけで大成功でした。

もっと仕入れたいのに、アメリカAmazon等にも在庫がないような状態でした。

 

 

結局普段から売れてる商品は、競合がいたとしてもすぐ売れていなくなるので、自分も高い値段で売ることができるんですよね。

 

1年の振り返り

f:id:yumeigunshi444:20200104202948j:plain

売上推移

7月に月利10万達成してから、12月まで順調に売上を増やしていくことができました。

 

私にとってこの1年は本当に大きな1年で、自分の力である程度稼げるようになった年になりました。

 

7月に結果出るまで本当に大変でしたが、副業やってて本当によかったと思っています。

 

 

稼げるようになるにつれて、会社の言いなりになる必要がなくなっていきます。

 

「終身雇用」、「年功序列」が崩壊したと国やトヨタすら認めているのに、まだまだ日本の会社では昔を引きずっているところが多いように思えます。

 

 

飲み会、忘年会、社員旅行には参加しなければならない

 

仕事がなくても、みんなが残業していたら残っていなければならない

 

始業30分前に出社し、掃除しなければならない。(もちろん無給)

 

 

私が勤めている会社でもこのようなローカルルールがあり、なにかと会社に無償で忠誠を示すことを求められます。

 

嫌なら辞めろ。

 

そんな会社です。

 

 

さっさと辞めたいところですが、辞めたら収入が0になってしまいます。

 

転職活動に数ヶ月はかかるでしょうし、いい会社に就職できるとも限りません。

 

さらに私には病気で働けない妻もいるので、嫌だからさっさと辞めるということができず、会社の言いなりになるしかありませんでした。

 

 

このままではこの先も

クビにすると脅されて都合よく利用され続ける」

と思った私は、この状況から逃れるために副業を始めました。

 

 

そして現在に至ります。

 

ここまで稼げるようになれば、すぐに会社を辞めても、次の転職先が決まる数ヶ月の間くらいならばどうとでもなります。

 

 

こう考えられるだけでもかなり精神的にはいいですね。

 

 

しかし、私が副業を始めてから会社の状況もかなり変わり、世間の流れに押されて「働き方改革」を取り入れました。

 

その結果、飲み会に参加しなくても何も言われないし、定時退社が推奨されるようになったし、朝の掃除はなくなりました。

 

 

入社時と比べてかなりホワイトな会社と化しましたが、私は副業で稼ぐ喜びを知ってしまいました。

 

会社でやらされる仕事なんかよりも、自分で考えて自分の力でやる仕事の方が何百倍も楽しいです。

 

副業では頑張ったら頑張っただけ利益として数字に現れます。それがそのまま自分の収入になります。

(いくらか税金として取られはしますが・・・)

 

私は少し前まで「仕事が楽しい」という人の気持ちが全く理解できませんでしたが、今では凄く分かります。

 

私はゲームが凄く好きで長時間プレイしてましたが、今ではゲームよりも副業とかやってる時間の方が長いですw

 

 

 

会社で頑張っても大して収入は上がりません。

 

私は副業で1年頑張った結果、最低でも月10万は稼げるようになりました。

 

会社で1年間頑張ったところで月給10万も上がるわけがなく、比べるまでもありません・・・笑

 

 

こうなってしまえば会社がどれだけホワイトになろうと、私は独立を目指して頑張っていきたいと思います。

 

そもそもサラリーマンは、定時退社でも無駄に会社に拘束される時間が長すぎます。

 

 

今年の抱負

今年からはAmazon輸入を伸ばしていく方向ではなく、Amazon以外で稼げるようになりたいと考えています。

 

Amazonで販売している方ならご存知のように、年々規制が厳しくなっていますし、手数料の値上げも行われています。

 

なにより真贋や知財でアカウント停止、売上金保留は致命的すぎます。

 

 

Amazonだけで独立するのはリスクしかないと思うので、今年はAmazon以外で収入源をもう一つ増やしたいと考えています。

 

それもAmazon輸入と同じように、外に1歩も出ずに完結するネットビジネスがやりたいですね。

 

 

今はebay輸出がいいかなと思って少しずつ取り組んでいます。

 

 

これにて最後の月利報告を終わりたいと思います。

 

今年もよろしくお願いします!

 

【MWS API】ASINからFBA手数料を取得しよう【Excel VBA】

商品情報取得の中で、一番需要があると思われるFBA出品手数料の取得について解説していきます。


FBA出品手数料は、下記のAmazon FBA料金シミュレーターでみなさん計算していると思います。
Fulfillment by Amazon Revenue Calculator
これは1商品ずつASINを入力して計算するもので、非常に手間がかかる作業です。


しかし、これから解説するGetMyFeesEstimateを使用すれば、
ワンクリックで複数のASINの手数料を取得することができます!


ただし、今までの商品情報取得のものより難しい内容になっています。

実際FBA手数料の取得に関する記事は、ネットで調べてもなかなかヒットしませんでした・・・

また、詳しく解説している記事もなかったので、頑張って詳しく解説したいと思います。

FBA出品手数料を取得する前に

FBA手数料を取得するためには、商品価格が必須です。
こちらの記事でまずは価格を取得しておきましょう。
www.yumeigunshi.com www.yumeigunshi.com

ASINからFBA出品手数料を取得するコード

以前の接続確認のExcelシートに下記を追加してください。
www.yumeigunshi.com

Excelシート

f:id:yumeigunshi444:20191230153206p:plain
ASINシート
f:id:yumeigunshi444:20191230153238p:plain
取得結果を貼り付ける「Result」シート

VBAコード

Option Explicit

Const MAX_COLUMNS As Integer = 8    '最大列数

Private Sub BTN_実行_Click()
    Dim xml As Object
    Dim dic As Object
    
    Dim lstRow As Long
    Dim asinRow As Long
    Dim resultRow As Long
    Dim result() As Variant
    Dim asinList As Collection
    
    Dim asin As String
    Dim price As String
    Dim shohinObj As Object
    Dim itemObj As Object
    Dim wkObj As Object
    Dim i As Integer, j As Integer
    Dim param As String
    Dim request As String
    Dim wk As Variant
    
    Dim asinSort() As String
    Dim strSort As String
    strSort = "1,10,11,12,13,14,15,16,17,18,19,2,20,3,4,5,6,7,8,9"
    asinSort = Split(strSort, ",")
    
    request = "FeesEstimateRequestList.FeesEstimateRequest."
    
    '最終行取得
    lstRow = Cells(Rows.Count, 1).End(xlUp).Row
    If lstRow = 1 Then
        MsgBox ("ASINが入力されていません。")
        Exit Sub
    End If
    
    '初期処理
    Set dic = CreateObject("Scripting.Dictionary")
    
    asinRow = 2     '開始行数
    
    'Result配列の宣言
    ReDim result(1 To lstRow - 1, 1 To MAX_COLUMNS)
    
    While asinRow <= lstRow
        Set asinList = New Collection
        With Sheets("ASIN")
            ' ASINを取り出す
            j = 0
            Do While j < 10
                ' 最終行の場合、処理終了
                If asinRow > lstRow Then
                    Exit Do
                End If
                ' 情報をセット
                asin = CStr(.Cells(asinRow, 1).Value)
                price = CStr(.Cells(asinRow, 2).Value)
                If price = "" Or IsNumeric(price) = False Then
                    price = "-"
                End If
                
                If dic.exists(asin) = False Then    '未処理のASINを処理
                    Set wk = New Collection
                    wk.Add asin, "ASIN"
                    wk.Add asinRow - 1, "ROWS"
                    asinList.Add wk, CStr(asinList.Count + 1)
                    
                    '処理済ASINを格納
                    dic.Add asin, asinRow
                    j = j + 1
                End If
                
                '配列初期化
                result(asinRow - 1, 1) = asin   'ASIN
                result(asinRow - 1, 2) = price  '価格
                result(asinRow - 1, 3) = "-"    '出品手数料
                result(asinRow - 1, 4) = "-"    '出品手数料(率)
                result(asinRow - 1, 5) = "-"    '成約料
                result(asinRow - 1, 6) = "-"    'FBA手数料
                result(asinRow - 1, 7) = "-"    'FBA手数料合計
                result(asinRow - 1, 8) = "-"    '例外
                ' 次行へ
                asinRow = asinRow + 1
            Loop
        End With
        
        param = ""
        ' ASINを1つずつ取り出す
        For i = 0 To UBound(asinSort) - 1
            j = 1
            For Each wk In asinList
                If j = CLng(asinSort(i)) Then
                    resultRow = wk("ROWS")
                    price = result(resultRow, 2)
                    
                    '価格未設定の場合
                    If price = "-" Then
                        price = "0"
                    End If
                    
                    param = param & "&" & request & j & ".IdType=ASIN" _
                            & "&" & request & j & ".IdValue=" & wk("ASIN") _
                            & "&" & request & j & ".Identifier=" & j _
                            & "&" & request & j & ".IsAmazonFulfilled=true" _
                            & "&" & request & j & ".MarketplaceId=A1VC38T7YXB528" _
                            & "&" & request & j & ".PriceToEstimateFees.ListingPrice.Amount=" & price _
                            & "&" & request & j & ".PriceToEstimateFees.ListingPrice.CurrencyCode=JPY"
                    Exit For
                End If
                j = j + 1
            Next
        Next
        
        ' リクエストを作成
        param = MakeParam(param)
        
        Set xml = getXMLPost("https://mws.amazonservices.jp/Products/2011-10-01", param)
        '情報取得
        Call getMyFeesEstimateForId(xml, result, asinList)
        
        '1秒のウェイト
        Sleep 1000
    Wend
   
    'Resultへセット
    With Sheets("Result")
        'クリア
        resultRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        .Range(.Range("A2").Address, .Cells(resultRow, MAX_COLUMNS).Address) = ""
        '貼り付け
        .Range(.Range("A2").Address, .Cells(lstRow, MAX_COLUMNS).Address) = result
    End With
    
    MsgBox "出力完了"
End Sub


'パラメータ作成
Function MakeParam(asinList As String) As String
    Dim param As String
    Dim paramToSign As String
    Dim sellerId As String
    Dim accessKey As String
    Dim seacretKey As String
    Dim endPoint As String
    Dim timeStamp As String
    Dim apiVersion As String
    Dim sign As String
    Dim url As String
    
    'パラメータの取得
    With Sheets("MWS")
        sellerId = .Range("B1").Value
        accessKey = .Range("B2").Value
        seacretKey = .Range("B3").Value
    End With
    endPoint = "mws.amazonservices.jp"
    timeStamp = Format(CDate(DateAdd("h", -9, Now)), "yyyy-mm-dd") & "T" & Format(CDate(DateAdd("h", -9, Time)), "hh%3AMM%3Ass") & "Z"
    apiVersion = "2011-10-01"
    
    ' リクエストを作成
    param = "AWSAccessKeyId=" & accessKey _
            & "&Action=GetMyFeesEstimate" _
            & asinList _
            & "&SellerId=" & sellerId _
            & "&SignatureMethod=HmacSHA256" _
            & "&SignatureVersion=2" _
            & "&Timestamp=" & timeStamp _
            & "&Version=" & apiVersion
            
    paramToSign = "POST" & vbLf & endPoint & vbLf & "/Products/2011-10-01" & vbLf & param
    sign = GetSign(seacretKey, paramToSign)
    
    param = param & "&Signature=" & sign

    MakeParam = param
End Function

'結果XMLから最低価格を取得
Sub getMyFeesEstimateForId(xml As Object, result() As Variant, asinList As Collection)
    Dim getProObj As Object
    Dim shohinObj As Object
    Dim fbaObj As Object
    Dim wkObj As Object
    Dim strAsin As String
    Dim price As String
    Dim fbaGokei As Double
    Dim hanbaiFee As Double
    Dim hanbaiFeeRitsu As Double
    Dim kihonFee As Double
    Dim haisoFee As Double
    Dim feeType As String
    Dim reigai As String
    
    Dim resultRow As Long
    Dim num As Double
    Dim wk As Collection
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    
    
    Set getProObj = xml.SelectNodes("GetMyFeesEstimateResponse/GetMyFeesEstimateResult/FeesEstimateResultList/FeesEstimateResult")

    ' 取得したProductオブジェクトを順次取り出し
    For k = 0 To getProObj.length - 1
        '初期化
        strAsin = ""
        fbaGokei = 0
        hanbaiFee = 0
        hanbaiFeeRitsu = 0
        kihonFee = 0
        haisoFee = 0
        feeType = ""
        reigai = "-"
        '行数取得
        Set wk = asinList(CStr(k + 1))
        strAsin = wk("ASIN")
        resultRow = wk("ROWS")
        
        price = result(resultRow, 2)
        
        'ASIN 取得
        '商品情報
        Set shohinObj = getProObj(k).SelectNodes("FeesEstimateIdentifier")
        If shohinObj.length <> 0 Then
            ' ASINを取得
            Set wkObj = shohinObj(0).SelectSingleNode("IdValue")
            If Not wkObj Is Nothing Then
                strAsin = wkObj.text
            End If
        End If
        
        ' ASINが取得できていれば処理を行う。
        If strAsin <> "" And price <> "-" Then
            
            'エラーの場合
            Set wkObj = getProObj(k).SelectNodes("Error/Message")
            If wkObj.length <> 0 Then
                reigai = wkObj(0).text
            Else
                ' FBA手数料合計を取得
                Set wkObj = getProObj(k).SelectSingleNode("FeesEstimate/TotalFeesEstimate/Amount")
                If Not wkObj Is Nothing Then
                    fbaGokei = wkObj.text
                End If
                
                '手数料の内訳を取得
                Set fbaObj = getProObj(k).SelectNodes("FeesEstimate/FeeDetailList/FeeDetail")
                If fbaObj.length > 0 Then
                    For i = 0 To fbaObj.length - 1
                        '手数料取得
                        Set wkObj = fbaObj(i).SelectSingleNode("FinalFee/Amount")
                        If Not wkObj Is Nothing Then
                            num = wkObj.text
                        End If
                        '手数料タイプを取得
                        Set wkObj = fbaObj(i).SelectSingleNode("FeeType")
                        If Not wkObj Is Nothing Then
                            feeType = wkObj.text
                        End If
                        
                        '金額のセット
                        If feeType = "ReferralFee" Then      '販売手数料
                            hanbaiFee = hanbaiFee + num
                        ElseIf feeType = "VariableClosingFee" Or feeType = "PerItemFee" Then    'カテゴリー成約料 or 基本成約料
                            kihonFee = kihonFee + num
                        ElseIf feeType = "FBAFees" Then             '配送手数料
                            haisoFee = num
                        End If
                        
                    Next i
                    
                    '手数料(%)を算出
                    If hanbaiFee > 0 Then
                        hanbaiFeeRitsu = hanbaiFee / CLng(price)
                        hanbaiFeeRitsu = Round(hanbaiFeeRitsu, 2)
                    End If
                End If
            End If
            
            '情報のセット
            If fbaGokei <> 0 Then
                result(resultRow, 3) = Round(hanbaiFee)
                result(resultRow, 4) = hanbaiFeeRitsu
                result(resultRow, 5) = Round(kihonFee, 0)
                result(resultRow, 6) = Round(haisoFee, 0)
                result(resultRow, 7) = Round(fbaGokei, 0)
            End If
            result(resultRow, 8) = reigai
        End If
    Next
   
End Sub

実行結果

f:id:yumeigunshi444:20191230153358p:plain

FBA手数料について

コードの解説の前にFBA手数料について説明します。

FBA料金シミュレーターに1個目のASINを入力して計算してみます。

f:id:yumeigunshi444:20191230153955p:plain
B00KBROZXA

ここで見るべきは「FBA発送の場合」の出品手数料,FBA(Amazonから出荷)手数料の2つになります。
この2つの手数料の合計がFBA手数料となります。

ここでさらに手数料の内訳をみてみましょう。

出品手数料の内訳

f:id:yumeigunshi444:20191230154334p:plain 出品手数料の内訳には、"販売手数料"と"カテゴリー別成約料"があります。
これはResultシートのC~E列になります。

それぞれ何なのかAmazonから引用させていただくと、

販売手数料の支払いは、各商品の売上毎に発生します。
販売手数料は商品が属するカテゴリーによって異なり、各商品の価格から割合で計算されます。
カテゴリーによっては、最低販売手数料があります。


カテゴリー別成約料(VCF)は各メディア商品に適用されます。
VCFの支払いはすべての出品者が対象になります。


販売手数料は、「各商品の価格から割合で計算される」とあるので、
販売手数料率を算出しています。
価格によって手数料が変動してしまうので、
販売手数料率を出すことによって再計算しやすくなります。


カテゴリー別成約料はメディア商品(CD, DVD等)のみに課せられる手数料です。


2つ目のASINのB01L9J68YWはおもちゃなので、0円になっていますね。


FBA手数料の内訳

f:id:yumeigunshi444:20191230155654p:plain
FBA(Amazonから出荷)手数料の内訳
FBA手数料の内訳は、"月額保管手数料","配送代行手数料"となっています。
これはResultシートのF列に該当します。


ここで注意点なのですが、MWS APIでは月額保管手数料を取得することができません。


なのでFBA料金シミュレーターの手数料合計と、
MWS APIで取得した手数料合計は月額保管手数料分だけずれてしまいます。

F列に260円でなく257円と出力されているのはそれが理由です。


FBA手数料の説明だけでもまあまあ複雑ですよね・・・
それではこの知識を前提として、
FBA手数料の取得について解説していきます。

GetMyFeesEstimateの解説

今回はリクエストパラメーター、レスポンスで返ってくる情報量も多いので、頑張っていきましょう・・・!

スロットリング

f:id:yumeigunshi444:20191230161120p:plain カート価格と同様です。
1度のリクエストで10個のASINを指定しましょう。

リクエストパラメーター

f:id:yumeigunshi444:20191230161444p:plain 今までリクエストパラメーターは多くても2つでしたが、
FBA手数料を取得する場合は6つも必要になります。


内容的には難しくないので、1つ1つ解説していきますね。


リクエストを作成しているコード

    param = param & "&" & request & j & ".IdType=ASIN" _
            & "&" & request & j & ".IdValue=" & wk("ASIN") _
            & "&" & request & j & ".Identifier=" & j _
            & "&" & request & j & ".IsAmazonFulfilled=true" _
            & "&" & request & j & ".MarketplaceId=A1VC38T7YXB528" _
            & "&" & request & j & ".PriceToEstimateFees.ListingPrice.Amount=" & price _
            & "&" & request & j & ".PriceToEstimateFees.ListingPrice.CurrencyCode=JPY"

まずは指定している値について、上から順番に説明します。

IdType:ASINかSKUどちらを指定するか。今回はASINで指定したいので"ASIN"。
IdValue:IdTypeで指定した形式で値を指定する。ASINを指定しているので”B00KBROZXA”等を入れます。
Identifier:リスト内で被らなければOK。よく分からないので私は1~10を入れています。
IsAmazonFulfilled:FBA出品かどうか。FBAを利用している場合、"true"を入れます。
MarketPlaceId:これは今までと同じパラメーターですね。固定で"A1VC38T7YXB528"を入れます。
PriceToEstimateFees.ListingPrice.Amount:商品価格を指定します。
PriceToEstimateFees.ListingPrice.CurrencyCode:国を指定します。日本なので"JPY"を指定。


VBAコードだと変数を結合していて分かりにくいので、
文字列にするとこうなります。


&FeesEstimateRequestList.FeesEstimateRequest.1.IdType=ASIN
&FeesEstimateRequestList.FeesEstimateRequest.1.IdValue=B00KBROZXA
&FeesEstimateRequestList.FeesEstimateRequest.1.Identifier=1
&FeesEstimateRequestList.FeesEstimateRequest.1.IsAmazonFulfilled=true
&FeesEstimateRequestList.FeesEstimateRequest.1.MarketplaceId=A1VC38T7YXB528
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.Amount=3003
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.CurrencyCode=JPY

これで1つのリクエストパラメーターになります。
2つめのASINの場合、"FeesEstimateRequest.1"の1の部分を2にする必要があります。

これを最大10回繰り返し、10個のASINを1つのリクエストで送信します。

VBAコード

それでは手数料を取得していきます。

いつものようにB00KBROZXAの結果をスクラッチパッドで表示し、解説していきます。
f:id:yumeigunshi444:20191230190358p:plain いつもより長いですね・・・w

あと取得の仕方もいつもと少し違います。


FeeDetailのタグが複数あり、それぞれの手数料が出力されています。
何の手数料なのかはFeeTypeで判断します。


しかし肝心のFeeTypeの内容が公式ドキュメントにすら載ってなかったので、
下記表を参考にしてください。

FeeType 手数料
ReferralFee 販売手数料
VariableClosingFee カテゴリー成約料
PerItemFee 基本成約料
FBAFees FBA手数料の合計
FBAWeightHandling + FBAPickAndPack
FBAPickAndPack 配送代行手数料
FBAWeightHandling 使用しない(常に0)

ちなみに、基本成約料は小口出品のみ課される手数料だと思われます。
大口の人は常に0円だと思います。


この表とスクラッチパッドを見比べてみると・・・
ReferralFee(販売手数料)が450円。
VariableClosingFee(カテゴリー成約料)が140円。
FBAPickAndPack(配送代行手数料)が257円。
このようになりますね。


これを取得しているコードが下記となります。

    ' FBA手数料合計を取得
    Set wkObj = getProObj(k).SelectSingleNode("FeesEstimate/TotalFeesEstimate/Amount")
    If Not wkObj Is Nothing Then
        fbaGokei = wkObj.text
    End If
    
    '手数料の内訳を取得
    Set fbaObj = getProObj(k).SelectNodes("FeesEstimate/FeeDetailList/FeeDetail")
    If fbaObj.length > 0 Then
        For i = 0 To fbaObj.length - 1
            '手数料取得
            Set wkObj = fbaObj(i).SelectSingleNode("FinalFee/Amount")
            If Not wkObj Is Nothing Then
                num = wkObj.text
            End If
            '手数料タイプを取得
            Set wkObj = fbaObj(i).SelectSingleNode("FeeType")
            If Not wkObj Is Nothing Then
                feeType = wkObj.text
            End If
            
            '金額のセット
            If feeType = "ReferralFee" Then      '販売手数料
                hanbaiFee = hanbaiFee + num
            ElseIf feeType = "VariableClosingFee" Or feeType = "PerItemFee" Then    'カテゴリー成約料 or 基本成約料
                kihonFee = kihonFee + num
            ElseIf feeType = "FBAFees" Then             '配送手数料
                haisoFee = num
            End If
            
        Next i
        
        '手数料(%)を算出
        If hanbaiFee > 0 Then
            hanbaiFeeRitsu = hanbaiFee / CLng(price)
            hanbaiFeeRitsu = Round(hanbaiFeeRitsu, 2)
        End If
    End If
End If

実行結果
f:id:yumeigunshi444:20191230193053p:plain

まとめ

いかがでしたでしょうか?


ここまでくるとプログラミングの知識がないと難しいかもしれません・・・


しかしこれで商品情報取得についての記事はおしまいです!

今後は自動出品や、競合の取得方法などを書いていこうかなーと思っていますが、
恐らくこれよりも難しいので記事にする意味あるのかなと・・・w


それではこれで商品情報に関しては最終回となります!

おつかれさまでした!

【MWS API】ASINから最低価格を取得しよう【Excel VBA】

カート価格の取得ができたら、合わせて最低価格も取得してしまいましょう。 www.yumeigunshi.com

最低価格の取得にはGetLowestOfferListingsForASINを使用したいと思います。

MWS APIを使用した最低価格の取得では、出品形態に関わらず、一番低い価格を取得します。

自己発送の出品者しかいなくて、カート価格がない商品も多いです。
ということはFBA出品している競合がいない商品ということなので、
カート価格がとれないからスルーはもったいないです。

しかし、自己発送の出品価格が低すぎるとこちらがカートを取れないので、
カート価格を取得して仕入判断する必要があります。

※MWS APIの接続確認ができていない方はこちらからどうぞ。 www.yumeigunshi.com

ASINから最低価格を取得するコード

前回記事の接続確認をしたファイルに下記を追加してください。
丸コピで動くと思います。
解説はそのあとに書きます。

Excelシート

f:id:yumeigunshi444:20191222131011p:plain
ASIN入力シート
f:id:yumeigunshi444:20191222131043p:plain
Resultシート

VBAコード

「ASIN」シート 実行ボタン押下時イベント

Option Explicit

Const MAX_COLUMNS As Integer = 4    '最大列数

Private Sub BTN_実行_Click()
    Dim xml As Object
    Dim dic As Object
    
    Dim lstRow As Long
    Dim asinRow As Long
    Dim resultRow As Long
    Dim result() As Variant
    Dim asinList As Collection
    
    Dim asin As String
    Dim shohinObj As Object
    Dim itemObj As Object
    Dim wkObj As Object
    Dim i As Integer, j As Integer
    Dim param As String
    Dim wk As Variant
    
    Dim asinSort() As String
    Dim strSort As String
    strSort = "1,10,2,3,4,5,6,7,8,9"
    asinSort = Split(strSort, ",")
    
    '最終行取得
    lstRow = Cells(Rows.Count, 1).End(xlUp).Row
    If lstRow = 1 Then
        MsgBox ("ASINが入力されていません。")
        Exit Sub
    End If
    
    '初期処理
    Set dic = CreateObject("Scripting.Dictionary")
    
    asinRow = 2     '開始行数
    
    'Result配列の宣言
    ReDim result(1 To lstRow - 1, 1 To MAX_COLUMNS)
    
    While asinRow <= lstRow
        Set asinList = New Collection
        With Sheets("ASIN")
            ' ASINを取り出す
            j = 0
            Do While j < 5
                ' 最終行の場合、処理終了
                If asinRow > lstRow Then
                    Exit Do
                End If
                ' 情報をセット
                asin = CStr(.Cells(asinRow, 1).Value)
                If dic.exists(asin) = False Then    '未処理のASINを処理
                    Set wk = New Collection
                    wk.Add asin, "ASIN"
                    wk.Add asinRow - 1, "ROWS"
                    asinList.Add wk, CStr(asinList.Count + 1)
                    
                    '処理済ASINを格納
                    dic.Add asin, asinRow
                    j = j + 1
                End If
                
                '配列初期化
                result(asinRow - 1, 1) = asin   'ASIN
                result(asinRow - 1, 2) = "-"    '価格 + 送料
                result(asinRow - 1, 3) = "-"    '価格
                result(asinRow - 1, 4) = "-"    '送料
                ' 次行へ
                asinRow = asinRow + 1
            Loop
        End With
        
        param = ""
        ' ASINを1つずつ取り出す
        For i = 0 To UBound(asinSort) - 1
            j = 1
            For Each wk In asinList
                If j = CLng(asinSort(i)) Then
                    If j = 1 Then
                        param = "ASINList.ASIN." & j & "=" & wk("ASIN")
                        
                    Else
                        param = param & "&ASINList.ASIN." & j & "=" & wk("ASIN")
                    End If
                    
                    Exit For
                End If
                j = j + 1
            Next
        Next
        
        ' リクエストを作成
        param = MakeParam(param)
    
        Set xml = getXMLPost("https://mws.amazonservices.jp/Products/2011-10-01", param)
        '情報取得
        Call getLowestOfferListingsForASIN(xml, result, asinList)
        
        
        '1秒のウェイト
        Sleep 1000
    Wend
   
    'Resultへセット
    With Sheets("Result")
        'クリア
        resultRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        .Range(.Range("A2").Address, .Cells(resultRow, MAX_COLUMNS).Address) = ""
        '貼り付け
        .Range(.Range("A2").Address, .Cells(lstRow, MAX_COLUMNS).Address) = result
    End With
    
    MsgBox "出力完了"
End Sub


'パラメータ作成
Function MakeParam(asinList As String) As String
    Dim param As String
    Dim paramToSign As String
    Dim sellerId As String
    Dim accessKey As String
    Dim seacretKey As String
    Dim endPoint As String
    Dim marketPlaceId As String
    Dim timeStamp As String
    Dim apiVersion As String
    Dim sign As String
    Dim url As String
    
    'パラメータの取得
    With Sheets("MWS")
        sellerId = .Range("B1").Value
        accessKey = .Range("B2").Value
        seacretKey = .Range("B3").Value
    End With
    endPoint = "mws.amazonservices.jp"
    marketPlaceId = "A1VC38T7YXB528"
    timeStamp = Format(CDate(DateAdd("h", -9, Now)), "yyyy-mm-dd") & "T" & Format(CDate(DateAdd("h", -9, Time)), "hh%3AMM%3Ass") & "Z"
    apiVersion = "2011-10-01"
    
    ' リクエストを作成
    param = asinList _
            & "&AWSAccessKeyId=" & accessKey _
            & "&Action=GetLowestOfferListingsForASIN" _
            & "&ItemCondition=New" _
            & "&MarketplaceId=" & marketPlaceId _
            & "&SellerId=" & sellerId _
            & "&SignatureMethod=HmacSHA256" _
            & "&SignatureVersion=2" _
            & "&Timestamp=" & timeStamp _
            & "&Version=" & apiVersion
            
    paramToSign = "POST" & vbLf & endPoint & vbLf & "/Products/2011-10-01" & vbLf & param
    sign = GetSign(seacretKey, paramToSign)
    
    param = param & "&Signature=" & sign

    MakeParam = param
End Function

'結果XMLから最低価格を取得
Sub getLowestOfferListingsForASIN(xml As Object, result() As Variant, asinList As Collection)
    Dim getProObj As Object
    Dim shohinObj As Object
    Dim wkObj As Object
    Dim strAsin As String
    Dim landedPrice As Double
    Dim price As Double
    Dim soryo As Double
    
    Dim resultRow As Long
    Dim wk As Collection
    Dim k As Integer
    
    
    Set getProObj = xml.SelectNodes("GetLowestOfferListingsForASINResponse/GetLowestOfferListingsForASINResult")

    ' 取得したProductオブジェクトを順次取り出し
    For k = 0 To getProObj.length - 1
        '初期化
        strAsin = ""
        landedPrice = 0
        price = 0
        soryo = 0
        
        'ASIN 取得
        For Each wkObj In getProObj(k).Attributes
            If wkObj.Name = "ASIN" Then
                strAsin = wkObj.Value
            End If
        Next wkObj
        
        ' ASINが取得できていれば処理を行う。
        If strAsin <> "" Then
            
            '商品情報
            Set shohinObj = getProObj(k).SelectNodes("Product/LowestOfferListings/LowestOfferListing")
            If shohinObj.length <> 0 Then
                ' 価格 + 送料を取得
                Set wkObj = shohinObj(0).SelectSingleNode("Price/LandedPrice/Amount")
                If Not wkObj Is Nothing Then
                    landedPrice = wkObj.text
                End If
                ' 価格を取得
                Set wkObj = shohinObj(0).SelectSingleNode("Price/ListingPrice/Amount")
                If Not wkObj Is Nothing Then
                    price = wkObj.text
                End If
                ' 送料を取得
                Set wkObj = shohinObj(0).SelectSingleNode("Price/Shipping/Amount")
                If Not wkObj Is Nothing Then
                    soryo = wkObj.text
                End If
            End If
            
            '情報のセット
            With Sheets("Result")
                '行数取得
                Set wk = asinList(CStr(k + 1))
                resultRow = wk("ROWS")
                
                result(resultRow, 2) = Int(landedPrice)
                result(resultRow, 3) = Int(price)
                result(resultRow, 4) = Int(soryo)
            End With
        End If
    Next
   
End Sub

実行結果

f:id:yumeigunshi444:20191222131306p:plain
ASINを入力して「実行」ボタンを押下
f:id:yumeigunshi444:20191222131330p:plain
結果がResultシートに出力される

GetLowestOfferListingsForASINの解説

前回記事であるカート価格取得ととても似ています。

違うところといえば、自己発送の商品は送料を設定していることが多いので、送料も取得する必要があるところくらいでしょうか。

スロットリング

f:id:yumeigunshi444:20191222131832p:plain
スロットリング
1秒ごとに5商品取得できるようになるので、
今回は一度のリクエストで5個のASINを送信します。

リクエストパラメーター

必須パラメーターはMarketplaceIdASINListです。

こちらはカート価格取得と全く同じ。

VBAコード

こちらもカート価格取得とほぼ同じなので、詳しくは前回記事を参照。 www.yumeigunshi.com

取得項目のみ解説していきます。

最低価格の取得

B07CCBRLJRを参考に、スクラッチパッドで結果を表示します。
Amazon.com - Marketplace Web Service

f:id:yumeigunshi444:20191222132657p:plain
スクラッチパッド
今までよりたくさん結果が表示されて困惑されるかもしれませんが、
これは出品者の数だけ価格が表示されているだけです。

今回は最低価格の取得なので、一番最初に出てくる価格のみ取得してしまえばOKです。

それぞれの項目取得するコード
    '商品情報
    Set shohinObj = getProObj(k).SelectNodes("Product/LowestOfferListings/LowestOfferListing")
    If shohinObj.length <> 0 Then
        ' 価格 + 送料を取得
        Set wkObj = shohinObj(0).SelectSingleNode("Price/LandedPrice/Amount")
        If Not wkObj Is Nothing Then
            landedPrice = wkObj.text
        End If
        ' 価格を取得
        Set wkObj = shohinObj(0).SelectSingleNode("Price/ListingPrice/Amount")
        If Not wkObj Is Nothing Then
            price = wkObj.text
        End If
        ' 送料を取得
        Set wkObj = shohinObj(0).SelectSingleNode("Price/Shipping/Amount")
        If Not wkObj Is Nothing Then
            soryo = wkObj.text
        End If
    End If

上記コードで3つの項目が取得できます。

<Price>
          <Price>
            <LandedPrice>
              <CurrencyCode>JPY</CurrencyCode>
              <Amount>8965.00</Amount>
            </LandedPrice>
            <ListingPrice>
              <CurrencyCode>JPY</CurrencyCode>
              <Amount>8345.00</Amount>
            </ListingPrice>
            <Shipping>
              <CurrencyCode>JPY</CurrencyCode>
              <Amount>620.00</Amount>
            </Shipping>
          </Price>

LandedPrice :価格 + 送料
ListingPrice :価格のみ
Shipping:送料
となっています。

カート価格の取得ができた人はもう簡単にできると思います!

補足

実際にAmazonの画面で確認してみましょう。 f:id:yumeigunshi444:20191222134415p:plain 先ほどのテストで使用したB07CCBRLJRの商品です。
Amazonが9513円でカートを取っています。
カート価格を取得する場合は、9513円を取得しますが、
今回の最低価格取得の場合、
一番上に表示されている8345円(送料630円)のデータを取得することになります。

まとめ

カート価格とほぼ同じなので、解説する必要なかったかもしれません。

次回はFBA出品手数料の取得を解説していきたいと思います。
実はこれが一番苦労していまして、ネットにも情報が少なかった・・・

なのでかなり有力な記事になりそうです!
今までの解説記事
www.yumeigunshi.com www.yumeigunshi.com www.yumeigunshi.com

【Amazon欧米輸入】2019年11月の月利報告【副業】

11月の月利報告となります。

 

 

 

 

 

 

 

2019年11月実績

売上数:384個

売上高:1,223,844円

原価:811,816円

Amazon手数料:175,992円

その他損失(返品等):35,119円

利益:200,917円

利益率:16.4%

 

順調に売上は伸びましたが、やはりハロウィンより利益率が低くなりギリギリ20万達成となりました。

あとは返品が多かったですね・・・

売上数が増えた分仕方ないかもしれませんが・・・

 

とはいえ順調な売れ行きかと思います。

 

11月中旬からはキャッシュレス還元事業者の登録が完了したため、カートが獲りやすくなって売れやすくなったと感じます。

 

還元事業者の登録をしていない人はかなり不利になると感じたので、1日でも早く申請した方がいいと思います!

 

クリスマス商戦について

12月に入りまして、ついにクリスマス商戦ですね!

 

1年で一番売れる時期になりました。

 

12月初週が経過していますが、かなり順調な売れ行きです!

 

ただ、MyUS,Fedexが遅れたり、FBA倉庫の受領遅延が起こってたりしているのが不安ですね。

 

 

今月は私の本業の月給は超えたいところです・・・!

 

あ、月利報告も12月で最後にしようと思っています。

 

12月が一番利益出る月でしょうし、このまま続けても書くことないですし、、、

 

というわけで残り1ヶ月頑張っていきたいと思います!

【Amazon欧米輸入】2019年10月の月利報告【副業】

 

恒例の月利報告です。

 

先に言っておかなければいけないことがあります。

 

11月に入った早々にTwitterで月利報告をしたのですが、こちらはプライスターの数字なので今回の報告とかなりズレがあります・・・

 

プライスター上で利益15万突破したのが嬉しくて早めに載せてしまいました。

今回は返品も多いこともあってプライスター上の利益のほうが少ないです。

 

では月利報告といきましょう

 

10月月利報告

売上高:986,862円

原価:767,462円

Amazon手数料:134,863円

その他損失:17,463円

利益:201,937

利益率:20.5%

 

まさかの月利20万越え・・・!

 

プライスターの数字とあまりにかけ離れていたので何度か計算し直しましたが、やっぱりこの数字でした。

 

返品が多いとプライスターの利益額はあてにならなくなっていくようです。

 

返品された場合、売上額がそのままマイナスされてしまうため・・・

実際商品は戻ってくるので、その原価分は手元に戻ってくることになります。

それをメルカリで販売したりして損失をカバーしますが、その分は当然計上されません。

 

 あと売上と原価が低くなっていますが、私の管理上ではAmazonからダウンロードしたレポートで計算しているからだと思います。

なのでこちらの方が正しいと思います。

 

プライスターでは売れた値段がそのまま売上として計上されます。

 

 

いつもの月利報告ではAmazonのレポートがちゃんと出るまで待ってから記事にしていましたが、今回は月利15万超えたこともありツイートしてしまいました・・・

 

まさかこんなに利益額に差が出るとは思わず・・・

 

 

なにはともあれ・・・

ハロウィン効果があるとはいえ、月利20万いくとは夢にも思わず驚愕です・・・!

 

前回の報告で効率化についてお話していましたが、作業時間はほぼ変わらずこの結果です。

 

時給換算すると 200,000円 / 52時間 = 3,846円 になります。

 

前回算出した平均的な27歳のサラリーマンの時給が1277円なので、3倍くらいになってしまいますね・・・

 

 

サラリーマンとはいったい・・・

 

サラリーマン頑張るより絶対副業頑張ったほうがいいじゃん

 

 

収入の柱を増やしたい

7月に月利10万を達成してから安定的に稼げるようになってきました。

 

効率化もだいぶ進められたので、新しい副業を始めてみようかなあと思っています。

 

やはり収入源がAmazonに依存している限り、いくら稼ごうとも不安しかないですね。

 

今年も既にアカウント停止が増えてきているようですし・・・

 

 

せっかく輸入のノウハウがあるのでAmazon以外のプラットフォームを使って物販をやりたいですね。

 

今一番やりたいと考えている候補はebay輸出です。

 

まとめ

年末商戦が近いですね。

 

もう11月に入ったので仕入を増やしているところです。

 

 

とにかくアカウント停止にならないように無事に終えたいところです・・・

 

売上金保留が一番困りますね・・・

 

それでは今回の報告はこのへんで!

【プライスター登録特典】Amazon輸入効率化の為の管理表【Excel VBA】

 

今回は、私が作成したAmazon輸入の管理表を公開したいと思います。

 

いろいろ考えた結果、プライスター登録特典として公開しようと思います。

 

f:id:yumeigunshi444:20191021102301p:plain

管理表

 

画面としてはこんな感じです。

 

 

こんな人におすすめ

この管理表はAmazon欧米輸入を行っていることを前提として作成しております。

 

Amazon欧米輸入とは、アメリカのAmazonから商品を購入し、アメリカの転送会社MyUSから商品を日本へ転送。

そして日本のAmazonで出品するというネットビジネスです。

 

 

Amazon輸入の作業の効率化ツールになりますので、ある程度稼いでいる方向けです。

 

月利10万稼いだものの、この単純作業をこの先やっていく自信がない。という方はぜひご検討ください!

 

自分自身もそう感じたことがありますし、とあるオフ会に出席した時もそのような悩みを口にしていた方がいました。

 

 

Amazon輸入は物量がモノを言うビジネスなので、利益を増やそうと思ったら仕入量を増やすしかありません。

 

効率化しなければ無限に単純作業が増えて行ってしまい、月利10、20万稼いだとしても、単純作業がめんどくさくなり辞めてしまう人も多いと思います。

 

なので物販では、物量が増えても作業量が変わらないような効率化が必要だと私は思います。

 

管理表について

この管理表で、仕入、売上、在庫、商品、売上実績の管理をすることができます。

 

細かいこというと長くなってしまうので、別途記事で説明したいと思います。

 

 

この管理表は約1年前に、Amazon輸入で稼いでいらっしゃる方から依頼を受けて作成したものです。

 

「リピート仕入の効率化をしたい」というのが主な目的として作成し、通話で打合せを繰り返しながら半年ほどかけて完成させたものです。

 

実際にこの管理表を使っていただいた結果、今まで12時間かかっていた作業が4時間に短縮できたそうで、かなりご好評いただきました。

(この作業を月3回行っているので、1ヶ月で24時間も時間を作ることができたことになります。)

 

さらにこの方が知人に管理表を紹介したところ、「販売してほしい」との声をいただいたため販売したところ、その知人の方からもご好評をいただきました。

 

 

Amazon輸入をやられているお二方から想像以上のご好評をいただいたため、この度プライスター登録特典として公開することを決定しました。

 

なぜプライスター登録特典としたのかというと、プライスターに登録していないと使えない機能があるためです。

※現在では既にプライスターへ登録済の方向けに個別販売にも対応しております。 

8/2

個別販売を廃止し、Paypal定期購読にて対応することにしました。

www.yumeigunshi.com

 

効率化

もちろん私もこの管理表を使って、効率化しております。

リピート仕入のしやすさはもちろんのこと、仕入商品の管理、在庫管理、売上管理、月ごとの実績管理など、商品の管理がこのファイルでできてしまいます。

 

私が1週間で輸入ビジネスにかけている時間は12時間程度です。

それで現在月利30万を超えています。取り扱う商品が増えれば増えるほど効いてくる管理表だと思います。

 

この管理表の他にも効率化に関するツールを自作しているので、今後公開予定です。

 

管理表の概要

この管理表で具体的に何ができるかは、説明書として公開しております。
 

 

一通り見ていただいて、自身の輸入ビジネスに利用できるか判断いただいた上で、ご登録していただきたいと思います。

 

仕入から売上管理までの効率化を目的としており、その浮いた時間を他のことに使うことができます。

 

 

登録はこちらから

 

関連記事

 


 

【管理表】説明書【Excel】

 

動作環境 : Window10 Excel 2016

f:id:yumeigunshi444:20191021104237p:plain

仕入管理表

f:id:yumeigunshi444:20191021104304p:plain

売上管理表

f:id:yumeigunshi444:20191021104338p:plain

在庫管理表

f:id:yumeigunshi444:20191021104406p:plain

商品リスト

f:id:yumeigunshi444:20191021104424p:plain

売上実績

 

この管理表にはいろいろな機能がありますが、主にリピート仕入の効率化を目的に作成しました。

 

その他にも

・仕入商品の管理

・プライスター一括出品ファイルの出力

・FBA納品ファイルの出力

・在庫の管理

・売上の管理

などなど様々な機能を備えています。

 

それぞれのシートについて説明していきたいと思います。

 

仕入管理表

このシートに仕入れる商品を記載していきます。

詳しくは下記へ

 

売上管理表

Amazonからダウンロードしたレポートを使って、売上の管理を行うことができます。

詳しくは下記の記事へ

 

在庫管理表

在庫管理表は出品中の商品の管理を行うことができます。

詳しくは下記の記事へ 

 

商品リスト

仕入れた商品情報を保持するためのシートです。

自身で入力することは特にありません。

 

売上実績

売上の集計に使用するシートです。

売上管理表の記事で説明しております。

 

バックアップ

在庫移動や売上反映など、大きく変更が伴う処理の前にバックアップを作成しています。

もし不具合等でデータがおかしくなってしまったら、焦らずにバックアップファイルを取り出してください。

([02_backup]フォルダ内)

 

まとめ

仕入から売上の集計までこのExcel1つで効率的に管理することができます。

 

直接利益に影響するものではありませんが、効率化できた時間を他のことに使うことができます。

 

効率化をお考えの方は、ぜひ導入をご検討してみてください。

 

管理表関連記事


 

【管理表】在庫理表シートの説明書【Excel】

 

プライスター登録特典、管理表の「在庫管理表」シートの説明書です。

 

先に「仕入管理表」シートの説明書を読んでいただいた方が、理解しやすい内容かと思います。


在庫管理表について

在庫管理表では、出品中の商品の管理をすることができます。

f:id:yumeigunshi444:20191021134313p:plain

 

項目について

SKU 出品者が設定する、商品固有の識別コード。
仕入管理表から自動入力
ASIN Amazonの商品識別用の10桁の番号コード。
仕入管理表から自動入力
商品名 商品の名称。
仕入管理表から自動入力
販売開始日 仕入管理表から移動させた日付
想定売価 商品の販売価格。
仕入管理表から自動入力
販売経路 商品を出品したサイト
商品別総原価 商品の原価。
仕入管理表から自動入力
想定利益額 「想定売価」-「商品別総原価」
期間 「販売開始日」から今日までの経過日数。
90日以上だと背景色が赤色になり通知する。
備考 仕入管理表から自動入力
仕入中在庫数 仕入管理表にあるこの商品の数量。

 

プライスターから在庫を移行

途中からこの管理表を利用される方のために、プライスターの在庫ファイルからインポートする機能をつけました。

f:id:yumeigunshi444:20191021135610p:plain

「移行」ボタンをクリック

f:id:yumeigunshi444:20191021135645p:plain

プライスターから在庫ファイルをダウンロードし、アップロード




売上へ移動

カーソルのある行の商品を売上管理表へ移動させます。

Amazon以外で売った商品はこの機能を使って移動させてください。

 

 

損切りアラート

「販売開始日」から90日が経過した商品は、損切りアラートとして背景色が赤色に強調表示されるようになります。

 

損切りの目安にしていただけたらと思います。

 

f:id:yumeigunshi444:20200301123808p:plain

 

 

在庫管理表の機能は以上となります。

 

管理表関連機能

 

【管理表】売上管理表シートの説明書【Excel】

 

プライスター登録特典、管理表の「売上管理表」シートの説明書です。

 

先に「仕入管理表」シートの説明書を読んでいただいた方が、理解しやすい内容かと思います。

 

売上管理表について

f:id:yumeigunshi444:20191021125158p:plain

売上管理表シート

機能としてはシンプルで、Amazonからダウンロードしたトランザクションファイルを読込、ASINを元に在庫と突き合わせます。

 

項目について 

背景色について

入力が必要な項目
数式による自動入力項目

 

項目説明

日付 商品が売れて決済された日付
ASIN Amazonの商品識別用の10桁の番号コード。
SKU 出品者が設定する、商品固有の識別コード。
注文番号 Amazonでの注文に対する管理番号。
トランザクションの
種類
「売上」、「返品」などの処理の種類
商品名 商品の名称
数量 売れた数量
売上合計 売上金の合計金額
プロモーション
割引合計
セラーフォーラムを参照。
プロモーション割引 - 新規出品者のヘルプ - Amazon Seller Forums
Amazon手数料 FBA出品手数料、FBA出荷手数料等。
その他 その他の手数料
アマゾン
手数料合計
「プロモーション割引合計」+「Amazon手数料」+「その他」
入金金額 「売上合計」+「アマゾン手数料合計」
原価 商品の原価。
在庫管理表から自動入力。
利益金額 「入金金額」-「原価」
入金金額 「利益金額」÷「売上合計」
発注中商品数 仕入管理表にあるこの商品の数量。ASIN基準。
現在庫数 在庫管理表にあるこの商品の数量。ASIN基準
購入先URL 商品を購入したページのURL。
在庫管理表から自動入力。
仕入価格($) 商品の仕入価格。
在庫管理表から自動入力。
備考 備考。
在庫管理表から自動入力。

 

 

トランザクションファイルのダウンロード

まずはAmazonセラーセントラルからトランザクションファイルのダウンロードをしましょう。

 

「レポート」タブ→「ペイメント」→「トランザクション」→「機関のカスタマイズ」で期間を指定し、「日付」を昇順に並び替えてダウンロード。

 

売上管理表では1ヶ月分の管理を想定していますので、1日~本日を指定していただけたらと思います。

 

「日付」の並び替えについては、「更新」ボタン押下後に表示されるリストの項目名の

日付」をクリックすると並び替えが行われます。

 

そして「ダウンロード」ボタンをクリックして保存してください。

 

ファイル選択

先ほどダウンロードしたトランザクションファイルを選択してください。

f:id:yumeigunshi444:20191021125850p:plain

「参照」ボタンをクリック

ファイル選択ダイアログが立ち上がりますので、report.txtファイルを選択してください。

 

選択後、「売上反映」ボタンをクリックすることで、トランザクションファイルの取込をします。

 

売上反映

「売上反映」ボタンを押すと、トランザクションファイルを元に、売上管理表へ反映していきます。

 

取込の対象となっている処理に関しては下記のみとなっています。

・注文に対する支払い

・返金

・サービス料金

・その他 FBA在庫の返金 - 購入者による返品

・その他 FBA在庫の返金 - 紛失: フルフィルメントセンター

 

上記以外の項目については取込むことができませんので、取込みをしたければ手動で売上管理表に入力してください。

 

ただし、上記以外の項目は「引当金」等なので、売上と関係ない項目かと思われます。

 

 

また、同じ注文を反映しないように対策してありますので、トランザクションファイルの中身が重複していても問題ありません。

 

在庫から原価を取得

SKUを元に在庫管理表へ検索し、原価を取得して売上管理表へ反映します。

売れた商品は在庫管理表から削除されます。

 

リピート条件

リピート条件を設定することができます。

f:id:yumeigunshi444:20191021131034p:plain

初期値では利益率10%以上在庫数1以下となっております。

 

条件に該当する場合、「ASIN」セルの背景色がピンク色に強調表示されます。

 

実績集計

月締め後、「実績集計」ボタンを押すことで「売上実績」シートへ売上実績を反映します。

反映後、売上管理表はクリアされます。

f:id:yumeigunshi444:20191021130852p:plain

実績集計月を選択し、「実績集計」ボタンをクリック

f:id:yumeigunshi444:20191021130925p:plain

「売上実績」シートへ反映されます。

集計の内訳は

・売上高

 「売上金額」と「その他」の合計

・その他の損失

「返金」と「サービス料金」の合計

 

 

売上管理表の機能は以上となります。

 

管理表関連機能