Gå til hovedindhold
Hjem
GrN.dk

Main navigation

  • Artikler
  • Cases
  • Ydelser
  • Din digitale projektleder
  • Om Greg Nowak
  • Billedgalleri
  • Kontakt
User account menu
  • Log ind

Bliv en del af mit community / gratis nyhedsbrev — tilmeld dig her

Brødkrumme

  1. Hjem
  2. Cases

Én kasse, mange sælgere: et markeds-POS, der deler hvert salg op pr. bod

Client
Et community-marked i Thailand (kunden holdes anonym)
Sector
Detailhandel — point of sale
Periode
juni–juli 2026

At a glance

Et point-of-sale-system til et fysisk marked, hvor snesevis af uafhængige sælgere deler de samme kasser. En kassemedarbejder slår én kurv ind; systemet ved, hvilken bod hver vare tilhører, deler salget pr. sælger i det øjeblik, det sker, og fører de bøger, hver bod afregner efter. Thai-først grænseflade med et synkroniseret engelsk oversættelsessæt, bygget på Laravel 12 med et Filament v4-adminpanel og PostgreSQL nedenunder.

Hvert beløb er heltals-satang — en float rører aldrig penge
Append-only audit-log: handlinger ved kassen skrives én gang og hverken redigeres eller slettes
Thai-først UI med et synkroniseret engelsk oversættelsessæt
Laravel 12 · Filament v4 · PostgreSQL · 19 migreringer · PHPUnit-suite

The challenge

Et marked med fælles kasse bryder den antagelse, næsten alle standard-POS-systemer bygger på: at butikken er én forretning. Her rummer en enkelt kurv rutinemæssigt varer fra tre-fire forskellige sælgere, og ved månedens udgang skal hver af dem have udbetalt præcis, hvad deres bod solgte — ikke flere regnskabs-regneark, ingen diskussioner om kassestrimlen.

Pengesoftware har desuden to klassiske selvforskyldte sår på lur: floating-point-priser, der driver en satang ad gangen, og redigerbare transaktionstabeller, hvor et tastefejls-»fix« i al stilhed omskriver historien. Begge dele skulle være umulige by construction, ikke ved disciplin.

The solution

En Laravel 12-applikation med hverdagens salgsskærm holdt bevidst enkel — produktgitter, kurv, betal — og et Filament v4-backoffice til produkter, sælgere, vagter og rapporter. Hver salgslinje bærer sin sælger, så afregning pr. bod ikke er en rapport boltet ovenpå, men en egenskab ved selve datamodellen.

Penge gemmes udelukkende som heltals-satang (฿290 er heltallet 29000); ingen float rører nogensinde et beløb. Og hver handling ved kassen lander i en append-only audit-log — rækker skrives én gang og kan hverken opdateres eller slettes, så den historik, afregningen bygger på, er den historik, der faktisk fandt sted. Grænsefladen er thai-først, med det engelske oversættelsessæt holdt i trit af en sync-kommando frem for af hukommelsen.

The results

Systemet er live og i daglig brug på kundens marked (en privat installation, så der linkes ikke til den her). Kassemedarbejdere arbejder med én fælles kurv pr. kunde, uanset hvor mange boder den spænder over, og afregningen pr. sælger falder direkte ud af hovedbogen i stedet for ud af en regnearkssession sidst på måneden.

Bygget kørte på samme leverancemodel som resten af denne side: fasede Trello-kort arbejdet af en AI-agent under review, 19 databasemigreringer og en PHPUnit-suite, der voksede side om side med funktionerne, og produktionsdatabasen dækket af serverens natlige dump-og-backup-rutine fra dag ét.

Got a project that needs the same kind of hands-on delivery?

Your digital project manager

Anmeld Greg på Google

Greg Nowak Google-anmeldelser

 

Skriftlige anbefalinger fra Trafik og Veje, Aarhus Kommune (2011) og AgroTech (2010) — læs dem på LinkedIn.

Illustreret infografik, der opsummerer: Hvad spørger kunderne om? Lad AI læse mønstrene i supporten
Hvad spørger kunderne om? Lad AI læse mønstrene i supporten
2026-09-04

AI-baseret ticketanalyse kan afsløre gentagne klager, produktfejl og huller i dokumentationen – uden at virksomheden behøver endnu en chatbot.

Illustreret infografik, der opsummerer: OpenSSH 10 ændrer kryptografien: Derfor skal ældre SFTP-integrationer have en oprydningsplan
OpenSSH 10 ændrer kryptografien: Derfor skal ældre SFTP-integrationer have en oprydningsplan
2026-09-02

OpenSSH 10 fjerner DSA og advarer om nøgleudveksling, der ikke er post-kvantesikker. Her får du en metode til at afgrænse SFTP-oprydningen uden at svække alle SSH-forbindelser.

Illustreret infografik, der opsummerer: Bottrafik overstiger nu menneskelig trafik – og crawlerregler er ikke længere valgfrie
Bottrafik overstiger nu menneskelig trafik – og crawlerregler er ikke længere valgfrie
2026-09-01

Botforespørgsler overstiger nu menneskelig webtrafik. Lær at auditere AI-crawlere, fastsætte regler på stiniveau, håndhæve robots.txt og måle det forretningsmæssige afkast.

Illustreret infografik, der opsummerer: Cloudflare Tunnel i 2026: Bedre overblik, sværere spørgsmål
Cloudflare Tunnel i 2026: Bedre overblik, sværere spørgsmål
2026-09-01

Cloudflares Tunnel-opdateringer fra 2026 forbedrer kortlægning, overvågning af replikaer, logstreaming og overdragelse – men synliggør samtidig svagt ejerskab og mangelfuld praksis for failover og logging.

Illustreret infografik, der opsummerer: Fra salgsmøde til CRM: Automatisér opfølgningen uden datarod
Fra salgsmøde til CRM: Automatisér opfølgningen uden datarod
2026-09-01

Sådan bruger du AI til mødenoter og opfølgning, mens faste regler beskytter CRM-data, kundematch og pipeline mod fejl og forhastede ændringer.

Illustreret infografik, der opsummerer: Drupal 10 udfases i december 2026: Begynd med at kortlægge opgraderingen
Drupal 10 udfases i december 2026: Begynd med at kortlægge opgraderingen
2026-08-31

Drupal 10 når end of life den 9. december 2026. Brug denne praktiske kortlægning til at afgrænse arbejdet med Drupal 11-parathed, Composer-efterslæb, moduler og custom code.

Illustreret infografik, der opsummerer: Apache 2.4.67 satte ældre reverse proxies tilbage på risikolisten
Apache 2.4.67 satte ældre reverse proxies tilbage på risikolisten
2026-08-31

Apache 2.4.67 tydeliggjorde risikoen ved overtagne reverse proxies. Læs, hvordan du opgraderer til 2.4.68, gennemgår HTTP/2, AJP og .htaccess og tester ændringerne sikkert.

Illustreret infografik, der opsummerer: WooCommerce Checkout Blocks: Hvornår bør du migrere – og hvornår bør du rulle tilbage?
WooCommerce Checkout Blocks: Hvornår bør du migrere – og hvornår bør du rulle tilbage?
2026-08-30

WooCommerce-blokke er standarden, men ikke alle webshops er klar. Brug denne praktiske gennemgang, testplan og rollback-procedure til at beskytte omsætningen i checkout.

Illustreret infografik, der opsummerer: Cloudflare Service Keys: Gennemgå ældre automatisering inden 30. september
Cloudflare Service Keys: Gennemgå ældre automatisering inden 30. september
2026-08-30

Cloudflare Service Keys holder op med at virke den 30. september 2026. Find ældre scripts, vælg API-tokens med afgrænsede rettigheder, test overgangen, og dokumentér ejerskabet.

Illustreret infografik, der opsummerer: Password-hashing i WordPress 6.8: Den skjulte risiko ved ældre loginintegrationer
Password-hashing i WordPress 6.8: Den skjulte risiko ved ældre loginintegrationer
2026-08-29

WordPress 6.8 ændrede hashing af adgangskoder og tokens. Se, hvor ældre loginintegrationer fejler, hvad du bør gennemgå, og hvordan du tester autentificering sikkert.

Flere artikler
RSS feed

Footer

  • Alle artikler
  • Kontakt

GrN.dk — AI-automatisering, webplatforme, weboptimering, datahåndtering og logistik.

© 2026 GrN.dk · LinkedIn · Kontakt · AI-automatisering på dansk: nowa.dk

Bag GrN.dk: Individual Entrepreneur Codecrafter · Tax ID 305669096 · Bakhtrioni St. 22, 0194 Tbilisi, Georgien · officielt virksomhedsregister