🏠 Home 

Ebay Include Shipping

Show the true total including shipping on Ebay


Install this script?
// ==UserScript==
// @name		Ebay Include Shipping
// @namespace	ebay_include_shipping
// @description	Show the true total including shipping on Ebay
// @homepageURL	https://github.com/daraeman/ebay_include_shipping
// @author		daraeman
// @version		1.0.4
// @date		2018-07-20
// @include		/https?:\/\/www\.ebay\.com\/*/
// @require		https://code.jquery.com/jquery-3.2.1.slim.min.js
// @require		https://cdnjs.cloudflare.com/ajax/libs/big.js/5.0.3/big.min.js
// ==/UserScript==
(function( $, Big ) {
const debug = true;
const debug_error = true;
let page;
log( "Ebay Include Shipping" );
function getPage() {
log( "getPage" );
if ( $( "body.s-page" ).length )
page = "search";
}
function doPage() {
log( "doPage" );
if ( page === "search" )
doSearchPage();
}
function doSearchPage() {
log( "doSearchPage" );
$( ".srp-r###lts .s-item" ).each( ( i, node ) => {
let el = $( node );
log( "el", el );
let item_text = getItemPriceEl( el ).text().trim();
log( "item_text", item_text );
let currency = item_text[0];
log( "currency", currency );
let price_string = item_text.substr( 1 );
log( "price_string", price_string );
if ( / to /.test( price_string ) ) {
log( "multiple prices detected [%s], skipping", price_string );
return;
}
let item_price;
try {
item_price = new Big( price_string );
log( "item_price", item_price );
} catch ( error ) {
error( "error while parsing number [%s]", item_price );
return;
}
let shipping_string = getShippingPriceEl( el ).text();
log( "shipping_string", shipping_string );
let shipping_text = ( /shipping/.test( shipping_string ) ) ? shipping_string.trim().substr( 2 ).replace( /shipping/, "" ).trim() : "";
log( "shipping_text", shipping_text );
if ( shipping_text ) {
let shipping_price = new Big( shipping_text );
addSearchItemShippingPrice( el, item_price.plus( shipping_price ), currency );
}
});
}
function getItemPriceEl( parent, post_add ) {
log( "doSearchPage", parent, post_add );
let selector = ( post_add ) ? ".s-item__price:not( .ebay_include_shipping )" : ".s-item__price";
return parent.find( selector );
}
function getShippingPriceEl( parent ) {
log( "doSearchPage", parent );
return parent.find( ".s-item__shipping" );
}
function getShippingPriceParentEl( el ) {
log( "getShippingPriceParentEl", el );
return el.parent();
}
function addSearchItemShippingPrice( el, price, currency ) {
log( "addSearchItemShippingPrice", el, price, currency );
let price_parent_el = getShippingPriceParentEl( el );
log( "price_parent_el", price_parent_el );
let item_price_el = getItemPriceEl( el, true );
log( "item_price_el", item_price_el );
let item_price = item_price_el.text();
log( "item_price", item_price );
item_price_el.html( '<span class="ebay_include_shipping">'+ currency + price.toFixed( 2 ).toString() +' incl. shipping</span><br>' );
item_price_el.find( "span" ).css( {
"font-size": "20px",
});
let shipping_price_el = getShippingPriceEl( el );
log( "shipping_price_el", shipping_price_el );
item_price_el.append( '<span class="ebay_include_shipping">(' + item_price.trim() + shipping_price_el.text().trim().replace( "+", " + " ) +")</span>" );
item_price_el.find( "span" ).last().css({
"display": "inline-block",
"margin-top": "4px",
"font-size": "13px",
"font-weight": 400,
});
shipping_price_el.hide();
}
function log() {
if ( debug )
console.log( ...arguments );
}
function error() {
if ( debug_error )
console.error( ...arguments );
}
function init() {
log( "init" );
getPage();
doPage();
}
init();
})( jQuery, Big );