Vi släpper öppet
Nya funktioner och förbättringar allt eftersom de släpps. Buggfixar listas inne i produkten, under Nyheter, där de som rapporterat dem ser dem.
- Rabattkoder
Begränsa en rabattkod med ett e-postmönster
En rabattkod kunde redan reserveras för en namngiven kund. Det passar för en gest till en person, men inte för ett företagsavtal där ingen vill knappa in fyrahundra namn. Nu kan en kod också begränsas med e-postadress. Skriv *@foretag.se så kan alla med en adress hos den arbetsgivaren använda den, men ingen annan. En stjärna står för valfri text, så *@*.foretag.se täcker även underdomäner. Anger du både kund och mönster räcker det att ett av dem stämmer: den personen, eller vem som helst som matchar. Mönster som skulle släppa in nästan vilken adress som helst avvisas redan när du sparar, så ett bortglömt @ kan inte i tysthet öppna en kampanjkod för alla.
- Rabattkoder
Reservera en kod för en kund eller för valda kurser
En rabattkod kunde tidigare användas av vem som helst som kände till den. Ville du ge en enskild person en gest — en återbetalning som kod, en ursäkt, en överenskommelse per telefon — fanns inget som hindrade att den skickades vidare och användes tio gånger till. Kodredigeraren har nu två nya valfria fält. Reserverad för kund binder koden till en person: den fungerar bara för hen och kontrolleras mot e-postadressen som anges i kassan eller vid anmälan, så den fungerar även för gäster. Lämna fältet tomt så beter sig koden precis som förut. Gäller för kurser begränsar koden till de kurser du väljer. En kod med valda kurser är en kurskod — den gäller när någon av kurserna köps, och webbutiken tar inte emot den till något annat. Lämna tomt så förblir den en vanlig webbutikskod. Båda är valfria och avstängda som standard, så alla dina befintliga koder fungerar oförändrat.
- Kurser
Rabattkoder fungerar vid kursanmälan
Kurser hade två priser — ordinarie avgift och medlemsavgift — och inget sätt att ta emot en rabattkod. En kod du hade delat ut gällde i webbutiken men inte i närheten av en kurs. Den publika anmälningssidan har nu ett kodfält. Koden kontrolleras före betalning, inte efter: du anger koden och sidan säger direkt om den gäller och vad anmälan kommer att kosta, så ingen upptäcker det först i betalningssteget. Avgiften bredvid betalknappen ändras till det som faktiskt debiteras, med det gamla priset överstruket. Rabatten dras från det pris som gäller. Har kunden bekräftat sitt medlemskap och får medlemspriset, dras rabatten från det — en medlem förlorar aldrig på att använda samma kod. Vid anmälan till flera dagar dras den från hela beloppet, inte ett tillfälle. Ett överenskommet pris för en enskild deltagare gäller fortfarande före allt annat: ett pris som personalen skrivit in underskrids inte av en kod.
- Kurser
Ge en enskild deltagare ett eget pris
En kurs hade redan två priser — ordinarie pris och medlemspris — men båda gäller alla. Det gick inte att komma överens om något med en enskild person: syskonrabatt, skada, personalens familj eller en gest. Personalen fick antingen ändra medlemspriset för hela kursen eller hantera mellanskillnaden utanför systemet. Öppna kursen, expandera kursdagen, och ⋮-menyn på deltagarraden har nu **Ange pris**. Skriv ett belopp, lägg till en kort orsak, och den personens anmälan prissätts så. Det överenskomna priset visas i en egen kolumn i deltagarlistan, med orsaken vid hovring. Tomt och 0 betyder olika saker med flit: att tömma fältet återställer kursens ordinarie prissättning, medan 0 är en gratis plats som någon gått med på. Priset ersätter hela beloppet — grundpris, medlemspris och multiplikationen per dag — så talet du skriver är det som deltagaren ombeds betala. Priset kan inte ändras efter att deltagaren markerats som betald, och valet försvinner då.
- Seriekort
Hindra orelaterade seriekort från att slås ihop
När en kund köper ett seriekort flyttas återstående besök från hens gamla kort av samma typ till det nya. Det är precis vad du vill när någon fyller på ett 10x-kort — och inte alls vad du vill när ett förstagångskort på 3 besök och ett barnkort på 10 slås ihop till ett enda kort med 13 besök. Alla klippkort lagras internt under samma korttyp oavsett vilken produkt som sålde dem, så hittills fanns inget som höll isär dem. Under Inställningar ▸ Kortgrupper definierar du de fack korten sorteras i. Skapa en grupp och kopiera taggen den visar till de produkter som hör dit — i korttypens fält ”Använd tagg” eller direkt bland produktens egna taggar. Ett kort som säljs av den produkten slås sedan bara ihop med andra kort i samma grupp. Taggen gäller överallt där produkten säljs: i kassan, i webbutiken och i OpenAir, liksom när du skapar ett kort för hand. Inget ändras om du inte skapar några grupper — kort utan grupp slås ihop med varandra precis som förut. Gruppen visas i kundens kortlista, på kassans snabbknapp och på varukorgsraden, så du ser direkt vilka kort som slås ihop med vilka.
- Inställningar
Se på ett ställe vad som gick fel
Bakgrundsjobb — fakturaimporter, integrationer, schemalagda uppgifter — misslyckades tidigare tyst. Inställningar ▸ Fellogg listar nu vad som gick sönder, med hela detaljen bakom varje rad, och ett antal visas på skrivbordet när något behöver uppmärksamhet. Markera ett problem som sett medan du undersöker det, och löst när det är hanterat. Upprepningar av samma fel slås ihop till en post i stället för att fylla listan, och skrivbordet visar ingenting alls när inget är fel.
- Kassa
Parkera ett köp och återkom till det
När en kund går tillbaka efter något de glömt, tryck Parkera. Kundvagnen läggs undan som den är, kassan töms för nästa i kön, och Parkerade i menyn hämtar tillbaka den. Flera kan vänta samtidigt, och när du plockar upp en parkeras köpet du höll på med — så länge ingen betalning har registrerats på det. Parkerade köp stannar på den kassan och töms varje morgon, så gårdagens övergivna köp samlas inte. Ett köp som redan har betalningar kan inte parkeras — slutför eller avbryt det i stället.
- Utseende
Mörkt läge följer ditt system och kommer ihåg ditt val
Appen öppnas nu i det läge som datorn är inställd på, så den matchar allt annat på maskinen direkt. Sol- och månknappen i toppraden åsidosätter det när du vill – ditt val sparas på enheten och vinner därefter över systeminställningen. Mörkt läge omfattar nu hela appen och inte bara några vyer: cirka 1 400 paneler, tabeller, etiketter och informationsrutor som förblev vita – och text som var mörk mot mörkt, ibland osynlig – följer nu temat.
- Webbutik
Kurssidan använder nu butikens färger
Ställ in dem under Webbutik → Inställningar → Utseende: primärfärg, sidbakgrund och innehållsbakgrund. Den publika kurssidan följer alla tre — rubrikrad, banner, knappar och länkar — och väljer själv läsbar text mot mörk bakgrund. Har du inte satt färger händer inget.
- Kurser
Skriv egen text på kurssidan
Under Inställningar → Allmänna mallar lägger du till en mall med målet ”courses_public” och identifieraren hero_title, hero_subtitle eller info_text. Lämna språket tomt för en text överallt, eller lägg till en rad per språk. info_text är ett extra stycke som förblir dolt tills du skriver något i det.
- Kurser
Kursbetalningar syns nu i försäljningsrapporterna
En kurs som betalas online blir nu en riktig order och ett kvitto, så den når alla försäljningsrapporter av sig själv. Du kan välja vilken produkt varje kurs bokförs på: öppna kursen, gå till fliken Prissättning och välj under Försäljningsprodukt. Lämnar du det tomt bokförs kursen på en gemensam kursprodukt som skapas första gången den behövs. Gäller betalningar härifrån; tidigare läggs inte till i efterhand.
- Kunder
Se hur många kunder du får mejla
Kundregistret har ett filter för marknadsföringsmejl bredvid kolumnväljaren: accepterar, avböjer eller aldrig tillfrågad. Välj ett så blir totalsumman högst upp svaret — hur många en kampanj faktiskt skulle nå. ”Accepterar” är samma villkor som utskicken använder, så siffran är den som verkligen skulle få mejlet. ”Aldrig tillfrågad” är medvetet skilt från ”avböjer”: det är kunder ingen har ställt frågan till, oftast den största gruppen och den enda man fortfarande kan göra något åt.
- Instrumentpanel
Gruppera instrumentpanelens intäkter i egna grupper
Intäktswidgeten ställde en enda fråga — entré mot allt annat — vilket är rätt första fråga för ett klättercenter och fel när de intressanta pengarna är ett kafé, en butik eller kalasbokningar. Nu bestämmer du grupperingen: tagga en produkt ”bucket_kafe” (valfritt namn efter bucket_) så dyker en serie för den upp på instrumentpanelen direkt. Tagga hur många du vill. Nya sidan Intäktsgrupper under Inställningar ger var och en ett riktigt namn, en färg och en placering, och visar hur många produkter som bär varje tagg — en grupp utan produkter är ett stavfel i en tagg, och det syns ingen annanstans. Det finns även en genväg dit från widgeten. Ingenting ändras förrän du taggar din första produkt.
- Kassa
En produkt kan kräva en kund innan den säljs
Vissa produkter betyder bara något kopplade till en person — ett medlemskap, ett personligt kort, ett köp som ska faktureras — och hittills sålde kassan dem villigt till ingen alls, vilket visade sig först senare, som ett kort utan ägare. Nu finns inställningen ”Kräv kund i kassan” i produktredigerarens kassaavsnitt. Med den på kan produkten inte läggas i varukorgen förrän en kund är vald, oavsett om den nåddes via en snabbknapp eller via produktsökningen. Kassan vägrar inte bara: den öppnar kundsökningen och slutför försäljningen så snart du valt någon, så knappen behöver aldrig tryckas två gånger. Av som standard.
- Kurser
Flikarna Synliga, Dolda och Alla i kurslistan
Listan öppnas på Synliga, så kurser som tagits bort från kundsajten — särskilt gamla säsonger — ligger undan tills du efterfrågar dem. Varje flik visar antalet kurser, så det syns direkt att det finns dolda.
- Instrumentpanel
Tre nya widgetar som säger till när något är trasigt
Instrumentpanelen kunde berätta vad som hänt — försäljning, besökare, trender — men aldrig att något slutat fungera. Fyra nya widgetar täcker det. Betalsättens status upptäcker ett betalsätt vars volym rasat eller vars betalningar återförs, ett fel som kan pågå i månader medan siffrorna bara ser lugna ut. Misslyckade återkommande debiteringar visar abonnemang som är aktiva men inte drar in något. Entré mot allt annat skiljer drop-in från butiksförsäljning, så ett fall i utrustning inte göms bakom stabila entrésiffror. Lägg till dem i instrumentpanelens redigerare.
- Rapporter
Tullens alkoholrapport finns nu i de nya rapporterna
Tullens månatliga alkoholrapport har flyttat från det gamla exportformuläret till Rapporter, där du kan filtrera, sortera och exportera den som vilken annan som helst. Den visar flaskor och liter per alkoholskattegrupp utifrån dina försäljningsordrar. Den varnar nu också för produkter som inte kan deklareras — sådana utan skattegrupp eller volym — innan du lämnar in. Den gamla versionen utelämnade dem tyst ur summorna och tappade helt produkter som saknade finskt namn, vilket kunde göra deklarationen för låg utan att säga till.
- Rapporter
Besökare med kompiskort syns nu i kundtratten
Ett kompiskort ges bort, inte säljs, så det lämnade inga spår i kassan — och kundresrapporten hittar människor via deras första köp. Den som först kom till gymmet på en kompis kort såg därför ut att aldrig ha besökt er, och medlemskapet de köpte tre månader senare tillskrevs ingen. Nu registreras deras första besök som en försäljning på 0 €, daterad strax före kortet gavs, så rapporten räknar den som deras ingång. Den påverkar varken omsättning, moms eller dagsavslut. Välj produkten i panelen överst på instrumentpanelen; innan dess registreras ingenting.
- Instrumentpanel
Instrumentpanelen visar nu vad som återstår att ställa in
Vissa funktioner kan inte fungera förrän någon gör ett val som bara du kan göra, och inget sa ifrån — en inställning kunde stå tom i månader medan du trodde att funktionen var på. Överst på instrumentpanelen finns nu en panel som listar det som återstår, förklarar varför det spelar roll och låter dig fylla i det direkt. Den försvinner när inget återstår. Först ut: vilken produkt ett kompiskortsbesök bokförs på — utan den syns mottagarna inte i kundresrapporten.
- Rapporter
WooCommerce-försäljning syns nu i kassarapporterna
Ordrar från WooCommerce skapade sina kort och försvann sedan ur bokföringen — omsättningen syntes inte i rapporterna. Nu bokförs varje betald WooCommerce-order också som ett kvitto på webbutikens driftställe, så den syns i dags-, månads- och momsrapporterna vid sidan av din egen webbutik. Hela ordern bokförs, frakt och avgifter inkluderade, och betalningen hamnar på betalsättet "WooCommerce" som skapas automatiskt första gången — ge det ett bokföringskonto i betalsättsinställningarna. Annullerade och obetalda ordrar hoppas över, och inget bokförs två gånger.
- Produkter
Översätt tilläggens namn, med AI-hjälp
Tillägg visade samma namn för alla kunder oavsett språk. Nu kan du ge varje tillägg ett namn per språk under Produkter → Tillägg, och knappen bredvid ett ifyllt fält översätter det till alla andra språk. Ett tomt språk är ofarligt — butiken visar då tilläggets eget namn.
- Rapporter
Hur många seriekortsinnehavare som blir medlemmar
Rapporten över kundresan visar nu varje steg mot sin egen utgångspunkt, inte bara mot alla. ”Av dem som nådde ett seriekort, hur många blev medlemmar” är siffran man kan agera på, och den var osynlig när varje steg angavs som andel av hela kohorten — ett steg ser svagt ut när få nådde steget före. Båda siffrorna visas sida vid sida. Mediandagar räknas också från föregående steg, så en kund som tog 20 dagar till seriekort och 20 till för medlemskap visas som 20 här och 40 i stegtabellen.
- Produkter
Visa ett introerbjudande bara för dem som aldrig köpt något
En ny produktinställning, ”Dölj för kunder som redan handlat”, håller ett intropris borta från alla som redan har ett kort, en betald webborder eller ett kvitto. Den gäller i webbutiken och i OpenAir och nekar även en direktlänk till produktsidan — att dölja den i listan men ändå servera den via adressen vore ingen större regel. Besökare som inte är inloggade ser den inte heller, annars hade det räckt att logga ut för att få erbjudandet igen. En avbruten, obetald order räknas inte som köp.
- Rapporter
Se när uppsägningarna skedde, inte bara varför
Rapporten över uppsägningsorsaker kan nu grupperas per månad eller år, med ett staplat stapeldiagram bredvid varje munk som visar vilka orsaker som utgjorde varje period. Båda delarna får ett — automatiska prenumerationer och traditionella medlemskap. En period då ingen sade upp behåller sin plats på axeln, så en lugn månad syns som lugn i stället för att försvinna.
- Rapporter
Se om ett första besök blir ett medlemskap
En ny rapport för kundresan följer alla vars första kort köptes under perioden du väljer och visar hur många som gick vidare till seriekort, månadskort och årsmedlemskap — med ett flödesdiagram över var kunderna kom in och vad de gjorde sedan. Eftersom samma personer följs över tid betyder procenten konvertering, inte antal: den som redan hade ett kort före perioden lämnas medvetet utanför. Ett 3x-provkort eller ett gästkort kan räknas som ingång genom att tagga produkten ”customer path entry point”; taggningen är frivillig och skärper bara bilden.
- Rapporter
Kör en kampanj om ”vem drar in flest nya kunder”
Rapporten över utdelade medlemskort har två nya kryssrutor. ”Räkna bara nya kunder” räknar ett kort bara om mottagarens konto inte fanns före rapportens startdatum och inget hade hänt på det före kortet — inget köp, ingen faktura, inget kort, inget besök. Att även kolla fakturor och besök spelar roll: medlemmar som betalar månadsvis mot faktura ger aldrig något kvitto i kassan, så en regel som bara tittar på försäljning skulle betrakta dina äldsta medlemmar som nya för alltid. ”Räkna bara inlösta kort” räknar ett kort först när kompisen faktiskt har besökt gymmet — värt att kryssa i när ett pris står på spel: att registrera en e-postadress kostar inget, att gå in på gymmet gör det. Nyhet bedöms mot rapportens datumintervall, inte mot dagens datum, så en senare körning kan inte ändra vem som vann.
- Seriekort
Att ge bort ett kompiskort skickar nu e-post till båda
Mottagaren får ett meddelande om vem som gav kortet, hur många besök det innehåller och hur länge det gäller. Givaren får ett kvitto med mottagarens namn. Båda meddelandena skrivs på respektive persons eget språk. Det finns medvetet ingen kryssruta i appen: mottagaren är alltid redan din kund, så det som styr utskicket är personens eget samtycke till viktiga e-postmeddelanden, och ett uttryckligt nej respekteras. Meddelandet är också enda sättet att upptäcka att ett kort hamnade hos fel person, eftersom överlåtelsen inte går att ångra. Stäng av per gym med ”Skicka e-post till mottagaren (och givaren) när ett kompiskort ges bort”.
- Seriekort
Nu kan du dölja kompiskortet i OpenAir
Den nya inställningen ”Visa medlemskapets kompiskort i openair” är på som standard. Stänger du av den slutar medlemmarna se sina kompiskort — och knappen Ge till en vän — i appen, medan korten fortsätter att utfärdas och syns för dig i kundregistret. Slår du på den igen kommer de tillbaka direkt; ingenting förbrukas eller raderas.
- Seriekort
Medlemskort kan förtjänas via regler och ges till en vän
Regler avgör vilka kort som ger ett vänkort och vad vännen får. Medlemmen ger bort kortet i OpenAir och vännen får ett riktigt kort. En nattlig körning nollställer korten enligt varje regels egen takt.
- Rapporter
Rapport över utdelade medlemskort
Vem som gett bort vänkort och hur många. Raden kan fällas ut för att visa mottagarna, deras kort och återstående besök.
- Kassa
Distraktionsfri kassa och kvitton som skrivs ut ordentligt
En knapp öppnar kassan i helskärm utan allt annat. Kvitton är anpassade till 72 mm utskriftsbredd, valutatecken och onödiga decimaler är borta, och utskriften sker från en dold ram i stället för att öppna en tom flik.
- Uthyrning
Måla, dra och ändra storlek på bokningar i uthyrningstidslinjen
Dra över tom tid för att skapa en bokning, dra en befintlig för att flytta den, dra i kanten för att ändra längden. Tiderna lagras nu som riktig UTC, så en bokning glider inte längre en timme vid tidsomställning.
- Navigering
En ny menyrad
Sidopanelen är en smal rad ikoner med en utfällbar meny per avsnitt, så bredden går till arbetsytan i stället för navigeringen.
- Stämpelkort
Stämpelkort, hela vägen
Tionde kaffet på köpet. Korttyper sätts upp som produkter, kassan och webbutiken utfärdar och stämplar dem, medlemmen ser sina egna, och varje typ får egen ikon och egna färger. Ett förbrukat kort kan döljas eller dras tillbaka i stället för att raderas.
- Medlemskap
Att pausa ett medlemskap flyttar även faktureringen
Ingen debiteras under en paus, och de betalda dagarna flyttas till slutet i stället för att försvinna. Kvoter ställs in per medlemskapstyp, bindningstid får sina dagar i förskott, och en uppsägning stämmer av pausen mot faktiskt använda dagar.
- Passerkontroll
Ett spärrat medlemskap stoppas vid dörren
Ett medlemskap som spärrades i admin lämnade dörren öppen. Nu nekas inpassering med angiven orsak, så en spärr betyder det den säger.
- Kassa
Nets Cloud Connect-terminaler i kassan
Uppgifterna anges en gång per gym och en terminal binds till varje kassa, så köpet går till läsaren vid just den disken och ingen annan.
- Kassa
Ikoner och färger för kassakategorier
Ge varje snabbvalsgrupp en ikon, en bakgrund och en textfärg, gärna i stort format. En hektisk lördag hittar ögat en färg snabbare än det läser ett ord.
- Webbutik
PDF för webborder och betalningsmarkering med riktig metod
En order skrivs ut eller mejlas som en riktig PDF med din sidhuvud. Att markera den betald frågar vilken metod pengarna kom in med, och kontantliknande metoder är begränsade till personal vid en kassa.
- Seriekort
Pausregler för seriekort
Hur många pauser ett kort tillåter, hur långa de får vara och hur många dagar per år totalt, per korttyp. Kunden pausar själv i OpenAir när du slagit på det för gymmet.
- Rapporter
Produktförsäljning grupperad per variant, filtrerad per produkt
Storlekar och färger av samma tröja summeras på en rad i stället för att spridas över rapporten, och en enskild produkt kan plockas fram för sig.
- Instrumentpanel
Bygg din egen instrumentpanel
Instrumentpaneler ställs in per gym och varje användare ordnar sin egen av de widgetar hen får se. Chefen och den i receptionen behöver inte samma skärm.
- Integrationer
PrestaShop-integrationen ombyggd
Produkter, lager och order synkas från en inställningssida som faktiskt går att läsa, och anslutningen kan testas innan du litar på den. Den gamla integrationen är orörd och körs fortfarande.
- Språk
Hela administrationen talar tio språk
Kunder, produkter, kassa, fakturor, kurser, uthyrning, utrustning, pass, marknadsföring, ansvarsfriskrivningar och resten är översatta, inte halvengelska. Att byta språk ändrar nu hela skärmen.
- Passerkontroll
Dörröppning kan bero på var telefonen är
Sätt en radie runt varje plats, neka öppning utanför den och läs avvikelserapporten för att se vem som försökt från fel sida av stan.
- Landningssidor
Landningssidor du redigerar själv
Varje gym får egna publika sidor — avsnitt, text, bilder, nyheter — redigerade i admin och dirigerade utan att röra en mall eller vänta på en driftsättning.
Vill du veta när det händer?
Vi skriver till kunderna när något värt att veta släpps. Ingen fast takt, inget nyhetsbrev för sakens skull.