diff --git a/packages/scraper/src/scrapers/fs-com.ts b/packages/scraper/src/scrapers/fs-com.ts index 1a1b711..d00b17b 100644 --- a/packages/scraper/src/scrapers/fs-com.ts +++ b/packages/scraper/src/scrapers/fs-com.ts @@ -440,8 +440,19 @@ async function scrapeProductDetails( // FS.com shows "Gratis Versand ab 79 € (ohne MwSt.)" on every page. // bodyText regex matches this and returns 79 for ALL products. We extract // the actual product price from its own DOM element, skipping bad parents. + // ── Net price (ohne MwSt) preferred for B2B comparisons ────────────── + // FS.com HTML structure (verified 2026-05-06): + //
5,10 € ohne MwSt.
← net price ✓ + //
6,07 €
← gross price + //
6,07 €
← gross + // The .no_tax element contains the B2B net price — prefer it. let priceRaw = ""; const PRICE_SELS = [ + // ── FS.com current structure (2026-05) — net price first ── + ".no_tax", // "5,10 € ohne MwSt." — net/B2B price + ".standard_price", // "6,07 €" — gross fallback + ".price", // "6,07 €" — gross fallback (simple class) + // ── Legacy / other patterns ─────────────────────────────── "[class*='price-value']", "[class*='product-price']", "[class*='prod-price']",