91³Ô¹ÏÍø

Watch CBS News

Deal or no deal? With early Black Friday sales, an expert shares how to be a savvy shopper.

What in the heck is happening with Black Friday these days? It seems like everyone is trying to beat the competition to your wallet. 

In fact, one major retailer is launching its Black Friday deals on Thursday, eight days before Black Friday. 

So, with all these deals, you certainly have to be on the lookout for scams and deals that seem too good to be true. 

Consumer distrust in 'deals'

Whether it's technology, small appliances, fall apparel, or beauty supplies, there's a bounty offered over the next week or so, but it requires savvy shopping. 

Now, more than a week ahead of Black Friday, Best Buy's deals go live on Thursday - doorbusters and all. They're not alone. The early Black Friday flag is being raised by Amazon, Walmart and Target, to name a few. 

With so many deals happening more than a week prior to the traditional Black Friday, it can lead to customer distrust. 

"They found that 84% of consumers don't believe that the discounts are real, and I think that this is why retailers are kind of going rogue," said Trae Bodge, the Smart Shopping Expert with TrueTrae.com. "They're announcing discounts all over the place." 

Do your window shopping

So, where does this leave you as a consumer? Bodge said that it's leaving shoppers with less time and resources to prepare, which means before you click "add to cart," make sure to do some virtual window shopping. 

"Use a tool like Yahoo Shopping, Google Shop, search the name of the item, and get a sense of where it is being sold, and for how much," she explained. 

When you do that, according to Bodge, you're in a knowledgeable position, and you'll find out if you're getting a real deal or if it's just smoke and mirrors. 

"I do, however, think it's safest to wait until Black Friday and Cyber Monday," Bodge added. "[I] don't think that people need to shop early." 

When to shop Black Friday deals?

In the past, Bodge would caution parents and families to wait to buy those Christmas toys until December, but now, with tariffs and supply chain issues, it's no longer the case. 

"I might say, if you're buying a hot toy, something that's on all the popular lists, you might want to look at that now, because it could sell out," she said. 

When it comes to hot toys and popular items, Bodge said it might be a good idea to commit to buying it now, but hold onto the receipt because it could go on an even deeper sale later. The last thing you want to do is pull the trigger only to find it cheaper elsewhere. 

Finally, a study from Lightspeed found that 41% of Gen Z shoppers and 36% of Millennial shoppers report buyer's regret within a day of making a purchase, so Bodge concluded by saying that the antidote for that is to really do some soul-searching before you buy, and that way, you know if you're getting a deal or not. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });