添加特定的徽章'如果它是提供的sku

时间:2018-02-14 17:00:57

标签: javascript e-commerce

我有一个产品列表,如果在列表/类别页面上找到它们,则需要添加徽章。到目前为止我有这个,但它为每个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。任何帮助将非常感激。如果这还不够,我可以添加更多信息。

1 个答案:

答案 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

这应该给你一个开始的地方。