Skip to content

Conversation

annisaam
Copy link
Member

@annisaam annisaam commented Oct 7, 2026

Beskrivelse

Denne PR-en implementerer import- og seed-flyt for produktdata fra Kassalapp API.

Hensikten er å kunne hente og normalisere produkt-, kategori- og prisdata fra Kassalapp én gang, lagre dette i en delt JSON-dump og deretter fylle PostgreSQL-databasen fra dumpen uten at hvert gruppemedlem trenger egen API-nøkkel.

Import-scriptet håndterer også paginering, rate limiting, manglende EAN og kategori, samt produkter som finnes hos flere butikkjeder.

Relaterte issues

Relates to #8

Issue #8 lukkes IKKE av denne PR-en ennå, fordi sluttkriteriet om minst 20 000 produkter fortsatt gjenstår.

Endringer gjort

  • Lagt til src/scripts/import.ts for henting av data fra Kassalapp API.
  • Henter produkter sidevis med 100 produkter per side.
  • Lagt til pause mellom API-kall og håndtering av HTTP 429.
  • Hopper over produkter uten EAN.
  • Grupperer samme EAN som ett produkt med priser per butikkjede.
  • Bygger kategoritre og bruker «Ukategorisert» som fallback ved manglende kategori.
  • Lagrer normaliserte data i data/kassalapp-dump.json.
  • Lagt til src/scripts/seed.ts for å fylle PostgreSQL fra JSON-dumpen uten API-nøkkel.
  • Seedingen bruker transaksjon med rollback ved feil og ON CONFLICT for å kunne kjøres flere ganger.
  • Lagt til npm run seed.
  • Testdumpen er seedet og verifisert med 63 kategorier, 199 unike produkter og 297 prisoppføringer.
  • npm run build kjører uten TypeScript-feil.

Hva slags type fiks inneholder denne PR

  • Bug fix
  • Ny funksjonalitet
  • Refactor
  • Dokumentasjon
  • Testing

Sjekkliste

  • Testet lokalt
  • Dokumentert endringer
  • Sjekket for feilmeldinger

Skjermbilder

Ikke relevant – denne PR-en inneholder ingen UI-endringer.

@annisaam annisaam requested a review from a team as a code owner October 7, 2026 06:47
@annisaam annisaam mentioned this pull request Oct 7, 2026
7 tasks
@taraa taraa merged commit 614d4ee into dev Oct 7, 2026
Sign in to join this conversation on GitHub.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants