Hur får Tifo tillgång till prisdata från 120+ svenska webbutiker? Här förklarar vi den tekniska magin!
🔄 Tre sätt att samla priser
📊 Tre metoder (kombineras):
1️⃣ API-INTEGRATION (⭐⭐⭐⭐⭐)
- Direkt från butikspartners
- Realtidsdata var 15:e minut
- 100% korrekt lagerstatus
- Exempel: Webhallen, Inet, Dustin
2️⃣ WEB CRAWLING (⭐⭐⭐⭐)
- Automatisk skanning av webbsidor
- Uppdatering var 4:e timme
- Parsning av HTML/JSON
- Exempel: Mindre butiker
3️⃣ PRODUKTFEED (⭐⭐⭐)
- CSV/XML-filer från butiker
- Daglig import (natt)
- Bulk-uppdateringar
- Exempel: Kampanjpriser
🤝 API-integration (Metod 1)
🔗 Direktkoppling till butiker:
FLÖDE: Butikspartner → REST API → Tifo Database ↓ Var 15:e minut (Premium-butiker)
EXEMPEL (Webhallen):
GET https://api.webhallen.com/products/12345
→ Svar: {
"name": "iPhone 15 Pro",
"price": 11995,
"in_stock": true,
"updated": "2025-12-31T12:00:00Z"
}
FÖRDELAR: ✅ Realtidsdata ✅ Exakt lagerstatus ✅ Snabb uppdatering ✅ Låg felfrekvens (<0.1%)
🕷️ Web Crawling (Metod 2)
🤖 Automatisk skanning:
- CRAWLER startar var 4:e timme
- Besöker produktsidor (robots.txt-compliant)
- Extraherar pris + lager + specifikationer
- Validerar data (anomali-detektion)
- Lagrar i PostgreSQL-databas
TEKNISK STACK:
- Node.js + Puppeteer (headless browser)
- Cheerio (HTML-parsning)
- Redis (caching)
- Rate limiting (respekt för butiker)
EXEMPEL (NetOnNet):
https://netonnet.se/produkt/iphone-15-pro
→ HTML parsas → Pris: 11 995 kr
→ Lager: "Få kvar i lager"
📦 Produktfeed (Metod 3)
📄 Bulk-import från butiker:
FLÖDE: Butik skapar CSV/XML → Upload till Tifo FTP → Nattlig import (03:00) → Validering + matchning
EXEMPEL CSV:
SKU,Name,Price,Stock
12345,iPhone 15 Pro,11995,true
67890,MacBook Air M2,9995,false
FÖRDELAR: ✅ Stor volym (10 000+ produkter) ✅ Kampanjpriser inkluderade ✅ Låg serverlast
⚙️ Teknisk process (steg-för-steg)
🔧 Från butik till Tifo:
1️⃣ DATA COLLECTION (var 15 min - 4h)
- API/Crawl → Raw data
2️⃣ VALIDATION
- Pris < 0? Fel!
- Lagerstatus felaktig? Flagga!
- Anomali (pris +500%)? Manuell granskning
3️⃣ NORMALISERING
- "11 995 kr" → 11995 (int)
- "i lager" → true (bool)
- "iPhone 15Pro" → "iPhone 15 Pro"
4️⃣ MATCHNING
- EAN-kod → Produktdatabas
- Hitta duplicates (samma produkt, olika butik)
5️⃣ LAGRING
- PostgreSQL (prishistorik)
- Redis (cache för snabba sökningar)
6️⃣ DISTRIBUTION
- API → Tifo.se frontend
- Webhook → Prisalarm
🚦 Rate Limiting & Etik
⚖️ Respektfull skanning: ✅ robots.txt-compliant (följer butikers regler) ✅ User-Agent: "TifoBot/2.0 (pricecomparison)" ✅ Max 1 request/sekund per butik ✅ Nattskanning (låg belastning) ✅ Caching (undviker duplicate requests)
❌ VI GÖR ALDRIG:
- DDoS-attacker
- Ignorerar robots.txt
- Skapar falska konton
- Scraping av persondata
📊 Statistik 2025
📈 Data Collection Stats:
- 120+ butiker skannade
- 500 000+ produkter övervakade
- 2 miljoner pris-uppdateringar/dag
- 99.8% uptime
- <5 minuter latens (API-butiker)
- 4 timmar latens (crawl-butiker)
TOP 5 snabbaste butiker:
- Webhallen (15 min)
- Inet (15 min)
- Elgiganten (30 min)
- Dustin (1h)
- MediaMarkt (2h)
🔍 Kvalitetskontroll
✅ Valideringssteg:
- PRISANOMALI-DETEKTION: "iPhone 15 Pro för 1 kr?" → Flaggas!
- MANUELL GRANSKNING: Team granskar flaggade produkter
- ANVÄNDARFEEDBACK: "Rapportera fel pris" → Korrigeras <1h
- A/B-TESTING: Jämför API vs Crawl → Välj mest pålitlig
- DAILY REPORTS: "15 produkter saknar pris" → Fixas
🛠️ Teknisk stack (för nördar)
💻 Backend:
- Node.js + TypeScript
- Puppeteer (crawling)
- PostgreSQL (prishistorik)
- Redis (caching)
- RabbitMQ (job queue)
☁️ Infrastructure:
- Render (hosting)
- Cloudflare (CDN)
- Supabase (database)
- GitHub Actions (CI/CD)
📊 Monitoring:
- Sentry (error tracking)
- Grafana (metrics)
- Uptime Robot (availability)
❓ Vanliga frågor
F: Varför är vissa butiker snabbare? S: API-partners (Webhallen, Inet) ger realtidsdata. Crawl-butiker tar längre tid.
F: Kan butiker blockera Tifo? S: Ja, men vi samarbetar med butiker för win-win.
F: Är priserna 100% korrekta? S: 99.8% av tiden! Rapportera fel via "Flagga fel pris".
Tifo = 500 000 produkter, 2M uppdateringar/dag! 🚀
Hjälpte denna artikel? 👍 Ja 👎 Nej
Relaterade artiklar:
