動機
Amazonのセラーセントラルに、クリックポストの追跡番号を1つ1つ入力する仕事に嫌気が差し、精神崩壊する前に自動化を図った。
概要
本内容は以下の2部構成です。
①クリックポストのページで追跡番号リストを半自動ダウンロード
②Amazonのセラーセントラルで追跡番号リストを読み込み、自動入力
当ページでは、②の自動入力スクリプトを記載します。
①がまだの方は、クリックポスト追跡番号一括読み込み(準備編) からどうぞ。
使い方
1.Tampermonkeyをインストール
2.Amazonセラーセントラルの「注文管理」→「選択した商品の出荷通知を行う」→「GO」
3.「複数商品の出荷通知」の下に、ファイル選択ボタンが追加されるので、クリック
5.出荷通知の「お届け先住所」の名前と、クリックポストの名前が完全一致すると、追跡番号が自動入力される
※一致しない場合(半角/全角スペースなど)・追跡番号がない場合は、セラーセントラルの入力ボックスは空のままになります。
(注意)クリックポストのファイルを再読込したいとき、1回目と同じ物を選択した場合、再読込は行われません。そのため、同じファイルを読み込みたいときは、ページをリロードしてから、選択し直してください。
スクリプト
// ==UserScript==
// @name Amazon Seller Tracking Number
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://sellercentral.amazon.co.jp/gp/orders-v2/bulk-confirm-shipment/ref=ag_bulkconf_cont_myo?ie=UTF8&orderID=*
// @grant none
// @require http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// ==/UserScript==
(function() {
'use strict';
if (window.File && window.FileReader && window.FileList && window.Blob) {
// Great success! All the File APIs are supported.
} else {
alert('The File APIs are not fully supported in this browser.');
}
// clickpostファイル読み込みボタン設置
var div_element = $('<div></div>');
div_element.html('<input type="file" multiple id="clickpost">');
div_element.insertBefore($('#myo-cms'));
// clickpostボタンの動作内容
var clickpost_data = '';
$('#clickpost').on('change', function(){
// 未出荷の宛名リスト読込
var row = $('#myo-cms > table.data-display')[0].rows;
var data = [];
for(var i = 0; i < row.length - 1; i++){
var tr_num = i + 2;
data[i] = $('#myo-cms > table.data-display > tbody > tr:nth-child(' + tr_num + ') > td:nth-child(3)').html();
data[i] = data[i].replace(/\n/g, '');
data[i] = data[i].replace('様', '');
data[i] = data[i].split('<br>');
data[i] = data[i][data[i].length - 2];
}
// clickpostデータ読込
var clickpost = $('#clickpost').prop('files');
for(var j = 0; j < clickpost.length; j++){
var reader = new FileReader();
reader.onload = function(e){
clickpost_data = clickpost_data + e.target.result;
};
reader.readAsText(clickpost[j]);
}
setTimeout(function(){
// データ整形
var split_data = clickpost_data.split('\n');
split_data.pop();
var clickpost_all_data = [];
for(var i = 0; i < split_data.length; i++){
clickpost_all_data.push(split_data[i].replace('\r', '').split(','));
}
// データマッチ
for(var j = 0; j < data.length; j++){
for(var k = 0; k < clickpost_all_data.length; k++){
if(data[j] === clickpost_all_data[k][1]){
// 追跡番号挿入
var tr_num = j + 2;
$('#myo-cms > table.data-display > tbody > tr:nth-child(' + tr_num + ') > td:nth-child(4) > input').val(clickpost_all_data[k][0]);
break;
}
}
}
},500);
});
})();