DEV Community

Cover image for Black Friday fake discounts: I built two Apify Actors to check if a sale is real
Viktor Kondas
Viktor Kondas

Posted on Originally published at vibecoderslife.com AI-assisted

Black Friday fake discounts: I built two Apify Actors to check if a sale is real

Disclosure: This post includes an affiliate / referral link for Apify signup. Actor Store links are my own Actors. Near the end I mention my own paid Playbook with an optional seasonal discount — the article stands without buying anything. No paid placement by Apify.

Black Friday 2026 is Friday 27 November. Between now and then, a lot of prices quietly go up so they can come down with a big red badge. I wanted a way to check whether a discount is honest under the EU's 30-day rule — with code, not gut feeling.

Short answer

In the EU, when a shop advertises a price cut it has to show a prior price — and that prior price is the lowest price it charged in the last 30 days, not a short-lived spike from early November. Compare the sale price with that 30-day lowest price, not with the crossed-out "was" price.

I built two Apify Actors for that job:

An Actor verdict is a flag for human review, not a legal finding. This is not legal advice.

Why I built them

When I visit shops around Black Friday or Christmas, I always check the small price tag under the big sale price — the one that shows what it "was." Too often that "original" looks like what the promoted price should have been. If that happened to you last year too, these Actors are for you.

I searched the Apify Store for "omnibus" and "black friday". Plenty of price scrapers. Nothing that asked: is this discount honest under the 30-day rule? So I built the checker, then a Shopify sibling that watches compare-at prices over time.

Actor 1: EU Omnibus Discount Checker

How to run: (1) Paste EU product page URLs. (2) Run once. (3) Read the per-product verdict.

Give it product pages from EU shops. For each one it reads the current price, the crossed-out "was" price / badge, and the shop's own 30-day lowest price label (if present). Then it calculates the real discount against the 30-day low and returns a verdict: Compliant, Overstated, Missing 30-day lowest, RRP comparison, or nothing to check.

It recognises label wording in 11 languages and only opens a browser when HTML is not enough. Optional evidence screenshots are available.

Actor 2: Shopify Discount & Promo Tracker

How to run: (1) Add Shopify store domains. (2) Run once for a baseline. (3) Schedule daily in changes mode before 27 Nov.

Shopify shows a compare-at price as the struck-through "was" price. This Actor reads a store's public product feed (no browser) and returns sale depth, a store summary, changes over time (with history on), and inflated compare-at flags when the compare-at sits more than your tolerance above the highest regular price observed.

Tip: start a daily scheduled run now, before 27 Nov. History only works if the Actor saw the "before" prices.

What my 8 Nov test runs found

Small snapshot, shops anonymised — not a market study.

Key figures: 30/30 missing 30-day lowest · 194/1,409 on sale · 158/159 one store almost all on sale.

Calendar: Baseline 8 Nov → recheck ~25 Nov → Black Friday 27 Nov.

Omnibus checker: 30 discounted product pages from 3 German fashion/basics Shopify stores.

  • 30 of 30 pages read.
  • 30 of 30 got missing 30-day lowest.
  • On 6 of 12 pages with a crossed-out price, the badge disagreed with the maths (example: WAS €107.99 / NOW €31.49 / badge −20% — crossed-out implies ~71% off).

Caveats: badges can refer to variants or codes; bundles muddy the maths. Flag ≠ breach.

Shopify tracker: 6 of 8 stores read, 1,409 products scanned.

  • 194 of 1,409 on sale (13.8%); weighted average ~22.7%; deepest 58.6%.
  • One store: 158 of 159 products on sale.
  • Black Friday / Cyber tags already live in 4 of 6 stores.
  • Inflated compare-at: not measurable yet — first run was a baseline. Re-run planned around 25 Nov.

Lesson: start watching now.

How to check a deal yourself

  1. Find the 30-day lowest price label on the product page.
  2. Do the maths from that number, not the crossed-out price.
  3. Look at price history if a chart is available.
  4. Be careful with "up to -70%" banners.
  5. At scale: paste URLs into the Omnibus checker, or schedule Shopify stores daily.

Job → tool

  • Verify EU deals before publishing → EU Omnibus Discount Checker
  • Watch competitor Shopify stores through November → Shopify tracker (daily, changes mode)
  • Find the deepest real Shopify discounts for a newsletter → tracker + Omnibus spot-check

New to Apify? Create an account (referral).

Optional toolkit

Both Actors came from the same shipping loop I use for Store products. If you want that loop in one zip (playbook, ideas, prompts, starter Actor), that's The Vibe Coder's Playbook (€37). Optional Black Friday code BLACKFRIDAY is 50% off at Checkout — the article stands alone without it.

Top comments (0)