FedEx: snabbare bokning över tullgräns3.104.0 · nu
2026-11-05
Handelsfakturan laddas upp till FedEx redan medan fraktalternativen visas, så bokningen slipper vänta på den efter Boka (ungefär 4 sekunder kortare). Har något på fakturan ändrats innan du bokar — vikt, kollin, adress, varor — laddas den upp på nytt vid bokningen som förut, så det går aldrig iväg en gammal faktura.
Vikten per kolli räknas ut ur innehållet, och fler mottagarförslag ur CRM3.103.0
2026-11-05
Packningen: när du angett vad som ligger i vilket kolli (Kartongetikett) räknas varje kollis vikt ut — varorna i just det kollit plus kartongen. Den fylls i av sig själv på kollin som inte vägts eller skrivits in för hand, och räknas om när kartongen eller innehållet ändras. Saknar någon vara vikt i artikelregistret säger kollit vilken, och då vägs det som förut.
Mejlvyn: det öppna mejlet i listan syns tydligt — grå platta och en grön rand till vänster.
Mejlet till kunden (fraktbekräftelsen): «Lägg till mottagare» föreslår också kontaktpersonerna i CRM, kundregistrets e-post, de som mejlat er i CRM-mejlen — kunden själv och alla från samma domän (också den som stod på kopia) — och dem ni mejlat därifrån.
Mejl: inklistrade bilder i texten och kalenderinbjudningar3.102.0
2026-11-05
Skrivrutan: en bild du klistrar in (skärmdump, foto) hamnar i texten där markören står — inte som bilaga. Mottagaren ser den i mejlet, i alla mejlprogram. Andra filer blir bilagor som förut.
Kalenderinbjudningar: ett mejl med en mötesinbjudan (Outlook, Teams, Google) visar mötet överst — vad, när, var och vem som bjuder in — med Ja, Kanske och Nej. Svaret går till arrangörens kalender som ett riktigt kalendersvar, och det står i mejlet vad du svarade. «Lägg till i kalendern» hämtar inbjudan.
Inställda möten visas som inställda, utan svarsknappar.
Kundletaren känner alla Shopify-kunder, skriv ut, alla bilagor som zip och citat med formatering3.101.0
2026-11-05
Nya kunder: hela webbshoppens kundregister läses in (var tionde minut, kräver read_customers) — inte bara kunder med taggen b2b. Ett företag som redan är kund i Shopify (samma e-post, domän eller företagsnamn) föreslås inte som nytt, märks «Redan kund» om det redan låg där, och blir «Vunnen» när ett mejlat företag blir webbkund.
Nya kunder: precis innan du mejlar kollar appen igen mot Fortnox kundregister, ordrarna och webbshoppens kunder. Är företaget kund säger den det — du kan avstå och markera det «Redan kund». Saknas Shopify-behörigheten står det överst på sidan.
Mejl: «Skriv ut» på varje mejl (under mejlet) och «Skriv ut tråden» under ⋯ — rubrikerna och mejlet som det ser ut, med bilderna.
Mejl: «Ladda ned alla» när ett mejl har flera bilagor — alla i en zip-fil.
Svar: mejlet du svarar på citeras med sin formatering (fetstil, tabeller, bilder) i stället för bara texten, när det finns i brevlådan. Bilderna följer med som riktiga bilder, så att de syns i alla mejlprogram.
Mejlvyn: «Ladda om» bredvid ⋯ — läser brevlådorna nu (som Verktyg → Läs nu) och hämtar listan och det öppna mejlet på nytt.
Skrivrutan: «Skicka senare» är en liten klocka bredvid Skicka (inte en stor grön knapp som täckte «Klart efteråt»), och Skicka-knappen bryter inte texten på två rader.
Ångra efter Skicka: fem sekunder igen. Lämnar man sidan under tiden — stänger fliken, byter flik eller app, låser telefonen — skickas mejlet direkt.
Mejl: skicka senare, flagga, påminn mig, utkast på alla enheter och oläst i brevlådan3.100.0
2026-11-05
Skicka senare: klockan bredvid Skicka — i eftermiddag, i morgon 08:00, måndag eller en egen tid. Mejlet ligger under ⋯ → Schemalagda (och som en rad i tråden) med «Skicka nu» och «Avbryt»; avbryter man hamnar texten i skrivrutan igen. Det skickas av servern, även om datorn är avstängd.
Ångra efter Skicka: tio sekunder i stället för fem.
Flagga: flaggan uppe till höger i mejlet. Flaggade mejl samlas under ⋯ → Flaggade, och flaggan syns i eM Client också.
Påminn mig: klockan uppe till höger döljer mejlet till senare i dag, i morgon, nästa vecka eller en egen tid. Då kommer det tillbaka överst, oläst och under Att göra. Under tiden ligger det under ⋯ → Påminnelser (och syns när man söker).
Utkast sparas på servern: ett svar påbörjat på telefonen finns på datorn, och tvärtom. Alla dina utkast under ⋯ → Utkast; listan visar «ditt utkast» på mejlet.
Markera som oläst gäller nu också i brevlådan (eM Client, Outlook) — förut bara i appen.
⋯ → Markera alla som lästa: alla olästa i fliken (eller sökningen), inte bara de som syns i listan. Gäller också i brevlådan.
Mejl med bilder: när historiken döljs igen («Dölj tidigare text») krymper rutan tillbaka — förut stod den kvar lika hög med tomrum.
Notiserna från Nya kunder är kortare: «Svar: Företaget» med ämnet, «Ny kund: Företaget», «Ny webbkund: Företaget» med landet.
Ändra fraktbolag och spårningsnummer för hand, gröna mejl och en lugnare artikellista3.99.6
2026-11-05
Bokade sändningar: «Ändra bolag eller nummer» (i listan Bokat och under ⋯ på kvittot) — fraktbolag, tjänst och spårningsnummer när frakten bokats om utanför appen eller numret blev fel. Spårningen frågas om på det nya numret, kollinas nummer följer med, och står ordern som skickad i Shopify får den det nya numret (kunden mejlas bara om du bockar i det). Vem som ändrade, när och från vilket nummer står på sändningen.
Ett bolag appen inte kan fråga (t.ex. GLS, eller UPS utan Sendify) frågas inte om läget — raden säger det och har spårningslänken när den finns. «Kunden bokar själv» förblir kundens bokning; appen avbokar den aldrig hos bolaget.
Shopify får rätt bolag på Sendify-sändningar (t.ex. «DHL Freight» med DHL:s spårningslänk i stället för «SENDIFY»), och inget påhittat bolag när kunden bokar själv.
Mejl: det vi skickat är grönt med vit text även när det visas med bilder, och fyller bubblans bredd. Kundens mejl har tydligare kant mot bakgrunden, och trådens bakgrund är en aning mörkare.
Mejl: det citerade mejlet under ett svar är märkt som citat på standardsättet, så att Gmail, Outlook, eM Client och appen fäller ihop historiken och bara visar det nya.
Mejl vi skickar har lite större text (15 px i stället för 14) — syntes litet i eM Client.
Datorn: artikellistan och de andra sidorna rullar mjukt i glas-temat. På en skärm med 100 % skalning målades hela sidan om för varje rullsteg; nu flyttas bara den färdiga bilden. Utseendet är detsamma.
Listen: CRM och knapparna alltid där, bredare mejl och AI-förslag utan hälsning3.99.5
2026-11-05
Datorn: CRM-flikarna (Kunder, Mejl, Nya kunder, Uppgifter, Bevakning, Siffror) står i listen till vänster på alla sidor, inte bara i CRM. Den flik sidan hör till är markerad (kundsidan → Kunder, ett ärende → Mejl).
Datorn: knapparna nederst i listen (sociala medier, uppdatera, skanna, assistenten, larm, inställningar) finns på alla sidor med meny, också undersidorna som Bokat, Larm och kundsidan.
Mejl på datorn: mejlen är bredare (upp till 1 100 px), och mejl med bilder tar hela den bredden i stället för att krympa till en smal remsa. Det tomma utrymmet under mejlrutan är borta — den går ända ned.
AI-förslagen till svar slutar före hälsningsfrasen: ingen «Best regards», «Liebe Grüße» eller «Med vänliga hälsningar», och inget namn eller företag sist — signaturen i skrivrutan har redan det. Skulle AI:n ändå skriva det tas det bort.
Skrivrutan: «Ta med … under svaret» heter nu «Citera … under svaret» — mejlet du svarar på följer med under ditt svar, som i ett vanligt mejlprogram. Håll musen över för förklaringen.
Plock på datorn: «Skanna plocklista» ligger under + i stället för som en stor knapp över listan. Telefonen som förut.
Bokat visar alla sändningar igen3.99.4
2026-11-05
Bokat: listan visade bara ett par sändningar och gömde resten bakom «visa fler». Gränsen för hur långt bak våra egna sändningar visas räknades bara på webbshoppens sändningar som inte bokats här — och när nästan alla webbordrar bokas i appen blev en enda Shipmondo-sändning från i morse gränsen. Nu räknas den på hela den hämtade sidan.
Avbrutna webbsändningar försvinner, och packsedeln vid kombinerade ordrar3.99.3
2026-11-05
Bokat: en webbsändning vars leverans avbrutits i Shopify (som #2364 — FedEx makulerade, ordern bokades om här) står inte längre kvar som «avvikelse» utan att gå att ta bort. Den försvinner ur listan och statistiken nästa gång listan läses, eftersom den aldrig gick iväg.
Kombinerade ordrar: packsedeln skrivs ut av sig själv även när den ena ordern redan var plockad (och hade fått sin egen packsedel) innan den andra kom in — när resten är avbockad kommer en ny packsedel med båda ordrarna. Var allt redan avbockat när ordrarna kombinerades skrivs packsedeln direkt. Tas en order ur paketet får det som är kvar en ny packsedel.
Listen till vänster i hela appen, stora bilagor och kundletaren hittar fler adresser3.99.2
2026-11-05
Datorn (från 1 024 px): appens meny står i en smal list till vänster på alla sidor med meny — Artiklar, Inventering, Plock, Tillverkning, CRM, Bokat, Larm, Inställningar m.fl. Loggan överst, knapparna (sociala medier, uppdatera, skanna, assistenten, larm, inställningar) nederst. Sidorna får hela höjden. Telefonen är som förut.
CRM på datorn: flikarna (Kunder, Mejl, Nya kunder, Uppgifter, Bevakning, Siffror) står i listen under menyn, på alla CRM-sidor. I Mejl tar mejlen hela bredden.
Mejl: bilagor upp till 18 MB går att skicka (förut 4 MB) — en prislista på 11 MB går nu. Filen laddas upp i bitar så fort den läggs till, och chippet fylls medan den laddas upp. Mejlet går inte iväg förrän alla bilagor är uppe.
Mejl på telefonen: mejlen i ett ärende tar hela bredden (förut smala bubblor som blev långa remsor), och mejl med bilder har luft runt texten.
Mejl: «Skickas om … s» är en rad med en ring som räknar ned, vart mejlet går och hur många bilagor, «Skicka nu» och en tydlig Ångra-knapp. Kryssrutan «Ta med … under svaret» står på linje med texten.
Kundletaren hittar fler e-postadresser på webbplatserna: adresser dolda av Cloudflare, i schema.org-data, kodade med teckenkoder eller skrivna «info @ butik.se», «(at)», «{at}» och «[punkt]»; kontaktsidor som känns igen på länktexten («Kontakta oss»); Shopify-butikernas sida med kontaktuppgifter; med och utan www. Upp till sju sidor per webbplats.
Plock: «Vill du kombinera dessa ordrar?» kommer varje gång ordern öppnas, tills man tryckt «Inte nu» tre gånger för samma ordrar (förut en gång per flik). Raden med knappen står kvar efteråt.
Kundletaren: hittas ingen adress på webbplatsen söker AI:n på webben (kontaktsida, impressum, kataloger, sociala medier). En adress tas bara med om den hör till företagets egen domän eller går att se på sidan AI:n anger — inget hittas på. Den märks «hittad på webben». Under själva letandet görs det efteråt, av kompletteringen och med «Leta igen».
Tillbaka till plock, mejlen med bilder och det senaste mejlet uppifrån3.99.1
2026-11-05
Ny: «Tillbaka till plock» på en bokad order (fraktsidans ⋯, raden under en avbockad vara och på sändningen under Bokat). Ett tryck avbokar frakten, avbryter leveransen i Shopify («Avbryt distribution») och avarkiverar ordern där, och öppnar rundan igen under Plocka — det som var avbockat står kvar. Går fraktbolaget inte att avboka härifrån (PostNord, redan hämtad) frågar appen om sändningen ska markeras som avbokad bara i appen.
Öppna en avslutad runda igen: har leveransen redan avbrutits i Shopify för hand (som #2364) går det nu — förut vägrade appen så länge den mindes sin gamla markering. Står ordern fortfarande som skickad i Shopify säger appen vad som ska göras där.
Mejlen visas alltid som de ser ut, med bilderna. «Visa som text» finns kvar. Den citerade historiken (tidigare mejl i tråden) fälls ihop under «···» även i mejl med bilder — Gmail, Outlook, Apple Mail och Thunderbird.
När ett ärende öppnas står början av det senaste mejlet överst, i stället för slutet av det. Är mejlet kort syns det helt, längst ned. Mejl med bilder som laddas efteråt flyttar inte vyn så länge man inte själv rör tråden.
Säkerhetskopian: en tom inställning (till exempel när appens brevlåda tagits bort) fällde hela återställningen. Den hoppas nu över — en tom inställning är samma sak som ingen.
Mejlen får hela höjden3.99.0
2026-11-05
Datorn: i CRM → Mejl glider appens topp, CRM-flikarna och menyn ihop till en smal list till vänster, och mejlen tar hela högersidan i full höjd. Lämnar man Mejl glider allt tillbaka. Bytet animeras där webbläsaren klarar det.
Listen har samma knappar och länkar som förut: loggan, appens meny (Artiklar, Inventering, Plock, Tillverkning, CRM), CRM-flikarna, och nederst sociala medier, uppdatera, skanna, assistenten, larm och inställningar. Namnet står när man håller musen över; på låga skärmar visas bara ikonerna.
Telefonen: i ett öppet mejl (eller när man skriver ett nytt) glider appens topp och CRM-flikarna undan. Rullar man uppåt kommer toppen tillbaka ovanpå mejlet; nedåt går den undan igen. Menyn längst ned står kvar.
Kunden bokar själv: mejl direkt till kunden, och FedEx partner är inte en avvikelse3.98.0
2026-11-05
Väljer man «Kunden bokar själv» finns två knappar: «Skriv mejl till kunden…» och «Skicka paketinfo till» er brevlåda (som förut).
«Skriv mejl till kunden…» öppnar skrivrutan med paketinfon ifylld — kundens adress, ämnet, packlistan, kollin med vikt och mått och adressen, och utanför EU handelsfakturan som PDF. Allt går att ändra innan det skickas. Det skickas från info@texsolv.se när appen skickar från den brevlådan.
När mejlet gått märks sändningen «Kunden bokar själv», som när paketinfon går till er, och mejlet syns i sändningens mejllogg och på kunden i CRM.
På en sändning där kunden bokar själv finns «Mejla kunden…» bredvid «Skicka paketinfon igen…».
Mejlen: «Flyttat till papperskorgen · Ångra» står nu i flikraden — rutan med mejlen flyttar sig inte längre ned.
Spårningen: «A trusted third-party vendor is on the way with your package» (FedEx lokala partner kör ut paketet, t.ex. i Israel) räknas som «På väg», inte som avvikelse. Säger FedEx samtidigt att den är försenad är det fortfarande en avvikelse. Sändningar som redan står som avvikelse rättar sig vid nästa uppdatering.
Mejlen: byter man flik, eller grupp under Alla, öppnas det senaste mejlet i den fliken (förut kunde det som var öppet stå kvar). Det gäller också Skickat och brevlådornas mappar.
Mejlen: större yta, flikarna som knappar och Brevlådor jag ser3.97.1
2026-11-05
Mejlen använder hela bredden på stora skärmar (upp till 1 640 px) och ärendet tar mindre plats överst och nederst — tråden får mer utrymme.
Att göra, Alla, Skickat och Klara är knappar i en rad i stället för understrukna ord.
På datorn är alltid ett mejl öppet: det senaste i listan när man kommer till mejlen, och det senaste igen när det öppna raderas, blir klart under Att göra eller markeras oläst, eller när man byter flik. Ett ärende man kommer till från en notis står kvar tills man gör något med det.
Knappen «Brevlådor» bredvid sökningen: bocka i vilka brevlådor du ser. Valet gäller nu alla flikar och siffrorna (förut bara Nya och Att svara) — när du söker syns allt. Gäller bara dig.
Nya mejlvyn: lugnare, tråden som sms, och skrivrutan som ett mejlprogram3.97.0
2026-11-04
Mejlen har en ny vy, Lugn, för alla: listan och ärendet på en yta. Fyra flikar — Att göra (det som väntar på svar), Alla, Skickat och Klara. Under Alla väljer man vem som mejlar: kunder, leverantörer, frakt och tjänster, övrigt eller skräp. Resten ligger under ⋯: Nya, Mina, kategorierna, papperskorgen, brevlådornas mappar, Mina brevlådor, Välj flera, Läs nu och mallarna.
Tråden ser ut som ett sms-samtal: äldst överst, det senaste längst ned och vyn nedrullad dit när ärendet öppnas. Deras mejl till vänster, era i grönt till höger, med klockslaget på varje mejl och dagen emellan. Citerad historik och signaturer är ihopfällda (···).
Kunden står på en rad under ämnet — tryck för kund, ordrar, kategori, ansvarig och grupp. Klar och ⋯ (oläst, avprenumerera, affär, radera) uppe till höger.
Skrivrutan som i ett mejlprogram: Svara, Svara alla och Vidarebefordra (med bilagorna); mottagarna som brickor med förslag ur kontakterna, kundregistret och de som mejlat; Kopia och Hemlig kopia; fet, kursiv, punktlista och länk; dra in eller klistra in filer. Det tidigare mejlet citeras under svaret (går att stänga av). Utkastet sparas medan man skriver, Skicka väntar fem sekunder med «Ångra», och Ctrl/Cmd+Enter skickar.
Samma skrivruta på kundsidan, i affären, i kundletaren och för förfallna fakturor. Kundsidans flik Mejl visar samma rader som mejlvyn.
Mejlvy E och den gamla inkorgen är borttagna, och valet under Inställningar → Utseende med dem. Allt de kunde finns kvar i den nya vyn.
Webbshoppens nya fraktval 2027 bokas med rätt tjänst3.96.0
2026-11-04
De nya namnen i kassan — «FedEx Standard · 2–5 business days», «FedEx Express · 1–3 business days», «PostNord Tracked · 4–8 business days» … — säger inte vilken FedEx-tjänst det är. Appen läser nu tjänsten ur namnet och mottagarlandet, enligt kolumn L i fraktarket: FedEx Standard är Regional Economy till Norge, EU och Storbritannien och International Economy till resten av världen; FedEx Express är International Priority, Priority Express till USA och FedEx Priority inom Sverige.
PostNord: Home Small och Ombud inom Sverige som förut, «PostNord Tracked» inom EU blir Mailbox (Tracked Letter, 2 kg), och «PostNord · …» till Norge är Home Small. PostNord till Norge bokas fortfarande inte i appen (PostNord vill ha tullpapper) — rundan säger det, och man väljer FedEx Standard eller bokar PostNord själv.
Tjänsten förväljs på fraktsidan och «Boka frakten» i packningen fungerar som förut. Okänt land → man väljer själv i stället för att appen gissar. De gamla namnen tolkas som förut, för ordrar lagda före bytet.
Tull och moms: oförändrat — webbordrar bokas med DDP (vi betalar), också B2B, Norge och Australien/NZ.
FedEx-returen säger att det är Texsolv AB som tar emot3.95.2
2026-11-04
På en FedEx-returetikett stod mottagaren som «Texsolv» utan företag. FedEx läste det som en privatperson som importerar och bad om godkännande för tullklareringen. Nu följer företaget alltid med som mottagande företag — också på returer skapade innan företaget sparades — och varorna anmäls som företagsimport (BUSINESS), inte konsument. Momsnummer och EORI följde redan med.
Avsändaren (kunden) och vanliga sändningar är oförändrade.
Nya kunder: Svarade som eget steg, och kunder föreslås inte3.95.1
2026-11-03
Nya kunder har fått en femte ruta, Svarade, mellan Mejlade och Vunna — samma ordning som det går till: Nya → Mejlade → Svarade → Vunna. Mejlade är nu de som inte svarat än. Förut stod det bara «1 svarade» under Mejlade, utan att det gick att se vem.
Märket «Svarade 3 nov. · Anna» på förslaget leder till ärendet med svaret. Notiserna om svar och nya kunder leder till Svarade respektive Vunna.
Kundletaren föreslår inte längre företag som redan är kunder. Förut jämfördes bara webbplatsens domän, och kundregistret har ofta ingen webbplats och en gmail-adress — då föreslogs kunden som ny. Nu jämförs också företagsnamnet (utan AB, Ltd, GmbH, & …) och e-postadressen, mot kundregistret, kontaktpersonerna, webbshoppens företagskunder, ordrarnas e-post och återförsäljarnas webbshoppar. AI:n får dessutom namnen på våra kunder i landet den letar i.
Förslag under Nya som visar sig vara kunder flyttas till Inte intressanta med orsaken «Redan kund — namn (kundnummer)». Var det fel går det att ångra, och då märks förslaget inte om. Ett förslag räknas som Vunnet bara om vi mejlat det (eller lagt upp en affär) — ett som redan var kund är inte vunnet.
Papperen på fraktkvittot går att öppna och skriva ut igen — och bokningen tar tid3.95.0
2026-11-03
Kvittot efter bokningen har fått rutan Papper: fraktetiketten, handelsfakturan, följesedeln, plocklistan och det andra som gått till skrivarna för sändningen, med när det skrevs ut eller om det väntar i kön. «Öppna» visar handelsfakturan (PDF) och de papper appen ritar (följesedel, plocklista, restlista); «Skriv ut» lägger pappret i kön igen och säger vilken skrivare det går till. Zebraetiketten är skrivarkod och går inte att visa på skärmen — den skrivs ut igen. Förut fanns papperen bara under Papper i fraktlistan, utan omutskrift.
Hur lång tid bokningen tog står under Detaljer på kvittot: från trycket till svaret, tiden i servern och de steg som tog mer än 0,2 sekunder — kundkortet, handelsfakturan (ritad och uppladdad till FedEx), FedEx bokning, etiketterna, fakturan med spårningsnumret. Sparas på sändningen och syns också när den öppnas senare. Än så länge för FedEx, där bokningarna kunde ta upp mot tio sekunder — siffrorna visar vad som ska göras snabbare.
Bokningssimulatorn skriver ut medianen per steg för FedEx-bokningarna.
Notis när någon under Nya kunder svarar eller registrerar sig i webbshoppen3.94.0
2026-11-03
Svarar ett företag på mejlet vi skickade från Nya kunder kommer en notis: «Svar från Weberei X» med avsändare och ämne, och länken går till ärendet. Svar räknas i samma ärende som vårt mejl, från adressen vi mejlade eller från företagets domän — så också den som svarar från en gmail-adress. Frånvaromeddelanden, studsar och utskick räknas inte (det gällde också «Svarade» i listan, som förut räknade dem).
Registrerar sig någon som företagskund i webbshoppen (Shopify-kund med taggen b2b) kommer en notis med företag, namn, land och e-post, och länken går till kunden i Shopify. Gäller alla nya företagskunder; står företaget under Nya kunder märks det där som vunnet («registrerade sig i webbshoppen»).
Blir ett företag under Nya kunder kund på annat sätt — det dyker upp i kundregistret eller på en order i Fortnox — kommer också en notis.
Notiserna går till dem med CRM, under notistypen CRM, var tionde minut efter att brevlådorna lästs. Varje sak sägs en gång; det som hände för mer än tre dygn sedan ringer inte när funktionen slås på, och webbshoppens befintliga företagskunder minns utan notis första gången.
Webbshoppens kunder kräver behörigheten read_customers — /setup visar den som saknad tills den kryssats i en ny version av appen hos Shopify och godkänts. Namn och e-post är skyddad kunddata hos Shopify; nekas de kommer notisen ändå, utan namn.
Rullängderna under Skrivare visar det som är inställt3.93.2
2026-11-03
Rutorna «Fraktrullens längd», «Kartongrullens längd» och «Flytta ned fraktsedlarna» under Inställningar → Skrivare ritades innan inställningarna hämtats och visade då standardvärdet — 150 i fraktrutan fast appen ritade för en 219-rulle. Efter bytet till 100 × 150 i Zebra 1 kom produktionsetiketten ut ritad för 219 mm och avklippt vid antalet, medan rutan sa 150. Nu visar rutorna det som faktiskt är inställt.
Shopify-behörigheterna frågas hos Shopify3.93.1
2026-11-03
Raden «Behörigheter» under /setup → Koppla Shopify visade listan som sparades när kopplingen gjordes. Behörigheterna bestäms där appen är registrerad hos Shopify: en ny version, godkänd i Shopify-admin, ger samma nyckel fler behörigheter — men /setup stod kvar med den gamla listan, och «Koppla om Shopify» ändrade ingenting. Nu frågar appen Shopify varje gång sidan öppnas och rättar den sparade listan.
Under raden står det som saknas och vad det betyder, t.ex. «write_orders — Återbetala frakten på kombinerade ordrar fungerar inte» och «write_returns — returen läggs inte in på webbordern». Har nyckeln allt står det så.
Knappen «Återbetala frakten» och returrutan frågar också Shopify när den sparade listan säger nej, så att en nyss godkänd behörighet gäller direkt.
Beskrivningen av kopplingen säger nu allt appen gör i webbshoppen, inte bara bilder och streckkoder.
Notis när en förskottskund har betalat3.93.0
2026-11-02
Förskottsordrar packas och bokas, men paketet står kvar tills kunden betalat. Nu kommer en notis när betalningen kommit in: «Betald: order 10045 kan skickas — Frank Herring and Sons Ltd. har betalat faktura 10641 (44 197 SEK). Paketet är bokat med FedEx och väntar på upphämtning.» Notisen leder till plockrundan.
Vilka ordrar: Fortnox-ordrar vars betalvillkor är en förskottskod (samma koder som styr fraktmejlets «väntar på betalning», Inställningar → Mejl), och webbordrar med taggen b2b som betalas mot faktura (betalsätt «manual»). Shopify markerar de webbordrarna som betalda direkt, så det är deras faktura i Fortnox som avgör.
Har fraktbolaget redan skannat paketet kommer ingen notis. Kommer notisen och paketet hämtas sedan försvinner den av sig själv. Gäller också kombinerade ordrar (huvudorderns paket räknas).
Appen läser de väntande fakturorna i Fortnox var tionde minut, bara dem. En faktura som redan var betald när appen först såg den ger ingen notis, så gamla ordrar ringer inte när funktionen slås på.
Ny notistyp «Förskott betalt» under Vem får vilka notiser. Den som får alla notiser får den direkt; den som valt slag får kryssa i den.
Skrivaragenten startar om sig själv om den hänger sig3.92.0
2026-11-02
Efter en helg i viloläge kunde skrivaragenten stå och se ut att vänta på papper utan att fråga efter något. All agentens nätkontakt går på fönstrets tråd, och ett anrop som fastnade när datorn vaknade — innan nätet var uppe — stoppade hela programmet, också vakthunden som skulle släppa det. Den fick startas om för hand.
Nu har agenten en vakt på en egen tråd. Svarar programmet inte på tio minuter (trettio under en utskrift, ett stort satspapper får ta tid), eller har klockan som frågar efter papper slutat slå, startar agenten om sig själv och skriver varför i logg.txt (%APPDATA%\Texsolv). Vakten märker också när datorn har sovit och frågar efter papper igen direkt, även på datorer som inte säger till när de vaknar.
Tidsgränsen på tjugo sekunder gäller nu också läsningen av svaret (förut fem minuter), även när agenten tittar efter en ny version, och anslutningarna från före viloläget används inte igen. Loggen säger när datorn går i viloläge, så att en tystnad går att förklara i efterhand.
Hjärtslaget larmade varje måndag: klockan sex hade ingen agent hörts av sedan fredag. Nu räknas en agent som död först när den inte hörts av under hela förra arbetsdagen (dagarna i skrivare_tider, mån–fre om inget är satt). Larmet säger när agenten senast hördes och vad man gör.
Hör en tyst agent av sig igen blir raden i hjärtslaget grön direkt, larmet tas bort och det kommer en notis om att den fungerar igen — förut stod det rött till nästa morgon.
Agenten hämtar den nya versionen själv (inom sex timmar, eller direkt med Uppdatera i menyn vid klockan).
Kombinera ordrar: flera ordrar i samma paket3.91.0
2026-11-02
Har en kund lagt två (eller fler) ordrar till samma adress kan de skickas i samma paket: en kartong, en fraktsedel, en frakt. Samma sort krävs (Fortnox med Fortnox, webb med webb), samma kund (kundnumret, eller e-posten för webbordrar), samma leveransadress och samma valuta.
Frågan: öppnar man en av ordrarna frågar sidan «Vill du kombinera dessa ordrar?» med ordrarna, raderna och värdet. «Inte nu» lämnar en rad kvar med knappen. Under Pågår står samma förslag överst med knappen Kombinera.
Huvudordern är den med högst ordervärde. Den bär frakten, och de andra står under den («+ 4519») i Pågår, Packat och Bokat. Öppnar man en av de andra visas hela paketet.
Plockningen: alla ordrarnas rader i en lista, och varje rad visar vilken order den hör till. Låset tar hela paketet. Det som inte kom med blir den orderns egen nästa omgång, med egen restlista.
Följesedeln: en för hela paketet, med en rubrik per order (Order 4512 · 2 rader …) och alla ordernumren överst. Innehållsetiketten och referensen på fraktsedeln har alla numren.
Handelsfakturan (tullfakturan): alla ordrarnas rader, var och en med sin orders pris, och alla ordernumren och kundens referenser.
Frakten: fraktraden i Fortnox skrivs bara på huvudordern — den billigare ordern får ingen frakt. Webbordrar markeras alla som skickade i Shopify med paketets spårningsnummer. På en webborder som följde med finns «Återbetala frakten på #4102 · 49 SEK» när paketet är bokat. Den betalar tillbaka fraktavgiften i Shopify (bara frakten, samma väg som betalningen), och kunden får Shopifys mejl. Det görs en gång; fri frakt ger inget att återbetala.
Kräver Shopify-behörigheten write_orders. Kryssa i den i Shopify-appens inställningar och gör om kopplingen under /setup → Shopify. Utan den säger knappen det, och frakten kan återbetalas i Shopify.
Mejlet till kunden: «Dina ordrar 4512 och 4519 är på väg» / «Your orders #2257 and #2260 are on their way», och att ordrarna ligger i samma paket.
«Ta ur» tar en order ur paketet innan det packats. Är det packat öppnas det igen först («Ändra»). Tas huvudordern bort blir de andra egna igen. En order som följer med kan inte bokas för sig.
Returen i Shopify: på en order med tullavgifter (DDP) nekade Shopify returen med «Exchange items cannot be added to an order with duties». Nu läggs returen in utan bytet, och rutan säger att bytet ska skickas som en ny order. «Lägg in i Shopify igen» fungerar på returer som fastnat så.
Prov: kombineraprov.mjs (nytt, 50 prov), shopifyreturprov.mjs (+2), packtidprov.mjs (veckodagen räknas från i dag — det fasta datumet blev «i dag» 2 november).
Kundletarens mejl: rätt länkar, och länkar med text3.90.3
2026-10-30
Återförsäljarmejlet hade en adress till B2B-sidan som inte fungerade. Nu är det texsolvshop.se/en/pages/b2b-onboarding på engelska och texsolvshop.com/sv/pages/b2b-onboarding på svenska. Ansökan är texsolvshop.com/pages/wholesale-registration-form på båda språken.
Hemsidan i mejlet är nu texsolv.se direkt. texsolv.com skickas vidare dit, och den omvägen gav «för många omdirigeringar».
Länkarna står som text i mejlet: «Apply for a reseller account», «Read more about the B2B account», «Ansök om återförsäljarkonto», «Läs mer om B2B-kontot» och «texsolv.se». Mottagaren ser texten, klickbar, inte den långa adressen.
De sparade återförsäljarmallarna rättas av sig själva en gång. Egna mallar som har den gamla B2B-adressen får den nya på mallens språk.
Skrivrutan i CRM: knappen «Infoga länk» (text och adress) lägger in en länk där markören står, eller på den markerade texten. Den står som [text](adress) i rutan och blir klickbar text i mejlet. E-postprogram utan html får texten med adressen inom parentes.
Prov: kundletarmejlprov.mjs (+9), brevladorprov.mjs (+1: länken går hela vägen genom en låtsas-SMTP).
Följesedeln önskar gott nytt år till 15 januari3.90.2
2026-10-30
Nyårshälsningen på följesedeln gäller nu 23 december–15 januari (förut till 6 januari). Vinterhälsningen tar vid den 16 januari.
Etiketter per artikel: alla kategorier går att välja3.90.1
2026-10-30
Inställningar → Skrivare → Etiketter per artikel visade bara kategorierna i kategoriinställningen. En kategori som bara finns på artiklarna, t.ex. Kartong, syntes i artikellistan men gick inte att välja för etiketterna. Nu finns varje kategori som artiklarna har med: inställningens ordning först, sedan resten i bokstavsordning, och Övrigt sist.
Samma kategori med olika stavning eller mellanslag («Kartong», « kartong ») blir en knapp, och artiklarna hittas med båda.
Prov: etikettvalprov.mjs (+1).
Följesedeln tackar kunden — efter årstiden3.90.0
2026-10-30
Längst ned på följesedeln står ett tack till kunden, med en liten tecknad bild och «Warm regards from all of us at Texsolv». Följesedeln är på engelska, och tacket också.
Hälsningen följer kalendern (svensk tid):
God jul 1–22 december (granen), gott nytt år 23 december–6 januari (fyrverkerier), alla hjärtans dag 7–14 februari, påsk (påskdagen räknas ut varje år), glad midsommar från Sverige (midsommarstången), Halloween 20–31 oktober (pumpan).
Däremellan vinter, vår, sommar och höst, med snöflingor, tulpaner, sol och löv.
Bilderna är linjeteckningar med en färg som accent. De blir lika fina i svartvitt på laserskrivaren. Rutan delas aldrig mellan två sidor.
Samma ruta på appens följesedel och på den som skrivaragenten skriver ut.
Inställningar → Skrivare → Följesedeln → «Se alla hälsningarna» visar alla tio och vilken som gäller i dag.
Prov: halsningprov.mjs (påskdagen och midsommarafton i flera år, gränsdagarna, varje dag i fem år, inga trasiga bilder).
Flera brevlådor skickar — svaret går från adressen kunden skrev till3.89.0
2026-10-30
Inställningar → Brevlådor: ny bock «Skicka härifrån» som går att sätta på alla brevlådor. Förut fanns bara en utgående brevlåda, och allt i CRM gick från den.
Den gamla bocken heter nu «Appens avsändare». Den är fortfarande en enda brevlåda, och fraktbekräftelser, tullfakturor, returmejl och påminnelser går som förut från den. Tar en annan över behåller den gamla «Skicka härifrån» och slutar inte skicka.
CRM: skrivrutan har «Från» med alla brevlådor som skickar. Ett svar väljer själv adressen kunden skrev till («— dit kunden skrev»): brevlådan mejlet kom in i, eller en adress i Till/Kopia. Ett nytt mejl går från din egen adress om den skickar, annars från appens avsändare. Allt går att ändra innan man skickar.
Från en egen brevlåda sätts inget «Svara till», så kundens svar kommer tillbaka till samma brevlåda och läses in i CRM. Kopian i Skickat hamnar i den brevlåda mejlet gick från.
«Prova» på en brevlåda provar också dess utgående server.
Prov: brevladorprov.mjs (+15, bl.a. hela vägen genom en låtsas-SMTP: svaret loggar in och är från rätt adress).
Leta kunder: letandet stannar inte av ett fel eller en omladdning3.88.0
2026-10-30
Ett fel i en runda stoppade hela letandet — tappat nät, skärmen släckt, eller ett anrop som tog för lång tid — och raden «Letar …» försvann, så resten av länderna blev aldrig gjorda. Nu försöker den igen två gånger (och väntar tills sidan syns), och går landet ändå inte står felet på det landet och nästa tas. Bara fel som gäller allt (nyckeln, webbsökningen, ett annat letande) stoppar.
Laddas sidan om mitt i — «Uppdatera» efter en ny version, eller telefonen som slänger fliken — tar letandet vid där det var när Nya kunder öppnas igen (inom en halvtimme), med nästa runda.
En runda kan inte längre dödas av serverns tidsgräns (fem minuter): AI:n får till 170 sekunder, sedan kontrollen och adresserna det som är kvar, och svaret går alltid. Hinner AI:n inte blir rundan tom och nästa runda försöker. Samma gräns på måndagarnas schemalagda letande.
Prov: kundletareprov.mjs (+5: AI-anropet stannar vid rundans tid, tiden slut ger ett svar och inget fel, inget kontrolleras efter gränsen).
Packbordsetikett: kartongens namn och streckkod på 100 × 1003.87.0
2026-10-30
Ny etikett för kartongerna man packar i: namnet så stort det får plats (två rader som mest), måtten smått under och streckkoden över hela bredden, 34 mm hög. Kartongens EAN när den har en, annars den korta K-koden. Sätt upp den vid packbordet och skanna den när kartongen saknar egen streckkod — packningen känner igen koden.
Förpackningar → «Skriv ut streckkoder till kartongerna»: välj kartonger och skriv ut en etikett per kartong på kartongrullen, med antal per kartong och «Visa etiketterna». A4-arket finns kvar under.
Artiklar som också är en kartong i förpackningslistan (samma EAN eller namn, t.ex. 799058 FedEx minsta snabbotten) får «Packbordsetikett» i etikettväljaren. Står kartongen inte bland Förpackningarna sägs det där.
Etikettväljaren visar rullens riktiga mått: kartong-, Runlock-, sats- och packbordsetiketten kartongrullens längd (100 × 100), produktionsetiketten fraktrullens. Förut stod det alltid 100 × 150. Bilderna ritas i samma form.
Prov: kartongkodprov (packbordsetiketten ritas med rätt kod, paketForArtikel, etiketterFor med kartong).
Skanna nära: kameran byter till makro, som kamera-appen3.86.0
2026-10-30
På iPhone Pro ställer den vanliga bakkameran inte skärpan närmare än 15–20 cm — därför fick man hålla telefonen 2–3 dm från koden. Läsaren valde just den linsen med flit (den sammansatta linsen blinkar när den byter). Nu är «Nära» förvalt: den sammansatta linsen («Bakre dubbel vidvinkelkamera», annars trippel- eller ultravidvinkelkameran), som byter till makro när man går nära — som kamera-appen. Håll 5–15 cm från koden.
Knappen Nära/Vanlig i kamerarutan (packningen) och uppe i helskärmsläsaren byter lins, och valet sparas på telefonen. Den syns bara när telefonen har en nära-lins — på Android gör det ingen skillnad.
Prov: skannerprov.mjs (+6: vilken lins som väljs på iPhone på svenska och engelska, och på Android).
Snabbare skanning: ny läsare på iPhone, kortare kartongkoder, artikeln öppnas direkt3.85.0
2026-10-30
Ny streckkodsläsare på iPhone: zxing-cpp (paketet zxing-wasm, WebAssembly) i en egen tråd i stället för ZXing i JavaScript på sidans tråd. Flera gånger snabbare per bildruta, läser täta och suddiga koder som den gamla missade, och kamerabilden hackar inte medan den läser. Filen (knappt 1 MB) ligger i appen och laddas första gången kameran öppnas. Android använder telefonens inbyggda läsare som förut. Den gamla läsaren finns kvar som reserv.
Kartongernas streckkoder är korta: «K» och sex siffror (t.ex. K432579) i stället för «KRT-» och hela namnet. Strecken blir 2,5 gånger bredare på samma yta (0,53 mm mot 0,21 mm) och går att läsa på avstånd. Skriv ut arket igen under Förpackningar för att få de nya — de gamla KRT-koderna fungerar fortfarande.
En skannad artikel öppnas direkt: koderna som pekar ut en enda artikel (artikelnummer, EAN, Shopifys streckkod) hämtas när startsidan öppnas, så ingen fråga till servern behövs vid skanningen. Koder som flera artiklar delar går som förut och visar listan. Uppslaget på servern har fått index (artikelnummer, EAN, streckkod).
En skannad plocklista öppnas inom appen i stället för att hela sidan laddas om — på Plock och på startsidan.
Prov: skannerprov.mjs (kodindexet mot serverns uppslag, zxing-wasm på våra format), kartongkodprov.mjs (korta koder).
Returen: rätt mottagare på etiketten, returen i Shopify i kundens valuta, enklare steg3.84.0
2026-10-30
Returetiketten: mottagaren stod som «TEXSOLV / VERENA BUTLER» — kundens namn hamnade som vårt företag. Bokningen tog rundans kundnamn som mottagande företag, och på en retur är det kunden som skickar. Nu står bara vi som mottagare (företaget sparas med returen). Gäller FedEx, PostNord och Sendify. Referensen på etiketten säger också vilken order det gäller: «R-40 · order 2290» (FedEx och Sendify).
Returen i Shopify: «The presentment currency of the order needs to be used» — returfrakten skickades i butikens valuta (SEK) fast kunden betalat i EUR. Nu frågas orderns valuta (presentment) varje gång, och ett eget belopp i fel valuta räknas om med ECB-kursen. «Lägg in i Shopify igen» fungerar alltså på en retur som föll.
Webbordrar som bara skickas delvis — ett byte efter en retur, en delleverans — visar summan för det som ska iväg nu, inte hela orderns (#2290 stod som 2 113 kr för tre solv). Det står också i notisen om ny order.
Returflödet: stegen heter Kunden → Returen → Kollin → Skapa. Vart kartongen går är en rad överst («Till Texsolv AB, Vitlanda 103 …»). Returen i Shopify ligger i steget Returen tillsammans med innehållet, som inom EU är ihopfällt («2 rader på etiketten — följer det du valt ovan», Visa och ändra). Avgift och notering per rad visas när man ber om dem. Ursprunglig sändning (för tullen) syns bara utanför EU. Sammanfattningen visar returen i Shopify (antal, vem betalar frakten, byte) och vart etiketten mejlas, och texterna radbryts i stället för att klippas.
Knappen sa «Ange vikt på fritextraden» på en retur inom EU fast inget fattades — det gäller bara utanför EU. Postnummerfältet är bredare («R95YV21» klipptes).
Mejlet till kunden med returetiketten säger nu när returfrakten dras från återbetalningen (med beloppet) och vad som skickas i utbyte.
Kvittot för returen: «Spara som PDF» stod två gånger — länken på raden Etiketten är kvar.
Prov: shopifyreturprov.mjs (+8: valutan) och nya returflodeprov.mjs (mottagaren, referensen, mejlets tillägg, summan).
Fraktbekräftelsen till förskottskunder: «packad — FedEx hämtar när betalningen kommit in»3.83.0
2026-10-29
När Fortnox-orderns betalvillkor är förskott säger mejlet till kunden att ordern är packad och klar att skickas, och att fraktbolaget hämtar den så snart betalningen kommit in — inte att den skickats i dag. Spårningsnumret och länken står med som förut. Ämnet blir «Your order 10045 is packed and ready to be shipped». På svenska till Sverige när språket är «Svenska till Sverige».
Vilka betalvillkor som betyder förskott väljs under Inställningar → Mejl → Förskott: skriv koderna, eller tryck på dem bland de koder som står på ordrarna det senaste året. Förvalt: FÖ, FÖRSK, FÖRSKOTT, FORSK, FORSKOTT, PREPAY, PREPAID, PP. Exemplet «Så här ser mejlet ut» visar båda.
Betalvillkoret sparas när ordern läses in från Fortnox; en order som lästes in tidigare frågar Fortnox en gång. Webbordrar, manuella frakter och returer får aldrig förskottstexten. På kvittot står det när mejlet blir förskottsmejlet och vilket betalvillkor det beror på.
Prov: forskottprov.mjs. sakerhetsprov.mjs föll ibland av en slump (provets «r1» kunde stå i den krypterade texten) — provet använder nu en lång provsträng.
Produktionsstatistik för solvmaskinen, Runlock och U-cord — och kundletaren som letar syns alltid3.82.0
2026-10-29
Ny sida Produktion (Tillverkning → Produktionsstatistik, och fliken Produktion i Siffror): vad varje maskin producerat per dag, månad och år, med skillnaden mot perioden innan, diagram, per artikel och varje körning med uträkningen i ord.
Solvmaskinen räknas från produktionsetiketten: solv per band ÷ 100 (nedåt — resten är spill) × 40 band. 2508 blir 25 × 40 = 1000 bunt. Varje lapp räknas som en körning. Solv med annan buntstorlek (392/12, 50 per bunt) står i talen.
Runlock räknas i meter från produktionsetiketten (lappar i rullar räknas om med typens rullängd). U-cord: produktionsetiketten i meter × 10 band, och kartongerna (159000, 159001, 159015, 159007) när de läggs in i lagret som tillverkat — 250 m per kartong, på vardagen före inläggningen (måndag → fredag, röda dagar hoppas över).
Etiketter som skrevs ut före den här versionen läses ur utskriftskön, så statistiken börjar inte från noll. En lapp som aldrig kom ut (fel i kön, borttagen, stoppad) och en inleverans som ångrats räknas inte. En rad som blev fel tas bort ur statistiken och kan läggas tillbaka; en glömd körning läggs till för hand.
Notis första vardagen i månaden om förra månaden, och den 15 januari om förra året — per maskin, med skillnaden mot perioden innan. Nytt slag under Vem får vilka notiser: Produktionsstatistik.
Talen (band, buntstorlek, meter per kartong) visas på sidan och ändras av en administratör. En körning sparar talen den räknades med.
Kundletaren: körningen fortsätter när man öppnar schemat eller byter vy, och servern minns den. Laddas sidan om — eller öppnar någon annan den — står «Letar i … · startat av Thomas kl 10:42» med Avbryt, och en andra körning nekas så länge den första pågår. Förut försvann raden och det gick att starta en dubblett.
i-knapparna: förklaringen läggs överst och följer knappen — den hamnade under nästa kort (t.ex. i kundletarens Leta-kort).
Prov: produktionprov.mjs (räkningen, helgdagarna, notiserna, titlarna i kön, körningsvakten).
Returen: byte mot andra produkter, returfrakten från fraktbolagets pris, innehållet följer valet3.81.0
2026-10-29
Byte: i rutan «Returen i Shopify» finns «Kunden vill byta mot andra produkter». Sök bland butikens produkter (artikelnummer eller namn, med pris och lager), lägg till och ändra antal. Bytet läggs på returen i Shopify (exchangeLineItems); när ni behandlar returen där skapas leveransen för det nya och mellanskillnaden debiteras eller återbetalas. Kvittot på returen säger «Byte mot 2 × …».
Returfrakten när kunden betalar: förvalt är nu «Fraktbolagets pris» — priset på det som bokas i sista steget, omräknat till orderns valuta med ECB:s kurs (uppåt till hela cent), dras från återbetalningen när returen läggs in i Shopify efter bokningen. Förut skulle beloppet skrivas i första steget, innan någon visste vad FedEx tar. «Eget belopp» finns kvar. Före bokningen står det vad som dras («Kunden betalar returfrakten: 312 kr, omräknat till EUR, dras från återbetalningen»), och kvittot säger beloppet efteråt — eller varför inget drogs.
Antalen följer med: det man väljer i Shopify-rutan (en hävare färre, solven inte alls) gäller nu också innehållet i steg 2 — förut stod alla skickade rader kvar med fullt antal. Gäller både artikelrader och fritextrader från webbordern; rader man lagt till själv rörs inte (lib/returinnehall.js).
Alla hänvisningar till var brevlådan ställs in pekar på Inställningar → Brevlådor (returetiketten, Fraktbolag, kundmejlet, Efterforskning, CRM → Mejl, Kvitton). Brevlådor säger om appen i dag skickar via Vercels variabler i stället för att varna att ingen skickar.
Prov: shopifyreturprov.mjs har 16 nya fall (bytet, fraktbolagets pris, växelkursen, innehållet).
CRM → Nya kunder, «Avbryt» när kundletaren letar, alla sidor lika breda3.80.0
2026-10-29
CRM-fliken som hette Affärer heter Nya kunder och visar kundletaren direkt (förut en egen, smalare sida). Pipelinen — Ny, Kontakt, Offert, Förhandling, ny affär, export — har en egen sida, «Affärer och offerter» (/crm/affarer), med knapp från Nya kunder; en affär går tillbaka dit. Kundletarens leads som bara mejlats (Ny/Kontakt) står inte längre i pipelinen utan under Nya kunder → Mejlade. Gamla länkar till /crm/kundletare skickas till fliken.
«Avbryt» medan kundletaren letar: knappen ersätter «Leta nu», och avbrottet stoppar också servern — AI-anropet avbryts (det kostar inte mer), inget mer sparas, det som redan hittats står kvar. Lämnar man sidan mitt i avbryts det också.
Rullgardinerna — landväljaren och ⋯ på varje företag — ligger nu alltid överst (förut kunde korten under målas ovanpå listan i glastemat), stängs när man trycker utanför eller på Esc, öppnas uppåt när det inte får plats nedåt, och är ett ark i botten på telefonen (app/popover.jsx). ⋯ sitter uppe till höger i kortet, så knapparna får plats på en rad på telefonen. Sökrutan, filtren, schemat och korten är omgjorda: tydliga rubriker, lika höga fält, knapparna längst ned i varje kort, och fliken (Nya, Mejlade …) och landet sparas i adressen.
Landväljaren har 124 länder i 13 delar (Norden, Västeuropa, Sydeuropa, Östeuropa och Baltikum, Nordamerika, Centralamerika och Karibien, Sydamerika, Östasien, Sydostasien, Sydasien och Centralasien, Mellanöstern och Kaukasus, Oceanien, Afrika), i bokstavsordning — förut 63.
Återförsäljarmejlet (kundletarens «Mejla»): en mening om att läsa mer på https://texsolv.com, och ingen «Vänliga hälsningar»/«Best regards» sist — den står i signaturen. Redan sparade mallar uppdateras en gång. Står hälsningen i signaturens tre första rader, också ihop med annat («Med vänliga hälsningar / Best regards»), tas mallens bort i alla mallar.
Alla sidor är lika breda på datorn (1 180 px): undersidorna som fick 860 px i 3.72.0, frakt- och returguiden (640 px), mejlen (1 760 px), Siffror och skrivarsidan. Uppmätt på alla 68 sidor i 1 280 och 1 680 px, båda teman — bara utskriften (A4) är undantagen.
Inställningar → Mejl visar appens brevlåda som en sammanfattning med «Ändra under Brevlådor» — den ställs in på ett ställe. Varningen «Port null är ovanlig» när inget var inställt är borta. Affärer: sökrutan krymper inte längre till en prick på telefonen, och valet Befintlig kund / Ny kontakt går över hela formuläret.
Prov: avbrottet (6 nya fall i kundletareprov.mjs) och återförsäljarmallarna (6 nya i kundletarmejlprov.mjs).
Brevlådor — alla e-postkonton på ett ställe, in och ut med ett lösenord3.79.0
2026-10-29
Inställningar → Brevlådor: en rad per adress med vad brevlådan används till (CRM-inkorgen, kvitton, Fortnox engångskod, appen skickar härifrån), servrarna in och ut, och Ändra · Prova · Ta bort. Formuläret tar både inkommande (IMAP) och utgående (SMTP) med samma lösenord, och bockarna styr vad den används till — bara en brevlåda skickar, bockar man i det på en annan tar den över. «Prova» kollar in och ut var för sig och säger i klartext vad som är fel.
Det som redan låg under Kvitton, CRM → Mejl och Mejl → Appens brevlåda syns här utan att skrivas in igen, och lagras som förut (kvitto_brevlador_hemlig, crm_brevlador_hemlig, epost_utgaende_hemlig) — de sidorna fungerar precis som innan och länkar hit. Lösenordet återanvänds ur det lager som redan har det, så en brevlåda som bara skickade kan börja läsas utan nytt lösenord. Regeln för var IMAP-uppgifterna bor är samma som förut: används brevlådan till kvitton eller Fortnox-koden ligger de i kvittobrevlådan och CRM hänvisar dit, annars i CRM-brevlådan (lib/brevlador.js).
Fortnox engångskod väljs med en bock i stället för i Kvitton → Fortnox webb (lib/fortnox-webb.js sattKodBrevlada). Utgående server gissas ur den inkommande (imap.gmail.com → smtp.gmail.com, Oderland samma). Nytt prov verktyg/brevladorprov.mjs (20 kontroller).
Kundletaren: egen sida, tre steg, vunnen av sig själv, adresserna letas upp3.78.0
2026-10-29
Möjliga kunder är en egen sida (CRM → Affärer → «Öppna», eller /crm/kundletare) i stället för en ruta längst ned i Affärer. Överst fyra tal att trycka på — Nya, Mejlade (med hur många som svarat), Vunna, Inte intressanta — sedan sökning och landfilter, och varje företag som ett kort: namn, ort och sort, ett märke som säger vad som hänt (Ny · Mejlat 12 okt av Thomas · Svarade 14 okt · Vunnen · Inte intressant), hemsidan som en knapp, adressen att mejla, och knapparna Mejla, Vunnen, Inte intressant. I Affärer ligger bara en kort ruta med siffrorna och de senaste nya.
Stegen är tre: Ny → Mejlat → Vunnen eller Inte intressant. Inga förhandlingssteg — det är ett mejl, och sedan blev det något eller inte. «Svarade» sätts av sig själv när ett mejl kommit in från företagets domän efter att vi mejlat, och «Vunnen» när domänen dyker upp i kundregistret (kundkortet, kontaktpersonerna) eller på en order — en webbshopskund hamnar i Fortnox när hen beställer, så Shopify-kunderna kommer den vägen. (Shopifys eget kundregister läses inte: det kräver behörigheten read_customers, som appen inte har.) Vunnen går också att sätta för hand och ångra; en affär som hör till förslaget går till Vunnen samtidigt. «Lägg upp affär» finns kvar under ⋯ för den som vill driva en offert.
Adressen att mejla letas upp på webbplatsen (lib/epostletare.js): startsidan och kontakt-/om-sidorna hämtas, adresserna plockas ur mailto-länkar och text (även «info [at] företag [dot] de»), företagets egen domän och de vanliga prefixen (info@, kontakt@, order@, sales@ …) sorteras först. Görs för varje nytt förslag när det hittas, för gamla utan adress i den schemalagda körningen (tio åt gången), och med knappen «Hitta på webbplatsen». Flera funna adresser blir en lista att välja i, och en egen adress går att skriva in.
Landväljaren är en rullgardin med världsdelarna — Norden, Europa, Nordamerika, Sydamerika, Asien och Mellanöstern, Oceanien, Afrika — där man bockar i länder, eller en hel världsdel med en bock (lib/varldsdelar.js). «Leta nu i» tar ett eller flera länder och letar i dem i tur och ordning; «Schemat» har samma väljare för länderna den schemalagda letningen går igenom. På telefonen öppnas väljaren som ett ark i botten.
Nya prov: verktyg/epostletareprov.mjs (5) och tio nya fall i kundletareprov.mjs (adressen, vyerna, svarade, vunnen av sig själv och för hand, ångra, affären följer med). Uruguay, Kenya, Hongkong och Förenade Arabemiraten har fått svenska namn.
Appens brevlåda ställs in i appen — allt om mejlen på ett ställe3.77.0
2026-10-29
Inställningar → Mejl → «Appens brevlåda»: servern, porten, adressen, lösenordet och avsändarnamnet för det appen skickar ställs in i appen av en administratör — förut bara som SMTP-variabler i Vercel, medan brevlådorna appen läser låg i appen. Lösenordet sparas krypterat i databasen (AES-256-GCM, nyckeln ur SESSION_SECRET i Vercels miljö — det krävs både databasen och miljön för att läsa det), lämnar aldrig servern och tas inte med i säkerhetskopian. «Prova inloggningen» kollar servern utan att skicka något.
Bocken «Läs också brevlådan (IMAP)» gör samma inloggning till en brevlåda appen läser — för Skickat-kopian och Fortnox engångskod — utan att den skrivs in en gång till under Kvitton.
Vercels SMTP-variabler gäller tills något sparas i appen, så inget slutar fungera; finns båda vinner appen, och sidan säger varifrån inställningen kommer. Felen från servern nämner fältet i appen i stället för variabelnamnet, och hos ett webbhotell (Oderland) sägs att det är brevlådans vanliga lösenord. Standardporten i appen är 587 (STARTTLS); ur Vercel som förut 465.
Efterforskning, CRM → Mejl och Kvitton hänvisar till Inställningar → Mejl i stället för till Vercel. Provet verktyg/arendeprov.mjs har ett nytt fall för inställningen i appen (går före Vercel, krypterad i tabellen, lösenordet behålls vid tomt fält, byte av server kräver lösenordet igen).
Säkerhetsgenomgång med fyra säkerhetsskills — tolv låsta luckor3.76.0
2026-10-29
Appen gicks igenom med granskningsmallarna ur Vercels deepsec, Sentrys security-review, Addy Osmanis security-and-hardening och Trail of Bits sharp-edges. Det som hittades är rättat; det som är medvetna val står i rapporten.
Mejl: den som inte har CRM eller Administration kan bara skicka fraktbekräftelse, tullfaktura, paketinfo och returmejl till adresser som hör till sändningen — mottagaren på ordern, kundkortet och dess kontakter, de inställda interna adresserna, och andra adresser på samma företagsdomän (lib/mottagarkoll.js). Förut kunde varje inloggning mejla vem som helst från företagets brevlåda med valfritt ämne och text.
Assistenten: allt ur verktygen (ordrar, mejl, webbsidor, databasen) märks som data, och reglerna säger att uppmaningar i sådan text inte följs. kom_ihag sparar bara när personen själv bad om det eller rättade något — inte på en text ur en order. foresla_mejl varnar på kortet när adressen inte är ärendets eller kundkortets. Knappkortet (tryck_pa_sidan) visar vad assistenten fyllt i, så att man ser vad som skickas.
Assistenten, databasen: U&-strängar, E-strängar, dollarcitat och bakstreck stoppas (de kunde gömma ord för kontrollen). Kan läsrollen i Postgres inte ordnas körs ingen fråga alls — förut kördes den med bara textkontrollen som lås — och felet syns under Inställningar → Assistenten («Läser databasen»).
Assistenten: högst 60 frågor, 90 inspelningar och 180 uppläsningar per person och tio minuter, så att en stulen kaka eller en telefon i slinga inte kan dra i väg kostnaderna hos Anthropic och ElevenLabs.
Hemsideredigeraren: förhandsvisningen låses med en Content-Security-Policy — bara vårt redigeringsskript (med engångsnonce) får köra i ramen, inte sidans egna skript, som annars körde som appen själv med inloggningen. Menyer och bildspel på sidan står därför stilla i redigeraren; «Visa hemsidan» öppnar den riktiga.
Startsidan: ?till=… efter inloggning går bara till en sida i appen — en adress till en annan sajt (//evil.example) följs inte. GitHub: bara riktiga sha-värden släpps in i sökvägarna. Efterforskningens inställningssida visar bara efterforskningsmejlen i loggen (förut hela mejlloggen med text, åt alla inloggade). Artikelbilder cachas privat i webbläsaren, inte i delade mellanlager.
Byter man sin egen kod loggas alla andra enheter ut; den som bytte fortsätter. Adresser utifrån: fler interna IPv6-områden stoppas (fec0::/10, 6to4, Teredo), och hemsidornas statuskoll och artikelbilderna från Shopify hämtas genom samma spärr som allt annat utifrån.
Inställningar → Mejl: «Kommer mejlen fram?» slår upp SPF, DKIM och DMARC för avsändardomänen och säger vad som saknas, med tips för Oderland, Google och Microsoft. Det är de posterna — inte porten — som avgör om mejlen hamnar i skräpposten. Varningen om ovanlig port nämner nu Oderland (587).
Plocket: Fortnox standardtext i orderns anmärkning («Tariff: 8448 42 00 - Country of origin: Sweden / Dimensions: / Weight; Gross: Net: / Content:») visas inte längre som kundens meddelande — raderna ur mallen tas bort (lib/anmarkning.js), det någon faktiskt skrivit står kvar. Gäller plocklistan, plockvyn, samlad plockning och utskriften, även för ordrar som redan är hämtade.
Fraktvyn — bokningen och kvittot, 2 500 rader — ligger nu i sju filer i stället för i sidan: frakt.jsx (stommen, huvudet, foten och menyerna), fraktkvitto.jsx (bokad frakt, fraktraden i Fortnox, webbshoppen, handelsfakturan, returen, kundmejlet), fraktval.jsx (FedEx, PostNord, Sendify, reserven, bokningsfelen), fraktadresskort.jsx, fraktadressforslag.jsx och fraktadressruta.jsx (mottagarens adress) och frakttid.jsx (upphämtningstiden). Smådelarna som flera vyer använder (Hopfall, mottagarnumren, ETD-texten) i delar.jsx.
Koden är densamma — utbruten med parser, inte omskriven — och sidan äger fortfarande tillstånden och handlingarna. Sidan för en order är nu 2 067 rader i stället för 5 566. Kontrollerat lika före och efter i 393 och 1280: plock → packning → frakt text för text och bild för bild, alla fraktalternativ, adressrutan, Sendify-frågan, «Kunden bokar själv» och kvittot på en bokad runda — utan ett enda sidfel.
Packsidan delas upp, steg 2 av 3: packningen3.74.0
2026-10-29
Packningen — allt plockat, kollin, vikt och mått, kartongväljaren, foton, kartongetiketter och avslutet — är en egen komponent (app/plock/[nr]/packning.jsx, 760 rader) i stället för en del av sidan på 5 500. Koden är densamma; det som bara packningen bryr sig om (vilka kollikort som är utfällda, kartongväljaren) bor nu där och ritar inte om resten av sidan. Tullvarningen, som alla tre vyerna använder, ligger i en egen fil. Sidan är 4 670 rader.
Kontrollerat lika före och efter i 393 och 1280: plock → packning → frakt text för text och bild för bild, samt kartongväljaren, utfällning av kollikort, byte av kartong och kartongetiketten.
Packsidan delas upp, steg 1 av 3: tidsräkningen3.73.0
2026-10-29
Sidan för en order (plock, packning, frakt, kvitto) är en enda komponent på 5 500 rader som ritas om i sin helhet vid varje tryck. Den delas upp i tre steg utan att något ändras för den som packar. Steg 1: tidsräkningen för upphämtningen — «i dag/i morgon», bolagets fönster, annan tid, nästa vardag, passerad sista beställningstid — ligger nu i lib/packtid.js som ren räkning med eget prov (verktyg/packtidprov.mjs, 8 kontroller). Flödet plock → packning → frakt är kontrollerat lika före och efter, text för text och bild för bild, i 393 och 1280 px.
På dator: en kolumn man kan läsa3.72.0
2026-10-29
Undersidor med bara en kolumn — inställningssidorna, Vad är nytt, kundkortet, larm, taggar, förpackningar — lade ut sin text över hela skärmens 1 180 px på dator; raderna blev 180 tecken långa. De får nu 860 px mitt på skärmen, och menyn längst ned följer med. Startsidan, Plock, CRM, Siffror, Bokade frakter, Tillverkningsbehov och inställningssidorna med två spalter eller tabeller (Frakt, Benämningar, Skrivare) behåller hela bredden. Telefon och iPad på högkant är oförändrade.
Kundens meddelande i plocket visar inte längre appars egna orderattribut från webbshoppen («__juicy_id: …» och andra som börjar med understreck) — Shopify döljer dem för kunden också, och det är inget kunden skrivit. Sådana som redan hamnat i plocket rensas vid nästa avläsning.
Kundens meddelande i plocket, förfallna fakturor, ursprungsdeklaration, fler hjärtslag3.71.0
2026-10-28
Kundens meddelande syns i plocket: det kunden skrev i webbshoppens kassa (och orderattributen) och anmärkningen på Fortnox-ordern («skicka ej före fredag», «lägg med prover»). Står på plockkortet i listan, som en strimma i plockvyn, i packningen innan kartongen tejpas, i det samlade plocket och på den utskrivna plocklistan — inte på packsedeln, den går till kunden. Fortnox-anmärkningen läses med ordern och följer ändringar; webbordrarnas följer med vid varje avläsning.
Förfallna fakturor: ny sida under CRM (länk i kundlistans fot, «N kunder med förfallet»). Varje morgon efter sju får CRM en notis om fakturor som varit förfallna i minst sju dagar och som ingen påmint om eller avvaktar med. Appen skickar aldrig något till kunden själv: «Påminn» öppnar mejlet med påminnelsemallen (svenska till Sverige, annars engelska), fakturan bifogad ur Fortnox och nummer, belopp och förfallodag ifyllda — man läser och skickar. «Avvakta» tystar fakturan 7, 14 eller 30 dagar. Betald faktura försvinner av sig själv; en påmind tas upp igen efter fjorton dagar om den fortfarande är obetald. Notisen försvinner när allt är påmint, avvaktat eller betalt.
Ursprungsdeklaration på handelsfakturan, för tullfrihet på EU-varor till Storbritannien, Norge, Schweiz, Island, Liechtenstein, Kanada och Japan — med respektive avtals exakta lydelse, REX-nummer eller tillstånd som godkänd exportör, plats, datum och namn. Slås på under Inställningar → Frakt (av tills ni intygat att varorna uppfyller ursprungsreglerna). Skrivs bara när alla varurader har ett EU-land som ursprung i artikeluppgifterna (inte gissat) och aldrig på en retur. Till Japan krävs ursprungskriteriet; utan nummer gäller deklarationen bara under 6 000 euro.
Hjärtslaget provar nu också brevlådorna (IMAP-inloggning), Dropbox, skrivaragenterna (död efter ett dygn utan livstecken — packdatorn får vara avstängd över natten) och assistentens nyckel. Det som inte är konfigurerat står som avstängt.
Mejlmallar kan fyllas med hakparenteser av den som öppnar mejlet ([nummer], [belopp], [datum]) — påminnelsen använder det.
Nytt prov: verktyg/funktionsprov371.mjs (18 kontroller).
Skavankerna efter genomgången: titlar som klipps, tysta fel, Shopify-fel i klartext3.70.0
2026-10-28
Sidtitlarna bryter på två rader i stället för att klippas — «Inloggningshändel…», «Larminställni…» och kundnamnet på kundkortet går att läsa på telefonen.
Inställningar → Frakt: går inställningarna inte att hämta visas felet och ett «Försök igen», och formulären hålls tillbaka. Förut stod fälten tomma och «Spara priser» hade skrivit över PostNords priser med ingenting.
Shopifys fel i klartext med vad man ska göra: «nyckeln gäller inte längre — koppla om under /setup», «för många anrop — vänta en minut», «driftstörning hos Shopify». Förut stod den råa json-texten i Hjärtslag, Bokade frakter och Inställningar.
Kundorder-sidan och Taggar har det gemensamma sidhuvudet med larmklockan, assistenten och kuggen. Går ordern inte att hämta står det i underrubriken i stället för «Hämtar…» för evigt.
Elva anrop som läste svaret rått går via appens vanliga tolk — vid en 504-sida från Vercel står det nu vad som hände i stället för tystnad eller «Unexpected token <». Kvittologgen, mejlloggen, provetiketterna och kundmejlen säger till när listan inte kunde hämtas.
Mejlen: ett tillfälligt fel mot brevlådan (nätet, upptaget lås) tolkades som «mappen finns inte längre» och mejlet flyttades aldrig till papperskorgen; «ta tillbaka» hoppades tyst över och lästmarkeringen gavs upp. Nu står jobben kvar till nästa varv och felet syns. Går loggraden i Skickat inte att skriva hamnar det i serverloggen.
Tillgänglighet: fältetiketterna är kopplade till sina fält på alla sidor — ett tryck på «Postnummer» sätter markören i fältet, och skärmläsare säger vad fältet heter. Nitton rullistor utan namn har fått ett.
Skannern på Plock låg bakom sidhuvudet och menyn3.69.1
2026-10-28
Tryckte man på den gröna skanna-knappen på Plock öppnades kameran, men sidhuvudets kapsel och menyn längst ned ritades ovanpå — och bakom dem låg kamerans Stäng-knapp och fältet för att skriva numret, så det gick varken att stänga eller skriva. Helskärmsläsaren ritas nu alltid överst på sidan, oavsett var knappen står; på startsidan och i packningen är det som förut.
Säkerhetsgenomgång: en ingång, inloggning bakom adminkoden, tvåsteg för rollerna, krypterade Fortnox-nycklar3.69.0
2026-10-28
Hela appen är genomgången ur angriparens synvinkel: inloggning, sessioner, varje API-rutt, schemaläggaren, skrivaragenten, Shopifys webhook, databasfrågorna, filerna, nycklarna och paketen. Det som fanns att täta är tätat.
Next.js uppdaterat till 15.5.28 — det täpper till ett allvarligt hål i bildhanteringen (Image Optimization) som gick att nå utan inloggning. Övriga paket med kända sårbarheter är också uppdaterade; npm audit visar noll.
Adminkoden räcker inte längre ensam. Setup, Fortnox- och Shopify-kopplingen och diagnostiken kräver nu att man är inloggad med rollen Administration och dessutom skriver adminkoden. Koden tas bara emot i rubrik eller formulär, aldrig i adressen (där hamnar den i loggar). Finns inga konton än (första starten) gäller koden själv, som förut.
Kantvakten: varje anrop som ändrar något måste komma från appens egen adress, annars nekas det — skydd mot förfalskade formulär från andra sajter. Är APP_URL satt skickas den som öppnar appen på en .vercel.app-adress vidare till hemadressen, och API-anrop dit nekas. Schemaläggaren, skrivaragenten och webhooken går igenom som förut.
Fortnox-nycklarna låg i klartext i databasen — de krypteras nu som de andra hemligheterna, och gamla krypteras om vid första läsningen. Nyckelbytet skriver bara om nycklarna ingen annan hunnit byta under tiden, så två samtidiga anrop kan inte skriva över varandra.
Tvåstegsverifiering krävs för konton med Administration, CRM eller Hemsidor: har kontot en passkey eller fungerande e-postkod begärs steg två vid varje inloggning. Saknas båda loggas man in men ser en varning under Inställningar tills det är ordnat.
Synkroniseringen går bara att starta inloggad eller av schemaläggaren. Sökrobotar får veta att appen inte ska indexeras. Filnamnen på uppladdningar dras ur den riktiga slumpkällan.
Nytt prov (verktyg/sakerhetsprov.mjs) som bevisar kantvakten, adminkoden, tvåstegskravet och krypteringen — 43 kontroller.
Assistenten följer behörigheten3.68.0
2026-10-28
Assistenten berättar och gör bara det den som frågar själv har tillgång till i appen — samma regler som sidorna: CRM (kunder, fakturor, mejlen, försäljning, budget, bokföring), Administration (kvitton, personal, nycklar, inloggningar, säkerhetskopian) och Hemsidor. Rollen kollas vid varje fråga, så en borttagen roll gäller direkt.
Sidorna man inte har tillgång till finns inte i assistentens karta, och den öppnar dem inte. Frågar man om något utanför säger den vänligt att man inte har tillgång — utan att berätta vad som står där.
Databasfrågorna: kvittona och hela mejlloggen kräver nu Administration (förut räckte CRM), DDP-statistiken CRM eller Administration, kunderna och bokföringen CRM. Spärren sitter både i granskningen och i databasens egna rättigheter.
Felsökningen visar bara de mejl man får se under Mejl (utgående) — förut alla, och listan var dessutom alltid tom av ett fel i frågan. En artikels sålda antal ur fakturorna följer bara med för den som har CRM.
Minnet: det assistenten lär sig ur CRM eller Administration — på de sidorna, ur kundverktygen, eller med en kund, faktura eller summa i texten — syns bara för dem som har rollen, i svaren och under Det assistenten kommer ihåg. Den som lägger till ett minne själv kan välja «Bara de med CRM» eller «Bara de med Administration».
«Gör det» på ett kort kollar behörigheten igen när man trycker — har rollen tagits bort sedan kortet kom görs inget. A4-arket för etiketter föreslås bara för administratörer.
Assistenten fyller i och trycker — det du kan, kan den3.67.0
2026-10-28
Assistenten ser fälten och knapparna på sidan du står på, och kan fylla i vilket fält som helst och trycka på vilken knapp som helst — inställningar, artiklar, kunder, inventering, plock, frakt. Knappar som bara bläddrar (Nästa, Tillbaka, Visa fler, flikar) trycker den direkt. Allt som sparar, skapar, bokar, skickar eller tar bort blir ett kort i chatten: «Tryck «Skapa och se priserna»» med Gör det — du trycker själv. Kortet trycker bara om knappen fortfarande står kvar med samma text.
Fält den fyllt i lyser upp en stund. Gick ett fält eller en knapp inte att hitta står det under svaret.
Den lilla assistentknappen (när rutan fällts ihop) lägger sig ovanför sidans egen knapprad — förut täckte den «Nästa» i Ny sändning och knapparna i plocket.
Be assistenten skicka ett nytt paket, en ersättning eller ett varuprov så fyller den i Ny sändning åt dig: mottagaren (ur kundkortet eller det du säger), artiklarna med antal, anledningen och kollin om den vet dem. Sidan öppnas om den inte redan är öppen. Förut sa den att den inte kunde, och bad dig klistra in uppgifterna.
Inget bokas och inget skapas — du kollar stegen, väger och trycker själv som vanligt. Artiklarna hämtas ur registret som när man lägger till dem för hand (benämning, butikens pris, HS-kod och vikt). En artikel som inte finns säger den till om, och det som saknas (vikten, telefonen) säger den kort.
Under svaret står «Fyllde i Ny sändning — fyll i igen», om formuläret har tömts eller ändrats.
Mapparna på mejlsidan, det appen skickar i Skickat, mallar utan signatur3.66.0
2026-10-27
Mejlsidan har Mappar, som ett mejlprogram: Skickat (allt som skickats, från appen och ur brevlådornas Skickat) och varje mapp i varje brevlåda — Inkorg, Skickat, Arkiv och egna mappar, med antal. På datorn i sidopanelen, på telefonen i menyn bredvid flikarna. Ett tryck på ett mejl öppnar ärendet. Mapparna lästes redan (3.49.0) men syntes bara som ärenden.
Det appen skickar läggs i brevlådans Skickat-mapp. Webbhotell lägger inte själva det som skickas med SMTP där, så svaren från appen syntes inte i Outlook eller telefonen. Nu läggs samma mejl dit, markerat som läst, i brevlådan som loggar in med samma adress som SMTP_USER. Av för Gmail och Microsoft 365, som gör det själva. Inloggningskoder läggs aldrig dit.
CRM → Mejl → Brevlådor visar utgående post — adressen, servern och porten (465 om SMTP_PORT inte är satt) — med ett reglage för kopian i Skickat och vad som hände senast, i klartext om något inte gick.
Ett svar från appen som sedan läses ur Skickat kopplas till sin plats i brevlådan — då går bilagorna att öppna och mejlet syns i mappen.
Mallarna har ingen signatur längre — namnet, Texsolv AB och adresserna kommer med signaturen när mejlet skickas, och stod två gånger. Hälsningen («Vänliga hälsningar», «Best regards») står kvar. De sparade mallarna rensades en gång; sparas en mall med signatur tas den bort. Börjar din signatur själv med en hälsning tas mallens bort när mallen väljs, och utan signatur skrivs namnet under som förut.
Assistenten minns — och tystnar inte av sig själv3.65.0
2026-10-27
Långtidsminne: assistenten sparar det den lär sig — rättelser, hur ni gör, ord och smeknamn ni använder, vad du vill ha — och vet det i nästa samtal, också dagar senare. Säg «kom ihåg …», eller rätta den, så sparar den; den säger «Noterat.» och det står under svaret vad den kom ihåg. «För alla» gäller hela företaget, «bara jag» bara dig. Lösenord, nycklar, kortnummer och personnummer sparas aldrig.
Inställningar → Assistenten → Det assistenten kommer ihåg: listan, med Ändra, Glöm och Lägg till. Glömt går att ta tillbaka i 30 dagar. Långtidsminnet stängs av under Samtal.
Den glömmer inte vad ni pratade om: vilka verktyg varje svar byggde på (order 2316, artikel 159003 …) följer med till nästa fråga, så att «boka den» och «samma som förut» blir rätt. Förut såg den bara texten och fick gissa.
Samtalet finns kvar i telefonen i tolv timmar, också om appen stängts — förut försvann det med fliken. Loggar någon annan in på telefonen börjar samtalet om; Nytt samtal tömmer det.
Ingen röst i samtalet: avbrottslyssnaren hörde assistentens egen röst i högtalaren, tog den för att någon pratade och avbröt sig själv. Nu lär den sig hur högt den egna rösten hörs de första 0,7 sekunderna och avbryts bara av den som pratar tydligt över den.
Ingen röst efter ett telefonsamtal, Siri eller låst skärm: ljudmotorn väcks nu i alla lägen (förut bara i ett), görs om om den stängts, och väcks när man kommer tillbaka till appen. Går den inte att väcka spelas meningen på annat sätt. Tar ett ljud aldrig slut släpps kön ändå efter ljudets längd — förut fastnade uppläsningen och resten av svaret hördes inte. Samma vakt på telefonens egen röst.
Loggen visar ljudet: Inställningar → Assistenten → Ljudet listar avbrotten (med nivåerna), röster som inte kom och varför, ljud som inte gick att spela och när telefonens röst tog över — med vilken telefon och om mikrofonen var öppen.
Inställningarna gäller ElevenLabs-rösten också3.64.0
2026-10-27
Läser ElevenLabs har Inställningar → Assistenten en egen del, Röst — ElevenLabs: röst (kontots röster och svenska röster ur biblioteket, med ett gratis smakprov innan man väljer), modell (v4 Turbo, Flash v2.5, v3 Conversational, v4, Multilingual v2 — de som gör svenska enligt ElevenLabs), talhastighet (0,7–1,2), stabilitet, likhet, stil och speaker boost — ElevenLabs egna reglage för hur rösten låter — och «Testa rösten».
Pauserna gäller ElevenLabs också: som <break>-taggar för Flash v2.5 och Multilingual v2, och som tankstreck och «…» för v4 och v3, som inte tar break-taggar.
Skratt och suckar: med v4 Turbo eller v3 Conversational får Claude skriva ljudtaggar — [laughs], [chuckles], [sighs], [whispers] — som rösten gör till ljud i samtal. De syns inte på skärmen, och Google och telefonens röst läser dem inte. Av, ibland eller ofta; Polare ofta, Professionell aldrig.
Profilerna sätter också röstens uttryck: Naturlig svensk stabilitet 0,45, Polare 0,3 med mer stil, Professionell 0,7 utan ljudtaggar.
Google Chirp står kvar som reserv när ElevenLabs tecken tar slut (3.63.3) — under «Reserv — Google Chirp 3 HD» väljs rösten som tar över. Tar krediterna för lyssnandet slut lyssnar telefonen i stället, och assistenten ber en säga det igen.
ElevenLabs först, Google när tecknen tar slut3.63.3
2026-10-27
Med ElevenLabs som röst och Googles nyckel i Vercel tar Google Chirp över när tecknen som ingår i ElevenLabs-planen är slut — med rösten som står under Röst — Google Chirp 3 HD. Rösten går sedan direkt till Google i en timme, så att ingen mening först väntar på ElevenLabs nej, och därefter provas ElevenLabs igen. Går det står noteringen inte kvar.
Är ElevenLabs nere en stund läser Google just den meningen. Förut läste telefonens egen röst i båda fallen.
Under Inställningar → Assistenten → Rösten → ElevenLabs står det när tecknen tog slut och att Google läser.
Assistenten svär åt oss ibland3.63.2
2026-10-27
Ny inställning under Personlighet: «Svär åt oss» — Av, Ibland eller Ofta. Förut stod det «aldrig elakt mot någon» i instruktionerna, och då svor den aldrig åt den den pratade med. Nu gör den det på skoj, som kompisar på jobbet («ditt fån», «skärp dig för fan»), och slutar om man säger att det räcker.
Naturlig svensk gör det någon gång, Polare ofta, Professionell aldrig. Står svordomarna på Av retas den i stället, utan svordomar.
Gränserna gäller alltid: aldrig elakt på riktigt, aldrig om utseende, ursprung, kön eller någon grupp, och aldrig om kunder. Tonen gäller bara svaren till oss — mejl, lappar och anteckningar skrivs sakligt och vänligt, utan svordomar och slang.
Assistenten hör det man säger direkt3.63.1
2026-10-27
Började man prata direkt när assistenten började lyssna hördes ibland ingenting. Bakgrundsbruset mättes de första 300 ms — och pratade man redan då blev rösten «bruset», tröskeln hamnade över den och inspelningen räknades som tyst. Nu mäts bruset som det lägsta som hörs (mellan stavelserna), och tal under mätningen räknas som tal.
I ett samtal med avbrott på hålls mikrofonen öppen hela samtalet i stället för att öppnas på nytt varje tur — början av det man säger går inte förlorad medan mikrofonen startar. Avbryter man med rösten lyssnar den direkt, utan paus. Väntan efter assistentens sista mening är kortare (0,15 s i stället för 0,25–0,4 s).
Mikrofonen var avstängd för hela appen i säkerhetsinställningarna (sedan 3.22.0, före assistenten). Safari på iPhone bryr sig inte om den, men Chrome och Android nekade all inspelning — där kunde assistenten inte lyssna alls med ElevenLabs. Nu är mikrofonen tillåten för appen själv, som kameran.
Assistentens röst, personlighet och samtal går att ställa in3.63.0
2026-10-27
Inställningar → Assistenten har fått fyra nya delar. Varje rad visar vad den påverkar: Röst (Google Chirp 3 HD), Språkmodell (Claudes instruktioner) eller Samtal (lyssnandet och uppspelningen i telefonen). Ändringar sparas av sig själva och gäller från nästa svar — i ett pågående samtal från nästa tur, utan att något bryts.
Röst: alla Chirp 3 HD-röster på valt språk (Aoede, Charon, Kore, Puck …), språk (svenska som standard — rösten, taligenkänningen och svarsspråket i samtal följer med), talhastighet 0,7–1,5 (standard 1,05), pauser av/naturliga/uttrycksfulla och hur ofta. Pauserna är Chirps egna markeringar ([pause short], [pause], [pause long]) vid kommatecken, mellan meningar och vid «…». «Testa rösten» läser ett provmeddelande med inställningarna som står på skärmen.
Personlighet och språkstil: Professionell, Vänlig, Avslappnad, Polare eller egen beskrivning; vardaglig–formell, svordomar (av till ofta), humor, sarkasm och slang i procent, tvekljud («eh», «alltså» — bara i samtal), dialekt (göteborgska, västgötska, skånska, stockholmska, norrländska eller egen) och känslomässigt uttryck, och ett fält för egen systemprompt. Dialekt och känslor är ordval i texten — det står vid dem att rösten inte byter accent.
Samtal: svarslängd, högst antal meningar som läses upp, följdfrågor, temperatur (eller modellens standard — nekar Claude den går svaret utan, och det står vid reglaget), tystnad innan frågan skickas (300–1 500 ms), avbrott med rösten, avbrottskänslighet, en tankepaus innan svaret, strömning och samtalsminne.
Avbrott med rösten (barge-in): börjar man prata medan assistenten pratar eller tänker tystnar den direkt, svaret som fortfarande strömmar avbryts, köade meningar kastas och den lyssnar. Det som hann sägas står kvar, märkt «avbruten».
Uppläsningen hämtar nästa mening medan den här spelas — ingen paus mellan meningarna. Ett avbrott kastar allt som hämtats till den gamla kön, också det som blir klart efteråt; förut kunde en mening som var på väg spelas efter ett avbrott, och ljud som spelades i reservspelaren stoppades inte alls.
Avancerat (expanderbart): egna ord för taligenkänningen, ljudnivåer för röstaktiviteten, tystnad mitt i en mening, väntan, längsta inspelning, tysta turer innan samtalet slutar, max tokens, ljudformat (MP3, Ogg Opus, WAV — kan telefonen inte spela Opus tar den MP3 av sig själv), samplingsfrekvens, kortaste mening, förhämtning, tidsgräns och vad som händer när rösten inte svarar, och hur mycket av samtalet Claude ser.
Profiler: Naturlig svensk (standard), Polare och Professionell med ett tryck, och egna som går att spara, byta namn på, uppdatera och ta bort. «Återställ standard» tar tillbaka Naturlig svensk.
Vad den första skarpa torrkörningen visade3.62.1
2026-10-27
Första körningen mot riktiga FedEx och PostNord: 30 av 35 fall gick igenom direkt. FedEx godkände alla sändningar utom en — Åland, Australiens NSW, kyrilliska och japanska namn, emoji, 35 kg och 0,05 kg gick alla igenom hos FedEx.
Irland utan Eircode: FedEx kräver den («A postal code is required»), fast den är frivillig i Irland. 3.60.0 lät sådana ordrar gå vidare — nu stoppar appen före bokningen och säger det: «FedEx kräver Eircode till Irland (sju tecken, t.ex. D02 X285) — finns den inte på ordern, fråga kunden.»
Postnummer med gamla landsbokstäver — «D-40212», «N-0154», «A-1010», «F-75001», «S-501 23» — skickas nu utan dem, till alla bolag. PostNord svarade 404 på dem (FedEx tålde dem). «FI-» och «CH-» togs redan bort i bokningen men inte när PostNords leveranstider hämtades; nu samma tvätt överallt.
Leveransadress som saknar något: beskedet säger vad som saknas, och på en webborder att det fylls i under Ändra adressen — förut stod det «Komplettera den i Fortnox» även för webbordrar.
Adresskontrollen görs inte på en adress utan postnummer (där det krävs) — FedEx svarade bara «GENERAL FAILURE», och prisraden säger redan vad som saknas.
FedEx adresskontroll föreslog «rättelser» som bara var en annan stavning av samma postnummer («NW1 2DB» → «NW12DB», «94105-1420» → «94105», «D-40212» → «40212»). De visas inte längre som förslag.
Skarp torrkörning mot FedEx och PostNord3.62.0
2026-10-27
Ny sida: Inställningar → Frakt → Skarp torrkörning. 35 påhittade mottagare på offentliga adresser (stationer, torg, rådhus) i ett tjugotal länder, med det som brukar ställa till det: landsnamn på olika språk, delstater, postnummer med prefix, c/o, långa namn, kyrilliska och japanska namn, emoji, Irland utan Eircode, Åland, tunga och mycket lätta kollin.
Varje fall frågas mot de riktiga bolagen med de skarpa nycklarna, men bara med anrop som inte skapar något: FedEx priser, FedEx granskning av hela sändningen («Validate Shipment» — samma uppgifter som en bokning, men ingen sändning, ingen etikett, ingen kostnad), FedEx adresskontroll och PostNords leveransalternativ. PostNords bokning har ingen torrkörning i skarp miljö, så där bokas ingenting.
Ett fall i taget med en sekunds paus. Resultatet står per fall (OK, NEJ från bolaget, STOPP av appen, FEL), och «Kopiera resultatet» ger allt i klartext att klistra in i chatten. Bara för administratörer.
FedEx granskning tar bara ett kolli och kontrollerar inte gatuadressen — det gör adresskontrollen, som står med som upplysning.
När fraktbolagen strular — black week-provet, del 23.61.0
2026-10-27
Bokningssimulatorn låter nu FedEx och PostNord må dåligt på 24 sätt: 500-fel, 503 som HTML-sida, «för många anrop» (429), inget svar alls, bruten kontakt, en driftsida i stället för svar, långsamma svar — och det värsta: sändningen skapas hos bolaget men svaret går förlorat. För varje fall granskas att beskedet är svenska i klartext, att det inte tar för lång tid, att nästa tryck går att boka och att ingen sändning blir kvar hos bolaget utan att appen sagt till.
Fel som simulatorn hittade och som är rättade: efter en avbokning gick en misslyckad ombokning (FedEx nere, HS-kod som saknades) inte att göra om — «En bokning för den här rundan pågår redan» i fem minuter. Nu går nästa tryck direkt.
Beskeden på svenska i stället för «fetch failed», «The operation was aborted due to timeout», «Internal Server Error» och FedEx «We encountered an unexpected error»: «FedEx svarade inte inom 12 sekunder», «Kontakten med FedEx bröts», «FedEx har tekniska problem just nu (svarade 500, SYSTEM.UNEXPECTED.ERROR)», «FedEx tar inte emot fler anrop just nu — vänta en minut». Samma för PostNord.
Svaret på en FedEx-bokning kom aldrig fram (tidsgräns, bruten kontakt, driftsida): beskedet säger att bokningen kan ha gått igenom ändå, och nästa tryck på Boka frågar först — «sök på ordernumret i FedEx Ship Manager». Finns sändningen inte trycker man «Boka ändå». Så blir det inte två sändningar för att någon tryckte igen i stressen. Rubriken säger «Appen vet inte om bokningen gick igenom» i stället för «gick inte igenom».
PostNord: samma läge säger att bokningen kan finnas ändå, och att man vid en ny bokning bara använder den nya etiketten.
«För många anrop» och bruten kontakt på frågor som inte skapar något (som adresskontrollen) provas om en gång efter en kort paus. En tidsgräns provas inte om — det hade bara dubblat väntan.
FedEx-inloggningen hade ingen tidsgräns; nu 12 sekunder. Svarade FedEx dokumenttjänst inte (elektronisk handelsfaktura) väntade bokningen upp till fyra gånger 15 sekunder — nu en gång, sedan papper. Bokningen hinner klart långt före Vercels minut.
Bokningssimulator inför black week — och det den hittade3.60.0
2026-10-26
Nytt verktyg: verktyg/bokningssim.mjs. Det skapar hundratals påhittade webb- och Fortnoxordrar (länder och stavningar som i butiken, långa namn, c/o, två telefonnummer, emoji, kyrilliska och japanska namn, gratisartiklar, många kollin, pall, tunga kollin) och kör dem hela vägen: plocka, packa, priser, adresskontroll, boka FedEx och PostNord, avboka. FedEx och PostNord är låtsade och nekar det de riktiga nekar. Ibland trycks Boka två gånger samtidigt, och till sist bokas 40 ordrar tio åt gången (rusning). Inget bokas på riktigt.
Landsnamn som inte kändes igen stoppade bokningen: «The Netherlands», «Förenta staterna», «Republic of Ireland», «Deutschland», «Suisse», «Suomi», «Österreich», «U.S.A.», och koderna UK och EL. Nu blir de rätt landkod. Ett land som ändå inte går att tolka säger det i klartext innan bokningen, i stället för ett nej från fraktbolaget.
Irland (och t.ex. Hongkong, Förenade Arabemiraten, Qatar) har inget obligatoriskt postnummer. En irländsk adress utan Eircode stoppades ändå. Nu går FedEx igenom; PostNord, som kräver postnummer, står som gråad rad med skälet i stället för att stoppa efter att man tryckt.
Namn med kyrilliska eller grekiska bokstäver blev «?????» på FedEx-etiketten. Nu skrivs de om med latinska bokstäver (Иван → Ivan), emoji tas bort, och går namnet inte att läsa alls (t.ex. japanska tecken) används företagsnamnet — eller «Recipient».
Gratisartikel på en webborder (0 kr) utanför EU: meddelandet säger nu att artikeln var gratis i butiken och att tullvärdet fylls i under Tulluppgifter, i stället för ett allmänt «tullvärde saknas».
Resultat efter rättningarna, fyra körningar à 250 ordrar: inga krascher, inga nej från fraktbolagen, inga dubbelbokningar och rusningen gick igenom. Det som stoppar är det som ska stoppa — artikel utan HS-kod, gratisartikel utan tullvärde, Fortnoxorder utan telefon och e-post (PostNord gråad).
Frakt till Åland3.59.3
2026-10-26
Åland har landkoden AX, och det är den Shopify skickar — men varken FedEx eller PostNord tar emot AX. För dem är Åland en del av Finland. Nu får fraktbolagen FI (FedEx, PostNord, PostNords leveranstider och Sendify), och ett postnummer skrivet «AX-22100» skickas som 22100.
Allt annat räknar fortfarande med Åland: det ligger utanför EU:s skatteområde, så varorna tullklareras där. Handelsfakturan följer med (FedEx elektroniskt, annars utskriven), HS-koderna krävs som för länder utanför EU, och PostNord Mailbox (varubrev inom EU) erbjuds inte dit — MyPack går.
«Åland», «Aland Islands» och «Ahvenanmaa» i en Fortnoxorder blir AX.
Ingen förvald kartong — skanna varje gång3.59.2
2026-10-26
När man packar fylls ingen kartong i längre: varken standardkartongen, förpackningen ur reglerna för webbordrar eller standardmåtten 26 × 13 × 3. Kortet börjar med «Skanna kartongen» varje gång. Vikten (varorna) fylls i som förut, och kartongens egenvikt läggs på när den skannas.
Genvägen «Förslag utifrån varorna — Använd» är borta. I «Välj kartong» (för den som saknar streckkod) står förslaget kvar som ett litet märke.
Förpackningar: knappen «Gör till standard» är borttagen, och en tidigare markerad standard gäller inte längre.
Boka frakten direkt från packningen kräver som förut vikt och mått på varje kolli — alltså en skannad kartong.
Ingen FedEx-adresskontroll på webbordrar3.59.1
2026-10-26
Webbordrarnas adress har kunden själv skrivit in i kassan — den skickas som den står. FedEx frågar inte längre om den, och inga förslag på ändringar dyker upp på webbordrar.
Den automatiska bokningen av webbordrar väntar inte på någon adresskontroll.
Fortnoxordrar och manuella frakter kontrolleras som förut.
«Fråga assistenten» när frakten krånglar3.59.0
2026-10-26
Under felen på orderns fraktsida — adresskontrollen, «Inga priser från FedEx», en bokning som inte gick igenom och Shopify-markeringen — finns knappen «Fråga assistenten». Den öppnar assistenten med felet och ordern i frågan: den förklarar på vanlig svenska vad det betyder, och fixar det om det går.
Ny åtgärd: rätta leveransadressen (postnummer, ort, delstat, telefon, e-post …). Kortet visar bara det som ändras; resten står kvar. Inte på en bokad frakt — avboka först.
Assistenten ser nu adressen som går till fraktbolaget när den läser en order.
Australien: FedEx-priser och adresskontroll fungerar igen3.58.1
2026-10-26
Order 10028 (Petlins, NSW) fick «Inga priser från FedEx» och «Adresskontrollen gick inte just nu». Felet var appens: australiska delstater har tre bokstäver (NSW, VIC, QLD), FedEx fält tar två, och appens kontroll stoppade anropet innan det nådde FedEx. FedEx kräver ingen delstat i Australien — postnumret räcker — så den skickas inte längre dit. Priser, adresskontroll och bokning går som för andra länder.
Det var FedEx egen adresskontroll som föreslog NSW när adressen saknade delstat — och den som tog förslaget fick en adress FedEx sedan inte tog emot. För Australien föreslås ingen delstat längre.
Delstaten står kvar på adressen och på handelsfakturan. Under Ändra adressen och på Boka frakt manuellt står den som valfri för Australien; den krävs fortfarande för USA och Kanada (två bokstäver, t.ex. CA, ON).
Fraktprovet räknar nu också anrop som appens egen kontroll stoppar — därför syntes inte felet i proven — och har en australisk adress med.
Shipmondo-markeringen borttagen3.58.0
2026-10-26
Appen försökte markera webbordrar som skickade i Shipmondo (sedan 3.34.1), men kom inte åt Shipmondo. Det är borttaget: inga försök vid bokningen, inga omförsök i avläsningen, ingen «Shipmondo: … försöker igen» på orderns sida, och avsnittet Shipmondo under Inställningar → Fraktbolag är borta.
Kvar som förut: Shopify markeras som skickad när frakten bokas här, och webbordrar som packas i Shipmondo syns och försvinner ur plocket som innan — det läses ur Shopify, inte ur Shipmondo.
Assistenten gör mer: frakt, artiklar, plocket, mejl och uppgifter3.57.0
2026-10-26
Boka frakt: «boka 2400 med PostNord» eller «boka billigast» ger ett kort med alternativen från FedEx och PostNord — pris och när det är framme. Välj och tryck Boka; priserna frågas på nytt innan bokningen och etiketten går till skrivaren. Sendify bokas fortfarande på orderns sida.
Avboka frakt: kort med spårningsnumret och röd knapp. PostNord markeras som avbokad i appen och avbokas hos dem.
Ändra en artikel: nytt räknat saldo eller inleverans (till Fortnox), beställningspunkt, benämning, kategori och om den räknas på flera platser. Kortet visar före och efter.
Plocket: lägga upp en order, markera klar (packsedeln skrivs ut, kollin och vikter följer med), öppna igen, ta bort (röd knapp), ta tillbaka och hämta om från Fortnox. Plocklista, packsedel eller fraktetikett igen.
Mejl: assistenten skriver mejlet — svar i ett ärende, till en kund eller en adress — och kortet visar mottagare, ämne och text som går att ändra. Inget skickas förrän man trycker Skicka; signaturen kommer med.
Uppgifter och påminnelser i CRM («påminn mig på fredag kl 10 att ringa Vävstuga»), och anteckningar på en kund (anteckning, samtal, möte, mejl).
Rättat: det man sagt låg kvar i textrutan efter att frågan skickats. iPhone skickar ett sista, omskrivet resultat när lyssnandet stängs, och det skrev tillbaka texten i rutan.
Står ingen skrivare inlagd säger kvittot det i klartext i stället för «på väg till ingen A4-skrivare».
Assistenten skriver ut lappar på A43.56.0
2026-10-26
Be assistenten «skriv ut en fin lapp med det, på A4 i kontoret» så gör den en lapp: Texsolv-loggan, datum, rubrik, text med punkter och gärna en tabell med summarad. Foten säger vem den skrevs ut åt och när; blir den lång blir det fler sidor med sidnummer.
Kortet i chatten visar innehållet och har «Visa lappen» (PDF:en innan den skrivs ut). Välj skrivare bland A4-skrivarna och antal (upp till 10). Säger man «kontoret» eller «fabriken» är den skrivaren förvald.
Ny papperssort «Lapp från assistenten (A4)» under Inställningar → Skrivare, så att den kan ha en egen standardskrivare.
Välj etikett och antal direkt i chatten3.55.0
2026-10-26
Etikettkortet i assistenten har nu val: Artikel, Förpackning, Rund eller Rekt, och antal med − och + (eller skriv in siffran, upp till 500). Rubriken på kortet följer med, och det som står på kortet är det som skrivs ut.
Förpackning: fyll i hur många som ligger i kartongen och hur många kartonger. «Skriv ut» går inte att trycka förrän antalet i kartongen står där.
Assistenten frågar inte längre efter antal eller sort — den lägger kortet direkt, och man väljer själv.
Servern bygger om utskriften ur valet; bara sort och antal kan ändras, artikeln är förslagets.
«Hejdå» stänger assistenten3.54.1
2026-10-26
Säger man hejdå (eller «tack», «okej tack hej då», «ha det gött», «det var allt») i ett samtal stängs nu allt: samtalet, rutan och den lilla pillen som står kvar när assistenten öppnat en sida. Förut slutade den bara lyssna och lät rutan stå.
Samma sak med ett tryck på mikrofonen och med skrivet «hejdå» — inget skickas till Claude, rutan stängs.
Avskeden känns igen även ihopsatta och med skiljetecken som taligenkänningen skriver dem («Tack, hejdå!», «hejdå då»). «Hej», «hej hej» och frågor som börjar med tack stänger inte.
Assistenten: spårning, hela databasen och sökning på nätet3.54.0
2026-10-26
Spårning i samtalet: fråga «var är 2322?», «var är paketet till Joensuu?» eller «vilka paket har problem?». Assistenten söker på ordernummer, spårningsnummer eller kundnamn bland appens bokade sändningar och webbshoppens egna, frågar fraktbolaget på nytt om läget är äldre än 20 minuter (högst fem sändningar och åtta sekunder) och svarar med läge, plats, tid och spårningslänk. Svarar bolaget inte gäller senast kända läget.
Hela databasen: för det inga andra verktyg svarar på («hur många ordrar till Tyskland i september?», «vilka artiklar har inte inventerats i år?») skriver assistenten en egen SELECT. Bara läsning, med fyra lås: frågan granskas (en SELECT, inga skrivande ord eller systemfunktioner), körs i en skrivskyddad transaktion som alltid rullas tillbaka, stoppas efter 5 sekunder, och under en egen databasroll som bara får läsa de tillåtna tabellerna. Inloggning, nycklar, inställningar och bilder går aldrig att läsa; kunder, fakturor och bokföring bara med CRM.
Sökning på nätet: står svaret varken i appen eller i faktabladet söker assistenten på nätet (högst tre sökningar per fråga) och säger vilken sajt det kommer från. Aldrig om kunders personuppgifter. Är sökningen inte påslagen för organisationen hos Anthropic går frågan om utan, och det står under Inställningar → Assistenten. ASSISTENT_WEBBSOK=av stänger av den.
Shopify: försäljningen per kanal fallerade var tionde minut med ACCESS_DENIED (felen i Shopifys logg), eftersom frågan bad om kundnamn och adresser — skyddade kunduppgifter appen inte har behörighet till. Nu frågas med bara landet, och nekas det också utan; appen minns det i sex timmar och provar sedan igen.
Artikelrutan: «Räknat» heter Inventering, och «Avbryt» ligger röd under spara-knappen. Den grå linjen tvärs över rutan på telefonen är borta.
Mailbox utrikes är spårbart: kod 34, PostNord Tracked Letter3.53.1
2026-10-26
86 som Mailbox-kod gav «PostNord Untracked Letter» till Finland — billigt men utan spårning. Rätt kod är 34, PostNord Tracked Letter: brev till brevlådan, spårbart, till alla länder enligt PostNords tjänstelista. Under Inställningar → Fraktbolag finns knappen «Använd 34».
86 nekas nu som Mailbox-kod med förklaringen (utrikes blir det ett ospårat brev). Står 86 kvar i inställningen säger Mailbox-raden varför den inte går att välja. Inrikes är 86 fortfarande Home Small Prio som förut.
I «PostNord erbjuder hit» står det vid brevlådan utrikes (86) att det är ospårat och att appen bokar Mailbox som 34.
Assistenten är påläst: faktabladet om företaget och produkterna3.53.0
2026-10-26
Assistenten har ett faktablad ur texsolv.se och runlock.se med sig i varje fråga: alla solvstorlekar och vilka vävstolar de passar (märke för märke), vad 280/12 betyder, hur många solv man behöver, U-cord 1/12, 1/12 3-trådig, 1/20 och 1/43,5 med rullängder och brottstyrka, uppknytningssatserna och kompletteringssatserna, raka pinnar och ankarpinnar (5,5 mm hål, bussning för 8 mm), tvätt och klippning, grossistvillkor, och RunLock: storlekarna No 4–20 med diameter, ögla, brottstyrka, töjning och vikt, de fyra låsen, produkterna, färgerna och specialbeställning. Plus företaget: historik, adress, kontakt.
Fråga t.ex. «vilken solv passar en Glimåkra Ideal?», «hur stark är RunLock No 12?», «vad är skillnaden på 1/12 och 1/20?». Står svaret inte i bladet säger den det och hänvisar till info@texsolv.se.
Inställningar → Assistenten → «Det assistenten vet om företaget»: läs och skriv till i bladet (administratör). «Återställ» tar tillbaka standardtexten. Saldon, priser och ordrar hämtar assistenten fortfarande ur appen.
PostNord: leveranstider, vad som erbjuds — och rätt Mailbox-kod (86)3.52.0
2026-10-26
PostNords Delivery Options är inkopplat. På ordern står leveranstiden på PostNord-raderna («Framme onsdag ~ 08:00–13:00»), och under dem «PostNord erbjuder hit»: alla leveranssätt till mottagaren — hem, ombud, paketskåp, brevlådan — med PostNords tjänstekod och tid, och om de finns i ert urval. Kräver att Delivery Options är aktiverat för PostNord-nyckeln i utvecklarportalen; annars står det där vad som saknas, och frakten fungerar som förut.
Rätt kod för Mailbox utrikes är 86 — PostNord Home Small Prio, som enligt PostNords egen specifikation går till brevlådan i Sverige, Norden och Europa. Under Inställningar → Fraktbolag finns en knapp «Använd 86». 86 är redan på ert avtal (Home Small Prio).
Med 86 som Mailbox-kod bokas Finland, Tyskland m.fl. som Mailbox (avtalets Mailbox-pris) och Sverige som Home Small Prio inrikes — samma kod, rätt rad per land.
Assistenten ser leveranstiderna när den tar fram fraktpriserna.
Fortnox driftstörning: rätt besked i stället för «koppla om»3.51.1
2026-10-26
När Fortnox egen inloggningstjänst har problem (26 oktober: 404 och 502 om vartannat) stod det «Koppla om under /setup» — men omkopplingen går genom samma trasiga tjänst och kan inte lyckas. Nu står det att det är en driftstörning hos Fortnox, att kopplingen ligger kvar och att appen försöker igen av sig själv. «Koppla om» sägs bara när Fortnox faktiskt nekat nyckeln.
Svarar inte Fortnox alls ger frågan upp efter 20 sekunder med ett begripligt fel, i stället för att hänga.
Ny artikelruta, Boka frakt i fyra steg, ny kundlista, samtal med assistenten3.51.0
2026-10-26
Artikelrutan: pennan uppe till höger redigerar artikeln. Saldot nu och efter står i ett kort med pil («I Fortnox 18 → Räknat 25, +7 st»), Tillverkat och Räknat är två stora rutor, räknaren har runda −/+, och «Senast räknad 17 okt. av Joel» står under. Etiketter är en stor knapp. Avbryt och Spara (med antalet: «Spara +25») står kvar längst ner när man rullar. Minusrutan, platserna, krocken och satspappret finns kvar.
Boka frakt manuellt i fyra steg: Mottagare → Innehåll → Kollin → Pris, med Tillbaka/Nästa längst ner och stegen överst (tryck för att gå tillbaka). Sista steget sammanfattar och «Skapa och se priserna» öppnar frakten som förut. Retur, Shopify-retur, boka igen, provadresser och kravrutan för vikt och mått finns kvar.
CRM-kundlistan: sök och en Filter-knapp (urval, land, tagg, segment, sortering, export, kontaktpersoner, dubbletter i ett blad). Det valda står som chips med kryss. Varje kund har flagga, ort, obetalt i orange (förfallet i rött), köp per kvartal som staplar och beloppet. Ikonerna på CRM-flikarna är kvar.
Assistenten: Samtal uppe i rutan — prata fram och tillbaka utan att trycka. Den lyssnar, svarar, läser upp och lyssnar igen; «tack» eller «hejdå» avslutar. Tryck på vågen medan den pratar för att avbryta.
Lyssnandet: slutar efter en kort tystnad i stället för när webbläsaren vill, och ord kommer inte två gånger. Med ElevenLabs mäts tystnaden på ljudnivån.
«Ett tolv» blir 1/12 och «ett tjugo» 1/20 — när man pratar och när man skriver.
Ännu kortare svar, ledigare ton — och den får svära lite när det passar.
PostNord: en tjänst som går till landet men inte visas står under fraktlistan med varför («Mailbox visas inte: inget avtalspris inlagt»). Mailbox-koden kan inte längre vara en paketkod: 18 är PostNord Parcel och gav en Parcel-etikett. Exemplet «t.ex. 18» är borta, inställningen varnar och raden säger vad koden egentligen är.
Knappraden längst ner hamnade bakom menyn på datorn i glastemat — nu ovanför.
Assistenten svarar kort och ledigt3.50.2
2026-10-26
Enkla frågor får korta svar: «132 st.», «Här är den.» — ingen inledning, ingen upprepning av vad kortet gör, inget «säg till om…» på slutet.
Siffror står som siffror på skärmen (159002, 1/12, 20 m) i stället för utskrivna ord, även när svaret läses upp.
Uppläsningen säger artikelnummer siffra för siffra («1 5 9 0 0 2») och 1/12 som en storlek, inte som ett datum.
Assistenten svarar när den använder verktyg — och pratar ledigare3.50.1
2026-10-26
Assistenten stannade med «each thinking block must contain thinking» så fort den behövde slå upp något (t.ex. «behöver en etikett för 1/12 20 meters vit»). Claude tänker innan den svarar, och appen tappade tanken på vägen — nu följer den med tillbaka. Skulle Claude ändå neka fortsätter samtalet utan tankarna i stället för att stanna.
Fel från Claude står på svenska: fel nyckel, överbelastat, slut på krediter.
Artikelsökningen förstår hur folk säger: «1/12 20 meter vit» hittar U-cord 1/12 / White / 20 Meters — svenska färger mot webbshoppens engelska namn, «20m» = «20 meter», och 20 träffar inte 205/12. Webbshoppens namn och pris följer med. Matchar inget allt får man de närmaste och en fråga.
Ledigare ton: «vi har tolv kvar» i stället för «det finns för närvarande tolv stycken i lager» — särskilt när svaret läses upp.
Assistenten: fråga, hitta och få saker gjorda — skriv eller prata3.50.0
2026-10-26
Ny knapp ✦ uppe i huvudet på alla sidor: assistenten. Den svarar på svenska och läser i appen själv: saldon, vad som tar slut, plocket, ordrar och frakt, tillverkningen, felen. Med CRM även kunder, försäljning, obetalda fakturor och mejl som väntar på svar.
Den hittar rätt: «var ställer jag in EORI?» öppnar Fraktbolag och lyser upp det man letar efter. Medan sidan öppnas krymper assistenten till en liten rad längst ner — tryck på den för att fortsätta.
Den vet vad som står öppet: på en artikel, en order, en kund, ett mejlärende eller en tillverkningsorder betyder «den här» just den.
Den gör inget själv. Vill du något gjort — etiketter, inventering, tillverkningsorder, ny kartong, signatur, A4-arket för etiketter, ett svarsutkast i ett mejl — visar den ett kort med vad som ska hända och en knapp. Först när du trycker görs det, med din inloggning och din behörighet, och kvittot hamnar i samtalet. Frakt bokas fortfarande på ordern: assistenten tar fram priserna, säger vilket som är billigast och öppnar ordern. Mejl skickar den aldrig, och Fortnox-bokföringen rörs inte.
Prata: tryck på mikrofonen och säg det. Svaret läses upp med Googles röst (Chirp 3 HD, naturlig svenska) när GOOGLE_TTS_API_KEY finns, annars med telefonens egen. Högtalaren uppe i assistenten slår på uppläsning även när du skriver.
Inställningar → Assistenten: välj röst (Google, ElevenLabs eller telefonen) och provlyssna, och se allt assistenten frågats och gjort.
Hjärnan är Claude Opus 5.5 (ANTHROPIC_API_KEY), med Sonnet 5.5 som reserv.
Huvudet: på telefon är Skanna bara ikonen, så att ✦ får plats.
Siffran i räknerutan klipps inte på iPhone3.49.1
2026-10-23
Inventering och tillverkning: på iPhone klipptes siffrorna mellan − och + fortfarande, nu uppe och nere («144» utan toppar och fötter). Siffran som syns står nu ovanpå fältet i stället för i det, så Safari kan inte klippa den. Att trycka och skriva fungerar som förut — allt markeras, och det man skriver ersätter siffran.
Mejlen: Att svara, signatur, alla mappar och papperskorgen överallt3.49.0
2026-10-23
Ny flik «Att svara» först i mejlen: alla avsändare som väntar på svar från er, från alla flikar utom skräp — den som väntat längst överst. Siffran i orange är hur många som väntar.
Trycker man på en avsändare (dator) öppnas dess senaste ärende direkt.
Med ett ärende öppet fälls listorna ihop: avsändarna blir en smal rad med initialer (grön prick = nytt, orange = att svara) och ärendena en smal lista — ärendet får platsen. «Fäll ihop» / » överst växlar.
Rullningen på datorn: kolumnerna är lika höga som fönstret, så att sidan inte rullar under dem. Förut fastnade hjulet i en kolumn som rullat klart.
De gröna rutorna (det ni skickat) är gröna igen — de visas som text, med «Visa mejlet med bilder» under.
Signatur: din egen under mejlen du skickar från appen (svar, nya mejl, från kundkortet), med Texsolv-loggan om du vill. Syns under texten i skrivrutan och kan stängas av för ett mejl. Ställs in i skrivrutan («Lägg till en signatur») eller under kugghjulet i mejlen.
Alla mappar läses av sig själva — inkorgen, Skickat, arkivet och egna mappar och undermappar — utan att någon skriver in dem. Papperskorgen, skräpposten, utkasten och Gmails «Alla mail» hoppas över. «Prova» visar vilka mappar som läses och var raderat hamnar.
Radera i appen → mejlet flyttas till brevlådans papperskorg direkt (förut inom fem minuter), så att det syns i Outlook, Gmail och på telefonen. Raderar man i ett annat mejlprogram hamnar ärendet i appens papperskorg. Återställer man i appen flyttas mejlet tillbaka till inkorgen i brevlådan.
Mejlen visas med bilderna3.48.1
2026-10-23
Inkorgen: ett mejl visas nu som det ser ut — med bilderna i mejlet (foton, skärmdumpar, logotyper), bilderna från avsändarens sida, tabeller och knappar — i stället för bara texten med en massa länkar. Breda nyhetsbrev krymps till skärmens bredd.
«Visa som text» under mejlet växlar till texten som förut. AI:n, sökningen och svaren använder fortfarande texten.
Mejlet hämtas ur brevlådan när det öppnas, som bilagorna. Går det inte (flyttat, borttaget) visas texten med en rad om varför.
Säkert: avsändarens html tvättas (inga skript, formulär eller ramar) och visas i en sandlåda där inget kan köras. Länkar öppnas i en ny flik.
Etikettväljaren visar bilder av etiketterna3.48.0
2026-10-23
Etiketter på artikeln: i stället för en lista med förklaringar visas varje etikett som en bild i sin riktiga form — kartongen stående, den runda som en cirkel, artikel- och rektangulära som remsor — med artikelns nummer, benämning, streckkod och text. Kort namn och mått under bilden.
Den som skrevs ut senast på artikeln har grön ram och en bricka med antalet («Senast · 40 st»).
Tryck på en bild: etiketten stort överst, sedan antalet och Skriv ut. Bilden ändras medan man ändrar antal eller text. Pil tillbaka till de andra etiketterna.
Förpackningsetiketten: antalet med − och + först; texten på etiketten ligger hopfälld (öppen om den har text). Runda och rektangulära: texten hopfälld under «Text: …» — öppen när artikeln saknar text eller texten inte får plats.
Inget har tagits bort: alla formulär, fördelning per kartong, rulle/ark, Se etiketten först, Spara designen och minnet av förra gången finns kvar. Arksidan (/etiketter/herma) ser ut som förut.
Antalet i räknerutan klipps inte längre3.47.1
2026-10-23
Inventering och tillverkning: siffrorna i rutan mellan − och + klipptes på iPhone («4(» i stället för 40). Rutan har nu egen höjd, luft på sidorna och inget hoptryckt teckenavstånd, så hela talet syns — även fyra–fem siffror.
Returer läggs in i Shopify · mejlen använder skärmen på datorn3.47.0
2026-10-23
Returetikett för en webborder: en ny ruta «Returen i Shopify» i formuläret, med samma val som i Shopify — vilka rader och hur många, orsak, avgift för återinlagring (%) och notering per rad, vem som betalar returfrakten (kunden: beloppet dras från återbetalningen) och om Shopify ska mejla kunden returinstruktionerna.
När etiketten bokats läggs returen in på ordern i Shopify, och returfrakten med spårningsnummer och fraktsedeln (PDF) läggs på returen. Kvittot säger «I Shopify: Retur #2316-R1 · spårning · etikett», eller vad som gick fel med knappen «Lägg in i Shopify igen» (en andra retur skapas aldrig).
Återbetalning och inlagring görs i Shopify som vanligt när kartongen kommit — appen rör inga pengar.
Kräver Shopify-behörigheterna read_returns och write_returns: kryssa i dem i Shopify-appens inställningar och gör om kopplingen under /setup. Saknas de säger rutan det.
Mejlen på datorn: avsändarlistan klämdes ihop till överlappande rader när den var lång — fixat. Vyn använder nu skärmens bredd (upp till 1760 px), med bredare spalter och ett större läsfönster.
Nytt kundkort (A): siffror överst, det man gör i mitten, uppgifterna vid sidan3.46.0
2026-10-23
Överst: återförsäljarstatus och taggar på en rad, sedan Mejla (grön), Ring, Anteckning, Uppgift och Affär.
Siffrorna som rutor: senaste 12 och 24 månader, totalt, målet i år med en stapel (och andel av budgeten), och obetalt eller förfallet — ett tryck öppnar fakturorna.
Datorn: två spalter. I mitten uppgifter, affärer, senaste ordrarna och köp per år bredvid varandra, och anteckningarna. Vid sidan kontaktpersoner, kundkortet i Fortnox (med Ändra), priser och rabatt, skatte- och tullnummer och återförsäljare på hemsidan.
Telefonen: uppgifter, affärer, kontaktpersoner och senaste ordrarna öppna; anteckningar, priser och rabatt, köp per år, kundkortet i Fortnox, skatte- och tullnummer och hemsidan som hopfällda rader med en sammanfattning — ett tryck öppnar. «Anteckning» överst öppnar raden och sätter markören i textrutan, och länken till skatte- och tullnummer från fraktsidan öppnar den raden.
Köp per år har fått en stapel per år (Texsolv, Runlock, Övrigt) under tabellen. Flikarna Ordrar, Fakturor, Frakt, Mejl och Tidslinje är som förut. Inga funktioner är borttagna.
«Kunden bokar själv» markeras som skickad i Shopify3.45.5
2026-10-23
En webborder där kunden bokar frakten själv markerades aldrig som skickad i Shopify — appen hoppade över steget eftersom det inte finns något spårningsnummer. Nu markeras den som skickad (och i Shipmondo) när uppgifterna mejlats, utan spårningsnummer och utan Shopifys «på väg»-mejl till kunden.
Ordrar som redan bokats så (t.ex. #2316) markeras när sändningen öppnas i appen nästa gång.
Kvittot säger «Skickad i Shopify — kunden hämtar».
FedEx mall för handelsfakturan borta — appens faktura alltid3.45.4
2026-10-23
Appen ber aldrig längre FedEx skapa handelsfakturan. Förut föll den tillbaka på FedEx mall när vår faktura inte kom upp före bokningen — därför kom den fula ändå.
Nu: vår faktura laddas upp före bokningen och bifogas. Går det inte bokas sändningen med elektronisk faktura «laddas upp efteråt», och vår faktura laddas upp direkt efter bokningen med spårningsnumret. Går inte heller det skrivs tre exemplar av vår faktura ut till plastfickan — aldrig FedEx.
Kvittot säger «Vår faktura, elektroniskt till tullen» när den är hos FedEx, och annars varför den inte kom upp (under Detaljer och i rutan om plastfickan).
Inställningar → Frakt: texten om brevhuvud och namnteckning säger nu att de trycks på appens faktura.
Packningen frågar inte om kameran i onödan3.45.3
2026-10-23
Kameran i packningen startade av sig själv varje gång ordern öppnades, och då frågade telefonen om lov — även när man skulle använda handskannern eller bara boka frakten. Nu startar den av sig själv bara om telefonen redan gett kameran lov för appen (då kommer ingen fråga). Annars står «Skanna kartongen — skjut med handskannern eller tryck här för kameran», och frågan kommer först när man trycker.
Handskannern fungerar som förut utan kameran. «Stäng kameran» sparas fortfarande på telefonen.
Mejlen: det nya syns först, mindre plottrigt · prompt caching mot Claude3.45.2
2026-10-23
Nya mejl syns: «1 ny» / «3 nya» på avsändaren, fet text, och på ärendet en grön kant och «Ny». Lästa är tunnare. Flikarna räknar nya (grönt), inte väntande.
På datorn öppnas inget ärende av sig självt längre. Förut öppnades det första direkt när man valde en avsändare — och öppnat är läst, så det nya blev läst innan man sett det. Öppnar man ett ärende försvinner «Ny» direkt i listan.
Avsändarraden: namn och tid överst, «Att svara · 3 h» i orange och antal öppna under. Ärendekorten: rubrik och tid, sammanfattningen på högst två rader, och läget som färgad text i stället för en rad brickor.
Ärendet: läget och «Klar» överst, sedan mejlen och «Svara» (en gång, under tråden). Kategori, ansvarig, avsändarens grupp och kundkopplingen ligger under «Detaljer» längst ned — sammanfattat på raden, öppnas med ett tryck. Oläst, Radera och Affär är små knappar.
Avsändarens grupp väljs i en liten väljare bredvid namnet i stället för en egen rad. «AI:n är osäker» står kvar som en egen rad med «Ja, stämmer».
Mina brevlådor gäller nu i nya vyn också: knappen med tratten bredvid sökfältet (t.ex. «1/2»). Bockar du ur Thomas brevlåda syns inte mejl som bara kommit dit — varken i flikarna, hos avsändarna eller i siffrorna. Valet gäller bara dig och är samma som i gamla inkorgen; hade du redan bockat ur den där gäller det direkt. När du söker syns allt.
Gamla inkorgen (Inställningar → Utseende) är oförändrad.
«Lär om nu» (skrivstilen) och svarsförslagen föll med «tool_choice: type tool and any are not supported for this model». Modellen tar inte emot ett tvingat verktyg. Nu görs anropet om utan tvånget, med en rad om att svara med verktyget, och appen minns det för modellen. Gäller även kvittona och mejlsorteringen om de byter till en sådan modell.
Prompt caching: alla anrop till Claude märker systemprompten för cache, och kund- och återförsäljarletarna även samtalet mellan varven. Det som skickas om och om igen läses då ur Anthropics cache till en tiondel av priset. Korta prompter (under modellens minsta längd) cachas inte — det kostar inget extra.
Vår egen handelsfaktura går till tullen direkt — inte FedEx blankett3.45.1
2026-10-23
Vid bokningen ritas appens egen handelsfaktura (samma som «Rita om fakturan» gav) och laddas upp till FedEx innan sändningen skapas. Bokningen hänvisar till den, och FedEx skriver ingen egen. Tullen får alltså den fina direkt — man behöver inte rita om den efteråt.
Det som sparas under Papper och det som skrivs ut när papper behövs är också vår faktura, med spårningsnumret på.
Går uppladdningen inte, eller nekar FedEx vår faktura, bokas sändningen som förut med FedEx blankett elektroniskt, så att kartongen ändå kommer i väg. Kvittot säger då «Elektroniskt till tullen — FedEx blankett» och varför vår inte gick. Gick vår står det «Vår faktura, elektroniskt till tullen».
Nya mejlvyn: per avsändare, och varje ärende för sig3.45.0
2026-10-23
Mejlen sorteras i fem flikar: Kunder, Leverantörer, Frakt & tjänster, Övrigt och Skräp. Under varje flik står avsändarna — ett företag en gång, hur många mejl det än kommit — med antal öppna ärenden och hur länge den äldsta väntat på svar.
Tryck på en avsändare så kommer deras ärenden, var för sig: «Att svara · 3 h», «Väntar på svar», «Öppet», med kategori, order och «Utkast klart». Klara ärenden ligger för sig under. Allt hamnar inte längre i en tråd.
AI:n bedömer vem avsändaren är (kund, leverantör, frakt/tjänst, övrigt eller skräp) samtidigt som den sorterar mejlet. Kunder i registret, kända fraktbolag och tjänster (FedEx, PostNord, Shopify, Fortnox, banker, Skatteverket …) och reklam sorteras utan AI.
Är AI:n osäker står avsändaren med ett frågetecken och «AI:n är osäker» — «Ja, stämmer» bekräftar. «Avsändaren är» flyttar avsändaren till en annan flik, och det blir en regel för alla deras mejl, nu och framåt. Ett företag räknas på domänen; gmail, hotmail och liknande på hela adressen.
Våra svar står i grönt till höger i ärendet, kundens till vänster.
Datorn: avsändare, ärenden och ärendet i tre spalter. Telefonen: ett steg i taget, och bakåt går tillbaka ett steg.
Gamla inkorgen finns kvar: Inställningar → Utseende → «Mejl: gamla inkorgen».
Våra tullnummer syns före bokningen · kundkortet på fraktsidan · ta tillbaka en borttagen order3.44.11
2026-10-23
Fraktsidan visar «Från oss: EORI … VAT …» — exakt de nummer som följer med just den här sändningen, med samma urval som bokningen (landsspecifikt, DDP, privatperson). Saknas de står en länk till inställningarna.
Står det något annat på kundkortet i Fortnox än på ordern (namn, gata, postnummer, ort, land) syns det på fraktsidan med «Använd kundkortets» och «Öppna kundkortet». Fortnox kopierar adressen till ordern när den skapas; rättas kundkortet efteråt följer det inte med av sig självt. Adresskortet har också en länk «Kundkortet».
Kundens momsnummer, e-post och telefon läses om från Fortnox om de är äldre än tio minuter. Förut lästes de en gång per order och sedan aldrig igen, så en ändring på kundkortet kom inte med.
En order som tagits bort ur Boka eller Plocka går att få tillbaka: + → «Kom inte ordern hit?», sök på ordernumret, och tryck «Ta tillbaka». Den hamnar där den var, med det som redan plockats kvar.
FedEx handelsfaktura: rätt EORI, telefon och e-post · fråga innan mejlet till FedEx3.44.10
2026-10-23
Vårt brittiska EORI (eller annat nummer för mottagarlandet) följer bara med när det är vi som importerar: när vi betalar tullen (DDP) eller säljer till en privatperson. Till ett företag som betalar tull och moms själv (DAP) är det företaget som importerar, och då står vårt vanliga EORI och momsnummer kvar. Gäller både FedEx bokning och fakturan appen ritar.
Mottagarens EORI står först. FedEx egen handelsfaktura har plats för ett nummer per part och skrev ut kundens momsnummer i stället för deras EORI. Alla nummer följer fortfarande med elektroniskt.
FedEx fick telefon 0000000000 och ingen e-post för oss, och det stod så på deras faktura. Nu skickas telefon och e-post från inställningarna — samma som på fakturan appen ritar — och mottagarens e-post följer med.
«Mejla till FedEx» frågar först: «Mejla handelsfakturan till FedEx?» med adressen, och Ja, mejla eller Avbryt.
EORI, VAT och andra tullnummer på webbordrar och manuella frakter3.44.9
2026-10-23
Webbordrar och manuella frakter har inget kundnummer, och då fanns ingen ruta för mottagarens EORI, VAT eller liknande. Nu står raden «Till tullen» på fraktsidan även för dem: «lägg till», välj sort (EORI, VAT, EIN …) och skriv numret. Det sparas på sändningen och går att ta bort med ×.
Numret följer med till FedEx som mottagarens tullnummer och står på handelsfakturan under mottagarens adress — samma väg som numren från kundsidan för Fortnox-ordrar.
Raden syns nu på alla sändningar utomlands, inte bara till företag utanför EU. Utanför EU till ett företag utan nummer står den som en varning, som förut; annars som en stillsam rad. För Fortnox-ordrar sparas numret som förut på kundsidan.
Packsedeln kommer när allt är plockat — även för «Book your own freight»3.44.8
2026-10-23
Webbordrar med «Book your own freight» fick packsedeln utskriven redan när ordern kom in i appen. När allt sedan var plockat såg appen att en packsedel redan fanns, och skrev inte ut någon — så den kom aldrig när man stod med kartongen.
Nu skrivs packsedeln ut när sista raden är plockad, för alla ordrar. Ingen packsedel skrivs längre ut när en webborder kommer in.
Bara en packsedel som lagts sedan plockningen började räknas. En äldre (eller en som gått fel eller stoppats) stoppar inte längre den nya, varken när allt plockats eller vid Klart. Raden överst i packningen visar den här plockningens packsedel.
Packa: packsedeln — vad som hänt med den, och skriv ut igen3.44.7
2026-10-23
Raden överst i packningen sa «Packsedeln utskriven» så fort en packsedel lagts i kön — även när den låg kvar där, väntade på en skrivardator som inte var igång, eller hade gått fel. Nu står det som det är: «i kön · väntar på …», «skrivs ut», «utskriven», «gick inte att skriva ut» eller «Ingen packsedel utskriven».
Knappen «Skriv ut igen» står direkt på raden, och «Skriv ut packsedeln igen» finns under ⋯ medan man packar. Förut fanns den bara när ordern var klar, så en packsedel som aldrig kom gick inte att få ut från packningen.
En packsedel som gått fel eller stoppats räknas inte längre som utskriven, så Klart skriver ut en ny.
Packa: texten under «Foto och film på kartongen»3.44.6
2026-10-23
Texten kunde stå dubbelt, med två rader ovanpå varandra. Den bytte från «Inget foto taget.» till «Inget taget.» när man hoppat över fotot, raden bröts om, och iPhone ritade inte om den gamla raden i glaskortet. Nu är det en och samma text, «Inget foto eller film ännu. Det visar vad som låg i kartongen om kunden hör av sig.», och texten ligger i ett eget lager så att den alltid ritas om helt.
Plocka: ta bort en order i orderrutan — även webbordrar3.44.5
2026-10-23
Papperskorgen på raderna under Plocka är borta. Tryck på i-knappen och sedan «Ta bort ur listan» längst ned i orderrutan; appen frågar först som förut.
Webbordrar (Shopify) går nu också att ta bort. Ordern i Shopify rörs inte, och den kommer inte tillbaka i listan vid nästa avläsning. Har den en bokad frakt måste frakten avbokas först, precis som för Fortnox-ordrar.
Fortnox-ordrar fungerar som förut: plocklistan tas bort och kan skapas på nytt från kundordersidan.
Packa: «Fler kartonger? → Skanna» öppnar kameran, inte formuläret3.44.4
2026-10-22
Hade man lagt till ett kolli med «Mått» och tagit bort det, kom formuläret för vikt och mått upp nästa gång man tryckte «Skanna» under «Fler kartonger?», i stället för kameran. Kollit som togs bort lämnade kvar att platsen var «öppen». Nu följer det öppna läget med när ett kolli tas bort, och ett nytt kolli börjar alltid rätt: Skanna och Välj stängt, Mått öppet.
Packa: «Vikt och mått» i samma stil som kollit3.44.3
2026-10-22
Packningen (nya utseendet): när man trycker «Vikt och mått», eller lägger till ett kolli med «Mått», visas samma kort som kollit — kartongbilden, numret och namnet överst i stället för det gamla formuläret med rullgardin.
Kartongen byts med «Byt kartong» (kartongväljaren) eller «Skanna». Vikten skrivs i ett stort fält med kg i fältet, måtten i tre fält (längd × bredd × höjd) med cm.
Ett ensamt kolli: knappen «Använd uträknad vikt» fyller i varorna plus kartongen om man skrivit något annat. Flera kollin: en rad påminner om att väga kartongen.
Antal likadana, kartongetiketten och papperskorgen (ta bort kollit, när det finns fler än ett) finns kvar i kortet. Den gröna knappen «Klar» fäller ihop det.
Packa: mindre sammanfattning överst3.44.2
2026-10-22
Packningen (nya utseendet): den stora bocken, raden «1 av 1 rader · 1 av 1 enheter» och «Packsedeln är utskriven» är nu en enda smal rad överst. Kameran och kartongen syns direkt utan att man behöver rulla. Är något rest blir raden orange som förut.
Standardförpackning — och skärmhöjden på Android3.44.1
2026-10-22
Förpackningar: varje kartong har knappen «Gör till standard». Bara en kan vara standard; trycker man på en annan flyttas stjärnan dit. Spara som vanligt.
Standardkartongen fylls i av sig själv när man packar — Fortnox och webb — med vikten (varorna plus kartongen). Märket «Standard — skanna om du tog en annan» står på kortet. Skannar eller väljer man en annan kartong gäller den.
Räcker inte standarden (för tungt, för många varor, en artikel som inte får plats eller för stor för ett brev) tas nästa kartong i ordningen, precis som förut. I kartongväljaren står «standard» vid den.
Android: skärmhöjden. Regeln för iPhone-felet (3.43) slog till även på Android när appen låg på hemskärmen, och på telefoner som ritar under statusfältet kunde sidan bli statusfältets höjd högre än skärmen och glida när man drog. Nu gäller den bara iPhone och iPad; Android har samma höjd som före 3.43.
Packa: skanna kartongen — och kartongernas streckkoder på A43.44.0
2026-10-22
Packningen (nya utseendet) börjar med kartongen. Kameran är öppen direkt med texten «Rikta mot streckkoden på kartongen», och handskannern fungerar som vanligt. Kameran går att stänga, och telefonen kommer ihåg valet.
Under kameran står förslaget utifrån varorna med knappen «Använd». Under «Ingen streckkod?» finns «Välj kartong», en lista med en bild i rätt proportioner, mått, vad lådan tål och «för tungt», och «Skriv in mått».
När kartongen är skannad eller vald visas kollit som ett kort: kartongen, måtten och vikten (varorna plus kartongen, uträknad av sig själv för ett ensamt kolli). Knapparna är Byt kartong, Vikt och mått och Kartongetikett, som skriver ut vad som ligger i kartongen. Under korten finns «Fler kartonger?» med Skanna, Välj eller Mått.
Webbordrar: knappen heter «Boka frakt» i stället för «Till frakten».
Förpackningar → «Skriv ut streckkoder till kartongerna»: kryssa i kartongerna och skriv ut ett A4 till kontorets skrivare, tio rutor per sida med namn, mått, vad kartongen tål och streckkod. «Visa arket» visar det först. Kartonger utan EAN får en egen kod (KRT-…) som känns igen när man skannar. Länken finns också i kartongväljaren.
CRM: knappen Siffror uppe till höger är borta, eftersom fliken Siffror gör samma sak. På telefonen står Siffror i raden och Uppgifter under «Mer».
Skärmhöjden: remsan längst ned försvann först när man tryckt på kugghjulet, eftersom det laddar om sidan. Nu laddas sidan om av sig själv strax efter start om den är 15–110 px kortare än skärmen, som iPhone-app på hemskärmen, högst två gånger per start. Fyller den skärmen händer ingenting.
Skärmhöjden — omtänkt: en CSS-regel i stället för mätning3.43.0
2026-10-22
Remsan längst ned (iOS 26 som app på hemskärmen) rättas nu som andra gör. Felet (WebKit 301108) gäller bara medan sidan är lägre än skärmen. Därför görs sidan minst skärmhög som app på hemskärmen, och då ger iOS hela höjden så att menyn hamnar vid nederkanten. Det är en ren CSS-regel som gäller från första bildrutan, utan skript som mäter.
Mätningen och utsträckningen från 3.25–3.42 är borttagna. Den gick inte att lita på, och en utsträckt sida hjälper inte eftersom iOS inte ritar menyn nedanför den korta kanten.
Valet «Skärmhöjd» är borta. Raden under Inställningar → Utseende visar bara vad telefonen har (skärm och app i px) och syns bara i appen på hemskärmen.
I Safari, på Android och på datorn ändras ingenting.
Skärmhöjden rättas direkt, utan att gå in på Inställningar3.42.1
2026-10-22
Rättat: höjden ställdes in först när man varit inne på Inställningar. Appen mätte bara vid start, och felet kom ofta en stund efter utan att iOS sa till. Nu mäts det varannan sekund den första halvminuten och sedan var tionde, och dessutom när storleken ändras (också tyst), vid tryck, när appen kommer tillbaka och när skärmen vrids.
Kännetecknet är bredare. Det räcker att appen ligger på hemskärmen på en iPhone och att sidan är 15–110 px kortare än skärmen. Förut krävdes att glappet var exakt statusfältets höjd, och det var det inte alltid. Android och telefoner utan felet rörs inte.
Inställningar → Utseende → Skärmhöjd visar vad appen mätt (skärm och sida i px), så att det går att se om något ändå ser fel ut.
Notiser försvinner när saken är åtgärdad — och skärmhöjden ställer in sig själv3.42.0
2026-10-22
Notiser tas bort av sig själva när det de handlar om är åtgärdat. Det gäller ny order att packa (när den är packad), ny tillverkningsorder (när den är klar), lågt saldo (påfyllt), tulluppgifter som saknas (ifyllda), fraktproblem (löst eller markerat åtgärdat), något som slutat fungera (fungerar igen), röd hemsida (grön igen), kvitto som saknas eller ska granskas, ny återförsäljare att publicera, CRM-uppgifter (gjorda) och budgetvarningar (när månaden är slut).
De försvinner ur listan under klockan och räknas inte längre. På telefonen stängs de när appen öppnas eller kommer tillbaka från bakgrunden, och när nästa notis kommer. En telefon kan inte väckas bara för att ta bort en notis.
Notiser som bara berättar något (veckobrevet, «efterforskning skickad», «fungerar igen») ligger kvar som förut. Äldre notiser städas också: ordrar och tillverkningsordrar efter numret, lågt saldo och nya ordrar efter tiden.
Skärmhöjden: appen känner själv igen iOS-felet där den slutar ovanför nederkanten och rättar det. Felet kommer och går, så det mäts vid start, när appen kommer tillbaka och när skärmen vrids. Inget behöver ställas in, och telefoner utan felet påverkas inte.
Inställningar → Utseende → «Skärmhöjd»: automatisk (förval), fyll alltid skärmen eller rätta aldrig. Det gamla valet «Fyll hela skärmen» är borttaget, och alla telefoner börjar på automatisk.
Budget: fler kategorier och bättre sortering3.41.0
2026-10-22
Fyra nya kategorier före Övrigt: Fordon (bensin, laddning, parkering, trängselskatt, bilförsäkring, leasing, service, däck, besiktning), Telefon, internet och porto, Inventarier och verktyg samt Reparation och underhåll.
Bokföringskontona fördelas finare: 56 → Fordon (förut Resor), 62 → Telefon, internet och porto, 541–545 → Inventarier och verktyg och 55 → Reparation och underhåll (förut Kontor och drift).
Ett par hundra vanliga motparter känns igen direkt, utan AI: bensinstationer, parkering, teleoperatörer, programtjänster, annonsplattformar, fraktbolag, hotell och resor, elbolag, banker och försäkringar, byggvaruhus med mera. Raden visar «känd motpart».
AI:n sorterar bättre. Den får se hur ni själva sorterat (facit), kontots namn och tydligare regler (t.ex. bensin är Fordon, inte Resor).
Allt som inte flyttats för hand sorteras om en gång med de nya kategorierna, och AI:ns gamla gissningar frågas om. Det ni flyttat själva rörs inte. Tryck «Uppdatera» under Budget efter uppdateringen, så sorterar AI:n resten.
Plocklistans gräns som inställning — och aktiveringar räknas inte i budgeten3.40.1
2026-10-22
Inställningar → Skrivare → «Plocklistan på papper»: välj från hur många olika artiklar plocklistan skrivs ut av sig själv. Standard är 4, och 1 betyder alltid papper.
Budget: när en kostnad flyttas till en anläggningstillgång (aktivering när avskrivningarna börjar: debet 12xx, kredit på kostnadskontot) räknas krediten inte längre som en negativ utgift. Den drog ned månaden den bokfördes, fast pengarna gick ut när saken köptes.
Raden finns kvar i utgiftslistan med texten «Aktivering → konto 1220, räknas inte» och går att räkna ändå med «Räkna igen». Ett eget val («Räkna» eller «Räkna inte») står kvar efter nästa körning.
Själva avskrivningarna (78xx) har aldrig räknats som utgifter i budgeten.
Plocklistan på papper bara från fyra olika artiklar3.40.0
2026-10-22
Plocklistan skrivs ut av sig själv bara när ordern har fyra eller fler olika artiklar. Det gäller både Fortnox- och webbordrar. Samma artikel på två rader räknas en gång. Färre artiklar plockas från telefonen.
Behövs papper ändå: Plock → tryck på ordern → «Skriv ut plocklista». Knappen «Plocklista» på ordersidan skriver också ut som förut.
Ändras en order som redan fått en plocklista på papper skrivs en ny ut, även om den har färre än fyra artiklar. Annars ligger den gamla, nu felaktiga, kvar på bordet.
Budget: förändring av lager räknas inte som utgift3.39.1
2026-10-22
«Spenderat i september» visade 27 527 kr fast kategorierna tillsammans var 441 tkr. En kategori gick kraftigt back och drogs av från summan, men syntes inte i stapeln. Det var troligen en lagerökning på 49xx-kontona.
Konto 4900–4999 (förändring av lager) räknas inte längre som utgift. Det är en bokslutspost och inte pengar som gått ut: inköpen räknas redan på 40xx när varorna köps. Rader som redan lästs in tas bort vid nästa uppdatering (tryck «Uppdatera» under Budget).
Går en kategori back (kredit, återföring eller kreditfaktura) syns det nu i en ruta under stapeln, med beloppet och en knapp som öppnar kategorin. Rutan finns under både Månad och Kvartal/Helår. I «Spenderat» står det när summan är netto efter avdrag.
Boka frakten direkt — och webbordrarna kommer in snabbare3.39.0
2026-10-22
Webbordrar där kunden valt frakt: knappen i packningen heter «Boka frakten». Ett tryck avslutar rundan, skriver packsedeln, hämtar priset och bokar kundens val. Man hamnar direkt på kvittot, utan att gå via fraktsidan.
Det bokas bara när allt är klart: kundens val känns igen och finns bland alternativen, det har ett pris, kollina har vikt och mått, adressen är hel (med telefon och e-post för FedEx), tulluppgifterna finns och FedEx föreslår ingen adressändring. Är något fel visas fraktsidan som vanligt, med skälet, och man väljer själv.
Ordrar utan fraktval (Fortnox-ordrar, DHL, okända fraktsätt) går till fraktsidan som förut. Under knappen står varför det inte går att boka direkt. «Välj frakt själv» finns kvar för den som vill byta.
Kvittot visar vad som bokades och vad det kostade («Kostade 312,50 kr»), även för webbordrar som inte får någon fraktrad i Fortnox.
Webbordrar hämtas från Shopify varannan minut dagtid i stället för var tionde. Kommer flera aviseringar från Shopify inom en minut (skapad, betald …) hämtas den sista vid nästa körning, i stället för att vänta tills någon trycker «Leta efter nya ordrar».
Prognos — en egen sida, mer detaljerad3.38.0
2026-10-22
Siffror → Prognos: hur året troligen slutar, med ett spann (låg–hög), hur stor del av målet, mot i fjol och hur prognosen ändrats sedan för en vecka sedan.
«Vägen till målet»: sålt, ordrar i hand och prognos för resten i en stapel, med spannet och målet utmärkta.
Nyckeltal: sålt hittills, ordrar i hand, säkert, behövs per månad för att nå målet och viktat värde på öppna affärer (de står för sig, utanför prognosen).
Månad för månad: sålt, ordrar och prognos staplade mot målet (eller i fjol), och en tabell med spann och jämförelse mot i fjol per månad. Den ackumulerade kurvan visar trolig, låg, hög, målet och i fjol.
Prognosen per varumärke, land och största kunderna. Var och en räknas med sin egen trend när underlaget räcker, och delarna går ihop med totalen.
Ordrarna i hand per leveransmånad, och resultatet för året: rörelseresultat, resultat efter finansiella poster och nollpunkten.
Prognosen över tid: en mätpunkt sparas per dag (när sidan öppnas och när budgeten körs), så att det syns om prognosen går upp eller ned.
Rutan Prognos på Översikt leder hit. Du kan välja i fjol, i år eller nästa år.
Rättat: staplarna på Siffror → Översikt var helt svarta, så kategorierna inte syntes. Diagramfärgerna fanns bara inne i de andra flikarna.
Plocka flera ordrar samtidigt — och ingen plockar samma order3.37.0
2026-10-22
Plock → «Plocka flera samtidigt»: bocka i ordrarna och tryck «Plocka N ordrar». En lista, en rad per artikel i plockordningen, och under varje artikel vilka ordrar som ska ha hur många.
Ordrarna heter 1, 2, 3 … med var sin färg, i den ordning de valdes — samma nummer i listan, på varje artikel och när man skannar. Ordernummer och kund står bredvid.
Skanna varan: lådorna visas stort («Lägg i 1: 2 st, 3: 3 st») och artikeln bockas av för alla ordrarna. Annat antal och Finns inte går per order.
När en order är färdigplockad skrivs packsedeln ut, som vanligt. När allt är plockat packas och bokas ordrarna en och en.
Låset: en order plockas av en person i taget — också när man plockar en order. Öppnar någon annan den står det vem som plockar, med «Ta över» och «Tillbaka». Servern nekar avbockningar från någon annan än den som plockar. Listan visar «plockas av …». Låset släpper tio minuter efter senaste handgreppet, eller när ordern är klar.
Skannerns Enter trycker inte längre på knappen som har fokus i den samlade plockningen.
Siffror — all statistik på ett ställe3.36.0
2026-10-22
Ny sida Siffror (knappen överst i CRM): Översikt, Försäljning, Kunder & affärer, Resultat, Budget, Frakt & tull och Avstämning. Det som låg under CRM → Statistik, CRM → Budget och Fraktstatistik finns här — ingenting är borttaget.
Översikt: försäljningen mot målet och mot i fjol, prognosen för året, rörelseresultatet, månadens utgifter, kunderna och de öppna affärerna — varje ruta leder till detaljerna. Under «Att titta på» står det som behöver göras: utgifter över taket, utgifter utan kategori, obokfört och gammal bokföring.
Samma periodväljare för Försäljning, Kunder och Avstämning, och den står i adressen: byter man flik behåller man perioden, och tillbaka landar rätt. Budgetens delar (Översikt, Året, Utgifter, Förslag) och Månad/Kvartal/Helår står också i adressen.
Ett ord, en betydelse: «Försäljning» är det fakturerade utan moms (varor och fraktrader) överallt. Försäljningen per kanal heter «Fakturerat inkl. fraktavgift» och förklarar varför den är något högre. Texter som sa «utan frakt» om samma siffra är rättade. Resultatets jämförelse heter «Resultat år mot år».
Avstämning: försäljningen mot bokföringen och kostnaderna mot Fortnox på ett ställe (förut på tre).
Gamla länkar och notiser (CRM → Statistik, CRM → Budget, /statistik) öppnar rätt flik under Siffror. Utan CRM-rollen syns Frakt & tull som förut.
Budgeten: leverantörsfakturor som registrerats men inte bokförts räknas nu — preliminärt, utan moms, ur fakturans egna konteringsrader — tills de bokförs. Förut fanns de ingenstans när bokföringen var källan, och en månad som inte var färdigbokförd fick för låga utgifter (september). Helt betalda fakturor räknas inte (kontantmetoden: redan bokförda via betalningen).
Året visar hur mycket av utgifterna som inte är bokfört än, per månad, och när bokföringen lästes senast.
Genomgång: text utanför rutor3.35.3
2026-10-22
Återförsäljare: kundraderna var trasiga — namn, ort och länkar trycktes ihop i smala spalter och klipptes. Stilen för affärens artikelrader (samma klassnamn) skrev över dem. Nu har de var sin.
Startsidan: raden «x artiklar valda» när man markerar etiketter blev ett tvåkolumnsrutnät av samma skäl (plockvyns etikettknappar). Rättat.
Affären i CRM: alla steg syns — Vunnen och Förlorad gömde sig till höger utanför rutan.
Tabeller i Statistik (per kanal, per dag) och DDP (per period, per land) och orderinfon på Plock rullar i sidled i stället för att gå utanför kortet på telefonen.
Rader med etikett och värde (Inställningar, Återförsäljare, Efterforskning): värdet trycks inte längre ihop under ett ords bredd och går inte utanför rutan.
Långa ord bryts i stället för att gå utanför rutan; kortrubriker med väljare bredvid bryts på två rader när det behövs.
EAN: «Nästa»-numret får plats.
Fraktstatistik: fliken DDP och frakt kunde ritas om från början när sidan öppnades (React-fel 418). Fliken står nu också i adressen (?vy=ddp).
Plock: fraktalternativen står i en kolumn med luft mellan.
Manuell frakt blir inte dubbel3.35.2
2026-10-22
Gick man tillbaka från frakten låg formuläret för manuell frakt kvar ifyllt, och ett tryck till på Skapa gav en dubblett (M-25 och M-26 för samma kartong). Ett dubbeltryck gjorde samma sak. Nu bär formuläret en engångsnyckel: samma formulär blir alltid samma runda.
Tillbaka från frakten går till listan, inte till det ifyllda formuläret.
Plockningen tydligare, FedEx frågar mindre3.35.1
2026-10-22
Antalet att plocka står stort i en egen ruta — grön när det är mer än ett.
Kameraknappen i plockningen är en riktig knapp, större och lättare att träffa.
Plock: knappen Skanna plocklista låg ovanpå Avbryt i rutan «Ta bort ur listan?». Den göms nu när en ruta eller kameran är öppen.
FedEx adressförslag öppnas av sig själv bara när något saknas eller verkligen skiljer — annat husnummer, annan ort, annat postnummer eller annan delstat. Versaler, förkortningar (PKWY, STR) och ZIP+4 frågar inte längre; de syns under «visa» för den som vill.
Raden «Gamla utseendet» är borta ur menyerna. Bytet finns kvar under Inställningar → Utseende.
Kameran: väljer rätt bakkamera även på en iPhone på svenska, och stänger den första kameran innan den andra öppnas — det gav ibland en låg upplösning och suddig bild. Kamera och upplösning står längst ned i kamerarutan.
Plockningen: antalet hamnade under artikelnamnet i stället för bredvid, för att en stilregel från CRM-ärendena skrev över plockvyns. De har nu var sin.
Boka i FedEx Pak eller Envelope3.35.0
2026-10-22
Frakten kan bokas i FedEx eget emballage: FedEx Pak (högst 2,5 kg per kolli) eller FedEx Envelope (högst 0,5 kg). Egen kartong är förvald och fungerar precis som förut.
Välj under ⋯ → Förpackning, eller tryck på märket «Förpackning» i fraktvyn. I gamla utseendet står valet i viktrutan. Priserna hämtas om direkt för förpackningen, och listan visar bara de tjänster FedEx godkänner för den (Pak och Envelope går oftast bara med Priority).
Väger ett kolli för mycket för påsen säger appen det och bokar inte. Är varorna värda mer än 500 USD varnar den — FedEx tar inte det i Pak eller Envelope.
Valet gäller rundan och går inte att ändra efter bokning. Returer går alltid i egen kartong.
Mer luft, och Klart flyter på kvittot3.34.2
2026-10-22
Rutor, knappar och texter låg kloss på varandra på många sidor. Nu en jämn rytm i hela appen: luft mellan kort, mellan knappar, före rubrikraderna och före den stora knappen, och lite mer luft i korten och mellan raderna.
Kvittot efter bokningen: Klart flyter längst ned — ingen rullning till botten för att komma vidare.
Webbordrar: Shipmondo och notis vid ny order3.34.1
2026-10-22
Webbordrar som skickas härifrån markeras som skickade i Shipmondo också — de låg kvar som opackade där. Görs direkt efter bokningen; det som inte gick (eller skickades före den här versionen, senaste två veckorna) tas av avläsningen, högst tre försök. Väntar en rest på nästa omgång markeras ordern när resten skickas. Kräver SHIPMONDO_API_USER och SHIPMONDO_API_KEY i Vercel; Inställningar → Frakt → Shipmondo visar om de finns och har Prova anslutningen.
Notisen «Ny order att packa» kommer nu för alla ordrar — också webbshoppens, med butikens nummer (#2318). Förut bara Fortnox-ordrar.
Kvittot visar om ordern markerats i Shipmondo.
Plock och frakt: nytt utseende3.34.0
2026-10-22
Plock: en stor knapp — Skanna plocklista. Leta efter nya ordrar, Boka upphämtning, Boka frakt manuellt, Skrivarkön, Kom inte ordern hit? och Ta bort opåbörjade ligger under +. Flikarna heter Plocka, Boka, Bokat och Översikt.
Plockningen: Plockad är den stora knappen, med Annat antal och Finns inte under (Finns inte öppnar rutan med 0 — inget händer förrän du bekräftar). Kartongetikett, Etikett per kolli, Läs om ordern och Avsluta och skriv ut ligger under ⋯.
Packningen: ett kolli med vikt och mått visas ihopfällt — Ändra fäller ut samma kort som förut. Innehållsetikett, kartongetikett per kolli, packsedeln igen och Öppna rundan igen ligger under ⋯.
Frakten: adressen ihopfälld när inget är fel (annars hela kortet med varningarna), kolli/vikt och tullen som märken, och bara Boka i foten. Tull DDP/DAP, Ändra adressen, Vikt och mått, Uppdatera priser, Ändra plockningen och Boka senare ligger under ⋯.
Kvittot: en bock, spårningsnumret (tryck för att kopiera) och vad som hänt — etiketter, handelsfaktura, Shopify eller Fortnox. Detaljerna fälls ihop när allt gick som det skulle; varningar står alltid framme.
Plock → Bokat: väntar FedEx-sändningar på en bil i dag står det överst, med Beställ bil — kollin och vikt fylls i och rundorna kopplas till bilen. Är bilen redan beställd står det i stället.
Vill du ha det gamla tillbaka: Inställningar → Utseende → Plock och frakt, eller Gamla utseendet längst ned i varje meny. Det gäller alla enheter, och båda utseendena gör exakt samma saker.
Upphämtning: Utrikes från början3.33.9
2026-10-22
Boka upphämtning står alltid på Utrikes från början — också när man kommer från en order inom Sverige. Utrikes har den tidigaste sista tiden och håller för båda. Inrikes väljs för hand.
Frakt och tull: genomgång med prov av hela kedjan3.33.8
2026-10-21
Rättat: VOEC-numret följde aldrig med FedEx-bokningen till norska privatkunder från webbshoppen — Norge kunde ta ut momsen en gång till i tullen, och med DDP betalar vi den. Nu följer det med (pappersfakturan hade det redan). Webbordrar till företag deklareras som företagsköp.
Rättat: skickades en webborder i två omgångar markerades hela ordern som skickad i Shopify redan vid första kartongen, och nästa avläsning tog bort restrundan. Nu markeras bara det som ligger i kartongen; resten står kvar i butiken och får sitt eget spårningsnummer när den skickas.
Rättat: en webborder som avbokas och bokas om behöll det gamla spårningsnumret i Shopify. Nu byts numret på markeringen och kunden får ett mejl med det nya.
Nytt prov (verktyg/fraktkedjeprov.mjs) kör hela vägen — webborder in, plock, packsedel, kolli, bokning hos FedEx och PostNord, handelsfaktura, Shopify och Fortnox — och granskar tullvärde, DDP, VOEC, vikt och mått i varje anrop.
Plock och frakt: mindre på skärmen3.33.7
2026-10-21
Plockningen: Kartongetikett, Etikett per kolli och förklaringen om restlistan ligger hopfällda under «Etiketter och mer».
Kollina: summeringen är en rad, rutan med den beräknade vikten syns bara när vikten inte redan står på kollit, ett ensamt kolli visar ingen egen kartongetikett-knapp, förklaringen är en mening, och innehållsetiketten och etiketter per kolli ligger under «Fler utskrifter». Klart-knappen syns utan att man rullar.
Frakten: Sendify (DHL, DSV, Schenker …) ligger hopfällt under «Fler fraktbolag». På webbordrar med kundens val förvalt syns bara det valda — «Byt fraktsätt» visar alla.
Handelsfakturan för webbordrar: rätt skäl och kundens pris3.33.6
2026-10-21
Rättat: «Reason for export» på webbordrarnas handelsfaktura visade rundans etikett («Webbshoppen · US/CA Fedex …») — nu «Sale of goods».
Rättat: tullvärdet på webbordrar var butikens katalogpris, inte vad kunden betalade (order #2309: 194,40 kr i stället för 207,82 kr per styck). Nu priset på orderraden — utan moms och efter rabatt. Öppna webbordrar får priset vid nästa avläsning.
Packsedeln när allt är plockat, vikten ifylld och standardmått för webbordrar3.33.5
2026-10-21
Packsedeln skrivs ut direkt när sista raden plockats — innan vikt och mått anges — så att den ligger i kartongen när den packas. En gång per runda; Klart skriver då bara ut restlistan om det blev någon.
Den beräknade vikten (ur artiklarna) fylls i på kollit av sig själv, på alla ordrar. Saknar någon artikel vikt vägs kollit som förut.
Webbordrar får standardmåtten 26 × 13 × 3 cm (längd × bredd × höjd) ifyllda. Står regler för webbordrar på Förpackningar gäller de i stället.
Orderrutan i plocklistan fryser inte3.33.4
2026-10-21
Rättat: rutan som visar ordern (ⓘ under Plock) frös efter en stund på iPhone. Den låg inne i sidans rullande yta, och Safari lät rullningen i rutan fastna. Nu ligger den ovanpå allt, sidan bakom står still medan den är öppen, och Esc stänger den.
Avslutad runda går att öppna igen3.33.3
2026-10-21
En runda som står som klar kan öppnas igen — «Öppna rundan igen» på artikeln och efter Klart. Den står som pågående, avbockningarna går att ångra och kollina står kvar. Det som blev kvar på nästa omgång tas bort (om ingen börjat på den) och kommer tillbaka när du trycker Klart. Går inte när frakten är bokad — avboka den först.
Resten av en webborder (omgång 2) får kundens fraktval och DDP med sig.
Ordern i plocklistan utan plockläge, plocklistan på papper — och webbordrar DDP3.33.2
2026-10-21
Plock: knappen ⓘ på en order visar den utan att gå in i plockläget — kund, adress, raderna med vad som plockats, frakten och referenserna. Där finns «Skriv ut plocklista» (även för webbordrar), «Börja plocka» och kundordern.
Webbordrar bokas DDP — vi betalar tull och moms. Förvalt på alla från Shopify (även de öppna som inte bokats), och går att ändra på frakten före bokningen.
Ingen fraktkostnad i Fortnox för webbordrar3.33.1
2026-10-21
Webbordrar får ingen fraktrad i Fortnox när frakten bokas i appen — kunden betalade frakten i webbshoppen. Gäller också en Fortnox-order med webbshoppens nummer («#2213») i Ert ordernummer. Kvittot efter bokningen säger det.
PostNord Mailbox (brev utrikes) tar högst 2 kg — tyngre visas inte, och förpackningen väljs därefter.
Webbordrar: kundens frakt förvald, förpackningen vald och plocklistan utskriven — för att boka i appen i stället för Shipmondo3.33.0
2026-10-21
Plocklistan för en ny webborder skrivs ut av sig själv när ordern kommer in, som Fortnox-ordrarnas, med kundens fraktval på papperet.
Kundens fraktval i Shopify står på frakten och är förvalt: FedEx-tjänsterna, PostNord varubrev, ombud och Mailbox, och «Book your own freight». Går valet inte att boka säger appen varför, och man väljer en annan.
Förpackningen väljs av sig själv och vikten fylls i (varorna plus förpackningen): varubrevet först, nästa när vikten, antalet eller en artikel inte får plats. Reglerna ställs in på Förpackningar (ordning, högst antal varor, artiklar som inte får plats). Saknar någon artikel vikt vägs kollit.
PostNord MyPack Collect (ombud) inom Sverige och till Danmark och Finland, och PostNord Mailbox utrikes inom EU — de visas när ett avtalspris står under Inställningar → Frakt, Mailbox med tjänstekoden ur avtalet. Norge och Storbritannien går med FedEx (de kräver tullpapper).
Hela fraktvalet sparas på rundan (förut klipptes det efter 46 tecken).
Försäljning: artiklar, kunder, CSV och stapelval — och varje siffra kontrollräknad3.32.0
2026-10-21
Försäljning per kanal har tre listor: Fakturor, Artiklar (antal, försäljning per kanal, mot perioden innan, marginal) och Kunder (webbshop företag och Fortnox direkt ihop på organisationsnumret, annars kundnumret). Tryck på en kund för dess fakturor.
Exportera CSV: listan du ser, med valen du gjort — för Excel på svenska (semikolon, decimalkomma).
Tryck på en stapel för fakturorna den dagen, veckan eller månaden (igen: alla). Den streckade linjen är perioden innan.
Kanal, land, sökord, stapel, kund och lista står i adressen — en länk eller en omladdning visar samma sak.
Kanalen går att rätta för hand på fakturan, och detaljen säger varför den fick sin kanal. Webbshop kräver nu att kund eller belopp stämmer med webbshopsordern: en direktkunds eget ordernummer som råkar vara ett webbshopsnummer, eller samma belopp samma vecka från en annan kund, blev förut «webbshop».
Rättat: «i år» jämfördes med hela förra året — nu med samma del av förra året.
Rättat: rabattrader räknades som 0 kr (de drar nu av), styckpriser avrundades till hela ören före multiplikationen, och med «priser inkl. moms» räknades frakten och fakturaavgiften med moms. Raderna prövas nu mot fakturans egen summa exkl. moms. Fakturaavgiften räknas som försäljning.
Rättat: en faktura där självkostnaden saknas i Fortnox visade TG 100 % — nu «TG –», och den räknas inte i marginalen och snitten. Krediternas varukostnad räknas, och snittet per order räknas utan krediter.
Fakturornas rader läses om i bakgrunden (någon timme) för rabatterna och momsen — siffrorna kan ändras lite under tiden.
Affärens mejl syns i loggen — och kundletaren hittar fler3.31.1
2026-10-21
Rättat: mejl som skickades från kundletaren syntes inte på affären, och affären stod kvar på Ny. Nu står affärens mejl i loggen — skickade från appen och svar ur brevlådan till leadens adress — med länk till ärendet. Ett mejlat lead går till Kontakt av sig självt, och «Kontakta och berätta om Texsolv» bockas av. Leads som redan mejlats rättas av sig själva.
Affären har en «Mejla»-knapp i loggen: till leaden, kunden eller kontaktpersonerna. Mejlet hamnar i loggen; en ny affär går till Kontakt.
Kundletaren: «Leta nu» ligger direkt i Möjliga kunder (inte under Inställningar). Välj land och 5, 10 eller 15 förslag; utan land tas det land som har minst förslag hittills.
Kundletaren hittar fler: AI:n ombeds om fler än som behövs och söker bredare (vävstugor, hemslöjd, garnbutiker med vävavdelning); blir det för få frågar den igen, upp till tre rundor. Alla som klarar kontrollen sparas.
Webbplatser som stänger ute robotar (svarar 403 och liknande) sorterades bort som «svarar inte» — nu blir de förslag, med en notering om att Texsolv inte kunde kontrolleras där.
Efter «Leta nu» syns hur många som hittades och vilka som sorterades bort, och varför.
Försäljning: täckningsgrad per order och snitt per kanal — och företagen i webbshoppen räknas rätt3.31.0
2026-10-20
Rättat: «Webbshop företag» visade 0 — företag kändes bara igen på webbshoppens uppgifter (de senaste 60 dagarna). Nu också på kundkortet i Fortnox (företagskund, organisations- eller momsnummer), så det blir rätt bakåt i tiden.
CRM → Statistik, Försäljning per kanal: varje faktura visar täckningsgraden. Tryck på den för varukostnaden (självkostnaden i Fortnox), frakten vi betalade (FedEx fakturor, annars priset när frakten bokades i appen) och tullen — kunden betalade mot vad FedEx tog. GB och Norge räknas utan tull.
Snitt per kanal: ordervärde, marginal på varorna, täckningsbidrag och täckningsgrad efter frakt och tull, och fraktkostnad per order — webbshop privat, företag och Fortnox direkt bredvid varandra.
Webbshoppens ordrar hämtas också när statistiken öppnas (högst var 30:e minut) — schemat hann inte alltid.
Rättat: sökrutan i mejlen visade två ramar av olika storlek när den var markerad.
Alla automatiska prov går igenom igen (77 av 77)3.30.1
2026-10-20
Sju prov hade fallerat sedan länge. Genomgånget ett och ett — inget av dem var ett fel i appen, men proven var föråldrade eller berodde på saker utanför dem:
Webbshoppens plockrundor: låtsasbutiken som provet behöver fanns inte i repot (provet gick mot riktiga Shopify). Nu finns den (verktyg/latsbutik.mjs) — alla 38 kontroller går igenom.
Säkerhetskopian: provet hade en fast lista över bildtabellerna; nu kontrolleras att varje tabell med bilder kommer med (utom de tillfälliga cacharna). Bilderna — artikelbilder, plockbilder och satspapper — säkerhetskopieras.
Hemsidorna, kundnumren, budgetprognosen och kvittonotiserna: proven väntade sig gamla texter och inställningar (staging-grenen, «Ogiltigt kundnummer») eller data som andra prov tagit bort.
DDP och frakt: täckningsbidrag per order, fri frakt och rabatter — GB och Norge nollade3.30.0
2026-10-20
Varje order visar täckningsbidraget och täckningsgraden: det kunden betalade för varor, frakt och tull minus självkostnaden i Fortnox och det FedEx tog. Tryck på ordern för vad kunden köpte (ur kundfakturan — för webbordrar fakturan Synka+ gjorde).
Fri frakt är en rabatt ni ger: perioden visar hur många ordrar och vad FedEx tog för dem, och «Räkna bort fri frakt» tar bort den ur frakt-diffen. Rabatten i kassan (webbshoppens rabattkoder) visas för sig.
GB och Norge: momsen betalas direkt till deras skatteverk — tullen jämförs inte där (plus minus noll).
Mer statistik: täckningsbidraget per period, per land i perioden, och filtret «Fri frakt».
Utkast till svar i din stil — klara när du öppnar mejlet3.29.0
2026-10-20
Mejl som behöver svar får ett utkast i bakgrunden, skrivet som den som ska svara skriver (ärendets ansvarige, annars den som äger brevlådan). Det står i svarsrutan när ärendet öppnas — läs, ändra, skicka. Inget skickas av sig självt.
Stilen lärs av era skickade svar (ur appen och brevlådornas Skickat): AI:n beskriver den en gång i veckan — hälsning, avslutning och signatur per språk, ton, längd, vanliga fraser — och varje utkast får tre av era riktiga svar på liknande mejl som förebild. Det ni skickar blir nya exempel.
Mejl → Inställningar → Skrivstil: läs vad AI:n lärt sig, lägg till egna regler («skriv du, aldrig ni») och lär om när ni vill.
Inkorgen visar «utkast» på ärenden där ett ligger klart. «Föreslå svar» skriver nu i din stil.
Faktan kommer som förut ur ordrar, spårning och fakturor — stilen styr hur det låter, aldrig vad som lovas. Modellen är Sonnet (CRM_SVAR_MODELL i Vercel).
Rättat: meddelanden från webbshoppens kontaktformulär sorterades som Shopifys aviseringar (avsändaren är mailer@shopify.com) och behövde «inget svar». Nu är kunden avsändaren — svaret går till kunden — och de sorteras som vanliga frågor. De som redan kommit sorteras om.
Försäljningen per kanal — webbshop privat, webbshop företag och Fortnox direkt, utan dubbletter3.28.0
2026-10-20
CRM → Statistik: försäljningen exklusive moms och inklusive frakt per kanal, mot perioden innan, per dag/vecka/månad och per land. Alla fakturor i Fortnox räknas en gång — webbshoppens ordrar blir fakturor där (Synka+), så inget räknas dubbelt.
Fakturor och ordrar: sök och filtrera på kanal och land, tryck för raderna, beloppen (varor, frakt, utländsk moms/tull), webbshoppens order och fakturans PDF.
Avstämning mot webbshoppen: ordrar som inte blivit fakturor, fakturor som kopplats på beloppet, fakturor i annan valuta och summan per dag.
Rättat: utländsk moms och tull som webbshoppen lägger på fakturan (t.ex. «VAT CA State – Ontario», konto 2655, och tull på 3531) räknades som försäljning i statistiken, budgeten och kundsidorna. Nu avgör radens konto. Fakturorna läses om i bakgrunden de närmaste timmarna.
Perioden «7 dagar», och perioden står i adressen. Veckobrevets CRM-notis börjar med veckans försäljning och länkar till statistiken.
DDP och frakt: Fortnox «Too Many Requests» rättat — och det som ströps läses vid nästa körning3.27.1
2026-10-20
Rättat: anrop till Fortnox som startade samtidigt gick iväg i klump, och Fortnox svarade 429 «Too Many Requests» (39 av fakturorna). Nu går de med jämna mellanrum, och appen väntar och försöker igen om Fortnox ändå ber den vänta.
Det som ströps provas igen vid nästa läsning (varje timme), inte om två dygn.
En fil som varken finns i Fortnox arkiv eller inkorg sägs i klartext.
Rättat: två fakturor som stod som «läses om ur texten» fastnade när mejlet de kom i inte längre fanns — de står nu kvar som lästa.
DDP och frakt: FedEx fakturor läses ur texten — utan AI, på sekunder — och kan laddas upp3.27.0
2026-10-20
FedEx fraktfaktura och faktura för tullavgifter och skatter läses direkt ur PDF:ens text: fraktsedel, referens (#2186 för webbordern, ordernumret för en order bokad i appen), land och avgifterna per sändning. Summan stäms av mot fakturans belopp.
AI:n används bara som reserv (skannad PDF eller en ovanlig uppställning) — nyckeln behövs inte längre för de vanliga fakturorna.
Nytt: «Ladda upp PDF» — flera FedEx-PDF:er åt gången, t.ex. ur FedEx Billing Online. Samma faktura räknas en gång.
Mejl som inte längre finns kvar i brevlådan räknas inte som fel. Det AI:n läst tidigare läses om ur texten.
DDP och frakt: FedEx-fakturornas PDF hämtas ur Fortnox inkorg — och mejlen läses först3.26.2
2026-10-20
Rättat: alla PDF:er på FedEx leverantörsfakturor gick fel med «Kan inte hitta resursen» — de ligger i Fortnox inkorg, inte i arkivet. Nu hämtas de därifrån (kräver behörigheten Inkorg i Fortnox).
FedEx-mejlen (kvitto- och CRM-brevlådorna) läses först, tre fakturor åt gången, och läsningen går varje timme tills allt är läst.
Det som gick fel provas om automatiskt en gång efter uppdateringen.
iPhone: som förut — «Fyll hela skärmen» är ett val · DDP säger vad den hittade3.26.1
2026-10-20
Rättat: menyn längst ned låg halvt under kanten på en del iPhones efter 3.25.1. Appen gör nu som före 3.25.1 på alla telefoner.
Den som har en tom remsa längst ned (iOS 26-felet) slår på «Fyll hela skärmen» under Inställningar → Utseende — gäller bara den telefonen.
DDP och frakt: efter «Läs nya fakturor» står vad som hittades — hur många leverantörsfakturor från FedEx i Fortnox, hur många utan PDF, mejlen från FedEx — och felen i klartext.
FedEx-fakturor läses nu också ur kvittobrevlådorna, och PDF:er som lagts som bilaga på leverantörsfakturan i Fortnox.
Rättat: stora FedEx-fakturor gick fel — AI:n fick bara en minut på sig. Nu får läsningen den tid som finns kvar (flera minuter), och det som gick fel visas i klartext med «Försök igen med dem» (förut provades de först efter två dygn).
DDP och frakt: webbshoppens ordrar — tullen kunden betalade i Shopifys kassa3.26.0
2026-10-20
Webbordrarna räknas nu: tullen, avgifterna och frakten kunden betalade i kassan hämtas ur Shopify och jämförs med FedEx faktura för samma fraktsedel.
Utanför EU räknas också skatten i kassan (t.ex. kanadensisk GST, brittisk VAT) som kundens del av DDP — inom EU är skatten vanlig moms och räknas inte.
Ordrar ur webbshoppen står som «Webbshop» med ordernumret (#2306); B2B-ordrar i Fortnox räknas som förut.
iPhone: menyn längst ned syns hela igen3.25.2
2026-10-20
Rättat: 3.25.1 sträckte ut appen även på iPhones där den redan fyllde skärmen, så menyn hamnade delvis under nederkanten. Nu mäts höjden som sidan faktiskt får, och rättningen används bara när den är för kort.
iPhone: appen på hemskärmen fyller hela skärmen igen3.25.1
2026-10-20
Rättat: på iPhones med iOS 26 slutade appen (på hemskärmen) en bit ovanför skärmens nederkant — menyn låg för högt och en tom remsa syntes längst ned. Felet ligger i iOS: skärmhöjden räknas statusfältet för kort. Appen mäter nu den riktiga höjden och använder den. Telefoner utan felet påverkas inte.
DDP och frakt: vad vi tjänar eller förlorar per order, mot FedEx fakturor3.25.0
2026-10-20
Fraktstatistik → DDP och frakt: per order vad kunden betalade för tull och frakt, mot vad FedEx tog — tull, importmoms, förskottsavgift och frakten. Plus är vinst, minus förlust.
Per månad och per år, med totalen. Tryck på en period för ordrarna; tryck på en order för detaljerna. Filtrera DDP eller förlust.
FedEx fakturor läses av AI:n (Haiku) ur Fortnox leverantörsfakturor och mejlen från FedEx, tre gånger om dagen — eller med «Läs nya fakturor». Samma faktura räknas en gång.
Kundens tullrad hittas på orden (tull, DDP, duty, customs); artikelnummer kan läggas till under «Artiklar på kundfakturan».
Sändningar som inte går att koppla till en order listas för sig.
Next.js 15 och React 19 — inga kända säkerhetshål kvar i paketen3.24.0
2026-10-20
Appen går nu på Next.js 15.5 och React 19. Next 14 hade kända säkerhetshål som inte längre rättas; npm audit visar nu noll.
Två byggverktyg (PostCSS, source-map-js) tvingas till rättade versioner.
Inget ska se annorlunda ut. Varje sida är provad i telefon och dator.
Rättat: en PDF som underlag till en verifikation visas nu direkt i bladet (3.23 visade bara länken).
Transaktionerna bakom resultatet, «Att granska» med AI — och verifikationen med underlaget3.23.0
2026-10-20
Resultat: tryck på ett konto i resultaträkningen (eller ett konto som sticker ut under År mot år) — transaktionerna i år mot förra året, per motpart eller alla.
Tryck på en transaktion: hela verifikationen (debet och kredit) och underlaget ur Fortnox — kvittot eller fakturan som bild eller PDF. Bara administration ser verifikationerna.
Att granska: kostnader de senaste sex månaderna som sticker ut — ny motpart, ovanligt stort belopp, prishöjning, samma belopp två gånger, konton som ökat mycket. Markera «Stämmer» eller «Kolla».
AI:n ger varje post en kort bedömning. Lönekonton skickas aldrig till AI:n.
Appen läser bara bokföringen — inget skrivs, ändras eller tas bort i Fortnox.
Rättat: PDF-bilagor kunde visas som en tom sida efter 3.22.
Säkerheten: genomgång av hela appen — inloggning, roller, kunddata och allt som hämtas utifrån3.22.0
2026-10-19
Inloggningen: koden kan inte längre gissas med många samtidiga försök — varje försök räknas innan koden prövas, och spärren blir dubbelt så lång varje gång. Inloggningskoden står inte längre i mejlets ämne. Tvåsteg utan passkey eller e-post släpper inte längre in.
Sessioner: ett borttaget eller avstängt konto loggas ut direkt på alla enheter. Ny passkey och ny e-post kräver en inloggning som är högst 15 minuter gammal. Fem fel vid byte av kod loggar ut kontot.
Adminkoden (/setup): prövas en i taget med växande väntetid efter fem fel, och skickas aldrig mer i adressen.
Roller: säkerhetskopian, inloggningsloggen, gallringen, skrivaragenterna, mejlinställningarna och efterforskningens adresser kräver Administration. Återförsäljarlistan kräver CRM eller Administration (publicering: Administration eller Hemsidor). Mejlloggen och notishistoriken visar bara det man har rätt att se.
Bilagor och filer: öppnas aldrig som webbsida i appen (skydd mot skadlig kod i en bilaga).
Allt som hämtas utifrån (länkar i kvittomejl, webbshoppar, avregistreringar) kan inte längre nå interna adresser, och Chrome som ritar kvitton kör med webbsäkerheten på.
Säkerhetsrubriker på alla sidor (HTTPS alltid, ingen inbäddning i andra sajter). Nodemailer uppdaterad (säkerhetsfixar). Shopify- och Dropbox-nycklarna krypteras i databasen.
GDPR: mejlloggens text töms efter ett år, notishistoriken efter 90 dagar och inloggningsloggen efter ett år.
Resultaträkningen: kontona visar förra året och förändringen — prognosen säger var målet kommer ifrån3.21.1
2026-10-19
Rättat: när en grupp öppnades i resultaträkningen stod bara streck för förra året och förändringen på kontona — förra årets belopp fanns bara per grupp. Nu står det per konto, och konton som bara användes förra året står med («borta»).
Förändringen säger «ny» när det inte fanns något förra året, «—» när en intäkt blivit kostnad eller tvärtom, och «>+999 %» i stället för jättetal som +90737 %.
Kolumnen för förra året heter samma period som i år, t.ex. «jan–okt 2025».
Året: prognosrutan visar trenden («▲ 23 % mot 2026») och, om det finns, «108 % av målet». Bakom «i» står hur prognosen räknas och var målet kommer ifrån — den sparade budgeten för året (när och av vem, under Budgetförslag).
År mot år: vad som ökat och minskat, med hur mycket, och vad som sticker ut3.21.0
2026-10-19
Budget → Resultat: ny ruta «År mot år». Välj hittills i år, ett helt år eller senaste 12 månaderna mot samma period året före. Rörelseresultatets förändring i en mening, och en brygga från förra årets resultat till årets: hur mycket varje del — nettoomsättning, varor, externa kostnader, personal, avskrivningar — gjort resultatet bättre (grönt) eller sämre (rött), i kronor och procent.
«Gjort resultatet bättre» och «Gjort resultatet sämre»: de konton som sticker ut mest, med belopp före och efter. Små förändringar visas inte (under 10 000 kr eller 5 %), och varukostnaden räknas mot försäljningen så att den inte syns bara för att ni sålt mer. Nya konton och konton som inte används längre för sig.
Färre siffror under Resultat: belopp i tkr och mkr, en rad per jämförelse («▲ 3 % mot 2025»), prognosen som tre tal — försäljning, kostnader, resultat — och avskrivningarna som en rad. Detaljerna finns i resultaträkningen längre ner.
Statistik: samma «År mot år» för försäljningen — totalen, uppdelad på befintliga kunder som köpt mer eller mindre, nya kunder och tappade kunder, och vilka kunder, länder och artiklar som ökat och minskat mest.
Resultat: lägg in kostnader som ska flyttas till avskrivning — plus minus noll för hela året3.20.0
2026-10-19
Budget → Resultat, Avskrivningar: «Flyttas till avskrivning» — lägg in en kostnad som ligger i bokföringen nu men ska bli en tillgång (vad, belopp, antal år, från vilken månad). Prognosen räknar bort kostnaden och lägger på avskrivningen (belopp / år / 12 per månad från startmånaden), och visar hur mycket resultatet förbättras. «Ungefärligt resultat» står med omföringarna, och utan dem bredvid. Bara för prognosen — bokföringen ändras inte.
Plus minus noll gäller nu hela året: försäljningen som behövs för att året ska gå jämnt upp (nollpunkten) och de kostnader utom varor som ryms med prognosens försäljning — mot prognosen, med hur mycket som redan är sålt eller kostat och vad som är kvar resten av året per månad.
Lönsamheten: artiklar sålda i en annan enhet ger inte jättelik varukostnad3.19.1
2026-10-19
Rättat: en spole eller kartong som sålts per meter (t.ex. 10 000 st à 3,35 kr av en artikel med självkostnad per spole) fick självkostnaden per spole × 10 000 — en kund med 78 000 kr i försäljning fick över en miljon i varukostnad och täckningsbidraget blev kraftigt minus.
Nu räknas en fakturarad där priset per styck är under en fjärdedel av artikelns självkostnad utan varukostnad, som en artikel utan självkostnad. En vara som sålts med förlust eller rabatt räknas som vanligt.
Kundsidan visar vilka artiklar det gäller («Utan varukostnad: 159000 (3,35 kr/st, självkostnad … kr)»), och bakom «i» hur stor varukostnaden hade blivit.
Ordrar ej fakturerade efter rabatten — plus minus noll och avskrivningar under Resultat — hela nästa år i prognosen3.19.0
2026-10-19
Rättat: ordrarna som inte fakturerats räknades på appens kopia av orderraderna, och för ordrar med rabatt kunde den ha listpriset — beloppen blev för höga. Nu används orderns nettobelopp i Fortnox (efter rabatt, utan moms och frakt) för varje order. Allt räknas om vid första läsningen; ordrar som inte hunnit läsas står som «inget värde än» tills nästa läsning.
Ordrarna läses också av den schemalagda hämtningen, så att budgeten inte behöver vänta på Fortnox.
Rättat: prognosen för nästa år (2027 under Året) jämförde med årets utfall — november och december, som inte hänt än, blev noll och försvann, och utan klara månader fanns ingen ökning. Nu räknas nästa år på årets prognos (utfall för klara månader, prognos för resten) × årets trend, alla tolv månader.
Budget → Resultat, prognosrutan: «Avskrivningar» — kommande avskrivningar resten av året (per månad), hittills i år och förra året, och resultatet för helåret före och efter avskrivningar (ungefärligt resultat, före bokslut och skatt). Bokas avskrivningarna med samma belopp varje månad räknas resten av året med det beloppet.
Budget → Resultat, prognosrutan: «Plus minus noll» — hur mycket som behöver säljas resten av året för att resultatet ska bli noll (varorna följer med försäljningen), och hur mycket kostnaderna utom varor högst får bli med prognosens försäljning. Båda per månad och mot prognosen.
Kundletaren: «Mejla» med återförsäljarmallen — ordrar ej fakturerade enligt Fortnox egen lista — prognos för helåret under Resultat3.18.0
2026-10-19
Kundletaren: knappen «Mejla» på varje förslag öppnar ett mejl till företaget med mallen «Bli återförsäljare» — svenska till Sverige, engelska annars — med företagets namn, din signatur och länken till ansökan om återförsäljarkonto i webbshoppen. Mallen går att byta i listan och texten att ändra innan du skickar.
När mejlet är skickat står «Mejlat 19 okt av …» med en länk till ärendet på förslaget, och knappen blir «Mejla igen». Svaret hamnar i mejlen som vanligt.
Mallarna «Bli återförsäljare» och «Become a reseller (EN)» finns också under Mallar och brevlådor. Nya färdiga mallar kommer nu in även där de färdiga redan lagts in förut — en mall någon tagit bort kommer inte tillbaka.
Rättat: «Ordrar ej fakturerade» visade 1,1 miljoner när Fortnox sa ungefär 430 000. Appen räknade ordrar utan fakturanummer i sin egen kopia, och fakturanumret följer inte alltid med från Fortnox — fakturerade ordrar stod kvar. Nu läser appen Fortnox egen lista «Ej fakturerade» (högst var 30:e minut) och visar antal och summa både med moms (som i Fortnox) och utan moms (som räknas i prognosen). Ingen gräns på tolv månader längre — samma ordrar som i Fortnox.
Budget → Resultat: ny ruta «Prognos för helåret» — nettoomsättning, kostnader, rörelseresultat och resultat efter finansiella poster för hela året, mot förra året, och ett diagram med rörelseresultatet ackumulerat: bokfört, prognos och förra året. Hur den räknas står bakom «i».
Fler förklaringstexter bakom «i»: Resultat, Spara budget, «Att svara»-datumet och kundregistret.
Mejlen på telefonen: antalet under Alla täcker inte ikonen3.17.1
2026-10-19
På telefonen visar fliken Alla ingen siffra — det är hela arkivet (t.ex. 4 591 mejl), inget som väntar, och den stora siffran täckte ikonen. På datorn står den kvar i vänsterspalten, kortad (4,6k) när den är över tusen.
Prognosen räknar med ordrarna som inte fakturerats — färre förklaringstexter — mejlen: filtret och sorteringen i vänsterspalten — anpassat för iPhone 16 Pro Max — «Inte nu» för kundnummer med bokstäver3.17.0
2026-10-19
Budget → Året: ordrar i Fortnox som inte fakturerats än (de senaste tolv månaderna, inte makulerade) räknas som säkra i prognosen. En månads prognos blir aldrig lägre än det som sålts plus ordrarna med leverans den månaden; passerat leveransdatum räknas till den här månaden.
Prognosrutan visar «säkert» (sålt + ordrar), diagrammet visar ordrarna som lila staplar och en ny ruta listar ordrarna med kund, leverans och belopp.
Förklaringstexterna är borta från sidorna — de som behövs ligger bakom ett litet «i» bredvid rubriken och syns när man trycker. Tomma lägen är kortade till en rad, och undertiteln under CRM och texterna i Mer-menyn är borttagna.
Mejlen på datorn: raden «Visar Info, Shop — ändra» och AI-sorteringens rad är borta ur listan. Brevlådefiltret och sorteringen står i vänsterspalten, sorteringen som en kort rad med «i». På telefonen syns sorteringen bara om något är fel.
Mejlformuläret visar från vilken adress mejlet skickas, kort.
iPhone 16 Pro Max (430 px): ärendets knappar (Svara, Oläst, Radera, Affär) som en rad med ikon över text, större tryckytor på knappar, länkar, flikar och «i», budgetens flikar i två rader med korta namn, förklaringsbubblan längst ner över menyn.
Rättat: «Inte nu», avtalspriser, kundkortet och uppgifter gick inte för kunder vars kundnummer har bokstäver som å, ä, ö eller mellanslag — «Ogiltigt kundnummer.». Nu godtas alla kundnummer Fortnox använder.
Mejlen: mina brevlådor, till vilken adress, avprenumerera och ny layout — budgeten: kvartal och helår, rätt «att använda» — kortare CRM-meny på telefonen3.16.0
2026-10-19
Mina brevlådor: var och en väljer vilka brevlådor som syns i sina Nya och Att svara (och i siffran på CRM-knappen) — Thomas slipper dina, du hans. Tratten bredvid sökrutan. Under Alla och i sökningen finns allt kvar.
Varje mejl visar vilken brevlåda och adress det skickades till (t.ex. «Info · info@texsolv.se»), i listan och i ärendet.
Avprenumerera på nyhetsbrev och reklam med ett tryck: appen använder avsändarens egen avregistrering, som Gmail och Outlook gör — direkt när avsändaren tillåter det, annars med ett mejl eller en länk att öppna.
Mejlsidan omgjord: på datorn en sidopanel som i ett mejlprogram (Nya, Att svara, Mina, Alla, det sorterade och arkivet); på telefonen fem knappar med ikon. Alla knappar har ikoner. Ärendet har en verktygsrad: Svara, Inget svar behövs, Oläst, Avprenumerera, Radera, Gör till affär.
Budget → Översikt: välj Månad, Kvartal eller Helår. Kvartal och helår visar utgifterna per kategori och månad i staplar mot taket, takten, och varje kategori mot periodens tak. Mätarna har ett streck som visar var det borde vara i dag om pengarna gick jämnt.
«Att använda» var för högt (1,1 miljoner i oktober): tak som satts i oktober räknades som om de gällt sedan januari, och januari–september «sparades» till oktober. Nu sparas oanvänt tak bara från månaden taket sattes, och rutan visar vad summan består av.
CRM-menyn på telefonen: Kunder, Mejl, Affärer, Uppgifter och «Mer» (Bevakning, Statistik, Budget) — med ikoner, ingen rullning i sidled.
Statistiken och budgeten: siffror som resultatrapporten, ny del Resultat och fler diagram3.15.0
2026-10-19
Budget → Resultat (ny): resultaträkningen ur bokföringen, månad för månad — samma siffror som Fortnox resultatrapport. Nettoomsättning, kostnaderna per slag, rörelseresultat och resultat efter finansiella poster, mot samma månader förra året. Tryck på en rad för kontona, «Per månad» för alla månader. Diagram: intäkter och kostnader, resultatet per månad med det ackumulerade, och vart pengarna går.
Statistik: «Nettoomsättning (bokförd)» står först — det resultatrapporten visar. Nytt kort «Försäljningen mot bokföringen» med fakturerat och bokfört per månad, vad det bokförda består av per konto, och varför de skiljer sig (frakt och avgifter, webbshop och kassa som bokförs utan faktura, datum).
Fakturor: rader utan artikelnummer men med pris (t.ex. montering, specialbeställningar) hoppades över som textrader och fattades i försäljningen — nu räknas de, som «Övrigt». Frakt och fakturaavgift sparas också. De senaste två årens fakturor läses om i bakgrunden de närmaste timmarna.
Kontroll mot Fortnox jämför nu mot verifikationerna summerade per konto (samma som resultatrapporten), inte mot periodsaldona i SIE 2 som Fortnox inte alltid räknar likadant. Försäljningen samma månad står också där.
Fler diagram: i år mot förra året (ackumulerat och månad för månad), varumärkenas andel, staplar vid de största kunderna, utgifter per kategori och månad, kategoriernas andel och hur långt varje kategori kommit mot sitt tak. Alla med hovring och «Visa som tabell»; varje kategori har samma färg överallt.
Bokföringen läses två år bakåt (förut 13 månader), så att Utgifter och jämförelserna har hela förra året.
Mejl som lästs i brevlådan blir lästa i appen — även arkiverade, och även när det finns många olästa3.14.1
2026-10-19
Ett mejl som arkiverats i Gmail (eller flyttats eller raderats i brevlådan) försvinner ur inkorgen där — appen hittade det inte längre och lät det stå som oläst för alltid. Nu letas det upp i «Alla mail»: är det läst där blir det läst i appen. Är det raderat räknas det som hanterat.
Appen kollade bara de 1 000 nyaste olästa mejlen varje gång. Fanns det fler (nyhetsbrev som ingen öppnar) blev de äldre aldrig kollade. Nu kommer alla i tur, de som kollades längst sedan först, och de senaste 90 dagarna (förut 60).
Genomgång av hela CRM: Gmail-kunders mejl, budgeten när Fortnox strular, gamla affärer, dubbla kunder och mycket smått3.14.0
2026-10-19
Mejl: låg en brevlåda på Gmail (eller Outlook, Hotmail …) räknades hela gmail.com som «vår» domän — mejl från kunder med Gmail sparades då aldrig. Nu räknas bara brevlådans egen adress som vår, och sådana brevlådor läses om en gång från början (inget sparas två gånger).
Budget: om Fortnox bokföring inte svarade en gång räknades kortköp och leverantörsfakturor in en gång till, och «Över budget» kunde skickas fast det inte stämde. Nu väntar budgeten till nästa körning i stället. Avskrivningar och räntor hamnar inte längre i Övrigts tak från budgetförslaget.
Statistik, prognos och lönsamhet: en rabatt- eller returrad på en vanlig faktura räknades som försäljning — nu dras den av, som i återförsäljarlistan.
Affärer: stängda affärer äldre än 90 dagar försvinner ur pipelinen (de stod kvar för alltid). Två snabba tryck på «Skapa kunden» kan inte längre skapa två kunder i Fortnox. Det du skrivit i en affär men inte sparat finns kvar när du lägger till en anteckning eller byter steg. Offerterna kollas i Fortnox i tur och ordning, så att även de nyaste blir «vunnen» när de blir order.
Radera från ett ärende ger samma «Ångra» i inkorgen som i listan. Inkorgen visar aldrig en annan fliks svar när man byter snabbt, och AI-sorteringens rad står kvar efter «Visa fler».
Bekräftelse innan en utgift tas bort och innan kontaktpersoner slås ihop. «Inte nu» på «Snart dags att beställa» tystar inte längre varningen om kunden sedan inte beställer.
Kundletaren förstår «Norge» lika väl som «NO». Den som inte är admin ser inte längre «Ingen brevlåda att läsa än» när brevlådorna finns. Synken av kundregistret säger hur många som hämtades totalt, och en avbruten ändringsläsning fortsätter där den slutade.
Datum och tider i svensk tid överallt (nya utgifter, månadsväljarna, offertens giltighet, mejltider, uppgifter som förfaller i dag). Filtren i kundlistan på en rad på datorn, två och två på telefonen.
Säkerhet: appen kan inte skriva något i Fortnox bokföring (verifikationer, konton, räkenskapsår) — spärrat i koden, oavsett behörighet. Den schemalagda hämtningen håller sig inom sina fem minuter.
CRM fas 9: rabattsatsen från Fortnox, avtalspriser per kund och lönsamhet efter varukostnad och frakt3.13.0
2026-10-19
Kundens rabattsats och prislista från kundkortet i Fortnox står nu på kundsidan (kundkortet och nya kortet «Priser och rabatt»), i CRM-kundlistan («15 % rabatt») och i exporten. De läses när kundsidan öppnas, och i bakgrunden en gång i veckan för alla som handlat senaste två åren.
Avtalspriser per kund och artikel: ett fast pris (med valuta) eller en rabatt i procent, med slutdatum och notering. «Går ut …» syns i orange 30 dagar innan och en uppgift skapas — «Avtalspriset för … går ut — förläng eller säg till kunden» — som förfaller två veckor före slutet. Avtalspriserna bor i appen, inte i Fortnox.
«Det kunden betalat»: senaste priset per artikel ur fakturorna (24 mån), med antal senaste året — «Avtala» gör det till ett avtalspris med ett tryck.
Lönsamhet: på kundsidan täckningsbidraget senaste 12 månaderna (försäljning − varukostnad − frakten vi betalat), och i CRM → Statistik «Lönsamhet per kund» med de som ger mest och de med lägst andel. Varukostnaden är artikelns självkostnad i Fortnox — hur stor del av försäljningen som har en står intill.
CRM fas 8: A/B/C-kunder, «snart dags att beställa igen», försäljningsprognos och budgetmålet per land och kund3.12.0
2026-10-19
A/B/C-segment i kundlistan: A är kunderna som står för 80 % av försäljningen senaste 12 månaderna, B nästa 15 %, C resten. Filtrera på segment, och segmentet följer med i exporten.
Bevakningen visar «Snart dags att beställa igen»: kunder som brukar köpa med jämna mellanrum och vars nästa köp väntas inom två veckor — med Mejla, Skapa uppgift (tre dagar före) och Inte nu.
Budget → Året: prognos för hela året (det som sålts + resten av året som förra året × årets trend) som ljusa staplar framåt, mot budgetens försäljningsmål. Öppna affärers viktade värde står för sig.
Budgetens försäljningsmål fördelat per land och per kund efter deras andel, med hur det går hittills (säsongen räknas in). Kundens mål står också på kundsidan.
CRM fas 7: svarsförslag med AI på kundens språk, export till Excel och dubblettkontroll3.11.0
2026-10-19
«Föreslå svar med AI» när du svarar i ett ärende: Claude skriver ett utkast på samma språk som kunden, med det appen vet ifyllt — ordern, om den är packad, fraktbolag och spårningsnummer, fakturan och om den är betald. Skriv gärna vad svaret ska säga («skickas fredag»). Det som inte står i underlaget lovas inte, utan listas under «Kontrollera innan du skickar». Utkastet skickas aldrig av sig självt.
Exportera till Excel (CSV): kundlistan som den är filtrerad, alla kontaktpersoner, affärerna och budgetens utgifter.
Dubbletter (CRM → Kunder): kunder som ser ut att finnas två gånger i Fortnox (samma organisationsnummer, e-post eller namn) och kontaktpersoner som lagts in flera gånger — de senare slås ihop med ett tryck. En kontaktperson med samma e-post som en befintlig går inte att lägga till igen.
Modellen för svarsförslagen är Claude Sonnet (CRM_SVAR_MODELL byter); ett förslag kostar under en krona.
Mejlen: Nya, radera (även i brevlådan), papperskorg och läst åt båda hållen — budgeten: kontroll mot Fortnox, tak ur budgetförslaget, fler kategorier och utgiftslistan3.10.0
2026-10-19
Mejl som lästs i Gmail/Outlook/telefonen räknas som lästa i appen, och det som läses i appen markeras läst i brevlådan (var femte minut). Mejl från före «Att svara»-datumet står aldrig som olästa.
Ny flik «Nya» först, med siffra för olästa — och olästa står överst i alla listor.
Radera direkt i listan (papperskorgen på raden) eller flera på en gång med «Välj». Det raderade hamnar i Papperskorgen i appen i 30 dagar och flyttas till brevlådans papperskorg; «Ångra» och «Återställ» flyttar tillbaka det till inkorgen. Ett nytt mejl i en raderad tråd tar fram den igen. Markera läst/oläst på raden också.
Budget → Kontroll mot Fortnox: månadens kostnadskonton som i resultatrapporten mot det budgeten läst in, konto för konto, med skillnaderna överst — och avskrivningar, finansiellt och intäkter som står i resultatrapporten men inte i budgeten. «Läs om bokföringen» läser båda åren från början.
Budgeten räknar bokföringen på verifikationsdatum — samma månader som Fortnox resultatrapport.
«Spara som budget» sätter nu kategoriernas tak per månad ur resultatbudgeten (förut fick man trycka för sig, och förslaget byggde på kort och fakturor). Tabellen visar budgeten för året och taket per månad.
Fler kategorier efter kontoplanen: Lokal och energi, Försäkring bank och avgifter, Konsulter och tjänster — bokföringens rader sorteras om efter kontot.
Budget → Utgifter: alla utgifter för ett helt år eller en månad, filter på kategori och källa, sök på motpart, konto eller anteckning, störst först — eller ihopslaget per motpart. Kontot står på varje rad.
Löner räknas inte längre som «återkommande» eller bland «största utgifterna» — en löneverifikation med ett namn blev «200 000 kr/mån» under den personen.
Mejlen: Shopify-ordrar försvinner ur «Att svara», säljare till oss är reklam, och det syns att sorteringen är klar3.9.1
2026-10-19
Webbshoppens orderaviseringar («[Texsolvshop] Order #2296 placed by …») låg kvar under «Att svara» fast mejlen var rättade: rättningen i 3.9.0 hann rätta mejlen men inte ärendena innan tidsgränsen, och nästa gång fanns inget fel mejl kvar att utgå från. Nu jämförs varje öppet ärende med sitt senaste mejl vid varje sortering (var femte minut) och räknas om när de inte stämmer — de försvinner av sig själva.
AI:n har fått en skarpare instruktion: säljare som vill sälja något till oss (annonsplats, tidningsbilagor, SEO, webbyråer, leads) är reklam och behöver inget svar, även när de skriver personligt. Öppna ärenden som AI:n sagt behöver svar sorteras om en gång med den nya instruktionen.
Inkorgen säger när allt är sorterat: «Alla inkommande mejl är sorterade — så många av Claude Haiku, så många av reglerna», eller hur många som väntar.
Budgetförslag med försäljningsmål, hela bokföringen i budgeten, året i staplar, sparat tak — och en genomgång av CRM:et3.9.0
2026-10-16
Budget → Budgetförslag: appen räknar fram nästa års budget ur de tolv senaste månaderna — försäljningsmålet (senaste 12 × tillväxten, som föreslås ur hur det gått mot året innan), fördelat på månader efter säsongen och på Texsolv/Runlock/Övrigt, och kostnaderna ur bokföringen: varor följer försäljningen, personal + löneökning (3,3 %) och nya tjänster med arbetsgivaravgift och pension, övrigt + inflation (KPIF 2,1 %). Antagandena och varje rad går att ändra; «Spara som budget 2027» sparar målet per månad. Förslag på tak per kategori går att använda med ett tryck.
Budget → Året: försäljning och utgifter månad för månad i staplar, som statistiken, med målet och taket som streck, och hittills i år mot målet.
Med behörigheten Bokföring läser budgeten hela bokföringen i Fortnox — fakturor, autogiro, bank, kort och löner — och lägger varje rad i en kategori efter kontot (5910 → Annonser, 57xx → Frakt, 70–76 → nya kategorin Personal och löner …). Oklara konton sorterar AI:n; det du flyttar lär sig appen. Kortköp som inte bokförts än räknas preliminärt, inget räknas två gånger.
Oanvänt tak sparas: har annonserna 30 000 kr i månaden och bara 10 000 går åt, finns 50 000 nästa månad — och överdrag dras av. Det är året som räknas. Kan stängas av per kategori («Spara oanvänt») för jämna kostnader. Varningarna räknar mot det tillgängliga.
Mejlen: AI-sorteringen har fått ett eget jobb var femte minut (cirka tusen mejl per gång) — förut fick den bara resttiden och tusentals gamla mejl tog dagar. Inkorgen säger hur länge det är kvar. Shopifys beställningsaviseringar och allt från Shopify behöver aldrig svar; de som redan låg under «Att svara» rättas av sig själva.
Kundsidan: snabbval högst upp — Mejla, Ring, Anteckning, Uppgift, Affär — och kontaktpersonerna först; återförsäljarrutan längre ned.
Affärer: siffrorna överst ser ut som i statistiken (de hade blivit en rund bricka), «Bara mina» som en knapp, kundletarens förslag under pipelinen och två i bredd på datorn. Affärssidan visar affären först; offertformuläret öppnas med «Skapa offert i Fortnox».
Mejlvyn samlar det som behöver ställas in i en ruta. Kortare underrad i CRM, länkar i sidhuvudet i appens färg, «Ta bort» mer diskret, datum som «28 maj» i bevakningen och budgeten.
Kräver i Vercel för allt: FORTNOX_EXTRA_SCOPES = «offer print supplierinvoice bookkeeping», och Koppla om Fortnox. Appen läser bara bokföringen — den kan inte skapa eller ändra verifikationer.
CRM fas 6: budget — tak per kategori och månad, varning innan vi spenderar för mycket3.8.0
2026-10-16
CRM → Budget visar månadens utgifter per kategori mot ett tak: spenderat, kvar eller över, hur det ser ut i den takten för hela månaden, och de sex senaste månaderna. Status står med ikon och ord: Inom budget, Nära taket (80 %), Över budget.
Utgifterna kommer av sig själva från Företagskortet (korttransaktionerna som kvittofunktionen redan hämtar) och från leverantörsfakturorna i Fortnox. Det som betalas på annat sätt (autogiro, Swish) läggs till med «+ Utgift». Allt räknas inklusive moms; återbetalningar och krediter drar av, makulerade fakturor räknas inte.
Sju kategorier finns från början (Annonser, Programvara och AI, Frakt och tull, Material och tillverkning, Resor, Kontor och drift, Övrigt). En administratör sätter taken och kan byta namn, lägga till och ta bort under «Kategorier och tak».
En ny motpart sorteras en gång av AI:n (Haiku). Flyttar man en utgift till en annan kategori lär sig appen, och resten från samma motpart följer med. Det som inte ska räknas (en överföring, en faktura som också syns på kortet) kan undantas.
Notis när en kategori, eller hela budgeten, når 80 % och när taket passeras — en gång per månad och gräns, till administratörerna (nytt notisslag «Budget»). Budgeten uppdateras tre gånger om dagen och med «Uppdatera».
«Återkommande» listar motparter som dragit pengar minst tre av de fyra senaste månaderna, per månad och per år — prenumerationer att se över. «Största utgifterna» och sök finns också.
Leverantörsfakturorna kräver behörigheten Leverantörsfaktura: slå på den för appen i Fortnox utvecklarportal, lägg till supplierinvoice i FORTNOX_EXTRA_SCOPES och tryck Koppla om Fortnox. Appen läser bara leverantörsfakturor, skriver aldrig.
Statistiken: diagrammet följer vald period, 30 och 90 dagar, och egna datum3.7.1
2026-10-16
Diagrammet under CRM → Statistik följer nu perioden du väljer: upp till 45 dagar visas per dag, upp till ungefär ett halvår per vecka, längre per månad. Rubriken säger vilket («Försäljning per dag/vecka/månad»).
Nya val: Senaste 30 dagar och Senaste 90 dagar (ersätter 3 mån), utöver 12 mån, I år och 24 mån.
«Välj datum» ger två kalendrar, från och till, för en egen period (högst tio år). Den jämförs med lika många dagar närmast före.
Mejlstatistiken (in, besvarade, svarstid) följer också vald period.
Kundletaren: en AI-agent som varje vecka letar efter nya möjliga återförsäljare3.7.0
2026-10-16
Varje måndag morgon letar en AI-agent (Claude Sonnet med webbsökning) efter företag som säljer vävtillbehör — vävstolar, vävgarn, vävtillbehör, vävstugor med butik — men inte System Texsolv. Säljer de bomulls-, lin- eller stålsolv sägs det, för då köper deras kunder redan solv. Den tar några länder i veckan i turordning (Sverige, Norge, Danmark, Finland, Tyskland, Nederländerna, Storbritannien, USA … — ändras under Inställningar).
Varje förslag kontrolleras: webbplatsen ska finnas och får inte redan sälja Texsolv, och kunder, kontaktpersoner, återförsäljarnas webbshoppar och tidigare förslag sorteras bort. En notis kommer när veckans förslag finns.
Förslagen står under CRM → Affärer → Möjliga kunder: namn, ort, webbplats, vad de säljer, andra solv och varför de passar. «Gör till lead» skapar en affär med nästa steg «Kontakta och berätta om Texsolv»; «Inte intressant» sparar varför (och går att ångra).
En administratör kan ändra länderna, hur många länder per vecka och förslag per land, stänga av letandet, och trycka «Leta nu» för ett land. Webbsökning måste vara påslagen för ANTHROPIC_API_KEY i Claude Console; KUNDLETARE_MODELL byter modell. Kostnaden är några kronor per land.
CRM fas 5: statistik — försäljning per månad och varumärke, toppkunder, nya och tappade, länder, affärer och svarstider3.6.0
2026-10-16
CRM → Statistik: välj 3 mån, 12 mån, 24 mån eller i år — allt jämförs med perioden innan (i år mot samma dagar förra året). Överst försäljningen exklusive moms med förändringen, kunder som köpt, nya kunder (första köpet någonsin i perioden), tappade kunder (köpte förra perioden men inte nu), snitt per kund och hur stor del återförsäljarna står för.
Försäljning per månad de senaste 24 månaderna som staplar uppdelade på Texsolv, Runlock och övrigt — tryck eller håll över en månad för beloppen, eller «Visa som tabell». Under: varumärkenas andel i perioden.
Största kunderna med förändringen mot perioden innan, försäljningen per land, och listorna över nya och tappade kunder — varje namn leder till kundsidan.
Affärerna: vunnet, förlorat, vinstandel, öppet värde och varför vi förlorade. Mejlen: hur många som behövde svar de senaste 90 dagarna, svarstiden (median, från kundens mejl till vårt första svar) och hur stor del som fick svar inom ett dygn, per vecka.
Beloppen räknas som på kundsidan och i återförsäljarlistan: fakturaradernas pris × antal i kronor med fakturans kurs (annars ECB:s), krediter avdragna. Inget hämtas från Fortnox när sidan öppnas.
Telefonen: CRM:s vyrad rullar i sidled och den valda vyn rullas fram.
CRM fas 4: affärer — leads, pipeline och offerter i Fortnox3.5.0
2026-10-16
CRM → Affärer: pipelinen med stegen Ny, Kontakt, Offert och Förhandling (kolumner på datorn, under varandra på telefonen), och överst öppna affärer, värde, viktat värde och vunnet i månaden. Varje kort visar värde, kund eller lead, nästa steg (rött när datumet passerat), offerten och ansvarig — och en knapp som flyttar den till nästa steg. Vunna och förlorade de senaste 90 dagarna under.
En affär hör till en kund eller en lead — någon som inte är kund än. Ett mejlärende blir en affär med ett tryck («Gör till lead»): rubriken ur ämnet, namn och e-post ur avsändaren, företaget gissat ur domänen. «Skapa kund i Fortnox» gör leaden till kund — kundkortet skapas, e-posten blir kontaktperson och mejlen följer med.
Offerten skapas i Fortnox direkt från affären: sök artiklar, antal, pris (tomt = kundens prislista) och rabatt, giltig till, språk (engelska utanför Sverige), er referens. PDF:en öppnas och kan mejlas till kunden med ett tryck. «Gör till order i Fortnox» gör offerten till order och affären vunnen — och blir offerten order i Fortnox av sig själv märker appen det och markerar affären vunnen.
Nästa steg med datum blir en uppgift med påminnelse (och siffran på CRM-knappen), som bockas av när affären stängs. Förlorad kräver en orsak — pris, leveranstid, annan leverantör … — så att det går att se varför. Allt som händer står i affärens logg, med anteckningar.
Kundsidan har kortet Affärer med kundens affärer och «Ny affär».
Mejlsorteringen går fortare: åtta mejl åt gången till Claude Haiku i stället för ett, och upp till 240 per omgång — några tusen mejl sorteras på några timmar i stället för ett dygn. Nyaste först.
Offerter kräver behörigheten Offert i Fortnox: slå på «Offert» (och gärna «Utskrift» för PDF:erna) på appen i Fortnox utvecklarportal, sätt FORTNOX_EXTRA_SCOPES = offer print på Vercel och tryck Koppla om Fortnox. Utan den säger appen just det.
Inkorgen: uppdelad med kunderna först, nyaste överst, och gamla mejl räknas inte som obesvarade3.4.3
2026-10-16
«Att svara» räknar bara mejl från i dag och framåt — brevlådorna läses bakåt i tiden, och ett mejl från 2023 har redan hanterats. De gamla ligger kvar, sorterade, under Alla och kategorierna. En administratör kan flytta datumet under CRM → Mejl → Mallar och brevlådor.
Uppdelat och kunderna först: Att svara visar Kunder överst, sedan Nya kontakter och sist Övriga (leverantörer, tjänster) — nyaste överst i varje grupp. De andra flikarna delas upp per dag: I dag, I går, Senaste veckan och sedan per månad. Varje rad har en rund bricka med initialerna (grön för kunder) och märket KUND, och olästa syns på en ring runt brickan.
Nyaste mejlen överst i alla flikar.
Mejl utan avsändarnamn (t.ex. fakturor från DHL) visar adressen i stället för en tom rad.
Rutan överst säger tydligare att Claude Haiku sorterar — och ett tryck visar vad den gör, hur många mejl den tagit och från vilket datum Att svara räknar.
Färdiga mejlmallar, «Inget svar behövs» direkt i listan, och det syns om AI:n sorterar3.4.2
2026-10-16
Elva färdiga mallar ligger nu under CRM → Mejl → Mallar och brevlådor: tack för beställningen, prislista och återförsäljarvillkor, försenad leverans, påminnelse om obetald faktura, svar på förfrågan och «har inte hört av er på ett tag» — de flesta även på engelska. Namn, kund och ordernummer fylls i av sig själva; [hakparenteser] är det man skriver själv.
De är vanliga mallar: Ändra och Ta bort fungerar som på de egna, och en borttagen kommer inte tillbaka.
Alla mejl ska inte besvaras: «Inget svar behövs» direkt i listan Att svara (och på ärendet) tar bort det utan att man behöver öppna det. AI:n är också stramare — bara mejl med en fråga, en begäran eller en beställning räknas som att de behöver svar; tack, «ok», bekräftelser och information gör det inte. Utan AI känner reglerna igen korta tack.
Det syns nu om AI:n sorterar: överst i inkorgen står modellen, när den senast sorterade och hur många som väntar — eller att ANTHROPIC_API_KEY saknas, eller felet AI:n gav. Ett tryck visar hur många av månadens mejl AI:n respektive reglerna sorterat. På varje mejl i ärendet står vem som sorterade det.
Betalningarna ur Fortnox: se om en faktura är betald, obetald eller förfallen3.4.1
2026-10-16
Varje faktura har sin betalstatus: betald (med datum), obetald (med förfallodag), delbetald (hur mycket som är kvar) eller förfallen (hur många dagar och hur mycket). Den står på kundsidans flik Fakturor och på ordern, bredvid fakturanumret.
Kundsidan säger överst hur mycket kunden har obetalt och hur mycket av det som förfallit — ett tryck öppnar fakturorna.
Obetalda fakturor läses ur Fortnox en gång i timmen; en som betalats sedan sist läses för sig så att betaldatumet följer med. Fakturahuvudena läses om en gång efter uppdateringen, så att även äldre fakturor får sin status — det tar några omgångar av den schemalagda hämtningen.
Inkorgen: mejlen sorteras i ärenden — det som behöver svar först, reklam för sig, AI-sammanfattning, svar med bilagor och fakturor ur Fortnox3.4.0
2026-10-16
CRM → Mejl är nu en inkorg med ärenden: ett mejl och alla svar på det i en tråd (känns igen på mejlens egna rubriker, annars på ämne och avsändare). Överst «Att svara» — ärenden där kunden skrev senast och ingen svarat — med den som väntat längst först och hur länge. Sedan Alla, Mina, Frågor, Beställningar, Frakt, Fakturor, Förfrågningar, Info, Reklam och Klara. Siffran står på CRM i menyn.
Varje mejl sorteras av Claude Haiku (samma ANTHROPIC_API_KEY som kvittona; CRM_MEJL_MODELL för en annan modell): kategori, om det behöver svar, en mening om vad det gäller och ordernummer — de som finns i Fortnox blir länkar till ordern, även kundens PO-nummer. Nyhetsbrev, no-reply och frånvarosvar känns igen utan AI. Utan nyckel sorterar reglerna ensamma.
Alla mejl i brevlådorna sparas nu, inte bara kundernas — förfrågningar från nya kontakter hamnar under Förfrågningar och kan kopplas till en kund med ett tryck (avsändaren sparas som kontaktperson, så nästa mejl hittar rätt). En brevlåda kan ställas på «bara kunder».
Ärendet: tråden som en konversation, sammanfattningen överst, Klar, ansvarig och kategori. Kategorin kan gälla alla mejl från avsändaren («alltid reklam»). Svarar någon — från appen eller från sin vanliga e-post — försvinner ärendet ur Att svara av sig självt, och ett klart ärende öppnas igen om kunden skriver på nytt.
Svara direkt i ärendet: svaret hamnar i kundens tråd, med mall om man vill, och kan markera ärendet klart. Bilagor: ladda upp filer (upp till 4 MB) eller bifoga fakturor och orderbekräftelser som PDF direkt ur Fortnox. Samma sak i «Nytt mejl» på kundsidan.
Bilagor i mejl man fått går att öppna — de hämtas ur brevlådan när man trycker.
Kundsidans flik Mejl visar kundens ärenden på samma sätt, och tidslinjen länkar till ärendet.
Lägg till en återförsäljare på hemsidan direkt från kundsidan — och kundsidan säger varför en kund saknas; faktura-PDF med begripligt fel3.3.1
2026-10-16
Kundsidan har kortet «Återförsäljare på hemsidan»: vilka sajter kunden står på (texsolv.se, runlock.se), och «Lägg till»/«Ändra» där man kryssar i sajterna. Kunden publiceras direkt, oavsett vad den köpt och om den är under gränsen — så kommer återförsäljarna som fanns på hemsidan förut tillbaka. Ingen sajt ikryssad = inte på hemsidan.
En vald kund står kvar vid omräkningarna även utan köp i perioden (förut föll den bort om den inte hade köpt webbshopsartiklar de senaste 24 månaderna), och tas inte bort automatiskt när den är under gränsen.
Saknas kunden står varför, med kundens egna siffror: köpt för så här mycket Texsolv och Runlock de senaste 24 månaderna mot gränsen 20 000 kr per varumärke (de räknas var för sig, inte ihop), hur mycket som är artiklar som inte finns i webbshopparna och därför inte räknas, fakturor som väntar på rader, om kunden är markerad «publiceras inte», saknar land, väntar på beslut — eller har passerat gränsen efter senaste omräkningen.
På Återförsäljare märks de valda «vald för hand».
Faktura-PDF från kundsidan: svarar Fortnox 400 försöker appen en gång till på ett annat sätt, och går det ändå inte visas en läsbar sida med Fortnox egen text och felkod i stället för rå kod. Saknar nyckeln behörigheten för utskrift står det vad som ska slås på — och FORTNOX_EXTRA_SCOPES på Vercel (t.ex. print) läggs till vid nästa Koppla om Fortnox.
CRM fas 3: mejl till och från kunderna med mallar — kundsidan i flikar, sök ordrar direkt i CRM, och tillbakaknappen minns fliken3.3.0
2026-10-16
Mejl: under CRM → Mejl lägger en administratör till brevlådorna (IMAP — inkorgen och Skickat, egen inloggning eller samma som en kvittobrevlåda). Var tionde minut läses nya mejl, och de som hör till en kund sparas på kunden: på adressen (kundkortet, kontaktpersonerna, ordrarna) eller på domänen när bara en kund har den. Gmail, Hotmail och andra allmänna domäner matchas bara på hela adressen, och mejl mellan oss aldrig. Övriga mejl lämnas i brevlådan.
Kundsidan har fliken Mejl: alla mejl med kunden, sökbara, med texten (citerade svar kapade) och vilka bilagor som fanns. «Nytt mejl» skickar från appen till en kontaktperson eller kundkortets adress, med mall om man vill — {kund}, {förnamn}, {mitt_namn} och fler fylls i — och svaren kommer till den som skickade. Mejlen står också i tidslinjen. Mallarna skrivs under CRM → Mejl.
Kundsidan i flikar: Översikt (uppgifter, anteckningar, senaste ordrarna, kontaktpersoner, kundkortet, skatte- och tullnummer, köp per år), Ordrar, Fakturor, Frakt, Mejl och Tidslinje. Ordrar, Fakturor och Frakt visar allt med sök — ordernummer, er referens, fakturanummer, spårningsnummer. Fakturan öppnas som PDF direkt ur Fortnox, sändningen med spårningslänk.
Sök ordrar direkt i CRM: skriv ett order-, faktura-, webborder- eller spårningsnummer i sökrutan så visas ordrarna, fakturorna och sändningarna överst, även webbsändningar bokade i Shipmondo.
Tillbakaknappen: flikarna står nu i adressen — Plock (Bokat, Packat …), Tillverkning, CRM, kundsidan och startsidans Inventering — så att tillbaka från en sändning landar på Bokat, inte på Plock, och tillbaka från en kund på samma vy i CRM. Sändningens tillbakapil, ordersidans och Taggars går dit man kom ifrån i stället för alltid till samma sida. Sökningen i Bokat står kvar när man går in i en sändning och tillbaka.
«ENG» fylls inte längre i som delstat på brittiska adresser3.2.2
2026-10-16
3.2.1 slutade skicka «ENG» till FedEx, men rutan fylldes fortfarande i när adressen hämtades ur Shopify. Nu tas provinsen bara med för USA, Kanada och Australien — när adressen läses ur webbshoppen, när en manuell frakt eller en webborder sparas, och när en sparad sändning läses (så att en som redan bär «ENG» inte visar den som saknad). Rutan Delstat på Boka frakt manuellt syns bara för de tre länderna, och är markerad som krävs där.
Brittiska adresser med «ENG» som delstat gick inte att boka hos FedEx3.2.1
2026-10-16
Shopify skickar en provins för många länder — ENG, SCT och WLS för Storbritannien. Den följde med till FedEx som delstat och bokningen nekades (order #2267, boka igen). Nu skickas delstat bara för USA, Kanada och Australien, där FedEx har delstatskoder — i mottagaren, i avsändaren på returer och i adresskontrollen. Ingen behöver tömma fältet för hand.
Boka igen — också på sändningar bokade i Shipmondo — med orsak: vårt misstag ger DDP, annat DAP3.2.0
2026-10-16
Under Bokat har varje sändning knappen «Boka igen» — både de som bokats i appen och de som bokats i Shipmondo. Kunden, adressen och raderna fylls i (ur appen, eller ur Shopify för en Shipmondo-sändning), och du rättar det som ska skickas.
Överst väljer du varför den bokas igen, och det krävs: «Vårt misstag» (något saknades, fel vara, skadat) betyder att vi betalar tull och moms (DDP). «Kunden vill ha mer eller ändrade sig» och «Annat» betyder att mottagaren betalar (DAP). Valet gäller bara den sändningen; inställningen för alla andra är som förut.
Valet följer med till FedEx (vem som betalar tullen), till Sendifys prisfråga (DDP) och till handelsfakturan (leveransvillkor och vem som betalar tull och moms). Vid bokningen står «Bokas igen — vårt misstag. Tull och moms: vi betalar (DDP)».
CRM fas 2: uppgifter med påminnelse, bevakning av kunder som slutat handla, CRM i veckobrevet — och vem som får se CRM, hela fakturahistoriken, frakt och bilagor på ordern, tillbakaknappen, avklippt text3.1.0
2026-10-16
Tillgång till CRM styrs med rollen CRM under Inställningar → Personal. Så länge ingen har rollen ser alla CRM som förut. Ger du den till en person gäller den: bara de med rollen ser fliken, kundsidorna, uppgifterna och CRM-notiserna, och de andra får nej även om de skriver adressen. Skatte- och tullnummer går ändå att skriva in vid fraktbokningen.
Uppgifter: CRM → Uppgifter (Mina, Alla, Klara; försenade, i dag, kommande, utan datum) och ett kort på kundsidan. En uppgift har rubrik, kund, datum och klockslag (I dag / I morgon / Om en vecka), ansvarig och anteckning. När den förfaller kommer en notis till den ansvarige — eller till alla med CRM om ingen är satt. Siffran på CRM-knappen är dina uppgifter för i dag.
Bevakning: CRM → Bevakning visar kunder som brukar handla regelbundet men inte gjort det på klart längre tid än vanligt (takten räknas ur fakturorna, minst tre köp). Därifrån skapar du en uppgift, låter kunden vila i tre månader eller slutar bevaka den. En notis per dag om nya kunder som hamnat där.
Veckobrevet: CRM-delen på veckosidan (uppgifter klara och försenade, nya kunder, kunder som inte handlat som vanligt, anteckningar per person) och en egen CRM-notis på måndagar till dem med tillgång.
Hela fakturahistoriken: fakturorna hämtas nu bakåt så långt Fortnox har dem, i bakgrunden, nyaste först. Kundsidan visar Totalt sedan första köpet och köp per år för alla år. CRM-listan har urvalet Någon gång och sorteringen Köp totalt; Tappade gäller alla som köpt förut men inte senaste året. Återförsäljarlistan räknar fortfarande två år.
Ordersidan visar frakten (bokad, bolag, tjänst, spårning med länk, kollin, vikt, pris, läge) och bilagorna på ordern i Fortnox — kundens PO öppnas direkt i appen.
Tillbakaknappen går till sidan man var på i appen, aldrig ut ur appen eller till inloggningen. Pilen på Inställningar går tillbaka dit man var innan man gick in i inställningarna (Plock, CRM …) i stället för alltid till Artiklar.
Text som klipptes i fält med fast höjd i Windows — «Alla taggar», sök- och valrutor i CRM och Återförsäljare, fält i skrivarinställningarna och beställningsinställningarna — har fått plats. Artikelnamnen under artikelnumret på Artiklar och Inventering får två rader innan de kortas.
Skatte- och tullnummer kan skrivas in direkt vid fraktbokningen («lägg till»), utan att gå via kundsidan.
CRM: kundregister, kontaktpersoner, anteckningar, taggar och tidslinje — och kundens skatte- och tullnummer följer med till FedEx3.0.0
2026-10-16
Ny flik CRM längst ned, till höger om Tillverkning. Alla kunder ur Fortnox med vad de köpt senaste 12 och 24 månaderna (ur fakturorna), senaste köp, taggar och anteckningar. Urval: köpt 24 mån, köpt 12 mån, tappade (köpt förut men inte senaste året), återförsäljare, utan köp, alla. Sök på namn, ort, land, kundnummer, orgnr, e-post, telefon, tagg eller kontaktperson; filtrera på land och tagg; sortera på köp, senaste köp, namn eller land. Filtren står kvar när man går in på en kund och tillbaka.
Kundregistret hämtas ur Fortnox av sig själv en gång per dygn (första gången i omgångar tills hela registret är inne), eller direkt med «Hämta kundregistret från Fortnox» längst ned i listan. Privatpersoner visas inte.
Kundsidan: taggar (med förslag ur de som redan används), anteckningar av sorten anteckning, samtal, möte eller mejl (fäst den viktigaste överst), kontaktpersoner med roll, e-post, telefon och en primär, och en tidslinje med allt som hänt — anteckningar, fakturor, ordrar, sändningar, leveranser, returer, mejl appen skickat, fraktärenden och återförsäljarbeslut — med filter Allt/Anteckningar/Köp/Frakt/Mejl. Tillbakapilen går till CRM (eller återförsäljarlistan om man kom därifrån).
Skatte- och tullnummer på kundsidan: EIN, SSN, VAT, EORI, GST/HST, ABN, BN, RFC, RUT, RUC, NIT, CUIT, RIF, CNPJ, CPF, UEN, delstatsnummer eller annat TIN. De följer med mottagaren när en FedEx-frakt bokas på kundens order (recipients.tins, med rätt typ: företag, person, EU eller delstat) och står under mottagaren på handelsfakturan. Vid bokningen står «Till tullen: …», och saknas nummer på en företagssändning utanför EU säger appen det med en länk till kundsidan.
Menyn längst ned har fem platser: kapseln går närmare kanterna och knapparna står tätare. På surfplatta (640–1023 px breda fönster) låg menyn förut till hälften utanför skärmen på undersidorna — nu ligger den mitt i.
Kundkortet går att ändra från kundsidan; återförsäljare under gränsen tas bort av sig själva2.99.0
2026-10-15
Kundsidan: «Ändra» på kundkortet. Namn, organisations- och momsnummer, fakturaadress, leveransadress, e-post, telefon och webb — ändrade fält markeras, och «Spara N ändringar i Fortnox» skriver bara dem till kundkortet. Landet kan skrivas som kod eller namn, e-post och webbadress kontrolleras innan något skickas. Efteråt följer återförsäljarlistan med (namn, ort, land, webbshop), och ordrarna läser om kundens typ, momsnummer, e-post och telefon.
En publicerad återförsäljare som fallit under gränsen (köpen räknas på de senaste 24 månaderna) tas bort från hemsidan av sig själv vid omräkningen, och det kommer en notis. Har den fallit under i alla varumärken tas publiceringen bort — under «Under gränsen» står «Borttagen från hemsidan … — föll under gränsen», och kommer kunden tillbaka över gränsen blir den en ny med notis igen. Kunder som tagits med för hand under gränsen rörs inte.
Återförsäljare: gräns 20 000 kr, sök och sortera, land krävs för att publicera2.98.3
2026-10-15
Gränsen för återförsäljare är nu 20 000 kr på två år för både System Texsolv och Runlock (Texsolv var 40 000). «Under gränsen» visar kunder ner till 2 000 kr. Tryck «Räkna om nu» så kommer de nya med bland «Nya — väntar på beslut».
Sök (namn, ort, land, kundnummer, webbshop), välj land och sortera — land A–Ö, störst först eller namn A–Ö. Gäller alla listorna på sidan.
En kund utan land går inte att publicera: knappen är avstängd med «Rätta landet», och appen säger nej om man försöker ändå. En publicerad som saknar land kommer inte med i hemsidans fil förrän landet är rättat. «Ta med ändå» utan land tar med kunden som ny.
Publiceringen till runlock.se sa bara «GitHub hittar inte det (404)». Nu säger den vad som är fel: att GITHUB_TOKEN inte har tillgång till repot (och hur man lägger till det), eller att grenen inte finns.
Flaggorna är bilder i stället för emoji — i Windows syntes de som «SE».
Återförsäljare: letaren går direkt, och Runlocks gräns är 20 000 kr2.98.2
2026-10-15
«Leta webbshop för alla» letar nu direkt från sidan, tre kunder åt gången, och visar varje svar när det kommer — förslag, «webbshoppen stämmer» eller «hittade inget» — med en stapel och Stoppa. Förut lades alla i en kö som den schemalagda körningen tog några av var tionde minut, och det såg ut som om ingenting hände. Det som ligger i kön visas med namn och «Leta nu». Stänger man sidan fortsätter den schemalagda körningen, som nu tar letaren före fakturorna och inte längre stannar om Fortnox krånglar.
Fel API-nyckel stoppar letandet med ett besked i stället för ett fel per kund.
Gränsen för Runlock är 20 000 kr (System Texsolv är kvar på 40 000). Räkna om så kommer de nya med.
Kollin: antal likadana2.98.1
2026-10-15
Varje kollikort har «Antal likadana» med − och +. Fem exakt likadana kartonger är ett kort med 5 i stället för fem kort att fylla i likadant; rubriken blir «Kolli 1–5 · 5 likadana», och vikt och mått gäller varje kartong. Till fraktbolaget går de som fem kollin, precis som förut. Finns under Ny frakt och i plockrundan.
I plockrundan slås likadana kollin ihop till ett kort när man kommer tillbaka till Vikt och mått. Öppnar man Kartongetikett per kolli delas kortet upp i ett per kartong — då har varje kolli sitt eget innehåll och sin egen etikett.
Beräknad vikt ur innehållet erbjuds bara när det är ett enda kolli totalt, inte ett kort med flera.
Återförsäljare: publicera för hand, notis om nya, webbshopsletare med månadskontroll — och en sida per kund2.98.0
2026-10-15
Varje återförsäljare har nu ett beslut: publicerad (grön, står på hemsidan), ny (orange, väntar på beslut) eller publiceras inte. Bara publicerade kommer ut i filen till texsolv.se och runlock.se — ingen hamnar på en hemsida av sig själv. Nya väntande står överst med «Publicera på …» och «Publicera inte»; publicerade har «Avpublicera». Står publiceringen på uppdateras hemsidans fil direkt vid beslutet.
Notis när en ny kund passerar gränsen och väntar på beslut (nytt notisslag «Återförsäljare» under Vem får vilka notiser). Notisen leder till de nya.
Webbshopsletaren: «Leta webbshop» på varje kund, och «Leta webbshop för alla utan bekräftad». Först prövas adressen vi har — butikens egen sökning efter Texsolv eller Runlock (Shopify, WooCommerce, Magento). Räcker inte det söker Claude på webben efter företagets webbshop och om den säljer varumärket, och förslaget prövas mot sidan innan det visas. «Använd» skriver adressen till kundkortet i Fortnox, «Fel företag/sida» gör att den inte föreslås igen. Nya återförsäljare letas automatiskt. Kräver ANTHROPIC_API_KEY (samma som kvittona) och att webbsökning är påslagen för nyckeln.
Månadskontroll: första måndagen varje månad kontrolleras alla publicerades webbshoppar — svarar de, och står varumärket kvar? Om inte letas ett nytt förslag fram och det kommer en notis.
Ny sida per kund (klicka på namnet under Återförsäljare, eller kundnumret på en order): kundkortet ur Fortnox med faktura- och leveransadress, e-post, telefon, webb, organisations- och momsnummer; köpt senaste 12 och 24 månaderna; köp per år och varumärke; de senaste fakturorna och ordrarna.
Återförsäljare: räknas på fakturorna, rättelser till Fortnox, fakturorna bakom varje summa2.97.0
2026-10-15
Summorna var för låga för kunder som handlar i webbshopen: listan räknades på Fortnox-ordrarna, och webbshopens köp faktureras direkt utan order. Nu räknas den på kundfakturorna — allt som faktiskt fakturerats, vilken väg köpet än tog. Kreditfakturor drar av, makulerade räknas inte, frakt och avgifter räknas inte. Fakturorna läses in ur Fortnox: huvudena när man räknar om, raderna i bakgrunden var tionde minut (ett anrop per faktura, så två år tar en stund — sidan säger hur många som väntar). Kräver behörigheten Faktura: slå på den på appen i Fortnox utvecklarportal och tryck Koppla om Fortnox; /setup säger när den saknas.
«Fakturor» på varje kund visar fakturorna bakom summan — nummer, datum, valuta och belopp per varumärke i kronor, krediter i rött — så att summan går att kontrollera mot Fortnox.
«Rätta…» på varje kund: ort, land och webbshop. Sparas i appen direkt och skrivs till kundkortet i Fortnox (Ort, Landskod, Webbadress); går det inte står rättelsen kvar i appen och sidan säger varför. Saknas webbshop är raden en länk till en Google-sökning på namnet.
Tyskland och Kanada stod två gånger: fakturan och kundkortet skriver landet olika («Tyskland», «Germany», «DE»). Nu alltid som landskod.
Återförsäljare: ordrar i euro och dollar räknades som kronor2.96.1
2026-10-15
«Under gränsen» under listan: kunderna som köpt varumärket för mindre än 40 000 kr (ner till 4 000), störst först, med «Ta med ändå» — då står kunden i listan och på hemsidan som de andra, märkt «under gränsen · tillagd», tills någon trycker «Ta bort». Kundkortet hämtas när man tar med.
Ort och land tas ur kundkortets fakturaadress, annars leveransadressen — den ena är ofta tom.
Kundkorten gick inte heller att läsa — «Fortnox svarade 400 — Har inte behörighet för scope» under varje kund. Nyckeln saknar behörigheten customer (och currency). Appen ber nu om dem; tryck Koppla om Fortnox under Inställningar → Fortnox, Shopify och FedEx en gång, så följer ort, land och webbadress med. Tills dess visas orderns land och leveransort (markerat «ur ordern»), och felet står en gång överst i stället för på varje rad. /setup säger också när nyckeln saknar behörigheten.
Första omräkningen sa «Fortnox valutakurser gick inte att läsa — har inte behörighet för scope» och räknade ordrar i EUR, USD, GBP, DKK, PLN, CZK, AUD och CAD som kronor — nio gånger för lågt för euro, så utländska återförsäljare hamnade under gränsen. Fortnox valutaendpunkt kräver en behörighet appen inte bad om när den kopplades. Nu hämtas kurserna från Europeiska centralbanken (samma källa som euro-priset i paketinfon) när Fortnox inte lämnar ut dem; raden «Valutakurser för äldre ordrar» säger varifrån. Ordrar lästa efter 2.95 har sin egen kurs sparad och påverkas inte. Räkna om.
Återförsäljare: listan till texsolv.se och runlock.se2.96.0
2026-10-15
Inställningar → Återförsäljare → «På hemsidorna»: per varumärke på/av. På betyder att appen lägger filen site/data/aterforsaljare.json i sajtens repo — Texsolv-listan till texsolv.se, Runlock-listan till runlock.se — med namn, ort, land (svenska och engelska) och webbshop. Inga belopp, inga kundnummer, inga dolda kunder. Filen skrivs om efter varje omräkning när listan ändrats, på main och på staging när sajten har en; datumet i filen säger när listan senast ändrades. «Publicera nu» skriver direkt. Av är utgångsläget — inget hamnar på en hemsida förrän någon slagit på det. Själva sidan på sajten som läser filen byggs under Hemsidor.
Återförsäljare: vilka som köpt för minst 40 000 kr på två år2.95.0
2026-10-15
Inställningar → Återförsäljare räknar ur Fortnox-ordrarna vilka kunder som köpt för minst 40 000 kr exklusive moms de senaste 24 månaderna, per varumärke — System Texsolv och Runlock, uppdelade efter Shopifys samlingar — och visar dem per land med namn, ort och webbshop (kundkortets webbadress). Internt syns också ordervärdet, antal ordrar och senaste köp. Dölj tar bort en kund ur listan, och webbshopsadressen går att ändra. Räknas om varje måndagsnatt och på «Räkna om nu». Tänkt som underlag för sidor på texsolv.se och runlock.se — ingenting publiceras än.
Artikelnummer som inte finns i Shopifys samlingar gissas på numrets form (160510O → System Texsolv, 130101… → Runlock); gissningarna och de övriga står med belopp under listan, så att en fel gissning går att se. Första gången läses två års ordrar in ur Fortnox; raderna hämtas i bakgrunden, och sidan säger hur många ordrar som väntar.
Orderns valutakurs sparas nu när raderna hämtas, så att en order i euro räknas med den kurs den hade. Ordrar lästa tidigare får Fortnox aktuella kurs.
Databasschemat: tilläggen på plockrundorna från 2.75 och 2.79 (kolliinnehåll, foton) stod före tabellen de ändrar. På er databas märktes det aldrig, men på en tom — en ny miljö, provdatabasen — föll hela uppsättningen. Flyttade till efter tabellen.
Fortnox ska komma ihåg enheten i 90 dagar, men koden begärdes ändå. Nu sparas en diagnos av varje inloggning — om koden begärdes, hur många sparade kakor som togs med, vad «lita på enheten»-rutan hette och om den trycktes, och en bild av kodsidan — och den syns under Inställningar → Kvitton → Fortnox företagskort → «Senaste inloggningen». Rutan letas nu också bland switchar och egna ritade kryssrutor, inte bara vanliga.
Hemsidor: runlock.se i appen, och bilder byts i alla storlekar2.94.0
2026-10-13
runlock.se finns under Inställningar → Hemsidor bredvid texsolv.se, med samma arbetssätt: Redigera visar sajten, klick på text eller bild ändrar, Spara gör en commit till main och Actions lägger upp den. Status, länkkoll och säkerhetskopia går för båda. runlock.se:s sidor pekar på sina filer utan inledande snedstreck och ligger platt (about.html), så förhandsvisningen hämtar css, skript, typsnitt och filmer från live-adressen medan bilderna byts via appen. Kräver att GITHUB_TOKEN på Vercel även omfattar repot TexsolvAB/Hemsida-Runlock.se.
Byter man en bild görs nu också storleksvarianterna om — hero-480.jpg, hero-480.webp, hero-900.jpg … på texsolv.se och bild-480/-800/-1200.webp på runlock.se, de som sidornas srcset pekar på. Förut byttes bara originalet och webp-kopian, så telefoner visade den gamla bilden. Bilden sparas i filens eget format (jpg, png eller webp), och listan Alla bilder visar bara huvudbilderna, inte varianterna.
Säkerhetskopian läser repots zip som ström i stället för att ha hela i minnet, och runlock.se:s filmer (video/, ~170 MB, ligger i repot och i Dropbox ändå) tas inte med. Nattkollen får två minuter på sig, som Fortnox-avläsningen.
Raden Recensioner i Status visas bara för sajter som har recensioner (texsolv.se); lanseringslistans alias-punkt säger sajtens egen .com-domän.
Kvitton bakom länkar, och «Leta kvitton i mejlen» till köpen utan2.93.0
2026-10-13
Kvitton som inte ligger i mejlet utan bakom «Ladda ner fakturan»: appen öppnar sidan i Chrome, så att även sidor som byggs med JavaScript hinner bli klara, och hämtar dokumentet — via länkar på sidan, via knappar utan länk (nedladdningen fångas), eller genom att rita sidan om den själv är fakturan och beloppet står på den. Aldrig förbi en inloggning: ett lösenordsfält stoppar allt. Gäller bara mejl som bedömts som kvitto eller faktura, precis som förut.
«Leta kvitton i mejlen» under Att göra: utgår från köpen i Fortnox som saknar kvitto, letar bland de redan lästa mejlen kring varje köp — beloppet i bedömningen eller ämnet, eller en avsändare som liknar korttexten (MSFT → Microsoft, FACEBK → Meta) — och hanterar de mejlen en gång till som kvitto, med köpets belopp som ledtråd för länkarna. Hittade kvitton läggs på köpet av matchningen. Körs också i nattens körning; ett köp letas en gång i veckan.
Kvitton: förstora under Uppladdade, och rätt länk till Dropbox2.92.2
2026-10-13
Under Kvitton → Uppladdade gick kvittona inte att förstora — rutan som visar kvittot stort låg bara under fliken Att göra. Nu öppnas den från båda.
Länkarna «mappen i Dropbox» pekade på en gissad adress (Appar/Texsolv Lager) som Dropbox inte kände igen. Appen ser bara sin egen mapp och kan inte fråga vad den heter i er Dropbox, så adressen är nu en inställning: Inställningar → Kvitton → Dropbox. Öppna dropbox.com, gå till mappen KVITTON, kopiera adressen ur webbläsaren och klistra in — sedan stämmer alla länkar, undermapparna läggs till av sig själva.
Kvitton: «Mina» förvalt, och albumets bilder kommer fram2.92.1
2026-10-13
Att göra och kvittoalbumet visar bara dina egna köp och kvitton från början — raden Mina · Alla · Joel · Thomas ovanför filtret byter. Vem som är «mina» kommer från inloggningen (Thomas → Thomas Ivarsson). Siffrorna på filtret räknar det som visas.
Albumets miniatyrer: bilderna hämtas nu bara när de syns på skärmen, fyra åt gången, och försöker igen av sig själva om en inte kom fram — förut gick hundra anrop på en gång och de som inte hann blev frågetecken. Fotade kvitton sparas i bildcachen som PDF:erna redan gjorde, så Dropbox frågas en gång per kvitto, och miniatyrer som saknas görs i bakgrunden efter att albumet öppnats; andra gången är allt klart.
Kvitton: fyra flikar i stället för en lång sida2.92.0
2026-10-13
Kvittosidan är uppdelad: «Att göra» (Fota kvitto och avstämningen — köpen utan kvitto, de att granska, Hämta och matcha, Skicka till Fortnox; siffran på fliken är köp utan kvitto plus osäkra), «Kvitton» (Fota kvitto, kvittoalbumet och Uppladdade månad för månad), «Logg» (läget för brevlådorna och loggen över mejlen) och «Inställningar» (brevlådorna, Fortnox-inloggningen, automatisk uppladdning, notiser, fakturor och regler). Fliken ligger i adressen (?flik=), och notisernas och mejlens länkar öppnar rätt flik.
Varningarna om Dropbox och AI står under Inställningar; på de andra flikarna en rad som pekar dit.
Kvitton: filter för det som saknas, notiser i telefonen, kvittoalbum, snabbare foto2.91.0
2026-10-13
Avstämningen har ett snabbfilter: Alla · Saknar kvitto · Att granska · Matchade, med antal. «Saknar kvitto» visar bara köpen utan kvitto, så att man kan gå igenom dem och fota. Länken /installningar/kvitton?visa=saknar öppnar sidan med filtret satt.
Notis i telefonen om kvitton på det egna kortet: «Kvitto saknas för …» när ett köp stått utan kvitto i tio dagar, och «Ett kvitto att granska» när appen hittat ett kvitto som kanske hör till köpet och vill ha ett godkännande innan det skickas till Fortnox. Går bara till den vars kort det är (Fortnox-namnet matchas mot inloggningen på förnamnet), en gång i veckan per köp, i nattens körning — samma tillfälle som mejlet. Nytt slag «Kvitton på mitt kort» under Inställningar → Notiser; notisen öppnar listan filtrerad.
Kvittoalbum (länk under Fota kvitto): alla sparade kvitton som bilder, månad för månad, med filter Alla · Ej kopplade · Föreslagna · Kopplade · Osäkra, per person, och sök. Tryck på ett kvitto för att se det stort med vad det ligger på i Fortnox, eller tryck Välj och markera flera för att ta bort — filen tas bort ur Dropbox och köpet står utan kvitto igen.
Fota kvitto svarar direkt: uppladdningen tar en sekund, och avläsningen (AI:n, mappen) sker i bakgrunden i servern. Raden visar «läses av…» tills den är klar; man kan fota nästa under tiden eller stänga rutan — resultatet syns i loggen ändå.
Kvitton: brevlådorna som kort2.90.1
2026-10-13
Varje brevlåda är ett kort: namn och adress, läget som en liten kapsel (ok, fel, inte läst än), en rad med kvitton, att granska, lästa och senaste körningen, stapeln, och fyra knappar två och två — Hämta nu, Ändra, Dropbox och Mer. Under Mer ligger serverraden, Prova inloggningen, Töm och börja om och Ta bort; de behövs sällan och tog fem rader var på telefon. Gick senaste körningen fel står felet i rött på kortet.
Fota kvitto: bilden skärs till kvittot2.90.0
2026-10-13
Ett fotat kvitto skärs ut och rätas upp i telefonen innan det skickas: appen hittar det ljusa pappret mot bordet, tar dess fyra hörn och ritar om kvittot rakt uppifrån — utan bordet, handen och golvet runtom. Fungerar snett fotat (prövat till 20°), mot mörkt och ljust bord, och i ojämnt ljus. Går kvittot inte att skilja från underlaget, eller fyller det redan hela bilden, skickas hela fotot som förut — hellre hela bilden än ett felaktigt klipp.
Raden i bladet visar en liten bild av det som sparades (tryck för full storlek) och säger om det är utskuret eller hela fotot. Filen blir mindre och AI:n läser den lättare.
Bokade frakter: läget till höger igen, snyggare2.89.4
2026-10-13
Läget står till höger på raden igen, som före 2.89.3, i en kapsel med en prick i lägets färg, och spårningsnumret och priset under. Namnet klipps med tre prickar när det inte får plats, och rad två bryter till två rader i stället för att klippas. Högerspalten tar aldrig mer än fyrtio procent av bredden.
Telefonlayout: överlapp och saknade marginaler2.89.3
2026-10-13
Bokade frakter på telefon: kundnamnet får hela raden, och läget, spårningsnumret och priset står på en egen rad under. Förut trängdes de i en smal högerspalt och både namn och rad två klipptes efter ett par ord.
Glastemat: skiljelinjerna mellan rader i listor syns igen. De var vita mot vitt glas, så mejlloggen på en sändning och andra listor såg ut som text utan luft.
Inställningar → Kvitton: «aldrig körd»/tiden låg över pilen i rubrikraden på telefon; texten under notisrutan låg an mot rutan. Textfält över flera rader står nu som block med luft under, överallt i appen.
Mejlloggen på en sändning: statusen («skickat», «gick inte») klipps inte längre när rubriken är lång.
Fota kvitto: knapp överst på kvittosidan, «mitt» förvalt2.89.2
2026-10-12
Den egna sidan är borta. I stället en grön knapp «Fota kvitto» överst under Inställningar → Kvitton som öppnar ett blad: vems kvitto (Mitt — den inloggades brevlåda — är förvalt, annars Låt appen avgöra), sedan Fota kvittot eller Ladda upp bild eller PDF. Varje kvitto visas i bladet när det är läst, med säljare, belopp och var det hamnade, och loggen och avstämningen under laddas om.
Fota kvitto: två val, och månaderna hopfällda under Uppladdade2.89.1
2026-10-12
Fota kvitto har två val i stället för en knapp per brevlåda: «Låt appen avgöra» eller «Mitt kvitto». Mitt är den inloggades egen brevlåda — Thomas blir Thomas Ivarsson, på förnamnet. Finns ingen brevlåda med det namnet används inloggningsnamnet som mapp. Snyggare rutor, och på datorn håller sig sidan till läsbar bredd.
Inställningar → Kvitton → Uppladdade: varje månad är en hopfälld rad med antal köp och summa. Tryck på månaden för att se köpen.
Fota kvitto i appen2.89.0
2026-10-12
Ny sida «Fota kvitto» under Inställningar → Administration (adressen /kvitton): ta en bild på kvittot med telefonen, eller ladda upp en bild eller PDF — flera på en gång går bra. Välj vems kvitto det är om du vet, annars avgör appen. Kvittot går samma väg som de som släpps i Dropbox-mappen KVITTON/_Inkorg: AI:n läser säljare, belopp, datum och vems kort, filen döps och hamnar i rätt mapp, loggas under Kvitton och matchas mot korttransaktionen i Fortnox. Svaret står på skärmen direkt — säljare, belopp och var filen hamnade — och «osäker» om AI:n inte tror att det är ett kvitto.
Bilden förminskas i telefonen innan den skickas, så ett foto går på ett par sekunder. Högst 4 MB per fil; större läggs i Dropbox-mappen.
Vercels loggar: varningen i rött om SSL-läget («sslmode=require … treated as aliases for verify-full») på varje anrop är borta. Den var ingen felkälla — uppkopplingen till Neon kontrolleras fullt ut precis som förut — bara ett besked från databasbiblioteket om att ordet i adressen ska heta verify-full. Appen skriver nu det själv; variabeln i Vercel behöver inte ändras.
«Out for delivery» är inte en avvikelse2.88.1
2026-10-12
En FedEx-sändning som är ute på bilen till kunden («Out for delivery», FedEx kod OD) stod som Avvikelse och gav en notis. Koden saknades i appens lista, så läget räknades i stället fram ur FedEx tidsstämplar — och där låg ett tidigare leveransförsök, som vann. Nu är OD «På väg».
Samma fälla stängd för koder appen inte känner: ett leveransförsök räknas bara som avvikelse om inget hänt efter det. Är paketet skannat igen efter försöket gäller den nyare skanningen. Sändningar som redan står som avvikelse rättar sig nästa gång de frågas (eller tryck «Fråga nu»).
Kvitton: «Uppladdade» som eget hopfällt kort, månad för månad, ett år bakåt2.88.0
2026-10-12
Avstämningen visar bara det som ska hanteras: obokförda köp som saknar kvitto eller har ett matchat som inte skickats. Det klara — uppladdade, de som redan hade bilaga, ignorerade och bokförda — ligger i ett eget kort «Uppladdade» under avstämningen, hopfällt från början, med månadsrubriker och summa per månad.
Listan hålls ett år bakåt; äldre rader rensas vid hämtningen. Kvittona i Dropbox rörs inte.
Kvitton: finjustering på iPhone efter genomgång i telefonstorlek2.87.1
2026-10-12
Hopfällda kort: pilen sitter fast uppe till höger, tiden står bredvid rubriken och siffrorna på egen rad. Kandidaterna under «Välj kvitto» tar hela radens bredd — två i bredd på telefon, fyra på skärm. Knapparna ovanför listan två i bredd.
Loggen: sökfältet och väljaren under varandra på telefon; modell och tokens göms där. Kvitto/Faktura/Inget och Gör om finns nu på alla rader — även dubbletter och de som gick fel — så att en dubblett kan sparas ändå.
Kvitton: radera och flytta kvitton; Metas egna mejl ignoreras, vidarebefordrade Meta-kvitton sparas2.87.0
2026-10-12
Loggen: «Radera» tar bort filen i Dropbox utan att sätta någon regel för avsändaren (raden står kvar som raderad för hand, så den sparas inte igen). «Flytta till…» flyttar kvittot till en annan persons mapp när det hamnat hos fel person.
Metas och Facebooks egna betalningsmejl (facebookmail.com) hoppas över från början — de är aviseringar utan företagsuppgifter. Regeln står under Regler → Avsändarklass och går att ändra.
Ett kvitto som vidarebefordras från en egen adress (Fwd:/VB: med PDF eller bild) räknas som kvitto — säljaren tas ur bilagan, inte ur avsändaren. Så kan de riktiga Meta-kvittona mejlas in från Ads Manager.
Kvitton: avstämningen byggd för telefonen2.86.2
2026-10-12
Raden i avstämningen är tre spalter som alltid får plats på en iPhone: kryssruta, kvittobild (eller en symbol när kvitto saknas), och texten med datum och badge på första raden, inköpsstället på sin egen, beloppet under. Markerade rader tonas gröna. Knapparna är kortare (Ta bort, Ignorera, Ta bort i Fortnox).
Väljaren och knapparna ovanför listan staplas på telefon; kandidatkorten blir två i bredd; kvittorutan fyller skärmen med knapparna ovanför hemindikatorn.
De långa förklaringarna ligger bakom «Så fungerar …» i stället för att ta en skärm var.
Kvitton: snyggare sida — hopfällda kort, kvittot mitt i fönstret, färg och ikoner på knapparna2.86.1
2026-10-12
Status («À jour»), Brevlådor, Fakturor och Regler är hopfällda från början; rubrikraden visar det viktiga ändå — antal kvitton, fakturor, att granska, köp utan kvitto, osäkra, när det lästes senast, och en prick per brevlåda. Avstämningen och loggen är öppna.
Kvittorutan öppnas mitt i fönstret (en portal till body — sidan scrollar i ett eget element med en animation, och position:fixed räknades därför från listan). Kandidaterna under «Välj kvitto» går också att förstora, och väljs i rutan eller med Välj-knappen under kortet.
Alla knappar har färg efter vad de gör (grönt spara/skicka/godkänn, blått hämta/välj, orange städa/granska, rött ta bort) och en ikon.
Kvitton: avstämningen visar kvittot — godkänn, byt eller ta bort, markera och skicka till Fortnox2.86.0
2026-10-12
Varje köp med ett matchat kvitto visar kvittot som en liten bild bredvid raden. Tryck på bilden så öppnas det stort i en ruta med Godkänn kvittot (markerar det för Fortnox), Byt kvitto… och Ta bort kvittot. PDF:en ritas med PDFium (/api/kvitton/bild) och bilden sparas i kvitto_bild så att det går fort nästa gång; fotade kvitton visas som de är.
Kryssruta per rad: säkra och handvalda är markerade från början, troliga inte. «Skicka N till Fortnox» laddar upp de markerade. «Skicka nu» på en enskild rad finns kvar.
«Välj kvitto…»/«Byt kvitto…» visar kandidaterna som små kort med bild, säljare, belopp och ✓-märken, de som stämmer först.
Matchningen körs dessutom en gång i timmen av sig själv även utan nya kvitton, så att en rättning slår igenom utan att någon trycker.
Kvitton: matchningen sker alltid av sig själv — uppladdningen är det man godkänner2.85.0
2026-10-12
Korttransaktionerna hämtas ur Fortnox fem gånger om dagen (03:30, 07:30, 11:30, 15:30, 19:30; sessionen återanvänds, ingen ny inloggning) och matchas. Nya kvitton ur mejlen eller inkorgen matchas mot de redan hämtade köpen inom tio minuter. Notiserna går bara i nattens körning.
Uppladdningen till Fortnox är det enda som väntar på ett tryck (Koppla / Ladda upp alla säkra) — tills man slår på automatiken.
Kvitton: matchningen föll på «date >= integer»2.84.12
2026-10-12
Dagarna runt köpdatumet skickades som en otypad parameter, och Postgres läste «datum − $2» som datum minus datum (ett heltal). Nu uttryckligen heltal. Matchningen kör efter nästa «Hämta».
Kvitton: tydligare val av kvitto i avstämningen2.84.11
2026-10-12
«Välj kvitto…» visar de kvitton vars belopp stämmer först och i fetstil, med ✓ belopp och ✓ säljare, så att valet är ett ögonkast. En rad som saknar kvitto säger varför (inget sparat kvitto inom toleransen och ±4 dagar) och vad man gör.
Kvitton: matchningen föll på «datum is ambiguous»2.84.10
2026-10-12
Inloggningen i Fortnox gick hela vägen (session sparad), men matchningen stannade på en SQL-fråga där datumkolumnen fanns två gånger (en gång som text). Rättat; hämta igen.
Kvitton: inte en gammal engångskod2.84.9
2026-10-12
Två inloggningsförsök tätt efter varandra gav två koder, och appen tog den förra (tre minuters spelrum bakåt). Nu räknas bara det som kommit till brevlådan efter att lösenordet skickades (brevlådans ankomsttid, tjugo sekunders spelrum), och säger Fortnox «fel kod» väntar den på en nyare och försöker en gång till.
Kvitton: Fortnox-inloggningen hittar «Texsolv AB» på Välj företag, och tar med sig kakorna2.84.8
2026-10-12
Företagsnamnet på Välj företag har en krona som barn, så sökningen på «element utan barn» missade det. Nu matchas den egna texten eller hela texten, det minsta elementet vinner, och klicket går både på kortet och som ett riktigt musklick mitt på namnet.
Förra inloggningens kakor läggs tillbaka i webbläsaren innan den loggar in igen. Varje körning på Vercel är annars en ny maskin med ny adress, och då ser Fortnox en ny enhet varje gång: «ny inloggning»-mejl och engångskod. Med kakorna kvar ska id.fortnox.se känna igen enheten (90 dagar enligt deras egen text).
Kvitton: Fortnox-inloggningen tittar på sidan i stället för att följa en fast ordning2.84.7
2026-10-12
Stegen kommer inte i samma ordning varje gång: med sparade kakor hoppar Fortnox över engångskoden, ibland över företagsvalet, och sidan kan vara på svenska eller engelska. Inloggningen tittar nu på vad sidan visar just nu — valet av sätt, användarnamn, lösenord, engångskod, välj företag, «du är utloggad» (börjar om), villkor eller supportverifiering (stopp med besked) — och gör det som hör till tills adressen har token. Samma steg två gånger utan att något hänt ger ett fel med bild.
Inloggningen har flera företag (test, Texsolv AB, Vitlanda Holding AB) och Fortnox frågar «Välj företag» efter koden. Appen väljer det som står under Fortnox-inloggningen (förval Texsolv AB) — på namnet, eftersom «test» har samma org.nr.
Kvitton: Fortnox engångskod som vidarebefordrat sms2.84.5
2026-10-12
Fortnox skickar koden som sms, och den kommer till info@ som ett mejl vidarebefordrat från telefonen («From : Fortnox · 027 294 är din verifieringskod · @fortnox.se #027294»). Appen krävde att mejlet kom från en Fortnox-adress och såg det inte. Nu räcker det att Fortnox och en kod nämns i texten, och koden läses även delad («027 294») och i #-formen.
Kvitton: Fortnox-inloggningen klarar sidan på engelska2.84.4
2026-10-12
id.fortnox.se visar «Sign in» och «Password» för servern i Frankfurt trots att vi ber om svenska. Valet, feltexterna och «lita på enheten» känns nu igen på båda språken.
Kvitton: Fortnox-inloggningen väntar på att inloggningssidan ritat sig2.84.3
2026-10-12
id.fortnox.se landar på /fortnoxid-ui-login och går först efter en stund vidare till valet av inloggningssätt. Appen gick vidare direkt och tyckte att lösenordssteget saknades. Nu väntar den upp till 30 sekunder på att sidan visar valet, användarnamnet eller lösenordet.
Kvitton: Fortnox-inloggningen går till en app-adress, inte roten2.84.2
2026-10-12
apps2.fortnox.se/ svarar «404 page not found»; inloggningen börjar nu på /app/…/companycard/transactions, som skickar vidare till id.fortnox.se.
Kvitton: en zip i _Inkorg packas upp2.84.1
2026-10-12
Meta och Google ger en zip när man laddar ner flera kvitton på en gång (Fakturering → markera alla → Ladda ner kvitton). Släpp zippen i KVITTON/_Inkorg som den är: den packas upp, PDF:erna läses var för sig och zippen tas bort. Eget zip-stöd utan paket (lib/zip.js).
Kvitton: Dropbox-inkorgen för kvitton som inte kommer med mejl2.84.0
2026-10-12
Metas mejl om en annonsbetalning är bara en avisering utan företagsuppgifter — det riktiga kvittot finns i Ads Manager. Samma med Google Ads, Microsoft, Shopify och fotade papperskvitton. Ladda ner och släpp filen i Dropbox → KVITTON/_Inkorg: var tionde minut läser appen mappen, AI:n läser säljare, belopp, datum och vems kort, filen flyttas till KVITTON/<person>/<månad>/<datum säljare belopp> och loggas som sparat kvitto — och matchas sedan mot korttransaktionen i Fortnox som alla andra. Vill du peka ut vem: _Inkorg/Thomas Ivarsson/. Knappen «Läs _Inkorg nu» under status. PDF, JPEG och PNG (det Fortnox tar).
Notisen om saknat kvitto säger var det brukar finnas (Meta: Ads Manager → Fakturering → Betalningsaktivitet, Google Ads → Fakturering → Transaktioner …) och att det ska släppas i _Inkorg.
Loggen: «Inget» på en inkorgsrad tar bort filen; «Gör om» läser filen på nytt. Töm-knapparna rör inte inkorgens kvitton.
Fortnox-inloggningen: Chromium presenterar sig som en vanlig webbläsare (inte «HeadlessChrome»), väntar längre på vidareskickningen till id.fortnox.se, och säger vilken adress den fastnade på. Bilden från en misslyckad inloggning visas direkt efter «Testa inloggningen».
Kvitton: två små härdningar av Fortnox-inloggningen2.83.3
2026-10-12
Felbilden från en misslyckad inloggning sparar adressen utan frågedelen (auth_req är en inloggningsbiljett), och «lita på enheten» bockas bara i på en kryssruta som faktiskt heter så — inte på vilken kryssruta som helst på sidan.
Kvitton: en brevlåda kan vara bara för Fortnox engångskod2.83.2
2026-10-12
Brevlådeformuläret har valet «Bara Fortnox engångskod»: brevlådan (t.ex. lagerappen@texsolv.se, en egen Fortnox-användare för appen) läses inte efter kvitton utan bara när Fortnox mejlar koden vid inloggningen.
Kvitton: lösenorden ligger krypterade i databasen2.83.1
2026-10-12
Brevlådornas lösenord och Fortnox-inloggningen (lösenord, kakor, token) krypteras med AES-256-GCM och en nyckel härledd ur SESSION_SECRET i Vercels miljö. En kopia av databasen räcker alltså inte för att läsa dem — det krävs både den och Vercel. Gamla värden i klartext krypteras vid första läsningen. Byts SESSION_SECRET säger appen till och lösenorden får skrivas in igen.
De skickades aldrig till webbläsaren och ingår inte i säkerhetskopian; det är oförändrat.
Kvitton: avstämning mot Fortnox Företagskort — kvittot läggs på rätt korttransaktion innan den bokförs2.83.0
2026-10-09
Inställningar → Kvitton → Avstämning: korttransaktionerna under Företagskort hämtas (även obokförda och reserverade) och matchas mot kvittona i loggen på belopp i samma valuta, datum och säljare. Säkra laddas upp på transaktionen i Fortnox — som att släppa filen i sidopanelen och trycka «Hantera senare» — så att bokföringen sedan kan göras med kvittot på plats. Osäkra (flera kvitton passar, eller kortet visar en betalväxel) får Haiku titta på; säger den inte säker väntar de på ett tryck.
Fortnox API ser inte obokförda köp, så appen loggar in på Fortnox webb som ni: lösenord, och engångskoden Fortnox mejlar läses ur brevlådan den går till. Sessionen återanvänds tills Fortnox säger nej. Går inloggningen inte visas vad den såg (en bild) under Avstämning.
Notiser: den vars kort det är får mejl när ett kvitto fortfarande saknas tio dagar efter köpet, och när en matchning är osäker — bara om det egna kortet, en gång i veckan per köp. Adresserna står under Avstämning → Notiser.
Natten 03:30 körs avstämningen av sig själv (/api/kvitton/avstam). Knappar: Hämta från Fortnox och matcha, Ladda upp alla säkra, Koppla, Välj kvitto…, Fel kvitto (tar bort filen i Fortnox igen), Ignorera.
Kvitton: köparens namn avgör mappen när kortet inte står2.82.2
2026-10-09
info@ får kvitton för både Joel och Thomas. AI:n läser nu vem kvittot är ställt till («Köpare», «Billed to», «Hej Thomas») och förnamnet matchas mot personerna i kortreglerna och på brevlådorna. Kortets sista siffror vinner om de står; brevlådans «Vems» gäller sist.
Kvitton: bara kvittot när Stripe skickar både faktura och kvitto2.82.1
2026-10-09
Anthropic, OpenAI och Vercel bifogar Invoice-… och Receipt-… för samma köp, och båda sparades. Nu sparas bara kvittot. Städknappen under loggen tar bort fakturakopiorna som redan ligger i Dropbox.
Kvitton: läget överst, mappen per person och kort, dubbletter bort, länkar till Dropbox2.82.0
2026-10-09
Överst på sidan står läget: À jour, Läser in (med antal kvar) eller Läser just nu, när det senast kördes och när nästa körning går, och räkneverk för kvitton, fakturor, att granska och hoppade. Varje brevlåda har en mätare för hur långt den är läst, och en länk till sin mapp i Dropbox. Loggen har färgade etiketter, beloppet i fetstil och varje fil som en länk till mappen i Dropbox.
Mappen i Dropbox är personens, inte brevlådans. Står kortets sista fyra siffror i kvittot och finns de under Regler → Kort → person («3060 = Joel T») hamnar kvittot i den personens mapp — ett Anthropic-kvitto i butikens Gmail är ändå Joels kort. Annars gäller «Vems» på brevlådan.
Ett köp sparas en gång. AI:n ser vilka kvitton som redan sparats runt samma datum och märker orderbekräftelsen, fakturan och kvittot för samma köp som dubblett, liksom samma mejl till två brevlådor. Exakt samma mejl (avsändare, ämne, belopp, dag) stoppas utan AI.
Paketinfon: erbjudande om att vi skickar med FedEx2.81.8
2026-10-09
Texten till kunden i paketinfon slutar nu med «Would you rather have us ship it?»: det billigaste FedEx-alternativet ur priserna som hämtades på fraktsidan, med påslag. Kund i Sverige: kronor, minst 100 kr på, avrundat uppåt till hela tiotal. Kund utomlands: euro, minst 10 € på, avrundat uppåt till hela euro. Kursen är ECB:s dagliga referenskurs (sparas och hämtas om två gånger per dag); går den inte att hämta används den senast sparade, och finns ingen alls står priset i kronor.
Under strecken, bara för er, står hur beloppet räknades: FedEx pris, kursen och påslaget. Hämtades inga FedEx-priser står det, och kundtexten får inget erbjudande.
Paketinfon går att skicka igen från sändningen2.81.7
2026-10-09
När kunden bokar frakten själv finns nu «Skicka paketinfon igen…» i sändningen, ovanför «Ta tillbaka». Brevlådan från Inställningar → Mejl står ifylld; byt den eller lägg till fler mottagare (högst tio) och tryck Skicka. Mejlet byggs på nytt med kollina och adressen som gäller nu, och utanför EU följer handelsfakturan med som PDF. Bokningen ändras inte, och mejlet hamnar i loggen under sändningen.
«Kunden bokar själv»: mejlet går att skicka vidare som det är2.81.6
2026-10-09
Mejlet som kommer till er brevlåda när kunden bokar frakten själv är omgjort. Överst en rad på svenska: vem det ska till och vilket ämne («Your order #2257 is ready to be shipped»). Sedan, mellan två streck, texten till kunden på engelska — hälsning, att ordern är packad och klar att hämtas, upphämtningsadressen med telefon och e-post, leveransadressen, kollina med vikt och mått, innehållet och en rad om tullen. Kopiera den och skicka, eller tryck «Öppna som nytt mejl till kunden» så öppnas den färdig med kundens adress och ämnet.
En webborder heter #2257 i texten till kunden, som i butiken. Förpackningsnamnen (Exportlådan osv.) står inte med — de är era egna. Utanför EU står tullvärde, vikter, HS-koder och ursprung med, och raden överst påminner om att bifoga handelsfakturan som ligger i mejlet. Saknade priser eller vikter påpekas bara för er, ovanför strecket.
Under strecken, bara för er: vad FedEx hade kostat, vem som markerade och hur man tar tillbaka valet.
Kvitton: AI:ns svar tvingas till rätt form2.81.5
2026-10-09
«AI:n svarade inte med JSON» på ett Apple-kvitto: modellen svarade ibland med löpande text i stället för formen vi bad om, oftare på långa mejl. Nu begärs svaret som ett verktygsanrop med fast schema, API:ets sätt att garantera formen, så det kan inte hända. Rader som gick fel tas av «Gör om fel och HTML-kvitton».
Kvitton: en flyttad brevlåda lästes om från 20232.81.4
2026-10-09
Andra körningen fann 11 970 «nya» mejl i en brevlåda som bara skulle läsas en månad bakåt, och började spara kvitton från 2023. Orsaken: appen gick vidare från senast lästa UID och litade på att högre UID betyder nyare mejl. I en brevlåda som flyttats (Ports → Oderland i september) fick de gamla mejlen UID:er i kopieringsordningen, så tusentals gamla låg «efter» septembers. Nu söks alltid från från-datumet, och det som redan står i loggen hoppas över — loggen är sanningen, inte UID-ordningen.
Töm och börja om på brevlådan efter uppdateringen, så försvinner 2023-raderna.
Kvitton: bakloggen betar av sig själv2.81.3
2026-10-09
Fyra brevlådor med ett par tusen mejl bakåt tog 200 sekunder per tryck och gav «budgeten tog slut» för tre av dem. Nu går servern var tionde minut så länge någon brevlåda har mejl kvar (och alltid en gång per natt), och två mejl bedöms åt gången. En nyinlagd brevlåda är läst på ett par timmar utan att någon trycker.
Kördes bara en brevlåda behåller de andra sitt förra resultat, så att bakloggen inte tappas bort. Pågår en körning väntar cronen.
Kvitton: Chromium följer med till Vercel, så mejlkvitton blir PDF och inte HTML2.81.2
2026-10-09
Kvitton utan bilaga (Apple, Stripe-kvitton i mejltexten) sparades som .html med texten «The input directory …/@sparticuz/chromium/bin does not exist»: Chromiums packade binär läses med fs och följde inte med i bygget. Nu pekas mappen ut (outputFileTracingIncludes) och mejlen ritas till PDF.
«Gör om fel och HTML-kvitton» under loggen gör om alla rader som gick fel och alla kvitton som blev HTML, i omgångar om tre minuter.
Svarar inte AI:n (överbelastad, för många anrop) görs tre försök; går det ändå inte blir raden «gick inte» i stället för en gissning, och tas av knappen ovan.
Kvitton: fraktetiketter och egna dokument är inte kvitton, och en osäker AI sparar inget2.81.1
2026-10-09
En DHL-etikett sparades som kvitto. AI:n har nu en lista över vanliga misstag: fraktetiketter, waybills, tulldokument och bokningsbekräftelser från DHL, FedEx, PostNord, UPS, Sendify, Shipmondo är inte kvitton (frakten faktureras senare); dokument där Texsolv är säljare eller avsändare — egna kundfakturor, handelsfakturor, packsedlar, appens egna mejl — är inte kvitton; en orderbekräftelse är kvitto bara när det står att det är betalt.
Är AI:n osäker (under 60 %) sparas inget och raden märks «osäker — granska», med eget filter i loggen. Knapparna avgör. Gränsen går att ändra (minSakerhet i reglerna).
Rättningen sätter ingen avsändarregel när samma avsändare rättats åt olika håll (Sendify skickar både fakturor och etiketter) — då får AI:n exemplen i stället. Appens egna utskick hoppas över utan AI-fråga.
Kvitton: bara utpekade bilagor, kvitton bakom länkar, flera mappar, och AI:n får veta vilka ni handlar av2.81.0
2026-10-09
Bilagor: när AI:n sett mejlet sparas bara de bilagor den pekat ut som kvittot — inte alla PDF:er. Pekar den inte ut någon ritas mejlet självt. Det var reserven «alla PDF:er» som sparade villkor och broschyrer.
Kvitton bakom en länk: «Download invoice» hos Stripe (Anthropic, OpenAI, Neon, Vercel …) hämtas som PDF; Stripes och Paddles kvittosidor ritas. Portaler som kräver inloggning går inte den vägen — bara det som faktiskt är en PDF tas.
Flera mappar per brevlåda: «INBOX, Kvitton» i mappfältet. Loggen håller isär dem.
AI:n får se två listor vid varje bedömning — leverantörer som betalas med kortet (förifyllt med inköpsställena från kortet senaste året) och leverantörer som fakturerar via bankgiro — samt de senaste rättningarna för hand. Listorna ändras under Regler.
«Töm och börja om» på brevlådan och «Töm hela loggen» tar bort filer, rader och läge (reglerna behålls); «Gör om» på en rad gör om just den. Mappen följer mejlets datum om AI:ns datum ligger långt bort. Modell och tokens står på raden.
Bokat: alltid «Öppna sändningen», och ordern bredvid2.80.4
2026-10-09
En sändning under Bokat har nu alltid «Öppna sändningen». Förut fick en Fortnox-order bara «Öppna ordern» och allt annat bara «Öppna sändningen». Bredvid står ordern: Fortnox-ordern i appen, och för en webborder «Öppna ordern i Shopify» som går rakt till ordern i Shopifys admin. En manuell frakt (M-) har ingen order och får bara sändningen.
Webbshoppens sändningar som bokats i Shipmondo har också «Öppna ordern i Shopify» (söker på ordernumret).
Fraktbekräftelsen: förslag på fler mottagare2.80.3
2026-10-09
«+ Lägg till mottagare» i mejlet till kunden visar förslag i stället för ett tomt fält: alla adresser på kundkortet i Fortnox (e-post, faktura, order, offert), adresserna på kundens andra ordrar, dem vi mejlat förut om kundens ordrar, dem som lagts till för hand förut — och de som mejlat er från samma domän som kunden (ur mejlen brevlådeläsningen under Inställningar → Kvitton gått igenom), med namn och när. Allmänna domäner som gmail och hotmail söks inte. Varje förslag säger varifrån det kommer; ett tryck lägger till det. «Skriv en annan adress» ger ett tomt fält som förut.
Fotosteget: flera bilder, och film2.80.2
2026-10-09
När allt är avbockat stannar rutan kvar efter första bilden: «Ta en till» och «Filma» så många gånger man vill, med miniatyrerna i rutan (kryss för att ta bort), och «Klar – ange kolli» när man är färdig. Har inget tagits står «Hoppa över» där i stället. Rutan frågar inte igen för ordern när man gått vidare.
Film: «Filma» öppnar kameran för video. Filmen är för stor för databasen och laddas upp bit för bit till filagret (samma väg som videorna under Sociala), med procent på knappen medan det pågår. Den visas med en spelknapp bland bilderna och spelas i full storlek när man trycker. Tas den bort i appen tas den bort ur filagret också.
I packvyn och på kvittot heter rutan «Foto och film på kartongen» och har både «Ta en bild till» och «Filma».
Kartongetikett per kolli: välj era kartonger, och ta bort ett kolli för mycket2.80.1
2026-10-09
I bladet «Kartongetikett per kolli» finns «Förpackning» överst i rutan för vikt och mått — samma lista med era kartonger som på kollikortet i packvyn. Väljer man en fylls måtten i, och egenvikten följer med som förut.
«Ta bort kolli N» bredvid «Töm kollit» tar bort det valda kollit, både i bladet och kollikortet i packvyn. Ligger något i det frågar appen först, och artiklarna blir kvar att lägga i ett annat kolli. Det sista kollit går inte att ta bort.
Kvitton: AI:n avgör kvitto eller faktura, bara underlaget sparas, och loggen lär sig av rättningarna2.80.0
2026-10-09
Varje mejl bedöms av Claude (Haiku, under ett öre per mejl) med bilagorna som underlag: kvitto — betalt eller dras på kortet — sparas i Dropbox; faktura som ska betalas via bankgiro går vidare till fakturaadressen (invoice@ → Fortnox) om det är påslaget under Inställningar → Kvitton → Fakturor; avisering («din faktura finns att hämta») och annat hoppas över men syns i loggen. Första versionen sparade varje PDF från en känd avsändare och såg inte skillnad på kortkvitto och faktura.
Bara bilagorna som är själva kvittot eller fakturan sparas — inte villkor, logotyper eller bilder i signaturen. Beloppet och datumet läses ur dokumentet, inte gissas ur texten.
Rätta i loggen: knapparna Kvitto · Faktura · Inget på varje rad gör om raden (filen tas bort, eller mejlet hämtas igen och sparas/vidarebefordras) och blir en regel för avsändaradressen som gäller före AI:n nästa gång. AI:n får också se tidigare rättningar från samma avsändare. Rader med låg säkerhet märks «osäker».
Samma mejl i två brevlådor hanteras en gång (Message-ID). Kräver ANTHROPIC_API_KEY på Vercel; utan den går det på ordlistorna som förut.
Plockordning: välj kategori och klicka i artiklarna2.79.1
2026-10-09
Inställningar → Plockordning: i stället för att skriva villkor klickar man in artiklarna. «Välj artiklar» på en grupp öppnar ett blad — välj kategori överst, bocka i artiklarna i listan (med bild, nummer och benämning), eller «Bocka i alla» i kategorin. Sökrutan letar i alla kategorier. En artikel som redan ligger i en annan grupp står med gruppens namn; bockas den i flyttar den hit. «Dölj de som ligger i andra grupper» visar bara det som är kvar att placera.
Kategorier som bara skiljer sig i stora och små bokstäver («Solv» och «SOLV») visas som en.
Villkor som lagts in i 2.79.0 gäller fortfarande för det som inte klickats in, och står kvar på gruppen med ett kryss för att ta bort dem.
Foto på kartongen när allt är avbockat · plockordning efter lagret · extra mottagare sparas per kund2.79.0
2026-10-09
Foto på kartongen: när sista raden bockats av kommer en ruta — «Ta bild» öppnar kameran, «Hoppa över» går vidare. Först därefter kommer kollina. Fotot förminskas i telefonen (ett par hundra kB) och sparas på ordern; i packvyn och på kvittot finns «Foto på kartongen» med bilderna (tryck för full storlek), «Ta en bild till» och kryss för att ta bort. Hoppar man över frågas det inte igen för den ordern.
Plockordning: nytt under Inställningar → Plockordning. Lägg grupper i den ordning de står i lagret — till exempel Färgade solv, Via solv, Cord, Sprint — och ange vad som hör till varje: kategorin, början på artikelnumret eller ett ord i benämningen. Under varje grupp syns direkt hur många artiklar den fångar och vilka. Inom en grupp står raderna efter artikelnummer; det som inte hamnar i någon grupp kommer sist i kategoriordningen. Gäller direkt, även rundor som redan plockas. Utan grupper är allt som förut.
Fraktbekräftelsen: adresser som läggs till utöver orderns sparas på kunden (kundnumret i Fortnox) och står förifyllda nästa gång. Tar man bort en innan man skickar är den borta nästa gång också.
Fraktbekräftelsen skickas bara när du trycker — med flera mottagare · inga handelsfakturavarningar inom EU · fakturerad order är inget fel2.78.0
2026-10-09
Mejlet till kunden går inte längre av sig självt när frakten bokas. På kvittot finns den gröna knappen «Skicka mejl till kunden…»: den öppnar mejlet med mottagare, ämne och text ifyllda — allt går att ändra — och «+ Lägg till mottagare» lägger till fler adresser. En felskriven adress sägs innan något skickas. Knappen säger «Skicka till 2 mottagare» och först den skickar. Efteråt heter den «Skicka mejl till kunden igen…».
FedEx inom EU: kvittot visade «Varför gick fakturan inte elektroniskt?» och «artiklar saknade pris — står som 0 på handelsfakturan» för sändningar som inte har någon handelsfaktura. Orsaken var att appen räknade elektronisk faktura som begärd fast den aldrig skickas inom EU. Nu syns de rutorna bara över en tullgräns, och listan säger inte «på papper» om en EU-sändning.
Redan fakturerad order: Fortnox låter inte en fakturerad order ändras, och kvittot visade det som ett rött «Frakten kom inte in på ordern» med Fortnox felkod. Nu står det lugnt «Ordern är redan fakturerad (faktura 4711)» med fraktkostnaden och att den läggs på en tilläggsfaktura om den ska faktureras. Vet appen redan att ordern är fakturerad frågas Fortnox inte alls.
Ingen efterforskning per e-post till FedEx2.77.2
2026-10-08
FedEx tar inte emot efterforskningar per e-post. Knappen «Efterforska hos FedEx» är borta från FedEx-sändningarna i Bokat, och automatiken skickar inga mejl till FedEx — inte heller om en adress till dem stod ifylld (den rensas bort). PostNord och Sendify fungerar som förut.
Inställningar → Efterforskning: fältet för FedEx är borta, och det står varför — kontakta FedEx via fedex.com eller telefon. Exempelmejlet visar en PostNord-sändning. Tidigare efterforskningar till FedEx står kvar i historiken.
«Behöver en blick» syns när filtret är på2.77.1
2026-10-08
Bokat: med glastemat blev knappen «behöver en blick» vit när filtret var på — vit text på vit botten, oläslig och utan synligt läge. Nu är den varmt beige när den är av och helt orange med vit text när den är på, och texten säger «✓ Visar bara 3 · Tryck för att visa alla». Samma rättning gäller rutan överallt där den används.
Statistik: tryck på ett land för mer · Per tjänst omgjord · Bokat: «behöver en blick» och «Uppdatera alla» på samma rad2.77.0
2026-10-08
Fraktstatistik: varje land i «Per land» går att trycka på. Då kommer ett blad med samma period och källa för bara det landet — försändelser (bokade här och webb), snittpris och total, andel levererade, leveranstid (median, snabbast och längst), månad för månad, per fraktbolag, per tjänst, var paketen är, och de senaste femton sändningarna dit med datum, bolag, pris, läge och hur lång tid de tog. Våra egna går att öppna därifrån.
«Per tjänst» är inte längre en tabell: en rad per tjänst med bolaget som märke, tjänstens namn (utan bolagsnamnet en gång till), snittpriset stort till höger, en stapel för antalet, och antal, andel, total och leveranstid under.
Bokat: knappen «Boka upphämtning» är borta ur huvudet — upphämtningen bokas från Plock och från varje FedEx-sändning i listan. «Behöver en blick» och «Uppdatera alla» står på samma rad och delar på bredden; finns inget som behöver en blick tar «Uppdatera alla» hela raden.
Bokat är en lista: våra egna och webbshoppens sändningar tillsammans · statistiken under Översikt · «Fortsätt – ange kolli» när allt är avbockat2.76.0
2026-10-08
Under Bokat är underflikarna «Bokade här» och «Webbshoppen» ihopslagna till en lista, nyast först. Märket på raden (Fortnox, Shopify, manuell …) säger varifrån sändningen kom, och webbshoppens rader säger «via Shipmondo». En sökning, en «Uppdatera alla» och en rad «behöver en blick» gäller båda. En webborder som bokats här i appen står en gång, som vår egen rad med rundans knappar.
Webbshoppen hämtas femtio i taget som förut; «visa fler» längst ned hämtar nästa femtio och de äldre egna sändningarna som hör till den perioden.
Fliken «Skrivare» heter nu «Översikt» och har Fraktstatistik överst, ovanför skrivarkön. Statistikens tillbakapil går dit.
Kartongetikett per kolli: etiketten säger bara «CARTON 1», «CARTON 2» … — inte «of 3», eftersom man märker en kartong i taget och inte vet hur många det blir. Etiketten går inte att skriva ut förrän kollit har både vikt och mått; rutorna för dem finns nu direkt i bladet (samma värden som kollikortet i packvyn), och knappen säger vad som fattas.
Plockvyn: när allt är avbockat kommer en ruta upp nedtill — «Allt är avbockat» med den gröna knappen «Fortsätt – ange kolli», som går till kollina. Krysset stänger rutan. Knappen längst ned på sidan (förut «Avsluta och skriv ut») blir också grön och heter likadant när allt är avbockat.
Knapp för kartongetikett i varje kollikort · artikelremsan under avbockningen · skrivaragenten 2.72 tillbaka igen2.75.1
2026-10-08
Plockvyn: remsan med alla artiklar ligger nu direkt under «Avbockad · x av y» och ovanför «Ångra avbockningen». På en rad som inte är plockad än ligger den på samma ställe — under «Plockad», ovanför «Färre…».
Varje kolli i packvyn har en knapp «Kartongetikett för kolli N» som öppnar bladet direkt på det kollit. Knappen visar hur många artiklar som ligger i kollit, eller «Välj innehåll» om inget är valt än.
Skrivaragenten: Agent.cs i kodmappen hade åter skrivits över med den äldre koden (agenten hämtade den från appen innan 2.74 var driftsatt) och checkats in som «skrivagent?». Koden från 2.74 är tillbaka — med satspapper som ett jobb, «Stoppa» och att agenten inte hämtar filer från appen när den kör ur git-mappen.
Kartongetikett per kolli: välj vilka artiklar som ligger i vilken kartong2.75.0
2026-10-08
Ny knapp «Etikett per kolli» bredvid «Kartongetikett» i plockvyn, och «Kartongetikett per kolli» i packvyn. Bladet visar orderns alla artiklar som en lista: bocka i det som ligger i kollit — antalet blir det som är kvar av raden, och − och + justerar. Det som inte lagts i något kolli står kvar att bocka i under nästa (Kolli 2, 3 … och + för ett till). En artikel som redan ligger helt i andra kollin står grå med «I kolli 2».
«Allt som är kvar» lägger resten av ordern i kollit, «Töm kollit» börjar om. Nedtill står hur många artiklar som inte är lagda än, eller «Allt är fördelat på kollina».
«Skriv ut etikett för kolli 2» skriver kollits etikett: CARTON 2 OF 3 stort överst, vikten om den är ifylld, och bara det som ligger i just den kartongen. «Skriv ut alla» ger en etikett per kolli i ett jobb. Samma Zebra och dpi som kartongetiketten.
Fördelningen sparas på rundan medan man bockar, så den finns kvar om man går därifrån. Kollina i bladet och kollikorten i packvyn följs åt: ett nytt kolli i bladet ger ett kort för vikt och mått, och tar man bort ett kollikort går dess innehåll samma väg. En rad kan aldrig läggas i fler exemplar än den har.
Kartongetiketten per artikel och innehållsetiketten för hela ordern finns kvar som förut.
Kunden bokar själv: under Bokat, går att ta tillbaka, och mejlet säger vad FedEx hade kostat · «Book your own freight» får packsedel direkt · skrivaragenten 2.72 tillbaka2.74.0
2026-10-08
«Kunden bokar själv» står under Bokat i fraktlistan. Ändrar kunden sig: «Ta tillbaka — boka frakten själva» på raden (eller på kvittot i rundan) tar bort markeringen och öppnar fraktvalet direkt, med färska priser. Rundan står då under Packat igen, och raden försvinner ur Bokat — inget bolag hade något att avboka.
Mejlet med paketinfon till er brevlåda räknar nu upp vad varje FedEx-tjänst hade kostat — pris, leveranstid, och om det var ert avtalspris eller listpris — ur priserna som stod på fraktsidan när valet gjordes, med tidpunkten. Hämtades inga FedEx-priser står det.
Webborder med fraktvalet «Book your own freight»: packsedeln skrivs ut av sig själv när ordern kommer in i appen, en gång per order. Ordrar som redan låg i Pågår utan packsedel får sin vid nästa avläsning.
Skrivaragenten: koden från 2.72 (alla satspapper i ett jobb, «Stoppa» i Windows kö) är tillbaka. Den försvann för att agenten kör ur kodmappen och uppdaterar sig själv från appen: den hämtade appens äldre Agent.cs — 2.72 var incheckad men inte driftsatt än — och skrev över den nya i mappen, som sedan checkades in som «fix med skrivare». Nu känner agenten igen att den kör ur en git-mapp och hämtar då inga filer från appen; Agent.cs i mappen gäller, och programmet byggs om när den ändras.
Granskningen, del 2: begripliga fel överallt, tysta knappar som säger till, och oanvänd kod bort2.73.0
2026-10-08
Inga kryptiska fel: alla anrop i appen läser nu svaret med samma läsare (app/svar.js). Tappar telefonen nätet står det «Ingen kontakt med servern — kontrollera nätet och försök igen», svarar servern med en felsida står det vad det betyder («Servern svarade inte i tid», «Du är utloggad») — i stället för «Load failed» och «Unexpected token '<'». Tysta bakgrundshämtningar beter sig som förut.
Inställningar → Frakt: Spara-knapparna för PostNords priser, upphämtningsdagar, avstängda bolag, upphämtningsanvisning, tullbetalare och fraktraden säger nu «Sparat» — eller felet. Förut såg en misslyckad sparning ut precis som en lyckad.
Tillverkning: ett nej från servern («Behövs inte», skapa, slå ihop …) visas som toast. Förut försvann felet i samma ögonblick, när listan laddades om.
Setup: «Synkat mot Fortnox» och «Hela registret omläst» kommer bara när det gick; annars står felet. Inget svar vid upplåsning heter inte längre «Fel lösenord», och knapparna fastnar inte vid nätfel.
Fraktlistan: «Öppna ordern» visas bara för Fortnox-ordrar; manuella frakter och webbordrar får «Öppna sändningen» (de gav förut «Order … finns inte»).
Plockningen: kunde tullkontrollen inte göras visas det («Tullkontrollen kunde inte göras — …») i stället för att det såg ut som att inget saknades.
Inventering: «Avbryt» säger nu om det gick, och en omgång som fastnat i ett avbrutet utskick går att avbryta. Granskningen fastnar inte på «Kontrollerar saldon…» vid nätfel, och räknaren för ändrade saldon visar rätt (den stod alltid på noll).
Artikelpanelen, EAN-sidan, etiketterna, beställningen och inventeringsrapporten fastnar inte längre på «Hämtar…» vid nätfel. Etikettsidans sökning väntar tills man slutat skriva och visar aldrig ett äldre svar över ett nyare.
Fraktvalet: «Uppdatera priser» frågar Sendify igen med samma tid i stället för att tömma deras lista, och väljer bort en vald Sendify-rad (märket byts vid varje fråga). «Försök igen» vid Sendify-fel gör nu ett nytt försök.
Tillverkningsorder: töms antalsfältet sätts det gamla antalet tillbaka — förut sparades 0 tyst.
FedEx: varje kollis vikt avrundas som totalvikten (2 × 1,26 kg gav förut kollin 2,52 men total 2,6). Datum till FedEx, upphämtningen, beställningsfönstret, lagerdokumenten i Fortnox och handelsfakturan räknas i svensk tid — mellan midnatt och två på natten blev det förut gårdagens datum.
Skrivare: «borttagen» om en agent visas bara när borttagningen gick. En ny bokning efter en avbokning ärver inte längre förra bolagets spårningsnummer, pris och valuta.
Borttaget, som ingen del av appen använde: den gamla videouppladdningen direkt till Blob (/api/sociala/blob och vakten), kodbyte via POST /api/me (kodbytet görs med engångskod), sex frågevägar och två steg i API:erna som ingen anropade (?mal, ?kartongetikett, ?innehallsetikett, ?id i plock, ?sparningssparr, vy=status, filter=raknad, DELETE på en räkning, GET på saldon, stegen «integrationer» och «anteckning»), och sexton funktioner och konstanter i lib/ utan användare.
.env.example och README listar nu alla inställningar koden läser — e-post, FedEx (OBS: utan FEDEX_ENV=production går allt mot testmiljön), PostNord, Sendify, notiser, säkerhetskopian, Sociala, och felsökningsrattarna.
Skrivaragenten: appen visar «Stoppa» för ett papper som redan gått till skrivaren bara när agenten på den datorn kan stoppa det, och säger annars att det får stoppas på skrivaren eller i Windows kö. (Att agenten var tillbaka på 2.71 här var inte meningen — se 2.74.)
Proven: verktyg/svarprov.mjs nytt; backupprovet förväntade sig bara bildtabellen och föll sedan satspappren kom till — det var provet som var för snävt.
Satspappren som ett jobb i skrivaren, och «Stoppa» på ett papper2.72.0
2026-10-08
Skriver man ut flera satspapper gick varje exemplar som ett eget jobb till skrivaren — ett i taget, med paus emellan, och skrivarens logg fylldes med rader. Nu går alla exemplaren som ETT jobb (sida 1, 2, 1, 2 … i samma dokument, så dubbelsidiga ark förblir hela). Kräver skrivaragent 2.72 — den uppdaterar sig själv; tills dess går det som förut, ett papper per exemplar.
Stoppa: under Plock → Skrivare har varje papper en knapp. Ligger pappret kvar i kön tas det bort direkt. Har datorn vid skrivaren redan tagit det ber appen datorn ta bort jobbet ur Windows utskriftskö (inom några sekunder); det som redan hunnit ut kommer ut, resten stoppas. Raden visar «stopp begärt» och sedan vad datorn sa — hur många jobb som togs bort. Gäller papper utskrivna den senaste timmen.
För att datorn ska hitta rätt jobb bär varje papper sitt nummer i jobbets namn i Windows kö (« #1234»): PDF:er och etikettark döps av agenten, appens egna sidor sätter numret i sin titel. Förut hette alla «Texsolv Lager» och gick inte att skilja åt.
Skrivaragenten 2.72: säger till appen att den kan flera exemplar och stopp (kopior=1), och tar bort jobb ur Windows kö via PowerShell (Get-PrintJob/Remove-PrintJob). Ingen ny referens i bygget, så äldre agenters uppdateringsskript kan bygga den.
Nytt prov: verktyg/stopprov.mjs.
Granskningen, del 1: tolv rättningar i plock, frakt, tull och tillverkning2.71.0
2026-10-08
Fraktbekräftelsen till kunden går nu av sig själv efter bokningen. Rutan «Mejl till kunden» läste bokningen ur rundan, och rundan lästes aldrig om efter bokningen — så mejlet gick bara när någon öppnade ordern igen och tryckte själv. Har gällt sedan 2.62.
En restrunda (omgång 2) skrivs inte längre om till hela ordern när ordern läses om från Fortnox (det räckte att den fakturerades): resten jämförs mot ordern minus det tidigare omgångar redan plockat. Förut blev 40 kvar till 100 igen, med de 60 plockade som «tillagda» och en ny plocklista på skrivaren.
Bokade sändningar utan spårningsnummer — Sendify ger ibland numret först när bolaget svarat — står nu under Bokat och frågas av spårningssvepet på Sendifys eget nummer; svepet skriver in spårningsnumret när det kommer. Förut låg de kvar under Packat som obokade och frågades aldrig. «Kunden bokar själv» stod på båda ställena; nu bara under Bokat. En avbokad sändning står under Packat igen, för den ska bokas om.
Samma artikel på två orderrader (olika rabatt, olika text) dubblerade varan i tullen: dubbelt antal, dubbelt värde, dubbel vikt på handelsfakturan och i FedEx tulldel. Nu en träff per artikel med orderns vägda pris. Samma fel i tillverkningsbehovet gjorde att bara sista radens behov föreslogs (100 + 50 beställda gav 50); nu läggs de ihop.
Tas en orderrad bort i Fortnox på en order med textrader (rader utan artikelnummer) kunde den gamla artikelraden ligga kvar i appen — och i plocklistan — för att radnumren förskjuts. Nu tas varje rad bort som inte längre står på ordern.
«Skicka igen» och returetikett från en euroorder förifylldes med SEK och tomt kundnummer (koden läste fält som inte fanns); tullvärdet deklarerades i fel valuta. Nu orderns valuta och kundnummer.
Markera som avbokad i appen: PostNord går inte att avboka härifrån, FedEx nekar när bilen redan hämtat, och en Sendify-sändning utan nummer går inte att nå — sådana sändningar var en återvändsgränd (ingen ny bokning förrän den gamla var avbokad). Nu finns knappen «Markera som avbokad i appen» i fraktlistan, och när bolaget säger nej erbjuds den direkt. Avbokningen hos bolaget gör man där; i listan står «bara i appen» vid namnet.
Tillverkningsorder och inventering kunde fastna i «skickas»/«sending» för alltid om anropet dog mellan låset och «klar» (Fortnox segt, Vercels tidsgräns). Låset släpps nu efter några minuter, och ett dokument som redan skapats i Fortnox bokas inte in en gång till: numret sparas innan frisläppningen, och nästa försök frisläpper det i stället för att skapa ett nytt.
Upphämtningstid efter klockan 15: förut kunde appen be om «15:00 i dag» klockan 15:30 — en tid som redan varit — och bolaget svarade «för sen upphämtningstid». Nu nästa vardag klockan nio, och rutan säger att dagen flyttades.
Sendifys priser sparas nu i offerten på rundan, så att fraktradens pris i Fortnox tas från serverns egen siffra och inte från telefonen — skyddet som redan fanns för FedEx och PostNord. Priserna hämtas i flera pass (FedEx/PostNord, Sendify när tiden valts) och varje pass skrev över hela offerten; nu byts bara det bolags rader som frågats.
En runda med en bokad frakt går inte längre att ta bort med soptunnan (det raderade etiketter, handelsfaktura och spårningsnummer medan sändningen fanns kvar hos bolaget). Avboka frakten först. «Ta bort alla orörda» hoppar över sådana.
Nytt prov: verktyg/granskningsprov.mjs kör igenom alla punkterna ovan mot slaskdatabasen; mot den gamla koden faller fjorton av dem.
Kompletteringssatsens etikett i rätt storlek: upplösningen följer skrivaren den faktiskt går till2.70.3
2026-10-08
Satsens etikett kom ut i halvannan storlek — texten rann utanför högerkanten, streckkoden hamnade nedanför lappen. Orsaken var upplösningen: när en Windows-skrivare pekades ut för en sort under Inställningar → Skrivare skrevs 300 dpi in av sig självt, fast de flesta Zebror är 203, och en etikett ritad för 300 på en 203-skrivare blir 1,5 gånger för stor. Nu föreslås den upplösning samma skrivare redan har på en annan sort (eller den gemensamma inställningen), och raden varnar när samma skrivare står med olika upplösning på två sorter.
Dessutom ritades etiketten i fel upplösning när sorten inte pekats ut till någon dator utan följde kartongetikettens: pappret gick till den skrivare som valts för sorten på den datorn, men ritningen gjordes i den gemensamma upplösningen. Ritningen slår nu upp datorn med samma reservkedja som kön (satsetikett → kartongetikett → fraktetikett, artikeletikett → rektangulära rullen).
Kontrollera raden Kompletteringssats under Inställningar → Skrivare → Skrivare per sort: står den på 300 dpi men Zebran är en 203 (som Kartongetikett), byt till 203.
Satspapper: upp till 1000 på en gång2.70.2
2026-10-08
«Skriv ut papper» på en tie-up-sats tog högst 20 exemplar. Nu går det att skriva ut upp till 1000 på en gång — en hel tillverkningsomgång. Varje exemplar är fortfarande ett eget papper i kön, och de läggs in i omgångar så att även tusen hinner in innan anropet tar slut.
Plockningen: sidan rullar även från bildremsan; «Skicka paketinfo» när kunden bokar själv2.70.1
2026-10-08
Började man dra uppåt eller nedåt med fingret på en av artikelbilderna längst ned i plockningen stod sidan stilla — remsan hade sagt åt telefonen att bara sidledsdrag var tillåtna där. Nu rullar sidan som vanligt oavsett var fingret landar, och remsan rullar fortfarande i sidled. Samma rättning för kategoriraden i artikellistan.
Har man valt «Kunden bokar själv» heter knappen längst ned «Skicka paketinfo till info@texsolv.se» (adressen ur Inställningar → Mejl) — inte «Boka och skriv ut etikett», för inget bokas och ingen etikett skrivs. Kortet, kvittot och toasten säger samma sak, och mejlet heter «Paketinfo – order … (kunden bokar frakten själv)».
Röda knappar av save-sorten («Boka senare» i fraktvalet, «Avbryt» på tillverkningsordern, inventeringen och plocket) var gröna i glasutseendet — den gröna glasregeln tog över. Nu röda igen.
Fraktval «Kunden bokar själv»: uppgifterna mejlas till er brevlåda2.70.0
2026-10-08
Nytt val under fraktalternativen på en runda: Kunden bokar själv. Inget bolag bokas och ingen etikett skrivs. I stället mejlas allt en speditör behöver till er brevlåda (info@texsolv.se, ändras under Inställningar → Mejl): leveransadress och kontakt, avsändare, varje kolli med vikt och mått, packlistan rad för rad — och utanför EU tulluppgifterna (varuvärde, nettovikt, HS-kod, ursprung per rad) med handelsfakturan som PDF. Går mejlet inte iväg bokas ingenting.
Rundan står sedan som bokad utan spårningsnummer: «Kunden bokar själv» i fraktlistan och på kvittot, ingen fraktrad på ordern, ingen fraktbekräftelse till kunden (det finns inget att spåra), ingen avläsning hos något bolag. Markeringen går att ta bort i fraktlistan, så att frakten kan bokas på nytt. Mejlet ligger i loggen på kvittot och under Inställningar → Mejl.
Nytt prov (verktyg/kundbokarprov.mjs) på mejlets innehåll: adress, kollin, packlista, tull utanför EU, inget inom.
GitHub Desktop visade «skrivaragent/version.txt» som ändrad efter varje version. Filen skrivs av skrivaragenten själv när den uppdaterar sig, bredvid programmet — den hör inte hemma i git och är nu borttagen därifrån och ignorerad.
Artikelbilder på tillverkningsordern och kundordern2.69.0
2026-10-07
Raderna på en tillverkningsorder och under Beställt på en kundorder har nu artikelns bild, samma som i artikellistan: egen uppladdad bild först, annars butikens. Solvet känns igen på färgen fortare än på numret.
«Öppna tillverkningsordern» på kundordern var en blå textlänk i stället för den gröna knappen — rättat.
Linjen under statusfältet, på riktigt2.68.6
2026-10-07
Ytan under klockan ritas av iOS själv, i sidans angivna färg — inte av sidans bakgrund. Den färgen, html-botten och gradientens överkant var tre snäppet olika toner, och där systemets yta slutade syntes sömmen. Nu är alla tre samma (#f3f1ec), och gradientens färgfält börjar en bit ned så att överkanten är enfärgad.
Ingen linje under statusfältet2.68.5
2026-10-07
Bakgrunden gick upp under klockan, men där gradienten slutade och den enfärgade botten tog vid syntes en linje tvärs över sidan strax ovanför loggan. Bakgrundslagret sträcker sig nu förbi skärmens kanter åt alla håll.
Bubblan glider även när man sveper mellan sidorna2.68.4
2026-10-07
Den gled bara när man tryckte i menyn — vid ett svep hoppade den. Var bubblan står skrivs nu ned varje gång den placeras, så nästa sida börjar därifrån oavsett hur man kom dit: tryck, svep eller bakåtgest.
Bakgrunden går hela vägen upp under klockan på iPhone2.68.3
2026-10-07
Remsan under klockan och batteriet var vit fast sidan ritas under dem: iOS målar gradienten bara innanför sidans ruta, och ytan ovanför fick bara bakgrundsfärgen — som var genomskinlig. Nu ligger gradienten i ett fast lager som täcker hela skärmen, och html har en enfärgad botten i samma ton. Samma sak på datorn och i Safari, bara utan remsan.
Ingen knapp bakom menyn. Statusfältet och Safaris fält i sidans färg2.68.2
2026-10-07
På EAN-sidan låg «Föreslå koder» bakom menyn längst ned och gick inte att trycka på; raden låg på samma höjd som menyn. Alla rader som ska ligga ovanför menyn (knappraden, «valda»-raden, toasten, uppdateringsraden, Spara under tull) räknar nu från en och samma siffra — menyns höjd — så det kan inte hända igen när menyn byter form. I glaset är knappraden ett eget glaskort ovanför kapseln, och sidan lämnar plats under sista raden.
Kvittosidans fasta knapprad: innehållet lämnade inte plats för hela raden i glaset. Rättat.
Hemsideredigerarens flikrad förblir en rak list i glaset — arbetsbordet ovanför mäter dess höjd.
Bubblan i menyn längst ned gled inte mellan sidorna — den hoppade. Två fel: den sparade platsen man tryckte på i stället för platsen man kom ifrån, och storleksvakten sa till en gång direkt och ställde bubblan på plats mitt i glidningen. Nu glider den från Artiklar till Plock till Tillverkning, med en liten studs, och håller sig innanför kapseln.
Statusfältet och Safaris adressfält får sidans egen färg (ljus) i stället för grönt. Som app på hemskärmen ritas sidan under klockan sedan 2.68.1 — iOS läser den inställningen när appen läggs på hemskärmen, så ta bort den därifrån och lägg till den igen en gång.
Glaset närmare det riktiga: ljusreflex i kanten, bubblan som glider, knappar som lyser. Ingen vit list bakom klockan2.68.1
2026-10-07
Kanten på glaset har nu en reflex som vandrar runt silhuetten — ljus uppe till vänster där ljuset faller, mörkare nere till höger — och en inre ljusning mot kanten som gör att glaset ser tjockare ut där, som i Apples Liquid Glass. Riktig ljusbrytning kräver ett filter som bara Chrome kan; det här är gjort för hand och fungerar på iPhone.
Bubblan: markeringen i varje flikrad (menyn längst ned, Pågår/Packat/Bokat, Bokade här/Webbshoppen, Tillverkat/Inventerat) är en droppe som glider till den flik man trycker på och sätter sig med en liten studs — även mellan sidor, från Plock till Tillverkning. Knappar trycks ihop, lyser inifrån medan fingret ligger på, och fjädrar tillbaka med en översväng.
Kryssrutorna syntes knappt mot glaset (kanten var vit på vitt). Nu mörk kant, grön när de är ikryssade, och lite större.
På iPhone som app på hemskärmen stod en vit list där klockan och batteriet är. Sidan ritas nu ända upp under dem, och sidhuvudet lämnar plats.
Nytt utseende: glas. Klassiskt finns kvar under Inställningar → Utseende2.68.0
2026-10-07
Appen har fått ett glasutseende i stil med Apples Liquid Glass: en stilla färgad bakgrund, kort och listor i halvgenomskinligt vitt med oskärpa bakom och en ljus kant upptill, runda knappar, menyn som en kapsel som svävar över innehållet, artikelrutan som frostat glas. Samma innehåll, samma knappfärger — grönt, blått, orange, rött betyder samma sak som förut.
Rörelsen är kort och lugn: knappar trycks ihop en aning, flikmarkeringen glider, arket glider upp. Den som bett sin telefon om mindre rörelse får ingen alls.
Vill man ha det gamla: Inställningar → Utseende → tryck på raden, så blir det klassiskt — vita kort på beige, som förut. Valet gäller den enheten (telefonen eller datorn), så glas på telefonen och klassiskt på kontorsdatorn går bra. Glaset kostar lite kraft att rita; hackar rullningen på en äldre enhet är klassiskt svaret.
Utskrifter påverkas inte — på papper är allt vitt som förut.
Datorn: innehållet håller sig till mitten. Knapparnas färger samma överallt, med ikon. Sök bland inställningarna2.67.0
2026-10-07
Hela fönsterbredden såg konstigt ut: fraktkorten blev tre spalter och knapparna hamnade i den första. Nu fyller appen fönstret utan ram, men innehållet håller sig till 1 180 px i mitten och menyn ligger som en list längs hela nederkanten. Artikellistan är fortfarande två spalter — bara den.
Knapparnas färger följer en regel som gäller på varje sida: grönt skapar, skannar, skriver ut och bokar; blått hämtar, uppdaterar, letar, mejlar, laddar ner; orange är bilen (Boka upphämtning, alltid med lastbilen); rött tar bort och avbokar; vitt öppnar och avbryter. En färgad knapp har en ikon. Rättat där det skilde: Boka upphämtning var grön under en frakt och orange på plocksidan, Mejla till FedEx var grön, Skapa tillverkningsorder saknade ikon, Tillverkningsorder på behovssidan var blå.
Sökruta överst i Inställningar: skriv «eori», «zebra» eller «lösenord» och träffarna står som en lista, med gruppen de hör till. Varje inställning har osynliga sökord utöver sin underrad, så det man letar efter hittas även när rubriken heter något annat.
Datorn: appen fyller hela fönstret. Tio uppsnyggningar i layouten2.66.0
2026-10-07
På en dator (från 1024 px) är den rundade ramen i mitten borta: appen fyller hela fönstret, menyn ligger längs hela nederkanten, artikellistan står i två spalter (tre på en riktigt bred skärm), inställningarna i två flytande spalter, och artikelrutan är 760 px bred i stället för 520. Telefonen och iPad på högkant är som förut.
Bokade frakter: varningen om att spårningen inte svepts är en ruta och säger «15 dagar» i stället för «21618 minuter»; Boka upphämtning och Uppdatera alla står sida vid sida; den grå bildtexten är borta.
Inställningar → Frakt: långa värden (saknade nycklar) kryper inte ihop med etiketten; PostNords prisfält två i bredd i stället för tre plus en ensam.
Boka frakt manuellt: etikett ovanför postnummer, ort, land, telefon och e-post som på de andra fälten; postnumret har en bredd som rymmer platshållaren. På datorn två spalter: mottagaren till vänster, innehåll och kollin till höger.
Streckkodsetiketter: justeringen i sidled och höjdled har varsitt fält med etikett, i stället för två springor där inte ens platshållaren rymdes.
Vem får vilka notiser: slagen står med namn och förklaring under, vänsterställt.
Tillverkningsbehov: förslaget på egen rad med förklaringen under och knappen till höger därunder; den tomma bildrutan visas inte när artikeln saknar bild.
Plocklistor: en färg i knapprutnätet (Skanna), de tre andra lugna. Kundordern: Skriv ut och Spara som PDF i samma stil som Plocklista.
Kundordern och andra nyckel–värde-rader på datorn: etiketten i en egen spalt och värdet direkt efter, inte längst ut till höger.
Fraktstatistik: «fetch failed» ersatt med vad det betyder för siffrorna; «Visa som tabell» är en knapp.
Tillverkningsförslagen kom inte: Levererat-kryssen lästes som «skickat». Minussaldo bokas med ett tryck2.65.0
2026-10-07
Två stora ordrar med artiklar som var slut fick «lagret räcker till hela ordern» och föreslogs aldrig. En spärr läste Levererat-kryssen i Fortnox som att varorna gått ut — men de kryssas i när ordern läggs upp, med hela mängden, så «återstår att leverera» blev noll på nästan varje order och behovet kapades bort. Spärren är borta; saldot är det som avgör, som det var tänkt. Nytt prov (verktyg/behovsprov.mjs) lägger upp just den ordern och frågar uträkningen.
Ordersidan skriver inte längre «12 000 bokat som levererat» på raderna — det sa inget om leveransen, bara om ett kryss. Nu: «saknas 12 000 — saldot står på minus».
Artikelrutan när saldot står på minus: en ruta som förklarar att Fortnox drar av vid ordern även förbi noll, med de senaste ordrarna på artikeln som knappar — «+12 000 · order 40125 · Ashford» fyller i antalet som tillverkat, Spara gör inleveransen och saldot blir rätt. För när tillverkningen gick direkt till kunden utan att bokas.
Inställningar på dator: grupperna flyter i två spalter i stället för att stå i par. «Mitt konto» (en rad) bredvid «Hemsida» (två) lämnade förut ett hål under sig.
Handelsfakturan: namnteckningen täcker inte texten, flera blad hänger ihop; tullknapparna i tumstorlek2.64.2
2026-10-07
Namnteckningen ritades över raden «Originator» så att namnet stod halvt under underskriften. Nu har den sin egen höjd ovanför strecket, och datumet står på sitt streck i stället för ute i marginalen.
Blir fakturan flera blad: varje blad säger «Invoice no 9866 · AWB … · datum · Page 1 of 3», blad som fortsätter slutar med «Continued on next page», och summan, försäkran och underskriften står alltid tillsammans på sista bladet. Förut ritades slutet under papperskanten när varutabellen fyllde sidan — det syntes aldrig, varken på skärmen eller hos tullen. Provet ritar fakturor med 1–70 rader och kontrollerar att underskriften står på sista bladet i varje.
«Rita om handelsfakturan» och «Mejla handelsfakturan till FedEx» var två små länkar i en hjälptext, omöjliga att träffa på en telefon. Nu är det en hopfälld rad «Handelsfaktura till FedEx tull · inte mejlad / mejlad när» i fraktlistan och på kvittot, som öppnar två riktiga knappar: Rita om fakturan, Mejla till FedEx.
«Originator» skriver inte «Texsolv, Texsolv AB» när kontaktnamnet bara är bolaget igen.
Handelsfakturan: ert brevhuvud och er namnteckning, av sig självt2.64.1
2026-10-07
Appens handelsfaktura bär nu samma brevhuvud och samma namnteckning som FedEx fått för den elektroniska — bilderna ligger i appen sedan uppladdningen. Ingen skriver på för hand; pappret är underskrivet när det ritas. Laddas en ny bild upp under Inställningar → Fraktbolag används den i stället.
Fler uppgifter tullen kan fråga efter: exportland och destinationsland, fraktbolag och tjänst, betalningsvillkor när de finns.
Handelsfakturan i FedEx form, och fraktlistans knappar i grupper med ikoner2.64.0
2026-10-07
Appens egen handelsfaktura (den som ritas om, och den i plastfickan) har nu allt FedEx blankett har: logga i brevhuvudet, spårningsnummer, avsändningsdag, syfte (SOLD/RETURN), vem som betalar tull och moms, nettovikt per rad och totalt, PO-referens, summering med frakt/försäkring/emballage, och vem som står bakom pappret. Förut saknades det mesta av det när den ersatte FedEx egen.
Under en bokad frakt i listan: knapparna två i bredd med ikoner — Spåra (grön), Öppna ordern, Skicka igen, Skapa returetikett, Boka upphämtning (fylld grön) — och det som inte går att ångra för sig under ett streck: Avboka (rött), Ta bort ur listan (grått).
Handelsfakturan till FedEx tull — även från fraktlistan2.63.3
2026-10-07
«Rita om handelsfakturan med dagens uppgifter» och «Mejla handelsfakturan till FedEx» finns nu under Mejl på en bokad frakt i listan också, inte bara på kvittot. Det är i listan man står när FedEx mejl kommer.
Handelsfakturan: rabatten på orderraden drogs inte av2.63.2
2026-10-07
Tullvärdet togs från Fortnox listpris per styck, utan radens rabatt. Order 9866 (3 418 kr med 50 % rabatt) gick till tullen som 3 418 i stället för 1 709. Nu räknas priset efter rabatt — procent eller belopp — och utan moms.
«Rita om den med dagens uppgifter» på kvittot, i rutan Mejl: läser om orderns rader från Fortnox (går även på en skickad order) och ritar en ny handelsfaktura, att öppna och mejla till FedEx tull i stället för den som gick med bokningen.
«Vi saknar en faktura» — mejla handelsfakturan till FedEx tull med ett tryck2.63.1
2026-10-07
På sändningens kvitto, i rutan Mejl: «Mejla handelsfakturan till se-export@corp.ds.fedex.com». Skickar PDF:en som gick med bokningen (FedEx egen vid ETD, eller appens för plastfickan) med spårningsnumret i ämnesraden, från er brevlåda. Loggas på sändningen som allt annat. Adressen går att ändra under Inställningar → Mejl.
Bakgrund: en bokning från 10 september lämnades till FedEx först 6 oktober. Fakturan hade gått elektroniskt vid bokningen, men FedEx håller inte dokumenten så länge — exporttullen stod utan.
Kvitton ur brevlådorna, som PDF i Dropbox2.63.0
2026-10-06
Inställningar → Kvitton: lägg in brevlådor (IMAP — Oderland, Gmail med app-lösenord), och varje natt läser appen de nya mejlen. Kvitton och fakturor sparas i Dropbox under KVITTON/<person>/<månad>/, döpta till datum, avsändare och belopp: «2026-10-02 Anthropic 49,14 EUR.pdf». PDF-bilagor sparas som de är; kvitton som bara finns i mejltexten (Apple, Stripe) ritas till PDF med mejlets huvud överst.
Vad som räknas som kvitto: känd avsändare (Apple, Meta, Anthropic, OpenAI, Shopify, Microsoft, Google, Starlink, Adobe …), kvittoord i ämnet (kvitto, faktura, receipt, invoice, payment …) eller en PDF-bilaga som heter något sådant. Nyhetsbrev hoppas över. Egna regler för att alltid ta med eller alltid hoppa över en avsändare eller ett ord.
Loggen visar varje läst mejl med beslutet och varför — så att den som saknar ett kvitto ser om det hoppades över, och vilken fil det blev. «Hämta nu» kör direkt; stora bakloggar tas i omgångar om tre minuter. Bara för Administration. Lösenorden ligger i databasen och hoppas över i säkerhetskopian.
Mejlen syns i fraktlistan också2.62.2
2026-10-06
Under en bokad frakt i listan står nu «Mejl»: returetiketten till kunden, fraktbekräftelsen, efterforskningen — tryck på en rad för texten som den gick, och en länk till sändningen om den ska skickas igen. «mejlas · finns att öppna» på returetiketten betydde PDF:en och lästes som mejlet; nu står det «mejlas till kunden · PDF».
Äldre mejl — skickade innan loggen fick sina kolumner — får runda och sort ur ärendet och syns på sändningen. Texten finns inte för dem; den sparades inte då.
Fraktbekräftelsen: svenska till Sverige, och spårningslänkar för fler bolag2.62.1
2026-10-06
Förvalet är nu svenska till kunder i Sverige och engelska till alla andra (samma regel som returmejlet). Går att byta till engelska till alla under Inställningar → Mejl.
Spårningslänken följer bolaget även på Sendify-bokningar: PostNord (svensk eller engelsk sida efter kundens land), DHL Express och Freight (likaså), Bring och DB Schenker har fått länkar. DSV har ingen offentlig adress som tar numret — då står numret och bolagets namn, och kunden söker själv. Sendify själva har ingen publik spårningssida, så det blir bolagets egen.
Fraktbekräftelse till kunden, och en logg över allt appen mejlat2.62.0
2026-10-06
När en frakt bokas får kunden ett mejl från er brevlåda: «Your order 12345 is on its way» med bolag, spårningsnummer och länk. Går av sig självt, en gång per bokning. Webbordrar hoppas över (Shopify mejlar redan) och returer också. Engelska till alla som förval; «svenska till Sverige» går att välja. Inställningar → Mejl.
På kvittot står rutan «Mejl till kunden»: om bekräftelsen gick, till vem och när — eller varför inte (webborder, ingen adress, avstängt). «Skicka till kunden…» visar texten, låter en ändra och skickar — igen om det behövs.
Loggen: allt appen skickat eller försökt skicka, med texten som den gick. Samlat under Inställningar → Mejl (sök, sortera på sort, öppna sändningen) och per sändning på kvittot, under «Skickat om den här sändningen». Inloggningskoder loggas utan text.
Brevlådan: ingen varning om app-lösenord hos ett webbhotell2.61.3
2026-10-06
«SMTP_PASS är kortare än ett app-lösenord» stod kvar fast provmejlet gick fram via Oderland. App-lösenord är en Google/Microsoft-sak; hos ett webbhotell är det vanliga lösenordet rätt. Varningen visas nu bara för Google- och Microsoft-servrar.
FedEx-etiketten: TÖSSE blev T÷SSE2.61.2
2026-10-06
FedEx etikettmotor klarar inte å, ä och ö — returetiketten fick mottagarorten «T÷SSE». Allt som går till FedEx i adress och kontakt skrivs nu om till ASCII som i pass och på utlandsadresser: Å→AA, Ä→AE, Ö→OE (Tösse → Toesse, Åsa → Aasa), övriga accenter tas bort. Handelsfakturan ritar appen själv och stavar som förut.
«TEXSOLV AB» stod två gånger på returetiketten, som person och som företag. Nu står kontaktpersonen på ena raden och företaget på den andra, och är de samma skrivs bara en.
Returmejlet: ingen upphämtning via fedex.com2.61.1
2026-10-06
Mejlet till kunden föreslog «eller boka en upphämtning på fedex.com». Det kräver ett FedEx-konto, som en privatperson inte har. Nu bara: lämna in paketet hos närmaste FedEx-ombud (på båda språken).
Manuell frakt och retur: beräknad vikt, värde från butiken utan moms, kopiera spårningsnumret2.61.0
2026-10-06
Kolli 1 får ett förslag på vikt räknat ur innehållet — artiklarnas vikt ur registret, fritextradernas egen och kartongens tara — med delarna utskrivna, och samma «Använd beräknade vikten» i vikt-och-mått-rutan som i plockrundan. Artiklar utan vikt i registret nämns. Bara när det är ett kolli: talet är hela innehållets.
Lägger man till en artikel för hand fylls värde/st i från butiken, och värdet läggs på handelsfakturan utan moms. Alla tullvärden räknas nu utan moms: Shopify-raden får momsen avdragen när butiken visar priser med moms, katalogpriset delas med 1,25 när butiken är inställd så, och en Fortnox-order med «moms ingår» räknas om med radens sats. Ett eget tullvärde under Tulluppgifter går före butikens pris.
Spårningsnumret på kvittot går att kopiera med ett tryck — det ska in i Shopifys returärende.
Artikelsökningen i den manuella frakten hittar alla aktiva artiklar, också de utan lagersaldo.
Returer går ut som returvaror — ordernummer, datum och spårningsnummer på handelsfakturan2.60.0
2026-10-06
En vara som gått ut från EU och kommer tillbaka inom tre år tas in utan tull och moms, om fakturan visar att det är samma vara. Nu står det på varje returetikett: FedEx handelsfaktura får syftet «Repair/Return» i stället för «Sold», en försäkran om returned goods med ordernummer, dag och spårningsnummer för den ursprungliga sändningen, och ordernumret som RMA-referens. Pappersfakturan säger samma sak, med raderna «Originally shipped» och «Original tracking» och försäkran ovanför underskriften.
Returformuläret har fått rutan «Ursprunglig sändning» (datum och spårningsnummer). Den fylls i från webbordern — Shopify vet när den skickades och med vilket nummer — och från den sändning returen skapas «igen» från. Går att rätta för hand.
Värdet per rad ska vara det kunden betalade, inte lägre: det är det tullen jämför mot, och det är försäkran som ger tullfriheten. Formuläret säger det.
Returen får raderna och tullvärdet från webbordern, och etiketten går att spara som PDF2.59.0
2026-10-06
Returetikett från en webborder: artiklarna står nu förvalda med antal och vad kunden betalade — det är tullvärdet på vägen tillbaka. Förut fick man leta upp dem själv, och artikelraderna gick iväg med tullvärde noll; FedEx nekade med «The recipient country doesn't accept zero or null as customs value». Det var värdet som fattades, inte HS-koden.
Artikelrader på manuella frakter och returer har fått fältet värde/st (utanför EU). Tomt → butikens pris på artikeln, som nu följer med i Shopify-synken. Saknas värde ändå stoppas bokningen före FedEx, på svenska, med vilka rader det gäller — och FedEx eget besked om noll som tullvärde skrivs om med radnamnen.
«Skapa igen» från en sändning tar med priset per rad, så en retur som skapas från en bokad order får tullvärdet förifyllt.
Returetiketten: «Spara som PDF» laddar ner filen med ett filnamn som säger vad den är — Returetikett · R-12 · order 2243 · kundens namn — i stället för bara att öppnas i webbläsaren.
Felmeddelanden visades med grön bock. Hela appen säger toast(text, true) för fel, men raden kände bara igen ordet «fel» — så varje felbesked såg ut som att det gått bra. Nu rött kryss.
Städat bort en kopia av halva fraktläsningen som låg kvar onåbar i /api/frakt.
Återbetalade webbordrar försvinner ur Pågår2.58.3
2026-10-05
En webborder som återbetalats och tömts i Shopify blev liggande i Plock → Pågår som «0 av 0 rader». Shopify makulerar inte en sådan order — raderna tas bort och ordern stängs en stund senare — och appen tittade bara efter makulerad eller skickad. Nu räknas tömd eller stängd-utan-att-skickas som «ingenting att packa»: en orörd runda tas bort, en påbörjad står som avbruten med skälet (Återbetalad och stängd i webbshoppen). Liggande ordrar städas vid nästa avläsning.
Hemsidor: bilderna syns i förhandsvisningen2.58.2
2026-10-05
Bilder med srcset (toppbilder, produktbilder) laddade inte i Redigera: bara första kandidaten i srcset pekades om till servern, och telefonen valde en annan. Nu pekas alla om.
Hemsidor: texsolv.se utan staging2.58.1
2026-10-05
texsolv.se redigeras direkt mot main. Grenen staging och testadressen är borttagna (sajten är live och granskas där), så Spara går rakt ut på texsolv.se inom någon minut och inget «väntar på att gå live» längre. Historiken visar bara main.
Extern webbshop i Fortnox2.58.0
2026-10-05
Inställningar → Lager och artiklar → Extern webbshop i Fortnox: jämför Shopifys katalog med Fortnox och sätter kryssrutan «Extern webbshop» till Ja på alla artiklar som ligger i Shopify, i omgångar med förlopp. Det som redan är märkt rörs inte, och de som står som webbshopsartikel utan att finnas i Shopify räknas bara upp.
Satspappren ligger i git2.57.0
2026-10-05
Pappren bor nu i kodmappen, public/satspapper/ — en PDF per artikelnummer — och följer med varje bygge. Ändra en ritning: byt ut filen där, pusha, klart. Varje tidigare version finns kvar i historiken, och ingen Dropbox eller uppladdning behövs. Uppladdningen i inställningarna och Dropbox-mappen i agenten (2.56) är borta.
Formatet (A3/A4, liggande) läses ur filen vid bygget; två filer på samma nummer stoppar bygget i stället för att den ena tyst vinner. Agenten (2.57) hämtar filen rakt från appen.
Satspappren följer Dropbox-mappen2.56.0
2026-10-05
Ingen uppladdning för hand längre: ange Dropbox-mappen med pappren (TIE-UP SETS 2026) under skrivaragentens Inställningar → Satspapper på en dator som har Dropbox, så jämför agenten mappen med appen vid start och var tionde minut och skickar upp varje PDF som ändrats. Appen visar «(mappen)» som avsändare. Agent 2.56.
Finns två filer på samma artikelnummer (159016.pdf och 159016_A4.pdf) tar agenten den utan tillägg och säger till i loggen. Agenten tar aldrig bort papper i appen.
Skrivaragenten märker när den är byggd ur en äldre Agent.cs2.55.2
2026-10-02
Kopierar man in en ny Agent.cs utan att bygga om stod agenten och sa «senaste versionen» fast programmet var gammalt. Nu minns bygget vilken Agent.cs det gjordes ur (Agent.cs.byggd) och agenten bygger om sig när de skiljer sig. Versionsraden i fönstret följer med appens version, och loggraden för satspappret säger om det blev dubbelsidigt.
Satspappren dubbelsidigt, vända på kortsidan2.55.1
2026-10-02
Satspapprets två sidor skrivs på samma ark, dubbelsidigt och vänt på kortsidan (agent 2.55). Kan skrivaren inte dubbelsidigt säger agenten det och sidorna kommer var för sig. Vänder skrivaren åt fel håll finns pdfduplex=langsida i agentens inställningsfil.
Etiketter för många artiklar på en gång — välj vilken2.55.0
2026-10-02
Startsidans etikettläge (Etiketter → markera artiklar → Skriv ut) fungerar igen: det skrev den gamla artikeletiketten och stod stilla sedan den togs bort i 2.50. Nu väljer man vilken etikett som ska skrivas bland dem som alla de markerade har gemensamt — artikeletiketten, den runda, den rektangulära, satsens etikett eller satspappret. Etiketter som behöver något ifyllt (förpackning, produktion, Runlock) skrivs som förut en i taget från artikeln.
Det som inte gick för en viss artikel (ingen satstext, inget papper) sägs för sig; resten skrivs ändå. Runda och rektangulära utan sparad design får den förvalda («Article No. …»).
Skrivaragenten: den färdigbyggda kopian kraschade2.54.1
2026-10-02
Texsolv skrivaragent.exe i Dropbox-mappen föll ihop med «Metoden hittades inte: String.TrimEnd» när man sparade inställningarna. Kopian var byggd mot fel klassbibliotek; nu byggs den mot .NET Frameworks egna (verktyg/agentbygg.sh). Den som byggt om med Installera.cmd var inte drabbad.
Skrivaragenten uppdaterar sig själv2.54.0
2026-10-02
Appen bär med sig den senaste agenten (texsolv.app/skrivaragent/), och agenten tittar var sjätte timme om något ändrats: då hämtar den filerna, bygger om sig och startar om när ingen utskrift pågår. Knappen «Uppdatera» i agentens fönster gör det direkt. Går bygget fel kör den gamla vidare och säger varför. Automatiken går att stänga av under agentens inställningar.
Agenter äldre än 2.54 uppdateras en sista gång för hand (mappen i Dropbox, Installera.cmd) — därefter sköter de sig själva.
Satspappren: skriv ut pappret i satsen från artikeln2.53.0
2026-10-02
Tie-up-satserna får knappen «Skriv ut papper» på artikeln, bredvid «Etiketter»: ritningen och innehållslistan som ligger i kartongen går till kontorets skrivare på A3 (159016 och 159017 på A4) i 600 punkter. Antalet minns per artikel, och «Se pappret först» öppnar PDF:en.
Pappren laddas upp under Inställningar → Skrivare → Satspapper — markera hela mappen på en gång; filerna heter som artikeln (154004.pdf, 159016_A4.pdf) och formatet läses ur filen. Stora filer går upp i delar.
Skrivaragenten 2.53 ritar PDF:erna själv med pdfium (pdfium.dll i agentmappen) rakt på pappersskrivaren i dess egen upplösning, på rätt papper och orientering. Bygg om agenten på kontorsdatorn med Installera.cmd; äldre agenter får inga satspapper, och appen säger till när ingen agent kan.
Under agentens «Skrivare per sort» går satspappret att peka till en viss skrivare på datorn (annars agentens A4-skrivare).
Kompletteringssatsens etikett med System Texsolv-loggan2.52.1
2026-10-02
Satsens etikett (100 × 100) har nu System Texsolv-loggan — bandrullen — i stället för Texsolv-loggan, helt svart (lib/logga-system-svart.js) så att Zebran skriver den skarp och inte som gråraster.
Etikettrutorna minns vad man ändrade2.52.0
2026-10-02
Allt som går att ändra innan man skriver ut en etikett sparas på artikeln och står så nästa gång: antalet lappar på alla etiketter, förpackningsetikettens total, kartonger, fördelning och text, Runlock-lappens typ, färg och meter, och antalet på de runda och rektangulära. Produktionsetikettens och satsens texter mindes redan.
Det sparas också när man bara tittar på lappen («Se etiketten först»), inte bara vid utskrift.
Satsens innehåll: U-cord2.51.7
2026-10-02
Snöret i de förinstallda satstexterna heter U-cord, på alla tre språken — «50 m U-cord 1/12 vit», «50 m U-cord 1/12 white», «50 m U-cord 1/12 weiß».
Satsens innehåll på tyska: Bolzen2.51.6
2026-10-02
Det förinstallda innehållet för 157000-Ger. och 157100-Ger. heter nu som hos Texsolv: raksprint = gerade Bolzen, vinkelsprint = Winkelbolzen. Har någon redan sparat en egen text på artikeln står den kvar.
Antal etiketter: samma räknare överallt2.51.5
2026-10-01
Rutan där man anger hur många etiketter ser likadan ut på alla lappar — rubriken «Antal etiketter» ovanför, två stora knappar och siffran stort mellan dem — i stället för en liten rad med «Lappar» på vissa och den stora på andra. Gäller produktions-, artikel-, sats- och Runlock-etiketten, de runda och rektangulära, kartongerna och «Antal etiketter per artikel» på startsidan.
Startsidans rad «N artiklar valda» med «Markera alla» hade fått sin stil blandad med etikettvalen i artikelrutan sedan 2.37.1 och kunde se ut som en stapel knappar. Nu är de två isär.
Satsens innehåll på engelska: pegs, inte pins2.51.4
2026-10-01
Det förinstallda innehållet för 157000-Eng. och 157100-Eng. heter nu som hos Texsolv: raksprint = straight pegs, vinkelsprint = anchor pegs. Har någon redan sparat en egen text på artikeln står den kvar.
Satsens etikett: språket ur numret, namnet av sig självt2.51.3
2026-10-01
Kompletteringssatsen: språket läses ur artikelnumret — 157000-Eng. är engelska, 157000-Ger. tyska, 157000-SV svenska, punkt och stora bokstäver kvittar — och visas bara, väljs inte. Namnet på lappen är alltid språkets ord för satsen (Kompletteringssats / Completion set / Ergänzungsset) och är inget man skriver. Kvar att fylla i: innehållet, som kommer förifyllt för 157000 och 157100. Saknar numret språkändelse får man välja språk.
Produktionsetiketten tillbaka på fraktrullen2.51.2
2026-10-01
Produktionsetiketten ritas för fraktrullen (104 × 219) igen, inte för kartongrullen. Peka ut Zebra 1 för sorten under «Vem skriver ut vad» — utan eget val följer den fraktetikettens skrivare.
Artikeletiketten: större streckkod, numret i texten2.51.1
2026-10-01
Artikeletiketten (75 × 25): EAN-numret under streckkoden är borta, streckkoden är större och tar nästan hela etiketten, och artikelnumret står efter benämningen — «U-cord 1/12, White, 20 Meters · 159012». Allt centrerat. Ryms det inte på en rad blir det två och koden lite lägre; ryms det inte på två klipps benämningen med … men numret står alltid helt.
Kompletteringssatsens etikett, och artikeletiketten på 75 × 252.51.0
2026-10-01
Ny etikett för kompletteringssatserna, 100 × 100 på kartongrullen: Texsolv-loggan, språket som svart ruta uppe till höger, satsens namn stort, innehållet, artikelnumret med streckkod och foten. Orden på lappen följer språket — svenska, engelska, tyska. Satserna 157000 och 157100 känns igen på numret (157000-ENG, 157000-GER, 157000-SV …) och kommer färdigifyllda med innehållet på rätt språk; allt går att ändra på artikeln och sparas till nästa gång.
Artikeletiketten är tillbaka, på den rektangulära rullen (75 × 25, Zebra 4): benämningen och streckkoden (EAN när artikeln har en, annars artikelnumret), inget mer. Ritas för rullens mått under Inställningar → Skrivare → Rulletiketter.
Båda finns under Etiketter per artikel. Kartong-, innehålls-, produktions- och Runlock-etiketterna ritas nu i upplösningen hos den Zebra sorten pekats ut till — en 300-punktare får 300 — i stället för den gemensamma siffran.
Etiketter per artikel2.50.0
2026-10-01
Inställningar → Skrivare → Etiketter per artikel: för varje etikett väljer man «Alla artiklar», eller trycker på en kategori och kryssar i precis vilka artiklar i den som ska ha etiketten — hela kategorin, några, eller ingen. Det gamla valet per kategori följer med som «hela kategorin». Knappen Etiketter på artikeln visar bara det som gäller just den.
Rund och rektangulär etikett är två etiketter, var för sig, med egen text per artikel och form — en solvrulle kan ha både den runda på rullen och den rektangulära på kartongen. Artikeletiketten 50 × 30 är borttagen.
Etikettarket (A4) är avstängt på artiklarna: bara Zebra-rullen erbjuds, utan valet «Rulle | Ark». Slås på igen under Inställningar → Skrivare → Etikettark (A4). Listan «Senaste etikettutskrifter» är borta.
Egen rulle för kartongetiketterna2.49.0
2026-10-01
Fyra Zebror, fyra rullar: fraktetiketterna på 104 × 219, kartong-, innehålls-, produktions- och Runlock-etiketterna på 100 × 100, de runda på 40 mm och de rektangulära på 75 × 25. Under Inställningar → Skrivare → Etikettskrivaren finns nu «Kartongrullens längd» bredvid fraktrullens — skriv 100 där, så ritas appens egna etiketter för den rullen. Tom ruta betyder som fraktrullen, som förut.
Etiketterna är omritade för 100 mm: samma innehåll, tätare. Runlock-etiketten sätter svenskan och engelskan på samma rad när raderna blir låga. På 150 och 219 ser allt ut som förut.
Vilken Zebra varje sort går till väljer du som förut per sort under «Vem skriver ut vad» och agentens skrivarval: fraktetikett → Zebra 1, kartong/innehåll/produktion/Runlock → Zebra 2, rund → Zebra 3, rektangulär → Zebra 4.
PostNord-retur med QR-kod2.48.0
2026-09-30
På en retur erbjuds PostNords returtjänster i stället för Home Small: Return Drop Off (paket upp till 20 kg) och Varubrev Retur. Kunden får en QR-kod i mejlet och visar den hos närmaste PostNord-ombud, som skriver ut etiketten — ingen skrivare hemma. Samma sak som «digital retur» i PostNords portal, bokat från appen.
Mejlet till kunden visar QR-koden som bild med koden i text under, och etiketten sitter ändå med som PDF för den som hellre skriver ut. Rutan Returen på kvittot visar koden, så att den går att visa direkt från telefonen. Avtalspriserna för returtjänsterna fylls i under Inställningar → Frakt → PostNord, bredvid de andra.
Kräver att Return Drop Off ingår i ert PostNord-avtal (det ni bokar med i deras portal). Ingår inte Varubrev Retur säger PostNord nej vid bokningen, och det står då i appen.
Returetiketten mejlas i stället för att skrivas ut2.47.0
2026-09-30
Bokar man en retur skrivs etiketten inte ut — kunden har kartongen, inte vi. Den tas som PDF från fraktbolaget (FedEx, PostNord eller via Sendify), ligger sparad på rundan och mejlas i samma stund till er egen brevlåda (info@texsolv.se — ändras under Inställningar → Frakt → Returetiketter). Knappen heter «Boka och mejla etiketten».
På kvittot finns rutan Returetiketten: öppna PDF:en, se om mejlet gick, och «Skicka till kunden…» som öppnar ett färdigskrivet mejl — kundens namn, ordernummer, hur paketet lämnas in (brevlåda eller ombud beroende på bolag) och spårningsnummer ifyllt, på svenska till Sverige och engelska till andra länder. Man läser och ändrar innan man skickar; etiketten bifogas. Vad som skickats står kvar på rundan.
Returformuläret har fältet «Gäller order», som fylls i av sig självt från webbordern eller sändningen returen skapas från. Kundens e-post från formuläret är den mejlet föreslår. Är brevlådan inte kopplad sägs det, och PDF:en går att öppna ändå.
Under Papper i fraktlistan öppnas PDF:er (handelsfaktura, returetikett) nu som fil i stället för som en tom utskriftssida.
Skrivaragenten: vaknar, ger upp och kör bara en gång2.46.5
2026-09-29
Agenten frågar efter papper direkt när den startar, inte efter fyra sekunder. Ett anrop till appen som inte svarar ges upp efter tjugo sekunder (förut kunde det hänga i minuter efter att datorn vaknat, och programmet stod med «Väntar på papper» utan att fråga), en runda som fastnat släpps efter två minuter, och när datorn vaknar ur viloläge börjar den om med snabb takt.
Startar man agenten en gång till säger den bara att den redan kör — två agenter på samma dator kunde ta samma etikett och skriva ut den två gånger. Bygg om med Installera.cmd (ligger på Dropbox under LAGER APP → SKRIVARAGENT).
«Inte upphämtad» räknar upphämtningsdagar2.46.4
2026-09-28
Larmet om sändningar som inte hämtats räknar nu bolagets upphämtningsdagar (Inställningar → Frakt → Upphämtningsdagar) i stället för kalenderdagar. En etikett skriven torsdag eftermiddag har på måndag morgon missat en upphämtning — fredagens — inte «tre dagar». Dagen etiketten skrevs räknas bara om den skrevs före elva, och dagens tur först efter fyra. Texten säger «3 upphämtningar har gått utan skanning». Gränsen under Larm → inställningar är nu antal upphämtningar.
Larmen leder till artikeln2.46.3
2026-09-25
Raderna under Larm går att trycka på — de öppnar artikeln, som om man tryckt på den i listan. Även bortryckta och tidigare larm. Krysset och «Ta tillbaka» ligger kvar bredvid.
Notisen «Lågt saldo» om en enda artikel leder rakt till den artikeln i stället för till larmlistan. Länkar av formen /?nr=159002 öppnar en artikel direkt, så att fler ställen kan peka dit.
Antal på rullen2.46.2
2026-09-25
Antal etiketter på rullen står på 1 från början — eller det antal som kördes ut sist på den artikeln. Var det 24 sist står det 24.
Snabbare utskrift2.46.1
2026-09-25
Etiketten läggs i kön direkt och ritas efteråt: kvittot «på väg till …» kommer på en bråkdel av tiden, ritningen görs medan telefonen redan visar det. Går ritningen fel syns det som ett fel på raden (och som en varning i telefonen) i stället för att man väntar.
PDF-motorn startas en gång per server i stället för vid varje utskrift — en halv sekund mindre per etikett och A4-sida.
Agenten frågar efter papper varannan sekund i tre minuter efter att den skrivit ut något, i stället för var femte — den som skriver en etikett skriver ofta fler. Kostar inget extra: bara medan någon faktiskt skriver ut.
Runda och rektangulära etiketter på Zebra-rulle2.46.0
2026-09-24
Samma etiketter som på arken — rund 40 mm på rullarna, rektangulär 75 × 25 på kartongerna — går nu även på Zebra-rulle. I etikettformuläret på artikeln väljer man «Rulle (Zebra)» eller «Ark (A4)» och antal etiketter; rullen är förval så fort en Zebra pekats ut för sorten. Fria etiketter likadant. «Se etiketten först» visar just den etiketten.
Två nya sorter under «Vem skriver ut vad»: Rund etikett 40 mm (Zebra) och Rektangulär etikett 75×25 (Zebra). Rullarnas mått och «loggan förtryckt» (då lämnas platsen tom) ställs in under Inställningar → Skrivare → Rulletiketter.
Flera Zebror på samma dator: agenten rapporterar datorns skrivare, och på agentens rad under Inställningar → Skrivare pekas varje etikettsort ut till sin skrivare, med dess upplösning (203/300 dpi). Utan val går sorten till agentens vanliga etikettskrivare som förut. Kräver att agenten byggs om (Installera.cmd).
Streckkoden på de runda och rektangulära är EAN-13 när artikeln har en giltig EAN (95 moduler i stället för Code 128:s 129 — strecken blir 0,25 mm i stället för 0,17, tre punkter på en 300-punktersskrivare). Artikelnummer och EAN med fel kontrollsiffra kodas som Code 128 som förut. Skannrarna och appens kamera läser båda.
Produktionsetiketten minns allt per artikel2.45.1
2026-09-24
Antalet och anmärkningen sparas också på artikeln när man skriver ut — inte bara benämning och enhet. Skrev man 700 m på 159015 står 700 m där nästa gång; 2008 gäller bara första gången för en artikel.
Egen benämning på produktionsetiketten2.45.0
2026-09-23
Produktionsetiketten har en egen rad «Benämning på lappen». Fortnox-benämningen står där från början; skriver man om den sparas den på artikeln (i appen, inte i Fortnox) och står förifylld nästa gång någon skriver ut för den artikeln. Enheten som valdes sist sparas på samma sätt.
Enhet på produktionsetiketten2.44.0
2026-09-23
Produktionsetiketten har en enhetsväljare bredvid antalet: pcs, m, kg, pairs, pack, rolls, sets — eller «annan enhet…» med fri text. Artikelns egen enhet är förvald; det maskinen gjorde räknas inte alltid i den. Enheten följer med på lappen, i «Se etiketten först» och i köns rubrik.
Större streckkod på den runda etiketten2.43.2
2026-09-23
Streckkoden var svår att skanna: strecken var 0,17 mm smala. Nu är koden 27 mm bred och 11 mm hög (var 25 × 8) med streck på 0,21 mm, lagda på skrivarens eget rutnät så att varje streck blir hela punkter. Loggan är mindre (17 mm, var 22) och sitter längre ned, under där texten slutar, så att koden får plats.
Luftigare runda etiketter2.43.1
2026-09-23
Texten runt kanten stod en millimeter från kanten på den runda etiketten — tajt så fort skrivaren matar en aning snett. Nu ligger den drygt två millimeter innanför, aningen mindre stil, och streckkod och logga har flyttats ned lite så att det är lika mycket luft upptill som nedtill. Samma sak på skärmen som på pappret.
Justering av etikettarken2.43.0
2026-09-23
Under «Antal blad» står nu «Justering av arket»: höger/vänster och ned/upp i millimeter, med − och + i halva millimeter eller ett tal i rutan. Hela arket flyttas så mycket — skrivare matar inte pappret exakt lika, och en millimeter fel syns på en rund etikett.
En justering för de runda arken och en för de rektangulära, 0 och 0 från början. Det som ställs in sparas för alla och står med varje gång man skriver ut, även på fria etiketter, så man ser vad som gäller. Gäller både agentens ritning, «Se arket först» och A4-fönstret.
Etikettarken ritas rakt på skrivaren2.42.0
2026-09-23
Utskriften av etikettarken var suddig: texten fick en gloria, streckkoden röda och blå kanter, loggan en skugga. Arket gick till agenten som en bild (300 punkter per tum) som Windows webbläsarmotor sedan skalade om till skrivarens upplösning — två omritningar av samma streck ger gråa kanter, och en färgskrivare bygger grått av fyra färger. Nu får agenten i stället själva ritningen (rutor, tecken och bilder i millimeter) och ritar den rakt på skrivaren i dess egen upplösning. Svart är svart och en kant är en kant.
Fack, färg och skrivarens skarpaste upplösning skickas med som jobbets egna inställningar, i stället för att skrivarens inställningar byts och byts tillbaka.
Skrivaragenten måste byggas om (Installera.cmd i skrivaragent). Ett äldre program skriver fortfarande ut arket som bild — och «Se arket först» och A4-fönstret i Chrome får samma PDF som förut.
Fria etiketter, utskriftslogg och ta bort2.41.0
2026-09-23
Fri etikett: text på ett ark utan artikel — hyllmärkning, «Reklamation», «Prov — ej till salu». Inställningar → Skrivare → Ny etikett → «Fri etikett», eller /etiketter/herma?fri=1. Streckkod bara om man skriver något i den rutan; utan streckkod får loggan mitten på den runda och raderna hela höjden på den rektangulära.
Logg över etikettutskrifter under Inställningar → Skrivare: när, vad, hur många blad och vem. «Igen» på raden öppnar samma etikett — även en fri, med texten ifylld. På artikelns formulär står senaste utskriften («senast 2 blad av Thomas 2026-09-23 14:02»).
«Ta bort» på raderna under Artiklar med etikettark. Har artikeln en förinstalld etikett gäller den gamla lappen igen; annars försvinner etiketten från artikeln.
Genomgång av etikettarken2.40.3
2026-09-23
Är texten för lång för etiketten säger formuläret det i rött och utskriftsknappen stängs, i stället för att texten går utanför kanten på 24 etiketter.
Provet verktyg/hermaprov.mjs kontrollerar nu även PDF:en som går till skrivaren: sidstorlek, antal ark, loggan, den vridna texten och raderna. Hela kedjan — förinstallda designer, spara, ta bort, kön, agentens jobb med fack och färg, bilden i 300 punkter, listan i inställningarna — körd igenom i ett svep.
Hemlighetskollen vid commit klagade på LÄS-MIG.txt (Ä i filnamnet) fast den gick igenom; rättat.
Skarpa etikettark i färg2.40.2
2026-09-23
Agenten ber skrivaren om färgutskrift för etikettarken — samma knep som fackvalet, skrivarens inställning byts strax före och tillbaka efteråt — så att loggan blir blå även om skrivaren står på svartvitt. Gäller när agenten byggts om.
Arket kom ut grått, med taggig text och smetig streckkod: bilden agenten fick var 150 punkter per tum i gråskala, som fraktdokumenten. Etikettarken ritas nu i 300 punkter och i färg — loggan är blå igen — och streckkodens streck läggs exakt på bildpunkterna, så kanterna blir svarta utan gråa övergångar. Fraktdokumenten är som förut.
Etikettarken i rätt storlek ur skrivaren2.40.1
2026-09-23
Arket kom ut i 60 % storlek — etiketterna i en klump uppe till vänster. Skrivaragentens utskriftsmotor krymper svg-ritningar när den skriver ut. Nu byggs arket som PDF på servern (samma mått, ritat med appens egen PDF-motor, texten runt cirkeln tecken för tecken) och går samma väg som en uppladdad PDF: ritas om till en bild per sida i A4 och skrivs ut i skala 1:1, som fraktdokumenten. Lägena kontrollerade mot HERMAs eget ark på nytt.
«Se arket först» öppnar nu exakt den PDF som går till skrivaren.
Streckkoderna på Zebra-etiketterna (kartong, produktion, Runlock, förpackning) kodas också med sifferpar när numret bara är siffror — smalare streck, samma nummer ur skannern.
Benämningar i klump2.40.0
2026-09-23
Inställningar → Lager och artiklar → Benämningar: hela registret (eller en kategori, eller en sökning) i en tabell med benämning, EAN och enhet skrivbara rakt i raden. Ändrade rader markeras, och «Spara i Fortnox» skickar alla på en gång — samma väg som pennan på artikeln. Går en artikel inte in står felet på raden och ändringen ligger kvar.
«Sök och ersätt» byter en text i alla benämningar i urvalet på skärmen; det syns rad för rad vad som blev innan man sparar.
Texten runt kanten på de runda etiketterna får en längre båge — ned till loggans höjd på båda sidor — och blir därmed större.
Etikettark skrivs ut i hela blad: en räknare med plus och minus för antal blad i stället för antal etiketter och «hoppa över», och knappen säger «Skriv ut 2 blad».
Facket för etikettarken väljs nu i appen: Inställningar → Skrivare, på raden för den dator som skriver A4, en lista med skrivarens fack. Agenten rapporterar vilka fack skrivaren har när den frågar efter papper — det kräver att agenten byggs om en gång med Installera.cmd; tills dess står det på raden att den inte rapporterat sina fack än.
Etikettarken kommer ut ur skrivaren2.39.3
2026-09-23
Skrev man ut ett etikettark via skrivaragenten kom ett ark med «Hämtar…» på varje etikett. Agentens utskriftsmotor kör inget javascript, och arksidan hämtar sin design efter att den laddats — så motorn skrev ut väntetexten. Nu ritas arket färdigt på servern (samma ritning som på skärmen) innan agenten får det. Fönstret /skrivare var inte drabbat.
Etikettrutan på artikeln gick inte att rulla till toppen på datorn: den satt fast inne i artikelrutan i stället för i fönstret. Nu ligger den för sig och rullar som den ska.
Inget nummer under streckkoden längre, varken på den runda eller den rektangulära — det står redan i texten. På den runda har loggan flyttat ned lite; på den rektangulära ligger streckkoden längst ned och raderna har blivit större.
Etikettark, inte bara HERMA2.39.2
2026-09-23
De rektangulära arken är B.N.T, inte HERMA — så det heter Etikettark i appen nu, och varje ark har ett märke. B.N.T 271900 (streckkodsarkets 70 × 25,4 mm, 33 per ark) ligger med som rektangulär mall från början; är kartongernas ark ett annat B.N.T-nummer läggs det till under Inställningar → Skrivare → Etikettark.
De gamla etiketterna är inlagda från början: 159002, 159003, 159016, 159017, 419904, 419914, Mirrix- och Schacht-solven i alla färger — 230800100 är vit, 230800100R och de andra med bokstav sist är färgerna, alla får sin lapp med sitt nummer (runda) samt 159000, 159001, 159007, 159012 och 159015 (kartong). Ändrar man texten på artikeln gäller den i stället.
Ny etikett går också att göra från Inställningar → Skrivare → Etikettark → Ny etikett: sök upp artikeln, så sparas designen på den.
Den rektangulära lappen (U-cord i kartong) ser ut som den gamla: sätts på högkant med loggan överst och korta rader nedifrån och upp — «Article No. 159000 / U-cord / Type 1/12 / M 250», raderna skiljs med « / » i rutan. Streckkoden ligger under raderna, längs lappens kant.
Färgen på Runlock-etiketten2.39.1
2026-09-23
Runlock-etiketten har en rad Färg / Colour. Den föreslås ur artikelnumret — 1301 + färgkod + typ, där 000 är vit, 012 orange, 013 svart, 014 gul och 015 blå — eller ur benämningen («BULK ROLL NO.4 WHITE»), och går att skriva över i rutan innan man skriver ut.
HERMA-etiketter från appen2.39.0
2026-09-23
De runda HERMA-etiketterna (4476, 40 mm, 24 per A4) görs nu i appen: Etiketter → HERMA-etikett på artikeln. Texten runt kanten skrivs en gång per artikel och sparas («Cord Type 1/12 M 50 Article No. 159003»); i mitten streckkoden — EAN när artikeln har en — med numret under, och loggan SYSTEM TEXSOLV under den. Etiketten ritas på skärmen medan man skriver.
Antal etiketter och «hoppa över» för ark som redan är påbörjade, som på streckkodsarken. «Se arket först» visar hela arket; «Skriv ut» lägger det i kön till A4-skrivaren. Lägena på arket är tagna ur HERMAs egna PDF:er och stämmer på tiondels millimeter.
Inställningar → Skrivare → HERMA-ark: tabellen med arken (HERMA-nummer, form, mått, rutnät). Den rektangulära för kartongerna läggs in där när numret är känt — säg till så fyller jag i måtten. Under tabellen står alla artiklar som fått en HERMA-etikett.
Skrivaragenten kan ta HERMA-arken ur ett eget fack: Inställningar → «Fack för etikettark» i agenten. Kräver att agenten byggs om med Installera.cmd (se LÄS-MIG.txt). Går facket inte att välja stannar arket i kön med besked i stället för att komma ut ur fel fack.
Streckkoderna på HERMA-etiketterna kodas med sifferpar (Code 128 C): ett EAN-nummer blir 30 % smalare och går att läsa även på en 40 mm rund lapp. Skannern läser ut samma nummer som förut.
Vid utskrift av ark försköts sidan 20 pixlar nedåt på breda skärmar — och i skrivaragentens fönster — så att ett helt ark inte fick plats på sidan och hamnade på nästa, med en tom sida först. Rättat för alla ark.
Förpackningsetikett från artikeln2.38.0
2026-09-23
Kartongetiketten från plocket finns nu även under «Etiketter» på artikeln, som Förpackningsetikett: samma lapp med logga, artikelnummer, streckkod, antal och «Carton 1 of 3» — utan order och kund. Totalt antal, antal kartonger, fördelningen per kartong och en fri rad, precis som vid plock. Går på samma skrivare som kartongetiketten. På alla kategorier från början; ändras under Inställningar → Skrivare → Etiketter per kategori.
Produktionsetiketten föreslår 2008 som antal från början — det maskinen brukar göra. Siffran markeras när man trycker i rutan, så den är bara att skriva över.
Runlock nr 40 (130101240) finns i typtabellen: 24 mm och 50 m per rulle. Ögla, styrka, töjning och vikt är tomma tills någon fyller i dem under Runlock-typer.
Etikettvalen som riktiga rader2.37.1
2026-09-23
Valen i etikettrutan var två små rutor med texten i mitten och pilen under — de låg i en lista som bara vet hur länkar ser ut. Nu är varje etikett en egen rad: namnet fett till vänster, en rad om vad lappen är under, pilen till höger.
Knappen «Etiketter» på artikeln är lika hög som Avbryt under den, mörkare grön och fet.
En knapp för etiketterna, och vilka som visas var2.37.0
2026-09-23
De tre hopfällda korten under saldot på artikeln är en grön knapp: «Etiketter». Ett tryck visar de etiketter som gäller artikelns kategori; finns bara en går rutan direkt till formuläret. Samma knapp på alla artiklar.
Inställningar → Skrivare → Etiketter per kategori: för varje etikett kryssar man vilka kategorier som ska ha den — eller Alla. Från början: artikeletiketten 50×30 på alla, produktionsetiketten på SOLV, Runlock-etiketten på BULK ROLL (och alltid på artikelnummer 1301…). Nya etiketter framöver läggs in i samma lista.
Runlock-etikett med egen typ, och utan artikel2.36.1
2026-09-22
I typvalet finns «Egen — fyll i själv»: typnummer, diameter, öglelängd, draghållfasthet, töjning och vikt skrivs in direkt, och kan sparas som ny typ i samma tryck.
Egen sida för Runlock-etiketten (Inställningar → Skrivare → «Skriv ut Runlock-etikett»): välj artikel om du vill — den ger streckkoden på lappen — eller skriv ut helt utan.
Alla sex typerna ur RunLocks datablad är ifyllda (nr 4, 6, 8, 12, 16, 20: diameter, öglestorlek, brottstyrka, töjning, vikt) med hela rullens längd som förslag på meter (500, 350, 250, 175, 125, 100). Nr 40 (24 mm, 50 m) står inte i databladet — lägg till den i tabellen om den ska ha en lapp.
Rutan Runlock-etikett visas bara på bulkrullarna: artikelnummer 1301… (färg + typ, t.ex. 130101204 = orange nr 4) eller kategori BULK ROLL. Typen läses ur artikelnumret, så på en bulkrulle är det bara att trycka.
Runlock-etikett för bulkrullarna2.36.0
2026-09-22
På artikeln finns «Runlock-etikett»: välj typ, skriv in metrarna på rullen och hur många lappar. Etiketten har RunLock-loggan, typ, meter, diameter, öglelängd, draghållfasthet, töjning och vikt per meter på svenska och engelska, «How to use RunLock: www.runlock.com», artikelnumret med streckkod och datum. Fyller fraktrullen.
Egenskaperna per typ ligger i en tabell under Inställningar → Skrivare → Runlock-typer — typ 4 står med från början (4 mm, ögla 40, 170 kg, 30 %, 13 g/m); fyll på resten där. Typen gissas ur benämningen när den innehåller «typ 4» eller «Runlock 4».
Ny papperssort Runlock-etikett under Skrivare; går till fraktetikettens dator om inget annat valts.
Produktionsetikett från artikeln2.35.0
2026-09-22
På artikeln finns «Produktionsetikett»: skriv in antalet maskinen gjorde, en anmärkning om du vill, och hur många lappar — så kommer den ut på Zebran i fabriken (fraktrullen). Loggan, artikelnummer stort, benämning, streckkod (EAN), antalet störst av allt, datum, anmärkning och vem som körde. Svenska med engelska smått, som den gamla lappen. Fyller hela rullen.
Ny papperssort «Produktionsetikett» under Skrivare; går till fraktetikettens dator om inget annat valts.
«Leta efter nya ordrar» frågar Shopify direkt2.34.7
2026-09-22
Knappen frågade bara Fortnox; webbshoppen sveptes var tionde minut oavsett. Nu frågas Shopify i samma tryck, och svaret säger hur många ordrar som är opackade i Shipmondo, hur många som blev nya här, och — om Shopify sa nej — exakt vad de sa.
Rullens längd i millimeter, och etiketten som växer med den2.34.6
2026-09-22
Etikettrullens längd anges nu i millimeter (100–300) i stället för 150 eller 200 — er rulle är 219. Kartongetiketten växer med rullen: avstånden fullt ut, stilarna hälften så mycket, streckkoden högre, foten längst ned. På 219 mm blir det 46 % mer luft och 23 % större stil, i stället för en tom nedre tredjedel.
«Flytta ned fraktsedlarna» får högst vara det som blir över på rullen (219 − 150 = 69 mm).
Antalet på kartongetiketten fick inte plats2.34.5
2026-09-22
«1 000 bdl» i stor stil var bredare än halva etiketten och kortades till «1 0…». Nu krymps stilen tills talet får plats, aldrig tvärtom. Tusental skrivs med mellanslag (1 000) — det läser alla länder lika.
Kortare under plockknapparna2.34.4
2026-09-22
De tre raderna under knapparna i plockningen är ersatta av «Restlista» och ett frågetecken. Trycker man på det kommer förklaringen som en ruta — samma som i Sociala.
Kartongetiketten: plus och minus2.34.3
2026-09-22
Antal kartonger har fått plus- och minusknappar, och siffran markeras när man trycker i rutan så att den bara är att skriva över — samma för antalet och rutorna per kartong. Lite mer luft under knappen «Skriv ut kartongetikett».
Fraktsedeln flyttad ned på rullen2.34.2
2026-09-22
På en 200-rulle står fraktbolagens 150-etiketter klistrade högst upp, med överkanten i själva kanten och fem tomma centimeter under. Under Inställningar → Skrivare (när rullen är 200 mm) anger man nu hur många millimeter de ska flyttas ned; 20–25 ger luft åt båda håll. Görs i skrivarens hemläge när etiketten hämtas av agenten, så det gäller även papper som redan ligger i kön, och ingen rad på etiketten ritas om.
Etikettrullens längd2.34.1
2026-09-22
Inställningar → Skrivare → Etikettrullens längd: 150 eller 200 mm. Kartong- och innehållsetiketterna från plocklistan fyller hela rullen — på 200 mm blir streckkoden högre, antalet större och foten hamnar längst ned; innehållsetiketten rymmer 28 rader i stället för 17. Fraktbolagens etiketter är alltid 150 mm och påverkas inte.
Kartongetiketter från plocklistan2.34.0
2026-09-22
På varje artikelrad i plockningen finns knappen «Skriv ut kartongetikett». Etiketten är 100 × 150 mm på samma Zebra som fraktetiketterna: Texsolvs logga, dagens datum, artikelnummer stort, benämning, streckkod (EAN när artikeln har en, annars artikelnumret), antalet stort, order och kund, vem som plockade och en valfri text. På engelska — kartongen går till kunder i tjugo länder.
Delas raden på flera kartonger anger man antal kartonger; antalet fördelas jämnt (100 på 3 blir 34, 33, 33) och går att rätta per kartong. Varje etikett säger «Carton 1 of 3 · 100 pcs in total».
Under Avsluta finns «Skriv ut innehållsetikett»: hela rundan på en etikett — artikelnummer, benämning och antal per rad, plockat om något plockats annars beställt — med fortsättning på nästa etikett när raderna inte får plats. För den som inte märkte varje kartong för sig.
Ny papperssort under Skrivare: Kartongetikett 100×150. Utan eget val går den till samma dator som fraktetiketten — det är samma rulle.
Etiketten som kom ut på kontoret2.33.5
2026-09-21
Ett papper som är avsett för en viss dator (Fraktetikett → Fabriken) gick efter fyra minuter till vilken dator som helst som kunde skriva ut det. Tanken var att en avstängd dator inte skulle hålla etiketten gisslan — men i praktiken kom fraktetiketten ut på kontoret medan kartongen stod i fabriken, och ingen letade där. Nu väntar pappret på sin dator hur länge som helst.
I stället syns det: under Plock → Skrivare står «väntar på Fabriken (hördes av för 12 minuter sedan)», en varning överst när en dator tystnat, och en knapp «Skicka till Kontoret i stället» per papper. Pappret byter alltså skrivare bara när någon trycker, och ser då var det hamnar.
Hur snabbt en etikett ska komma ut: på vardagar 06:30–18:30 frågar agenten var femte sekund, alltså inom tio sekunder efter bokningen; utanför det var tionde minut. Tar det längre är det datorn som sover — det står nu på skrivarfliken vilken.
Räkneverket på Vad är nytt2.33.4
2026-09-21
Överst på Vad är nytt står nu hur många versioner det blivit, hur många ändringar de rymmer, hur många dagar det tagit och hur många versioner det blir per dag. Siffrorna räknas ur listan och kan inte gå isär från den.
Ö på PostNord-etiketten2.33.3
2026-09-21
Göteborg blev Gteborg på PostNords etikett. Skrivaragenten skickar texten en byte per tecken, men PostNords ZPL säger UTF-8 (^CI28) och då vill skrivaren ha två byte för ett Ö — den fick en och kastade den. Servern ger nu agenten exakt de byte skrivaren vill ha för sådana etiketter; ingenting behöver byggas om på skrivardatorn. Gäller även måttetiketten.
Rutan om saknade fraktrader är borta2.33.2
2026-09-21
Rutan «N bokade sändningar saknar fraktrad» under Bokade här är borttagen. Fraktraden skrivs som den ska sedan 2.33.0; de som fattas från perioden 4–21 sept läggs på för hand vid faktureringen — de flesta ordrarna var redan fakturerade.
Avsändarlandet som blev «SV»2.33.1
2026-09-21
Landfältet under Inställningar → Frakt → Avsändare tog två tecken, så den som började skriva «Sverige» fick «SV» sparat — och SV är inte ett land. FedEx svarade «no service to this origin», PostNord «PostalCode INVALID» och «Invalid Customer Number for Application Id»; inget av dem nämnde landet. Nu går det att skriva namnet (Sverige) eller koden (SE), servern gör en kod av det, och ett land appen inte känner igen sparas inte.
Är avsändaradressen i appen felaktig sägs det överst på fraktsidan och bokningen stoppas innan fraktbolaget frågas — med vad som är fel och var det rättas. Öppna fraktsidan på en runda efter uppdateringen: står det något om avsändaradressen är det den som är orsaken.
PostNords fel säger nu vems fält det gäller (avsändaren eller mottagaren), och «Invalid Customer Number for Application Id» får en förklaring: kundnumret hör inte ihop med nyckeln, eller så är avsändarlandet inte SE.
Webbshoppens ordrar i Plock, ursprungsmärken, och fraktraden som inte skrevs2.33.0
2026-09-21
Ordrar från webbshoppen som Shipmondo inte packat än ligger nu under Plock → Pågår med Shopify-märket, butikens ordernummer (#2218), mottagare, summa och det fraktval kunden gjorde. De går att plocka och boka härifrån precis som en Fortnox-order — samma plocklista, packsedel, tull och fraktbolag. Packar Shipmondo dem under tiden försvinner de av sig själva; makuleras de likaså.
Bokas en webborder här markeras den som skickad i Shopify med spårningsnumret, bolaget och spårningslänken. Kunden får butikens vanliga leveransmejl, butikens saldo justeras och Shipmondo visar den inte längre som något att packa. Går markeringen inte igenom står det på fraktsidan, med Shopifys egna ord, och appen försöker igen nästa gång sidan öppnas.
Uppdateras direkt när butiken ringer (ny, ändrad, makulerad, skickad order) och var tionde minut som säkerhet. En orörd runda skrivs om när ordern ändras i butiken; en påbörjad rörs aldrig. Plocksidan säger när Shopify lästes senast, bredvid Fortnox.
Varje order bär ett märke som säger var den kom ifrån — Shopify eller Fortnox med bolagens egna loggor, «Manuell» för frakt bokad för hand — i Pågår, Packat, Bokade här, Webbshoppen och på ordersidan. Under Webbshoppen står det på raden om sändningen bokades här eller via Shipmondo; en som bokades här har en länk till rundan.
Fraktraden i Fortnox skrevs inte efter bokningar sedan 2.15.2 (4 sept). Anropet som skriver raden hade samma namn som «spara inställning för fraktrad», och servern tog fel gren: den sparade om inställningen med tomma värden — avrundningsstegen nollades vid varje bokning — och skrev ingen rad på ordern, men svarade ok. Rättat, och de två kan inte längre blandas ihop. Under Bokat → Bokade här står nu «N bokade sändningar saknar fraktrad» med en knapp som skriver dem i efterhand; är ordern fakturerad säger Fortnox nej och det står vilken. Kontrollera avrundningsstegen under Inställningar → Frakt.
Inläsningen av orderhistorik under Inställningar → Att fylla på hämtar nu hela spannet från i dag och 12, 24 eller 36 månader bakåt (valbart), och hoppar över det som redan finns. Förut stannade den vid den äldsta order appen redan hade, vilket var rätt men omöjligt att se att det var rätt. Fönstret takten räknas på går att sätta upp till tre år — alla kunder beställer inte varje år.
Notisen om vad som tar slut räknades varje timme över hela fönstret — ett års orderrader, tjugofyra gånger om dygnet, för något som ändras någon gång i veckan. Nu en gång om dagen, första avläsningen efter klockan sex. Sidan Tillverkningsbehov räknar fortfarande färskt varje gång den öppnas.
Raden «Spårningen sveps var tionde minut …» under Bokade här är borta; den syns bara som varning om svepet inte gått på en halvtimme. Raden om bolag som inte går att fråga under Webbshoppen är också borta — det står på sändningens egen rad.
Nytt provverktyg: verktyg/webbplockprov.mjs kör 29 fall mot en låtsasbutik — ny order, ändrad, påbörjad, packad i Shipmondo, makulerad, bokad här med markering i Shopify, delleverans, nekad adress och ett nej från Shopify vid bokningen.
Avsändaradressen i appen, och nattschemat på egen adress2.32.5
2026-09-21
Inställningar → Frakt → Fraktbolag → Avsändare: företag, gata, postnummer, ort och land går att skriva in i appen. Det som står där går före miljövariablerna i Vercel och används av FedEx, PostNord och Sendify — på etiketterna och som adressen bilen hämtar på vid upphämtning. Töm fälten för att gå tillbaka till variablerna. Sidan säger vilket som gäller.
Vercels schema tog bara en av två rader med samma sökväg, så avläsningen varje minut på dagtid försvann och säkerhetskopian likaså. Nattschemat (var tionde minut) har nu en egen adress, /api/pick/poll/natt, och alla fem schemana syns i Vercel.
Vercel Pro: egna scheman, tåligare avläsning, Shopify-behörigheter2.32.4
2026-09-21
Allt schemalagt går nu via Vercels cron i stället för en schemaläggare utanför appen: avläsningen varje minut på vardagar 06–19 och var tionde minut annars, tillverkningsförslagen fyra gånger om dagen på vardagar, hemsidornas status var femtonde minut, säkerhetskopian 00:05. Den externa schemaläggaren kan stängas av.
Avläsningen fällde allt som låg efter Fortnox-stegen när Fortnox sa nej: saldon, städning, fraktbevakningen, beställningsarbetet — en dålig Fortnox-dag var också en dag utan spårning, och hjärtslaget var ändå grönt. Nu stannar felet vid Fortnox-stegen (och syns i svaret som fortnoxFel); resten går som vanligt. «Fortnox avläst för … sedan» flyttas bara fram när avläsningen faktiskt gick.
Under Frakt → Bokade här står det nu när spårningssvepet gick senast och vad det gjorde (frågade, ändrade, fel), så att «uppdateras statusen av sig själv?» har ett svar på skärmen.
Shopify: appen ber nu även om behörighet att sätta ordrar som skickade (read/write_fulfillments, read/write_merchant_managed_fulfillment_orders), inför att webbshopsordrar ska kunna bokas här. /setup varnar tills nyckeln har dem — kryssa i dem hos Shopify och tryck Koppla om Shopify.
Webbshoppens sändningar stod stilla sedan 7 september2.32.3
2026-09-21
Listan under Frakt → Webbshoppen läses ur databasen sedan 2.16.2, och det enda som fyllde på den var bakfyllningen av hela butiken. Den blev klar den 7 september — och sedan kom inget nytt in, fast Shopify fick 38 ordrar till. Nu hämtas det nya ur Shopify varje gång fliken öppnas och i fraktbevakningen (fönstret räknas från senaste kända sändning, minst två dagar, högst sextio), så att listan och spårningen är hela butiken på riktigt. Öppna fliken en gång så fylls de två veckorna på.
Flytten till texsolv.app2.32.2
2026-09-21
Face ID är knutet till adressen appen öppnas på — en telefon som satts på för den gamla vercel.app-adressen fungerar där, och sätts på igen för texsolv.app första gången man loggar in där. Båda adresserna fungerar var för sig under flytten; APP_URL påverkar inte längre passkeys.
Öppnas appen på en annan adress än hemadressen (APP_URL = https://texsolv.app) visar inloggningssidan en flyttskylt: öppna texsolv.app i Safari, lägg till på hemskärmen, ta bort den gamla ikonen.
Databasen får sova: skrivaragenten frågar glesare utanför arbetstid2.32.1
2026-09-16
Skrivaragenten frågade efter papper var fjärde sekund dygnet runt, så databasen (Neon) sov aldrig och månadens fria 100 timmar tog slut den sextonde. Nu säger servern hur bråttom det är: var femte sekund mån–fre 06:30–18:30 (svensk tid), annars var tionde minut. Ett papper utanför arbetstid väntar som mest tio minuter. Tiderna går att ändra med inställningen skrivare_tider (start, slut, dagar, snabb, langsam).
Kräver att skrivaragenten byggs om på skrivardatorn: kör Installera.cmd i mappen skrivaragent igen. Tills dess frågar den som förut.
Inställningar omgjorda: grupper med färg, Mitt konto, Administration2.32.0
2026-09-16
Inställningar är sorterade om i grupper med egen färg och ikon: Mitt konto, Hemsida och sociala medier, Lager och artiklar, Frakt, Notiser och larm, Utskrift, Översikter, Administration, Appen. Varje rad har en ikon i gruppens färg. Sidhuvudet säger vem som är inloggad; Logga ut ligger under Appen.
Mitt konto: namn och e-post (byts av en själv), Face ID-enheterna, koden, Håll skärmen tänd, Mina notiser och mina senaste inloggningar — på en sida. Namnbytet slår igenom direkt, även i commit-texterna för hemsidan.
Administration syns bara för konton med den nya rollen admin (sätts under Personal, som Hemsidor): kopplingar, Personal, Kategorier, Säkerhetskopia, Utrymme och gallring, Inloggningshändelser, Serverns svarstid. Så länge ingen har rollen ser alla gruppen, så att den går att dela ut. Sidorna kräver adminlösenordet som förut.
Hemsidor: commits appen gör har nu alltid kontots adress hos GitHub (Texsolvshop@gmail.com) som e-post på både författare och committer, och användarens namn i appen som namn. Adressen byggd på namnet pekade på en främmande GitHub-användare. Byts med GITHUB_COMMIT_EPOST på Vercel.
Face ID på riktigt: appen frågar, ett tryck loggar in2.31.0
2026-09-16
Efter en inloggning med kod frågar appen «Logga in med Face ID nästa gång?» — ett tryck på Sätt på, telefonens eget lås, klart. Frågas bara på enheter som kan (Face ID, Touch ID, Windows Hello, fingeravtryck), som inte redan är påsatta, och «Inte nu» håller i fjorton dagar.
På en påsatt telefon är Face ID-knappen stor och först på inloggningssidan; namnen och koden ligger bakom «Använd kod i stället». Face ID direkt räcker som båda stegen för konton med tvåsteg — ingen mejlkod.
Går Face ID inte igenom säger appen vad man gör: logga in med kod, så frågar den efteråt. (Telefonen skiljer inte på «avbrutet» och «ingen finns», så det var det gamla meddelandet som förvirrade.)
Inställningar → Inloggning och säkerhet heter nu Face ID och andra lås: knappen «Sätt på Face ID på den här enheten», och enheterna listas med namn.
Pilen på Inställningar går alltid till appen2.30.6
2026-09-15
Pilen uppe till vänster på Inställningar gick bakåt i historien, så efter hemsideredigeraren ledde den tillbaka in i redigeraren igen. Nu går den alltid till Artiklar — Inställningar är ett nav, och pilen betyder upp.
Hemsidor: tillbaka-pilen i redigeraren svarar alltid2.30.5
2026-09-15
Tillbaka-pilen tonar ned redigeraren i samma stund man trycker, så man ser att något händer medan Inställningar hämtas. Har sidbytet inte hänt inom 2,5 sekunder laddas Inställningar rakt av i stället. På iPhone äter det öppna tangentbordet annars det första trycket när man skrivit i sidan — nu räknas trycket ändå.
Navigeringsraden under Inställningar låg sju pixlar snett på datorn2.30.4
2026-09-15
Svepramen runt Inställningar var 40 pixlar högre än fönstret, så fönstret fick en rullningslist. Sidan i ramen centrerades i det som blev kvar, medan menyn längst ner (som är fast placerad) centrerades i hela fönstret — därav förskjutningen. Nu är ramen lika hög som sidan, ingen rullningslist, samma mitt.
Hemsidor: helskärm även på datorn, Till main borta före lanseringen2.30.3
2026-09-15
På datorn fyller Redigera hela fönstret, inte sidans ram; navigeringsraden längst ner likaså. Rullgardinen för sida är högst 320 px bred.
Knappen Till main är borta så länge sajten inte är lanserad: main går då ändå bara till testadressen, så den gjorde ingen skillnad. Remsan säger i stället «N ändringar på test som följer med vid lanseringen». Lansera flyttar först main fram till staging (allt som är sparat på test), sätter sedan LIVE och kör bygget — frågan säger hur många ändringar som följer med. Efter lanseringen heter knappen Gå live och finns i remsan och som gul rad i Redigera.
Hemsidor: redigeraren alltid i helskärm, flikarna längst ner2.30.2
2026-09-15
Redigera fyller alltid hela skärmen: en rad överst med tillbaka-pil, sida och Redigera/Navigera, sedan förhandsvisningen ned till navigeringsraden. Helskärmsknappen är borta — den behövs inte längre.
Redigera, Bilder, Historik, Status och Lansering ligger som en navigeringsrad längst ner med ikoner, som i resten av appen. Remsan med läget (väntar på att gå live, test, main) visas på de andra flikarna; i Redigera visas i stället en gul rad «N ändringar väntar på main · Till main» när det finns något att flytta och inget är osparat.
Rullgardinen för sida är smalare och hög nog för att texten ska synas.
Hemsidor: ny layout i redigeraren2.30.1
2026-09-15
Redigera: förhandsvisningen tar resten av skärmen och verktygen är en rad — sida, Redigera/Navigera och en knapp för helskärm (⛶; Esc eller samma knapp tar tillbaka). Navigeringsraden längst ner är borta på hemsidesidan, och flikraden Redigera/Bilder/Historik/Status/Lansering ligger kvar högst upp utan att följa med när man rullar.
Text- och bildrutan öppnas som ett ark nederst ovanpå förhandsvisningen i stället för att trycka ner den. Rutan Text går alltid att skriva i, även när stycket har länkar eller fetstil — ändringen skrivs in i rätt textbit så att länken behålls (byter man ut hela stycket på en gång försvinner de; rutan säger till). Textrutan får markören direkt.
Raden «N osparade ändringar · Ångra · Spara» syns bara när något är osparat. En kort ledtråd i förhandsvisningen när läget byts: «Tryck på en text eller bild för att ändra den» / «Tryck på länkar för att gå mellan sidorna».
Gå live heter Till main så länge repovariabeln LIVE är av, och frågan säger att bara testadressen nås. Remsan visar «main (test) · LIVE av». texsolv.se rörs inte förrän Lansera under fliken Lansering.
Hemsidor: redigera texsolv.se från appen2.30.0
2026-09-15
Ny rubrik HEMSIDOR överst under Inställningar, för konton med rollen hemsidor (sätts under /setup → Personal). Först texsolv.se; nästa sajt är en rad i tabellen hemsidor, ingen kod.
Redigera: sajten visas som den ligger på grenen staging. Klicka på en bild för att byta den (beskärning, rotation, format, skalning till platsens storlek, webp-kopia), klicka på en text för att ändra den. Ändringarna samlas («3 osparade ändringar») tills Spara — en commit till staging i ditt namn: «Joel: bytte bild på Heddles, ändrade text på Contact». GitHub lägger staging på testadressen.
Gå live flyttar main fram till staging (fast-forward; hämtar först in det main fått av recensionsroboten). Remsan överst säger alltid hur många ändringar som väntar och om deployen kör, är grön eller röd.
Alla bilder: varje bild med beskrivning, var den används, och om webp finns. Historik: commits på staging och main med Ångra, som skapar en ny commit som lägger tillbaka filerna — aldrig force-push.
Status var 15:e minut: sajten svarar, certifikatets dagar kvar, indexering (noindex på live är rött), sitemap, recensionernas ålder, senaste deploy, brutna interna länkar (nattlig koll). Notis till rollen hemsidor när något går från grönt till rött.
Säkerhetskopia varje natt: site/ som zip i Dropbox under Hemsidor/, de 14 senaste. Lansering: checklista (FTP, .com-alias, DNS kollas automatiskt, Search Console) och knapparna Lansera / Dra tillbaka som sätter repovariabeln LIVE och startar arbetsflödet på main.
GitHub-nyckeln ligger i GITHUB_TOKEN på servern och når aldrig telefonen. Varje rutt under /api/hemsidor kräver inloggning och rollen.
Byt din kod själv — minst sex siffror2.29.1
2026-09-15
Under Inställningar → Inloggning och säkerhet finns «Byt kod»: nuvarande kod, ny kod två gånger. Nya koder är 6–12 siffror; samma siffra hela vägen eller 123456 nekas. Bytet står i händelseloggen.
Nya konton under /setup får också minst sex siffror. Befintliga fyrsiffriga koder fungerar tills de byts — be var och en byta.
Logga in med Face ID2.29.0
2026-09-15
Ny knapp överst på inloggningen: «Logga in med Face ID / passkey». Ingen kod, inget namn — telefonen visar dina passkeys för appen, du godkänner med Face ID, fingeravtryck eller Windows Hello, och är inne. Passkeyn bär kontot, så appen vet vem det är. Registrera den under Inställningar → Inloggning och säkerhet (på iPhone: appen på hemskärmen).
Face ID direkt räcker även för konton med tvåsteg: en passkey med Face ID är två faktorer i ett (något du har, något du är). Loggar man in med kod i stället gäller tvåsteget som förut. Koden finns kvar som reserv för den som saknar passkey eller byter telefon, och spärren gäller även passkey-försök.
Koder får vara fyra till tolv siffror (förut högst åtta).
Starkare inloggning: spärr, tvåsteg med passkeys, händelselogg2.28.0
2026-09-15
Fem felaktiga koder på samma konto — eller från samma adress, oavsett konto — spärrar i femton minuter. Knappen visar hur länge som är kvar och räknar ned. Varje spärr står i loggen.
Tvåstegsverifiering per konto, för den som får ändra bokföring eller publicera: slås på under /setup → Personal, tillsammans med kontots e-postadress. Efter koden krävs då en passkey — Face ID, fingeravtryck, Windows Hello eller säkerhetsnyckel — eller en sexsiffrig engångskod som mejlas (tio minuter, fem försök). Lagerpersonal med bara plock och utskrift loggar in med kod som förut.
Passkeys registreras av var och en under Inställningar → Inloggning och säkerhet; flera per konto, med namn, och går att ta bort. Den som sköter /setup kan nollställa alla passkeys för ett konto om telefonen är borta — då tar e-postkoden över.
Ny händelselogg: vem loggade in, när, från vilken adress och webbläsare, varje fel kod, spärr, utloggning och tvåstegssteg. Visas på samma sida, med räkning för senaste dygnet och veckan. Sparas i 180 dagar.
Tvåstegs väntkaka kan inte användas som session, och tvåsteg kan inte slås på för ett konto som varken har passkey eller e-post — ingen låses ute.
Next.js 14.2.35 och uppdaterade beroenden2.27.2
2026-09-15
Next.js 14.2.15 → 14.2.35, sista i 14-serien. Det stänger bland annat behörighetsförbigången i middleware (CVE-2025-29927), cache-förgiftningen, SSRF via omdirigeringar och överbelastningarna i Server Components som rapporterats sedan 14.2.15. pg 8.13 → 8.23 och övriga beroenden till senaste patch inom samma huvudversion.
Genomgång av inloggningsskyddet: appen har ingen middleware alls — var och en av de 96 API-hanterarna kontrollerar sessionen själv (currentUser, agentnyckel, adminlösenord, Shopify-HMAC eller cron-hemlighet). Två adminkontroller jämförde lösenordet med vanligt !== och gör det nu tidssäkert (sameSecret) som de andra.
Dependabot slås på för npm och GitHub Actions: patch- och minorversioner som pull requests varje måndag, majorbyten hålls utanför.
Kvar i npm audit efter detta, för att rättningen kräver ett majorbyte: nodemailer 7 (rättat i 8–10; gäller funktioner appen inte använder — listrubriker, jsonTransport, raw, OAuth2) och de Next-brister som bara är rättade i 15.5. Se sammanfattningen i commit-texten.
Hemligheter ur repot, och en koll som stoppar nya2.27.1
2026-09-15
.env.example innehöll ett riktigt adminlösenord, Shopifys API-nyckel och Fortnox klient-id sedan första versionen. Alla värden är utbytta mot platshållare. Nycklarna som legat där ska bytas i Vercel, Shopify och Fortnox — filen har legat hos GitHub.
Ny koll: verktyg/hemlighetskoll.mjs letar efter nycklar, tokens, lösenord och .env-filer i det som ska committas, och stoppar committen. Installeras som pre-commit-krok med «npm run hooks»; samma koll körs hos GitHub vid varje push.
.gitignore utesluter nu alla .env-filer utom mallen, samt certifikat och nyckelfiler.
Vem får vilka notiser2.27.0
2026-09-11
Ny sida under Inställningar → Vem får vilka notiser. En rad per person med en rullgardin: alla notiser, valda eller inga. Vid «valda» fälls slagen ut som knappar — nya ordrar att packa, nya tillverkningsordrar, lågt saldo, tillverkningsbehov, tulluppgifter, fraktproblem, efterforskning, veckobrev, drift, övrigt — med en rad om vad vart och ett betyder. Sparas vid varje tryck.
Personerna kommer av sig själva: alla som får logga in, och alla namn en telefon registrerats på. En ny kollega står där så fort hen loggat in, med «alla» förvalt — ingen tystnar av misstag. Det står hur många telefoner personen har, och när de senast nåddes.
Utskicket följer reglerna: varje notis har ett slag, och går bara till de telefoner vars person valt det. Testnotisen går alltid till alla. En telefon som registrerats utan namn får allt, och sidan säger hur man ger den sitt namn.
Spårning: senaste skanningen räknas, «står stilla» efter 14 dagar, FedEx egna varningar direkt2.26.1
2026-09-10
«Står stilla: ingen ny händelse på 6 dagar» på ett paket som flög mellan Liège och Memphis. Appen räknade från FedEx milstolpar (upphämtad, levererad) — för ett paket på väg är senaste milstolpen upphämtningen, hur många städer det än skannats i sedan dess. Nu hämtas skanningarna, och senaste skanningen är senaste händelsen.
FedEx beräknade leveransdag läses in och visas på raden («beräknas lör 13 sep.»). Ett paket på väg med en leveransdag som inte passerat räknas inte som stilla — bolaget väntar sig fortfarande att komma fram.
«Står stilla» säger till efter 14 dagar i stället för 6. Den som haft kvar den gamla standarden höjs; ett eget val står kvar. Går att ändra under Larm → inställningar.
Säger FedEx själva att något är fel kommer notisen direkt: statusen DELAYED (försenad — väder, drift, adress) och deras egna ord «exception» och «delay» i statusraden räknas som avvikelse, även när koden bakom inte står i appens karta. Texten blir «Försenad (FedEx: weather, snow)» när de inte gett en egen mening.
Utkastet är ordern, «Sätt igång», och avbrutna ordrar går att ta tillbaka2.26.0
2026-09-10
Kortet «Utkast: tillverkningsorder E14» på Tillverkningsbehov och raden «Egen E14» under Tillverkning är samma order — inte två. Det stod ingenstans, så utkastet såg ut som en dubblett som blev kvar, och avbröt man «dubbletten» försvann båda (för det var en). Nu står det på raden i listan («utkast · fylls på från Tillverkningsbehov»), överst på ordern, och i frågan innan man avbryter.
Ny knapp på ordern: «Sätt igång tillverkningen». Förut blev en order påbörjad först när en rad bockades av, så utkastet låg kvar på Tillverkningsbehov tills dess. Sätt igång gör den påbörjad direkt; nästa «Lägg på» därifrån öppnar ett nytt utkast.
Avbrutna tillverkningsordrar går att ta tillbaka: knappen «Ta tillbaka» på raden under Tidigare, och överst på den avbrutna ordern. Raderna finns kvar, så den blir öppen igen — påbörjad om något redan bockats av, annars ny. Var det utkastet blir det utkastet igen. En order som slagits ihop med andra går inte att ta tillbaka; den lever vidare i den sammanslagna.
Webbshopens ordrar syns under Nya även utan Fortnox-förslag2.25.4
2026-09-10
En order i webbshopen som saknade varor syntes inte under Nya, fast servern hade läst den («visas nu: 2»). Orsak: listan «Från Shopify — ännu inte i Fortnox» låg innanför villkoret «finns det Fortnox-förslag?» — var det noll förslag från Fortnox visades sidan «Inga förslag» och webbshopens ordrar hölls undan. Samma sak med varningen om ordrar utan hämtade rader. Nu visas de oavsett.
Siffran på fliken Nya räknar nu både Fortnox-förslagen och webbshopens ordrar.
Hjälptexten säger att bara rader vars artikelnummer finns som lagervara i Fortnox visas.
Tillverkning: räkneraderna borta2.25.3
2026-09-10
Raderna «655 kundordrar lästa» och «Shopify: 36 ordrar lästa de senaste 14 dagarna · …» ovanför Hämta ordrar är borttagna — de sköt bara knapparna nedåt. Ordrar som saknar rader varnas det fortfarande om längre ned på sidan, och medan hämtningen pågår står det vad som händer bredvid knappen.
Rutorna på Tillverkningsbehov står två och två igen2.25.2
2026-09-10
Rutorna Slut, Dags nu, Snart och OK hade hamnat tre i bredd med en ensam under, och texten i dem hade skjutits åt sidan. Orsak: statistiksidan för sociala medier (2.24) döpte sina egna rutor till samma namn i stilmallen, och det senare namnet vann. Sociala mediernas rutor har fått egna namn — Tillverkningsbehov och försäljningsstatistiken ser ut som förut.
Videon i statistiken går att spela2.25.1
2026-09-10
Adresserna Buffer lämnar ut till bild och video är tidsbegränsade. Statistiken sparade inläggen i upp till en timme, och då hade videons adress hunnit gå ut — «Videon går inte att spela här» fast samma inlägg gick på startsidan. Nu sparas bara summeringen per kanal en timme; inläggen hämtas alltid färska.
Går en video ändå inte att spela (sidan har legat öppen länge) hämtar appen inlägget om med nya adresser och försöker en gång till innan den ger upp — på båda sidorna.
Inläggen som kort2.25.0
2026-09-10
Listorna på Sociala medier och i statistiken är omgjorda: varje inlägg är ett eget kort med bilden stor överst (video med spelknapp, «3 bilder» på karuseller), plattformens ikon och statusen på bilden, kanal och tid, texten, och knapparna under. Listan är delad i I kön (med utkasten), Publicerat och Gick inte.
Tio inlägg visas åt gången; knappen Visa fler inlägg längst ner tar fram tio till. Appen hämtar upp till 60 från Buffer.
Statistiken glömmer gamla kopior2.24.5
2026-09-10
Statistiken sparas en timme på servern, och en kopia gjord före 2.24.1 saknade länken till inlägget — så knappen Visa inlägget fattades i statistiken men fanns på startsidan. Nu märks kopian med version och hämtas om när något nytt tillkommit.
En video som inte går att spela i appen (filen borttagen efter två veckor, eller ett format telefonen inte spelar) visar omslagsbilden och säger varför, med hänvisning till plattformen — i stället för en svart ruta.
Inlägget i stort, och frågetecken som ruta2.24.4
2026-09-10
Tryck på ett inlägg i listan I Buffer eller i statistiken så visas det i stort: bilderna att svepa mellan, eller videon med spelknapp, texten, och knappen «Visa inlägget på Instagram/Facebook/TikTok» som öppnar det på plattformen (där kommentarerna står). I statistiken visas inläggets tal i rutan.
Frågetecknen öppnar nu en ruta över sidan med Stäng-knapp; ett tryck utanför eller Escape stänger också. Förut fälldes texten ut i raden och det vid kanalerna gick inte att stänga.
Alt-text, bildtaggar och frågetecken2.24.3
2026-09-10
Tryck på en bild i remsan under texten så visas den stort med två saker: alt-text (en beskrivning i ord, för skärmläsare och för att Instagram ska förstå bilden) och bildtaggar — tryck i bilden där ett konto syns, skriv kontonamnet, och taggen sitter där; tryck på taggen för att ta bort den. Bildrutan visar «Aa» när alt-text finns och «@2» för två taggar.
Små frågetecken bredvid det som kan behöva en förklaring — inlägg/reel/story, första kommentar, länk, AI-märkning, omslagsbild, alt-text, bildtaggar, När, mallar, dagsgräns, Först i kön och måtten i statistiken. Tryck så fälls en kort förklaring ut.
Plattformarnas egna ikoner2.24.2
2026-09-10
Facebook, Instagram och TikTok visas med sina egna ikoner i stället för bokstavsmärken — på kanalbilderna, i korten, i listan I Buffer och i statistiken. Ikonerna ligger i public/sociala; en kanal utan ikonfil får bokstavsmärket som förut.
Statistiken direkt under kanalerna2.24.1
2026-09-10
Statistik-knappen ligger nu högst upp på Sociala medier, direkt under kanalbilderna, med egen ikon.
På statistiksidan trycker man på en kanal för att se bara dess inlägg med tal per inlägg; tryck igen eller «visa alla» för allt. Perioden är 7 eller 30 dagar (90 borttaget).
Buffer lämnar ut antalet kommentarer men inte själva kommentarerna. Varje publicerat inlägg har därför en länk Öppna inlägget som går till inlägget på Facebook, Instagram eller TikTok, där kommentarerna står — även i listan I Buffer.
Sociala medier: bilder, statistik, kön, mallar och fler kanaler2.24.0
2026-09-10
Bilder: ett inlägg kan ha en till tio bilder (karusell på Facebook och Instagram) i stället för bara video. Bilderna ligger som rutor under texten, med + för att lägga till fler och × för att ta bort. Bilder laddas upp samma väg som video, via appens server.
Omslagsbild för video: dra i reglaget under videon och välj vilken bildruta som blir omslaget — som i Buffer.
Statistik (länk under Lägg in): räckvidd, visningar, reaktioner, kommentarer, delningar och engagemang per kanal för 7, 30 eller 90 dagar, och varje publicerat inlägg med sina tal och en stapel mot periodens största. Buffer räknar en gång om dygnet, och siffrorna sparas en timme i appen. Kräver att Buffer-nyckeln har rättigheten insightsRead — annars säger sidan det.
Kön i Buffer: Ändra text och tid på ett inlägg som väntar, Först i kön, Ta bort. Utkast i Buffer visas och kan ändras. Listan visar en miniatyr av bilden eller videon.
Dagsgräns under varje kanal («12 kvar i dag») — TikTok och Instagram har gränser, och en kanal som nått sin gräns väljs inte av sig själv.
Mallar: knappen Mallar visar Buffers färdiga texter — tryck på en så fylls den i. Texten man skrivit kan sparas som ny mall. Under När finns nu även Utkast, som sparar inlägget i Buffer utan tid.
Fler kanalinställningar, bara på de kanaler som har dem: länkkort på Facebook, LinkedIn och Threads för textinlägg; titel för bildinlägg på TikTok; YouTube (titel, synlighet, gjord för barn, meddela prenumeranter); Pinterest (titel, länk); Threads (ämne); Mastodon (innehållsvarning); Google Business (rubrik). Kopplar ni fler kanaler i Buffer dyker de upp av sig själva.
Lägg in släpper knappen direkt2.23.3
2026-09-10
Efter Lägg in väntade knappen på att listan I Buffer hämtats om innan den släpptes — nu visas svaret per kanal direkt och listan hämtas i bakgrunden.
Varje kanal i svaret visar hur många sekunder Buffer tog på sig, och tiderna skrivs i serverloggen. Då syns det om det är Buffer som är långsam (den hämtar och kontrollerar videon när inlägget skapas) eller något i appen.
Snabbare uppladdning och publicering2.23.2
2026-09-10
Telefonen skickar tre bitar av videon samtidigt i stället för en i taget — det var väntetiden per anrop, inte själva mängden data, som tog tid. Servern tar bitarna i vilken ordning de kommer och skickar dem vidare till lagret i rätt ordning, under lås så att två samtidiga anrop aldrig skickar samma del. En bit som kommer två gånger (omförsök efter tappat svar) räknas en gång.
Lägg in / Publicera nu skickar till Facebook, Instagram och TikTok samtidigt i stället för i tur och ordning — Buffer tar några sekunder per kanal.
Videon skickas oförändrad byte för byte (kontrollsumma i provet). Ser den sämre ut på TikTok än på Facebook och Instagram är det TikToks egen omkodning, som är hårdare än Metas: vertikal 1080×1920, HDR av på iPhone-kameran och högst 60 bilder/s brukar ge bäst resultat.
Nyckeln till filagret följer alltid med2.23.1
2026-09-10
Vercels bibliotek väljer OIDC med BLOB_STORE_ID före nyckeln BLOB_READ_WRITE_TOKEN. Låg ett gammalt (privat) lagers BLOB_STORE_ID kvar på projektet hamnade allt i det gamla lagret hur rätt nyckeln än var — därför stod «lagret är privat» kvar efter nyckelbytet. Nu skickas nyckeln med uttryckligen i varje anrop, så det är alltid nyckelns lager som gäller.
Kopplas lagret med ett annat prefix på Vercel (t.ex. VIDEO_READ_WRITE_TOKEN, för att BLOB redan var upptaget) hittas den nyckeln också. Prova filagret säger vilken nyckel som används.
Videon går via servern2.23.0
2026-09-10
Uppladdningen av videor är ombyggd från grunden. Förut gick videon direkt från telefonen till Vercels lager med Vercels eget bibliotek — och på iPhone gick den till 100 % och började om, om och om igen, utan att något gick att se. Nu går videon i bitar om fyra megabyte till appens egen server, som sätter ihop dem och skriver till lagret — samma väg som Prova filagret går. Varje bit är ett vanligt anrop som svarar med ett riktigt fel om något går snett, och en tappad bit görs om tre gånger innan appen ger upp och säger vilken bit det var.
Servern skickar delarna vidare till lagret allt eftersom (åtta megabyte i taget), så ingen fil behöver rymmas i ett anrop och inget ligger kvar när uppladdningen är klar. Provat lokalt byte för byte med filer på 3, 21 och 120 MB. Påbörjade uppladdningar som aldrig blev klara städas efter ett dygn.
Videouppladdning som fastnade vid 99 %2.22.2
2026-09-10
Uppladdningen av en video kunde gå till 99 % och börja om, om och om igen. Det var Vercels bibliotek som gör om anropet tio gånger med växande paus när lagret svarar fel, utan att säga något. Nu bryter appen efter andra omstarten (eller efter 20 sekunder utan svar), säger varför, och låter servern prova lagret själv: den skriver en liten fil med samma nyckel och svarar exakt vad som är fel — privat lager, nyckel som hör till ett annat lager, eller att lagret fungerar från servern men inte från telefonen.
Ny knapp Prova filagret under listan I Buffer, för att kolla lagret utan att ladda upp en video. Misslyckade uppladdningar skrivs till serverloggen med fil, storlek och telefonens webbläsare.
Publiceringsläget (Automatiskt/Notis) är borta från korten — Buffer lägger alltid ut själv.
Vercel Blobs återanrop efter en uppladdning nekades som «Ej inloggad» (det har ingen inloggningskaka; signaturen kontrolleras i stället). Rättat.
Sociala medier med Buffers upplägg2.22.1
2026-09-09
Sidan Sociala medier ser nu ut som Buffers egen app: kanalbilderna överst (tryck för att välja), texten och videon i en ruta, och sedan ett kort per vald kanal med det just den kanalen kan ställa in. Facebook och Instagram: Inlägg, Reel eller Story. Instagram och TikTok: publiceringsläge Automatiskt eller Notis (Buffer påminner i sin app och man lägger ut själv). Facebook och Instagram: första kommentar. Instagram: länk. Instagram och TikTok: AI-märkning.
En bifogad video gör Facebook- och Instagram-inlägget till reel av sig självt; utan video går bara vanligt inlägg. Knappen säger hur många kanaler inlägget går till.
Rättat efter första skarpa provet: listan I Buffer hämtades med ett statusfilter som Buffer inte känner igen («Value buffer does not exist in PostStatus enum») — nu hämtas den utan filter och Buffers egna statusord tolkas. Instagram och TikTok tar inga inlägg utan video; kortet säger det, och skickar man ändå får kanalen ett svenskt svar i stället för Buffers engelska felmeddelande. Facebook får alltid typen post med. Buffer skriver tjänsten med små bokstäver («facebook») vilket gjorde att märkena blev «fa»/«ti» och korten stod tomma — rättat.
Tydligare text om vad som saknas när filagret för video inte är kopplat: Vercels nya Blob-lager lägger bara in BLOB_STORE_ID, medan uppladdning från telefonen kräver BLOB_READ_WRITE_TOKEN från lagrets egen sida.
Sociala medier via Buffer, och våra hemsidor2.22.0
2026-09-09
Ny knapp överst (den färgglada bredvid uppdatera): Sociala medier. Välj en video från telefonen, skriv texten, kryssa Facebook, Instagram och TikTok, och välj nästa lediga tid i Buffers schema, nu, eller en vald tid. Buffer publicerar. Sidan visar vad som ligger i kön, vad som gått ut och vad som gick fel, med Ta bort på det som väntar. Facebook och Instagram får videon som reel om man inte kryssar ur det.
Videon laddas upp från telefonen rakt till appens filager (Vercel Blob) och tas bort två veckor efter inlägget. Kräver BUFFER_API_KEY och ett Blob-lager på Vercel — sidan säger vad som saknas.
Loggan uppe till vänster leder till Våra hemsidor: Texsolv.se, Texsolvshop.se och Runlock.com, som öppnas i en egen flik.
Artikelbilderna med i säkerhetskopian2.21.1
2026-09-09
Bilderna sparas i en egen fil i Dropbox (lager-bilder-…) som skickas när någon bild ändrats — inte varje natt, för de är stora och byts sällan. Den senaste bildfilen behålls alltid, hur gammal den än är. «Även bilderna» på sidan skickar dem på direkten. Nu är allt med utom nycklarna till Fortnox, Shopify och Dropbox.
Återställningen tar båda filerna: node verktyg/aterstall.mjs lager-….jsonl.gz lager-bilder-….jsonl.gz.
Säkerhetskopia till Dropbox varje natt2.21.0
2026-09-09
Inställningar → Säkerhetskopia: hela databasen — saldon, ordrar, plock, tillverkning, spårningar, inställningar — sparas som en packad fil i er Dropbox (Appar → Texsolv Lager) strax efter midnatt varje natt. Filer äldre än 30 dagar tas bort, den senaste behålls alltid. «Säkerhetskopiera nu» tar en direkt.
Kopplas en gång: skapa en Dropbox-app (sidan säger exakt hur), lägg nyckeln och hemligheten på Vercel, öppna Dropbox-länken och klistra in koden. Appen får bara skriva i sin egen mapp.
Artikelbilderna och nycklarna till Fortnox, Shopify och Dropbox är inte med — bilderna finns i Fortnox arkiv och nycklar hör inte hemma i en delad mapp. Återställning: node verktyg/aterstall.mjs fil.jsonl.gz.
Skärmen hålls tänd medan appen är öppen2.20.3
2026-09-09
Telefonen släcker inte längre skärmen mitt i plocket eller inventeringen. Appen ber om skärmlåset efter första trycket och tar om det när den kommer fram igen; i bakgrunden släpps det, så batteriet går inte åt i onödan. Går att slå av per telefon under Inställningar → Den här telefonen. Kräver iOS 16.4 eller nyare.
Kategoriernas ordning följer inställningen2.20.2
2026-09-09
Chipsraden på Artiklar sorterades efter antal artiklar, så ordningen under Inställningar → Kategorier gjorde ingenting. Nu gäller listan där: det som står i den kommer först i dess ordning (stora och små bokstäver spelar ingen roll), kategorier som inte står med kommer efter i bokstavsordning, och Övrigt alltid sist. Samma ordning i Tillverkningsbehov och inventeringen.
Inaktivera många utan att servern hinner ge upp2.20.1
2026-09-09
280 artiklar på en gång gav «Servern svarade 504»: varje artikel är ett anrop till Fortnox, och alla på en gång tog längre än serverns minut — fast hälften redan var gjord. Sidan skickar nu tjugo i taget och visar «40 av 280 klara…». Stannar det står de som inte hann med kvar i listan, så det är bara att kryssa och köra igen.
Hjärtslag på kopplingarna, och inaktivera artiklar2.20.0
2026-09-09
Inställningar → Hjärtslag: varje morgon efter sex provas Fortnox, Shopify, FedEx, PostNord, Sendify, schemaläggaren, push-notiserna och e-posten med ett litet anrop var. Det som går från fungerar till trasigt ger en push-notis, och när det fungerar igen sägs det en gång. Sidan visar varje sak med grönt, rött eller avstängt och ett ord om varför; «Prova nu» provar direkt.
Inställningar → Inaktivera artiklar: slå av och på artiklar i Fortnox och appen på en gång. Sök vilken artikel som helst, även inaktiva, eller kryssa bland de aktiva lagervaror som inte finns på en enda order — med saldo och lagervärde. Loggen visar vem som gjorde vad, med «Aktivera igen».
På artikelns redigeringspanel finns «Inaktivera artikeln» längst ner, med ett bekräftande tryck.
Ingen inzoomning när man söker2.19.8
2026-09-08
iPhone zoomade in sidan när man ställde sig i sökfältet under Tillverkningsbehov, och zoomen blev kvar så att sidan skars av. Fälten har nu 16 px text, och sidan säger åt Safari att inte zooma vid fokus — det gäller alla sidor i appen. Nypzoom fungerar som förut.
Tillverkningsbehov: en knapp på raden, och färre rutor2.19.7
2026-09-08
Varje rad som behöver något har en knapp: «+ Tillverkningsorder» skapar utkastet och lägger dit artikeln med förslaget som antal; finns utkastet heter den «+ Lägg på E57». Raden står kvar i «Behöver något» och säger «På utkastet E57: 483 st» tills ordern satts igång. «Välj flera» finns kvar för många på en gång.
Flikarna Behöver något / OK / Utan försäljning och kryssrutan Visa ignorerade är borta. I stället en rullgardin — Behöver något, Slut, Dags nu, Snart, OK, Utan försäljning, Alla, Ignorerade — bredvid kategorin. Rutorna överst och rullgardinen är samma val.
Bild på artikeln i Tillverkningsbehov2.19.6
2026-09-08
Varje rad under Tillverkningsbehov har artikelns bild, som på sidan Artiklar: egen bild först, annars butikens.
Varningen på raden borttagen2.19.5
2026-09-08
Raden i Tillverkningsbehov varnar inte längre när en order dominerar försäljningen. Ordrarna och «Räkna inte» finns kvar under artikeln.
Tillverkningsbehov: ordrarna bakom takten, och rader som inte ska räknas2.19.4
2026-09-08
Öppna en artikel och tryck «Visa ordrarna»: varje order artikeln ingår i, senaste först, med datum, kund och antal. Ordernumret leder till ordern.
Ser en rad fel ut — 159000 såldes en gång i meter fast enheten är antal — tryck «Räkna inte». Raden räknas då inte i takten; ordern rörs inte, och det står vem som gjorde det. «Räkna med» tar tillbaka.
Står en enda order för minst hälften av det sålda (och det finns minst tre ordrar) varnar raden: «En order står för 97 % av försäljningen — öppna och kolla».
Tillverkningsbehov: klickbara rutor, välj flera, utkast till tillverkningsorder2.19.3
2026-09-08
Sidan heter nu Tillverkningsbehov, och kortet under Tillverkning är större och visar hur många artiklar som behöver något.
De fyra rutorna överst går att klicka på: Slut, Dags nu, Snart eller OK sållar listan. Klicka igen för att släppa.
«Välj flera» ger en kryssruta på varje rad. De valda kan ignoreras på en gång, eller läggas i ett utkast till tillverkningsorder med förslaget som antal. Utkastet är en vanlig egen tillverkningsorder som ligger kvar som ny tills den sätts igång — går man tillbaka och lägger till fler hamnar de i samma utkast, och ligger artikeln redan där höjs antalet om förslaget vuxit. Det som ligger i utkastet räknas som på väg, så raden slutar vara röd.
Ett år av Fortnox-historik till takten2.19.2
2026-09-08
Takten räknades på ordrarna i appens databas, som börjar den dag appen sattes upp. Under Beställningsarbetet finns nu «Läs in 12 månader bakåt»: äldre ordrar hämtas ur Fortnox, raderna kommer i den vanliga avläsningen (några timmar), och fönstret går att sätta till 365 dagar. Bara ordrar som har sina rader räknas, så takten sjunker inte medan inläsningen pågår.
«Tillverka nu», inte «Beställ nu»2.19.1
2026-09-08
Ni tillverkar det mesta själva. Läget heter nu Tillverka nu, och förslaget säger «tillverka 480 st». Det som köps in markeras per kategori (kryssrutan Köps in under Beställningsarbetet) eller per artikel — då står det Beställ nu och «beställ … st» i stället.
Att fylla på — beställningsarbetet2.19.0
2026-09-08
Ny sida under Tillverkning: «Att fylla på». Varje lagerartikel får en takt ur ordrarna i Fortnox (butik och webbshop), och mot saldot och det som redan är i tillverkning räknas hur många dagar den räcker. Det som tar slut först ligger överst, med läge (Slut · Beställ nu · Snart · OK), räckvidd i dagar, en stapel mot gränsen och ett förslag på hur mycket som ska tillverkas eller beställas.
Filtrera på läge och kategori, sök, sortera (tar slut först, kategori, störst förslag, artikelnummer). Ignorera artiklar som inte ska räknas — de går att visa och ta tillbaka.
Regler: ledtid, säkerhet och täckning som standard, per kategori och per artikel (plus batch och minsta antal). Inställningar → Artiklar → Beställningsarbetet.
Notis när en artikel går ner i «beställ nu» eller «slut» — en gång per artikel, igen först när den varit OK däremellan. Räknas en gång i timmen dygnet runt.
Fraktbevakningen går dygnet runt på den avläsning som redan finns2.18.2
2026-09-08
Spårning, notiser om frakter med problem och efterforskningar hängde på den stora avläsningen, som bara går när någon har appen öppen. Nu åker de med den lätta avläsningen som er schemaläggare redan anropar varje minut — var tionde minut sveper den, resten av gångerna svarar den direkt. Ingen ny schemaläggning behövs.
Brevlådan säger vad som är fel i variablerna2.18.1
2026-09-08
«getaddrinfo EBUSY ukdy» sa ingenting. Nu granskas SMTP-variablerna redan på inställningssidan: ett SMTP_HOST som inte ser ut som ett servernamn, ett SMTP_USER som inte är en adress, ett för kort lösenord, en ovanlig port, ett MAIL_FROM utan adress — allt står i klartext med värdet som är fel.
MAIL_FROM med bara ett namn («Texsolv») blir «Texsolv <brevlådan>» av sig själv; en avsändaradress som inte är brevlådans ersätts, för Google och Microsoft vägrar skicka som någon annan.
Efterforskning per e-post, «åtgärdat», och ett svep som hinner med2.18.0
2026-09-08
Efterforskning hos fraktbolaget: när en sändning bokad här stått stilla i 15 dagar (ändras) skriver appen ett mejl med allt bolaget behöver — spårningsnummer, konto, avsändare, mottagare, kollin, senaste händelse — och skickar det från er egen brevlåda. Svaret kommer till er inkorg. Knappen «Efterforska hos FedEx» på sändningen skickar samma mejl direkt. Inställningar → Efterforskning: koppla brevlådan, provmejl, adresser per bolag, dagsgräns, språk.
«Markera som åtgärdad» på ett problem som är löst på annat sätt: raden slutar vara röd och notisen tiger, tills det blir ett annat slags problem. Går att ångra.
Webbshoppen: «behöver en blick» räknas över alla sändningar, inte bara de femtio som visas, och knappen visar exakt dem.
Spårningssvepet frågar FedEx trettio nummer i ett anrop och de tre bolagen samtidigt — det som tog minuter tar sekunder. «Uppdatera alla» frågar tills allt är frågat i stället för att be dig trycka igen. Avläsningen var femte minut hinner nu med alla aktiva sändningar.
Hitta det notisen pratar om, hela webbshoppen, och svepet som tystnat2.17.1
2026-09-08
Notisen sa «6 sändningar behöver en blick» men listan märkte bara lägen (tull, ombud, avvikelse) — inte upphämtad och står stilla syntes inte alls. Nu bedöms listan med samma regler som notisen, raden får en röd märkning med orsaken, och rutan «behöver en blick» är tydligt en knapp: Visa / Visa alla. Finns på båda flikarna, och notisen öppnar listan färdigfiltrerad.
Webbshoppen: listan visar nu hela butiken, femtio ordrar i taget med «visa fler», ur appens databas — ingen 30-dagarsgräns längre. Namn och ort hämtas ur Shopify för det som visas; sökning på kundnamn går fortfarande till Shopify.
Webbshoppens sändningar slutade uppdatera sig av sig själva efter 2.16.2: när hela historiken lästes in fylldes svepets kö av tusentals gamla rader, och de nya nådde aldrig fram. Rättat — svepet frågar bara om det som är yngre än sextio dagar och inte levererat.
Notis när en frakt får problem2.17.0
2026-09-07
Telefonen säger till när en sändning behöver en blick: avvikelse hos fraktbolaget, på väg tillbaka, fast hos tullen, ligger hos ombud för länge, står stilla, eller etikett skriven men kartongen aldrig upphämtad. Gäller både det som bokats här och webbshoppens sändningar.
Varje sändning sägs en gång per slag av problem — inte var femte minut tills det löst sig. Trycker man på notisen öppnas listan med bara det som behöver en blick.
Dagsgränserna (inte upphämtad 3, står stilla 6, hos ombud 7) och av/på finns under Larm → inställningar → Frakter med problem.
Skannern: en streckkod som satt både som EAN i Fortnox och som Shopify-streckkod på en annan artikel öppnade inte artikeln utan hamnade i sökrutan. Nu vinner Fortnox egen kod, och bara när två artiklar delar samma kod visas listan — med en förklaring.
«Allt» i statistiken började i juni2.16.2
2026-09-07
Webbshoppens sändningar fanns i databasen bara så långt bak som fliken Webbshoppen råkat visa. Nu läser statistiksidan in hela butikens historik från Shopify, en omgång i taget, medan du tittar — första gången tar det en stund och siffrorna fylls på; sedan är det gjort.
Det som bokats här i appen finns från den dag appen började boka frakt; äldre sändningar som bokades direkt hos FedEx finns inte i någon databas vi kan läsa.
Statistiken sa «okänt land» om nästan allt2.16.1
2026-09-07
Webbshoppens sändningar hade inget land sparat före 2.16.0. Nu slås landet upp hos Shopify på ordernummer när statistiksidan öppnas, några ordrar i taget, tills alla har det — sidan fyller på av sig själv.
Svenska kunder i Fortnox har ofta landet tomt. Bokningen räknar det som Sverige, och nu gör statistiken det också.
«Okänt land» står sist i listan, hur många det än är.
Fraktstatistik2.16.0
2026-09-07
Ny sida: Statistik. Försändelser per land, fraktbolag, tjänst och månad, med fraktkostnad, snittpris och leveranstid (median). Nås från fliken Statistik under Bokade frakter och från Inställningar → Frakt.
Välj period (30 dagar, 90 dagar, 12 månader, i år, allt) och källa (bokat här, webbshoppen, båda).
Webbshoppens sändningar sparar nu mottagarlandet så att de kan räknas per land.
Landsnamn med flera ord skrivs med stor bokstav på varje ord (Nya Zeeland).
Handelsfakturor som gått elektroniskt låg och skräpade i kön2.15.8
2026-09-04
En handelsfaktura som redan gått upp till fraktbolaget sparas för att kunna öppnas i efterhand — men den lades i utskriftskön som ett väntande papper. Ingen skrivare har den rollen, så den blev liggande för alltid: räknaren sa «3 väntar» och ingenting kom någonsin ut. Efter ett par sändningar tror man att skrivaren krånglar, och då slutar man lita på siffran den dagen den betyder något.
Nu har de ett eget läge. De står kvar under Papper i fraktlistan med texten «gick elektroniskt · finns att öppna», räknas inte som väntande arbete, och går fortfarande att skriva ut med «skriv ut igen» om tullen vill ha pappret i en påse.
De som redan ligger i kön flyttas över automatiskt.
Appen minns hur handelsfakturan gick2.15.7
2026-09-04
Sendify bokar inte en tullsändning utan handelsfaktura — sändningen kunde alltså omöjligt ha blivit av om fakturan inte gått upp. Appen visste det i stunden men skrev aldrig ner det, så en runda som öppnades senare kunde inte svara på frågan.
Nu sparas det vid bokningen: gick fakturan elektroniskt till FedEx med kvittens, laddades den upp till Sendify, ligger den som papper i plastfickan, eller behövdes ingen alls. Kvittensen säger samma sak i dag som om en vecka, när tullen ringer.
En runda bokad före den här versionen vet ingenting, och då visas ingen rad — hellre tyst än en gissning.
Kvittensen sa emot sig själv om handelsfakturan2.15.6
2026-09-04
«Handelsfaktura: Måste skrivas ut» stod två centimeter ovanför rutan som sa att fakturan är uppladdad till Sendify och skickad elektroniskt. Raden kände bara FedEx väg — elektroniska handelsdokument med kvittens — och allt annat föll ner på «måste skrivas ut». Nu säger den «Uppladdad till Sendify» när det är det som hänt.
På en runda vars kvittens läses ur databasen visas raden inte alls. Databasen minns inte hur fakturan gick, och «behövs inte — inom EU» på en sändning till Norge vore ett löfte appen inte kan hålla. Pappret ligger kvar under Papper i fraktlistan för den som behöver det.
Etiketten behåller sin form2.15.5
2026-09-04
Du hade rätt: appen gjorde något med filen. Sidan från fraktbolaget renderades in i etikettens ruta — 4 × 6 tum, oavsett vilken form sidan hade. En A6-sida på 105 × 148 mm, vilket flera bolag skickar, trycktes ihop sex procent på bredden och drogs ut lika mycket på höjden.
Det syns knappt på texten och desto mer på en streckkod: dess streckbredder är hela dess funktion, och en skanner som läser fel bredder läser fel kod eller ingen alls. Nu ritas sidan i sina egna proportioner och skalas in i etiketten med formen bevarad.
En 4 × 6-etikett på en 100 mm rulle krymps dessutom till 98 procent i stället för att klippas i kanten. Rullen är 100 mm bred och fraktbolagen ritar för 102.
Provet är en kvadrat: kommer den ut som en kvadrat är formen bevarad. Den provas på fyra sidformat — 4 × 6, A6, A5 och A4 — och föll på tre av dem innan rättelsen.
Etiketten var aldrig fel — och skalas inte längre upp2.15.4
2026-09-04
Etiketterna som skrevs ut direkt från FedEx och Sendify ser likadana ut som appens. Den stora tomma ytan i nederkant är alltså fraktbolagens egen layout, inte något appen gör — och måttkontrollen visade att skrivaren matar rätt längd papper. Ingenting var trasigt.
Däremot rättas något jag införde i morse: en sida som redan är en etikett beskärs och förstoras inte längre för att fylla papperet. Fraktbolagen kräver att etiketten skrivs i skala 1:1, och en uppförstorad streckkod har inte längre de mått deras skannrar är byggda för. Beskärningen gäller nu bara sidor som är mycket större än etiketten — en etikett i hörnet av en A4, där alternativet är en frimärksstor fläck.
Provet som skulle vaka över det här kunde inte misslyckas. Det läste ZPL-bilden med en hemmagjord regel, men ^GFA-datan har inga radbrytningar och är dessutom komprimerad — provet mätte något helt annat än etiketten och sa ändå att allt var bra. Nu packas bilden upp på riktigt (lib/zpltolk.js), och proven mäter etiketten.
Måttkontrollen mätte fel — nu gör den inte det2.15.3
2026-09-04
Det vågräta strecket var 100 mm långt och började 6 mm in på en etikett som är 100 mm bred. Det slutade alltså utanför etiketten, skrivaren klippte det vid kanten, och måttkontrollen rapporterade ett fel som bara fanns i den själv. Strecket är 80 mm nu och ryms med marginal.
Texten saknade å, ä och ö. Zebrans inbyggda typsnitt skriver det den kan och hoppar tyst över resten, så «Vågrätt» kom ut som «Vgrtt». Appens andra etiketter ritas som bilder och klarar vilka tecken som helst; den här är ren ZPL, och då gäller skrivarens teckentabell.
Måttkontrollen går nu till samma skrivare som fraktetiketterna. Skrivarvalet görs per papperssort, så den kunde hamna på en annan Zebra än den man ville mäta — och då mäter man fel maskin.
Vad mätningen visade: det lodräta strecket är exakt 50 mm. Skrivaren matar alltså rätt längd papper och upplösningen stämmer. Det som återstår att förklara är fraktetiketten, och där är nästa steg att mäta trycket på en färsk sådan.
Bokningen svarar i tid, och kvittensen står ensam på skärmen2.15.2
2026-09-04
Fraktraden i Fortnox görs nu i ett eget anrop efter bokningen. Den låg sist i bokningen och gjorde två Fortnox-anrop innan svaret gick iväg — tillsammans med fraktbolaget och etiketten blev anropet så långt att servern hann dödas innan den svarade. Sändningen fanns, etiketten kom ut, och telefonen sa «servern hann inte svara». Varje gång.
Blir fraktraden ändå inte av — appen stängdes, nätet försvann — görs den om nästa gång fraktsidan öppnas. Resultatet sparas på rundan, så att raden inte skrivs två gånger.
Kommer inget läsbart svar frågar appen rundan i stället för att skrämmas. Är sändningen bokad står det «Frakten är bokad» och kvittensen visas; det gamla beskedet kom även när allt gått igenom, och en varning man lär sig strunta i är värdelös den gången den betyder något.
Bokningsknapparna längst ned låg kvar under kvittensen på en runda som lästes ur databasen. De hörde ihop med ett färskt bokningssvar och inte med «är den bokad?» — nu försvinner de så fort frakten är bokad, oavsett var kvittensen kommer ifrån.
Kräver Sendify en handelsfaktura de inte nämnde i prislistan bygger appen den och försöker igen, en gång. Förut fick man beskedet att göra om exakt det som just misslyckats. Ingenting bokades vid nejet, så det finns ingen risk för två sändningar.
En manuell frakt får ingen varning om att avtalspriset saknas. Den har ingen order att skriva raden på — kostnaden står på fraktbolagets faktura.
«FedEx FedEx Regional Economy» heter bara «FedEx Regional Economy». Sendify skickar bolagsnamnet både för sig och först i produktnamnet.
Måttkontroll — mät i stället för att gissa2.15.1
2026-09-04
Ny knapp under Inställningar → Skrivare: «Skriv ut en måttkontroll». Den skriver ut en etikett med två streck av känd längd — 100 mm vågrätt och 50 mm lodrätt — och texten som säger vad måtten betyder. Två mätningar med en linjal, och man vet vad som är fel.
Tre saker ger en ihoptryckt etikett, och de kräver tre olika åtgärder. Är båda strecken ungefär två tredjedelar för korta är skrivaren en 300-punktare och siffran i inställningarna fel. Är bara det lodräta fel matar skrivaren fel längd papper och behöver kalibreras mot rullen. Stämmer båda är etiketten rätt när den lämnar appen, och då sitter felet i vad fraktbolaget skickade.
Kvittensen visar nu vilket format bolaget skickade etiketten i — «102 × 152 mm» eller «210 × 297 mm». Frågan om Sendify skickar olika beroende på fraktbolag gick inte att svara på förut: sidan ritades och kastades. Nu står måtten där.
Fotot av den ihoptryckta etiketten gick att mäta men inte att lita på: bredden stämde och längden var två tredjedelar, vilket inte kan komma av upplösningen ensam. Därför den här knappen i stället för en gissning till.
Provadresser — boka en riktig sändning utan att leta adress2.15.0
2026-09-04
Tre knappar på «Boka frakt manuellt» som fyller i en färdig sträcka: Sverige, inom EU och utanför EU. Mottagare, kolli och — där det behövs — en vara med HS-kod, ursprung och vikt, så att hela vägen fram till en riktig bokning går att prova.
Sverige går till vårt eget lager med ett kolli som ryms i en brevlåda, så att PostNords brevtjänster dyker upp i listan. Inom EU är Köpenhamn, utanför EU är Oslo — offentliga byggnader vars adresser fraktbolagens adresskontroll känner igen. Mottagarna heter PROVSÄNDNING, så att en etikett som blir liggande på packbordet inte råkar följa med en pall ut.
Slås på och av under Inställningar → Fraktbolag. Avstängt är förvalet: knapparna hör hemma när man provar, inte i vägen när man packar på riktigt.
Ett nytt provverktyg kör adresserna genom samma kontroller som bokningen — postnummer, telefon, landkod, mått, HS-koder — så att en provadress inte blir det som provas. Det hittade direkt att sträckan till Danmark saknade varuuppgifter: EU tar ingen tull, men FedEx kräver varuraderna över varje landsgräns ändå.
Bokningarna blir riktiga och kostar pengar. Det står på både knappraden och i inställningen.
Etiketten i rätt storlek — 203 eller 300 dpi2.14.4
2026-09-04
Fraktetiketten kom ut i två tredjedels storlek, tryckt i ett hörn med streckkoder för små att skanna. Både FedEx och PostNord lämnar sina etiketter i 203 dpi — FedEx har ingen annan, och PostNords spec har ett enda tillåtet värde i fältet. En 300-punktare ritar en punkt per punkt, och två tredjedelar är exakt vad 203 delat med 300 blir.
Nu står upplösningen under Inställningar → Skrivare. Är skrivaren en 300-punktare tas etiketten som PDF från bolaget i stället och ritas om här i rätt upplösning — samma väg som Sendifys etiketter redan gick. Är den en 203-punktare används bolagens egen ZPL som förut, den är skarpare.
Siffran gick förut bara att sätta med en miljövariabel i Vercel, alltså av den som kan koden. Den som byter skrivare är någon annan.
Appens egna etiketter följde redan siffran, och därför syntes felet bara på fraktbolagens.
Fraktvyn visar bokningen i stället för fraktvalet2.14.3
2026-09-04
Frågan var varför du inte hamnade på klart-sidan när sändningen ändå bokades. Svaret: kvittensen byggdes bara av svaret på bokningen, och kom inget svar fram visste sidan ingenting. Den visade fraktvalet igen, och trycket gav «redan bokad» — två besked som inte gick ihop, med en etikett i handen. Nu läses bokningen ur databasen, så kvittensen visas oavsett hur svaret gick, med när den bokades och av vem.
Ny knapp: «Skriv ut etiketten igen». Bokningen går inte att göra om — sändningen finns — och när svaret tappats bort eller pappret fastnat i skrivaren var fraktbolagets egen portal enda vägen till en ny etikett. Samma jobb läggs i kön igen, inga nya.
Anropen till Fortnox har en tidsgräns på tolv sekunder. Fraktraden ligger sist i bokningen och hade ingen bortre gräns — funktionen dog på sin minut medan den väntade, och det var därför inget svar kom. Nu blir bokningen klar utan fraktrad i värsta fall, och det står på kvittot att den ska skrivas in för hand.
PostNord-bokningar med många kollin slutar boka medan det finns tid kvar att svara. En försändelse per kolli är ett anrop per kartong, och tio kartonger med ett trögt PostNord blev längre än minuten. De som hann bokas kommer tillbaka, resten bokas när man trycker igen.
Bokningen skrivs ner först, etiketten fyller etiketten2.14.2
2026-09-04
En Sendify-bokning gick igenom, etiketten kom ut, och skärmen sa ändå «The string did not match the expected pattern». Det är telefonens sätt att säga att svaret inte gick att läsa — funktionen hann boka men inte svara klart. Nu står det i stället vad som gäller: sändningen kan vara bokad, kontrollera under Bokat innan du bokar om. Knappen «visa tider» döljs, för då vet vi inte om något nekades.
Bokningen skrivs ner i databasen direkt när fraktbolaget bekräftat, före etiketter, tullpapper och fraktraden. Raden skrevs förut sist av allt, så en funktion som dog på tidsgränsen lämnade en sändning som fanns hos bolaget men inte i appen — och nästa tryck bokade en till.
Fraktsedeln kom ut ihopkrympt. Sidan renderades rakt av till etikettens mått oavsett vilket format fraktbolaget lagt den i, och kommer etiketten som ett litet fält uppe i hörnet på en A4 pressades hela A4:an in på 4 × 6 tum. Nu mäts var trycket sitter, och det området fyller etiketten med bibehållna proportioner.
En manuell frakt utan artikelrader gick inte att skriva ut någon packsedel på. Sidan krävde minst en rad för att räkna rundan som klar, och en manuell frakt eller en retur har ofta noll rader — den fastnade i plockvyn med en tom lista.
Resten av fraktgenomgången2.14.1
2026-09-04
En tom etikett räknas inte längre som en etikett. Fraktbolagets PDF kan komma innan bolaget skrivit in sina uppgifter, och den helvita sidan kodades som en giltig etikett: Zebran matade ut ett blankt papper och appen sa «Bokad · 1 etikett» — omöjligt att skilja från ett skrivarfel. Nu sägs det, med vilken sida det gällde.
FedEx-bokningen skickar inte samma sak två gånger. Faller en sändning inom EU försökte appen boka om «utan elektronisk handelsfaktura» — men inom EU fanns ingen sådan i anropet, så andra försöket var byte för byte identiskt med det första. Två bokningsförsök av samma sändning, och ett felmeddelande som skyllde på fel sak.
Sendify får säga nej med en gång. Deras kontroll av att sändningen går att boka var avstängd, så ett utkast kunde se prissatt ut och nekas först vid bokningen — alltså efter att kartongen packats.
Gamla spårningsnummer ligger inte kvar på kollina när en runda bokas om. En kartong kunde bära numret från en avbokad FedEx-sändning och listan visade det som den nya sändningens; kunden fick ett nummer till något som inte finns.
Upphämtningstiden som skickades till Sendify sparas nu på rundan. Fältet lästes från fel ställe och blev alltid tomt, så spärren «tiden du bad om har passerat» kunde aldrig slå till — beskedet kom i stället som ett nej från fraktbolaget.
Genomgång av fraktbokningen — alla tre bolagen2.14.0
2026-09-04
Ingen sändning kan bokas två gånger längre. Spärren prövade om det fanns ett spårningsnummer, men ett bolag kan boka utan att lämna ett nummer i samma andetag — då såg rundan obokad ut och nästa tryck skapade en andra sändning som ingen kunde avboka. Nu gäller «finns en bokning hos ett fraktbolag». Samma sak när något går fel efter bokningen: anspråket släpps inte längre på en runda där en sändning faktiskt skapats.
FedEx-bokningen görs aldrig om av sig själv. Appen gjorde om anrop som såg tillfälliga ut, och ett 5xx betyder inte att ingen sändning skapades — bara att vi inte fick veta. Nu kastas felet med en uppmaning att kontrollera hos FedEx innan man bokar om. Prisfrågor och adresskontroller görs om som förut; de skapar ingenting.
Etiketterna räknas som etiketter. Kvittot visade antalet kollin, så en sändning där en etikett uteblev såg lika hel ut som en där allt kom med — och en kartong stod kvar utan etikett. Nu står «2 st av 3 kollin» med skälet bolaget gav. FedEx-etiketter som kommer som PDF i stället för ZPL görs dessutom om innan de läggs i kön; förut fick Zebran binärt skräp och matade ut ingenting.
Priset på fraktraden kommer från servern. Det kom från telefonen: raden man tryckt på skickade med sitt belopp, och servern skrev in det. En rad som legat kvar på skärmen medan ett kolli lades till fakturerades med sitt gamla pris. Nu sparas prislistan på rundan när priserna hämtas, och bokningen använder den siffran — skiljer den sig från skärmen sägs det.
Bokas något utan pris — FedEx prislista svarade inte och man valde ur reservlistan — sägs det nu i klartext. Förut skrevs ingen fraktrad och ingenting nämndes, så frakten fakturerades aldrig.
Ett nekat kolli hos PostNord är inte längre en återvändsgränd. Där bokas en försändelse per kolli, och blev den tredje nekad räknades rundan som bokad: «Boka» svarade «redan bokad» och PostNord har ingen avbokning. Nu bokas bara kollina som saknar etikett när man trycker igen.
Telefonnummer, postnummer och vikter städas med samma regler för alla tre bolagen. En växel och en mobil i samma Fortnox-fält blev ett nittontecknat nummer som inte finns; «SE-501 23» skickades med landskoden kvar; ett kolli på 40 gram avrundades till noll kilo. Alla tre nekades av bolagen — efter att kartongen packats.
Adressrad två följer med på FedEx-etiketten. «c/o Vaktmästeriet, port B» stod på fakturan i plastfickan men inte på etiketten, och chauffören hittade inte in.
En retur från ett land utanför EU behandlas som en tullsändning. Testet läste bara mottagarlandet, och på en retur är mottagaren vi själva — en kartong från Oslo räknades som inrikes, HS-koderna kontrollerades inte och handelsfakturan FedEx skickade tillbaka slängdes.
Ursprungsland som inte går att tyda stoppar bokningen med besked. «Vietnam» gick in i tulldeklarationen som VIETNAM och FedEx nekade hela sändningen. Trettio länder till känns nu igen.
Sendify: ombudsrader går inte längre att välja — de kräver ett valt ombud som appen inte kan välja, och nejet såg ut som ett utgånget pris, vilket ledde tillbaka till samma rad. Sändningslistan frågar dessutom med rätt sidstorlek och rätt källa; förut svarade den med bara det appen själv skapat, alltså inte det man letade efter. Och på en retur används kundens adress rakt av — förut fyllde vår adress i kundens tomma fält.
Två nya provverktyg: bokningsprov kör spärrarna och priset mot en riktig databas, faltprov håller telefon-, postnummer- och viktreglerna hos alla tre bolagen. Fjorton provverktyg körs nu före varje leverans.
Fortnox nekade fraktraden på ett tecken2.13.9
2026-09-04
Frakten kom inte in på ordern: Fortnox svarade 400 «Värdet innehåller ej tillåtna tecken». Texten på raden var tjänstenamnet plus en punktavdelare, och punkten «·» är ett sådant tecken som ser vanligt ut på skärmen men inte går igenom hos dem. De säger inte vilket tecken de menar, och publicerar ingen lista.
Nu städas texten innan den skickas — punkter, tankstreck, citattecken och osynliga styrtecken blir sina enkla motsvarigheter. Svenska bokstäver rörs inte; Fortnox är ett svenskt system och åäö står i varje kundregister.
Nekar de ändå skrivs raden om en gång till med bara bokstäver, siffror och de skiljetecken som säkert går igenom, och skickas på nytt. Hellre en fraktrad med torftig text än ingen fraktrad alls — en order som faktureras utan frakt märks först när pengarna saknas. Står det om texten säger kvittot det, med Fortnox eget svar.
Bara teckenfelet går den vägen. Andra nej från Fortnox kastas som förut, med fälten raden bar.
PostNord går att boka med flera kollin igen2.13.8
2026-09-04
Flera kartonger bokas nu som flera försändelser, en per kolli, med samma orderreferens på alla. Varje kartong får eget kollinummer och egen etikett — vilket ändå är det man vill ha när kunden ringer om en av dem.
Home Small är en brevtjänst, och hos PostNord är ett brev en försändelse med ett kolli. Det är därför de svarade «shipment has multiple item». «Sändning» i deras prislista betyder något annat än man tror: enligt Särskilda villkor PostNord Home Small är en sändning en inlämning av fler än 100 paket vid samma tillfälle — en prisnivå, inte en bokning med flera kollin. Därför står det fyra namn på avtalet men finns bara två tjänstekoder.
Priset på raden är styckpriset gånger antalet försändelser, med uträkningen under: «3 × 69 kr». Fraktraden på ordern i Fortnox följer samma summa och säger «· 3 försändelser». Förut hade två av tre kartonger aldrig blivit fakturerade.
Nekas en av dem försvinner inte de andra. De som bokades är bokade och kostar pengar, etiketterna ligger i kön, och kvittot säger vilket kolli som blev utan och varför.
Varubrev tar ett kolli — appen säger det innan ni packar2.13.7
2026-09-04
PostNord svarade «shipment has multiple item» på en bokning med två kollin. Varubrev (PostNord Home Small) är en brevprodukt och tar ett kolli per sändning — det står inte i deras schema utan i produktreglerna, så bokningen gick iväg och föll först hos PostNord.
Nu är «ett kolli» en egenskap på tjänsten. Raden i fraktvalet står kvar men går inte att välja när sändningen har fler kollin, och säger varför: boka en sändning per kolli, eller välj en tjänst som tar flera. Raden döljs inte — annars blir frågan «varför står det ingen PostNord här?» obesvarad.
Bokningen vägrar dessutom innan något skickas till PostNord, med samma förklaring. Nästa tjänst som tar flera kollin behöver bara låta bli flaggan.
FedEx-bokningen föll på ett namn som inte fanns2.13.6
2026-09-03
Bokning med ert eget FedEx-avtal svarade «etdBilder is not defined». Felet låg i grenen som bara körs när appen bett om elektronisk handelsfaktura och FedEx svarat utan kvittens — där byggs en diagnos att visa dem, och den raden läste ett namn som hör hemma i en annan funktion. Bokningen föll alltså i stället för att säga att kvittensen uteblev.
ESLint-regeln som fångar sådana namn är påslagen, och provverktyget kör den. En fri variabel är giltig JavaScript ända till den körs — den syns varken i ett bygge eller vid en genomläsning.
Ett prov till som faktiskt kör den grenen: FedEx svarar utan ETD-kvittens, bokningen ska gå igenom, etiketten komma tillbaka och diagnosen finnas att visa.
Fliken öppnas direkt2.13.5
2026-09-02
Webbshopsfliken frågade fraktbolagen medan sidan laddades — upp till tolv anrop innan listan ritades. Det löste att nya sändningar saknade läge, men betalades av varenda öppning, av alla, hela dagen. Flera sekunder för ett svar som redan stod i databasen.
Listan ritas nu direkt ur det lagrade, och påfyllningen sker efteråt när sidan redan syns. Ändras något hämtas listan om av sig själv; ändras inget märks ingenting. Samma sak på fliken med appens egna sändningar.
Sändningarna skrevs in en i taget — hundratjugo rundturer till databasen per öppning. Nu i en enda sats.
«Uppdatera alla» är oförändrad: den frågar allt, direkt, och struntar i takten.
Webbshopslistan tog slut för tidigt2.13.4
2026-09-02
Listan slutade den tjugonde augusti. Det hade ingenting med augusti att göra — den hämtade en sida på femtio ordrar ur Shopify och visade fyrtio av dem, vilket med er takt räcker tolv dagar. Ett tak som ser ut som ett slut.
Nu hämtas sida efter sida tills fönstret är fyllt. Standard är de senaste 30 dagarna, och under listan står hur långt bak den går med en knapp för tre månader, ett år eller hela butiken.
Sökrutan har ingen datumgräns — den som letar efter en order från i våras skriver ordernumret och hittar den oavsett vilket fönster som är valt.
Ordrar som står som skickade men saknar spårningsnummer räknas inte längre mot taket. Förut kunde en sida på femtio ge tjugofem rader och listan såg kortare ut än den var.
Spårningen frågas varannan timme första veckan2.13.3
2026-09-02
Första veckan frågades varje sändning var sjätte timme. Det räckte för att listan skulle vara ungefär rätt men inte för att den skulle kännas levande — ett paket som lämnades ut på morgonen stod som «på väg» till lunch, och då öppnar man fraktbolagets sida i stället. Nu varannan timme.
Efter en vecka två gånger om dygnet, efter tre veckor var tredje dag, och efter sextio dagar slutar appen fråga. Levererade sändningar frågas aldrig om igen.
Texten «annars frågar appen själv» är borttagen.
«Uppdatera alla» frågar på riktigt2.13.2
2026-09-02
Knappen sa «allt var redan färskt» när det inte var det. Den lydde takten som styr den automatiska avläsningen — en sändning som frågats för en timme sedan hoppades över — medan «Fråga nu» inne på en order gick förbi takten och därför ändrade läget direkt. Två knappar som gjorde olika saker och hette nästan samma sak.
Takten finns för att skydda fraktbolagens kvot från svepet, inte för att överpröva någon som just tryckt på en knapp. Nu frågar knappen allt.
Levererade sändningar och nummer äldre än sextio dagar hoppas fortfarande över — de ändrar sig inte, och fraktbolagen slutar svara på gamla nummer.
Blir svaret ändå noll står det varför: att spårningen hos ett bolag är pausad, eller att det som är kvar är levererat. «Allt var redan färskt» var svaret som fick knappen att se trasig ut.
«We have your package» är inte ett okänt läge2.13.1
2026-09-02
FedEx publicerar ingen fullständig lista över sina scankoder, så allt utom fyra visades som «Okänt läge» — även när FedEx skrev rakt ut att de hade paketet. Nu läses tidsstämplarna i stället: de bär en typ vars betydelse FedEx faktiskt dokumenterat, så «det finns en upphämtning och ingen leverans» räcker för att veta att paketet är på väg. Fraktbolagets egen kod visas fortfarande, så kartan går att fylla på.
Läget som en gång räknats ut läses nu ur databasen i stället för att räknas om ur bara koden. Förut kunde en sändning som stod som «På väg» bli «Okänt läge» när listan öppnades igen.
Webbordrar uppdaterades inte. En sändning utan datum på Shipmondos fraktsedel frågades aldrig — utan datum kan appen inte välja takt, och raden blev tyst. Nu används dagen vi först såg den i stället.
Fraktbolag som Shipmondo bokar med men vi inte kan fråga — DHL, Bring — räknas upp överst i webbshopslistan i stället för att bara sakna läge. Och en pausad spårning syns nu också där.
«Uppdatera alla» finns även på webbshopsfliken.
Sendify går att spåra, och en knapp som uppdaterar allt2.13.0
2026-09-02
Sendify-sändningar stod som «Okänt läge» fastän fraktbolaget hade paketet. Sendify har en riktig spårningsrutt — jag hade läst appens genererade regeltabell i stället för deras spec, och regeltabellen innehåller bara de sex rutter appen validerar mot. Nu frågas rätt rutt, och hela deras statuslista är kartlagd.
Med den kommer också fraktbolagets eget spårningsnummer, var paketet senast scannades, och en spårningsadress hos Sendify — den som saknats för DSV, DHL och de andra som bokas via dem.
Ny knapp «Uppdatera alla» överst i listan. Frågar alla fraktbolag på en gång och säger hur många som ändrades.
Listan fyller på sig själv när den öppnas — inte bara sändningar som aldrig frågats, utan alla vars uppgift hunnit bli gammal. Förut rördes en sändning aldrig mer efter första frågan, utan fick vänta på nästa avläsning.
Två av Sendifys statusar tolkas med flit inte: UNKNOWN och NOT_FOUND är deras sätt att säga att de inte vet, och att göra ett läge av dem vore att hitta på ett besked de avstått från att ge.
Rättade förklaringar når fram2.12.2
2026-09-02
FedEx-varningen visade fortfarande den gamla, felaktiga förklaringen. Hela meningen sparades i databasen när spärren sattes, och eftersom spärren gjorde att fraktbolaget aldrig frågades igen skrevs den aldrig om. En rättelse i koden nådde alltså aldrig skärmen.
Nu lagras bara det som är sant oavsett vad vi tror: när det hände och vad fraktbolaget själva sa. Vår förklaring byggs varje gång rutan visas.
Gamla rader läses om: FedEx egna ord plockas ut, medan min gamla mening inte längre står som om de hade sagt den.
Spärren står ett dygn och provas sedan om av sig själv. Rättas behörigheten hos fraktbolaget börjar spårningen fungera utan att någon behöver trycka på något — förut stod rutan kvar tills man hittade knappen.
Sändningarna syns som sändningar2.12.1
2026-09-02
Korten under Bokat låg i en vit platta, så mellanrummet mellan dem var vitt på vitt — fyra sändningar såg ut som ett block med hårfina streck i. Nu syns sidans bakgrund mellan dem, och varje kort har sin egen skugga.
Tre år, handelsfakturor i ett, och flaggor i listan2.12.0
2026-09-02
Allt sparas i tre år. Mätningen avgjorde det: hela databasen vägde tjugo megabyte och femton av dem var artikelbilder. En plockrunda är några hundra tecken — tre år av dem är mindre än en enda produktbild.
Handelsfakturornas innehåll finns kvar i ett år i stället för en månad. De är de enda papper som väger något, men elva av dem tog en och en halv megabyte — billigare än att sakna en faktura när tullen frågar om en sändning från i våras.
Landet visas som flagga i båda listorna under Bokat. Förut skrev appens lista ut namnet som Fortnox stavat det och webbshoppens en tvåbokstavskod — samma kolumn på två språk. (Windows ritar inga flaggemojier och visar de två bokstäverna i stället; på telefonen syns flaggan.)
FedEx spårning läser nu två saker till ur deras svar: en fördröjning i tullen och ett paket som ligger och väntar på uthämtning. Båda kan stå bredvid en status som säger «på väg» — den är sann men inte det man behöver veta. Värdemängderna står i FedEx egen specifikation, till skillnad från scankoderna.
Säger FedEx att ett spårningsnummer inte finns visas deras egen mening i stället för «FedEx svarade utan någon status», som lät som ett fel i appen.
Spårningen hos FedEx behöver en egen nyckel2.11.1
2026-09-01
Jag hade fel om varför FedEx nekade spårningen. Track är inte ett API man kryssar i på ett projekt — det är en egen projekttyp. Hos FedEx väljer man «Ship, Rate & Other APIs» ELLER «Track API» när ett projekt skapas, aldrig båda. Därför fanns Track inte som en kryssruta, och därför får bokningsnyckeln inte spåra.
Appen tar nu spårningsnyckeln ur FEDEX_TRACK_CLIENT_ID och FEDEX_TRACK_CLIENT_SECRET, med egen inloggning. Sätts de inte används bokningens som förut.
Diagnosen provar båda nycklarna bredvid varandra och säger vad som fattas — att bokningsnyckeln nekas är väntat och inte ett fel.
Åtta prov till: att egna nycklar går före bokningens, att det syns när de saknas, och att spårningen kör mot samma miljö som bokningen.
Listan är ifylld när man öppnar den, och allt sparas ett år2.11.0
2026-09-01
Spårningen fylls i när listan öppnas. Förut hade en nyss bokad sändning inget läge förrän nästa avläsning, och en lista där hälften av raderna var tomma fick en att trycka «Fråga nu» på varje rad — precis det knappen skulle slippa. Nu frågas det som aldrig frågats direkt, med en tidsgräns så att sidan öppnas i stället för att ladda. Gäller webbshoppens lista också.
Avläsningen frågar om 25 sändningar per varv i stället för 10.
Levererade sändningar frågas inte om igen — det gjorde de inte förut heller. Takten glesnar dessutom med åldern: fyra gånger om dygnet första veckan, en gång om dygnet till tre veckor, sedan var tredje dag, och efter sextio dagar slutar appen fråga.
Allt sparas i tolv månader i stället för sex: plockrundor, sändningar, etiketter och papper. «Vår referens»-listan går ett år tillbaka i stället för fyra månader, och listorna Packat och Bokat har fått tak som ligger över vad ett år ger — förut var det listans tak och inte gallringen som avgjorde hur långt bak man såg.
Ny sida under Inställningar → Databasen: vad appen faktiskt tar för plats, tabell för tabell, med utskriftskön uppdelad på etiketter och handelsfakturor. Perioden går att ändra där, och «Städa nu» visar följden med en gång.
Handelsfakturornas innehåll töms fortfarande efter en månad — en PDF väger hundratals kilobyte och skrivs aldrig ut igen när kartongen är framme. Raden står kvar, så listan är komplett.
FedEx nekar spårningen — en gång, inte hundra2.10.2
2026-09-01
Spårningen hos FedEx går inte. Track är inte ett API som går att kryssa i på ert projekt, så det måste begäras av FedEx — bokning, priser och etiketter berörs inte, det är bara statusen som uteblir.
Nekar ett fraktbolag hela tjänsten stängs frågan av och skälet står en gång, överst i listan. Förut kom samma röda fel på varenda sändning, och svepet fortsatte ringa dem för att få samma nej.
«Fråga FedEx varför» frågar dem i stället för att gissa: den provar spårningen i både produktion och test, visar vad nyckeln har för behörighet enligt FedEx eget svar, och säger vad raderna tillsammans betyder. Svarar Track igen slås spårningen på av sig själv.
Föregående versions felmeddelande sa att Track «troligen» inte var tillagt i projektet, och pekade på en kryssruta som inte finns. Det var en gissning, och den skickade någon att leta på fel ställe.
Avstängda bolag räknas bort innan svepets tak, inte efter — annars fyllde de platserna med nej och de sändningar som gick att fråga om blev aldrig frågade.
Webbshoppens paket spåras på riktigt2.10.1
2026-09-01
Webbshoppens sändningar stod som «Skickad» allihop. Det var Shopifys ord: de vet att Shipmondo skrivit en fraktsedel, inte var paketet är. Nu frågas fraktbolaget om dem också, precis som om våra egna — samma lägen, samma takt, och samma rad överst som säger hur många som behöver en blick.
Bara numret, bolaget och läget sparas. Kundens namn och adress hämtas ur Shopify när listan visas och lagras aldrig här.
Webbshopsraderna fälls ut när man trycker på dem. Spårningsnumret, kunduppgifterna, «kopiera» och «Skapa returetikett» ligger inne i utfällningen — en rad man sveper förbi ska inte ha en knapp som bokar en frakt.
«Fråga nu» fungerade inte på sändningar via Sendify. De avvisar en sidstorlek under tio, och en fråga om en enda sändning bad om fem. Golvet ligger nu i anropet, så ingen kan råka be om färre.
FedEx svarade «we could not authorize your credentials» på spårningen trots att bokningen fungerar. Nycklarna är rätt — Track är ett eget API i FedEx-projektet och måste läggas till där. Felet säger det nu i stället för att skicka någon på jakt efter en nyckel som redan stämmer.
«Boka frakt manuellt» ligger som fjärde knapp bredvid Skanna, Leta och Boka upphämtning, i stället för inuti fliken Bokat. De fyra står två och två i ett rutnät — som en rad hamnade de under varandra i telefonen och tog halva förstaskärmen.
Raden «skrivarkön är tom» är borta. En rad som mest säger att ingenting hänt lär man sig att inte läsa — och då läser man den inte den gången det står en siffra där.
Returetiketter, webbshoppens sändningar och en notis om nya artiklar2.10.0
2026-09-01
Returetikett. På en bokad frakt och på en webborder finns nu «Skapa returetikett» — kunden får en etikett att skriva ut och sätta på kartongen. Den bokas genom det vanliga fraktsteget med samma alternativ och priser som allt annat; det enda som skiljer är att avsändare och mottagare är ombytta.
Handelsfakturan vänds med. På en retur är kunden Shipper och vi Consignee, skälet står som «Return of goods», och våra moms- och EORI-nummer följer med till mottagarraden. Att låta vårt EORI stå kvar som avsändare hade varit att intyga för tullen att vi exporterat en vara ur Norge.
Kommer returen från en webborder hämtas kundens adress ur Shopify när man trycker — den sparas inte i appen. Det är kunduppgifter, och de ska inte ligga hos oss för att de kanske behövs.
Under Bokat finns två listor: «Bokade här» och «Webbshoppen». Den andra visar vad Shipmondo skickat, med spårningsnummer, fraktbolag och länk hämtade direkt ur Shopify. Frågan «var är paketet till Oslo?» är densamma oavsett var ordern kom ifrån.
Webbshoppens sändningar går att läsa och spåra, inte avboka eller boka om — de är Shipmondos. En knapp som såg ut att kunna hade ljugit.
Notis när en ny artikel saknar HS-kod, ursprung eller vikt. Frågan ställdes redan vid fraktbokningen, men då står kartongen packad och varan undanlagd. Bara artiklar appen aldrig sett förut, och bara en gång per artikel — gamla luckor står kvar under Artikeluppgifter. Går att stänga av under Larm → Inställningar.
PostNords spårning gick mot fel adress. Rätt väg är deras Track & Trace v7, och hela deras statuslista är nu inläst ur specifikationen — inklusive flaggan som säger att tullen håller kartongen. Den går före statusen: «på väg» är sant men oanvändbart när det som saknas är ett papper.
Var är paketet2.9.0
2026-09-01
Under Bokat står nu vad fraktbolaget säger om varje sändning — levererad, på väg, hos tullen, hos ombud, på väg tillbaka. Appen frågar själv, med tätare takt de första dagarna och glesare sedan.
Överst ligger en rad som säger hur många sändningar som behöver en blick, och ett tryck filtrerar fram just dem. De nittiofem procent som rullar på behöver ingen titta på — det är undantagen som är hela poängen.
Fraktbolagets egna ord står störst, vårt läge under. Känner appen inte igen deras kod står det «Okänt läge» och koden visas — aldrig «på väg». En sändning som fastnat får inte se ut som en som rullar; då vore funktionen värre än ingen alls.
En knapp «Fråga nu» på varje sändning, för den som just fått ett samtal från en kund och inte tänker vänta på nästa avläsning.
Ett fraktbolag som inte svarar raderar aldrig ett läge vi redan hade. Felet står bredvid, och man ser hur färsk uppgiften är.
«Skicka igen» på en bokad frakt öppnar en ny manuell frakt förifylld med samma mottagare, samma rader, samma kartong och samma mått. Ingenting bokas av sig självt — «samma igen» är nästan aldrig exakt samma, och det man ska slippa är avskrivandet, inte beslutet.
Fritextraden väger något2.8.2
2026-09-01
En fritextrad på en manuell frakt gick iväg som 0,01 kg på handelsfakturan. En artikel har sin vikt i registret — en fritextrad har inget register, och det stod tio gram oavsett vad det var. Fakturan såg komplett ut, och tullen jämför summan mot vad kartongen väger. Den som skriver under den är ni.
Fritextraden har fått ett viktfält, per styck i kilo, bredvid antal och värde.
Lämnar sändningen EU går den inte att skapa med en fritextrad utan vikt. Inom unionen finns ingen handelsfaktura att skriva vikten på, och då frågas det inte.
Rader som ändå hamnade på fakturan med minimivikten nämns efter bokningen, med namn — samma sätt som rader utan pris och utan ursprungsland. Det gäller också artiklar vars nettovikt saknas i registret.
Manuell frakt: kartonger, spärr och en adress som fastnar2.8.1
2026-09-01
Knappen under Plock → Bokat heter «Boka frakt manuellt».
Rättad adress fastnade inte på en manuell frakt. Rättelsen skrevs till ordern i Fortnox — men en manuell frakt har ingen order, så skrivningen träffade ingenting och svarade ändå ok. Telefonnumret man just skrivit in var borta på nästa sida. Nu skrivs den där den hör hemma, och en skrivning som inte träffade något säger det.
«Ändra adressen» öppnar sig som en ruta över sidan i stället för längst ned i flödet. Man tryckte och ingenting tycktes hända, för rutan öppnades utanför bild.
Kollina på den manuella frakten har fått förpackningsvalet — samma kartonger som i plockrundan. Måtten fylls i av sig själva.
Samma spärr som i plockrundan: ANGE VIKT! och ANGE MÅTT! kommer även här, med samma två vägar — sparad kartong eller måttband. Rutan ligger nu i en enda fil, så att de två ställena inte kan glida isär.
«Vad är det» — skälet till export — visas bara när sändningen lämnar EU. Frågan ställdes förut för allt utom Sverige, alltså också för en låda till Hamburg. Samma lista över EU-länder svarar nu på både servern och i telefonen.
Sökrutorna på sidan låg indragna, som om de haft en förstoringsglasikon. Texten står nu i kant med de andra fälten, och de grå raderna under fälten klistrar sig inte längre mot rutorna ovanför.
Söker man en mottagare på kundnummer och hen aldrig fått en frakt hämtas kundkortet ur Fortnox. Namnsökningen går fortfarande mot de ordrar appen redan har — den fungerar när Fortnox inte gör det.
Frakt utan order bakom sig2.8.0
2026-09-01
Under Plock → Bokat ligger nu «Skapa frakt utan order». Reklamation, varuprov, retur till leverantör, en beställning som aldrig blir en Fortnox-order — kartongen ska ändå vägas, etiketteras och tullas.
Mottagaren går att söka fram bland dem ni redan skickat till, så fylls adressen i. En manuell frakt går nästan alltid till någon ni skickat till förut, och då är adressen ni faktiskt skickade till bättre än den på kundkortet. Allt går att skriva över, och en helt ny mottagare skriver man in för hand.
Innehållet kan blandas: artiklar ur registret, som bär med sig HS-kod, ursprung och vikt av sig själva, och fritextrader för sådant som inte finns som artikel — en reservdel, ett prov. Fritextraden bär sin egen HS-kod och sitt ursprung, för det finns inget register att hämta dem ur.
Sedan är allt som vanligt. Sändningen blir en plockrunda utan order, och därifrån gäller samma fraktalternativ, samma etiketter, samma handelsfaktura, samma upphämtning. Ett andra fraktflöde vid sidan av det första hade betytt två som gör nästan samma sak, och då underhålls bara det ena.
Ingen fraktrad skrivs i Fortnox. Det finns ingen order att skriva den på, och kostnaden står på fraktbolagets faktura. Det sägs på sidan i stället för att upptäckas av någon som letar efter raden.
Skälet till export följer med till tullen — ett varuprov och en ersättningsleverans är inte samma sak i deras ögon.
Etiketten centrerad, och benämningen större2.7.4
2026-09-01
Layouten var utlagd för två rader benämning. De flesta artiklar har en, och då blev det en tom remsa nedtill — etiketten såg ut som om något fallit bort. Nu räknas blockets höjd ut ur antalet rader och det som blir över delas lika över och under.
Benämningen är större, 8 punkter mot 7. Det är den rad man läser på avstånd i en hylla; artikelnumret hittar man ändå med skannern. Något fler benämningar bryts nu till två rader, vilket är fritt fram sedan de två raderna sitter mitt på etiketten.
Måtten i koden är avstånd i stället för lägen. Att flytta en rad betydde förut att fyra siffror skulle räknas om, och en av dem glöms.
Provet mäter centreringen i stället för att lita på den: alla ritade element plockas ur PDF:en och luften över den översta jämförs med luften under den nedersta. Fem fall, alla inom en tiondels millimeter.
Markera alla2.7.3
2026-09-01
Knappen markerar allt som står i listan just nu — efter sökning, kategori och filter. Det är också poängen: man filtrerar fram en kategori och vill ha etiketter på den, inte på hela registret. Antalet står i knappen, «Markera alla 287», för en knapp utan siffra är en knapp man trycker på för att se vad som händer.
Är allt redan markerat blir den «Avmarkera alla». Är bara en del markerad står Rensa bredvid — men inte annars; två knappar med samma verkan är en knapp för mycket.
Taket höjt från 500 till 1000 etiketter per utskrift. Det fanns för att en felskrivning inte skulle mata ut femtio meter rulle, inte för att stoppa någon som menar det — och sedan Markera alla finns är hela registret en fullt rimlig önskan. Mätt: rasteringen tar 26 ms per etikett, alltså under en halv minut för tusen.
Hundra etiketter tar en minut i stället för sju2.7.2
2026-09-01
Pausen mellan etiketterna var inte skrivaren — det var kön. Skrivaragenten hämtar ett jobb var fjärde sekund, och jag la ett jobb per artikel. Hundra artiklar blev alltså hundra gånger fyra sekunder: nästan sju minuters väntan för något Zebran klarar på under en minut. Tiden gick inte åt till att skriva ut, den gick åt till att fråga.
Nu går hela utskriften som ett enda jobb. Zebran läser etiketterna efter varandra och matar utan paus emellan. Över fyrtio artiklar delas det i flera jobb — ett svar på ett par megabyte som aldrig kommer fram är sämre än fyra sekunders väntan mellan två delar — och då står det i titeln vilken del som är vilken.
Tredje siffran i ^PQ stod som 1, vilket betyder «en dubblett av varje». Vi serienumrerar inte, så den lär inte ha gjort någon skillnad, men en siffra som betyder «skriv ut allt en gång till» har inget i en etikettutskrift att göra. Nu 0.
Etikettrutan inne på en artikel är hopfälld. Den som öppnar en artikel gör det nästan alltid för att räkna, och då ska saldot ligga överst och inte trängas undan av något man gör en gång i månaden. Ett tryck fäller ut den.
Appen startade inte — fyra rader på fel höjd i filen2.7.1
2026-09-01
«Application error: a client-side exception has occurred» på hela appen, och det var mitt fel i går. De fyra useState-raderna för etiketterna hamnade nedanför komponentens tidiga returer. React räknar hookar per rendering: utloggad returnerade startsidan tidigt och kallade tolv, inloggad kallade sexton — och då kastar React och Next byter ut sidan mot sin felruta.
Raderna är flyttade upp bland den övriga staten. Ingenting annat ändrat; funktionen fungerar som den var tänkt.
Felet syns inte i ett bygge — koden är fullt giltig JavaScript — och inte vid en genomläsning heller: raderna såg ut precis som de andra useState-raderna, bara på fel höjd i filen. Alltså finns nu verktyg/hookprov.mjs, som kör react-hooks/rules-of-hooks som fel över app och lib. Jag återinförde buggen och kontrollerade att provet faller på den innan jag tog bort den igen.
Bara den regeln, inga stilregler. Ett prov som klagar på trettio saker läses inte, och då fångar det inte den trettioförsta som är den som stänger appen.
Artikeletiketter 50 × 30 ur Zebran2.7.0
2026-09-01
De nya rullarna går att skriva ut direkt. Etiketten bär samma sak som A4-arken alltid haft: streckkoden överst, koden som text under, benämningen underst — och står det EAN i koden skrivs artikelnumret ut bredvid, för det är det man säger till varandra i lagret. Lång benämning bryts till två rader; en tredje ryms inte på trettio millimeter.
Inne på en artikel finns nu «Skriv ut · 50×30» med ett antal bredvid. Det är där man oftast vill ha en: man har just tagit fram artikeln och ser att burken saknar etikett. Bredvid ligger «Se etiketten först» som öppnar den som PDF — ett mått som sitter fel syns på skärmen på två sekunder och på en rulle efter tjugo etiketter.
I klump: knappen Etiketter i artikellistan gör om raderna till kryssrutor. Kryssa, ange antal per artikel, skriv ut. Ligger i listan du ändå söker i — den gamla etikettsidan hade egen sökning och egna kategorier, alltså samma arbete en gång till på ett annat ställe. Raden längst upp räknar hela tiden ut hur många det blir, för skillnaden mellan tio etiketter och en rulle ska synas innan man trycker.
Etiketten ritas som en sida i millimeter och görs om till ZPL på samma väg som fraktetiketterna. Det betyder att samma etikett går att titta på innan den skrivs ut, och att måtten är millimeter hela vägen. Skrivaren får ^PW och ^LL så att den vet etikettens storlek i stället för att klippa bilden efter sin egen inställning.
Antalet läggs på skrivarens egen upprepning i stället för att samma etikett läggs i kön femtio gånger. Kön får en rad, och den som ångrar sig river bort en rad i stället för femtio. Tak på 500 per knapptryck — en felskrivning i antalsrutan ska inte mata ut en hel rulle.
Under Inställningar → Skrivare finns sorten «Artikeletikett 50×30 (Zebra)» att peka ut en dator för, skild från streckkodsarken på A4. Samma uppgifter, två helt olika skrivare.
Ingen knapp för en faktura som redan gått till tullen2.6.6
2026-08-31
ETD fungerar nu — «mottagen» med FedEx mapp-id på raden. Men under den stod fortfarande rutan «Papper att skriva ut» med en knapp som hette Handelsfaktura. Två besked om samma papper, i motsatt riktning, tio pixlar ifrån varandra — och den som packar följer knappen, för en knapp ser ut som något man ska trycka på.
Knappen är borta när fakturan gått elektroniskt. Gäller både vårt eget FedEx och Sendify: gick den digitalt nämns den inte, gick den inte det kommer rutan över skärmen och tre exemplar ur A4-skrivaren. Ett enda besked per papper.
Fakturan sparas fortfarande. Den ligger under Papper i fraktlistan tillsammans med plocklistan och etiketten, den dagen tullen ringer och frågar.
Rutan heter numera «Papper att hämta». Den listar sådant fraktbolaget skickat med som ligger och väntar — den skriver inte ut något av sig självt, och rubriken påstod motsatsen.
Rutan om plastfickan ritades aldrig, och ETD-kvittot söks nu upp2.6.5
2026-08-31
De tre kopiorna kom ut men rutan gjorde det inte, och det var mitt fel. Rutan låg inuti «ännu inte bokad»-vyn. I samma ögonblick bokningen lyckades byttes den vyn ut mot «Frakten är bokad», och då fanns rutan inte längre på skärmen att rita. Servern gjorde allt rätt — beskedet låg i svaret, papperen i kön. Ingen fick se det. Nu ligger rutan utanför båda vyerna.
Påminnelsen står dessutom kvar. En ruta som visas en gång, i sekunden efter bokningen, är borta så fort man går ur ordern — och kvar blir en rad som säger «måste skrivas ut», vilket är ett konstaterande och inte en påminnelse. Nu står den som en varning på den bokade frakten med en knapp som tar tillbaka rutan.
Gick fakturan elektroniskt? Uppslaget efter FedEx kvitto stod på ett enda ställe, skrivet som två — s.completedEtdDetail och samma sak en gång till via en omväg som pekar på samma s. Ligger kvittot ett steg ned i deras svar såg det ut som att ETD inte hänt. Nu söks hela svaret igenom efter fältnamnet, med ett djuptak så att en konstig struktur inte kan få appen att gräva för evigt.
Och när vi bad om ETD utan att få kvitto står det nu varför, i stället för bara att. Rutan «Varför gick fakturan inte elektroniskt?» säger hur många bilder som är uppladdade — brevhuvud och namnteckning krävs, och utan dem faller ETD — och listar vilka fält FedEx faktiskt svarade med. Det är det man visar dem när man ringer och frågar. Bara fältnamn, inga värden.
Handelsfakturan: VAT, rätt nummer, och era kontaktuppgifter2.6.4
2026-08-31
Handelsfakturan skrev «MOMS SE556…» om avsändarens momsnummer. Pappret läses av en tulltjänsteman i Oslo eller Chicago, och MOMS säger honom ingenting — numret stod där utan att gå att placera. Nu står VAT, precis som mottagarens nummer alltid gjort. Två fält på samma papper kallade samma sak vid olika namn.
Din fråga om hur appen vet att fakturan gick digitalt hittade ett hål. Hos Sendify är det ett kvitto: uppladdningen räknas först när de svarat ja. Hos FedEx var det ett antagande — flaggan sattes så fort appen bett om ETD och blev falsk bara om FedEx nekade bokningen med ett fel som pekade på ETD. En bokning som gick igenom tyst utan att fakturan tagits emot lämnade flaggan sann, och då kom ingen ruta och inget papper.
Nu krävs FedEx eget kvitto — completedEtdDetail, mapp-id och en rad per dokument. Saknas det har ETD inte hänt, hur tyst bokningen än gick, och de tre exemplaren går till skrivaren. Uppgiften har alltid räknats fram och kallats «bevis, inte antagande»; det var bara ingen som lät den avgöra något.
Raden «Handelsfaktura: elektroniskt till tullen» går på samma kvitto. Förut kunde den stå grön samtidigt som rutan bad om papper — två rader intill varandra som sa olika saker, vilket gör att man slutar tro på båda.
Inställningen för vilken skrivare handelsfakturan går till fanns, men hela rutan var dold så länge ni bara har en skrivardator. Nu visas den från och med en: det är också här man läser vart ett papper går, och den frågan ställer man lika gärna med en skrivare som med tre. Sorten heter numera «Handelsfaktura och fraktdokument» i stället för «Tullfaktura».
Handelsfakturan skrev ut varenda nummer ni har inlagt — svenskt momsnummer, brittiskt, EORI, VOEC — på varje sändning. Fraktbolagen har alltid fått ett urval; pappret fick högen. Nu går båda genom samma regel: momsnumret och EORI alltid, det landsspecifika slår ut det allmänna av samma sort, och VOEC bara till norska privatpersoner. En norsk företagskund fick förut ett VOEC-nummer på sin faktura, och det kan i värsta fall ge moms två gånger.
Avsändarens e-post och telefon stod tomma på handelsfakturan. Adressen kommer ur miljövariablerna, men kontaktuppgifterna har sedan länge gått att skriva in i appen — och varje anrop till fraktbolagen väger appens ruta mot miljövariabeln mot Fortnox. Pappret gjorde inte det, så stod numret bara i appens ruta blev fälten tomma. En tulltjänsteman som undrar över en vara hade ingen att ringa. Fyll i dem under Inställningar → Frakt om de saknas.
Handelsfakturan: tyst när den går digitalt, ett rop när den inte gör det2.6.3
2026-08-31
Du hade rätt igen. Gick fakturan upp till Sendify är den inlämnad, och då ska ingen ruta be om en utskrift av den. Den bad ändå, varje gång. Nu står bara raden «uppladdad till Sendify — skickad elektroniskt, inget papper behövs».
Gick den INTE digitalt är det tvärtom: tre exemplar går rakt till A4-skrivaren av sig själva, och en ruta lägger sig över skärmen — KOM IHÅG 3 KOPIOR AV HANDELSFAKTURAN I EN PLASTFICKA! Ett till avgångstullen, ett till mottagarlandets, ett till kunden, vilket är vad fickan är gjord för.
Rutan gäller nu båda fraktvägarna och ställer en enda fråga: kom sändningen i väg utan digital handelsfaktura? Förut hängde den bara på FedEx ETD. En Sendify-sändning som inte fick upp sin faktura gick i väg under tystnad.
Bad Sendify inte om någon faktura fast sändningen lämnar EU byggs den ändå, skrivs ut och rutan kommer. Tullen vill ha en oavsett vad prislistan tycker, och en kartong som står i Oslo kostar mer än tre papper.
Regeln ligger i lib/tullpapper.js med tolv kontroller. Tvekan faller åt rätt håll: vet appen inte om fakturan gick digitalt skrivs pappret ut. En sändning som fastnar i tullen upptäcks en vecka senare av någon annan; ett papper för mycket upptäcks direkt.
Handelsfakturan läggs undan för hämtning även när den gick digitalt. Den syns inte som en utskriftsknapp, men finns kvar under Papper i fraktlistan den dagen tullen ringer och frågar.
Bilen är redan beställd när Sendify bokat2.6.2
2026-08-31
Efter en Sendify-bokning stod det «upphämtning bokas hos fraktbolaget, inte härifrån». Det var fel, och du hade rätt: hos Sendify ÄR bokningen beställningen av bilen. Tiden går med i prisfrågan och raden du väljer bär det fönster bolaget lovar — hela deras API har inte en enda rutt för att boka en upphämtning.
Rutan skickade alltså iväg någon för att göra om något som redan var gjort, och i värsta fall beställa en andra bil som kör förgäves. Nu står det i stället «Bilen är redan beställd» med tiden fraktbolaget lovat: «hämtas i morgon 09:00–12:00».
Samma sak i fraktlistan. Där stod «Upphämtning bokas hos DHL, inte härifrån» — nu står fönstret från bokningen.
Upphämtningssidan varnar. Kommer man dit från en order som redan är bokad med Sendify eller PostNord säger den vilket bolag som kör och att en bokning här beställer en FedEx-bil till. Servern har alltid skickat med den uppgiften; sidan läste den aldrig.
Sendify-bokningens svar satte fältet «dokument» två gånger, och den tomma vann. Handelsfakturorna som just laddats upp och lagts i utskriftskön listades därför aldrig under «Papper att skriva ut».
Provet vaktar den halva som kan gå sönder tyst: att upphämtningstiden och portens öppettider verkligen följer med i varje prisfråga. Gör de inte det är fönstret på raden inget löfte, och «bilen är redan beställd» blir en osanning som upptäcks först när en kartong står kvar på kajen.
Notisen gäller ordrar att packa — inte webbordrar2.6.1
2026-08-31
Du hade rätt. Notisen satt på ordern, och då gick den ut för allt som kom in i Fortnox — även ordrar från webbshoppen, som aldrig får någon plocklista. Vår referens är tom på dem, och appen sorterar bort dem med flit.
En notis om något som inte ska packas är en notis man lär sig svepa bort. Och den som lär sig svepa bort notiser sveper bort dem alla, också den som betydde något.
Nu hänger notisen på plocklistan: «Ny order att packa · 40123», och trycker du på den öppnas plockningen direkt. Den går alltså precis när pappret läggs i skrivarkön, och bara för de ordrar som faktiskt ska plockas för hand.
Stämpeln flyttade med, från ordern till rundan. Samma runda kan aldrig avisera två gånger, hur många avläsningar som än går samtidigt — och en runda som aviserats innan notiserna slogs på kan fortfarande avisera efteråt.
Tre nya kontroller mot en riktig databas: att en runda bara delas ut en gång, att avstängningen i inställningarna tystar den utan att bränna stämpeln, och att fem rundor blir en notis i stället för fem.
Ingen frakt utan vikt och mått — och en notis när ordern kommer in2.6.0
2026-08-31
ANGE VIKT! ANGE MÅTT! Saknas något på ett kolli kommer en ruta som lägger sig över allt, och knappen till frakten kommer inte förbi den. Raden «hoppa över om ni inte mäter» stod där förut och lästes precis så — och sedan stod man vid fraktsteget med en tejpad kartong och ett nej från fraktbolaget.
Rutan ger två vägar för varje uppgift, för det finns två rätta svar. Måtten: välj en sparad kartong ur listan, eller mät. Vikten: använd den beräknade vikten ur artikelregistret, eller väg. Ingenting fylls i av sig självt — appen ska inte gissa åt någon som står vid en våg.
Den beräknade vikten erbjuds bara när ordern går i en enda kartong. Talet är hela orderns, och att lägga det på var och en av tre lådor hade tredubblat fraktvikten — ett fel som syns först på fakturan.
Går ordern i flera kartonger frågar rutan om en i taget. Det man fyllt i står kvar med en bock och går att ändra utan att börja om.
Hämtar kunden själv finns ingen kartong att mäta. Då finns en väg ut som avslutar rundan och skriver packsedeln — men den går inte till frakten. Till fraktbokningen kommer man aldrig utan mått.
Notis på telefonen när en order kommer in: ordernummer, kund och belopp, inom en minut från att den sparas i Fortnox. Trycker man på den öppnas ordern. Kommer fler än tre på en gång blir det en enda notis med räkningen — tio notiser i rad sveps bort i en rörelse, och den elfte som betydde något sveps bort med dem.
Notisen hänger på att ordern är ny och inte på att en plocklista skrevs. En order från webbshoppen får ingen lista automatiskt, och det är ofta just den man vill veta om. Den går att stänga av under Inställningar → Larm och notiser.
«Följer med sändningen» är borta från upphämtningssidan. Listan sa samma sak om varje rad — hos Sendify beställs bilen med bokningen, hos PostNord går den i brevbärarrundan — och det är två fasta regler, inte något som ändrar sig per sändning. Fönstret står kvar på fraktraden inne på ordern, som är där man väljer det.
UPS erbjuds inte längre2.5.0
2026-08-31
UPS är borttaget ur fraktlistan. Vi har provat tre sätt att räkna ut deras upphämtningsfönster och till sist frågat dem rakt ut vilka tider som fungerar — de svarade med en lista tider, och bokningen nekades ändå med «pickup time is too late». Ett alternativ som står först i listan för att det är billigast och sedan inte går att boka kostar mer tid än det sparar pengar.
De syns inte bland Sendifys priser, frågas inte om tider, och står inte längre bland de uteslutna bolagen — den raden såg ut som något att rätta till, och det fanns inget att rätta.
Redan bokade UPS-sändningar rörs inte. De behåller sitt märke och sin spårningslänk i fraktlistan; det är erbjudandet som är borta, inte historiken.
Under Inställningar → Frakt finns nu «Bolag som inte erbjuds», där varje fraktbolag går att slå av och på. UPS står avstängt från start och kan slås på igen den dagen de börjar fungera, utan att appen behöver läggas upp på nytt.
Bolagsnyckeln träffar bara på hela ord. Ett bolagsnamn som slutade på «Groups» blev UPS — med UPS logga och UPS spårningslänk — och hade nu dessutom blivit avstängt utan att någon bett om det.
Appen frågar fraktbolaget vilka tider som fungerar, i stället för att gissa2.4.1
2026-08-31
Jag slutar räkna fram upphämtningstider. Vi vet inte UPS regler och kommer inte att få veta dem — varje bolag har sina egna sista tider, rutter och undantag, och inget av det står i Sendifys spec. En framräknad tid som «borde» fungera är en gissning, och en fel gissning kostar en bokning.
Ny knapp: «Visa tider som fungerar». Appen provar några tider i närheten av den du angett, med samma prisfråga som annars, och visar dem bolaget faktiskt svarade ja på — med pris och upphämtningsfönster för var och en.
Väljer du en av dem bokas exakt den tiden. Bokningsmärket kommer ur provet, så priset hämtas inte om — ett tredje tillfälle för verkligheten att hinna ändra sig är ett för mycket.
Knappen finns på tre ställen: när du ändrar upphämtningstid, i rutan som säger att bolaget vill hämta på en annan tid, och överst i felmeddelandet när en bokning nekats. Det sista är där man är när man behöver den.
Svarar inget bolag på någon av tiderna står det rakt ut — då är det inte tiden som är problemet, och det sparar en runda till av försök.
Utkasten städas. Varje prov skapar en sändning hos Sendify; de som inte väljs raderas direkt, och när du valt en försvinner de andra.
Klockan, fraktbolagets egen tid, och en lista över vad som faktiskt finns hos Sendify2.4.0
2026-08-31
Du hade rätt om tiden. Servern kör i UTC, och klockslagen på papperen formaterades utan tidszon — två timmar fel på sommaren, en på vintern. En plocklista som kom ur skrivaren 14:05 hade «Utskriven 12:05» i huvudet. Samma papper ritas dessutom av två filer, en i webbläsaren och en på servern, så de skilde sig åt med två timmar. All tid formateras nu genom ett ställe med tidszonen utskriven.
Ny lista: Inställningar → Fraktbolag → Sendify → «Visa sändningar hos Sendify». Den hämtar deras egen lista och visar vad som faktiskt finns — bokat eller utkast, med spårningsnummer och pris. Sändningar som är bokade men okända för appen märks särskilt: de kostar pengar och står inte på någon order här. De går att avboka direkt därifrån.
Den finns för att en bokning kan lyckas hos fraktbolaget och ändå se ut som ett fel här. Sendify svarar nej, appen sparar ingenting, och sedan kommer spårningsmejlen om ett paket som är på väg. Det går inte att resonera sig till svaret — deras lista är det enda som vet.
«Pickup time is too late», även med 09:00–16:00 ifyllt. Rutan ändrar vår önskan, inte fraktbolagets fönster — och det är vår önskan som fryses in i priset. Svarar UPS «vi kommer 09–12» och klockan hunnit bli tolv är en begäran om nio i dag en omöjlighet, hur man än fyller i rutan.
Nu frågar appen först. Väljer du ett alternativ vars tid inte går ihop kommer en ruta med båda tiderna och en knapp som hämtar priset igen med bolagets egen tid. Har fönstret redan passerat föreslås närmaste möjliga — nästa vardag, helger borträknade. Ändras dagen står det uttryckligen att kartongen behöver stå klar då i stället.
Rutan kommer bara när det spelar roll. Bolagens fönster är nästan alltid smalare än det vi ber om, och det är inget problem så länge tiden ligger inuti.
FedEx adressförslag frågar inte längre om och om igen. Svaret låg bara i minnet så länge du stod kvar på sidan — gick du ur ordern och in igen ställdes frågan på nytt, även efter ett ja. FedEx putsar gärna vidare på det de själva föreslog, så det blev en loop utan slut. Nu sparas svaret på ordern, tillsammans med adressen det gällde; ändras adressen på riktigt är det en ny fråga.
«Sendify hade inget att erbjuda» stod framme innan man ens hunnit fråga. Appen kunde inte skilja på «inte frågat än» och «inget svar».
Klockan gick två timmar fel, och fraktbolagets egen tid används vid bokning2.3.3
2026-08-31
Du hade rätt om tiden. Servern kör i UTC, och klockslagen på papperen formaterades utan tidszon — alltså två timmar fel på sommaren och en på vintern. En plocklista som kom ur skrivaren 14:05 hade «Utskriven 12:05» i huvudet, och packsedeln sa fel tid för när ordern plockades.
Värre: samma papper ritas av två filer — en i webbläsaren och en på servern — och webbläsaren står i svensk tid. Två dokument som ska vara identiska skilde sig alltså med två timmar. Nu formateras all tid genom ett ställe med tidszonen utskriven, och det gäller även diagnoserna och notiserna.
«Pickup time is too late», även när du skrev 09:00–16:00. Rutan ändrar vår önskan, inte fraktbolagets fönster — och det är vår önskan som fryses in i priset. Svarar UPS «vi kommer 09–12» och klockan hunnit bli tolv är en begäran om nio i dag en omöjlighet, oavsett vad som står i rutan.
Nu frågar appen först. Väljer du ett alternativ vars tid inte går ihop med din kommer en ruta: «UPS vill hämta på en annan tid» med båda tiderna, och en knapp som hämtar priset igen med deras tid. Har fönstret redan passerat föreslås närmaste möjliga i stället — nästa vardag, helger borträknade.
Rutan kommer bara när det spelar roll. Bolagens fönster är nästan alltid smalare än det vi ber om, och det är inget problem så länge tiden ligger inuti. En fråga vid varje val hade blivit en ruta man klickar bort utan att läsa.
Ändras dagen står det uttryckligen att kartongen behöver stå klar den dagen i stället.
«Sendify hade inget att erbjuda» stod framme innan man ens hunnit fråga. Appen kunde inte skilja på «inte frågat än» och «inget svar»; nu kan den det, och rutan där man anger upphämtningstid visas som den ska.
Rubriken heter nu «Boka frakt med Sendify? Ange upphämtningstid».
Sendify frågas först när du sagt när kartongen är klar2.3.2
2026-08-31
Upphämtningsrutan är flyttad. Den ligger nu där Sendifys priser kommer, som en fråga: «Boka med Sendify? Ange upphämtningstid». Först när du fyllt i den hämtas deras priser, och då fälls rutan ihop till en rad du kan trycka på för att ändra.
FedEx och PostNord kommer direkt som förut. Sendify frågas inte alls förrän du bett om det — det gör första hämtningen snabbare, och slutar fylla deras lista med utkast för sändningar ingen tänkt skicka.
Varje fraktalternativ har en sista beställningstid som Sendify svarar med — «boka före 12:00». Passeras den nekar fraktbolaget, och beskedet blir «för sen upphämtningstid», som låter som att tiden du valde är fel i stället för att du är för sen med att fråga. Nu gråas raden ut när tiden passerat, medan du tittar på den, och den går inte att trycka på.
Klockan räknas om var halvminut medan sidan står öppen. Förut kunde en rad stå kvar som valbar en timme efter att den slutat gälla.
Bokningen kontrollerar samma tid innan något skickas, och säger att det gäller klockan och inte priset.
Går bokningen ändå inte igenom står felet kvar på skärmen i stället för att glida förbi som en notis — med ett hopfällt underlag: vilken tid appen bad om, vilket fönster raden lovade, vilken sista beställningstid som gällde, och Sendifys anropsnummer. Ett nej från ett fraktbolag är sällan självförklarande, och utan de uppgifterna blir felsökningen gissningar.
Etiketten kom inte ut, fraktraden nekades, och upphämtningstiden går att välja2.3.1
2026-08-31
«e is not a function» — etiketten kom aldrig ut. PDF-biblioteket är WebAssembly och laddar sin egen fil bredvid sig, men byggverktyget bytte ut den mot en webbadress. Modulen fick alltså en textsträng där den väntade sig programmet. Det syntes aldrig lokalt, för utvecklingsläget packar inte servern på samma sätt. Nu är biblioteket undantaget, och det är kontrollerat i bygget och inte gissat.
Samma fel slog mot allt som läser eller ritar en PDF: fraktetiketterna från Sendify, handelsfakturan, och A4-utskriften av uppladdade PDF:er. Alla tre fungerar nu.
«Fortnox svarade 400: ogiltig momskod E» — fraktraden kom inte in på ordern. Vid genomgången ändrade jag fraktraden till att skicka tillbaka allt Fortnox lagt på orderns rader, för att inte råka nollställa projekt och lagerställe. Men Fortnox lägger fler fält på en rad i svaret än de tar emot i en skrivning. Nu skickas en uttrycklig lista över de fält de dokumenterar som skrivbara — projektet och lagerstället följer fortfarande med.
Säger Fortnox nej till fraktraden står det nu i felet vilka extra fält raden bar. «Ogiltig momskod E» utan att veta vilket fält som bär koden är inget att gå på.
Du kan nu välja upphämtningstid innan priserna hämtas — precis som du föreslog. Dag, klar från, och när ni stänger. Sendify binder både vilka bolag som svarar och vilket fönster de lovar till den tiden, så det är en del av frågan och inte något man fyller i efteråt.
Det var också felet bakom «för sen upphämtningstid». Tiden räknades fram när priserna hämtades och frystes in i priset: hämtade du priserna på morgonen och bokade efter lunch bad bokningen fortfarande om förmiddagen. Nu säger appen ifrån själv, innan bokningen görs, och säger att det gäller klockan och inte priset.
En tid som redan varit går aldrig iväg till fraktbolaget. Väljer du en passerad timme flyttas den fram till närmaste hela timme, och det står på skärmen att den flyttades.
Stängningstiden skickas nu med. Den var hårdkodad till 16:00, vilket ger bilar som kommer när porten är låst.
Handelsfakturan skrivs och laddas upp — Sendify bokar utanför EU2.3.0
2026-08-28
Sendify bokar ingen sändning ut ur EU förrän handelsfakturan ligger uppe hos dem: «missing documents: [customsinvoice]», och hos DHL dessutom [salesinvoice]. Appen läste aldrig fältet som talar om vilka papper en rad kräver, så varje sändning till Norge föll — och felet lästes som ett utgånget pris, så man hämtade priserna igen och fick exakt samma svar.
Nu skriver appen handelsfakturan själv, som PDF, och laddar upp den innan den bokar. Uppgifterna är samma som FedEx får elektroniskt, ur samma register: två dokument som säger olika saker om samma sändning är värre än ett.
Pappret innehåller det tullen frågar efter — avsändare och mottagare med moms- och EORI-nummer, varje varurad med engelsk benämning, HS-kod, ursprungsland, antal och värde, leveransvillkor, antal kollin, vikt och en försäkran att skriva under. Frakten står inte som en varurad, och tullvärdet räknas på varorna.
Fakturan hamnar också i utskriftskön under «Papper att skriva ut», för de gånger tullen vill ha den i en påse på kartongen.
Kräver alternativet ett exportföljedokument (ABD) säger appen det rakt ut. Det utfärdar tullen, och det kan ingen app skriva åt er.
Saknar en artikel HS-kod stoppas bokningen innan fakturan skrivs — samma spärr som FedEx-vägen redan hade. Ett papper med luckor upptäcks i tullen och inte vid packbordet.
Felmeddelandena skiljer nu på fyra sorters nej. «Papperen saknas» säger att papperen saknas, inte att priset gått ut.
PDF-skrivaren är vår egen och drar inte in något nytt beroende. Provverktyget verktyg/fakturaprov.mjs bygger en faktura, läser tillbaka texten ur PDF:en och kontrollerar att varje uppgift står där — plus att kolumnerna inte krockar och att sextio varurader bryter till flera sidor med tabellhuvud på varje.
Fraktartikeln räknas aldrig som en vara2.2.1
2026-08-28
Nej — artikel 100 kommer inte med på tullfakturan. Men bara för att «100» stod hårdkodat på tre ställen i tre filer, medan artikelnumret samtidigt är en inställning. Hade du bytt det till något annat hade frakten börjat stå som en varurad på tullfakturan, och som en rad att bocka av på plocklistan, utan att något sagt ifrån.
Nu ligger regeln på ett ställe och läser inställningen. Byter du nummer följer alla tre reglerna med: bort från plocklistan, bort från tullfakturan, bort från tillverkningsförslagen.
100 fortsätter gälla även om du byter, för gamla ordrar bär det numret. En regel som slutar gälla bakåt är sämre än en som är för bred.
Det går också att lägga till fler artiklar som inte är varor — emballage, avgifter — under inställningen ej_varor.
Tullvärdet räknas som förut på varorna, inte på frakten. Fraktkostnaden är en kostnad, inte ett föremål.
Valutaväxling, Sendify utanför EU, och vart pappret går2.2.0
2026-08-28
Frakten hamnar nu på ordern även när valutorna skiljer sig. PostNord och Sendify svarar alltid i kronor — är ordern i euro skrevs förut ingen rad alls, och sändningen fakturerades aldrig. Kursen hämtas från ordern i Fortnox, alltså exakt den kurs fakturan använder, så raden kan inte glida isär från resten av ordern.
På bokningskvittot står hela räkningen: 450 SEK ÷ 11,49 = 39,16 EUR, avrundat uppåt till 40. En siffra som inte är den du såg i listan ska gå att härleda.
Avrundningen sker efter växlingen och i orderns valuta — det är den siffran kunden ser. Saknar ordern kurs i Fortnox skrivs ingen rad, och det står varför. Växlingen går att stänga av under Inställningar → Fraktbolag.
Sendify svarade «For shipments outside the EU, please visit our website» på varje order till Norge, Storbritannien och USA. Deras API kräver en flagga för sändningar utanför unionen som vi inte skickade. Nu skickas den — och säger de ändå nej står det som en not och inte som ett rött fel, för FedEx tar sändningen ändå.
Appen säger nu vart pappret går. «Skickad till skrivaren» ersatt med datorns namn — eller «första lediga av 3», eller «ingen etikettskrivare inlagd — pappret blir liggande i kön», vilket är det man behöver veta och som inte syntes alls.
Upphämtningssidan visar alla tre bolagen. Sendify har ingen upphämtning att boka — bilen beställs i samma stund sändningen bokas, och tidsfönstret sparas nu och står under «Följer med sändningen». PostNord Home Small går i brevbärarrundan. FedEx bokas som förut.
Ny ruta: anvisning till chauffören. Portkod, vilken port kartongen står vid, lastkaj. Sendify tar fälten vid bokningen och appen skickade ingetdera.
Nytt provverktyg: verktyg/fraktradprov.mjs kör tretton fall genom fraktraden med Fortnox stubbat — växlingen, avrundningen, valutor som noteras per hundra, och att inga andra fält på ordern rörs.
Varubrev visas för allt som faktiskt går att skicka2.1.0
2026-08-28
PostNord har två gränser, och appen förväxlade dem. Brevlådemåttet 34 × 24 × 7 cm avgör om paketet kostar extra — produktvillkoren 3 kg, 60 cm längsta sida och 90 cm sammanlagt avgör om det överhuvudtaget är tjänsten. Appen stoppade på 7 cm tjocklek, alltså på fel nivå.
Följden var att Home Small göms för sändningar som hade varit både billigast och snabbast. En kartong som är 12 cm tjock går utmärkt att skicka — den kostar några kronor extra och läggs vid dörren i stället för i lådan.
Nu stoppar appen bara på produktvillkoren. Är kollit större än brevlådan visas raden ändå, med texten «Tillägg för särskild hantering» och exakt vilket mått det är som spräcker — «12 cm tjockt (lådan tar 7)». Beslutet är ditt, inte appens.
Under PostNords minimimått (15 × 10 × 1,5 cm) står det också på raden. Det stoppar inte heller — men ett litet och tunt kolli är det som kommer bort i sorteringen.
Måtten är kontrollerade mot PostNords tjänstebeskrivning och mot Särskilda villkor PostNord Home Small från maj 2026, och åtta mättfall ligger nu i provverktyget.
Genomgång del 5: saldojusteringar, och prov mot en riktig databas2.0.1
2026-08-28
En inleverans kan inte längre bokas in dubbelt. Faller nätet efter att Fortnox tagit emot rörelsen sa appen «kan ha gått fram ändå» — och den som tryckte igen fick +50 en gång till. Varje knapptryck bär nu ett eget nummer, så ett omförsök av samma tryck svarar med justeringen som redan gjorts.
Två personer som räknar samma artikel samtidigt kan inte längre båda lägga på sin differens. Förut läste båda 100, båda skickade 120, och saldot blev 140.
Samma sak för delräkningar på artiklar som ligger på två ställen: en färdig räkning kunde raderas av den andra telefonens sparning, och artikeln räknades då som oräknad och skickades aldrig — tyst.
Nytt provverktyg: verktyg/dbprov.mjs kör hela schemat och tjugo prov mot en riktig Postgres. Det är den sortens fel som inte syns i ett bygge — en fråga som ser rätt ut men räknar fel, ett villkor som släpper igenom två samtidiga tryck, en migrering som kastar på en tom databas.
Genomgång del 4: gränssnittet, EAN och veckobrevet2.0.0
2026-08-28
Inloggningsknappen fastnade för alltid om nätet föll mitt i. Knappen stod avstängd utan felmeddelande, och appen gick inte att använda förrän man tvingade fram en omladdning.
Samma sak i artikelrutan: «Sparar…» som aldrig gick tillbaka, och en borttagen bild som kvitterades grön fast borttagningen aldrig nådde servern.
Två sökningar som är i luften samtidigt skriver inte längre över varandra. Tryckte du kategori A och sedan B kunde A:s artiklar stå kvar under B:s markerade knapp.
Kategorierna finns nu även när du går direkt till Inventering. «Vad ska räknas?» erbjöd bara «Hela lagret» om man inte först gått omvägen via Artiklar.
«Saldon uppdaterade för N sekunder sedan» räknas om medan appen är öppen. Låg telefonen på bänken stod raden kvar på tolv sekunder en timme senare, och varningen om gamla saldon slog aldrig till.
Krysset på notisrutan stänger rutan i stället för att utlösa iOS-frågan man just sagt nej till.
Plock och Tillverkning i flikraden laddar inte längre om hela sidan. Att svepa dit var omedelbart medan knappen gav flera sekunders vit skärm.
Kameran kan inte längre öppna en artikel efter att du tryckt Stäng.
Versionsvakten vet vilken version fönstret startade med, även när telefonen saknade täckning vid start. Förut kunde den ta det nya bygget som sin egen utgångspunkt och sedan aldrig säga till.
EAN: två personer som delar ut koder samtidigt kan inte längre få samma nummer. Och numret loggas innan det skrivs till Fortnox — förut kunde en tappad uppkoppling lämna koden i Fortnox utan spår i appen, varpå nästa omgång delade ut den igen.
Veckobrevet kan inte gå ut tre gånger samma måndag när tre personer öppnar appen samtidigt.
Genomgång del 3: tull, Fortnox-synk, tillverkning1.99.0
2026-08-28
Fjorton EU-länder behandlades som utanför EU. Står det «Portugal» i klartext i Fortnox — och landfältet är fritext — kunde appen inte tyda det, och en order dit hamnade bland det som brådskar på tullsidan och nekades bokning med «artiklar saknar HS-kod», trots att ingen tullfaktura behövs. Alla tjugosju står med nu, på både svenska och engelska.
Rutorna i tulltabellen kontrolleras nu som bulkrutan gör. «845» gick att spara som HS-kod och «Tjeckien» som ursprungsland — och det gick rakt ut på handelsfakturan, eftersom bokningen bara kontrollerar att en HS-kod finns, inte att den duger.
Provkörningens siffra nollställs när listfiltret ändras. Provade du på en kategori och sedan bytte filter stod knappen kvar på «Sätt för 12 artiklar» medan körningen träffade hela registret.
Saknas ursprungsland deklareras varan fortfarande som svensk — men nu står det på kvittot vilka artiklar det gäller. En felaktig ursprungsdeklaration är er underskrift.
-CA-artiklarna räknas inte längre in i tullsidans täckning, syns inte i tabellen och kommer inte med när uppgifter hämtas från butiken. Regeln fanns i tre versioner som var oense; nu finns den på ett ställe.
«Hämta från butiken» gör en skrivning i stället för en per artikel. Vid tusen artiklar sprängde den tidsgränsen mitt i, och man fick en halv import och ett nätverksfel.
Ordersynken flyttar inte fram sitt tidsfönster när den stannat på femtio sidor. Ordrarna som inte hann med hämtades förut aldrig — nästa körning frågade efter det som ändrats sedan «nu».
Orderraderna byts ut i stället för att raderas och läggas tillbaka. Under några millisekunder hade ordern noll eller halva sina rader, och en plocklista eller behovsuträkning som råkade läsa just då räknade på en halv order.
Sidan Skillnader hämtade hela Fortnox artikelregister och hela Shopifykatalogen — och rensade appens artikeltabell mot resultatet — vid varje besök, automatiskt. Nu hämtas det som ändrats, och bara när du trycker på knappen.
Fortnox säger nu ifrån när orderrader inte går att hämta. Nekas behörigheten gjorde appen 120 misslyckade anrop var femte minut och svarade att allt gick bra.
Produkter med fler än hundra varianter i Shopify tappade resten helt. De syntes som föräldralösa på Skillnader, och deras streckkoder och tulluppgifter uppdaterades aldrig.
Fraktraden kan inte längre nollställa fält på orderns andra rader. Raderna byggdes om ur tio kända fält, och allt annat Fortnox hade på dem — projekt, kostnadsställe, ett lagerställe satt på raden — försvann i samma sats.
Tillverkning: en order som redan levererats kunde få ett behov på sig igen. Spärren fanns i kommentaren men inte i koden, så verkstaden kunde köra om ett jobb som var gjort.
Skapa-knappen la upp ett annat antal än kortet visade — alltid större. De två vägarna räknade med olika tidsfönster.
En tillverkningsorder går inte längre att ändra eller avbryta medan den bokas in i Fortnox. Med två minuters tidsgräns fanns det gott om utrymme att hinna, och resultatet blev lager inbokat i Fortnox på en order som stod som avbruten.
-CA-artiklar går att undanta från tillverkningsförslag. Mönstret `*-CA` matchade aldrig — undantagslistan kunde bara uttrycka början av ett nummer, inte slutet.
Shopify-installationens kontrollvärde gick att gå förbi när ingen installation pågick.
Genomgång del 2: plockningen och utskriftskön1.98.0
2026-08-28
Rättade vikter försvann tyst. Rättade du en vikt efter att rundan var avslutad kastades den — skärmen sa «Packsedel skickad till skrivaren», och frakten bokades sedan på den gamla vikten. Nu sparas vikterna, och statusen läses om så att rätt knapp visas.
Att spara om vikterna raderade spårningsnumren på kollina. Kollina skrevs om från grunden och numren skrevs aldrig tillbaka — permanent, och just den uppgiften är hela skälet till att listan Bokat finns.
En borttagen plocklista gick inte att skapa på nytt. Raden låg kvar märkt som avbruten, och både avläsningen och knappen på ordersidan hoppade över ordern för alltid. Nu raderas raden — och gamla avbrutna rader räknas inte längre.
Handskannern går inte längre igenom i frakt- och viktvyn. En kod som sköts av vana när kartongen stod på vågen bockade av en rad på en runda som redan lämnat bordet, medan samma vara stod på restlistan.
Samma artikel på två orderrader går att skanna två gånger. Sökningen tog alltid första raden, så när den var avbockad svarade appen «är redan avbockad» och den andra raden gick aldrig att skanna.
Två personer kan inte längre avsluta samma runda samtidigt och få en dubblerad omgång två — eller ett rått databasfel som meddelande.
«Skriv ut packsedeln igen» skriver faktiskt ut igen. Knappen körde avslutet en gång till, och eftersom rundan redan var klar lades ingenting i kön — men skärmen kvitterade ändå. Man stod och väntade vid en skrivare som aldrig skulle få något.
Ett papper som inte gick att skriva ut malde i kön i evighet och blockerade allt bakom sig. Är Zebran avstängd stannade plocklistor och packsedlar helt, och felet syntes aldrig som fel. Nu går raden till fel efter fem försök och kön går vidare.
«Skriv ut igen» på ett fraktdokument som bara skulle sparas gav ett papper som aldrig kom — rollen var fel och ingen dator hämtar den. Och på en rad som just skrevs ut gav den två papper. Båda rättade.
Tulluppgifter som inte gick att kontrollera såg ut som «inga brister». Ett databashack gjorde alltså att varningen försvann tyst — precis det den finns för att förhindra.
Säkerhet: en adress i utskriftskön kunde skrivas så att den ledde ut ur appen, och agentens nyckel följde med dit. Kontrollen är omgjord. En agentnyckel kan inte längre lägga papper i kön, och vilken dator som hämtat ett papper avgörs av vem som loggat in — inte av ett namn i adressraden.
Uppladdade PDF:er har nu ett tak på tjugo sidor, i stället för att en fyrtiosidig fil kunde ge fyrtio ark ingen bett om.
Genomgång av hela appen — del 1: databasen, Fortnox och frakten1.97.0
2026-08-28
Frakten går inte längre att boka två gånger. Trycker du på Boka och täckningen hänger, och du trycker igen, skapades förut två skarpa sändningar hos fraktbolaget — båda fakturerades, och bara den sista gick att avboka. Nu tas bokningen i anspråk i samma sats som den prövas, så bara det första trycket kommer förbi.
FedEx bokade också om sig själv i onödan. Appen backar ur elektronisk tullfaktura när FedEx klagar på den — men villkoret var bara «bad vi om den?», och det gör appen alltid. En inrikessändning där FedEx svarade långsamt bokades alltså en gång till, med exakt samma innehåll. Nu backar den bara när felet faktiskt handlar om tullfakturan.
Sendify: bokningen sparas nu innan etiketten hämtas. Föll etikettutskriften sparades ingenting alls — sändningen fanns och kostade pengar, men rundan såg obokad ut och sändningsnumret som behövs för att avboka fanns ingenstans. Kommer etiketten inte fram står det nu rakt ut på kvittot, i stället för «Bokad — 0 etiketter».
En prisfråga till Sendify som misslyckas städar undan sitt utkast. Förut blev det liggande i deras lista varje gång en adress var fel.
Bokar du om en runda som varit avbokad visas den inte längre som avbokad — och går att avboka igen. PostNord-bokningar skriver dessutom över förra bolagets pris, valuta och bokningsnummer i stället för att låta dem stå kvar bredvid ett varubrev.
Fraktlistan säger vilket bolag som faktiskt kör. Allt som inte var PostNord stod som FedEx, även DHL- och UPS-sändningar bokade via Sendify, och spårningslänken pekade alltid på FedEx spårning — som svarar «hittades inte» på ett DHL-nummer.
Knappen Boka upphämtning visas bara för FedEx. Appens upphämtningssida bokar en FedEx-bil, och den erbjöds även efter en PostNord- eller DHL-bokning.
Varubrev visas inte längre som bokbart när mottagaren saknar både mobil och e-post. PostNord aviserar leveransen och nekar utan dem — förut kom nejet först när kartongen var tejpad.
FedEx-priset tar hänsyn till om mottagaren är privatperson. Uppgiften hämtades redan för tullens skull men nådde aldrig adressen, så varje offert till en konsument saknade FedEx tillägg för privatadress — de klassar adressen själva och efterfakturerar.
Priset för ovägda kollin räknades tre gånger för högt på en runda med tre kartonger: hela ordervikten sattes på varje kolli. Och viktgränsen 68 kg prövas nu per kolli, som den gäller, i stället för mot summan — tre paket à 30 kg sorterade bort varenda pakettjänst.
Avrundningen av fraktraden går att stänga av. Sätter du steget till 0 betydde det förut «använd standardvärdet», så varje bokning rundade ändå upp till närmaste femtiolapp medan inställningen visade 0.
Svarar FedEx med ett belopp men utan valuta skrivs ingen fraktrad. Förut gissades kronor, och gissningen satte hela valutakontrollen ur spel — ett belopp i dollar kunde hamna som kronor på ordern.
Långa kund-, gatu- och ortnamn klipps till FedEx 35 tecken i stället för att stoppa bokningen. En kund med ett långt namn gick helt enkelt inte att skicka till.
Leveransbeskedet på en fraktrad kunde visa «Fuel Surcharge» eller tjänstens eget namn i stället för antal dagar. Sökningen efter transittid tog vilket beskrivningsfält som helst.
Databasen: en kolumn lades till före tabellen som skulle bära den. Hela migreringen är en enda sats, så på en tom databas skapades varken plockrundor, kollin, tulluppgifter eller utskriftskön. I drift märktes ingenting — det hade slagit till först den dagen appen sattes upp på nytt.
Sex rutter körde hela migreringen vid varje anrop, bland dem inloggningen som körs innan någon loggat in. Det tar lås på alla stora tabeller och räcker för att blockera resten av appen när flera telefoner öppnas samtidigt.
Fortnox-inloggningen kunde förnyas sönder. Två samtidiga anrop löste in samma engångsbiljett och den långsammare skrev över den nyare — och saknades biljetten i svaret sparades en uppsättning helt utan den, alltså en app permanent utelåst från Fortnox. Båda vägarna är stängda.
Strypte Fortnox ett anrop tappade omförsöket sin tillåtelse och kastade «appen får bara läsa ordrar» — ett fel som pekar på något helt annat än det som hände. Fraktraden hamnade aldrig på ordern.
Adminkoden går inte längre att gissa via adressraden: spärren låg bara i den ena av två vägar in, och räknaren stod stilla i den andra.
Inloggningssidan säger nu ifrån när databasen inte svarar, i stället för att visa en tom personallista utan förklaring.
Ladda upp en PDF och skriv ut den1.96.0
2026-08-28
Under Inställningar → Skrivare och agenter finns nu Skriv ut en PDF. Välj fil, välj A4-skrivaren eller etikettskrivaren, välj antal exemplar. Den läggs i samma kö som appens egna papper och kommer ut på den dator du pekat ut.
Till A4 ritas varje sida om till en bild och läggs på ett eget ark i sin egen storlek. En fyra-gånger-sex-etikett dras alltså inte ut över hela pappret — den ligger kvar i etikettstorlek.
Till etiketten görs sidorna om till ZPL, samma väg som Sendifys etiketter går. Ett papper i kön per sida, så att kolli två går att skriva om utan att kolli ett kommer ut igen.
Rättat: fraktdokument från FedEx ligger i kön som PDF, och skrivaragenten kan inte visa en PDF — den ritade i stället plocklistans mall med fraktdokumentets titel på. Tre exemplar av fel papper. Nu ritas PDF:en om till bilder, och tullfakturan kommer ut som tullfakturan.
Rättat: papper som har en egen sida i appen — tillverkningsorder, kundorder, inventeringsrapport, streckkodsetiketter — svarade «Rundan finns inte» när agenten hämtade dem. Kön bar adressen, men vägen dit gick inte att gå.
Tulluppgifter i klump — och en varning innan kartongen tejpas1.95.0
2026-08-28
Bulkrutan på artikeluppgifter gäller nu alla fyra fälten: HS-kod, ursprungsland, engelsk benämning och nettovikt. Förut gick bara benämningen att sätta för många på en gång, och de andra tre fick skrivas rad för rad.
Urvalet är antingen en hel kategori eller precis det som listan visar — samma sökning, samma kategori, samma filter. Att ändra «ungefär det du ser» är den sortens löfte som gör att man slutar lita på knappen.
Kryssrutan «skriv över» är utbytt mot tre lägen, för det var två frågor som såg ut som en: bara de som är helt tomma, även de som ärver butikens värde, eller allt inklusive det som fyllts i för hand.
Ingenting skrivs innan du sett siffran. Knappen räknar först och svarar med hur många som ändras, hur många som lämnas i fred och vilka artikelnummer som står först i tur. Först då går det att trycka på riktigt.
Appen varnar nu när en order saknar tulluppgifter — i plocklistan, mitt i plockningen och när rundan ska avslutas. Kontrollen fanns sedan tidigare men ställdes först när frakten skulle bokas, och svaret visades faktiskt aldrig någonstans. Då står kartongen packad och varan tillbaka på hyllan.
Varningen gäller bara sändningar utanför EU. Inom unionen behövs ingen handelsfaktura, och att fråga efter uppgifter man inte behöver är det snabbaste sättet att lära folk att blunda för varningar.
Högst upp på artikeluppgifter står nu det som brådskar: artiklarna som saknar något och samtidigt ligger på en väntande order utanför EU. Registret blir aldrig komplett, men den listan går att jaga i kapp.
Knapparna i fraktraden fick rätt storlek1.94.1
2026-08-28
Vikt och mått samt Uppdatera priser är nu två knappar i bredd i stället för tre, och därmed stora nog att träffas med en tumme utan att sikta. Det är de två man använder om och om igen.
Boka senare ligger underst och är röd, lika stor som knappen som bokar. Att gå härifrån utan att boka är ett val med följder — ordern står kvar och någon måste tillbaka till den. Den ska vara lätt att hitta men inte lätt att råka trycka på.
Knappraden ligger still längst ned1.94.0
2026-08-28
Fraktlistan blev lång när tre bolag skulle rymmas, och knappen som bokar hamnade långt under sista raden — man valde en tjänst och fick sedan leta efter knappen. Nu ligger den still längst ned på skärmen.
I raden står också vad som är valt, med pris. En knapp som säger «boka» utan att säga vad är en knapp man tvekar inför, särskilt när listan är utskrollad.
Vikt och mått, Uppdatera priser och Boka senare ligger i samma rad, lika breda — ingen av dem är viktigare än de andra. Den viktiga är den stora knappen under.
Är kollina inte vägda står det på knappen i stället för att den bara är grå.
PostNord-loggan syntes inte: sökvägen var hårdkodad till den gamla filen, som bytte namn när den riktiga loggan kom. Märket hämtas nu ur bolagsregistret som de andra.
Fraktbolagens riktiga loggor1.93.0
2026-08-28
UPS, PostNord, DSV och DB Schenker har nu sina riktiga loggor, inskickade av er. Tillsammans med FedEx och DHL är alla utom Bring äkta.
Alla passas in i samma yta så att raderna ser lika ut. Höga märken som UPS-skölden skalas efter höjden, breda ordbilder efter bredden — annars blir det ena en tunn remsa och det andra spräcker rutan.
Märken med egen bakgrundsfärg behåller den och fyller hela ytan. Inte för att det är snyggt, utan för att appen har både ljust och mörkt läge: en vit logga utan fält försvinner i mörkt läge och en mörk i ljust. Ett eget fält syns i båda.
Originalfilerna ligger kvar i verktyg/loggor-original, så att det går att göra om med andra mått utan att be om dem igen.
Riktiga loggor, och fraktbolagens egna hämttider1.92.1
2026-08-28
DHL och UPS har nu sina riktiga märken — glyferna kommer ur paketet simple-icons och är bolagens egna, med deras varumärkesfärger. Mina handritade skyltar var precis så handritade som de såg ut.
DSV, PostNord, Bring och Schenker finns inte i det paketet och har kvar namnskyltarna tills vidare. Hellre en tom plats som går att fylla än en påhittad logga.
Sendify svarar med ett riktigt upphämtningsfönster per alternativ — vilken dag bilen kommer, mellan vilka klockslag, och när bokningen senast måste vara inne. Det använde appen inte. Nu står det på raden: «hämtas i dag 07:00–17:00» med «boka före 12:00» under.
Sista beställningstiden står på egen rad. Den avgör om man hinner i dag och ska inte behöva letas fram ur en mening.
Vår egen veckodagstabell är kvar som reserv, för FedEx och PostNord säger ingenting om saken. Men den som faktiskt vet får gå först.
Bolagets eget märke på raden, och upphämtningsdagen överallt1.92.0
2026-08-28
Sendifys rader bar Sendifys logga, vilket inte sa något om vem som kommer med bilen. Nu står DHL, UPS, DSV, Bring eller Schenker på sin egen rad, med sitt eget märke.
Märkena är namnskyltar i bolagens färger — gult och rött för DHL, brunt och guld för UPS, mörkblått för DSV. Inte avritningar av deras loggor: en logga ritad på fri hand blir nästan rätt, och nästan rätt är sämre än en ärlig skylt. Färgen är ändå det ögat hittar först.
Upphämtningsdagen står nu på alla fraktalternativ, inte bara Sendifys. En FedEx-rad som ser snabbast ut är inte snabbast om bilen kommer på fredag.
Fraktbolagen ligger samlade på ett ställe — namn, märke och upphämtningsdagar tillsammans. Låg de på tre ställen blev ett nytt bolag tre ändringar och en glömd, och den glömda är en rad utan logga eller ett alternativ utan hämtdag.
Avsändarens e-post och telefon skrivs in i appen1.91.0
2026-08-28
Fraktbolagen kräver e-post och telefon till avsändaren — era egna uppgifter. De skrivs nu in under Inställningar → Fraktbolag → Avsändare, i två rutor.
Där och inte i Vercel, för de är inte hemliga som nycklarna är. En miljövariabel kräver en ny driftsättning och att någon lämnar appen, för en uppgift som ändras den dagen ni byter telefon.
Ifyllt i appen går före miljövariabel, som går före Fortnox företagsuppgifter. Den som skriver in ett nummer i en ruta gör det för att det ska gälla, inte för att överröstas av något någon satte i våras.
Under rutorna står vad som faktiskt används och varifrån det kommer, så att det går att se i stället för att gissas.
Adressen ligger kvar i miljövariablerna — den står tryckt på varje etikett och byts sällan.
Fraktradens avrundning går att spara1.90.2
2026-08-28
Avrundningen på fraktraden gick inte att ändra. Två fel låg på varandra: rutorna ritades bara för valutor som redan stod i inställningen, och i en tom inställning fanns ingen ruta alls — det såg ut som att fälten var låsta när det i själva verket inte fanns några.
Och sparandet kunde ändå inte ha fungerat: inställningen har ett fält som heter steg, och rutten använder steg som namn på åtgärden. Gränssnittet skickade båda i samma svep, fältet skrev över åtgärdsnamnet, och servern hittade aldrig vilken inställning det gällde. Spara gjorde ingenting och sa inget om det.
Nu finns rader för kronor, euro, norska och danska kronor, dollar och pund. Noll betyder ingen avrundning. Efter sparandet visas det som faktiskt hamnade i inställningen, inte det appen trodde att den skickade.
Avsändarens e-post och telefon i inställningarna visar nu det värde som gäller och varifrån det kommer — miljövariabel eller Fortnox företagsuppgifter. Förut stod det saknas så fort variabeln var tom, även när Fortnox hade uppgiften, och då rättade man fel sak. Säger Fortnox nej står skälet där.
Avsändarens uppgifter slås inte längre ut1.90.1
2026-08-28
Reservuppgifterna från Fortnox skrev över miljövariablerna i stället för att fylla luckorna. Hade Fortnox inget att svara blev e-post och telefon tomma — även när de stod inlagda. Felet såg ut som att variabeln inte kommit fram, vilket är den sämsta sortens fel: det pekar på fel ställe.
Nu fylls bara tomma platser. Miljövariabeln går före, Fortnox tar vid där den är tom.
Ett tomt svar från Fortnox sparas inte längre som hämtat. Förut frågade appen aldrig igen, så den dagen någon fyllde i uppgiften i Fortnox var den ändå borta här.
Inställningar → Fraktbolag visar nu vad appen tror om avsändarens e-post och telefon. Står det saknas ser man direkt om det är miljövariabeln som inte kommit fram — och att en ny variabel i Vercel gäller först efter en ny driftsättning.
Kontaktuppgifterna hittas, och upphämtningsdagarna står på raden1.90.0
2026-08-28
Varje fraktbolag har sina upphämtningsdagar, och ingen minns dem på en tisdag eftermiddag. Nu står det på fraktraden: «hämtas tidigast torsdag», «hämtas i dag», «hämtas i morgon». Efter elva räknas inte dagens tur — då hinner ingen bil komma.
Dagarna ställs in under Inställningar → Fraktbolag, sju knappar per bolag. DSV måndag och torsdag, DHL Freight torsdag, resten varje vardag — men terminaler lägger om sina turer, och då ska det gå att ändra på en kvart i stället för att vänta på en driftsättning.
Sendify kräver namn, telefon och e-post på både avsändare och mottagare. Deras egen spec märker inget av det som obligatoriskt — det syns bara genom att bli nekad. Nu kontrollerar appen det innan anropet och säger vad som fattas och var man rättar det, i stället för att skicka och få en kod tillbaka.
Saknas mottagarens e-post eller telefon på ordern hämtas de från kundkortet i Fortnox. Fälten letas efter namn — Fortnox har Email, EmailOrder och EmailInvoice, och vilket som är ifyllt skiljer sig mellan kunder. Uppgiften sparas på ordern så att den bara behöver hämtas en gång.
Adresskortet visar telefon och e-post, och säger när de kommer från kundkortet i stället för från ordern.
Finns de ingenstans går de att skriva in i appen: e-post är ett nytt fält under Ändra adressen, bredvid telefon. Ingen ska behöva öppna Fortnox mitt i packningen.
Avsändarens e-post och telefon hämtas ur Fortnox företagsuppgifter när de inte står i miljövariablerna. En uppgift som redan finns ska inte behöva skrivas in en gång till.
Privatperson eller företag följer med till Sendify, hämtat från kundkortet. Ett ombudspaket och en företagsleverans är inte samma tjänst.
Sendify hämtar priser, och versionen kan inte gå isär1.89.4
2026-08-28
Sendify krävde requested_pickup_time trots att deras spec inte märker fältet som obligatoriskt. Nu skickas det: nästa vardag klockan tio, eller i dag om klockan inte hunnit elva — samma gräns som mot FedEx. Med svensk tidszon och rätt offset, annars läses tiden som UTC och vi ber om upphämtning två timmar för tidigt halva året.
Upphämtningsfönstret följer med, ni stänger fyra.
Inställningarna visade 1.89.1 medan Vad är nytt visade 1.89.3. Numret stod som en egen rad ovanför ändringsloggen och glömdes kvar. Nu räknas det fram ur listans första post — skriver man en ny post följer numret och datumet med av sig själva, och de kan inte gå isär igen.
Appen slutar gissa på Sendifys felsvar1.89.3
2026-08-28
Två gånger har jag gissat formen på deras felsvar och två gånger blev resultatet ”Sendify svarade 422” — ett meddelande som säger att något är fel men inte vad, vilket är sämre än inget alls.
Nu gås svaret igenom som det är: varje text som ligger någonstans i det plockas ut tillsammans med vägen dit. Då spelar det ingen roll om Sendify packar in fälten i ”errors”, i ”validation_errors” eller inte alls.
Går kroppen ändå inte att tolka visas den rå. Ful text är fortfarande information.
Meddelandet börjar med vilket anrop som nekades — POST /shipments → 422. Sendify har fem rutter i det här flödet och samma kod betyder olika saker i var och en.
Provet kör fyra sorters felsvar: fältuppslaget, ett inpackat i errors, en tom kropp och ren text. Inget av dem får sluta med enbart en siffra.
Sendify frågas automatiskt, och utkasten städas bort1.89.2
2026-08-28
422 från Sendify sa bara ”Sendify svarade 422”. Deras fältfel ligger direkt i svaret och inte inpackade som jag läst dem, så listan blev tom. Nu står varje fält med sitt eget meddelande — ”to.contact.phone: This does not look like a valid number” — tillsammans med Sendifys anropsnummer, som är det de vill ha om man frågar dem.
Telefonnumret skickas som +46… i stället för 070-123 45 67. Tomma fält utelämnas helt: en tom e-postadress är ett fält med ogiltigt värde, inte ett fält som saknas.
Priserna hämtas automatiskt nu, samtidigt som FedEx och inte efter — annars väntar man ut två fraktbolag i rad.
Utkasten städas. Varje prisfråga skapar en sändning hos Sendify eftersom deras API kräver det; nu raderas den när rundan bokats med ett annat bolag, och nästa prisfråga raderar den föregående. Bokas den via Sendify står den kvar — då är den en riktig sändning.
Saknas mått eller vikt på ett kolli frågas Sendify inte alls. Ett anrop som är dömt att nekas är bara väntetid; skälet står på skärmen i stället.
Provet täcker felsvaret också, så att ett 422 utan besked inte kan komma tillbaka tyst.
Etikettens upplösning står framme1.89.1
2026-08-28
Er Zebra 420t är en 203-punktare — i Zebras modellnumrering står 20 för 203 dpi och 30 för 300. Appen renderade redan i 203, så etiketterna blir rätt.
Siffran syns nu i Inställningar → Fraktbolag, och går att sätta med ZEBRA_DPI i stället för att ändras i koden. Byts skrivaren mot en 300-punktare hamnar etiketten annars förminskad i ett hörn och streckkoden blir för liten att skanna — och den som byter skrivare är sällan den som kan koden.
Bara 203 och 300 tas emot. Ett påhittat värde ger etiketter som ser nästan rätt ut, och det är den sortens fel ingen letar efter.
Sendify med priser, och PDF-etiketter som blir ZPL1.89.0
2026-08-28
Sendify är inkopplat. Inne på ordern finns knappen Hämta priser från Sendify, och då listas DHL, UPS, DSV och de andra med pris, leveranstid och bolag — billigast först. Det är enda stället i appen där man ser vad frakten kostar hos flera bolag bredvid varandra.
Priserna hämtas på knapp och inte automatiskt. Sendify vill ha sändningen skapad innan de prissätter den, så varje prisfråga lämnar ett utkast i ert Sendify-konto. Att öppna en order ska inte kosta ett utkast.
Sendify svarar också med vilka bolag som inte kunde erbjudas och varför — ”Company name is too long, max 27 chars” och liknande. Det står bakom en hopfälld rad. En kort lista utan skäl ser ut som ett fel i appen; med skälet är det ofta något man kan rätta.
Sendify lämnar bara PDF, och Zebran talar ZPL. Deras väg förbi det är PrintNode, ett program till som ska ligga och köra vid skrivaren — men vi har redan en skrivaragent, och två program som slåss om samma skrivare är ett fel som inträffar en fredag eftermiddag. Pappret görs i stället om till ZPL i appen: sidan ritas i skrivarens egen upplösning och packas med ZPL:s egen komprimering. Fyra kilobyte i stället för tvåhundrafyrtiotre.
Etiketten går alltså i vanliga etikettkön till FABRIKEN eller KONTORET, med samma notis om vart den gick.
Avbokning fungerar även för Sendify, på deras sändningsnummer. Etiketter som ligger och väntar tas ur kön.
Sendifys eget schema ligger i repot och varje anrop hålls mot det innan det skickas — tredje gången samma sak, efter FedEx och PostNord.
Varubrev med mått och pris1.88.0
2026-08-28
Varubrev är det vi redan bokar: PostNord bytte namn på tjänsten den 4 maj 2026, och Varubrev heter numera Home Small. Gamla namnet står kvar i parentes på raden — det är det namnet som sitter i huvudet på den som packar.
Tjänsten visas bara när kollina får plats i en brevlåda: högst 3 kg, 60 cm längsta sida, 7 cm tjockt, 90 cm sammanlagt. Passar de inte står raden inte där alls — en rad man kan trycka på och sedan få nej av PostNord är sämre än ingen rad.
Saknas måtten på kollit sägs det på raden i stället för att gissas åt något håll. Ett kolli som göms för att någon glömt måtten ser annars likadant ut som ett som inte får plats.
Avtalspriset per tjänst läggs in under Inställningar → Fraktbolag. Det visas på fraktraden och skrivs in på ordern i Fortnox efter bokningen, utan avrundning uppåt — det är ert avtalade pris och ska stå som det är.
Priset skrivs bara på en order i kronor. Ett belopp på en orderrad har ingen egen valuta, det ärver orderns, och 69 inskrivet på en eurorder blir 69 euro.
PostNord-raderna säger inte längre fel sak om priset1.87.1
2026-08-28
PostNord-raderna sa ”pris på fakturan”, vilket lät som ett besked om att något var ordnat. Det står streck där i stället, precis som en FedEx-rad utan pris.
Det som faktiskt gäller står nu på kvittot efter bokningen: PostNord lämnar inget pris i sitt bokningsapi, så ingen fraktrad skrivs på ordern i Fortnox. Ska kunden betala frakt får raden läggas in för hand. Bättre där, där någon kan göra något åt det, än upptäckt när fakturan gått utan frakt.
PostNord går att boka1.87.0
2026-08-28
PostNord Home Small och Home Small Prio går att välja i fraktlistan och boka som vanligt. Bokning och etikett hämtas i samma anrop — bokar man först och hämtar etiketten sedan finns ett läge där sändningen är bokad men ingen etikett kommit ut, och det läget syns inte för den som packar.
Etiketten kommer som ZPL rakt i kön till Zebran, en per kolli, med spårningsnumret på kollit precis som hos FedEx.
Varje anrop hålls mot PostNords eget schema innan det skickas. Två provbokningar och ett fall som ska nekas körs i verktyg/postnordprov.mjs: noll brott mot schemat.
Saknas mobilnummer och e-post till mottagaren stoppas bokningen här, med skälet på svenska. PostNord aviserar Home Small-leveranser, och utan avisering vet ingen att paketet ligger i lådan.
Flera kollin blir en sändning av sig själv — samma bokning, flera poster. Ingen egen tjänst att välja.
I testläge sätts PostNords testflagga automatiskt: bokningen kontrolleras mot deras regler men ingen EDI går vidare.
FedEx föreslog ”E” som delstat på svenska adresser — länsbokstaven för Östergötland. Delstatsförslag följer nu bara med i de tre länder som faktiskt har delstater. Ett förslag man inte förstår gör att man slutar läsa rutan.
Fraktlistan delas per bolag1.86.1
2026-08-28
Fraktalternativen står nu under sin rubrik: FedEx för sig, PostNord för sig, med bolagets märke på varje rad. Så länge allt var FedEx räckte en lista — med två bolag är bolaget det första ögat letar efter.
PostNords tjänster syns i listan även innan bokningen är inkopplad, med skälet utskrivet på raden. En tom plats svarar inte på frågan varför det inte står någon PostNord där.
Fyra namn står på avtalet, men det är två tjänster: Home Small och Home Small Prio. ”Sändning” är samma tjänst med flera kollin i samma bokning — i PostNords EDI finns ingen egen kod för det, kollina är en lista. Appen väljer alltså tjänst, och antalet kollin sköter resten.
Bara inrikes svenska paket visas. Det är vad avtalet täcker än så länge, och en tjänst som visas men inte gäller sträckan är värre än ingen alls.
PostNords schema ligger i appen — och nyckeln är skarp1.86.0
2026-08-28
PostNords Booking API-specifikation ligger nu i repot, och regeltabellen är skapad ur den. Åtta rutter, 237 definitioner, alla hänvisningar upplösta. Bokningen kan börja skrivas mot fält som går att slå upp i stället för gissas.
Den utgåvan bär hela informationsmodellen i sig, så den separata modellfilen behövs inte längre. Verktyget läser den ändå om någon lägger dit den.
Appen sa ”Testmiljö” fast nyckeln var skarp. Skarpt läge är nu det normala; testmiljön får man genom att sätta POSTNORD_ENV=test. Ett läge som gissar fel om sig självt är värre än inget läge alls.
Adressen anropen går till står också i inställningarna. Skarpt är api2.postnord.com, testet atapi2 — en skarp nyckel mot fel värdnamn svarar med ett fel som inte pekar på orsaken.
Upphämtningslistan visar bara det som är kvar att vänta på. Dagens bokning står kvar hela dagen, i morgon är den borta, och närmast i tiden ligger överst. Datumet räknas i svensk tid, inte serverns.
Grunden för PostNord-bokningen1.85.2
2026-08-27
Verktyget som gör om PostNords specifikation till en regeltabell är skrivet. Appen kommer att hålla varje anrop mot deras eget schema innan det skickas — samma sak som till slut gjorde FedEx-flödet stabilt.
Ingen rad av själva bokningen är skriven än, och det är med flit. Varje FedEx-fel den här appen haft kom av att ett fältnamn gissats i stället för slagits upp.
PostNords spec är uppdelad på två filer: API:et och en informationsmodell som API:et hänvisar till. Verktyget läser båda och löser hänvisningar mellan dem. De läggs i verktyg/specar, med en läs-mig som säger varifrån.
PostNord-nyckeln syns i inställningarna1.85.1
2026-08-27
Inställningar → Fraktbolag visar nu om PostNord-nyckeln kommit fram: fyra sista tecknen, miljön och kundnumret. Nyckeln själv visas aldrig.
Står nyckeln där men är kortare än trettiotvå tecken säger appen det. Halva nyckeln inklistrad ser annars ut som en hel, och felet dyker upp först vid första bokningen.
En miljövariabel som stavats fel ser likadan ut som en som saknas, och båda ser likadana ut som ett API som inte svarar. De tre ska gå att skilja åt här och inte gissas ur en felkod.
Bokning via PostNord är inte inkopplad än — den byggs mot deras specifikation, fält för fält.
Varje bokning bär vem som kör1.85.0
2026-08-27
Förberedelse för PostNord. Så länge det bara fanns ett fraktbolag behövde ingen fråga vem som körde — svaret var underförstått överallt. Med två måste varje bokad sändning bära det.
Sändningar som bokas skriver nu ned fraktbolaget, och listan över bokade frakter visar det. Allt som bokats hittills är FedEx, vilket också är sant.
En avbokning går till den som bokade. Skulle den gå till fel fraktbolag hade svaret blivit «känner inte igen numret» och sändningen stått kvar bokad — värre än att säga ifrån direkt.
Remsan bakom svepet säger vart man är på väg1.84.1
2026-08-27
Drar man undan en sida syns det som ligger under, och där fanns ingenting — en tom vit remsa som växte. Det såg ut som att man drog fram en tom sida.
Nu står namnet på fliken man är på väg till där, med sin ikon. Remsan blev ett besked i stället för ett hål, och man ser vart draget bär innan man släppt.
Skylten ligger stilla; det är sidan ovanpå som rör sig. Så går namnet att läsa medan draget pågår i stället för att glida undan med det man drar.
Notis om vilken skrivare, och ett svep utan tomrum1.84.0
2026-08-27
Efter «Skriv ut» kommer nu två besked: ett direkt om att pappret ligger i kön, och ett när det faktiskt skrivs ut — «FABRIKEN skriver ut» eller «Utskriven på KONTORET».
Det andra är det man bryr sig om, och det går inte att ge direkt. Kön är en hög: är ingen agent utpekad för den sortens papper tar den som frågar först, och vilken det blir avgörs några sekunder senare av vilken dator som råkar vara ledig. Att gissa i samma stund man tryckt hade skickat någon till fel hus.
Vill ni ha svaret direkt: peka ut agenten per papperssort under Inställningar → Skrivare. Då står namnet redan i det första beskedet.
Hämtar ingen skrivare pappret inom en halv minut säger appen det. En dator som inte tagit ett papper på trettio sekunder är antagligen avstängd, och det är värt att få veta.
Svepet lämnade en tom remsa efter sig. Den gamla sidan fortsatte ut åt samma håll medan nästa hämtades, och mellan dem fanns ingenting att titta på — det såg ut som att appen tappat bort sig. Nu släpps förskjutningen på en bildruta och nästa flik glider in från samma kant, så ögat läser de två rörelserna som en enda.
Grannflikarna hämtas hem i förväg, så att koden finns när man släpper i stället för att börja laddas då.
FedEx frågade om adressen två gånger1.83.1
2026-08-27
Sa man ja till FedEx adressförslag kunde rutan komma tillbaka med ett nytt förslag direkt. Man accepterade alltså något och fick det tillbaka.
Orsaken: svarade FedEx med två gaturader — gata och en våningsangivelse — sparade appen bara den första. Nästa kontroll såg skillnaden mot deras version och föreslog samma sak igen. Nu sparas alla raderna, och då kan svaret inte skilja sig från frågan.
Och som skydd mot att det upprepar sig av något annat skäl: har man en gång sagt ja till deras version är frågan besvarad för den ordern. FedEx svar är inte alltid detsamma två gånger — de kan putsa vidare på det de själva föreslog. Knappen finns kvar för den som vill se förslaget ändå.
Fliken följer med när man drar1.83.0
2026-08-27
Svepet hände tidigare först när man släppte — man drog i ingenting och plötsligt bytte skärmen. Nu följer sidan fingret medan man drar, och man ser vilken väg den är på väg.
Släpper man för tidigt glider den tillbaka. Har man dragit nog — en femtedel av skärmen, och aldrig mer än nittio bildpunkter — fortsätter den ut åt samma håll medan nästa flik hämtas. Att låta den hoppa tillbaka till noll i samma stund man släpper får ett lyckat drag att se misslyckat ut.
Finns ingen flik åt det hållet gör draget motstånd: en fjärdedel av rörelsen, precis som en lista som dras förbi sin början. Att glida lika lätt mot en vägg som mot en granne är att lova något som inte finns.
Riktningen bestäms efter tio bildpunkter och står sedan fast hela draget. Ett finger som byter åsikt halvvägs ska inte få skärmen att göra det.
Telefonen får veta att lodrät rullning är dess och vågrät är vår. Rullningen är därmed fortfarande telefonens egen och lika mjuk som överallt annars — appen behöver aldrig ta över den.
Ligger en ruta över skärmen — ett artikelkort, skannern — sveper man inte. Den rutan är ärendet, och ett svep bakom den hade bytt flik under den.
Sökrutan ligger stilla1.82.1
2026-08-27
Två försök att fälla undan sökrutan när man rullar, två fel. Det första krympte dess höjd, och eftersom den låg i samma spalt som listan flyttade sig listan dubbelt så fort som fingret. Det andra naglade fast den överst och lät den glida undan ovanpå listan — rätt hastighet, men då låg den över raderna.
En ruta som ibland täcker det man läser är värre än en ruta som tar plats. Nu ligger sökrutan, kategorierna och sidans namn stilla som första raden i listan och rullar bort med allt annat. Vill man åt dem rullar man upp till toppen.
Ett moment mer och noll saker som kan överlappa. Det är rätt byte: en lista man kan lita på är mer värd än några bildpunkter.
Svep mellan flikarna, och rullningen i takt med fingret1.82.0
2026-08-27
Nu går det att svepa i sidled mellan flikarna: Artiklar, Inventering, Plock, Tillverkning — och sveper man vidare förbi Tillverkning landar man i Inställningar. Därifrån sveper man tillbaka samma väg; en väg som bara går åt ett håll är en fälla.
Drar man fingret åt vänster kommer nästa flik in från höger, som en sida i en bok. Samma riktning som knapparna längst ned ger.
Ett drag som börjar på kategoriraden eller på remsan i plockningen hör till dem och inte till flikarna — annars gick det inte att bläddra bland kategorierna utan att hamna på en annan sida. Två fingrar är en nypning och inget svep, och ett drag från skärmkanten är telefonens egen bakåtgest.
Rullningen kändes dubbelt så snabb som fingret så länge sökrutan var på väg bort, och normal så fort den var borta. Det var inte en känsla: rutan låg ovanför listan och krympte, och två rutor i samma spalt delar på höjden. Listan flyttade sig alltså två gånger — en gång för att man rullade, en gång för att rutan blev mindre.
Nu är sökrutan första raden i själva listan, fastnaglad överst. Listan rör sig exakt lika mycket som fingret; rutan glider undan ovanpå den. Samma sak som adressfältet i telefonens webbläsare gör, och det känns rätt av samma skäl: bara en sak rör sig åt gången.
Huvudet följer fingret1.81.1
2026-08-27
Rutan fälldes ihop i sin egen hastighet så fort man rullat tio bildpunkter. Det blev två rörelser på skärmen samtidigt — listan under fingret och huvudet i sin egen takt — och de hade ingenting med varandra att göra. Det kändes som att skärmen ryckte till.
Nu ligger huvudet på fingret. Rullar du ned tio bildpunkter går det upp tio; rullar du tillbaka kommer det ned lika mycket. Ingen övergång, ingen hastighet — det är samma rörelse som listan gör, och därför syns den inte som en rörelse alls.
Rubrikerna och sorteringsknapparna klipptes av på nedersta kanten. Höjden mättes på rutans rullhöjd, och där räknas inte sista radens undermarginal med. Nu mäts yttermåttet, och innehållet håller ihop sina marginaler.
Rullningen ritas i en animationsbild i stället för genom appen. Sextio omritningar i sekunden är för mycket för en telefon, och behövs inte: det som ändras är två stiltal på två element.
Sökrutan fälls undan när man rullar1.81.0
2026-08-27
Sökrutan, kategorierna och de två menyerna tog en tredjedel av telefonskärmen — hela tiden, också när man rullade i listan. Nu fälls de undan när man rullar nedåt och kommer tillbaka så fort man rullar uppåt.
Man behöver dem när man börjar leta och aldrig medan man rullar. Rullar man uppåt är man på väg tillbaka till dem, och då ska de vara framme innan man hunnit fram.
Loggan och knapparna står kvar. Skanna, larmen och inställningarna ska inte kräva att man rullar till toppen först.
Samma rörelse på Plock och Tillverkning, där det är rubriken som fälls undan.
Höjden mäts på det som faktiskt står där, och mäts om när det ändras — kategorierna kommer efter att sidan ritats, och en ruta som fälls ut till gårdagens höjd klipper av sig själv.
Det finns en tröskel innan den rör sig. Ett finger rullar aldrig rakt, och utan tröskeln fladdrade huvudet upp och ned på varje darrning. Överst är svaret alltid «framme» — där finns ingen yta att vinna.
Blinkningen in till Artiklar och Inventering1.80.2
2026-08-27
Startsidan visade en snurra mitt på en tom skärm tills inloggningen hunnit kontrolleras — en rundtur till servern. Kom man från Plock försvann alltså hela appen i ett ögonblick och kom tillbaka. Det var blinkningen.
Plock och Tillverkning har aldrig gjort så: de ritar sitt skal direkt och lägger snurran inuti. Nu gör startsidan detsamma — raden längst upp och flikraden längst ned står kvar hela tiden.
Innehållet glider in när det finns, en gång och inte två.
Knappen heter Skriv ut1.80.1
2026-08-27
Skrivarens namn stod på knappen. Det var fel av två skäl: vart pappret går är en inställning och inte något man väljer där, och namnet stämmer bara så länge inställningen står kvar. En knapp som säger «Verkstaden» blir en lögn den dagen någon pekar om den.
Knappen heter Skriv ut. Var pappret hamnade står i kvittot efteråt — «Skickad till Verkstaden» — och där är det sant, för det är samma besked servern just fattat.
Är ingen agent utpekad för sorten säger kvittot det rakt ut: pappret skrivs ut av den A4-skrivare som är ledig först. Finns ingen alls blir det en varning i stället för ett kvitto — pappret ligger kvar i kön tills en skrivare finns.
Skriv ut går till skrivaren igen1.80.0
2026-08-27
«Skriv ut» har hittills öppnat webbläsarens utskriftsruta på telefonen. Där finns ingen skrivare — telefonen är inte kopplad till någon — så det enda man kunnat göra är att spara en PDF. Papperet har krävt att någon går till en dator, öppnar samma sida där och skriver ut den.
Samtidigt står det redan en dator vid A4-skrivaren som gör exakt det: hämtar papper ur en kö och skriver ut dem tyst. Plocklistor och packsedlar har gått den vägen hela tiden. Nu gör tillverkningsordern, kundordern, inventeringsrapporten och streckkodsetiketterna det också.
Två knappar överallt: «Skriv ut» och «Spara som PDF». Utskriftsknappen skriver ut vilken skrivare det gäller — «Skriv ut · Verkstaden». Att svara «skickat till skrivaren» är inget svar när det står två datorer i två hus.
Har ni pekat ut en agent för den sortens papper under Inställningar → Skrivare står den. Finns bara en som klarar A4 står den. Finns flera står att det går till den som är först ledig.
Pappret ritas inte om. Skrivardatorn öppnar samma sida du tittar på och skriver ut den, så det som kommer ur skrivaren är det du såg. Två versioner av samma papper hade betytt att den ena blir fel.
Streckkodsarket bär sitt urval i adressen, så skrivardatorn får samma etiketter som du valde och inte ett tomt ark.
Inventeringsrapporten har fått en egen adress. Den ritades bara inuti inventeringsfliken, och en vy utan adress kan varken länkas eller skrivas ut av någon annan än den som står framför den.
Skrivaragenten får läsa de sidor den ska skriva ut. Bara läsa — den ska kunna se pappret och ingenting mer.
Bokningsnumret för pall ligger hopfällt. Fältet är frivilligt och används sällan, men tog halva skärmen med en förklaring man läst en gång, precis där man ska trycka Boka. Har du skrivit ett nummer står det i rubriken.
Tre skavanker i det nya huvudet1.79.1
2026-08-27
Skanna-knappen var understruken på Tillverkning. Där är den en länk till startsidans skanner, och den enda av de fyra knapparna som har text — alltså den enda som visade webbläsarens understrykning.
Blinkningen mellan flikarna är borta. Riktningen lästes i en effekt, alltså efter att sidan ritats: animeringen startade åt ena hållet, klassen rättades, och den började om åt det andra. Två rörelser i följd läses som ett hack. Nu läses riktningen när sidan ritas.
Artiklar har fått sin titel. Den var den enda av de fyra flikarna som inte sa vad den var.
Samma huvud på alla fyra flikarna1.79.0
2026-08-27
Startsidan hade sin logga och sina fyra knappar. Plock och Tillverkning hade i stället ett sidhuvud med bakåtpil och rubrik, byggt för undersidor man kliver in i och ut ur. Men de är inte undersidor — de är flikar, och en flik har man inget att gå tillbaka från. Appen såg ut som två olika appar beroende på var man stod.
Nu är raden längst upp densamma överallt: logga, uppdatera, skanna, larm, inställningar. Under den ligger det som hör sidan till — sökrutan på Artiklar, sidans namn på de tre andra.
Skanna finns därmed på alla fyra. Har sidan ingen egen skanner tar knappen dig till den som finns; en knapp som ibland saknas är svårare att lita på än en som tar ett steg.
Uppdatera gör det sidan behöver. Saldon från Fortnox på Artiklar och Inventering, en omhämtning på Plock och Tillverkning — och snurrar medan den håller på.
Bakåtpilen är borta från de fyra flikarna. Den lovade en väg tillbaka som inte fanns.
Animeringen är likadan på alla fyra. Den låg tidigare på olika ställen i de olika sidorna — på ett håll gled rubriken med, på ett annat inte. Nu glider bara innehållet, medan raden längst upp och navigeringen längst ned står stilla.
Plock och Tillverkning har samma sidram som resten av appen. På en dator satt de i en bredare spalt än startsidan, vilket är precis den sortens skillnad som får något att kännas hemmabyggt.
Flikbytet glider åt rätt håll1.78.1
2026-08-27
De fyra flikarna längst ned byttes utan att skärmen sa något om det. Nu glider den nya sidan in — från höger när man går åt höger i raden, från vänster när man går åt vänster.
Raden är hela flikarnas ordning, och riktningen är den enda uppgift som säger var man hamnat. En ren toning säger bara «något annat nu».
Att veta åt vilket håll kräver att man vet var man kom ifrån, och Plock och Tillverkning är egna sidor som inte vet det. Riktningen skrivs därför ned i samma stund man trycker och läses av sidan som öppnas.
Aderton bildpunkter, en fjärdedels sekund. Med flit lite: den som packar byter flik hundra gånger om dagen, och rörelsen ska räcka för att ögat ska följa med — inte för att synas.
Navigeringen längst ned står stilla medan innehållet glider. En fastnaglad rad som följer med i en rörelse ser ut som ett fel.
Avstängd rörelse i telefonens inställningar stänger av även den här.
Saldona i listan stämmer, och skärmen rör sig1.78.0
2026-08-27
Siffran i artikellistan kom ur appens egen kopia, och kopian skrevs bara vid en full synk — som körs för hand. Öppnade man artikeln frågades Fortnox direkt, och då stod det ett annat tal. Listan sa en sak och kortet en annan, och den som ville se om något höll på att ta slut kunde inte lita på översikten.
Nu läses saldona om varje minut, i samma avläsning som redan hämtar ordrar. Varje minut frågas bara efter det som ändrats sedan sist — oftast noll eller en sida. Var femtonde minut går hela sortimentet igenom, för Fortnox uppdaterar inte alltid en artikels ändringstidpunkt när bara lagersaldot rört sig.
Det är billigt: Fortnox listendpunkt bär saldot, femhundra artiklar per anrop. En hel genomgång är en handfull anrop, inte ett per artikel.
Under listan står hur färska siffrorna är — «Saldon uppdaterade 2 minuter sedan». Är de äldre än en halvtimme blir raden varnande, för då är det inte längre en upplysning utan ett tecken på att avläsningen slutat fungera.
Uppdatera-knappen uppe i hörnet hämtar saldon från Fortnox. Förut läste den bara om appens kopia — alltså samma tal en gång till.
Stänger man ett artikelkort läses listan om tyst. Kortet har just hämtat det rätta talet; att få tillbaka det gamla när man stängde var svårt att förstå.
Samma sak gällde inventeringen: listan visade ett tal och kortet ett annat. Det var samma orsak, och den är borta.
RÖRELSE. Rutor som glider upp underifrån i stället för att bara finnas där i nästa bildruta. Rörelsen säger två saker utan ord: den kom nedifrån, och sidan bakom finns kvar — så vet man också var krysset tar en. Bakgrunden mörknar samtidigt.
Innehållet tonar in när man byter flik, med några bildpunkters rörelse. Utan det byts hela skärmen i en bildruta och blicken måste leta upp var den var.
Knappar sjunker in en aning när man trycker. En knapp som inte rör sig känns som att den inte registrerat något, och då trycker man en gång till.
Allt är kort med flit — under en femtedels sekund. Längre än så börjar det kännas som att vänta i stället för som ett svar.
Den som stängt av rörelse i telefonens inställningar får ingen alls. Snurrorna är kvar: de säger att något pågår, och utan dem ser appen låst ut.
Genomgång av hela appen1.77.0
2026-08-27
NIO SAKER SOM VAR TRASIGA. Larmklockan uppe i hörnet visade alltid noll på varje sida utom startsidan — den läste ett fält som servern aldrig svarat med. Man såg alltså aldrig ett larm så länge man stod någon annanstans i appen.
Plocklistorna sa «Avläsningen mot Fortnox har inte kört än» varje gång sidan öppnades, medan svaret var på väg. En larmtext om att integrationen är död, som mest betydde att man var snabb.
Inloggningen sa «Inga användare upplagda än» innan den hunnit fråga. Nu står det Hämtar tills svaret kommit.
EAN-sidan kunde snurra för alltid. Gick anropet fel fanns ingen fångst, så spinnern låg kvar utan ett ord om varför. Nu står felet där, med en knapp att försöka igen.
Larmsidan kvitterade allt som lyckat. Svaret kastades bort, så ett larm som inte gick att ignorera såg ignorerat ut tills listan laddades om. Nu läses svaret.
Två snabba avbockningar kunde sudda den första. Handskannern skjuter två koder utan att släppa emellan, och den andra skrev tillbaka den första radens obockade version. Servern hade båda; skärmen visade fel, och någon plockade om.
Spara-knappen på tullsidan låg delvis bakom navigeringen på en iPhone. Alla andra fastnaglade rader räknar med hemindikatorn; den här glömdes.
Fel flik lyste i navigeringen på fyra sidor — Artiklar var markerad medan man stod i Inställningar.
Fem bakåtpilar gick fel: förpackningar, provetiketter och tullsidan pekade tillbaka till platser man inte kommit ifrån, taggar till startsidan, och kundordern alltid till tillverkningen fast man kom från fraktlistan.
SIDOR SOM INTE GICK ATT HITTA. Fyra färdiga sidor låg utan en enda länk in: veckosammanfattningen, skillnaderna mot Shopify, bokade frakter och streckkodsetiketterna. De gick bara att nå genom att skriva adressen för hand. Nu ligger de under Inställningar → Översikter, tillsammans med Historik och dess Ångra — som inte heller gick att nå.
Inställningar → Personal och → Kategorier landade på toppen av en sida med sju avsnitt. Nu hoppar de till rätt rubrik. Att de tre raderna kräver adminlösenord står nu i menyn i stället för att komma som en överraskning.
«Taggar» hette Etiketter när man kom fram — samma namn som de fysiska streckkodsetiketterna. Två olika saker, en rubrik. Nu heter de Taggar respektive Streckkodsetiketter.
Tre sidor saknade navigeringen längst ned: EAN-koder, flera platser och streckkodsetiketterna. Enda vägen vidare var bakåtpilen.
Siffran på Tillverkning syns nu på alla sidor. Den räknades bara på startsidan, så stod man i Plock såg man aldrig att nya förslag kommit in.
FÄRG PÅ KNAPPARNA. Färgerna fanns men användes på ett enda ställe. Nu har huvudåtgärder grönt, omhämtningar blått, upphämtning orange och det som inte går att ångra rött — i tillverkningen, larmen, taggarna, platserna och fraktlistan.
Det som inte går att ångra är rött på tolv ställen som var grå: ta bort användare, ta bort förpackning, ta bort bild, rensa larm, rensa notiser, ta bort taggar, ta bort ur listan, avboka hos FedEx, och de fyllda bekräftelseknapparna.
Papperskorgen är röd innan man trycker. Färgen låg bara i :active — alltså först efter att den använts, vilket är precis för sent för att hjälpa någon. Samma sak med avbryt-länken i inventeringen.
Upphämtningsknappen i fraktlistan har samma färg som den på plocksidan. Samma knapp i två toner läses som två olika saker.
Ikoner på «Hämta ordrar» och «Kontrollera nu» — samma cirkel som betyder omhämtning på andra ställen.
SMAL SKÄRM. Ett långt artikelnamn utan mellanslag sköt ut ur kortet och försvann i stället för att brytas. Nu klipps det med tre punkter, precis som underraden alltid gjort.
En klippregel som var tänkt för en enda lista slog mot varje dämpad textbit i appen och gjorde dem obrytbara. Nu gäller den bara där den skrevs.
Fyra knapprader kunde spränga sin ruta på en 320 pixlar bred skärm — knapparna lydde sin egen radbrytningsregel före den bredd de fått.
Ett långt förpackningsnamn tryckte bort krysset som tar bort det.
STÄDNING. Fyra döda CSS-regler bort — klasser som inte finns någonstans i appen, inklusive en snurra som pekade på ingenting och en felstavad selektor. Åtta dubbeldefinitioner sammanslagna, där den första alltid var död kod som såg levande ut.
Röda inline-stilar på sex ställen är nu en klass. Färgen ska stå ett ställe.
SNABBARE. Plocklistornas sida ställde tio frågor till databasen i kö, en efter en, fast ingen berodde på någon annan. Nu går de samtidigt. Samma sak för orderns fraktvy och för de två siffrorna på startsidan.
En plocklista skapades med en skrivning per rad — fyrtio rader blev fyrtio rundresor till databasen bakom ett tryck. Nu en enda. Samma sak för kollina när man är klar och trycker Skriv ut packsedel.
Inventeringen hämtade hem hela artikellistan igen efter varje saldouppdatering — upp till femtusen rader till en telefon, utan att något ändrats.
«Granska och skicka» kunde dubbeltryckas och starta två granskningar mot samma inventering. Samma sak med «Avbryt tillverkningsorder».
Skanningen på startsidan sa inte ifrån när nätet strök. Ingenting hände alls, och man skannade om i onödan.
Ett papper, inte tre1.76.1
2026-08-27
Den som rättar en order i Fortnox ändrar den flera gånger på en minut: en rad, ett antal, ett pris. Appen läser om ordern vid varje ändring, och skulle ha skrivit ett nytt plockpapper varje gång — tre papper på skrivaren där bara det sista var rätt.
Nu får ordern stå stilla nittio sekunder först. Kommer en ny ändring in börjar väntan om. Papperet kommer när någon slutat skriva, inte medan de gör det.
Den första plocklistan fungerar som förut: den kommer när ordern skrivs ut eller mejlas i Fortnox. Uppdateringar väntar däremot inte på en ny utskrift — ordern är redan släppt och någon står och plockar efter den. En lista som är fel i handen är sämre än en som kommer lite tidigt.
Ändrad order hämtas in av sig själv1.76.0
2026-08-27
Fortnox säger redan vilka ordrar som ändrats — appen frågar efter dem varje minut. Men den läste bara om raderna när leveransdatum, makulering, utskriftsläge eller fakturanummer ändrats. En order där någon lagt till en rad eller ändrat ett antal såg oförändrad ut.
Summan står med i samma svar, och den avslöjar just den sortens ändring. Nu räknas den med. Ändrar du ordern i Fortnox kommer den in i appen inom en minut, utan att någon behöver trycka på något.
Har ordern en påbörjad plocklista rättas den efter ordern och ett nytt papper går i kön — men bara om något faktiskt ändrats. Det som redan är plockat rörs aldrig.
En ändring som inte rör summan — en artikel utbytt mot en lika dyr, en text omskriven — syns fortfarande inte av sig själv. Den kommer in med knappen «Ordern har ändrats i Fortnox» längst ned i plockvyn.
Att bara skriva ut ordern igen i Fortnox räcker inte som signal. Utskriftsläget står redan som utskrivet och ändras inte av en andra utskrift — det är själva ändringen som märks, inte utskriften.
Läs om ordern när den ändrats i Fortnox1.75.0
2026-08-27
Ordern lästes en enda gång, när plocklistan skapades, och rördes sedan aldrig mer. Ändrade någon ordern i Fortnox efteråt — en rad till, ett annat antal, en rad bort — visste appen ingenting om det. Plocklistan på bordet var rätt; den i telefonen var det inte.
Längst ned i plockvyn finns nu «Ordern har ändrats i Fortnox — läs om den». Ordern hämtas hem på nytt och rundan rättas efter den.
Det som är plockat rörs aldrig. En vara i kartongen ligger där oavsett vad ordern säger nu. Antalet skrivs om, nya rader läggs sist — där man inte redan letat — och en rad som tagits bort försvinner bara om ingen hunnit röra den.
Har någon plockat en rad som nu är borta ur ordern står den kvar med noll i beställt antal, och appen säger rakt ut att varan ska tillbaka till hyllan. Att tyst låta den försvinna vore att lämna en vara i kartongen som ingen beställt.
En ny plocklista skrivs ut, men bara när något faktiskt ändrats. Ett papper till som säger samma sak som det förra är bara förvirrande.
Artikelnumret avgör vad som är samma rad, inte radnumret. Radnummer flyttar sig så fort någon lägger till en rad mitt i ordern.
Tom leveransadress erbjuder fakturaadressen1.74.0
2026-08-27
Blir leveransadressen aldrig ifylld på ordern står appen med tomma rutor. Hittills svarade den med att säga åt någon att gå till Fortnox och fylla i det som redan står där — mitt i packningen, i ett annat program, på en annan skärm.
Nu letar appen rätt på fakturaadressen i stället: först på ordern, sedan på kundkortet. Finns en fullständig adress kommer en ruta upp av sig själv med adressen i klartext och frågan om den ska användas som leveransadress. Ett tryck och den är ifylld.
Adressen sparas i appen som en rättelse, precis som när man skriver den för hand. Ordern i Fortnox rörs inte — det är kundens orderdata och inte vår.
Halva adresser erbjuds aldrig. Saknas gata, postnummer eller ort är det ingen adress utan en gissning, och den som packar ska inte behöva avgöra om hälften räcker.
Ett nej gäller den ordern, inte nästa.
Boka upphämtning ligger framme1.73.0
2026-08-27
Tredje knappen högst upp på plocksidan, bredvid Skanna plocklista och Leta efter nya ordrar. Bilen bokas i samma andetag som kartongerna blir klara, och den som står där har oftast just packat något — att gå via en orderrad för att komma åt den var en omväg.
De tre knapparna har fått varsin ton: grön, blå, orange. Tre knappar i samma grå läses som en rad text, och man måste stanna och läsa varje för att hitta den man ville trycka på. Dämpade färger — de ska hjälpa ögat, inte skrika.
Upphämtningen stod kvar på i dag efter elva1.72.1
2026-08-27
När gissningen togs bort i 1.70.1 blev det tyst åt andra hållet: en torsdag klockan halv två stod dagen kvar på torsdag, trots att sista tiden är elva.
Orsaken var vad som räknades som besked. Svarade FedEx med en lista dagar och vår dag inte stod i den lästes det som tystnad, och tystnad flyttar ingenting. Men en lista där dagen saknas är inget svar om dagen — det är ett svar om att den inte finns bland dem som går.
Nu flyttas dagen på tre besked: FedEx säger att den inte går, FedEx räknar inte upp den bland dem som går, eller FedEx svarar inte alls och klockan har passerat elva. Det sista är er egen sista tid och används bara när det inte finns något annat att gå på.
Rutan skriver ut vilket av de tre det var, med den siffra som gällde när dagen flyttades — inte den nya dagens.
Vem skriver ut vad1.72.0
2026-08-27
Kön har hittills varit en hög, inte en adress. Varje papper tas av den agent som frågar först och klarar sorten — aldrig av två, så ingenting har någonsin skrivits ut dubbelt, men vilken av två likvärdiga agenter som hinner har varit slumpen.
Det duger när båda står i samma rum. Det duger inte när den ena står i fabriken och den andra på kontoret, och tullfakturan ska ligga hos den som packar.
Under Inställningar → Skrivare går det nu att peka ut en agent per papperssort: plocklista, följesedel, restlista, tullfaktura, fraktetikett, fraktsedel. Menyn visas först när det finns mer än en agent — med bara en finns ingen fråga att svara på.
Ett val är en reservation, inte ett lås. Den utpekade agenten har fyra minuter på sig; sedan tar vem som helst som kan sorten. En dator som står avstängd ska inte kunna hålla en fraktetikett gisslan, och ett papper på fel skrivare är ett problem man löser på tio sekunder — ett papper som aldrig kommer ut syns inte alls.
I kön står det vem ett papper väntar på så länge det väntar.
Avbokningsknappen1.71.1
2026-08-27
Avbokningsknappen i ett bokat upphämtningskort stack ut trettio bildpunkter utanför rutan. Marginalen låg på knappen medan bredden räknades på kortet.
Den är röd nu. Avbokning är det enda på sidan som inte går att ångra — röd text och röd kant, men ingen röd platta: den ska hittas av den som söker den, inte dra till sig den som bara läser.
Tullfakturan skrivs ut av sig själv när ETD inte går1.71.0
2026-08-27
Går handelsfakturan inte elektroniskt skickas den nu direkt till A4-skrivaren i tre exemplar — ett till avgångstullen, ett till mottagarlandets, ett till kunden. Det är vad FedEx plastficka är gjord för.
Förut låg fakturan som en länk packaren skulle hitta, klicka på och skriva ut, mitt i det moment där man som mest vill bli klar. En sändning över en tullgräns utan handelsfaktura blir stående, och det upptäcks en vecka senare av någon annan.
En ruta lägger sig över skärmen när det händer. Den säger tre saker: att den elektroniska vägen stängdes, att pappret måste med i fickan, och att det redan ligger i kön. Allt annat från fraktbokningen går att läsa efteråt — det här gör det inte.
Länken «Papper att skriva ut» fungerar igen. Rutten släppte bara igenom etikettext, så en PDF svarade med ett fel — en faktura man inte kommer åt är samma sak som ingen faktura.
Skrivarfönstret kan skriva ut PDF. Ramen pekas rakt på dokumentet och Chrome egen visare gör jobbet, så det är FedEx faktura som hamnar hos tullen och inte vår avritning av den.
Zebran kan inte hjälpa till här: den talar ZPL och skriver 10 × 15 cm etiketter. En handelsfaktura är ett A4 med tabell och namnteckning.
Står upphämtningen på en annan dag än i dag föreslås redo 08:00 och stängning 16:00. «Om en halvtimme» är rätt svar när kartongen står här och ska tejpas klart, och fel svar om bilen ska komma i morgon. Skriver ni in en egen tid rör appen den inte mer.
Upphämtningen föreslog lördag1.70.1
2026-08-27
En torsdagseftermiddag föreslog sidan lördag — en dag FedEx inte ens hämtar. Två gissningar låg ovanpå varandra: sidan gissade «har klockan passerat elva, ta i morgon», och när FedEx sedan svarade flyttade deras besked dagen en gång till.
Gissningen är borta. Det står i dag tills FedEx säger något annat, och behöver dagen flyttas går den till nästa dag de själva säger att de hämtar — aldrig till en helg. Står det en annan dag skriver appen ut varför.
Knappraderna med FedEx redo- och senasttider är borttagna. De tog plats utan att svara på frågan.
Handelsfakturan finns alltid, inte bara när ETD lyckas1.70.0
2026-08-27
Här stod att en misslyckad ETD betyder «fakturan skrivs ut på papper som förut». Det var inte sant. Utan ETD bad appen inte om något dokument alls, så FedEx skapade ingen faktura — och en sändning över en tullgräns gick i väg utan handelsfaktura. Att det inte ställt till det ännu är tur, inte konstruktion.
Nu begärs dokumentet alltid när sändningen passerar en tull. Fungerar ETD går fakturan elektroniskt och pappret behövs inte. Fungerar den inte ligger samma faktura som PDF i svaret och packaren får en länk att skriva ut. Skillnaden mellan bra och nödlösning ska aldrig vara skillnaden mellan ett dokument och inget.
Brevhuvud och namnteckning läggs på pappersfakturan också, inte bara den elektroniska. En utskriven faktura utan dem ser ut som ett utkast.
Ordernumret står på fakturan. När tullen eller kunden ringer och undrar vilken sändning det gäller är det den uppgiften alla tre har.
Varje varurad märks företag eller konsument efter kundens typ i Fortnox. Tullen behandlar de två olika — tröskelvärden, moms och vem som är importör — och gissar de fel är det mottagaren som får reda ut det.
Inom EU ändras ingenting: ingen tull, ingen handelsfaktura. Varuuppgifterna följer med ändå, för FedEx räknar varje sändning över en gräns som internationell.
Appen läser FedEx eget schema innan den frågar dem1.69.0
2026-08-27
Varje anrop till FedEx kontrolleras nu mot FedEx egen specifikation innan det skickas. Deras scheman ligger publicerade; det som saknats är att vi läser dem. Ett värde utanför deras lista, en text längre än fältet rymmer eller ett tal skickat som text stoppas här, med ett svenskt besked som säger vilket fält det gäller — i stället för en kod på skärmen när någon står med kartongen.
Första gången kontrollen kördes hittade den felet vi jagat i veckor: i prisförfrågan tar FedEx emot ett enda värde för vem som betalar tullen — SENDER. Vi skickade RECIPIENT, för det är så ni säljer. Därför avvisades varje fullständig prisförfrågan över en gräns, medan bokningen gick igenom. Fältet har ingenting med fraktpriset att göra och är borttaget ur prisfrågan. Notisen om «förenklad förfrågan» bör vara borta.
Handelsfakturan skickas nu med i bokningen. FedEx schema kräver den tillsammans med tulluppgifterna, och vi har inte skickat den alls — de har skrivit den åt oss ur varuraderna. Nu står det uttryckligen att varorna är sålda och att villkoret är DAP när mottagaren betalar tullen, DDP när ni gör det.
Totalvikten följer med varje sändning, inte bara pall. FedEx räknade ihop den åt oss för paket. Det är en tjänst de gör, inte en regel de lovat följa.
Ett prov, verktyg/fraktprov.mjs, kör hela flödet — pris, bokning, adresskontroll, upphämtning — för sex sträckor utan att röra FedEx, och håller varje anrop mot schemat. Tjugo anrop, noll avvikelser.
Upphämtningen: tiderna, namnet och listan1.69.0
2026-08-27
«Package is not accessible for the requested pickup time» handlar aldrig om paketet. Det betyder att tiderna inte går ihop, och FedEx säger inte vilken av dem. Nu jämför appen mot deras egna svar innan bokningen: stängning före redo, redo som inte ligger före deras sista tid, och ett fönster kortare än det de behöver. Går det inte ihop står det varför, med en knapp som rättar tiden.
Sista tiden ska passeras med marginal, inte träffas på minuten. 11:00 mot en sista tid 11:00 nekas. Appen varnade bara när tiden var senare än deras — nu även när den är lika.
FedEx egna tider ligger som knappar under klockslagen. De har räknat ut vilka tider som går; att skriva in en av dem för hand är ett moment för mycket, och den handskrivna blir fel.
«Chauffören frågar efter» — samma sak som Shipmondo kallar attn. Förifyllt med förnamnet på den som är inloggad, för det är den som står på kajen när bilen kommer.
Nekas bokningen ändå frågar appen FedEx en gång till om dagens tider och skriver ut dem i felet, i stället för att lämna kvar en engelsk mening att gissa på.
Bokade upphämtningar ligger hopfällda: dag, fönster och bekräftelsekod på en rad, resten bakom ett tryck. Med luft ned till formuläret, så att de två inte längre ser ut att höra ihop.
Prisförfrågan saknade varuuppgifterna1.68.0
2026-08-27
RATE.CUSTOMSCLEARANCEDETAIL.INVALID var mitt fel, och det gällde varje sändning över en gräns — pall eller inte. FedEx skriver i sin egen beskrivning av fältet, ordagrant: «Customs commodity data is required for international and intra-country rating.» Jag läste det som något som hörde till bokningen och lämnade det ute ur prisförfrågan. Nu följer varuuppgifterna med även när vi bara frågar om priset.
Det förklarar också varför priserna ändå kom fram: trappan skalade bort annat tills något gick igenom, så felet såg ut att handla om det som skalats bort. Med varuuppgifterna på plats bör den fullständiga förfrågan gå igenom på första försöket.
Adressförslaget kommer upp av sig själv. Ett förslag bakom en knapp är ett förslag ingen läser. Säger du «Behåll vår adress» kommer det inte tillbaka — men ändras adressen, eller ändrar FedEx sig, är det ett nytt förslag och då frågar appen igen.
«Använd FedEx adress» sparar direkt. Att fylla i rutorna och sedan kräva ett andra tryck var att fråga två gånger om samma sak.
Notisen om en förenklad förfrågan ligger längst ned, hopfälld och nedtonad. Den öppnar sig och blir röd bara om priserna uteblev — så länge det fungerar behöver ingen se den.
Adressförslaget som en riktig fråga1.67.0
2026-08-27
FedEx förslag på adressen visas nu i en egen ruta med båda versionerna bredvid varandra — er stavning överstruken, deras i klartext, ett fält i taget. Två vägar ut: «Använd FedEx adress» eller «Behåll vår adress», ingen förvald. De har oftast rätt, och det är ett beslut som förtjänar mer än en länk i kanten av ett kort.
Väljer du deras öppnas adressrutan ifylld. Inget sparas förrän du trycker Spara adressen, så det går att ändra sig hela vägen.
Notisen om att FedEx behövde en förenklad prisförfrågan är ihopfälld. Priserna kom fram — det är en anteckning för den som en dag undrar varför en förfrågan tar en sekund extra, inte något som ska stå i vägen för den som bara ska boka.
«Delivery» var aldrig en delstat1.66.0
2026-08-27
Orsaken till allt strul: jag läste Fortnox fält DeliveryState som om det vore en delstat. Det är det inte — det är orderns leveransstatus. Varje order fick därför ordet «Delivery» i delstatsfältet, och FedEx svarade MAXCHAREXCEEDED på adresser som var alldeles riktiga. Det förklarar både USA och Nederländerna, och varför felet följde med överallt.
Fältet läses inte längre. Fortnox orderadress har ingen delstat — den uppgiften finns bara om någon skriver in den, och det är precis vad appen frågar efter när landet kräver den.
Gammal skräpdata städas bort automatiskt vid uppstart. Allt som inte ser ut som en delstatskod nollas; har någon hunnit skriva in CA för hand står det kvar.
Adresskontrollen fick samma delstat och nekade av samma skäl — därför «kontrollen gick inte» på båda ordrarna. Nu skickas ingen delstat som inte går att skicka, och kontrollen får en riktig adress att svara på.
Rutan för delstat står kvar när landet kräver den, även när den är tom. Förut försvann den i samma stund man rensade den, och gick då inte att fylla i igen. Hjälptexten säger nu om fältet krävs för landet eller kan lämnas tomt.
Meddelandet om upphämtningssätt visas bara när det verkligen var det som ändrades. Förut föreslog det ett byte till det värde som redan stod där.
Delstaten skickas bara när den går att skicka1.65.0
2026-08-27
MAXCHAREXCEEDED berodde på att appen skickade delstaten som text. Fältet hos FedEx tar två eller tre bokstäver, så «Noord-Holland» sprängde det — och felet handlar om längd men låter som något helt annat. Nu översätts värdet till en kod, och går det inte utelämnas fältet helt. Det förklarar varför även Nederländerna gav samma fel: adressen var rätt, det var appen som stoppade in en provins där FedEx ville ha en kod.
Svenska namn fungerar. «Kalifornien» blir CA, «Québec» blir QC, med eller utan accent.
Rutan för delstat finns nu där den behövs — inte bara för tre länder. Står det redan något i den går den att rätta oavsett land, för det är just det värdet FedEx klagar på.
Koderna går att välja i stället för att kunnas utantill. Börja skriva i rutan så föreslås landets koder med namn.
Bokningen stoppas med besked om delstaten inte går att använda, i stället för att FedEx säger MAXCHAREXCEEDED efteråt.
Adresskontrollen ber nu FedEx om detaljerna kring vad de ändrat — utan det svarar de med en rättad adress men säger inte vad de rättade, och det var just det appen skulle visa. Ett transaktions-id följer med varje anrop, som FedEx dokumentation föreskriver. Går kontrollen ändå inte står deras felkod utskriven.
Felet kom från mitt eget sista trappsteg1.64.0
2026-08-27
PICKUPTYPE.REQUIRED var självförvållat. Sista steget i trappan som letar efter ett prissvar tog bort upphämtningssättet helt — ett fält FedEx kräver. Steget kunde alltså aldrig lyckas, och eftersom det låg sist blev dess fel också det som rapporterades. Det dolde varför de tidigare stegen nekats.
Nu provas andra upphämtningssätt i stället för inget. Har kontot ingen stående upphämtning är det fältets innehåll som är fel, inte att det finns.
Felet som visas är det första, inte det sista. De senare stegen har redan skalat bort saker, så deras fel handlar om en förfrågan ingen bad om. Alla koder trappan såg står med, så inget försvinner ur felsökningen.
Behövde trappan gå en omväg för att få svar står det i vyn, tillsammans med miljövariabeln som gör omvägen onödig. En omväg kostar väntetid vid varje bokning.
FedEx-loggan syntes inte. Filen hade inga mått i sig, och en SVG utan width och height får ingen egen storlek i en bild — med height:auto räknar flera webbläsare ut noll. Den laddades, ritades, och var osynlig.
Adresskontrollen säger inte längre att den är avstängd när den inte är det. «Inte påslagen» sparas för när FedEx faktiskt svarar så; annars står det vad de sa. Att skickas iväg för att slå på något som redan är på är sämre än att få veta orsaken.
Hoppar du över frakten står allt kvar när du kommer tillbaka1.63.0
2026-08-26
En avslutad runda öppnas i fraktsteget, inte i avslutet. Förut fick man skriva in vikt och mått en gång till och trycka «Klart — skriv ut packsedel» igen bara för att komma dit, vilket gav en andra packsedel i skrivaren för en kartong som redan var packad. Nu fylls kollina i från det som står i databasen och priserna hämtas direkt.
«Ändra vikt och mått» tar dig tillbaka till kollina utan att röra papperen. Kartongen kan ha packats om — en vara till, en annan låda — och att rätta en vikt ska inte kosta ett papper. Knappen där heter «Spara vikterna och gå till frakten».
Behöver du ändå en ny packsedel finns «Skriv ut packsedeln igen» bredvid, som ett eget val.
«Uppdatera priser» på fraktsidan. Priser hämtas när sidan öppnas, och står kartongen kvar en stund — eller svarade FedEx inte första gången — vill man kunna fråga igen utan att gå ur och in.
«Prislistan svarar inte» var delvis mitt fel1.62.0
2026-08-26
Anropen till FedEx hade ingen tidsgräns. Hängde de sig väntade appen tills Vercel stängde av funktionen efter en minut — och då dog hela svaret, inte bara priserna. Det såg ut som ett nej från FedEx fast ingen hunnit säga någonting. Nu har varje anrop tolv sekunder.
Trappan som provar sig fram till ett svar hade blivit för lång. Sex steg med ett omförsök vardera blir tolv anrop, och tolv anrop mot en trög dag hos FedEx tar längre tid än en funktion får leva. Nu har hela trappan en budget på 25 sekunder, och inga omförsök inne i den — nästa steg är omförsöket.
Leveransdagen frågas bara om det finns tid kvar. Priserna är redan i hus då, och en dag är inte värd att riskera hela svaret för.
Felet säger vad som hände. «Svarade inte i tid» och «FedEx sa nej» är olika saker och kräver olika åtgärder — det första löser sig oftast på ett andra försök. FedEx felkod står med, så den går att söka på tillsammans med dem.
Adresskontrollen syns även när den inte går att göra. Är den inte påslagen på FedEx-kontot stod det förut ingenting alls, och då gick det inte att skilja «adressen är bra» från «ingen har tittat».
Delstat, adresshjälp och en handelsfaktura som inte låtsas1.61.0
2026-08-26
En adress i USA, Kanada eller Australien kan nu ha delstat. Fältet fanns inte — Sverige har inget motsvarande — och FedEx svarade att stateOrProvinceCode var fel eller för långt, vilket lät som något var fel i stället för att något saknades. Nu finns rutan, den syns bara för de länder som kräver den, och skriver du California blir det CA.
Ny adresshjälp. Efter varje bokningsförberedelse slår FedEx upp adressen mot postens register och appen visar vad de läser: rättad stavning, saknad delstat, postbox, och deras egna besked om att lägenhetsnummer eller husnummer fattas. Ett förslag, aldrig ett hinder — en ny gata finns inte i registret, och den som packar vet oftare än registret. Knappen «Använd FedEx stavning» fyller i deras version.
Handelsfakturan säger inte längre «elektroniskt till tullen» om en sändning inom EU. EU är en tullunion: Borås–Amsterdam passerar ingen tull, och då finns ingen att skicka fakturan till. Nu står det «behövs inte — inom EU», och de elektroniska dokumenten begärs bara där de betyder något.
Bokningsnumret för pall är valfritt. Appen krävde det, men det var fältet FedEx saknade, inte ett riktigt nummer — er pall till Amsterdam gick igenom med fem nollor. Att tvinga fram ett påhittat nummer är sämre än att lämna det tomt. Blocket följer med som förut, numret bara när det finns.
Fraktraden i Fortnox syns efter bokningen — vad som skrevs, eller varför det inte gick. Förut hände det tyst, och en order som faktureras utan frakt är svår att rätta i efterhand. Saknar ordern valuta hämtas den nu från Fortnox på plats i stället för att raden hoppas över.
Fraktalternativen har fått en egen form: bolagets märke till vänster, tjänsten och leveransdagen i mitten, priset till höger med listpriset överstruket när avtalet ger rabatt. Märket ligger först för den dag listan innehåller mer än ett bolag.
Upphämtningen väljer nästa dag när dagens sista tid passerat. FedEx egen sista tid går före klockslaget appen annars antar, och att dagen flyttats fram står utskrivet.
Efter en bokning med elektronisk faktura visas FedEx kvittens. Att bokningen inte nekades är inte samma sak som att fakturan ligger hos tullen — nu står mapp-id:t de svarar med, eller att det saknas.
Uppladdningen enligt FedEx egen ritning1.60.0
2026-08-26
Jag hade lagt arbetsflödets namn på fel ställe. Det ligger i ett eget rules-objekt vid sidan av dokumentet, inte inne i det — och FedEx svarade samma sak oavsett vilket, «invalid input : WorkFlow Name», utan att peka ut vad som var fel. Nu skickas anropet ordagrant som FedEx eget exempel i deras specifikation för dokumenttjänsten.
Bildtypen heter LETTERHEAD i uppladdningen och LETTER_HEAD i bokningen. Samma sak, två stavningar, två gränssnitt som inte är överens — inget man gissar sig till. Nu används rätt stavning på rätt ställe.
Ett svar med FAILURE i räknas inte längre som lyckat. FedEx kan svara 200 och ändå säga nej i texten, och en bild som inte kom fram ska inte sparas som om den gjorde det.
Kommer det fortfarande ett fel efter det här är det inte formen på anropet — då är det kontot, och det slår FedEx kontaktperson på.
VOEC bara till privatpersoner, och uppladdningen fungerar1.59.0
2026-08-26
Uppladdningen av brevhuvud och namnteckning saknade arbetsflödets namn. FedEx svarade «invalid input : WorkFlow Name», vilket är deras sätt att fråga vad uppladdningen är till för. Nu står det med. Bildtypen stavas dessutom olika i FedEx två gränssnitt — med och utan understreck — så appen provar båda i stället för att gissa.
VOEC följer bara med till privatpersoner. Skatteetaten skriver rakt ut att ordningen bara gäller försäljning till konsument: man kan inte sälja till företag inom VOEC. Appen läser kundens form ur Fortnox och utelämnar numret på en företagssändning. Vet appen inte vilket det är skickas det inte heller — hellre en avi till kunden än moms två gånger.
VOEC-numret måste vara sju siffror och inget annat. Ett nummer med prefix eller bindestreck skickas inte, för ett oläsbart nummer ger samma dubbelmoms som inget nummer alls.
Mottagarens momsnummer går med på företagssändningar. Tullen vill veta vem som importerar, och utan det kan sändningen bli stående medan mäklaren ringer och frågar.
Navigeringen längst ned svävade innanför ramen på datorn. Ramen räknade in en marginal som sidan redan hade, blev tjugo bildpunkter för hög och stack ut under fönsterkanten — medan menyn satt där ramen borde ha slutat. Nu slutar de på samma rad.
Valutan fanns inte, och det märktes inte1.58.0
2026-08-26
Appen kände inte till orderns valuta. Den fanns inte i databasen, så allt räknades som kronor: en order i euro fick ett tullvärde nio gånger för lågt på handelsfakturan, och fraktkostnaden hämtades i kronor. Nu läses valutan från Fortnox och följer med genom hela kedjan.
Fraktpriset hämtas i orderns valuta. FedEx räknar om åt oss — det är enda sättet att få ett belopp som går att skriva på en order i euro utan att någon gissar en kurs.
Avrundningen har ett eget steg per valuta. Femtio kronor är en rimlig knuff uppåt på en frakt; femtio euro vore ett påslag på ett par hundra procent. Grundstegen är 50 för SEK, NOK och DKK, 5 för EUR, GBP, USD och CHF, och de går att ändra per valuta i inställningarna.
Svarar FedEx i en annan valuta än ordern skrivs ingen fraktrad alls. Ett belopp på en orderrad har ingen egen valuta — det ärver orderns, och 650 kronor inskrivet på en eurorder blir 650 euro. Det syns inte, det bara blir fel.
Uppladdningen av brevhuvud och namnteckning kraschade med «map is not a function». Felavläsningen antog att FedEx alltid svarar med en lista av fel, och när de svarade med ett enda fel eller med en HTML-sida dog avläsningen — så FedEx riktiga besked kom aldrig fram. Nu tas svaret som det kommer, och står det något begripligt i det visas det.
Frakten hamnar på ordern, och numren följer landet1.57.0
2026-08-26
Frakten läggs som en artikelrad på kundordern i Fortnox när sändningen bokats. Artikel 100, benämning enligt tjänsten ni valde, priset avrundat uppåt till närmaste femtiolapp. Bokas frakten om ändras raden i stället för att en andra läggas till.
Det är den enda skrivning appen gör i en kundorder, och spärren mot allt annat står kvar. Fortnox byter ut hela radlistan vid en uppdatering, så alla rader måste skickas tillbaka — därför granskas kroppen fält för fält innan den går iväg: bara OrderRows får röras, varje gammal rad måste ha kvar sitt radnummer, och exakt en rad får vara ny. Stämmer inte det skickas ingenting.
Ett fel från Fortnox stoppar inte bokningen. Kartongen är etiketterad och på väg — en makulerad eller redan fakturerad order sägs som en anmärkning efteråt.
Numren som säger vem exportören är har blivit en lista. Ett företag som skickar åt flera håll har flera nummer, och de gäller inte överallt: ett brittiskt EORI är oanvändbart på en sändning till Norge. Varje nummer bär med sig vilket land det gäller för, och finns ett landsspecifikt används det i stället för det allmänna av samma sort.
VOEC går att lägga in. Men VOEC har ingen egen kod i FedEx API — appen skickar det som ett nationellt företagsnummer med texten VOEC, och det bör bekräftas med FedEx innan någon litar på att norsk moms hanteras rätt. Det står också i appen.
Vem som betalar tull och moms syns och går att ändra. Ni skickar DAP — mottagaren betalar — och har alltid gjort det; det stod bara ingenstans. Fraktkostnaden är en annan sak och betalas alltid av er, och det är den hopblandningen som gör att någon tror sig skicka DAP men skickar DDP.
Filväljaren för brevhuvud och namnteckning gick inte att trycka på. Den låg gömd med display:none, och en ruta som inte ritas alls går inte att träffa i Safari på iPhone — knappen såg ut att fungera men öppnade ingenting. Nu ligger filrutan genomskinlig ovanpå knappen, och det är den man träffar.
Moms och EORI, och besked om avläsningen1.56.0
2026-08-26
Momsnummer och EORI går med i sändningen. De ligger under Inställningar → FedEx och skickas som egna fält — tullen läser fälten, inte brevhuvudet, och ett nummer som bara står som text i toppen av en PDF är för dem osynligt. EORI krävs vid export ut ur EU, alltså varje sändning till Norge.
Plocksidan visar när avläsningen mot Fortnox senast kördes. Appen frågar inte Fortnox själv — en schemaläggare utanför appen anropar avläsningen varje minut. Slutar den fungera kommer det inga plocklistor, och ingenting går sönder på ett sätt någon märker. Har det gått mer än tio minuter står det i varningsfärg.
Går den elektroniska fakturan inte igenom säger appen nu vilken av de två orsakerna det är: saknas brevhuvud eller namnteckning står det var man laddar upp dem, och handlar felet om något annat står det att kontot troligen saknar elektroniska handelsdokument för API:et — det kan bara FedEx slå på.
Bilderna skickas med providedImageType, som FedEx egna exempel gör. Ett fält de väntar sig är billigare att skicka än att felsöka.
En packad order står inte kvar när frakten är bokad1.55.0
2026-08-26
En order med bokad frakt försvinner ur Packat och står bara under Bokat. Att stå på två ställen gjorde att samma order räknades två gånger när man tittade på vad som återstod.
Packat har fått en siffra, som Pågår. Bokat får ingen — det är en historik, inte en hög att beta av.
Rutorna för dag och tid är inte längre lika breda som ett textfält. Ett textfält är brett för att man inte vet hur mycket som ska skrivas i det; i en datumruta får aldrig mer än ett datum plats. Full bredd gjorde dem stora utan att göra dem användbarare.
Boka upphämtning såg avstängd ut. Den grå knappen är den man kan strunta i — den här är nästa steg, och har fått husets färg.
Texten om brevhuvud och namnteckning säger vad de är. Brevhuvud är den smala remsan högst upp på ett brevpapper: logga, företagsnamn och adress. Namnteckning är underskriften längst ned. Tullen godtar den elektroniska fakturan bara om den ser ut som en riktig faktura från er, och FedEx har varken det ena eller det andra.
Skannerknappen, papperskorgen och den elektroniska fakturan1.54.0
2026-08-26
Knappen Skanna plocklista gjorde ingenting. Skannerrutan föll bort när sidan gjordes om i 1.49 — knappen satte sitt läge, men det fanns ingenting kvar som lyssnade på läget. Mitt fel, och precis den sortens fel ett bygge inte fångar: koden är giltig, den gör bara inget. Den fungerar igen, och har fått en streckkod på sig. Leta efter nya ordrar har fått en cirkel.
Ordrar går att ta bort ur Packat och Bokat. Avbryts en order efter att den packats eller frakten bokats ska raden gå att få bort ur vägen. Den raderas inte — plockningen är gjord, saldot är skrivet till Fortnox och spårningsnumret kan behöva slås upp långt efteråt. Den syns bara inte längre.
Tar du bort en bokad frakt som inte är avbokad hos FedEx sägs det rakt ut. En etikett som är borta ur appen är inte borta hos FedEx: kartongen åker om någon lämnar in den, och fakturan kommer.
Elektronisk handelsfaktura: nu vet vi varför den nekades. FedEx svarade «This COMMERCIAL_INVOICE requires electronic image», och det saknades varken ett fält eller ett tillstånd — det saknades två bilder. De flesta länder som tar emot elektroniska handelsdokument kräver att fakturan är undertecknad och står på företagets brevpapper, och en faktura FedEx skapar åt oss kan inte uppfylla det av sig själv. Under Inställningar → FedEx laddar du upp brevhuvud och namnteckning en gång, så följer de med varje sändning.
Måtten är FedEx krav, inte mina: brevhuvud 700 × 50 bildpunkter, namnteckning 240 × 25, PNG eller GIF. En större bild blir inte finare, den blir avvisad. Fungerar det ändå inte är nästa fråga om kontot har elektroniska handelsdokument påslaget för API:et — det slår er kontaktperson på hos FedEx.
Leveransdagen letas fram i stället för att pekas ut. Jag har försökt räkna upp ställena FedEx lägger datumet på och fått fel varje gång; listan blir aldrig komplett, bara längre. Nu gås hela svaret igenom och varje fält vars namn handlar om leverans eller dagar plockas upp, var i trädet det än ligger. TWO_DAYS blir «2 arbetsdagar».
Rutorna för dag och tid ser ut som alla andra fält. De stod inte med bland fälten appen formger och fick därför webbläsarens egen utstyrsel — annan ram, annan höjd, annan storlek än fältet ovanför.
Appen flyttar hem till databasen1.53.0
2026-08-26
Appen kördes i Washington medan databasen står i Frankfurt. Varje enskild fråga gick över Atlanten och tillbaka — 93 millisekunder, mätt — och ett sidanrop ställer sällan bara en fråga. Nu körs den i Frankfurt, samma stad som databasen. Resan blir någon millisekund i stället för hundra, och det kostar ingenting.
Frankfurt och inte Stockholm, trots att ni står i Borås: en förfrågan från telefonen är en resa till servern, men servern gör flera resor till databasen för att svara. Den korta sträckan ska ligga där det är flest resor.
Listan över bokade upphämtningar står först på telefonen, med Avboka direkt på kortet. Kommer du från en bokad frakt står formuläret först i stället — då är det formuläret du kom för.
Rutorna för dag och tid sprängde kortet på en telefon. En datum- eller klockruta har en egen minsta bredd som webbläsaren räknar fram, och den lyder den före sin egen bredd. Nu får de krympa.
Upphämtningsknapparna har fått en lastbil. Bilden säger vad det handlar om fortare än ordet gör.
FedEx besked om upphämtningen står på svenska.
Plocket svarar direkt1.52.0
2026-08-26
Plockad-knappen väntar inte längre på servern. Förut gjorde ett tryck två resor — spara raden, hämta hela rundan igen — och under tiden stod knappen kvar och såg otryckt ut. Nu bockas raden av på skärmen i samma stund du trycker, och sparandet sker under tiden. Mätt med en trög uppkoppling: från 1,3 sekunder till en tiondel.
Säger servern nej rullas raden tillbaka och det syns. Ingen rad kan bli avbockad på skärmen men oplockad i verkligheten.
Spärr mot dubbeltryck. Nu när nästa artikel kommer upp direkt sitter en ny knapp där fingret nyss var, och ett andra tryck hade bockat av en vara ingen tagit ur hyllan. Knappen är död en halv sekund efter varje tryck. Skannern är oberörd — där är varje kod en vara någon hållit i handen.
Klart väntar in avbockningar som ännu är på väg. Annars kunde en runda avslutas med sista raden i luften, och då hade det skrivits en restlista på varor som redan låg i kartongen.
Upphämtning går att boka direkt från en bokad frakt. Öppna sändningen i listan — står det ingen upphämtning finns knappen där, med antal kollin och vikt hämtade ur rundan. Finns det redan en står dagen och koden i stället.
Redo-tiden börjar en halvtimme fram från nu, och stängningstiden är 16:00. Ingen är redo just i stunden man trycker, och en tid som passerat nekas av FedEx.
Rutorna för dag och tid är större. Webbläsarens datumrutor krymper till innehållet och blev frimärken bredvid ett vanligt textfält.
De tre rutorna med FedEx tider är borta. Att en tid är möjlig behöver ingen läsa — att den inte är det står kvar, och bara då.
Ny rad under Inställningar: Serverns svarstid. Tryck så mäts avståndet till databasen, och det står var appen körs och var databasen står. Frågan om servern är långsam ska gå att besvara med en siffra.
Någon måste komma och hämta kartongen1.51.0
2026-08-26
Ny sida: Upphämtning. En fraktetikett säger var kartongen ska. Den säger ingenting om att någon ska komma och hämta den — utan en bokad upphämtning står den kvar på kajen tills någon ringer. Nu bokas bilen i appen: dag, tid, antal kollin, vikt, var godset står och en rad till chauffören.
Sidan frågar FedEx vad de klarar innan du bokar. Senaste tid att vara redo, minsta fönster mellan redo och stängning, och vilken tid de annars antar. En bokning med för kort fönster nekas — ibland genom att bilen bara inte kommer — och det ska synas innan, inte efter.
Efter varje bokad frakt kommer frågan om upphämtning, med antal kollin och vikt redan ifyllda. Kommer bilen ändå behöver du inte göra något; annars är det ett tryck.
Upphämtningar går att avboka, precis som sändningar. Platskoden FedEx svarar med sparas — utan den går bokningen inte att ångra.
Leveransdagen syns igen på fraktalternativen. Priset hämtas i en trappa där tjänster skalas bort tills FedEx svarar, och i den trappan föll leveransdagen bort på steg två. Nu frågas dagen separat, på den förfrågan som faktiskt gick igenom — och priset står kvar även om dagen uteblir.
Kugghjulet under Artiklar och Inventering gjorde ingenting. Inställningarna flyttade till en egen sida i 1.49, men knappen på startsidan anropade fortfarande luckan som togs bort. Den är en länk nu. Kuggen syns inte längre när du redan står på inställningssidan.
Formulär blir inte bättre av att bli bredare. På datorn ligger formuläret i en spalt och listan i den andra, i stället för att ett textfält sträcker sig över hela skärmen.
Vågen har rätt, och priserna kommer fram1.50.0
2026-08-26
Bokningen stoppades av att varorna vägde mer än paketet. Det var artikelregistrets vikter som var fel, inte er våg — och FedEx nekar hela sändningen när summan av varuvikterna överstiger kollits. Nu vet bokningen om den vägda vikten och skalar ned varuvikterna proportionellt tills de får plats under den. Väger paketet 4,2 kg så väger innehållet 4,2 kg, oavsett vad registret tror.
Prisförfrågan ger sig inte längre vid första nej. FedEx svarar ofta "We are unable to process this request" utan att säga vilket fält de inte tyckte om, och då stod det "pris okänt" på varje rad. Nu skalas förfrågan av steg för steg — leveransdag, deklarerat värde, önskad valuta, listpris, upphämtningstyp — och det första steg som går igenom får svara.
Priset läses från fler ställen i svaret. FedEx lägger summan olika beroende på tjänst och konto, och läste vi bara ett ställe blev raden prislös fast svaret var fullgott.
Tillbaka-knappen går tillbaka dit du kom ifrån, överallt. Förut hoppade den till en fast sida, vilket ibland var någon helt annanstans än där du var.
"Lägg till förpackning" ligger överst på förpackningssidan. Att scrolla förbi hela listan för att komma åt knappen var onödigt varje gång.
Inställningarna samlade, och en bredd för hela appen1.49.0
2026-08-26
Ny sida: Inställningar. Allt som ställs in en gång ligger där, grupperat efter vad det rör — kopplingar, utskrift, frakt, artiklar, lager. En rad per sak, med en förklaring under så att man ser vad det är utan att öppna det.
Förpackningar och mått låg under Skrivare, för att det var där skrivaren fanns när de byggdes. Nu ligger de under Utskrift, tillsammans med agenterna och programmet.
Skrivaragenterna, nedladdningslänken och provetiketterna för FedEx-certifieringen har flyttat dit också. Fliken Skrivare under Plock visar bara kön och läget — det är driftinformation, inte inställningar, och blandat gick ingetdera att hitta.
Startsidans länklista är kortad från elva rader till sex. Kvar är det som används i veckan.
En bredd för hela appen. Startsidan var 520 pixlar och undersidorna 760, så samma app såg ut som en smal remsa på ett ställe och tog hela skärmen på ett annat. Nu 1120 på en dator, med två kolumner där listorna annars blivit mest tomrum. Telefonen är oförändrad — den är hemmaplan.
Produktbilderna kommer med på papperen igen. Bilderna kräver inloggning, och skrivaragenten är inte inloggad som någon människa — den fick 401 och papperen kom ut med tomma rutor. Nu bär bildernas adresser agentens nyckel.
Packsedeln är alltid på engelska. Den ligger i kartongen och läses lika ofta i Amsterdam som i Borås. Plocklistan och restlistan stannar i huset och är svenska.
Varningen om att vikterna skiljer sig är borttagen.
Papperen ritas från en enda mall1.48.0
2026-08-26
Jag byggde en egen design i stället för att återge er, och det blev fel. Nu finns bara en uppsättning stilar — samma fil, samma klassnamn, samma ordning på elementen. Sidan agenten hämtar och sidan appen visar är samma dokument, och kan inte längre glida isär.
Streckkoden är tillbaka på plocklistan och restlistan. Den saknades helt i den nya varianten, och det är den man skannar för att öppna rundan i telefonen.
Produktbilderna, kryssrutorna, kategorirubrikerna med radantal, restnotiserna, vem som plockade vilken rad och när — allt är tillbaka.
Raderna som förut var flexrader ritas nu som tabeller, både i appen och på pappret. Utskriftsmotorn i Windows kan inte flexbox men ritar tabeller exakt, och samma markering i båda är det enda som håller dem lika.
Provutskriften i agenten skickar nu en av varje sort datorn sköter. Är A4 påslaget kommer en provsida på papper också, som kontrollerar hela kedjan: att agenten når appen, att motorn ritar, att rätt skrivare fick papperet och att inga webbadresser står i hörnen.
Papperen ser ut som förut igen1.47.1
2026-08-26
Den nya utskriftssidan var funktionell men trist. Nu följer den samma uppställning som förut: loggan i hörnet med linjen under, uppgifterna två och två, siffror högerställda med tunna linjer mellan raderna, kategorirubriker i grått mellan hyllorna.
Packsedeln har tillbaka rutan överst med antal kollin, totalvikt och vem som plockade — det man kontrollerar först när kartongen står på vågen.
Restlistan har tillbaka sin orange ruta som säger hur många rader som inte blev fullt plockade.
Signaturraden är tillbaka: namn och datum tryckta med linje under, eller tomma linjer att fylla i för hand på plocklistan.
Allt ritat i tabeller i stället för rutnät. Utskriftsmotorn i Windows ritar tabeller exakt och rutnät ungefär, och ett papper som går till kund ska inte vara ungefär.
Skrivaragentens inställningar rullar nu. På en skärm med förstoring växte fälten ur fönstret utan att gå att nå.
Programikonen är hela ordmärket i alla storlekar, inte bara X:et i de små.
Skrivaragenten skriver ut A4 själv — ingen webbläsare kvar1.47.0
2026-08-26
Programmet ritar nu papperen själv, med utskriftsmotorn som följer med Windows. Ingen webbläsare öppnas, ingenting syns på skärmen. En ruta per dator, och den rutan är programmet.
Motorn är gammal och kan inte flexbox eller React, så appen har en egen enkel utskriftssida i tabellform med exakt samma innehåll. Den läser samma data som den vanliga utskriftssidan och säger samma sak.
Sidhuvud och sidfot nollställs innan utskrift. Utan det trycker motorn webbadressen och sidnumret i hörnen, och en packsedel som går till kund ska inte ha en adressrad på sig.
A4-skrivaren väljs i programmet. Lämnas den tom går papperet till datorns standardskrivare, vilket är det vanliga fallet. Är den ifylld byts standardskrivaren tillfälligt och byts tillbaka efteråt.
Programmet frågar bara efter den sorts papper det kan skriva ut, så kontoret och fabriken kan dela kö utan att ta varandras jobb.
Nytt utseende: appens färger, Texsolv-loggan i huvudet, en lägesrad som är grön när det väntar, gul när det skriver ut och röd när något gick fel. Egen ikon i aktivitetsfältet.
Ert ordernummer står nu på papperen. Det saknades, och det är det numret kunden själv känner igen.
Leveransadressen går att rätta, och varnar innan plockningen börjar1.46.0
2026-08-26
Saknas adressen syns det redan i plocklistan, som en röd markering på raden. Förut upptäcktes det när kartongen stod packad och någon väntade på en etikett.
Adressen visas överst i fraktsteget och går att ändra där. Rättelsen gäller framför Fortnox och följer med ordern, så en delleverans i andra omgången får samma adress. Fortnox rörs inte — ska den stå rätt även där får någon skriva in den där också.
En rättad adress är märkt som rättad. En uppgift någon tagit ställning till ska inte se ut som en som råkade komma med.
Leveransdagen står nu på fraktalternativen. FedEx skickar den bara om man ber om den, och det gjorde appen inte — därför stod det leveransdag okänd på varenda rad. Ett paket framme i övermorgon för hundralappen eller i morgon för femhundra är en fråga man kan ta ställning till; två priser utan datum är det inte.
Skrivaragenten är ett riktigt program nu: ett litet fönster, ikon nere vid klockan, ingen svart konsolruta. Den byggs på plats av Windows egen C#-kompilator och blir tjugo kilobyte i stället för femtiofem megabyte — och slipper därmed både bytecode-felet och Defenders uppmärksamhet.
Agenten och dess A4-fönster delar nyckel men frågar efter var sitt slags papper. Utan den uppdelningen kunde webbläsarfönstret rycka åt sig en etikett det inte kan skriva ut.
Bokade sändningar går att avboka1.45.0
2026-08-26
Knappen Avboka hos FedEx på en bokad frakt. Etiketten blir ogiltig, spårningsnumret dör och ingenting faktureras — så länge paketet inte hunnit lämnas in.
Finns för två skäl. Det ena är att kunna köra hela flödet skarpt utan att skicka något, nu när nyckeln är godkänd för produktion. Det andra är vardagen: en order som packades fel, en kund som ringer och stoppar.
Hela sändningen avbokas, aldrig ett enstaka kolli. En flerkolliförsändelse där ett kolli avbokas lämnar etiketter som säger 1 av 3 om något som numera är två, och det reder ingen ut i tullen.
Etiketter som ligger kvar i skrivarkön tas bort samtidigt. Ett papper som redan kommit ut får någon riva.
Avbokningen syns i listan: spårningsnumret stryks över, och när och av vem står i detaljerna. Raden står kvar — att en sändning bokades och sedan ångrades är också något man vill kunna se i efterhand.
Skrivaragenten byggd på nytt. Den förra exe-filen dog direkt med ett fel om avvisad bytecode: programmet byggs på Linux för Windows, och den formen av förkompilering överlever inte det. Nu bakas koden in som källkod i stället.
Shopify-synken var trasig, och skrivaragenten blev ett program1.44.0
2026-08-25
En kommentar av fel sort fällde hela Shopify-frågan. GraphQL kommenterar med brädgård, inte med snedstreck-stjärna — och den kommentaren jag skrev när HS-koder och vikter lades till gjorde att varje variantsynk svarade PARSE_ERROR. Sedan dess har ingenting kommit från butiken: inte tullfälten, men inte heller streckkoder, saldon eller bilder. Rättat, och ett skydd inlagt som vägrar starta appen om samma sorts kommentar smyger sig in i en fråga igen.
En knapp i stället för två på artikelsidan: Hämta från butiken läser om katalogen och för in uppgifterna i ett svep.
Skrivaragenten finns nu som ett program, Texsolv-skrivaragent.exe. Ingen Node, ingen kommandorad — dubbelklicka, klistra in kopplingskoden från appen, välj etikettskrivare, klart. Den lägger sig i autostart om man vill.
Samma program sköter både etiketter och A4. ZPL går rakt till Zebran, och A4 sköts av ett kioskfönster som agenten startar och vakar över — dör det startas det om. Datorn behöver inte längre vara inloggad i appen: agenten öppnar fönstret med sin egen nyckel.
Kopplingskoden är adress och nyckel hopvikta till en sträng. Ingen ska behöva skriva av trettiotvå tecken vid en dammig packstation.
Fyra flikar under Plock: Pågår, Packat, Bokat, Skrivare. Bokat är listan över bokade frakter, med papperen från varje sändning — plocklista, packsedel och restlista går att öppna igen, fraktetiketten att ladda ner.
Rutan Kom inte ordern hit? är hopfälld som standard, liksom skrivarinställningarna och papperhistoriken. Det som sällan behövs ska gå att hitta utan att ta plats varje dag.
Tull och vikt syns nu när man klickar in på en artikel, med källa per fält och möjlighet att fylla i direkt.
Etiketternas ZPL sparas hela halvåret så att de går att hämta igen. Bara de tunga PDF-erna töms efter en månad.
Bokade frakter har fått en egen lista1.43.0
2026-08-25
Ny sida under Plock: alla bokade sändningar, nyast först. Sök på kund, ordernummer eller spårningsnummer — frågan är oftast var en kartong är, och då ska man slippa minnas vilket ordernummer det var.
Tryck på en rad för detaljerna: tjänst, totalvikt, om handelsfakturan gick elektroniskt, bokningsnummer, och ett spårningsnummer per kolli. Vid tre kartonger är det just den uppdelningen kunden undrar över.
Knapp för att kopiera spårningsnumret och en länk rakt in i FedEx spårning.
Sändningarna sparas i sex månader tillsammans med plockrundan, precis som förut. Nytt är att etiketternas innehåll töms redan efter en månad — en etikett skrivs aldrig ut igen när kartongen är framme, och det är innehållet, inte raden, som tar plats. En handelsfaktura kan vara hundratals kilobyte.
Knappen Synka butiken och hämta på artikelsidan. Appen började läsa HS-koder och vikter från Shopify först nyligen, så en katalog hämtad före dess står tom hur välfyllt det än är i butiken. En körning löser det, men ingen kommer på att den behövs.
Hela kategorin får sin benämning på en knapptryckning1.42.1
2026-08-25
Engelsk benämning går nu att sätta för en hel kategori. Tullen vill veta vad slags vara det är, inte vilken längd — hela solvraden är samma sak för dem, och då ska texten skrivas en gång och inte tusen.
De tre texterna ligger som snabbval: heddles, cord och loop rope. Ett tryck fyller rutan.
Runlockartiklar som slutar på -CA hoppas över, som överallt annars.
Kryssrutan avgör om de som redan har en benämning ska skrivas över. Utan kryss fylls bara de tomma, och appen säger efteråt hur många som ändrades och hur många som hoppades över.
Ny ruta högst upp: vad butiken faktiskt har. Antal artiklar som matchar en variant, hur många av dem som har HS-kod, ursprung, vikt och engelsk titel, samt när Shopify senast synkades. Står det noll hämtade går det nu att se om det beror på att kopplingen inte träffar, att butiken saknar uppgifterna, eller att ingen synk körts sedan appen började läsa fälten.
Artikeluppgifterna fylls i på en sida i stället för en i taget1.42.0
2026-08-25
Tullsidan är nu en tabell med rutor i. HS-kod, ursprung, engelsk benämning och vikt går att fylla i för trettio artiklar och sparas med en knapptryckning, i stället för trettio dialoger.
Filtrera på vad som saknas, vad butiken redan vet, eller allt. Sök på artikelnummer eller namn, och begränsa till en kategori.
Varje ruta visar var värdet kommer ifrån. Grå text är ärvd från butiken eller Fortnox, svart är ifylld här, kursiv ljus text är bara ett exempel. En siffra utan ursprung går inte att felsöka.
Knappen Hämta butikens uppgifter flyttar in Shopifys HS-koder, ursprungsländer, vikter och engelska produkttitlar som appens egna. De användes redan, men så länge de bara låg i butiken skrevs de över vid varje synk — en rättelse här hade försvunnit. Nu står den kvar. Ingenting som redan är ifyllt rörs.
Vikterna står i gram, precis som i Shopify. Paketvikten vid packningen är kilo, för det är vad FedEx frågar efter och vad vågen visar.
HS-koden städas när den sparas: 8448 4200 blir 84484200. Ursprunget översätts, så Sverige blir SE.
Frakten går att boka även när FedEx prislista är nere1.41.2
2026-08-25
Pris och bokning är två skilda tjänster hos FedEx, och prislistan har legat nere i perioder hela dagen. Förut stannade fraktsteget då helt, trots att bokningen fungerade.
Nu visas kontots tjänster utan pris i stället, och etiketten går att skriva ut som vanligt. Priset kommer på fakturan ändå.
Fraktgods sorteras bort under 68 kg och pakettjänsterna bort över, så att ingen råkar välja en palltjänst till en kartong.
Knappen Hämta adressen från Fortnox igen visas bara när det faktiskt är adressen som fattas. En knapp som inte kan hjälpa ska man inte lockas att trycka på.
Leveransadressen hämtas om av sig själv1.41.1
2026-08-25
FedEx svarade att postnumret saknades trots att det står rätt i Fortnox. Förklaringen: adressen skrivs en enda gång, när orderraderna hämtas, och rörs aldrig mer. En order som hann synkas innan adressfälten fanns i appen blev därför stående med tomma rutor för alltid.
Nu hämtas ordern om från Fortnox automatiskt så fort något fattas i adressen — innan någon ens får se ett felmeddelande. Är den ifylld där löser det sig utan att ni märker något.
Fattas den även i Fortnox säger appen det rakt ut, i stället för FedEx kod. Då är det ordern i Fortnox som ska rättas.
Adressen appen faktiskt har visas i rutan. Att jämföra den med Fortnox var det enda sättet att se skillnaden, och det gick inte förut.
Knappen Hämta adressen från Fortnox igen finns kvar för det fall Fortnox var nere just då.
Frakten bokas där packningen slutar1.41.0
2026-08-25
När packsedeln gått till skrivaren fortsätter appen till frakten i stället för att lämna rundan. Vikt och mått är redan ifyllda, adressen kommer från ordern, varuuppgifterna från artikelregistret — det enda som ska väljas är tjänsten.
Alternativen kommer från FedEx, billigast överst, med pris och leveransdag. Ett tryck väljer, nästa bokar. Etiketterna går till etikettskrivaren, en per kolli.
Handelsfakturan går elektroniskt till tullen. Ingen plastficka, ingen utskrift. Är ETD inte påslaget hos FedEx bokas sändningen ändå, med papper i stället — en frakt ska aldrig stanna på att en finess saknas.
Vägt jämförs med beräknat. Skiljer de sig mer än dubbelt säger appen till: ett kolli som skrivits in som 1,2 i stället för 12 kg ger ett pris som ser rimligt ut ända tills FedEx väger om på terminalen.
Spårningsnumret sparas per kolli, och tjänsten och priset på rundan. När kunden ringer och undrar var kartongen är finns svaret i appen.
HS-koder kontrolleras innan bokning när sändningen går utanför EU. Saknas de stoppas bokningen här i stället för att sändningen fastnar i tullen en vecka senare.
Går det inte att hämta priser är ordern ändå klar och papperen utskrivna. Frakten kan bokas senare — den får aldrig hålla kvar en färdigpackad order.
Bokningsnumret krävs — nu prövat i stället för gissat1.40.2
2026-08-25
Trappan avgjorde det. Utan expressFreightDetail alls: nekad. Med blocket men utan nummer: nekad. Med nummer: godkänd. Min gårdagsteori om att blocket var problemet var fel, och nu vet vi det i stället för att tro det.
Numret är en platsreservation på ett flygplan, inte en bilbokning. Därför hjälper det inte att chauffören har bakgavellyft, och därför går det inte att hitta på. Det går heller inte att hämta via något FedEx API — jag har gått igenom Pickup-, Ship-, Freight- och Open Ship-gränssnitten. I Pickup-API:et är bokningsnumret något man skickar in, aldrig något man får ut.
Skarpt läge vägrar dokumentationens exempelnummer 123456789812. Testmiljön sväljer det, men en riktig etikett med en påhittad bokning ser korrekt ut ända tills pallen blir stående på terminalen. Det är det sämsta sättet att misslyckas på.
Värt att ta med FedEx: deras egen dokumentation säger att bokningsnumret är valfritt för Express Freight inom EU och från EU till land utanför — alltså precis era sträckor, både Amsterdam och Oslo. Att kravet ändå slår till är en kontoinställning hos dem, inte något appen kan lösa.
Bokningsnumret var kanske aldrig kravet1.40.1
2026-08-25
BOOKING.CONFIRMATION.NUMBER.INVALID kom när appen skickade expressFreightDetail utan att fylla i numret. Det betyder inte att numret alltid krävs, utan att har man med blocket ska numret sitta i det. Appen utelämnar nu hela blocket när inget nummer finns, i stället för att skicka det halvtomt.
Spärren som hindrade bokning utan nummer är borta. Den byggde på min tolkning, och tolkningen var inte prövad.
Felsökningens trappa går nu från minst till mest och stannar vid första träffen. Svaret blir därmed det minsta anrop FedEx accepterar — och därmed också om numret behövs på riktigt.
FedEx europeiska servicehandbok säger att förbokning krävs för fraktgods mellan 68 och 1 000 kg. Det är ett operativt krav på hämtningen; om API:et hävdar det får trappan avgöra.
Pallen föll på ett objekt där FedEx ville ha ett tal1.40.0
2026-08-25
totalWeight skickades som {units, value}. Överallt annars i FedEx API är en vikt just så — men requestedShipment.totalWeight är enligt schemat ett vanligt tal, och enheten läses av från kollits vikt. Ett objekt där räckte för att hela anropet skulle nekas med Invalid field value in the input, utan att fältet pekades ut. Alla andra varianter i felsökningen föll på samma sak eftersom de bar med sig det.
Felsökningen avslöjade det själv: varianten utan totalWeight var den enda som kom förbi och i stället klagade på bokningsnumret. Ett annat felmeddelande betyder att valideringen kommit längre.
Bokningsnumret krävs alltså på riktigt. Det är inte min gissning — FedEx svarar BOOKING.CONFIRMATION.NUMBER.INVALID när det saknas. Det finns nu ett fält för det på provetikettsidan, och appen säger ifrån innan anropet i stället för att låta FedEx göra det.
68 kg är taket per kolli för egen förpackning. Det står nu svart på vitt i felsökningen: YOUR_PACKAGING cannot exceed the limit of 68.00 KG. Därför går det inte att smyga förbi fraktgodset genom att bara ange mått och vikt.
Nytt korsprov delar pallen på fyra paket under taket och bokar dem som vanlig pakettjänst. Går det finns en väg runt, om än med fyra etiketter i stället för en.
Felsökningen slutar låta ett tyst pris tysta bokningen1.39.1
2026-08-25
Pris och bokning är två skilda tjänster hos FedEx. Den ena kan ligga nere medan den andra svarar — och det är precis vad som händer nu: paketetiketterna kommer ut, men ingen prisförfrågan går fram. Min felsökning hoppade över alla bokningsförsök så fort priset var tyst, och gömde därmed undan det enda svar som betydde något.
Bokningsförsöken körs nu alltid. Prislistan är sammanhang, inte en spärr.
Två korsprov är nya och avgör saken: samma pall bokad som pakettjänst, och fraktgodstjänsten bokad med ett litet paket. Går pallen som paket men inte som fraktgods är det tjänsten kontot saknar. Går tjänsten med paket men inte med pall är det vikten eller måtten. Går ingendera är det sträckan eller miljön.
Slutsatsen står utskriven överst i felsökningen i stället för att behöva läsas ut ur raderna.
Pallarna nekades av ett fält som inte finns1.39.0
2026-08-25
physicalPackaging är borttaget. Fältet finns inte i FedEx Ship-API över huvud taget — jag lade in det på gissning i går, och ett okänt fält är i sig nog för att hela anropet ska nekas med Invalid field value in the input. Det förklarar varför alla åtta varianter i felsökningen gav exakt samma svar.
expressFreightDetail följer nu alltid med fraktgods. Att det saknades är troligen varför den allra första pallen till Oslo nekades — den tjänsten fanns, till skillnad från Economy Freight.
Regional Economy Freight är rätt tjänst inom Europa. FedEx tjänstelista bekräftar 22 länder med Sverige, Norge och Nederländerna bland dem. International Economy Freight, som appen provade först, går inte på era sträckor.
Bokningsnumret putsas till siffror och kapas vid tolv. Schemat kräver 5–12 siffror; ett längre eller smutsigt värde hade nekats.
Anrop som nekas med ett tillfälligt fel görs om en gång. FedEx testmiljö låg nere under gårdagens försök och gav olika koder på samma fråga — ett omförsök skiljer den sortens strul från ett riktigt fel.
Vikttrappan i felsökningen börjar med ett vanligt litet paket. Går inte ens det att prissätta är det miljön som ligger nere, och då säger resten ingenting.
Felsökningen skiljer nu på fel fält och stängd tjänst1.38.1
2026-08-25
Alla åtta bokningsvarianter för pall gav samma svar. När varje variant nekas lika är det inte fälten det sitter i, och då är felsökningen ställd fel fråga.
Felsökningen börjar därför med en vikttrappa: 30, 60, 68, 70, 100 och 250 kg, plus 250 kg fördelat på fyra kollin. Prisförfrågan bär inga fraktfält alls, så vänder svaret precis vid 68 kg är det fraktgodset kontot inte har, inte något appen skickar.
Går inte priset att hämta hoppas bokningsförsöken över med en förklaring, i stället för att åtta identiska nekanden ska rulla förbi.
FedEx felkoder står nu utskrivna vid varje rad. Det är dem supporten frågar efter.
Rätt fraktgodstjänster, och en knapp som säger varför en pall nekas1.38.0
2026-08-25
International Economy Freight är borta. Er egen prislista på fedex.com visar Priority Freight och Regional Economy Freight på både Nederländerna och Norge — Economy Freight erbjuds inte på era sträckor alls, och en tjänst som inte erbjuds går inte att boka.
Regional Economy Freight finns i stället. Det är den billiga pallfrakten inom Europa: 746 kr mot 3 934 kr till Amsterdam i er egen prislista.
Fraktgodsanropen bär nu physicalPackaging och expressFreightDetail. FedEx kräver att sändningen talar om att godset står på pall, och de säger inte vilket fält de saknar när det uteblir.
Nekas en pall finns knappen Felsök varför. Den frågar först FedEx vad som går att boka på sträckan, provar sedan bokningen med ett fält i taget ändrat och rapporterar vad varje variant gav — i stället för att någon ska gissa sig igenom en runda per försök.
Ett avvisat anrop går att läsa. Vilka fält FedEx pekade ut visas i klartext, och kontonumret döljs.
Pall går att boka1.37.0
2026-08-25
Över 68 kg räknas sändningen som fraktgods hos FedEx och byter tjänst. International Priority Freight och International Economy Freight finns nu med — samma API som paketen, men med totalvikten för hela sändningen i anropet.
Provetiketter finns för båda, så att de kan tas med i etikettcertifieringen. Görs de inte nu krävs en ny runda med tre nya arbetsdagars väntan innan pall kan bokas skarpt.
Testknappen under Inställningar frågar också efter en pall på 250 kg. Svaret säger om ert konto över huvud taget har fraktgods påslaget — det går inte att läsa ut någon annanstans.
Bokningsnummer från FedEx kan skickas med när en sträcka kräver det. Fältet utelämnas när det saknas; ett tomt fält avvisas.
Varuuppgifter krävs vid varje landsgräns, inte bara utanför EU1.36.1
2026-08-25
Sändningarna till Amsterdam nekades med att tulluppgifter saknades. Min missuppfattning: EU är en tullunion, så ingen tull tas ut och ingen handelsfaktura behövs — men FedEx räknar varje sändning över en landsgräns som internationell och vill ha varuuppgifterna ändå.
Nu följer de med så fort avsändarens och mottagarens land skiljer sig. Inrikes sändningar behöver dem fortfarande inte.
EU-regeln lever kvar där den hör hemma: den avgör om packaren ska hindras av att en HS-kod saknas, inte om uppgifterna ska skickas. HS-koden utelämnas hellre än skickas tom.
Saknas varuuppgifterna helt vid en gränsöverskridande sändning säger appen det innan anropet görs, i stället för att låta FedEx svara med en kod.
Fraktsedlar från FedEx, och provetiketter för certifieringen1.36.0
2026-08-25
Appen kan boka en sändning hos FedEx och få tillbaka etiketten. Den kommer som ZPL och går rakt till Zebran utan att någon behöver tolka den — vilket är precis vad FedEx granskar vid etikettcertifieringen.
Flera kollin ger en etikett per paket, och för sändningar utanför EU följer fraktsedeln med som eget dokument.
Tulldeklarationen byggs av varorna på ordern: beskrivning, ursprungsland, HS-kod, antal, värde och vikt. Går sändningen inom EU utelämnas den helt.
Ny sida under Plock → Skrivare: Provetiketter. Den bokar en testsändning per tjänst ni ansöker om och lägger etiketterna i skrivarkön — de sex papper FedEx vill ha inför certifieringen, inklusive flerkolliexemplet och fraktsedeln.
Ingenting av det kostar pengar. Testmiljön bokar inga riktiga sändningar, och sidan vägrar köra i skarpt läge.
Skrivaragenten — flera skrivare blir möjligt1.35.0
2026-08-25
Varje papper i kön har nu ett format och en roll: A4 ritas av webbläsaren som förut, fraktetiketter går som rå ZPL till en etikettskrivare. Ingen kan råka hämta den andres papper — utan det hade kiosken skrivit ut ZPL-kod som text på ett A4.
Skrivaragenter: små program som står vid en skrivare och lyssnar. De loggar in med egen nyckel i stället för någons användarkonto, eftersom en dator vid ett packbord inte ska bära en människas session.
Nyckeln skapas under Plock → Skrivare → Lägg till skrivaragent och visas en enda gång. Den lagras hashad; tappas den skapar man en ny.
Listan visar när varje agent senast hördes av, så att en tyst dator går att upptäcka innan någon står och väntar på ett papper.
Kioskfönstret fungerar precis som förut och tar hand om A4. Agenten tar etiketterna.
Rättade en tabellordning som gjorde att en helt ny databas inte kunde skapas.
Avsändarlandet översätts, och syns1.34.2
2026-08-25
FedEx vill ha SE, inte Sverige. Skrev man landets namn i miljövariabeln svarade de ORIGIN.COUNTRY.INVALID och inget mer. Nu översätts landsnamn till landskod automatiskt, både för avsändare och mottagare.
Postnumret får innehålla mellanslag och gatuadressen får vara tom utan att anropet blir konstigt.
Inställningarna visar avsändaradressen appen faktiskt skickar. Ett fel i en miljövariabel ska gå att se, inte gissas fram ur en felkod.
Testmiljön har ett eget FedEx-konto1.34.1
2026-08-25
FedEx delar ut ett särskilt försändelsekonto för tester tillsammans med testnycklarna. Produktionskontot fungerar inte mot sandbox — och svaret man får är svepande, inte förklarande.
Lägg testkontot som FEDEX_ACCOUNT_NUMBER_test, så används det i testläge och produktionskontot i skarpt läge.
Felen från FedEx visas nu med kod och vilket fält de gäller, och står på engelska. Den svenska översättningen sa ingenting man kunde felsöka på.
Går det ändå fel i testläge med produktionskontot inlagt säger rutan det rakt ut i stället för att låta någon börja leta i adresserna.
Kopplingen till FedEx1.34.0
2026-08-25
Appen kan logga in mot FedEx och hämta fraktpriser. Under Inställningar för appen finns nu Frakt via FedEx med en knapp som gör ett riktigt anrop och visar vad de svarar — så att man ser att nycklarna sitter innan någon står vid packbordet.
Test och skarpt läge samsas. FEDEX_ENV avgör vilken miljö som gäller, och när etikettcertifieringen är godkänd byts den enda variabeln — ingenting annat i koden.
Priserna sorteras billigast först och visar både ert avtalade pris och listpriset. Vi frågar aldrig efter en bestämd tjänst, utan låter FedEx svara med allt som går på sträckan — en hårdkodad lista hade tystat en tjänst ni faktiskt betalar för.
Fel från FedEx blir läsbara. Är postnumret ogiltigt står det så, tillsammans med vilket fält som klagades på — det är den uppgiften gränssnittet behöver för att kunna peka på rätt ruta.
Leveransadressen sparas nu på ordern vid inläsningen, så att en bokning inte behöver fråga Fortnox medan packaren väntar.
Vikt och tulluppgifter — grunden för fraktbokningen1.33.0
2026-08-25
Appen räknar ut vad ett kolli väger: artiklarnas egenvikt gånger antal, plus kartongens egenvikt. Förslaget står på avslutssidan med en knapp för att använda det — vågen och packaren har fortfarande sista ordet.
Artiklar utan känd vikt räknas aldrig som noll i det tysta. De listas vid namn, så att man vet att totalen är ofullständig.
HS-koder, ursprungsland och vikter hämtas nu automatiskt från Shopify vid varje synk. Artikelvikten från Fortnox används som reserv.
Ny sida under Inställningar → Packning: Tulluppgifter. Den visar hur stor andel av de lagerförda artiklarna som har HS-kod, ursprungsland och vikt, och listar dem som saknar något så att luckorna går att fylla i lugn och ro i stället för mitt i en packning.
Det som fylls i där vinner alltid över det som synkas in, och står kvar. Varken Shopify eller Fortnox ändras — Fortnox artikelregister har inga tullfält alls.
Förpackningarna har fått egenvikt vid sidan av maxvikt. Egenvikten räknas med i fraktvikten; maxvikten är bara ett stöd när man väljer. Alla nio står på 50 gram.
Ta bort plocklistor, engelsk packsedel och en tillbakaknapp som fungerar1.32.0
2026-08-24
Papperskorg på varje pågående plocklista, med en fråga innan den försvinner. Papper som ligger och väntar på utskrift tas bort samtidigt — annars kom plocklistan ur skrivaren en stund efter att man tagit bort den.
Knapp för att ta bort alla plocklistor som ingen börjat plocka, för dagen då avläsningen lagt upp femtio på en gång. Rundor där någon bockat av något lämnas i fred.
Packsedeln skrivs på engelska när ordern går utomlands. Landet läses ur kundordern i Fortnox — leveranslandet först, fakturalandet som reserv. Tomt land räknas som Sverige. Plocklistan och restlistan är alltid på svenska; de stannar i huset.
Datum, siffror och enheter följer papperets språk. En engelsk packsedel får 24/08/2026 och pcs i stället för 24 aug. 2026 och st.
Tillbakaknappen på sidan Allt plockat gjorde ingenting. Nu leder den ut ur rundan, och det finns en väg tillbaka in till artiklarna.
Ångra en avbockning: står du på en rad som redan är avbockad byts knappen ut mot Ångra avbockningen.
Ofakturerade ordrar räknades som fakturerade1.31.2
2026-08-24
Fortnox skickar strängen "0" i fakturafältet på en order som inte är fakturerad. Appen sparade den rakt av och läste den som ett fakturanummer — så varenda ofakturerad order stämplades som expedierad, och därmed fick ingen order någon plocklista alls.
Nu betyder noll ingen faktura. Redan sparade nollor städas bort automatiskt vid nästa start.
Samma sak påverkade tillverkningsförslagen: en order med fakturanummer räknas som helt avdragen ur lagret, och med noll som fakturanummer blev saldot före ordrarna för stort och behovet för litet.
Fråga appen varför en order inte fick plocklista1.31.1
2026-08-24
Skriv ordernumret i rutan Kom inte ordern hit? och tryck Fråga. Appen går igenom hela kedjan och säger var ordern stannade: finns den i appen, är den inom tidsfönstret, har den rader att plocka, räknas den som lagd för hand, är den fakturerad, är den utskriven i Fortnox, och finns det redan en plocklista.
Ordern läses live från Fortnox och jämförs med appens kopia. Skiljer de sig står det utskrivet — det är nästan alltid svaret.
Knapp för att lägga upp plocklistan ändå, direkt i svaret.
Skanningen fungerar igen, och inställningarna har fått rubriker1.31.0
2026-08-24
Skanning under plockning fungerar. Appen jämförde den skannade koden rakt av mot artikelnumren på ordern, men det som sitter på varan är en EAN-kod — så varje skanning svarade att varan inte stod på ordern. Nu bär varje rad med sig alla koder som kan sitta på den: artikelnummer, EAN och Shopifys streckkod.
Skannar du något som finns i lagret men inte på ordern står det numera vilken vara det var, i stället för en rad siffror.
Knappen Skanna vid förpackningen öppnar kameran. Skannerrutan ritades bara i plockläget, så på avslutssidan hände ingenting alls när man tryckte.
Inställningarna är uppdelade under rubriker: Överblick, Lager, Streckkoder, Packning och Appen. Elva rader i rad hade blivit en vägg att läsa igenom varje gång.
Etiketter heter numera Taggar på artiklar, så att det går att skilja från streckkodsetiketterna. Plocklistor är borta ur listan — de har egen plats i menyraden.
Plock i menyraden, och plocklistan väntar tills ordern är klar1.30.0
2026-08-24
Plock ligger nu i menyraden längst ner, mellan Inventering och Tillverkning. Fyra platser i stället för tre.
Tillverkning har fått en ny ikon. Skiftnyckeln såg mest ut som ett suddigt streck i den storleken — nu är det en fabrik.
Plocklistan väntar tills ordern är utskriven eller mejlad i Fortnox. Då hinner du skriva färdigt utan att pappret kommer i förtid. Går att stänga av på Plocklistor → Kom inte ordern hit?, och då kommer listan så fort ordern har rader.
Står ordern och väntar syns det: Leta efter nya ordrar nu svarar Inte utskriven i Fortnox än.
Rätt kod på rätt kartong1.29.1
2026-08-24
Liten Rulle Pack o plock är borttagen ur förpackningslistan — den kartongen används inte.
Därmed flyttades de två sista koderna ett steg: Stor Rulle CAD05N0 och Varubrev har nu sina egna EAN-koder, och alla nio förpackningar går att skanna.
Förpackningar, flera kollin och färre papper i onödan1.29.0
2026-08-24
Fakturerade ordrar får ingen plocklista. En fakturerad order är expedierad, och pappret hörde till en kartong som redan stod hos kunden. Appen frågar Fortnox om fakturanumret precis innan pappret läggs i kön, så det spelar ingen roll om uppgiften hunnit bli gammal i appens kopia.
Artikel 100, frakten, står inte längre på plocklistan. Den gick inte att plocka från någon hylla, och glömde man bocka av den räknades den som rest och gav ett extra papper. En order som bara innehåller frakt får ingen plocklista alls.
Förpackningar: välj kartong i en lista — eller skanna kartongens EAN-kod — så fylls måtten i av sig själva. Listan med era tio förpackningar ligger inne och redigeras på Plocklistor → Skrivare → Förpackningar och mått.
Flera kollin per order, vart och ett med egen förpackning, egna mått och egen vikt. Packsedeln listar dem rad för rad med totalvikt underst.
Bilderna: en artikel som hade en rad utan bilddata gav en trasig länk och såg bildlös ut fast butiken hade en bild. Och en färgvariant utan egen bild lånar nu produktens — vita solvar hade ingen bild medan de röda hade det, fast det är samma vara.
Packsedeln är ifylld när den kommer ur skrivaren: Kontrollerat av står med namnet på den som packade, och datumet är dagens. Raden Utlämnat till är borta, och likaså raden längst ner om papper och ordernummer.
Töm kön-knapp på skrivarfliken, för dagen då något oväntat lagt femtio papper i kö.
Vår referens lästes aldrig in — därför kom inga plocklistor1.28.2
2026-08-24
Listan över ordrar som Fortnox skickar innehåller bara ett urval av fälten, och Vår referens är inte ett av dem. Fältet stod därför tomt på varje order i appens kopia, och eftersom tomt fält betyder webbshopsorder fick ingen order någon plocklista.
Nu läses Vår referens ur den fullständiga ordern, som ändå hämtas för radernas skull. Ordrar som redan hunnit läsas in utan referens frågas efter en gång och lagas i efterhand.
Avläsningen kan inte längre råka nolla fältet. Saknas det i svaret behålls det som redan står — förut skrevs det över med tomt vid varje körning.
Ny knapp på plocklistesidan: Leta efter nya ordrar nu. Samma avläsning som schemaläggaren gör varje minut, men på begäran — och den visar vad som hittades och vad som valdes bort, med anledningen utskriven.
Ny ruta: Kom inte ordern hit? Den listar vilka värden som faktiskt står i Vår referens på era senaste ordrar och vilka av dem som ger plocklista. Rutan syns alltid, även när listan är tom — det är just då man undrar.
Appen har fått en egen ikon1.28.1
2026-08-24
Det röda X:et ur loggan står nu i webbläsarens flik, och i Windows aktivitetsfält när skrivarfönstret körs som eget fönster. Förut stod det en tom sida där.
X:et och inte hela ordmärket, eftersom ikonen oftast ritas i 16 eller 32 bildpunkter — sju bokstäver blir en grå fläck i den storleken.
Plocklistor: papper ur skrivaren, plockning i telefonen1.28.0
2026-08-24
Ordrar som läggs för hand i Fortnox får en plocklista utskriven av sig själv, på A4. Ordrar från webbshoppen får ingen — de går som förut via Shipmondo. Skillnaden appen går på är Vår referens: tomt fält betyder webbshoppen, står det ett namn är ordern lagd för hand. Vilket namn spelar ingen roll.
Pappret har en streckkod. Skanna den med appen så öppnas plockningen för just den ordern, en artikel i taget: stor bild, artikelnummer, benämning och antal. Handskannern fungerar direkt utan att man trycker på något.
Artiklarna kommer i kategoriordning — SOLV först, sedan CORD och så vidare, samma ordning som kategorilistan i inställningarna. Bilder står både på pappret och i telefonen.
Går inte hela antalet att plocka trycker man Färre. Det som blir över hamnar på en restlista som skrivs ut automatiskt när rundan avslutas, tillsammans med packsedeln — två papper.
Man kan gå ur mitt i och komma tillbaka. Rundan står kvar där den var, och nästa skanning av samma papper landar på rätt artikel.
Innan man avslutar går det att fylla i vikt, mått och antal kollin. Inget måste — fylls det i står det på packsedeln.
Packsedeln visar vem som packat, när, vad som kom med och vad som blev rest. Den går i paketet.
Utskriften sköts av ett fönster som står öppet på datorn vid skrivaren: /skrivare. Det frågar efter nya papper var tionde sekund och skriver ut dem tyst. Är datorn avstängd ligger kön kvar tills den vaknar — ingenting går förlorat.
Packade ordrar sparas i sex månader och städas sedan bort av sig själva. Fliken Packat visar vad som packats, av vem och när.
Adressraden längst ner på utskrifterna är borta. Den ska inte stå på ett papper som ligger i kundens paket.
Appen skriver fortfarande ingenting i kundordern i Fortnox. Plocklistan är ett arbetspapper.
Kundordern går att öppna, och loggan står på utskrifterna1.27.0
2026-08-24
Tryck på en order i listan över överhoppade ordrar så öppnas den. Där står kunden med adress, leveransadress, referenser, telefon, leveranssätt och kommentarer — hämtat direkt ur Fortnox — och allt kunden beställt, med lagersaldo per rad.
Knapp för att lägga upp tillverkningsordern ändå, även när uträkningen inte ser något behov. Då tas hela den beställda mängden med, och antalen går att ändra på tillverkningsordern efteråt.
Ordern går att skriva ut eller spara som PDF, med rutor för plockat av, kontrollerat av och datum.
Texsolv-loggan står nu överst på alla utskrifter: kundorder, tillverkningsorder och inventeringsunderlag. Streckkodsetiketterna är orörda — säg till om loggan ska in där också.
Appen ändrar fortfarande aldrig något i en kundorder. Sidan läser bara.
En ruta i stället för två för frågan om varför en order inte syns1.26.2
2026-08-24
Sökrutan och listan över överhoppade ordrar låg i var sin ruta bredvid varandra — två ställen att leta på för samma sak. Nu är de en: ordernumret överst, listan under.
Antalet stämmer med det som visas. Förut stod totalen i rubriken medan listan bara innehöll de senaste, utan att det sades. Nu står det rakt ut: hur många det är totalt, hur många som listas och hur många äldre som inte gör det.
Listan över överhoppade ordrar: nyast först, och kapad1.26.1
2026-08-24
Ordrarna kom i den ordning uträkningen råkade gå igenom dem — äldst först. Nu ligger de nyaste överst, med orderdatum på raden.
De femtio senaste listas. Är de fler står det hur många äldre som inte visas.
En bestämd order söker du fortfarande upp med Varför syns inte min order? ovanför, oavsett hur gammal den är.
Behovet räknas ur lagersaldot, inte ur orderns kryssrutor1.26.0
2026-08-24
Ni bockar raderna som levererade när ni lägger ordern i Fortnox, för att lagret ska dras av direkt. Appen läste det som att varorna gått ut och tystade ordern. Samma sak gällde fakturan på butiksordrar och fältet Sent — alla tre sätts när ordern skapas, ingen av dem säger något om att varan lämnat huset.
Nu används inget av dem som bevis. Behovet är exakt minusdelen av lagersaldot: eftersom Fortnox drar av saldot direkt — även förbi noll — är ett minussaldo summan av det som är sålt men inte tillverkat.
Artiklar med täckning i lager ger inga förslag. Artiklar som gått under noll föreslås med precis den mängd som fattas.
Bristen läggs på de nyaste ordrarna, eftersom de äldre får sin täckning först i uträkningen. En order som verkligen är skickad har alltså redan fått sitt.
Gamla ordrar hålls fortfarande borta av åldersgränsen i inställningarna, och ett förslag man tackat nej till kommer inte tillbaka.
Genomgången syns även när det inte finns några förslag1.25.1
2026-08-24
"Varför syns inte min order?" låg inne i förslagslistan och ritades bara när det FANNS förslag — alltså dold i precis det läge man behöver den. Samma sak med listan över överhoppade ordrar. Båda ligger nu överst på fliken Nya, alltid.
Ordrar lagda för hand i Fortnox föreslås igen1.25.0
2026-08-24
En order du la upp för hand i Fortnox dök aldrig upp som förslag. Orsaken: appen läste Fortnox fält Sent som "varorna har gått ut". Det betyder i själva verket "dokumentet är utskrivet eller mejlat" — vilket sker direkt när du skickar orderbekräftelsen till kunden. Ordern tystades alltså samma sekund den skapades.
För ordrar lagda för hand är det nu det levererade antalet som avgör, precis som det ska. Utskrift betyder ingenting.
För ordrar från webbshopen är allt som förut: där sätts både faktura och levererat antal direkt, så utskriften är det enda som finns att gå på.
Samma fel drog åt andra hållet också: en utskriven order räknades som redan avdragen ur lagret, vilket gjorde behovet för litet. Rättat.
Nytt under Nya: "Varför syns inte min order?". Skriv ordernumret så går appen igenom hela kedjan steg för steg — finns den i Fortnox, är den hämtad, är raderna inlästa, har den redan en tillverkningsorder, vad säger lagret — och svarar rad för rad. Finns ordern inte i appens kopia frågas Fortnox direkt.
Obs: ordrar från de senaste veckorna som skickats utan att bokas som levererade i Fortnox kan nu dyka upp som förslag. Tryck Behövs inte på dem.
Butikens bilder går också att lägga på artiklarna i Fortnox1.24.0
2026-08-21
Har artikeln en produktbild i webbshopen går den nu att skicka till Fortnox utan att någon fotograferar om den. Bilden hämtas från butiken och läggs på artikeln.
Under Inställningar står nu tre tal: hur många bilder som ligger på artiklar i Fortnox, hur många som fotats i appen men inte kommit vidare, och hur många artiklar som har en bild i butiken men inte i Fortnox. Talen visas även när de är noll — förut försvann hela rutan då, och det gick inte att skilja tomt från trasigt.
En knapp per källa: appens egna bilder, och butikens. Tio åt gången.
Butikens bilder lagras inte i appen, bara i Fortnox — appen visar ändå butikens bild direkt från butiken.
Artikelbilderna når fram till Fortnox1.23.0
2026-08-21
En bild du tar i appen läggs nu också på artikeln i Fortnox. Fortnox har ingen bildruta på artikeln — bilden hamnar i filarkivet, i mappen Artikelbilder, och kopplas till artikelnumret. Det är så en artikelbild ser ut därborta.
Varför det inte gick förut: nyckeln till Fortnox saknade behörigheterna archive och connectfile, och uppladdningen skickades som JSON i stället för som en fil. Båda är rättade.
Behörigheter sitter i nyckeln, inte i appen. Därför måste Fortnox kopplas om en gång under Inställningar innan bilderna går fram — statusraden säger till om det behövs.
Byter du bild ersätts den gamla i Fortnox, och tar du bort bilden här försvinner den där också.
Bilder som redan ligger i appen kan skickas i efterhand: knappen finns under Inställningar, tio åt gången.
Går något fel står det vid bilden vad Fortnox svarade, i stället för att bilden tyst blir kvar bara i appen.
Notiser går att radera, och veckan visar vem som gjort vad1.22.0
2026-08-21
Notiser under klockan går att ta bort, en i taget eller hela listan. Det städar bara listan — inget larm och ingen order påverkas.
Veckans sammanfattning börjar nu med Vem gjorde vad: hur mycket var och en tillverkat, räknat och rättat.
Under Tillverkning står varje order som blev klar — kund, när, av vem, hur många rader och vilken inleverans den blev — plus vad som tillverkades summerat per artikel.
Under Inventering står varje inventering som skickats in, vem som skickade den, vilka som räknat och hur många artiklar som avvek.
Under Saldon står varje rättat saldo: artikel, från vilket tal till vilket, vem som gjorde det och när. Inbokad tillverkning är märkt så att den inte blandas ihop med en rättelse.
Notisen nämner vilka som var med under veckan.
Långa listor visar de första raderna med en knapp för att fälla ut resten.
Hjälptexter och avsnittsrubriker låg för tätt inpå listorna ovanför. Rättat.
Bara knappen man trycker på snurrar, och veckan sammanfattas på måndagen1.21.0
2026-08-21
Tryckte man på en knapp började alla knappar på sidan snurra. Nu snurrar bara den knapp som faktiskt arbetar — resten är avstängda men står stilla.
Snurran ligger ovanpå knappen i stället för framför texten. Knappen behåller sin storlek, så raden hoppar inte till i samma stund man trycker.
Kort bekräftelse längst ner efter det man gjort: "Order 12345 föreslås inte igen", "Namnen sparade". Förut försvann raden bara, och det gick inte att skilja från att appen missat trycket.
Tomma listor har fått en ikon och en mening om vad som händer härnäst, i stället för att bara se ut som att sidan är trasig.
Ny sida: Veckans sammanfattning. Tillverkat, inventerat, rättade saldon och läget just nu — med veckan innan att jämföra med. Nås under kugghjulet.
Notis varje måndag klockan nio med veckan som gick. Går till samma telefoner som larmen och leder till sammanfattningen.
Sista raden på en sida hamnade delvis bakom navigeringen längst ned. Rättat.
Ändringsloggen fylldes på i efterhand — 1.15 till 1.20 saknades här fast de var utlagda.
Tillverka direkt ur en Shopify-order, och besked från butiken1.20.0
2026-08-20
En order i webbshopen syns nu innan den hunnit bli en order i Fortnox, och går att lägga upp som tillverkningsorder därifrån.
Shopify ringer upp appen när något händer i butiken, så en ny order syns med en gång i stället för vid nästa avläsning.
Ordrar som ännu inte fått sina rader hämtade syns i listan i stället för att tyst utebli, med en knapp för att fortsätta hämta.
Rättat: antalet registrerade telefoner visades som noll i avläsningen fast fyra var anslutna.
Rättat: förvarningar låg kvar för ordrar som redan skickats.
Förvarning direkt från Shopify1.19.0
2026-08-20
Ordrar läses nu från butiken först och Fortnox sedan — en webborder kan ligga ett dygn innan den kommer in i Fortnox, och den luckan täcks nu.
Hämtningen berättar vad den hittade: hur många ordrar som lästes, hur många som redan var skickade och vad som visas.
Rättat: felmeddelandet pekade ut Fortnox när det i själva verket var Shopify som nekade.
Bara skickad order stoppar ett förslag, och appen säger varför1.18.0
2026-08-20
En faktura är inte ett bevis på att varorna lämnat huset — Shopify-ordrar faktureras direkt. Nu är det Fortnox egen skickadmarkering som avgör.
Listan "varför föreslås inte min order" visar skälet för varje order som hoppats över.
Ordernumret från webbshopen sparas, så samma order inte kan bli två tillverkningsordrar.
Räkna en artikel på två ställen1.17.0
2026-08-19
Artiklar som ligger både i bulklagret och i plocklagret kan räknas var för sig, med en flik per plats. Artikeln är bockad först när båda är ifyllda.
Gäller bara artiklar som märkts för det, och bara inventeringar som startas efter att det slagits på. Pågående inventeringar rör det inte.
Går att stänga av igen utan att något behöver återställas.
Skickade ordrar kan inte bli tillverkningsförslag1.16.0
2026-08-19
En gammal order som redan skickats dök upp som förslag så fort ett saldo gick till noll. Nu räknas bara det som verkligen är kvar att leverera.
Ordrar äldre än ett antal dagar föreslås inte alls. Gränsen ställs in på sidan, och de går fortfarande att lägga upp för hand.
Förloppsvisning när hela registret läses om1.15.0
2026-08-19
Omläsningen körs i steg och visar hur långt den kommit, i stället för en snurra i en minut.
Varje steg är kort nog att aldrig slå i serverns tidsgräns.
Två kan räkna samma hylla, och registret städas mot Fortnox1.14.0
2026-08-19
Räknar två personer samma artikel samtidigt skrivs ingen räkning över tyst. Appen visar båda talen och den som räknar får välja.
Artiklar som inte är aktiva eller inte är lagervaror i Fortnox tas bort ur appen.
Städningen gör inte längre om hela registret artikel för artikel. Hämtningen frågar Fortnox efter aktiva artiklar, och det som inte kommer tillbaka tas bort — utan ett enda extra anrop. Bara artiklar som står på noll är tvetydiga och kollas var för sig.
Sökningen, EAN-registret och skannern visar inte längre sådana artiklar.
Genomgång av gränssnittet, och artiklar utan lagerhantering göms1.13.0
2026-08-19
Artiklar som inte är markerade som lagervara i Fortnox syns inte längre någonstans: inte i EAN-registret, inte i kategorisiffrorna, och de går inte att lägga på en tillverkningsorder. Skillnadssidan räknar dem för sig i stället för att kalla dem föräldralösa.
Klickar man på en notis utan att vara inloggad kommer man till inloggningen och sedan vidare dit notisen pekade.
Markeringsrutan ligger i kortet, och fältet med åtgärder lägger sig ovanför navigeringen i stället för ovanpå raderna.
Länkar i listor ser inte längre ut som blå webblänkar, och knapplänkar ser ut som knappar.
Ental och flertal: 1 artikel, inte 1 artiklar. Tider på i dag visas som klockslag, datum blev läsbara.
Slå ihop upplagda ordrar, och notiserna syns under klockan1.12.0
2026-08-19
Tillverkningsordrar går att markera och slå ihop i efterhand, inte bara som förslag. Raderna summeras och fördelningen per kundorder följer med.
De gamla ordrarna avbryts och pekar på den nya, så det går att se vart de tog vägen. Har någon redan bockat av en rad går det inte att slå ihop.
Klockan har två flikar: Larm och Notiser. Notiser visar allt som skickats ut, även när ingen telefon var registrerad — och varför det inte gick fram.
En egen tillverkningsorder meddelas med knappen Klar att tillverka, när artiklarna är inlagda. Den skapas ju tom.
Egna tillverkningsordrar, och besked när appen uppdaterats1.11.0
2026-08-19
Plusknapp under Öppna tillverkningsordrar: lägg upp en order utan kundorder bakom sig, för påfyllning av hyllan.
Den får ett eget nummer med E framför, så det aldrig krockar med ett Fortnox-ordernummer.
Artiklarna läggs till på ordersidan, och den slutförs och bokas in i Fortnox precis som de andra.
Har en nyare version lagts ut medan appen är öppen syns en rad längst ned. Den laddar aldrig om av sig själv — man trycker när man är klar.
Går en kodbit inte att hämta efter en uppdatering laddas sidan om automatiskt en gång, i stället för att appen står still.
Flera förslag i ett svep, och sammanslagna tillverkningsordrar1.10.0
2026-08-19
Förslagen går att markera. Markerade kan slås ihop till en order, skapas var för sig, eller tas bort på en gång.
En sammanslagen order summerar artiklarna men behåller fördelningen per kundorder på raden, så packningen blir rätt.
Utskriften visar vilka kundordrar ordern täcker och vem som ska ha vad.
En kundorder som ligger i en sammanslagen order dyker inte upp som förslag igen och räknas inte två gånger.
Frågan om notiser kommer tillbaka tills den är besvarad1.9.1
2026-08-19
Telefoner som inte sagt ja till notiser får frågan varje gång appen öppnas. Krysset gäller bara den gången.
Frågan ställer sig själv vid första trycket i appen — iOS tillåter inte att den ställs utan ett tryck, så närmare automatiskt går inte att komma.
Har någon en gång sagt nej visar appen vägen via Inställningar → Notiser i stället, för då frågar iPhone aldrig igen.
Notis först när ordern finns, och synligt när appen arbetar1.9.0
2026-08-18
Notisen om tillverkning går ut när tillverkningsordern skapas, inte när förslaget dyker upp. Ett förslag är bara appen som räknat.
Notisen innehåller ordernummer, kund, antal artiklar och leveransdatum, och leder rakt in i ordern.
En tunn stapel högst upp visar att appen hämtar något, på alla sidor. Knappar som startar något långsamt snurrar.
Larmen räknas om i klump i stället för en fråga per artikel — att spara en regel tog flera sekunder och såg trasigt ut. Nu tar det bråkdelen.
Etiketter, och larm som går att trycka bort1.8.0
2026-08-18
Etiketter: en artikel kan bära flera märken vid sidan av sin kategori, utan att flyttas från den. Sätts på artikeln eller på många i taget under Inställningar → Etiketter.
Två etiketter sköter sig själva: Shopify, och Shopify spårat saldo. De räknas om vid varje synk mot butiken.
Larm kan sättas på en hel etikett. Smalast vinner: artikel före etikett före kategori.
Larm och notiser delades i två: klockan visar larmen, kugghjulet inställningarna.
Larm går att trycka bort, ett i taget eller alla. De kommer tillbaka först när saldot återhämtat sig och faller på nytt.
Rättat: avläsningen av nya ordrar kraschade på en variabel som lästes innan den fanns, och därför kom det aldrig någon notis om nya tillverkningsordrar.
Rutan Senaste kontrollen visar när avläsningen kördes och varför en notis eventuellt uteblev.
Larm på låga saldon1.7.0
2026-08-17
Gränser per kategori eller enskild artikel, med av- och påslag.
Klocka uppe till höger med antal olästa larm.
Notiser till telefonerna. Appen frågar om lov när den öppnas.
Tillverkningsordrar1.6.0
2026-08-16
En tillverkningsorder per kundorder, med kunduppgifter, leveransdatum och egen sida.
Rader bockas av allteftersom, mängder går att ändra, och Slutför skriver in i Fortnox lager.
Behovet räknas ut från saldot innan ordern drog av — annars såg allt tomt ut.
Utskrivbar som underlag, och en flik med totalen per artikel.
Snabbare synk och läsning av ordrar1.5.0
2026-08-15
Synken hämtar bara det som ändrats sedan sist, med en full hämtning varje dygn.
Kundordrar läses från Fortnox. Appen kan bara läsa dem, aldrig skriva.
Artiklar utan lagersaldo i Fortnox göms i stället för att visa noll.
Skillnader mellan Fortnox och Shopify1.4.0
2026-08-12
Egen sida som ställer saldona bredvid varandra, med sortering och filter.
Inventering1.3.0
2026-08-08
Inventeringsomgångar med räkning, granskning och utskick till Fortnox.
Underlaget går att skriva ut som PDF när omgången är klar.
EAN och etiketter1.2.0
2026-08-01
GS1-registret i appen, med tilldelning och kontroll av kontrollsiffran.
Etikettutskrift på B.N.T 271900. Varje ark ritas som en enda figur, så alla ark hamnar lika.
Shopify1.1.0
2026-07-20
Bilder, produktnamn och kategorier hämtade från butiken.
Första versionen1.0.0
2026-07-10
Inloggning, artikellista, räkning och justering mot lagerstället LAGER i Fortnox.
Punkterna före 1.8 är sammanfattade i efterhand. Härifrån får varje push ett eget nummer.