Amazon で商品を購入しいるみなさま (このページを見ている人はきっと、みんな使っていますよね) Amazon で商品を購入するとき、 販売元 とか気にしていますか? 仕組みは分かりませんが、価格が最安値 になっている 販売元 が 優先的に表示 されているのかと思っています。 私の場合、商品の製造元 もしくは、Amazon もしくは、信頼している販売元 であるかを確認して購入しています。 でも、販売元 を切り替えるのは面倒ですよね。 そこで、販売元を Amazon に切り替える Chromeの拡張機能 Sold by amazon を作成してみました。 (同名の拡張機能があるので、名前で検索するときは、注意してくださいね。) 商品の製造元 や 信頼している販売元 に切り替える機能を作るのは、 さすがに難しいので、こちらは断念しました。
|

Sold by amazon は、
サポートされているすべてのAmazonサイトに、
'販売元:Amazon'リンクおよび、'短縮URL'リンクを追加します。
下記の2種類のURLタイプに対応しています。
- https://[Amazonドメイン]/[説明]/dp/ASIN/・・・
- https://[Amazonドメイン]/[説明]/gp/product/ASIN/・・・
どう表示されるかというと
下図を見てもらえば分かると思いますが、価格表示の上部に追加します。
(”リンク”と書かれた緑色の吹き出しの部分です。)

おまけとして、商品名タイトルの後ろに、
短縮URLリンクも追加しています。
Amzaonで検索する時点で、制限する方法もありますが、 商品を検索してから、 Amazonから販売しているかを確認するほうが、 効率的だと思います。 また、この拡張機能により、商品購入直前に、 間違ってAmazon以外から購入してしまうリスクを軽減したり、 メールやSNSなどに転記しやすくなると思います。 |
ご活用いただければ、幸いです。
また、何かありましたら、コメントください。
全部じゃないけど、ソースコード公開しますね。
これで少しは安心していただけますでしょうか。
function observeDOMChanges() {
// 監視対象のDOM要素
const targetNode = document.getElementById("ないしょ");
if (targetNode == null) {
return;
}
// (変更を監視する) オブザーバーのオプション
const config = {
childList: true, // (boolean) 子ノードの追加・削除を監視するか
subtree: true, // (boolean) 監視対象の子孫ノードの変化も監視するか
};
// 変更が発見されたときに実行されるコールバック関数
const callback = function (mutationsList, observer) {
for (const mutation of mutationsList) {
for (const node of mutation.removedNodes) {
// 自動的に削除されているけど、念のため削除実施
if (node.id == "ないしょ") {
removeAmazonLink();
removeShortUrlLink();
}
}
for (const node of mutation.addedNodes) {
if (node.id == "ないしょ") {
addShortUrlLink();
addAmazonLink();
}
}
}
};
// コールバック関数に結びつけられたオブザーバーのインスタンスを生成
const observer = new MutationObserver(callback);
// 対象ノードの設定された変更の監視を開始
observer.observe(targetNode, config);
// 初期読み込み時の処理
addShortUrlLink();
addAmazonLink();
}
// ページが完全にロードされた後にオブザーバーを開始
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', observeDOMChanges);
} else {
observeDOMChanges();
}
// 短縮URLリンク 追加処理
function addShortUrlLink() {
// URLが変わっていないことがある
// 変わるまで、ごにょごにょ
// 短縮URLのパス名を取得
const newUrl= getUrlPathName();
// リンクを追加する要素を取得
let element = document.getElementById("ないしょ");
// リンク
let link = document.createElement("a");
link.id = "ないしょ";
link.textContent = "\u26b9"; // 短縮マーク
link.href = newUrl.href;
// title 配下に リンクを追加
element.append(link);
}
// Amazonリンク 追加処理
function addAmazonLink() {
// URLが変わっていないことがある
// 変わるまで、ごにょごにょ
// 短縮URLのパス名を取得
const newUrl= getUrlPathName();
// AmazonのmerchantIDを取得
const id = getMerchantID();
// search パラメーターを変更
newUrl.search = "?m=" + id;
// リンクを追加する要素を取得
let element = document.getElementById("ないしょ");
// リンク
let link = document.createElement("a");
link.id = ないしょ;
link.textContent = getLinkText();
link.href = newUrl.href;
link.style.textDecoration = "underline";
let div = document.createElement("div");
div.id = ないしょ;
div.style = "いろいろ設定";
div.append(link);
// element 配下の先頭に リンクを追加
element.insertBefore(div, element.firstChild);
}
コメント