Skip to content

Instantly share code, notes, and snippets.

@jacenko
Last active March 22, 2020 14:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jacenko/a9b7ff278ffa93e078d44276e103ca3e to your computer and use it in GitHub Desktop.
Save jacenko/a9b7ff278ffa93e078d44276e103ca3e to your computer and use it in GitHub Desktop.
Amazon SellerCentral Facelift
// ==UserScript==
// @name Amazon SellerCentral Facelift
// @namespace http://tampermonkey.net/
// @version 0.6a
// @description Shows additional sales data on the SellerCentral homepage. Use at your own risk.
// @author Deniss Jacenko
// @match https://sellercentral.amazon.com/gp/homepage.html/*
// @match https://sellercentral.amazon.com/home
// @match https://sellercentral.amazon.com/cm/*
// @match https://sellercentral.amazon.com/sspa/*
// @grant none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==
(function() {
var current_url = window.location.href;
if (current_url.indexOf('//sellercentral.amazon.com/gp/homepage.html') > 0 || current_url.indexOf('//sellercentral.amazon.com/home') > 0) {
Number.prototype.toLocaleFixed = function(n) {
return this.toLocaleString(undefined, {
minimumFractionDigits: n,
maximumFractionDigits: n
});
};
function toNum(stringNum) {
return stringNum.replace(/\$|,/g,'');
}
function getPercentageChange(oldNumber, newNumber){
var decreaseValue = toNum(oldNumber) - toNum(newNumber);
return (Math.round((decreaseValue / toNum(oldNumber)) * 100) * -1);
}
var salesArray = [];
$("#sales-summary-table tbody tr td span").each(function(index) {
if ($(this).text() != "Ordered product sales" && $(this).text() != "Units") {
var number = toNum($(this).text());
salesArray.push(number);
}
});
var dollarsToday = salesArray[0];
var unitsToday = salesArray[1];
var dollars7Days = salesArray[2];
var units7Days = salesArray[3];
var dollars15Days = salesArray[4];
var units15Days = salesArray[5];
var dollars30Days = salesArray[6];
var units30Days = salesArray[7];
var estYearDollarsToday = "$"+(dollarsToday*365.25).toLocaleFixed(2);
var estYearDollars7Days = "$"+(dollars7Days/7*365.25).toLocaleFixed(2);
var estYearDollars15Days = "$"+(dollars15Days/15*365.25).toLocaleFixed(2);
var estYearDollars30Days = "$"+(dollars30Days/30*365.25).toLocaleFixed(2);
var avgDayDollarsToday = "$"+(dollarsToday/1).toLocaleFixed(2);
var avgDayDollars7Days = "$"+(dollars7Days/7).toLocaleFixed(2);
var avgDayDollars15Days = "$"+(dollars15Days/15).toLocaleFixed(2);
var avgDayDollars30Days = "$"+(dollars30Days/30).toLocaleFixed(2);
var estYearUnitsToday = (unitsToday*365.25).toLocaleFixed(0);
var estYearUnits7Days = (units7Days/7*365.25).toLocaleFixed(0);
var estYearUnits15Days = (units15Days/15*365.25).toLocaleFixed(0);
var estYearUnits30Days = (units30Days/30*365.25).toLocaleFixed(0);
var avgDayUnitsToday = (unitsToday/1).toLocaleFixed(1);
var avgDayUnits7Days = (units7Days/7).toLocaleFixed(1);
var avgDayUnits15Days = (units15Days/15).toLocaleFixed(1);
var avgDayUnits30Days = (units30Days/30).toLocaleFixed(1);
var fifteenDayChange = getPercentageChange(estYearDollars30Days, estYearDollars15Days);
var sevenDayChange = getPercentageChange(estYearDollars15Days, estYearDollars7Days);
var todayChange = getPercentageChange(estYearDollars7Days, estYearDollarsToday);
var salesPercentChanges = ["", todayChange, sevenDayChange, fifteenDayChange, ""];
var estSalesArray = [];
estSalesArray.push("Estimated yearly sales", estYearDollarsToday, estYearDollars7Days, estYearDollars15Days, estYearDollars30Days);
var estUnitsArray = [];
estUnitsArray.push("Estimated yearly units", estYearUnitsToday, estYearUnits7Days, estYearUnits15Days, estYearUnits30Days);
var avgDollarsArray = [];
avgDollarsArray.push("Average daily sales", avgDayDollarsToday, avgDayDollars7Days, avgDayDollars15Days, avgDayDollars30Days);
var avgUnitsArray = [];
avgUnitsArray.push("Average daily units", avgDayUnitsToday, avgDayUnits7Days, avgDayUnits15Days, avgDayUnits30Days);
$("#sales-summary-table tbody tr").each(function(index) {
if (index) {
var salesPercentColor = "default";
var salesPercentSign = "";
var salesPercentPlus = "";
var arrowSign = "";
if (salesPercentChanges[index]) {
salesPercentPlus = salesPercentChanges[index] > 0 ? "+" : "";
salesPercentColor = salesPercentChanges[index] >= 0 ? "green" : "red";
salesPercentColor = salesPercentChanges[index] == 0 ? "default" : salesPercentColor;
salesPercentSign = "%";
arrowSign = "⤵";
}
$(this).append('<td class="a-text-right"><span class="a-text-bold">'+estSalesArray[index]+'</span><strong class="a-percent-change a-percent-'+salesPercentColor+'"><span class="a-arrow">'+arrowSign+'</span> &nbsp;'+salesPercentPlus+salesPercentChanges[index]+salesPercentSign+'</strong></td>');
$(this).append('<td class="a-text-right"><span class="a-text-bold">'+estUnitsArray[index]+'</span></td>');
$(this).append('<td class="a-text-right"><span class="a-text-bold">'+avgDollarsArray[index]+'</span></td>');
$(this).append('<td class="a-text-right"><span class="a-text-bold">'+avgUnitsArray[index]+'</span></td>');
} else {
$(this).append('<td class="a-text-right"><span class="a-color-secondary">'+estSalesArray[index]+'</span></td>');
$(this).append('<td class="a-text-right"><span class="a-color-secondary">'+estUnitsArray[index]+'</span></td>');
$(this).append('<td class="a-text-right"><span class="a-color-secondary">'+avgDollarsArray[index]+'</span></td>');
$(this).append('<td class="a-text-right"><span class="a-color-secondary">'+avgUnitsArray[index]+'</span></td>');
}
});
$("#gw-sentry, #widget-fnFbrJ, #widget-fotzTi, #widget-fqDNwk").remove();
$(".gw-right-col").css("width", "74.75%");
$("table.a-keyvalue td, table.a-keyvalue th").css("border", "none");
$("table.a-keyvalue td, table.a-keyvalue th").css("padding", "8px 14px 7px");
$("#sales-summary-table tbody tr:odd").css("background-color", "#F6F6F6");
$("#sales-summary-table tbody th").css("padding-left", "6px");
$("#sales-summary-table tbody th").css("min-width", "4em");
$("#sales-summary-table tbody th").css("padding-right", "0");
$(".a-section.sc-widget-content").css("padding-right", "14px");
$(".a-text-right").attr("style", "position:relative;overflow:inherit;border:none;");
$(".gw-cols").attr("style", "max-width: 85em;margin:0 auto;");
$(".a-percent-change").attr("style", "position:absolute;font-size:.5em;bottom:-11px;right:12px;padding:0px 4px;border-radius:9px;background-color:rgba(255,255,255,.5);");
$(".a-box:not(#paymentsPageLink)").attr("style", "border-radius:5px !important;border:none;");
$("<style type='text/css'> \
.a-percent-red{ color:rgba(192, 57, 43,0.9); } \
.a-percent-green{ color:rgba(77,175,124,0.9); } \
.a-percent-default{ color:rgba(0,0,0,0.9); } \
.a-arrow{ color: #333; display: inline-block; transform: rotate(-135deg); font-size: 1.5em; }</style>").appendTo("head");
$("#widget-fmTsLK").insertBefore( $("#widget-fxZAQm") );
$("#widget-foOBvR").insertAfter( $("#widget-fti8vf") );
$("title").text("🏠 "+avgDayDollarsToday+"/"+unitsToday+" units today");
} else if (current_url.indexOf('//sellercentral.amazon.com/cm') || current_url.indexOf('//sellercentral.amazon.com/sspa')) {
$("title").text("Campaign Manager");
}
var approxTimeToRefresh = 1000*60*30;
var timeToRefresh = Math.floor(Math.random() * (approxTimeToRefresh*3 - approxTimeToRefresh*.5) ) + approxTimeToRefresh*.5;
setTimeout(function(){ location.reload(); }, timeToRefresh);
})();
@jacenko
Copy link
Author

jacenko commented Jul 29, 2019

Screen Shot 2019-07-29 at 7 18 24 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment