こんにちは。ネットショップオーナー兼プログラマーの井川です。
っと思ったので作りました。
本記事にて解決できる問題はこちら
- NETSEAの商品在庫を楽天に反映したい。
- 毎日の業務が忙しいので在庫管理は完結に終わらせたい。
- お金をかけずに在庫管理システムを作りたい。
商材を増やすのに便利なNETSEAですが、ほんのちょっとの商材のためにシステム会社に依頼して数百万かけてシステム作って貰うのって勿体ないですよね。
実際、NETSEAのシステムであれば自作して簡単に在庫管理出来るようになるので、「自作システムに挑戦してみよう!」って人はぜひこの記事をご覧ください。
※サイズがある物、ダイレクトIDが分からない物は取得できませんのご注意ください。
NETSEA在庫管理システムのコード
「こまけぇことはいいんだよ!とりあえずコードだせ!」って人はこちらをご覧ください。
使用言語は「C#」、開発環境は「Visual Studio」になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ClosedXML.Excel; using System.IO; namespace NETSEA在庫表作成 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string[][] select_jag; string[][] stockdata; XLWorkbook itemdata_book = new XLWorkbook(@"参照させる商品情報データPATH"); IXLWorksheet itemdata_sheet; int itemdata_row; private void button1_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); file_in_data(openFileDialog1);//データ格納用 main();//メイン処理 end();//終了処理 } //データ格納用 public void file_in_data(OpenFileDialog ofd) { itemdata_sheet = itemdata_book.Worksheet(1); itemdata_row = itemdata_sheet.LastRowUsed().RowNumber(); string[] csv_split = { "\r\n" }; StreamReader sr = new StreamReader(ofd.FileName, Encoding.GetEncoding("shift-jis")); string[] csv_row = sr.ReadToEnd().Split(csv_split, StringSplitOptions.None); stockdata = new string[csv_row.Length][]; for(int count = 0; count < csv_row.Length; count++) { stockdata[count] = csv_row[count].Split(','); } sr.Close(); sr = new StreamReader(@"楽天アップ用「select.csv」テンプレート用PATH", Encoding.GetEncoding("shift-jis")); csv_row = sr.ReadToEnd().Split(csv_split, StringSplitOptions.None); select_jag = new string[csv_row.Length][]; for (int count = 0; count < csv_row.Length; count++) { select_jag[count] = csv_row[count].Split(','); } sr.Close(); } //メイン処理 public void main() { for(int select_count = 1;select_count < select_jag.Length; select_count++) { if(select_jag[select_count].Length < 2) { break; } for(int stock_count = 1;stock_count < stockdata.Length; stock_count++) { if (select_jag[select_count][8].Equals(stockdata[stock_count][0].Replace("\"", ""))) { if(stockdata[stock_count].Length < 2) { break; }else if (stockdata[stock_count][2].Equals("\"Y\"")) { select_jag[select_count][10] = stockdata[stock_count][1]; }else { select_jag[select_count][10] = "0"; } break; } } } } //終了処理 public void end() { string text = ""; for(int select_count = 0; select_count < select_jag.Length; select_count++) { for(int select_column = 0; select_column < select_jag[select_count].Length; select_column++) { if(select_column == select_jag[select_count].Length - 1) { text += select_jag[select_count][select_column]; }else { text += select_jag[select_count][select_column] + ","; } } text += Environment.NewLine; } StreamWriter sw = new StreamWriter(@"保存先PATH",false,Encoding.GetEncoding("shift-jis")); sw.WriteLine(text); sw.Close(); Application.Exit(); } } } |
ある程度プログラミングが出来る人であれば、これでもう作れると思います。
フリー素材として置いておくのでどうぞご活用ください。
NETSEA在庫管理システム、プログラミング初心者向け解説
ここからはプログラミング未経験の人のために、実際にプログラミングコードをどう使えばいいか?どこをどう直せばいいのか?を説明していきます。
っと不安に思うでしょうけど、コード自体が完成しているのでコピーと貼り付けが出来れば9割完成!残りの1割は初期設定みたいな物なのでここを乗り越えて貰えると今後ずっと使えるシステムが完成します。
それでは、解説を始めます。
事前準備
Microsoft Visual Studioをダウンロードする。
プログラミングのコードを書くために専用のツールが必要なのでマイクロソフトからVisual Studioをダウンロードします。
こちらから公式サイト:【マイクロソフト公式】
無料版をダウンロードして頂き、パソコンの中にシステム開発のための環境を作ります。
FTPクライアント「File Zilla」をダウンロードする
楽天からファイルをダウンロードしたりアップロードしたりする時に必要なFTPクライアントと言うツール。
FTPクライアント自体は色々あって楽天が作った楽天用公式FTPクライアントなどもあるのですが、今回は私が個人的に昔から使っている「File zilla」で作業を進めていきます。
ダウンロードはこちら【File Zilla】
楽天の公式FTPクライアントを使っている人は楽天のFTPでも大丈夫です。
File Zillaに楽天の情報を設定する
File Ziilaに楽天の情報を設定します。
設定か所は4つ
- ホスト
- ユーザ名
- パスワード
- ポート
ホスト名は、「upload.rakuten.ne.jp」
ユーザ名は、「自分のショップID」
パスワードは、楽天RMS>店舗設定>商品登録・更新>①商品ページ設定内の「一括編集機能」の覧一番下にある「FTPサーバ用パスワード変更」、ここで好きなパスワードを設定してFile Zillaのパスワードに記入
ポートは、今回は使いませんので空白
最後に接続ボタンを押すと楽天のデータベースへ入る事が出来ます。
NETSEAのcsvformat.csvをダウンロードする
NETSEA管理画面、バイヤーIDの右側にある下矢印をクリックすると色々出てきますね。
その中の「CSV在庫確認」をクリック、「アップロードファイル(CSV)のサンプルダウンロード」からcsvformat.csvをダウンロードします。
画像ではダイレクトIDが記入されていますが、これは私が使っているファイルなので実際にはサンプルコードが2行入っているのみです。
ダイレクトIDは商品の識別コードで、商品ページの「商品データダウンロード」から取得できるCSVファイルの中にあるコードを入力します。
商品情報から取得した商品データcsvの名前を「itemdata.xlsx」に変更してパソコンのドキュメントフォルダに入れておきます。(後から使います。)
※取引申請をだいしてる商品のみ取得できます。
希望在庫セット数は、調べた商品が希望在庫セット数以上あるのかどうか?を判断する時に使います。
画像では「5」を入力しているので在庫が「5個以上あるか?」を調べる事が出来ます。
NETSEAのstockdata.csvをダウンロードする
NETSEA管理画面、バイヤーIDの右側にある下矢印をクリックすると色々出てきますね。
その中の「CSV在庫確認」をクリック、ファイル選択で「csvformat.csv」を選択してアップロードすると自動的に「stockdata.scv」がダウンロードできます。
このstockdata.csvをツールに読み込んで楽天用のselect.csvを作成するので分かりやすい所に置いておきます。
楽天に商品を登録する
NETSEAに商品を登録します。
ここで注意点として「項目選択肢別在庫用」は下記の通りに設定が必要です。
サイズ、カラーの順番にしておかないとシステムがエラーを起こします。
次に、「項目選択肢別在庫の登録・更新・削除をする」の設定です。
画像のようにカラーの選択肢番号にNETSEAのダイレクトIDを登録します。
サイズのFをKEYとしてダイレクトIDを取得するように作っていますので、必ずこの構成でお願いします。
楽天のselect.csvをダウンロードする
在庫を変更するためのテンプレートselect.csvをダウンロードします。
楽天RMSより、店舗設定>商品登録・更新>CSV更新(変更・削除)>固定フォーマットでダウンロード内「在庫を設定した商品」にチェックしてCSVファイルをダウンロードをクリック。
FTPクライアント内にダウンロードされるので拾いに行きます。
FTPクライアントを起動>ritem>download>dl-select.csvをダウンロードしてファイル名を「select.csv」に変更
select.csvはドキュメントにでも入れておいてください。
これで一通りの下準備が完了です。
Microsoft Visual Studioを使ってコードを書く
ここからは実際のプログラムの作り方について説明します。
かなり完結に主要な部分のみとなりますのでご了承ください。
プロジェクトの作成
Visual Studio起動>ファイル>新規作成>プロジェクト>
フォームアプリケーションを選択して名前を「NETSEA在庫表作成」にします。
デザイン作成
左の方にある「ツールボックス」からコモンコントロール内のButtonを選んで配置、Buttonを1回クリックしてからVisual Studioの右端にあるプロパティを選択して、その中にあるTextと言う項目の文字を変更するとボタンの文字も変更されます。
私は「stockdata.csv」と入れたのでボタンの文字も変更されました。
あと、もう1つ、ツールボックス>ダイアログ>OpneFileDialogをダブルクリックします。
これでデザインは完了です。
コードの記入
デザイン画面の中のボタンをダブルクリックします。
すると英単語や記号が書かれたページに飛ばされますね。
このままだとコピペしてもエラーが出るのでもうひと手間。
Visual Studio>ツール>NuGetパッケージマネージャー>パッケージマネージャーコンソールをクリック
下の方に「パッケージマネージャーコンソール」が表示されて「PM>」と言う文字が出てきたら「Install-Package ClosedXML」と記入してEnterキーをクリック。
※「PM>Install-Package ClosedXML」となるように。
なんかごちゃごちゃ文字が流れるので、それが完全に止まったらOKです。
それでは、Form1.csと言うタグの中にあるコードを変更します。
「NETSEA在庫管理システムのコード」で書いた4000文字くらいあるコードをコピーしてそのまま貼り付けます。
修正箇所は3点
- @"参照させる商品情報データPATH"
- @"楽天アップ用「select.csv」テンプレート用PATH"
- @"保存先PATH"
参照させる商品情報データPATHには、stockdata.csvを置いてある場所のPATHを入れます。
stockcdata.csvを右クリックしてプロパティを開くと「場所」と言う項目に「C:\Users」みたいな文章があるので、それがPATHになります。
デスクトップに置いていると「C"\Users\パソコン所有者の名前\Desktop」とかになっているのではないでしょうか。
これだとファイル名が無いのでファイル名を含めたPATH「C"\Users\パソコン所有者の名前\Desktop\stockdata.csv」にして参照させる商品情報データPATH部分に置換します。
今回はドキュメント入れていると思うので、「@"参照させる商品情報データPATH"」を「@"C:\Users\パソコン所有者の名前\Documents\stockdata.csv"」に変更します。
同じように「@"楽天アップ用「select.csv」テンプレート用PATH"」は「select.csv」を置いたPATHに変更。
@"保存先PATH"は完成したファイルを保存した場所を設定します。
これで最後にVisual Studioの上の方にある緑の三角「開始」をクリックすればプログラムの完成です。
エラーさえ出なければそのまま使えるようになります。
NETSEA在庫管理システムの使い方
ここからは実際に使っていきます。
stockdata.csvをダウンロードする
NETSEAよりstockdata.csvをダウンロードします。
バイヤーID右横の下三角、CSV在庫確認をクリック、ファイル選択でcsvformat.csvを入れてあげると自動的にダウンロードできます。
NETSEA在庫管理システムで楽天の在庫管理select.csvを作る
NETSEAで取得したstockadata.csvをツールで整理してきます。
今回作ったツールを起動するとアプリケーションが実行されます。
そして、ボタンを押すとファイル選択画面が表示されるので、NETSEAからダウンロードしたstockdata.csvを選択します。
しばらく待つとプログラムを作った時に設定した保存先PAHTにselect.csvが作られます。
select.csvを楽天へアップロードする
FTPクライアントを使って楽天へアップロードします。
FTPクライアント起動>ritem>batch内へselect.csvを放り込んで待機。
しばらくすると楽天の方へ在庫状況がアップロードされます。
これで完了です。おつかれさまでした。
まとめ
今回はNETSEAの在庫状況を楽天へアップロードするツールを作ったので公開しました。
一回設定してしまうとNETSEAの在庫状況を簡単にアップロードが出来るので、NETSEAを使った無在庫販売の欠品トラブルを極力回避する事が可能となります。
使用に色々と制限があるのは、主に自分のショップ用として簡単に作ったせいなので、いじれる人であればもっと細かく自由に調整が可能となります。
NETSEAで無在庫販売をしたい!商材をリスク無く増やしたい時などにご活用ください。