我有一个产品列表,如果在列表/类别页面上找到它们,则需要添加徽章。到目前为止我有这个,但它为每个sku添加徽章而不是指定的徽章。
我到目前为止的代码是:
const $discountedProducts = options.state.get('$discountedProducts')
const elibigleSKUs = [
'5981BZ501', 'CBMV03300', 'PCMC03300', 'PCMC46800', 'PCMS03300',
'PCMS46800', 'PCMV03300', 'PCMV46800', 'PKMC03300', 'PKMC46800',
'PKMS46800', 'PKMV03300', 'PKMV46800', 'RACOU4800', 'RAFRX6600',
'RAJUC6000', 'RALWC6001', 'RALWC6002', 'RAMC03300', 'RAMC46800',
'RAMS03300', 'RAMS46800', 'RAMV03300', 'RCMC46800', 'RCMS03300',
'RCMS46800', 'RCMV03300', 'RCMV46800', 'SEBCBH700', 'SECOU4800',
'SEFRX6600', 'SEJUC6000', 'SELWC6000', 'SEMC03300', 'SEMC46800',
'SEMS03300', 'SEMS46800', 'SEMV03300', 'SEMV46800', 'SEOS65100',
'SEOX02702', 'SEOX02704', 'STMC03300', 'STMC46800', 'STMS03300',
'STMS46800', 'STMV03300', 'STMV46800', 'SWCOU4800', 'SEATAY600',
'SEAT65100', 'RAAT65100', 'PKMS03300', 'RAATAY600'
]
const targets = [
'.productCard_mediaContainer'
]
poller(targets, ($products) => {
const $discountedProducts = $products.filter(function () {
const $this = $(this)
const $link = $this.find('.productCard_mediaContainer > a')
const currentSku = String($link.data('code')).toUpperCase()
if (elibigleSKUs.indexOf(currentSku) >= -1) {
return true
}
return false
})
if ($discountedProducts.length) {
$('.productCard_mediaContainer').append('<div class="t028-percent-off productCard_promoLine"><span class="discount"><strong>10%</strong> discount applied</span></div>').addClass('t028');
}
})
所以它针对一个容器,并尝试每个sku注入徽章。如果这不完美,请道歉,但我比Dev更喜欢Design / UX。任何帮助将非常感激。如果这还不够,我可以添加更多信息。
答案 0 :(得分:0)
我建议在您的轮询功能中添加console.log()
语句,以查看您获得的内容。你可以这样做:
if (elibigleSKUs.indexOf(currentSku) >= -1) {
console.log("This SKU is eligible " + currentSku);
return true
}
console.log("This SKU is NOT eligible " + currentSku);
return false
这应该给你一个开始的地方。