Amazonでショッピングを年中「割引価格」にする方法
Amazon(アマゾン)を知らない人はいないと言うほど、アマゾンは日本でも有数のショッピングサイトになった。ほとんどの人がアマゾンを利用しており、逆に利用していないという人が少なくなった。
アマゾンはそれだけ利用されており、一年間のアマゾンでの出費は相当なものになるだろう。しかし、もしもアマゾンでのショッピングを年中「割引価格」にする方法があるなら?―――この記事ではアマゾンを毎日、常に割引価格で利用する方法を説明する。
一年間でAmazonでどれくらい利用しているかチェックしよう
さっそく毎日、割引価格にする方法を説明したいところだが、その前にいったいどれだけの金額をアマゾンに貢いでいるのかを確かめてみよう。そのほうが「割引の効果の大きさ」をしみじみと体感しやすいからだ。
アマゾンの自分の注文履歴に行きます。
注文履歴に着いたら、Chromeの右上のバーを開いて「その他のツール > デベロッパーツール」を開きます。
デベロッパーツールを開き、「Console」というところを開きます。そしてそこに以下のコードをコピペしてほしい。
コピペするコードを表示
(function () {
// 各注文履歴をTSVフォーマットにして返す
var datePattern = new RegExp("(\\d{4})年(\\d{1,2})月(\\d{1,2})日");
function formatEntry(entry) {
console.log(entry);
entry.date.match(datePattern);
var year = RegExp.$1;
var month = RegExp.$2;
if (month.length <= 1)
month = "0" + month;
var day = RegExp.$3;
if (day.length <= 1)
day = "0" + day;
var date = "" + year + "/" + month + "/" + day;
var arr = [date, entry.name, entry.price, entry.url];
return arr.join('\t') + "\n";
}
function popup(content) {
var generator = window.open('', 'name', 'height=250,width=700');
generator.document.write('<html><head><title>Amazon to TSV</title>');
generator.document.write('</head><body>');
generator.document.write('<pre>');
generator.document.write(content);
generator.document.write('</pre>');
generator.document.write('</body></html>');
generator.document.close();
return generator;
}
var itemDelimiter = " / ";
var total = {};
var year = 2016;
var all = false;
function init(num) {
if (typeof num !== 'number') {
var num = 0;
$('<div/>').css({
position: 'fixed',
left: 0,
top: 0,
width: '100%',
height: '100%',
zIndex: 1000,
backgroundColor: 'rgba(0,0,0,.7)',
color: '#fff',
fontSize: 30,
textAlign: 'center',
paddingTop: '15em'
}).attr('id', '___overlay').text('Amazonいくら使った?').appendTo('body');
var inp = window.prompt('何年分の注文を集計しますか?\n - 半角数字4桁で入力してください\n - 全期間を集計する場合は「all」と入力します', year.toString());
if (inp === 'all') {
all = true;
year = jQuery('div.top-controls select option:last').val().match(/[0-9]/g).join('');
}
else if (!/^[0-9]{4}$/.test(inp)) {
alert('正しい数値を入力してください');
$('#___overlay').remove();
return false;
}
else {
year = Number(inp);
}
}
// 第二引数を true にすると各商品とかエラーを逐一表示する
var progress = load(num, false);
$('#___overlay').text(year.toString() + '年の集計中… / ' + (num + 1) + 'ページ目');
progress.done(function (results) {
if (typeof total[year] === 'undefined') {
total[year] = results;
}
else {
total[year] = total[year].concat(results);
}
init(num + 1);
}).fail(function () {
if (all && new Date().getFullYear() > year) {
year++;
init(0);
}
else {
var _total = 0;
var _content = "";
jQuery.each(total, function (year, results) {
var yen = 0;
jQuery.each(results, function () {
yen += this.price;
$.each(this.items, function (i, item) {
_content += formatEntry(item);
});
});
_total += yen;
});
// result
$('#___overlay').remove();
alert('合計 ' + _total + ' 円');
popup(_content);
console.log('合計 ' + _total + ' 円');
}
});
}
function parsePage(data, results, lnks, verbose) {
var dom = jQuery.parseHTML(data);
jQuery(dom).find('div.order').each(function () {
var box = jQuery(this);
var emphasis = jQuery(box.find("a.a-link-emphasis"));
if (emphasis.length > 0) {
var path = emphasis.attr('href').trim().replace('/ref=/', '');
var lnk = 'https://www.amazon.co.jp' + path;
lnks.push(lnk);
}
else {
var dateText = jQuery(box.find('div.order-info span.value')[0]).text().trim();
var items = [];
var item = {};
var pubarr = box.find("div.a-row > span.a-size-small");
box.find("div.a-row > a.a-link-normal").each(function (j) {
item = {};
item['name'] = $(this).text().trim();
item['path'] = $(this).attr('href').trim().replace(/ref=.*/, '');
item['url'] = 'https://www.amazon.co.jp' + item['path'];
item['date'] = dateText;
item['author'] = $(pubarr[j * 2]).text().trim().replace(/(\n)/g, '').replace(/ +/g, ' ');
item['price'] = $(this).parent().parent().find("span.a-color-price").text().trim();
items.push(item);
});
var priceText = jQuery(box.find('div.order-info span.value')[1]).text();
var price = 0;
if (priceText.match(/[0-9]/g) != null) {
price = Number(priceText.match(/[0-9]/g).join(''));
}
if (verbose)
console.log(item, price);
results.push({ 'date': dateText, 'items': items, 'price': price });
}
});
}
function parsePage2(data, results, verbose) {
var dom = jQuery.parseHTML(data);
var dateText = jQuery(dom).find('span.order-date-invoice-item').first().text().trim();
var items = [];
var item = {};
jQuery(dom).find('div.shipment-is-delivered').each(function () {
var box = jQuery(this);
var pubarr = box.find("div.a-spacing-base");
box.find("div.a-row > a.a-link-normal").each(function (j) {
item = {};
item['name'] = $(this).text().trim();
//item['path'] = $(this).attr('href').trim();
item['path'] = $(this).attr('href').trim().replace(/ref=.*/, '');
item['url'] = 'https://www.amazon.co.jp' + item['path'];
item['date'] = dateText;
item['author'] = $(pubarr[j * 2]).text().trim().replace(/(\n)/g, '').replace(/ +/g, ' ');
item['price'] = $(this).parent().parent().find("span.a-color-price").text().trim();
items.push(item);
});
});
var priceText = jQuery(dom).find('div.a-first div.a-fixed-right-grid-inner div.a-span-last span.a-text-bold').text();
var price = 0;
if (priceText.match(/[0-9]/g) != null) {
price = Number(priceText.match(/[0-9]/g).join(''));
}
if (verbose)
console.log(item, price);
results.push({ 'date': dateText, 'items': items, 'price': price });
}
function load(num, verbose) {
var df = jQuery.Deferred();
var results = [];
var lnks = [];
var page = get(num, verbose);
page.done(function (data) {
parsePage(data, results, lnks, verbose);
var dfunc = function (url) {
var df2 = jQuery.Deferred();
get_url(url, verbose)
.done(function (data) {
parsePage2(data, results, verbose);
df2.resolve();
});
return df2.promise();
};
if (lnks.length > 0) {
var dlist = [];
for (var _i = 0; _i < lnks.length; _i++) {
var url = lnks[_i];
dlist.push(dfunc(url));
}
$('#___overlay').text(year.toString() + '年の集計中… / ' + (num + 1) + 'ページ目(サブ' + lnks.length + ')');
var dwhen = jQuery.when.apply(null, dlist);
dwhen.done(function () {
if (results.length <= 0) {
df.reject();
}
else {
df.resolve(results);
}
})
.fail(function () {
$('#___overlay').text(year.toString() + '年の集計中… / ' + (num + 1) + 'ページ目(サブ 失敗)');
setTimeout(function () {
if (verbose)
console.log("fail");
}, 500);
});
}
else {
if (results.length <= 0) {
df.reject();
}
else {
df.resolve(results);
}
}
});
return df.promise();
}
function get(num, verbose) {
var url = 'https://www.amazon.co.jp/gp/css/order-history?digitalOrders=1&unifiedOrders=1&orderFilter=year-' + year.toString() + '&startIndex=' + num * 10;
return get_url(url, verbose);
}
function get_url(strUrl, verbose) {
var df = jQuery.Deferred();
jQuery.ajax({
url: strUrl,
beforeSend: function (xhr) {
function toString() { return ''; }
xhr.setRequestHeader('X-Requested-With', 'toString');
},
success: function (data) {
df.resolve(data);
}
})
.fail(function (jqXHR, msg) {
if (verbose)
console.log("fail", msg);
});
return df.promise();
}
if (typeof jQuery !== 'function') {
var d = document;
var s = d.createElement('script');
s.src = '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
s.onload = function (e) { init(null); };
d.body.appendChild(s);
}
else {
init(null);
}
})();
このコードの作者はGithubのLibitinaさん。ソースページは「
Libitina/AmazonRecord2016」です。
コードをコピペ出来たら、あとはEnterを押してコードを実行するのみ。
Enterを押してもうまくいかない場合
うまくいかない場合は、注文履歴の何もないところで右クリックして「検証」をクリックしてデベロッパーツールを開く。そしてConsoleから再度コードをコピペしてEnterで実行してみよう。
すると、このように何年分の注文を集計するのか聞かれるので集計したい年を入力しよう。今までのすべての履歴を集計したい場合は「all」と入力する。今回は2016(今年)の集計を行ってみた。
2016年の集計中・・・。
ほんの数秒で2016年の間にアマゾンで使った金額が明らかになった。その額・・・65万? アマゾンに少々貢ぎすぎている気がする。だが、使っている金額が大きければ大きいほど、割引の恩恵を受ける事ができる。(開き直り)
年中、アマゾンの買い物を割引にする方法
もし、1年間で10万円以上アマゾンに貢いでいるなら、割引の恩恵は実感できるだろう。本題の年中アマゾンの買い物を割引にする方法に入ります。
その方法がGiftissue.comというサイトだ。このサイトではAmazonギフト券という、アマゾンだけで使えるポイントが入った金券を販売している。しかし、このサイトの面白いところはただ販売しているわけではない点です。
アマゾン界のお金そのものであるAmazonギフト券が、このGiftissueでは約10%も値引きして販売されている。つまりだ、ここでギフト券を購入してアマゾンでAmazonポイントに変換すると、実質的に10%割引でアマゾンで買い物が出来るということになる。
割引の効果を計算
もう一度、僕が今年アマゾンに貢いだ金額を見てみよう。その額は65万円だ。もしも、Giftissueで同じ額のAmazonポイントを用意しようと思ったら、必要な金額は・・。
65万円分のAmazonギフト券を普通に購入すると、必要な金額は65万円のままです。しかし先ほどGiftissueを見たように、このサイトではAmazonギフト券がいつも100%以下の価格で販売されています。
今日見ると10万円のギフト券が9.1%引きの90.9%で販売されていますから、65万円 * 90.9% = 590850円となり、普通に購入した場合と比較して59150円も割安にAmazonギフト券を購入可能ということになる。
約6万円も節約できるのは非常に大きいと思います。僕のように月に数万円、多い時で数十万円もアマゾンでショッピングをしている人なら、なおさらGiftissueの割安価格のAmazonギフト券はとても価値があります。
他の商品にも当てはめて割引の効果を確認
プレイステーション4は定価39980円ですが、Giftissueを経由させて3681円の割引。
今年発売された最新のグラフィックボード(GTX1080)も、8993円の割引が掛かってかなり買いやすくなります。
最近、主流になりつつある回転盤の無い電子レンジ。2484円の割引。
個人的に欲しいと思いつつ中々手を出せていないデスクチェア。13000円も割引されると途端に買いやすく感じます。
単価の安い商品にも10%の割引は効果がある。
ちりも積もれば山となる。僕はこういった安い日用品や調味料も、アマゾンで購入する派なので10%弱のGiftissueの割引されたAmazonギフト券は重宝しています。
つまりこういうことですから。2016年に入ってから65万円もアマゾンでショッピングに費やしているけれど、Giftissue経由のAmazonギフト券のおかげで約6万円も割安に買い物ができています。
Giftissueはアマゾン以外にも割引効果がある
Giftissueは、何もAmazonギフト券だけに効果を発揮するわけではない。他のサイトやサービスでも、高い割引効果を期待できます。一例を出していきます。
iTunesギフトカード
iTunesギフトカードも、このように8%割引で販売している。
WebMoneyギフトカード
オンラインゲームの課金にも利用できるWebMoneyも、この通り。10000円の課金がしたいと思ったらGiftissueを経由することで5%安く同じ額の課金が可能だ。
GooglePlayギフトカード
GooglePlayでアプリを購入する人にとっては有用だろう。
LINEプリペイドカード
最近はLINEも商品が増えた。LINEスタンプ以外に、LINEの着せ替えなどが販売されるようになったので、LINEプリペイドカードも多いに需要があると思います。
まとめ
Amazonのショッピングを年中割引にする方法の答えは、GiftissueでAmazonギフト券を購入して、そのアマゾンポイントでショッピングをするということ。ギフト券の在庫によっては狙った通りの割引に出来ないこともあるが、それでも「割引は割引」だ。
何もせずに普通に買い物をするよりも、Giftissueを経由してギフト券を購入してから買い物したほうが、1年間という長い時間で見た時に大きな節約効果が見込めます。僕の場合はGiftissueを経由していれば1年間で10万円は節約できそうですからね。
Giftissue(ギフティッシュ)の公式サイトを見てみる
年中アマゾンで割引ショッピングが出来るということに興味を持った人は、一度Giftissueを利用してみてはどうだろうか。以上、Amazonを年中割引価格で利用する方法でした。
-
小遣い稼ぎ