NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name amazon SC Find Order for Customer
// @namespace http://tampermonkey.net/
// @version 1
// @description Adds a button to amazon Seller Central Messages Inbox to find buyers by email address
// @author rin
// @license MIT
// @match http*://sellercentral.amazon.com/messaging/inbox/*
// @match http*://sellercentral.amazon.ca/messaging/inbox/*
// @match http*://sellercentral.amazon.com.mx/messaging/inbox/*
// @match http*://sellercentral-europe.amazon.com/messaging/inbox/*
// @match http*://sellercentral.amazon.co.uk/messaging/inbox/*
// @match http*://sellercentral.amazon.de/messaging/inbox/*
// @match http*://sellercentral.amazon.es/messaging/inbox/*
// @match http*://sellercentral.amazon.it/messaging/inbox/*
// @match http*://sellercentral.amazon.fr/messaging/inbox/*
// @match http*://sellercentral.amazon.co.jp/messaging/inbox/*
// @match http*://sellercentral.amazon.in/messaging/inbox/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
var options = {
buyerEmailContainerId: 'threadBuyerProxyEmail',
orderInfoContainerId: 'dynamic-context'
};
var buttonOptions = {
listBaseUrl: '/gp/orders-v2/list/ref=ag_myo_apsearch_myosearch?',
label: '🔎Find Order',
buttonContainerElement: 'div',
containerId: 'links-wrap'
};
var encodeParams = function (params) {
var esc = encodeURIComponent;
var query = Object.keys(params)
.map(key => esc(key) + '=' + esc(params[key]))
.join('&');
return query;
};
var getBuyerEmail = function (buyerEmailContainerId) {
return document.getElementById(buyerEmailContainerId).innerText;
};
var searchUrl = function (buttonOptions, buyerEmail) {
var searchParams = {
searchType: 'BuyerEmail',
preSelectedRange: '365',
searchDateOption: 'preSelected',
searchKeyword: buyerEmail
};
return buttonOptions.listBaseUrl + encodeParams(searchParams);
};
var addButton = function (buttonOptions, buyerEmail) {
var button = document.createElement('a');
button.setAttribute('href', searchUrl(buttonOptions, buyerEmail));
button.append(buttonOptions.label);
var buttonContainer = document.createElement(buttonOptions.buttonContainerElement);
buttonContainer.appendChild(button);
document.getElementById(buttonOptions.containerId).appendChild(buttonContainer);
};
var orderInfoMissing = document.getElementById(options.orderInfoContainerId).childElementCount <= 1;
if (orderInfoMissing) {
var buyerEmail = getBuyerEmail(options.buyerEmailContainerId);
addButton(buttonOptions, buyerEmail);
}
})();