Amazon Business: Our Biggest Product Update Yet!

Amazon Business: Our Biggest Product Update Yet!

Amazon Business: Our Biggest Product Update Yet!

Product Updates

Product Updates

Product Updates

Amazon Business: Our Biggest Product Update Yet!

Amazon Business: Our Biggest Product Update Yet!

Amazon Business: Our Biggest Product Update Yet!

You can now buy the products you love directly through PerkUp

You can now buy the products you love directly through PerkUp

You can now buy the products you love directly through PerkUp

2

2

min read

min read

A screenshot of a search engine results page displaying a variety of images and links related to keyword searches.
A screenshot of a search engine results page displaying a variety of images and links related to keyword searches.
A screenshot of a search engine results page displaying a variety of images and links related to keyword searches.
In this Post

We’re excited to announce that our customers can now purchase Amazon Business products directly in PerkUp! Our customers can now buy the products they love in just two simple steps.

It’s become clear that our customers love Amazon Business. In fact, Amazon Business accounts for over 30% of all our transactions to date, which begged the question:

How can we make it even easier for our customers to buy products they really want?

After giving it considerable thought, the answer was obvious. We needed to bring Amazon Business products directly into PerkUp, which is why we have partnered with Amazon Business. PerkUp customers in the US now have access to the entire Amazon Business catalogue along with Amazon Business Prime express shipping on qualified orders, directly in their PerkUp accounts!

We can’t wait to see how people start using this new feature. If you’re looking for a way to start sending your global team awesome spot rewards, we can help!

import { useEffect } from "react"


export default function CarouselFixer() {

useEffect(() => {

// Wait for CMS content to render

const init = () => {

// Find all horizontally scrollable containers inside CMS content

const contents = document.querySelectorAll(".framer-text, [class*='content'], [class*='Content']")


contents.forEach((content) => {

const scrollEls = content.querySelectorAll("ul, ol, div")

scrollEls.forEach((el) => {

const htmlEl = el as HTMLElement

const style = window.getComputedStyle(htmlEl)


// Target only elements that overflow horizontally (the carousel)

if (

style.overflowX === "scroll" ||

style.overflowX === "auto" ||

htmlEl.scrollWidth > htmlEl.clientWidth

) {

attachScrollBehavior(htmlEl)

}

})

})

}


const attachScrollBehavior = (el: HTMLElement) => {

// Prevent double-attaching

if (el.dataset.scrollFixed) return

el.dataset.scrollFixed = "true"


el.style.cursor = "grab"

el.style.userSelect = "none"

el.style.webkitOverflowScrolling = "touch"

el.style.scrollbarWidth = "none"


let startX = 0

let scrollStart = 0

let isDown = false

let dragged = false


const onMouseDown = (e: MouseEvent) => {

isDown = true

dragged = false

startX = e.clientX

scrollStart = el.scrollLeft

el.style.cursor = "grabbing"

}


const onMouseMove = (e: MouseEvent) => {

if (!isDown) return

const dx = e.clientX - startX

if (Math.abs(dx) > 5) dragged = true

el.scrollLeft = scrollStart - dx

}


const onMouseUp = () => {

isDown = false

el.style.cursor = "grab"

}


const onClickCapture = (e: MouseEvent) => {

if (dragged) {

e.preventDefault()

e.stopImmediatePropagation()

dragged = false

}

}


const onWheel = (e: WheelEvent) => {

if (Math.abs(e.deltaX) > 0) {

e.preventDefault()

el.scrollLeft += e.deltaX

}

}


el.addEventListener("mousedown", onMouseDown)

el.addEventListener("mousemove", onMouseMove)

el.addEventListener("mouseup", onMouseUp)

el.addEventListener("mouseleave", onMouseUp)

el.addEventListener("click", onClickCapture, true)

el.addEventListener("wheel", onWheel, { passive: false })

}


// Try immediately, then retry after delays to catch late CMS renders

init()

setTimeout(init, 500)

setTimeout(init, 1500)

}, [])


// Renders nothing — invisible helper

return null

}