🏠 Home 

Amazon.com Item Not FBA

Know when viewing non-FBA item pages


Install this script?
// ==UserScript==
// @name        Amazon.com Item Not FBA
// @description Know when viewing non-FBA item pages
// @author      dehotjava
// @license     MIT
// @namespace   https://greasyfork.org/en/scripts/407562-amazon-item-not-fba
// @match       https://*.amazon.com/dp/*
// @match       https://*.amazon.com/*/dp/*
// @match       https://*.amazon.com/gp/product/*
// @match       https://*.amazon.com/*/ASIN/*
// @match       https://*.amazon.ca/dp/*
// @match       https://*.amazon.ca/*/dp/*
// @match       https://*.amazon.ca/gp/product/*
// @match       https://*.amazon.ca/*/ASIN/*
// @run-at      document-idle
// @version     27
// @grant       none
// @icon        https://www.amazon.com/favicon.ico
// ==/UserScript==
var txt_caution = null
var txt_caution_cart = null
var selected_section = null
var cart_fly = document.getElementById('nav-flyout-ewc')
var cart_add = document.getElementById('submit.add-to-cart') || document.getElementById('submit.add-to-cart-ubb')
var info_oos = document.getElementById('outOfStock') || document.getElementById('backInStock')
var info_unqual = document.getElementById('unqualifiedBuyBox')
if (cart_add != null) {
var cart_section = cart_add.closest('.a-box-inner').children
var info_merchant = cart_add.closest('.a-box-inner').children[0]
}
// normal section and another section (i.e. subscribe and save, used, etc.)
if (document.querySelectorAll('div[role="button"][aria-checked="true"]').length > 0) {
update_selected_section()
// check fba again when new/used/etc. section selected
for (const li of document.querySelectorAll('div[role="button"]')) {
li.addEventListener('click', function() {
setTimeout(function() {
update_selected_section()
delay_check_fba()
}, 500)
})
}
}
// selected new product variant by drop down menu and etc.
var observer = new MutationObserver(function (event) {
delay_check_fba()
})
observer.observe(document.getElementById('unifiedPrice_feature_div'), {
attributes: true,
attributeFilter: ['class'],
childList: false,
characterData: false
})
// selected new product variant by side-by-side buttons
if (document.getElementById('twister') != null) {
for (const li of document.querySelectorAll('#twister>div>ul>li')) {
li.addEventListener('click', function() {
location.href = li.getAttribute('data-dp-url')
})
}
}
// check fba after document loaded
check_fba()
function delay_check_fba() {
setTimeout(function(){
check_fba()
}, 500)
}
function update_selected_section() {
selected_section = document.querySelectorAll('div[role="button"][aria-checked="true"]')[0].parentElement
info_merchant = document.querySelectorAll('div[role="button"][aria-checked="true"]')[0].parentElement
}
function check_fba() {
if (info_merchant == null) {
return
}
var info_merchant_txt = info_merchant.textContent.replace(/[]+|[\s]{2,}/g, '\n')
if (document.getElementById('merchant-info') != null) {
info_merchant_txt += document.getElementById('merchant-info').textContent.replace(/[]+|[\s]{2,}/g, '\n')
}
console.log(info_merchant_txt)
if (
(info_merchant_txt.search('Amazon.com Services') == -1 &&
info_merchant_txt.search('Fulfilled by Amazon') == -1 &&
info_merchant_txt.search('Ships from and sold by Amazon.') == -1 &&
info_merchant_txt.search('Ships from\nAmazon') == -1 &&
info_merchant_txt.search('Ships from:\nAmazon') == -1 &&
info_merchant_txt.search('To buy, select') == -1 &&
info_merchant_txt.search('Deal') == -1 &&
info_merchant_txt.search('Early Access') == -1 &&
info_merchant_txt.search('Kindle') == -1 &&
info_merchant_txt.search('audiobook') == -1
) &&
(info_oos == null) &&
(info_unqual == null)
) {
if (cart_fly != null && document.getElementById('nav-flyout-ewc').style.cssText.search('right') != -1) {
cart_fly.style.marginRight = '8px'
cart_fly.style.marginTop = '7px'
cart_fly.style.clipPath = "inset(0px 0px 14px 0px)"
}
if (document.getElementById('skiplink') != null) {
document.getElementById('skiplink').remove()
}
document.body.style.border = 'red'
document.body.style.borderStyle = 'inset'
document.body.style.borderWidth = '0.5em'
if (txt_caution != null) {
txt_caution.remove()
}
if (txt_caution_cart != null) {
txt_caution_cart.remove()
}
txt_caution = document.createElement("p")
txt_caution.id = 'notfba'
txt_caution.innerHTML = '* NOT FULFILLED BY AMAZON *'
txt_caution.style.background = 'black'
txt_caution.style.color = 'red'
txt_caution.style.fontSize = 'xx-large'
txt_caution.style.margin = 'inherit'
txt_caution.style.textAlign = 'center'
txt_caution.style.textTransform = 'uppercase'
document.documentElement.insertAdjacentElement('afterbegin', txt_caution)
txt_caution_cart = txt_caution.cloneNode(true)
txt_caution_cart.id = 'notfba_cart'
txt_caution_cart.innerHTML = '* NOT FBA *'
txt_caution_cart.style.background = 'inherit'
txt_caution_cart.style.fontSize = 'medium'
txt_caution_cart.style.margin = '0 0 14px 0'
if (cart_add != null) {
cart_add.parentElement.prepend(txt_caution_cart)
}
console.log('Is NOT FBA!')
} else {
console.log('Is FBA!')
document.body.style.border = 'none'
if (cart_fly != null && document.getElementById('nav-flyout-ewc').style.cssText.search('right') != -1) {
cart_fly.style.marginRight = 'auto'
cart_fly.style.marginTop = 'auto'
cart_fly.style.clipPath = 'none'
}
if (txt_caution != null) {
txt_caution.remove()
}
if (txt_caution_cart != null) {
txt_caution_cart.remove()
}
}
}