Features #141
stängdStöd för global produktbas och EAN
100%
Beskrivning
Bygg stöd för ett lättviktigt globalt produktregister med EAN/streckkod så flera föreningar kan återanvända samma produktinformation utan att duplicera den i varje artikel.
Princip:
- Produkt är global återanvändbar basinformation.
- Artikel är det föreningen säljer och styr pris, kategori, artikelnummer, artikelkrav och eventuella föreningsspecifika overrides.
- Artiklar kan sakna produktkoppling när de inte är streckkodsbaserade, exempelvis Träning eller Låneutrustning.
Acceptanskriterier:
- Systemet har en global produktmodell för återanvändbar produktinformation.
- Produkt kan ha minst namn, eventuell varumärkesinformation och frivillig standardbild.
- Produkt kan ha EAN/streckkod som unik identifierare.
- En artikel kan valfritt kopplas till en global produkt.
- Flera föreningars artiklar kan peka på samma produkt.
- Artikelns egna namn, beskrivning och bild kan fungera som föreningsspecifik override.
- Artiklar utan EAN eller global produktkoppling kan fortfarande skapas.
- Datamodellen ska undvika onödig duplicering utan att införa tung masterdata-hantering i första versionen.
Acceptanskriterier
Bygg stöd för ett lättviktigt globalt produktregister med EAN/streckkod så flera föreningar kan återanvända samma produktinformation utan att duplicera den i varje artikel.
Princip:
- Produkt är global återanvändbar basinformation.
- Artikel är det föreningen säljer och styr pris, kategori, artikelnummer, artikelkrav och eventuella föreningsspecifika overrides.
- Artiklar kan sakna produktkoppling när de inte är streckkodsbaserade, exempelvis Träning eller Låneutrustning.
Acceptanskriterier:
- Systemet har en global produktmodell för återanvändbar produktinformation.
- Produkt kan ha minst namn, eventuell varumärkesinformation och frivillig standardbild.
- Produkt kan ha EAN/streckkod som unik identifierare.
- En artikel kan valfritt kopplas till en global produkt.
- Flera föreningars artiklar kan peka på samma produkt.
- Artikelns egna namn, beskrivning och bild kan fungera som föreningsspecifik override.
- Artiklar utan EAN eller global produktkoppling kan fortfarande skapas.
- Datamodellen ska undvika onödig duplicering utan att införa tung masterdata-hantering i första versionen.
Testresultat
Avstämning 2026-09-08, befintliga bevis (inte ny testkörning): | #141 | Slutfört inom scope | Global produkt/EAN, frivillig artikelkoppling och egna priser/bilder; användaren verifierade samma Pepsi i två föreningar. |. Se docs/issue-audit-2026-09-08.md. Ingen driftsättning i statusuppdateringen; framtida release kräver ny konsekvensbedömning.
CA Uppdaterad av Codex API för 25 dagar sedan
- Relaterar till Features #120: Systemadmin kan skapa och hantera artiklar tillagd
CA Uppdaterad av Codex API för 25 dagar sedan
- Relaterar till Maintenance #140: Designa första databasschemat tillagd
CA Uppdaterad av Codex API för 24 dagar sedan
- Relaterar till Features #142: Temabundet bibliotek med generiska produktbilder tillagd
CA Uppdaterad av Codex API för 23 dagar sedan
Första del levererad i acceptansmiljön, commit f51dd322efd4f6b0d8cf394c766f45b47e39a1e6. Systemadmin har produktregister med sökning, skapa/redigera, namn, varumärke, beskrivning och aktivstatus. EAN-8/EAN-13 valideras inklusive kontrollsiffra; inledande nollor bevaras, dubletter stoppas atomärt och EAN är låst efter skapande. Behörighet och samtidiga ändringar testade. CI: 43 tester/307 assertions samt 39 integrationstester/662 assertions godkända. Läsbaserad webbläsarkontroll vid 1280, 390 och 320 px (sistnämnda utan JavaScript), inga extra produkter sparade. Acceptans uppdaterad utan seed eller migrationer; databas och delad lagring bevarade. Dokumentation: docs/architecture/products-ean.md. Återstår: artikelkoppling, ärvda fält/bilder med lokala overrides, global produktbild och skanningsflöde. Ärendet lämnas öppet.
CA Uppdaterad av Codex API för 23 dagar sedan
Artikelkoppling levererad i acceptans, commit 4ed82731ce86c5dc227f87b710236a454e53925f. Systemadmin och föreningsadministratör kan slå upp aktiv produkt via EAN i Ny artikel samt koppla/koppla bort via artikelns EAN-fält. Tomma namn/beskrivningar ärver aktuella globala värden utan kopiering; egna värden är föreningsspecifika. Pris, kategori, artikelnummer och bildval förblir lokala. Katalog, artikellista, bilder och QR-utskrift/länkar stöder kopplade artiklar. Inaktiv global produkt blockerar nya kopplingar, men befintliga artiklar fortsätter fungera och styrs av föreningens status. CI godkänd: 43 tester/307 assertions och 40 integrationstester/721 assertions. Testar två föreningar med samma produkt, lokala overrides/priser, felaktig/saknad EAN, behörighet, versionskonflikt, urkoppling och QR. Läsbaserad browserkontroll 1280/390/320 px, även utan JavaScript; Pepsi Max Burk hittas för båda rollerna. Ingen ny artikel sparad vid kontrollen. Antal och senaste ändring för produkter, artiklar och kategorier oförändrade före/efter uppdatering. Ingen migration eller seed. Dokumentation uppdaterad. Återstår i #141: global produktbild och bildarv. Kamera/EAN-skanning är fortsatt senare arbete.
CA Uppdaterad av Codex API för 23 dagar sedan
Gemensam produktbild och bildarv levererade i acceptansmiljön, commit de9ff5cd3bcfdbede88fe7a918654eff7e2d5cb3. Systemadmin kan ladda upp/byta/ta bort JPEG/PNG (max 1 MB, 2000x2000), med versionskontroll och ägarbundna privata filsökvägar. Nya produktkopplade artiklar ärver bild; befintliga bildval bevaras. Föreningsadministratören kan välja Använd produktens bild eller behålla egen/tema/neutral bild. Saknad global bild faller tillbaka till föreningens neutrala tema. Global ändring påverkar inte lokala bildval. CI: 44 tester/313 assertions + 41 integrationstester/774 assertions godkända, inklusive filvalidering, stale update, uppladdning/byte/borttagning, två föreningars bildarv och behörigheter. Läsbaserad visuell kontroll desktop/mobil, även 320px utan JavaScript: inga överflöden, bilder laddade. Uppdaterat utan migration/seed; antal och senaste ändring för produkter/artiklar/kategorier oförändrade. Användaren har redan verifierat föregående del: Pepsi Max i Björkbackens IF och Solvikens förening med ärvt namn och olika priser. Manuell acceptans av bildhanteringen återstår; ärendet lämnas öppet. Dokumentation uppdaterad.
CA Uppdaterad av Codex API för 23 dagar sedan
Automatisk bildanpassning levererad i acceptans, dc12eff5f53c36a1d66347306f79521dc09fc3a5 (implementation cfc0c1a). JPEG/PNG upp till 10 MiB för både globala produktbilder och lokala artikelbilder. Gemensam GD-bearbetning: högst 1600x1600 utan uppskalning, JPEG EXIF-orientering, omkodning utan metadata, bibehållen PNG-alpha och slutstorlek under 1 MiB. Förhandskontroll max 16 MP/8000 px per sida; stegvis komprimering/nedskalning och fel lämnar befintlig bild orörd. Ny PHP-image 71abd2c23a8da324c5ca0797cd45d804e7a9c8e9b8efaa8a679202ea725bc1ca med GD/EXIF; CI-runner och acceptansskript låsta till denna. Verifierat körande acceptans: upload_max_filesize=10M, post_max_size=12M, memory_limit=256M. CI godkänd: 48 tester/324 assertions och 41 integrationstester/774 assertions. Testar uppladdning över 1 MiB, nedskalning, metadata, transparens, korrupt bild och orimligt pixelantal. Formulär visuellt kontrollerade 1280/390 px; inga acceptansbilder ändrades vid kontrollen. Dokumentation: image-normalization.md samt uppdaterade produkt-/artikelbildsbeskrivningar. Ingen produktionsändring, seed eller migration. Användarens manuella prov med originalfilen återstår.
CA Uppdaterad av Codex API för 23 dagar sedan
Förtydligat bildval i acceptans, 6fcb03fc749fae387bb0278fffc0b776515b5774: länk vid aktuell artikelbild när global bild finns, behörighetskontrollerad förhandsvisning under Produktbild och tydligt besked när bild saknas. Bildarvsknappen visas även utan bild och är inaktiverad när arv redan används. Användaren hittade knappen under arbetet; förklarat beteendet. CI godkänd efter korrigering som fångades före driftsättning. Visuellt verifierat Pepsi Max artikel 11 som föreningsadministratör vid 1280/390 px; gemensam bild laddas och inget överflöde. Inga bildval ändrade av kontrollen. Dokumentation och integrationstester uppdaterade.
CA Uppdaterad av Codex API för 23 dagar sedan
Användaracceptans godkänd: samma produkt med separata föreningspriser; neutral bild utan global produktbild, automatiskt bildarv när bild läggs till, samt tydlig indikation och val av produktbild. Bildanpassning och behörigheter verifierade med automatiska tester. Ärendet avslutas enligt användarens fortsätt-godkännande.
CA Uppdaterad av Codex API för 23 dagar sedan
Avstämning 2026-09-08: Slutfört inom ärendets scope. Global produkt/EAN, frivillig artikelkoppling och egna priser/bilder; användaren verifierade samma Pepsi i två föreningar. Underlag: docs/issue-audit-2026-09-08.md. Ingen ny regression eller produktionsdriftsättning i denna avstämning. Statusfält oförändrat.
CA Uppdaterad av Codex API för 23 dagar sedan
- Tilldelad satt till Codex API
- Acceptanskriterier uppdaterad (skillnader)
- Driftsättningspåverkan satt till Ingen
- Testresultat uppdaterad (skillnader)
CA Uppdaterad av Codex API för 4 dagar sedan
- Relaterar till Maintenance #396: Gör produktens EAN-hantering entydig när flera koder finns tillagd