=== Fraktjakt ===
Contributors: dtintegration
Tags: frakt, shipping, fraktjakt
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 0.71.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Kopplar butiken till ditt Fraktjakt-konto, med fraktpriser och ombudsval i kassan, bokning, etiketter, spårning och en returportal för kunderna.

== Description ==

Tillägget kopplar din WooCommerce-butik direkt till ditt konto hos fraktförmedlaren Fraktjakt. Kunden ser aktuella fraktpriser i kassan, du bokar frakten och får etikett och spårning på ordern. Ingen mellanserver, tillägget pratar direkt med Fraktjakts API från din butik.

Returportalen slås på under Fraktjakt → Returportal. I portalen anmäler kunden retur, byte eller reparation, och returetiketten skapas via ditt Fraktjakt-konto. Portalen finns på svenska och engelska.

Butiken bör använda svenska kronor, det är vad Fraktjakts priser utgår från. Med YayCurrency räknas varukorgens och orderns belopp om till butikens valuta innan de skickas till Fraktjakt. Andra valutatillägg kan göra samma sak med filtren under För utvecklare, annars skickas beloppen utan omräkning.

Tillägget är byggt och underhålls av Detroj.

= Extern tjänst =

Tillägget skickar anrop till Fraktjakts API (api.fraktjakt.se) för prisförfrågningar, ombudssökning, bokning, spårning och frakthandlingar. Det som skickas är varukorgens vikter, mått och leveransadress samt orderuppgifter vid bokning (mottagarens adress och kontaktuppgifter). Returportalen skapar returer på orderns befintliga sändning och skickar inga nya uppgifter om kunden. Ett Fraktjakt-konto krävs.

Fraktjakts användarvillkor: https://www.fraktjakt.se/om_fraktjakt/terms
Fraktjakts integritetspolicy: https://www.fraktjakt.se/om_fraktjakt/privacy_policy

== Installation ==

1. Ladda upp och aktivera tillägget.
2. Gå till Fraktjakt i adminmenyn och ange Consignor ID och nyckel från ditt Fraktjakt-konto (integrationstyp "Egen integrering via API").
3. Lägg till fraktmetoden Fraktjakt (livepriser) i dina fraktzoner under WooCommerce → Inställningar → Frakt.

= Kontoinställningar hos Fraktjakt =

Kontrollera det här i ditt Fraktjakt-konto innan första bokningen.

* Standardpaket/paketmall är satt (annars misslyckas prissökningen när produktmått saknas).
* Automatiskt köp är aktiverat under Företagsinställningar → Betalningar → Fraktköp (annars ligger bokningar obetalda i Fraktjakts varukorg och inga etiketter skapas).
* Frakttjänsterna du vill sälja är aktiverade, och integrationens inställning för privat/företag stämmer.
* Upphämtningsuppgifter och handläggningstid är ifyllda under Mina adresser.

För tulldokument utanför EU, komplettera med Innehållsmallar hos Fraktjakt eller se till att produkterna har beskrivningar. Styckpris och artikelnummer skickas automatiskt.

= För utvecklare =

Sändningsdatat på ordern nås via mallfunktionerna dt_frakt_tracking_link(), dt_frakt_tracking_number(), dt_frakt_shipment_id(), dt_frakt_documents() och dt_frakt_agent(). Alla tar order-id eller WC_Order. Motsvarande ordermeta är _dt_frakt_tracking_link, _dt_frakt_tracking_number, _dt_frakt_shipment_id, _dt_frakt_documents (lista), _dt_frakt_agent_name, _dt_frakt_status och _dt_frakt_cost. Använd funktionerna i första hand, metanycklarna kan ändras mellan versioner.

Butiker med ett annat valutatillägg än YayCurrency kan räkna om belopp till butikens grundvaluta via filtren dt_frakt_cart_amount_in_store_currency (varukorgsbelopp) och dt_frakt_order_amount_in_store_currency (orderbelopp, ordern skickas med). Beloppen används för fri frakt-gränsen, min- och maxbeloppen, tjänstegränserna och det som skickas till Fraktjakt. När ett filter är inkopplat skickas grundvalutan till Fraktjakt, annars den valuta WooCommerce räknar i.

== Changelog ==

= 0.71.0 =
* Fraktjakt's status complete, a shipment that is ready but not purchased and waits in the cart at Fraktjakt, is shown as Ej köpt. The order list used to show the word Complete.
* A late complete from Fraktjakt no longer replaces Fraktsedel klar or Skickad on the order. Orders where it already happened show Fraktsedel klar again when they have a finished shipping label.
* The order list has a carrier filter next to the date filter. It works together with the status tabs, for example to show only DSV orders that are Processing, and stays when you switch tab. Existing orders get their carrier in the background after the update, 200 orders at a time, without changing anything else on the order. With HPOS this needs WooCommerce 8.8 or later; on older versions existing orders get it when they are saved.

= 0.70.1 =
* On English sites, the plugin description, the WooCommerce notice, the Settings link in the plugin list and the Settings menu item under Fraktjakt are in English.

= 0.70.0 =
* In the Kustom options, a combined shipping row can show the same carrier as the customer's earlier order. Choose Samma som tidigare order (Samfrakt) under Transportör. When the carrier cannot be determined, the row shows no carrier.
* Common filler text in the company field, such as a dash, "privat", "nej" or the customer's own name, no longer gives a business delivery. The checkout and the booking make the same assessment, and the order gets a note when the field was not counted.
* In the order list, orders packed together as combined shipping get the same colour on the edge of their Skickas med and Packa även labels. Only groups with an order that has not been sent are coloured.
* In the Kustom options, each row can show badges such as Miljövänlig or Spårbar, and an info text below the option in the checkout, for example how long a parcel stays at the pickup point. Both are empty by default.
* The company name is sent to Fraktjakt as the recipient company when the company field counts as a company.
* An exchange in the return portal no longer uses stock that another customer has reserved or is buying in the checkout at the same time.

= 0.69.1 =
* A return request waiting for the customer's payment shows the payment link on the order, with a button to send it again.
* When a request waits for your approval, the customer is told that the payment link comes after approval.

= 0.69.0 =
* Returns always use Fraktjakt's return service for the service the parcel was sent with. The customer no longer chooses a carrier or address.
* The customer pays a fixed price for return shipping by default. Without a price, the store pays.
* Repairs are sent with the order's return service. An order can have one return, exchange or repair.
* Orders not shipped with Fraktjakt cannot be returned in the portal.
* The customer gives a reason for each item.
* Fewer settings on the return portal page. Approval follows the reasons, and repairs have their own approval.

= 0.68.2 =
* Shorter and clearer help texts in the return portal settings.
* The Kustom and Walley option tables no longer warn about rows that differ only in weight or value limits that do not overlap, such as 0 to 5 kg and 5 to 20 kg. When an order fits both, the checkout shows the top row once, the same row that is booked. Booking also skips rows that a shipping class hid in the checkout.

= 0.68.1 =
* A combined shipping order with no order left to be sent with, for example after that order was cancelled, shows Samfrakt utan order in red and gets an order note. Send it with Boka ändå.

= 0.68.0 =
* If you change the delivery address or the items on an order after checkout, the shipment is booked with a new price query to the current address and the service the customer chose. A new postcode also gets a pickup point near the new address.
* Refunded items are no longer included in the shipment.
* An item whose product is deleted before booking is still included in the shipment.
* Better protection against duplicate shipments when Fraktjakt's answer is lost or cut off.
* The items in a combined shipping order are included in the booking of the order they are packed with, so the weight and contents match the parcel.
* Fixes in the return portal for exchanges and for return shipping paid by the customer, and a clearer message when the return window has passed.

= 0.67.2 =
* Each return reason in the return portal can be approved automatically or wait for your approval, and reasons can be added, removed and reordered. With WPML, translate custom reasons again after saving them.
* Products, categories and tags can be excluded from returns and exchanges.
* Sale items can get a 14-day return window.
* The return window counts from delivery, and a last day on a weekend or public holiday moves to the next weekday.
* Fixed price is the default customer price for return shipping.
* The return portal has an editor for the shop's own text, and the order list shows the latest return case.
* Products have a Dangerous goods checkbox with an optional UN number, which requires permission from Fraktjakt. Live rates only show services that accept dangerous goods, fixed options you check yourself.
* Clearer labels for combined shipping in the order list.

= 0.66.2 =
* New Fraktjakt (livepriser) shipping methods are named Fraktjakt (livepriser) in the admin instead of Frakt. Existing methods keep their name.
* Clearer wording in the plugin description and installation steps.

= 0.66.1 =
* Utskriften av frakthandlingar för många ordrar säger till när fler än 200 handlingar valts och bara de första kom med.
* Laddar du om orderlistan efter en utskrift av frakthandlingar, startar nedladdningen inte igen.
* Avinstallationen tar även bort köade bokningar och webhooks.

= 0.66.0 =
* Returportalen ingår i tillägget, i beta. Den är avstängd tills du slår på den under Fraktjakt → Returportal. Kunden anmäler retur, byte eller reparation, och returetiketten skapas via ditt Fraktjakt-konto.
* Returportalens inställning Kundens pris styr vad kunden betalar för returfrakten. Standard är Fraktjakts pris avrundat uppåt till närmaste 9 kr. Det går också att välja hela kronor, ingen avrundning eller ett fast pris.
* Returportalen kan visa en egen text från butiken högst upp.
* Kolumnen Döljs för i Kustom-kassans alternativtabell döljer en rad när en vara med vald fraktklass ligger i korgen.
* Fraktklasser kan ge ett tillägg på frakten i Kustom-kassan, per klass eller per beställning. Tillägget kan också gälla vid fri frakt, om du väljer det.
* Inställningarna varnar när en fraktklass döljer alla rader i Kustom-kassan.
* Kryssrutorna heter nu Aktivera Fraktalternativ i Kustom-kassan och Aktivera Fraktalternativ i Walley-kassan.
* Vikt, mått och fraktklass på orderraderna till Kustom skrivs inte över när Krokedils KSA-tillägg också är aktivt.
* Fraktkolumnen i orderlistan visar transportörens logga. Bokas inte, Hämta i butik och Samfrakt står som etiketter med tunn kant.
* En bokning som avbryts innan Fraktjakt svarat bokas inte om automatiskt, och fraktrutan varnar för en möjlig dubbelsändning.
* Loggen visar när en bokning skickas till Fraktjakt och när svaret kommer. Å, ä och ö visas som vanliga tecken.
* Tydligare texter i inställningarna, fraktrutan och ordernoteringarna.

= 0.64.9 =
* Ej bokad i fraktkolumnen får en tydlig etikett, och ordrar som inte bokas står som vanlig text. En ofullständig sändning visas som något som kräver åtgärd.

= 0.64.8 =
* Fraktkolumnen i orderlistan visar läget som en liten etikett. Grön när paketet är skickat eller levererat, blå när det är bokat eller fraktsedeln klar, röd när något kräver åtgärd, gul när bokningen pågår och på ordern som samfrakten packas med.

= 0.64.7 =
* Fraktrutan på ordern visar returen även när ordern inte har någon egen sändning, till exempel en reparationsorder från Fraktjakt Returportal eller en order som skickades på annat sätt.

= 0.64.6 =
* Massbokningen hoppar över ordrar som ett tillägg bokar själv. Fraktjakt Returportal gör det för reparationsordrar, som annars kunde bokas tillbaka innan varan kommit fram.

= 0.64.5 =
* En fraktsökning kan ha en annan avsändare än butiken. Fraktjakt Returportal använder det för reparationer, där kunden skickar varan till butiken.
* Ett tillägg kan hålla en order utanför samfrakten. Fraktjakt Returportal gör det för ersättningar och reparationer som väntar på att något kommer fram till butiken.
* Ett tillägg kan stoppa den automatiska bokningen av en order. Fraktjakt Returportal gör det för reparationsordrar, där frakten tillbaka bokas när reparationen är klar.

= 0.64.4 =
* En order kan ange sin Fraktjakt-tjänst och varornas värde direkt. Fraktjakt Returportal använder det för att boka ersättningar vid byte med samma tjänst som originalet och rätt värde för tull och försäkring.

= 0.64.3 =
* Läget Metoden är samfrakt visas bara i butiker som redan använder det. Nya butiker väljer mellan Ingen samfrakt och Erbjud samfrakt bredvid metoden.
* Fraktinställningarna och Fraktjakt-sidan varnar när en fraktzon bara har en metod som är samfrakt, eftersom kassan då inte visar någon frakt.

= 0.64.2 =
* Samfrakt är nu ett val med tre lägen. Erbjud samfrakt bredvid metoden visar metoden som vanligt och lägger till valet Samfrakt med tidigare order för 0 kr när kunden har en order på väg, så en metod räcker. Metoden är samfrakt är det tidigare beteendet, och en ikryssad ruta från 0.64.0 blir det läget.
* Samfraktsvalet visar inte metodens undertext, transportörens logga eller ombudsval.
* Kundens valda frakt står kvar när samfrakten dyker upp eller försvinner i kassan. Tidigare valde WooCommerce om från början, så en kund som valt fri frakt kunde hamna på en betald metod.
* Visas för kundtyp står före Visas för i metodernas inställningar.

= 0.64.1 =
* Inställningssidan går inte längre att scrolla i sidled. Bara de breda tabellerna scrollar, inom sin egen ruta.

= 0.64.0 =
* Samfrakt även i vanliga kassan. Rutan Samfrakt på en Fast pris-metod visar metoden bara för kunder vars e-post har en order i Behandlas eller Pausad, aldrig som enda leveransval. Ordrar med metoden bokas inte och kopplas vid betalningen till kundens tidigare order, som samfrakt i Kustom-kassan.
* En samfraktsorder kopplas bara när den betalas. En order som redan var betald kopplas inte i efterhand när dess rad i Kustom-tabellen ändras till Samfrakt.

= 0.63.3 =
* Samfrakt från och Samfrakt med i orderlistans kolumn Frakt radbryts i stället för att gå in i kolumnen bredvid när flera ordrar är kopplade.

= 0.63.2 =
* Rutan Fraktmetod i kassan på inställningssidan är borttagen. Systemkrav visas som en rad i sidans bredd.

= 0.63.1 =
* Samfraktsraden visas där den ligger i tabellen Fraktalternativ i stället för alltid sist, så handlaren avgör om den ska stå överst.

= 0.63.0 =
* En samfraktsorder kopplas vid betalningen till kundens order som ska skickas, med noteringar och länkar åt båda hållen. Fraktjakt-rutan på den ordern visar vilka varor som ska packas med.
* Kolumnen Frakt i orderlistan visar Samfrakt, Hämta i butik eller Bokas inte för ordrar som inte bokas, och Samfrakt från på ordern som samfrakten skickas med.

= 0.62.2 =
* En samfraktsorder visar texten för samfrakt även om samfraktsraden ändrats i tabellen efter köpet.

= 0.62.1 =
* Samfraktsraden i Kustom-kassan visas alltid som leverans utan ombudsval, varorna följer med den tidigare ordern.

= 0.62.0 =
* Kolumnen Bokas inte i Fraktalternativ heter nu Bokning och har valet Samfrakt i Kustom-kassan. En samfraktsrad bokas inte, visas sist och bara för kunder vars e-post har en order som inte skickats än.
* Infopanelerna på sidan Fraktjakt ligger nu ovanför inställningarna, som får sidans hela bredd.
* Listorna Typ, Transportör och Kundtyp i Fraktalternativ är bredare, så valen syns i sin helhet.
* Avinstallation tar bort även Walley-lägets inställningar och inloggning, inte bara Kustom-lägets.

= 0.61.0 =
* Nytt fält Undertext i kassan på Fast pris, Gratis frakt och Hämta själv. Texten visas på en rad under fraktvalets namn, till exempel Leverans 2-4 dagar.
* Loggvarningen om att Fraktjakts fraktval saknas i Kustom-kassan skrivs inte längre när kunden bytt till ett annat betalsätt.

= 0.60.0 =
* Ny kolumn Fri frakt från i Fraktalternativ i Kustom- och Walley-kassan. Når varorna beloppet visas raden för 0 kr.
* Rader i Fraktalternativ kan dupliceras med en knapp på raden.

= 0.59.0 =
* Ny kolumn Bokas inte i tabellerna Fraktalternativ i Kustom- och Walley-kassan. Ordrar där kunden valt en sådan rad bokas aldrig hos Fraktjakt, till exempel Samfrakt med tidigare order.
* Massbokningen hoppar över ordrar med Hämta i butik eller Bokas inte.
* Ordrar med Hämta i butik eller Bokas inte kan bokas med knappen Boka ändå på ordern.
* Testad med WooCommerce 11.1.

= 0.58.1 =
* Fri frakt över beloppsgränsen kunde få tillbaka sitt pris i kassan när butiken också kör YayCurrency. YayCurrency räknar om fraktpriset ur metodens inställningar efter att tillägget nollat det. Nollningen ligger nu sist i kedjan och hålls kvar genom YayCurrencys egen krok.
* Kunder som handlar i en annan valuta än butikens med YayCurrency räknas nu om till butikens valuta innan varukorgen prövas mot fri frakt-gränsen, min- och maxbeloppen och tjänstegränserna. Tidigare jämfördes beloppet i kundens valuta rakt av, så gränsen slog vid fel belopp. Samma omräkning gäller varukorgsvärdet och styckpriserna som skickas till Fraktjakt vid prisfråga och bokning. Fraktjakt får då butikens valuta, så priserna kommer tillbaka i den och räknas om av valutatillägget som andra fraktpriser. Butiker utan valutatillägg, eller med ett annat, märker ingen skillnad.

= 0.58.0 =
* Ny knapp Uppdatera tjänstelistan på sidan Fraktjakt i adminmenyn. Listan över tjänster från Fraktjakt sparas i sex timmar, så en tjänst som nyss slagits på i Fraktjakt kunde saknas i valen tills dess. Knappen hämtar listan på nytt och visar hur många tjänster som kom tillbaka, eller Fraktjakts felmeddelande.

= 0.57.1 =
* Kundens val ur Kustom-kassan kunde ligga kvar som fraktrad i butikens vanliga kassa efter ett byte av betalsätt, förvald och med Kustom-tabellens pris. WooCommerce återanvände raterna ur sin cache utan att fråga om valet fortfarande gällde. Fraktpaketet bär nu valet, så raterna räknas om när det ändras eller slutar gälla. Samma sak i Walley-läget.

= 0.57.0 =
* Stöd för fraktvalet inne i Walley Checkouts kassa. Slå på Walley-läget under Fraktjakt i adminmenyn, skicka endpoint, användarnamn och lösenord till Walley Merchant Services och fyll i tabellen Fraktalternativ i Walley-kassan. Alternativen visas i Walleys kassa med fasta priser, ombudslista och Hämta i butik, kundens val blir en fraktrad på ordern och bokningen går via Fraktjakt som vanligt. Kräver Walley Checkout för WooCommerce och en kassaprofil hos Walley med leveransmodulen.
* Nytt leveranssätt Fraktjakt i Walley-kassan för fraktzonerna, med samma påminnelser som Kustom-läget när det saknas i en zon eller en order kommer in utan kundens fraktval.
* Kundens val ur Kustom-kassan kunde dyka upp som en extra fraktrad i butikens vanliga kassa när ett annat betalsätt låg först bland betalsätten. Valet räknas nu bara när Kustom är kassan kunden möter, samma regel som Kustom Checkout själv följer.

= 0.56.0 =
* Nytt filter dt_frakt_coupon_free_rate. En rabattkod med "Tillåt fri frakt" nollar som förut alla Fraktjakt-tjänster i kassan, men med filtret kan butiken låta koden gälla bara vissa tjänster och låta övriga behålla livepriset.

= 0.55.0 =
* Rabattkoder med fri frakt gäller nu i Kustom-kassan. Tillägget märker Kustom-ordern när en giltig kod med "Tillåt fri frakt" ligger i varukorgen, och alternativen i iframen visas då utan kostnad. Gränserna för vikt och värde gäller som förut.
* Ny radtyp Hämta i butik i Fraktalternativ i Kustom-kassan. Butiksadressen ur WooCommerces inställningar visas som hämtställe i iframen, och ordern bokas inte hos Fraktjakt.
* Hinner ombudslistan inte fram serveras ombudsraden som Kustoms typ för ombud utan känd plats, i stället för som en ombudsrad utan lista.
* Påminnelsen om en Kustom-order utan fraktval nämner även fallet att Kustom visade sina reservalternativ.
* Fraktmetoden Fraktjakt i Kustom-kassan sätts tillbaka i kassans rater när WooCommerces inställning för att dölja fraktavgifter vid fri frakt, eller ett tillägg med samma regel, tagit bort den. Utan det kunde köpet avbrytas med "The shipping methods have been changed" så fort en fri frakt-kod låg i varukorgen.
* Loggen visar vilka rater kassan hade om kundens val i Kustom-kassan inte hittas bland dem, så orsaken går att se i efterhand.

= 0.54.1 =
* Köp i Kustom-kassan kunde avbrytas med "The shipping methods have been changed" när WooCommerce räknade om fraktvalet under själva köpet, till exempel när fri frakt fanns bland zonens metoder. Kundens val i iframen står nu kvar även då.

= 0.54.0 =
* Ny påminnelse när Fraktalternativ i Kustom-kassan är påslaget men kryssrutan Shipping methods in iframe är av i Kustom Checkouts inställningar. Med den av får ordrarna dubbla fraktrader hos Kustom och pausas.
* Påminnelsen om fraktzoner säger var leveranssättet läggs till och att alternativtabellen inte räcker.

= 0.53.0 =
* Dintero Checkout känns igen. Ombudslistan levereras till Dinteros kassa på samma sätt som till Qliro och Avarda, och kundens val läses tillbaka vid bokningen.
* Tilläggets egen ombudsväljare visas inte i ordersammanfattningen när Dintero visar fraktvalet i sin iframe, den ritar sin egen väljare ur samma lista.

= 0.52.0 =
* Ombudssökningarna i Kustom-kassan delar på en tidsbudget. Hinner de inte serveras alternativen utan ombudslista, i stället för att hela svaret blir för långsamt och Kustoms reservfrakt tar över.
* Loggen visar hur lång tid varje KSA-svar tog, på felsökningsnivå.

= 0.51.0 =
* Ny kolumn Länder i Fraktalternativ i Kustom-kassan. Ange vilka leveransländer en rad gäller, till exempel DE, AT. EU står för unionens alla länder, så momsfri exportfrakt byggs med en EU-rad och en rad för länderna utanför. Tomt gäller alla länder som förut.
* Tabellen Fraktalternativ i Kustom-kassan ryms nu på skärmen utan sidoscroll. Kolumnförklaringarna visas när pekaren hålls över rubrikerna, och vikt- och värdegränserna står ovanpå varandra.
* En ruta på inställningssidan länkar till dokumentationen på detroj.se.
* Ny kolumn Kundtyp i Fraktalternativ i Kustom-kassan. Visa en rad för alla, bara företag eller bara privatpersoner, enligt köparens uppgift i Kustom-kassan.
* Ny inställning Visas för kundtyp på fraktmetoderna. Visa en metod för alla, bara företag eller bara privatpersoner. Företag är kunder som fyllt i företagsfältet i kassan.
* Momsen i Fraktalternativ i Kustom-kassan anges nu fritt i procent, till exempel 21 för Nederländerna. Butiker som tar destinationslandets moms kan ge varje landsrad rätt sats.
* Fraktetiketten för en enskild order öppnas i en ny flik i stället för att laddas ner, så den kan skrivas ut direkt. Massåtgärden laddar ner som förut.

= 0.50.0 =
* Ny inställning Visas för på fraktmetoderna. Visa en metod för alla kunder, bara inloggade eller bara gäster.
* Fraktpriserna räknas om när kunden loggar in eller ut.
* Raderna i Fraktalternativ i Kustom-kassan kan sorteras med draghandtaget. Kassan visar dem i tabellens ordning.
* Metoden Fraktjakt heter nu Fraktjakt (livepriser) i listan över leveranssätt. Befintliga zoner påverkas inte.

= 0.49.1 =
* Texten under alternativtabellen i Kustom Shipping Assistant förklarar var radens namn syns. Kassan benämner alternativen efter typ tills portalreglaget Naming controlled by TMS är på, och ordern får alltid radens namn.
* KSA-läget beskrivs inte längre som beta i readmen.

= 0.49.0 =
* Fraktradens interna uppgifter, sändnings-id, tjänst, transportör med flera, visas inte längre under fraktraden på orderskärmen. De ligger kvar på ordern och bokningen använder dem som förut.
* Metoden Fraktjakt i Kustom-kassan heter nu så även i zonlistan, i stället för bara Frakt. Kundens fraktrad påverkas inte, den får sitt namn från alternativet kunden valde.

= 0.48.14 =
* REST-åtkomsten: adresskontrollen som avgör vilka anrop som får använda WooCommerce-nycklar prövar nu sökvägen och rest_route var för sig, i stället för att leta efter namnet var som helst i adressen.

= 0.48.13 =
* Belopp skrivna med tusentalsmellanslag, till exempel 1 500, tolkas nu överallt.
* Gränser per Fraktjakt-tjänst, vikt och värde står som intervall i två kolumner i stället, och värdekolumnen visar butikens valuta.
* Vikt- och värdegränserna säger i hjälptexten att värdet räknas efter rabattkoder, alltså på det kunden betalar.

= 0.48.9 =
* Raka hörn i Fraktjakts adminsidor i stället för rundade.
* Consignor-nyckeln visas som maskerade prickar när en nyckel är sparad. Nyckeln själv skrivs fortfarande aldrig ut på sidan, och antalet prickar är fast så nyckelns längd inte avslöjas. Ett tomt fält behåller den sparade nyckeln, kryssrutan under fältet tömmer den.
* Klarare text om fraktmetoder i zonerna, och kravet på metoden i Kustoms kassa syns nu även innan läget slås på.
* Färre självklara texter på inställningssidan.

= 0.48.5 =
* REST-åtkomsten: dokumentlänkarna går nu att följa med samma WooCommerce-nyckel som läste ordern. Tidigare fick integrationen länkarna men nekades när den försökte hämta dem, eftersom WooCommerce nyckelautentisering bara gäller deras egna adresser.

= 0.48.4 =
* Gränser för vikt och värde per rad i Kustoms kassa. Kolumnerna Vikt (kg) och Värde i Fraktalternativ i Kustom-kassan döljer raden när varukorgen ligger utanför. Tomt fält betyder ingen gräns, noll som högsta vikt betyder att raden aldrig visas. Ligger alla rader utanför sina gränser visar Kustom butikens vanliga fraktmetoder i stället.
* Orderraderna till Kustom bär produktens vikt, och måtten när kryssrutan för produktmått är i. Det är den vikten Kustom räknar samman och skickar tillbaka, alltså den gränserna mäts på. Butiker utan vikt på produkterna filtreras inte på vikt, eftersom det inte finns något att mäta.
* Inställningar som bara styr butikens egen kassa säger det nu, när Kustoms kassa är påslagen: transportörslogotypen, produktmåtten och fraktmetodens inställningar i zonen. Butiker utan Kustoms kassa ser ingen extra text.
* Loggen säger till när gränserna döljer ett alternativ, med vikten och värdet som mättes, så ett alternativ som saknas i kassan går att förklara utan gissningar. Den noterar också om Kustom ändrar form på sina anrop. Bara fältnamn och summor skrivs, aldrig kundens uppgifter.

= 0.46.6 =
* Varukorgen visar ingen frakt när läget för Kustoms kassa är påslaget. Fraktpriset bestäms av kundens val i Kustoms kassa, och varukorgens gissning ur zonens vanliga metoder blev en annan summa än den kunden sedan fick betala. Gäller klassisk varukorg, blockvarukorg och de temauppdateringar som ritar om summan utan att ladda om sidan. Kassan är orörd, så butiker med fler betalsätt väljer frakt som vanligt där.
* Fraktraden från Kustoms kassa bär med sig valutan, så valutaväxlare inte räknar om ett belopp som redan är i kundens valuta.

= 0.46.3 =
* Fler tester kring gränser per Fraktjakt-tjänst och fraktmetoderna i Kustom-kassan. Ingen funktionsändring.

= 0.46.2 =
* Städning i koden efter granskning, ingen funktionsändring. Påminnelsen om fraktzoner använder inställningens namn i stället för förkortningen KSA.

= 0.46.1 =
* Valutafältet i fraktalternativen kapas till en valutakod på tre bokstäver även när något annat klistras in.
* Avinstallationen städar även den nya inställningen för avstånd till ombud.

= 0.46.0 =
* Ombudslistan i kassan visar inte längre avståndet till ombudet som standard. Avståndet kommer från transportören och stämmer inte alltid, bland annat för att det ibland mäts fågelvägen. Vill du visa det ändå finns kryssrutan under Fraktjakt, Avstånd till ombud.
* Kustom Shipping Assistant: fraktalternativen kan anges per valuta. Lämna valutakolumnen tom för butikens egen valuta, och lägg en rad per valuta med rätt belopp när butiken säljer i flera. Kunden får bara raderna för sin valuta.
* Kustom Shipping Assistant: en notis i adminen när en order från Kustom-kassan kommit in utan kundens fraktval, i stället för att det bara syns i loggen.

= 0.45.6 =
* Kustom Shipping Assistant: inga fraktalternativ serveras när kassans valuta skiljer sig från butikens. Priserna i tabellen är angivna i butikens valuta, och samma siffra i en annan valuta hade blivit fel belopp.

= 0.45.5 =
* Varje varuslag märks nu som fraktat i anropen till Fraktjakt. Fraktjakt lämnade annars en rådgivande anmärkning på bokningen om att uppgiften saknades.
* Kustom Shipping Assistant: loggen säger till om varukorgen delats i flera fraktpaket av ett annat tillägg. Kustom-kassan ger ett fraktval för hela ordern, så delade sändningar stöds inte i KSA-läget.

= 0.45.4 =
* Upplysningen om fraktmoms i KSA-tabellen visas som vanlig hjälptext i stället för en varningsruta, och pekar ut var inställningen ändras. Att sälja frakt utan moms är ett giltigt val, och det ska inte se ut som ett fel.

= 0.45.3 =
* Kustom Shipping Assistant: tabellen upplyser om att fraktbeloppet bokförs utan moms när butikens momsklass för frakt saknar momssatser.

= 0.45.2 =
* Kustom Shipping Assistant: fraktbeloppet på ordern blir nu detsamma som kunden betalade i Kustom-kassan även när butikens momsinställning för frakt saknar momssats. Tidigare drogs momsen av utan att läggas tillbaka, ordern blev billigare än köpet och Kustom pausade den.

= 0.45.1 =
* Påminnelsen om fraktzonen visas nu bara på Fraktjakts inställningssida och WooCommerces fraktinställningar, i stället för på alla WooCommerce-sidor. Kontrollen kostade ett tjugotal databasfrågor per sidladdning.
* Uppslaget av fraktzonens metod görs en gång per anrop i stället för vid varje omräkning i Kustom-kassan.

= 0.45.0 =
* Kustom Shipping Assistant: en påminnelse i adminen när KSA-läget är på men fraktmetoden "Fraktjakt i Kustom-kassan" saknas i en fraktzon som används. Utan metoden i zonen kan kundens val inte bli en fraktrad.
* Kustom Shipping Assistant: loggen säger till om en order från Kustom-kassan skapas utan kundens fraktval, så ett trasigt läge upptäcks direkt i stället för efter tio ordrar.

= 0.44.2 =
* Kustom Shipping Assistant: kundens fraktval pekas nu på rätt fraktrat i zonen, med instansnummer. Utan det avbröt Kustom köpet med ett meddelande om att fraktmetoderna ändrats.
* Kustom Shipping Assistant: loggen säger till när fraktmetoden "Fraktjakt i Kustom-kassan" saknas i kundens fraktzon.

= 0.44.1 =
* Kodstädning efter kodstandarden. Ingen funktionsändring.

= 0.44.0 =
* Kustom Shipping Assistant: kundens val i Kustom-kassan blir nu en fraktrad på ordern utan extra tillägg. Lägg till fraktmetoden "Fraktjakt i Kustom-kassan" i de fraktzoner där Kustom används. Metoden visas aldrig i den vanliga kassan.
* Kustom Shipping Assistant: fraktradens moms följer beloppet kunden såg i kassan, och skiljer sig summorna ändå åt får ordern en notering om det.

= 0.43.2 =
* Transportörens logotyp i kassan blir DSV när fraktmetodens namn nämner både DSV och Schenker, till exempel "Ombud DSV fd. Schenker". Ett namn som bara nämner Schenker ger som förut Schenker-logotypen.
* Kustom Shipping Assistant: kunden kan nu välja utlämningsställe direkt i Kustom-kassans iframe. Alternativraden ska ha typen utlämningsställe eller paketskåp och en vald Fraktjakt-tjänst, så hämtas ombuden för den tjänsten. Valt ombud följer med till bokningen.
* Kustom Shipping Assistant: leveranstiden skickas i det format Kustom väntar sig, och fältet anges nu i dagar, till exempel 1-3.
* Kustom Shipping Assistant: fraktalternativen ligger kvar när Fraktjakt-sidan sparas med KSA-läget avstängt. Tidigare tömdes tabellen vid en sådan sparning.
* Inställningarnas tabeller för fraktalternativ och tjänstegränser rullar i sidled på smala skärmar i stället för att pressa ihop fälten.

= 0.42.0 =
* Mappade fraktmetoder kopplade till en hemleveranstjänst visar inte längre ombudsväljaren. Väljaren styrs nu av Fraktjakts uppgift om tjänsten levererar till ombud, samma som livepriserna redan gjorde. Tidigare kunde en mappad hemleveranstjänst felaktigt få en ombudsväljare.

= 0.41.0 =
* En produkts mått skickas nu till Fraktjakt bara när längd, bredd och höjd alla är ifyllda. Ett halvt måttset kunde tolkas fel av paketeringen, till exempel 120x80 utan höjd som pallfrakt. Saknas något mått styr vikten paketvalet som förut. Vikt skickas alltid.

= 0.40.0 =
* Leveranstiden i kassan är nu dold som standard. Fraktmetoder där inställningen redan sparats behåller sitt val, och tiden kan visas igen med samma kryssruta som förut.
* Rabattkoder med "Tillåt fri frakt" ger nu fri frakt på Fraktjakts livepriser. Tidigare påverkade den inställningen bara Woos egna fraktmetoder. Observera att koden nollar samtliga livepriser, så kunden kan välja vilken transportör som helst utan fraktkostnad, på samma sätt som fri frakt-gränsen alltid fungerat.
* Ny kryssruta vid fri frakt-gränsen som räknar gränsen på varukorgens värde före rabattkoder. Utan kryss gäller som förut vad kunden faktiskt betalar, så en rabattkod som drar ner värdet under gränsen tar bort fri frakten. Med kryss behåller kunden fri frakten. Finns på både livepriserna och mappade metoder.

= 0.39.0 =
* Ombudslistan i kassan är kortad till namn och avstånd, till exempel "ICA Kvantum Teleborg (2.3 km)". Gatuadressen dubblerade ofta namnet, paketskåpen heter gatan de står på. Staden visas bara när ombuden i listan ligger i olika städer. Ombudets fulla adress följer med ordern via bokningen och visas på orderns sida och i spårningsmejlet när sändningen är bokad.

= 0.38.0 =
* Tullavsnittet på inställningssidan visar nu bara var tulluppgifterna ställs in, per produkt under Produkt → Frakt. De globala standardfälten för Taric-/HS-kod, ursprungsland och tullbeskrivning är borttagna, ett gemensamt standardvärde blir fel uppgift på tulldokumenten när produkterna skiljer sig åt. Produkter utan egna uppgifter täcks av Innehållsmallar i Fraktjakt-kontot.
* Spårningsmejlet till kunden når nu fram även när Fraktjakt skickar spårningsnumret i ett separat anrop efter skickat-statusen, eller när sändningen går direkt till levererad. Tidigare kunde mejlet utebli i de sekvenserna, spårningen fanns då bara på orderns sida under Mina sidor.

= 0.37.2 =
* Diverse buggfixar och förbättringar.

= 0.37.1 =
* Tabellen för Kustom-kassans fraktalternativ har fått riktiga kolumnbredder. Rubrikerna bröts mitt i orden och fälten klämdes ihop, eftersom tabellen ärvde bredderna från gränstabellen som har färre kolumner.

= 0.37.0 =
* Fraktalternativen från liveprissökningen sorteras nu billigast först i kassan. Tidigare visades de i den ordning Fraktjakts prissvar listade dem, vilket kunde lägga ett billigare alternativ sist. Sorteringen görs på det verkliga priset, så ordningen står sig även när fri frakt-gränsen nollar det kunden betalar.
* Rater som nollats av fri frakt-gränsen märks med "(gratis frakt)" i klassiska kassan och på varukorgssidan, som annars inte skriver ut något pris alls på en nollad rad. Gäller både livepriserna och mappade metoder med gränsen satt, och liverater som Fraktjakt själv prissatt till noll. Block-kassan visar redan sitt eget Gratis på nollrater och påverkas inte.
* Rutan med webhook-testanrop på inställningssidan är borttagen. Själva webhook-mottagningen är oförändrad.
* Beloppsfälten på fraktmetoderna (fri frakt över belopp, vikt- och värdegränser) tål nu tusentalsavgränsare, "1 000" tolkas som 1000. Tidigare ignorerades värdet tyst och regeln slog aldrig till.

= 0.36.0 =
* KSA-stödet fick sin konfigurationstabell. Bygg fraktalternativen som visas i Kustom-kassan med namn, typ, transportör, pris inklusive moms, momssats och leveranstid, och mappa varje alternativ till den Fraktjakt-tjänst som ska bokas. Lämnas tjänsten tom väljer Fraktjakt billigaste. Kustom-ordrar bokas nu automatiskt enligt kundens val i kassan, och matchningen sker bara på ordrar lagda genom Kustom Checkout.

= 0.35.1 =
* KSA-förhandsversionen svarar nu även på GET för en reservation, Kustoms kompletta testflöde läser tillbaka sändningen efter köpet. Uppdateringar av en reservation skickar inte längre någon Location-header, den fick svaret att omdirigeras i stället för att bekräfta.

= 0.35.0 =
* Teknisk förhandsversion av Kustom Shipping Assistant-stöd. Butiken kan leverera fraktalternativ med fasta priser direkt till Kustom Checkouts kassa, medan bokningen sker via Fraktjakt som vanligt. Avstängt som standard och under utprovning, aktivera inte i skarp drift ännu.

= 0.34.1 =
* Fraktmetodens viktgränsfält hänvisar nu till var gränser för enskilda Fraktjakt-tjänster ställs in, de två inställningarna var lätta att blanda ihop.

= 0.34.0 =
* Transportörslogotyperna i kassan hämtas nu ur transportörsuppgiften i Fraktjakts prissvar i stället för att tolkas ur tjänstens visningsnamn. Logotypen står därmed kvar även när tjänsterna döpts om i Fraktjakt. Äldre offerter i cachen och mappade metoder använder namntolkningen som förut.

= 0.33.0 =
* Kassan räknar om fraktpriserna när företagsfältet fylls i eller töms, så företagskunder ser företagstjänsterna och företagspriserna direkt. Tidigare stod privatpriserna kvar tills något annat (postnummer, varukorg) utlöste en omräkning, eftersom WooCommerce inte räknar företagsfältet som prispåverkande. Gäller både klassiska kassan och block-kassan. Bokningen har hela tiden blivit korrekt företagsleverans, det som stängs är prisglappet mellan kassa och bokning.

= 0.32.1 =
* Webbläsarens inbyggda lösenordshanterare erbjuder sig inte längre att spara eller fylla i consignor-nyckeln. Externa hanterare (Dashlane, 1Password, LastPass) var redan hanterade, nu täcks även webbläsarens egen.
* Tjänstesökningen i inställningarna använder inte längre en utfasad jQuery-funktion.

= 0.32.0 =
* Automatiska uppdateringar för zip-installerade butiker: tillägget hämtar nu nya versioner via Kernl och visar dem i WordPress vanliga uppdateringsflöde. Versionen från wordpress.org kommer inte att innehålla den här kanalen, där sköter katalogen uppdateringarna.

= 0.31.1 =
* Kompatibilitetsfälten uppdaterade: WooCommerce 11.0 och WordPress 7.0.

= 0.31.0 =
* Tilläggets mapp, huvudfil och text domain heter nu fraktjakt. Vid uppdatering från en äldre version: avaktivera den gamla versionen och ta bort dess filer via filhanteraren eller FTP (inte via Radera-knappen, som även rensar inställningarna), installera sedan den nya zippen och aktivera. Inställningar, ordrar och sändningsdata påverkas inte av bytet.

= 0.30.0 =
* Inställningssidan visar Fraktjakts logotyp i ett ljust sidhuvud i stället för textrubriken.

= 0.29.1 =
* Internt underhåll: kodkommentarer omformulerade för tydlighet. Ingen funktionsändring.

= 0.29.0 =
* Ny inställning på fraktmetoden: prisavrundning. Jämnar till livepriserna i kassan, alltid uppåt, till hela kronor eller till närmaste 9 kr, så 96,18 kr blir 99 kr. Avrundningen görs på priset inklusive moms, alltså det kunden ser, och momssatsen hämtas från butikens fraktskatteinställning, så butiker med 6 eller 12 procents moms eller momsfri försäljning landar också på jämna belopp. Bokningen hos Fraktjakt kostar fortfarande det verkliga priset, mellanskillnaden tillfaller butiken. Standard är ingen avrundning.

= 0.28.2 =
* Svenska inrikesordrar skickar nu leveransspråk (sv) till Fraktjakt, så mottagaren aviseras på svenska. Tidigare sattes språk bara på utlandsordrar, vilket gav en rådgivande varning från Fraktjakt på inrikesordrar.

= 0.28.1 =
* Ombudsväljaren i block-kassan behåller ditt val medan det sparas, även om anropet är långsamt eller misslyckas. Tidigare kunde väljaren hoppa tillbaka till föregående ombud under sparningen.
* Statusuppdateringar från Fraktjakt tas emot även för ordrar som ligger i papperskorgen, så en återställd order inte står kvar med gammal status.
* Ett ofullständigt svar från Fraktjakt tolkas inte längre som ett lyckat svar.
* Ordrar som ett kollisplittande tillägg delat i flera fraktrader loggas nu, eftersom bara den första sändningen bokas automatiskt.
* Vid avinstallation tas även inställningen för gränser per Fraktjakt-tjänst bort.
* Fler fel skrivs till loggen för enklare felsökning: misslyckad retur, ogiltig webhook-payload och misslyckad REST-hämtning av en frakthandling.

= 0.27.4 =
* Pluginens version visas nu subtilt i Systemkrav-rutan på Fraktjakt-inställningssidan.

= 0.27.3 =
* Lösenordshanterare (Dashlane, 1Password, LastPass) autofyller inte längre över Consignor ID och nyckel. Fälten är API-konfiguration, inte inloggningsuppgifter, och markeras nu med respektive hanterares officiella ignorera-attribut så en sparad inloggning inte skriver över nyckeln.
* Tabellen för gränser per Fraktjakt-tjänst spränger inte längre ut ur inställningskortet när rader läggs till. Fast tabellayout där fälten fyller sin cell.

= 0.27.2 =
* Internt underhåll: komma-tolkningen av vikt- och värdegränser samlas i en delad hjälpare i stället för att upprepas. Ingen funktionsändring.

= 0.27.1 =
* Block-kassans ombudsväljare namnger nu den valda tjänsten i rubriken (till exempel "Utlämningsställe för DHL Ombud"), så det är tydligt vilket fraktalternativ den hör till.
* Länk till Fraktjakts guide om USA:s skärpta tullregler vid tullbeskrivnings-fältet på produktens Frakt-flik.

= 0.27.0 =
* Ny inställning under Fraktjakt: gränser per Fraktjakt-tjänst. Sätt min och max vikt samt min och max värde för en enskild tjänst, till exempel Varubrev, så döljs just den tjänsten i kassan när varukorgen ligger utanför gränserna, medan övriga tjänster står kvar med sina livepriser. Typfall: styr bort dyra eller tunga varor från Varubrev till en försäkrad transportör. Gäller live-metoden Fraktjakt.

= 0.26.1 =
* Tydligare förklaringar i fraktinställningarna. Fraktjakt-metoden beskriver nu att priserna styrs från Fraktjakt, och de metoder där man mappar en Fraktjakt-tjänst (fast pris med flera) förklarar att priset styrs från WooCommerce. Ingen funktionsändring.

= 0.26.0 =
* Ny inställning på Fraktjakt-fraktmetoden: "Dölj leveranstiden i kassan". Med den påslagen visas frakttjänsterna utan tiden inom parentes, till exempel "DHL Ombud" i stället för "DHL Ombud (2 dagar)". Av som standard.

= 0.25.2 =
* Ombudsväljaren visas nu i block-kassan även när pluginen laddas före WooCommerce. Väljarens skript kunde tidigare utebli i just den laddningsordningen, trots att ombudsdatan fanns, så väljaren saknades i block-kassan medan den klassiska kassan fungerade. Skriptet läses nu in oberoende av laddningsordningen.

= 0.25.1 =
* Massåtgärderna för frakthandlingar kontrollerar behörighet i egen rätt, utöver den nonce WordPress redan kräver, i linje med övriga massåtgärder i pluginen. Ingen funktionsändring.

= 0.25.0 =
* Frakthandlingarna kan nu laddas ner en sort i taget. På orderlistan finns separata massåtgärder för fraktetiketter, plocklistor och följesedlar, så du kan skriva ut till exempel bara etiketterna för många ordrar på en gång. I ordervyn listas handlingarna grupperade per sort. Tidigare slogs alla sorter ihop till en fil. Gäller frakt som bokas från och med den här versionen, då Fraktjakt först då börjar typa handlingarna i din butik. Alternativet "alla frakthandlingar" finns kvar och tar med även äldre ordrar.

= 0.24.1 =
* Reservfraktens pris tolkar nu svenskt decimalkomma. Ett värde som 89,50 lästes tidigare som 89. Övriga prisfält hanterade redan komma.
* Städar även bort inställningarna för tjänstevalidering och REST-exponering vid avinstallation.

= 0.24.0 =
* Butiksstyrd bokning med validering (0.23.0): svarar Fraktjakt att den mappade tjänsten inte går att skicka till leveransadressen, bokas den inte längre ändå via reservvägen. Den skulle annars skapa en sändning som fastnar för manuell hantering hos Fraktjakt. Bokningen felar i stället med en tydlig ordernotering, så handlaren kan rätta adressen eller tjänste-mappningen. Reservvägen (Shipment API) används fortfarande när valideringen inte kunde göras, alltså när Fraktjakt inte svarar eller inte lämnar något offert-id.

= 0.23.1 =
* Robusthet i den butiksstyrda valideringen från 0.23.0: tjänste-id jämförs nu på bastjänstens id, så anpassade (9000-prefixade) tjänster valideras rätt i stället för att tyst falla tillbaka. Ingen beteendeändring.

= 0.23.0 =
* Butiksstyrd bokning kan nu valideras mot Fraktjakt innan sändningen skapas. Ny inställning under Automatik, av som standard: när den är på kontrollerar Fraktjakt först att den mappade tjänsten går att skicka till adressen, via en snabb sökning utan att hämta pris från fraktbolagen, och bokar sedan via Order API. Går valideringen inte igenom bokas ordern som förut via Shipment API. För butiker med fasta fraktpriser.

= 0.22.0 =
* REST-åtkomsten för externa integrationer är nu en opt-in-inställning, av som standard. Slå på den under Fraktjakt → Integrationer först när du kopplar en integration, till exempel en tjänst som hämtar frakthandlingar. Butiker utan integration exponerar då ingen API-yta i onödan. Borttagningen av pluginens interna ordermeta ur REST-svaret gäller oavsett, som säkerhetsåtgärd.

= 0.21.0 =
* Autentiserad nedladdning av frakthandlingar via REST för externa integrationer. dt_frakt.documents pekar nu på en WordPress-endpoint som hämtar handlingen från Fraktjakt server-side och streamar tillbaka PDF:en, så Fraktjakts egna dokumentlänkar aldrig lämnar servern. Endpointen kräver behörighet att hantera WooCommerce och autentiseras med ett application password.

= 0.20.2 =
* REST-härdning: borttagningen av pluginens interna ordermeta ur REST-svaret täcker nu även den äldre v1-order-endpointen, inte bara v2/v3. Robustare dokumenthantering i svaret.

= 0.20.1 =
* Spårningen visas inte längre två gånger i skickat-mejlet till kunden. Notisen om att paketet skickats bär redan spårningsnumret i sin text, så det separata spårningsblocket ritas inte i just det mejlet. Övriga kundmejl och kundens ordersida är oförändrade.

= 0.20.0 =
* Sändningsdata på orderns REST-svar för externa integrationer. Ett läsbart dt_frakt-objekt på /wc/v3/orders med spårningsnummer, status och frakthandlingarnas URL:er, så en tjänst utanför WordPress (till exempel en bot som hämtar och skickar fraktsedlar) kan läsa datan utan ett eget tillägg på plats. Avstängbart via filtret dt_frakt_expose_rest.
* Pluginens interna ordermeta exponeras inte längre i REST-svarets meta_data. En integration med enbart läsbehörighet ser bara det sammanställda dt_frakt-objektet med spårning och frakthandlingar, inte pluginens övriga interna fält.
* Synkade den interna versionskonstanten med pluginversionen. Den släpade efter sedan 0.19.4, utan effekt eftersom inga assets ändrats sedan dess.

= 0.19.6 =
* "Markera som avbokad" tar nu orderns bokningslås som övriga sändningsåtgärder, så en samtidig statuswebhook inte kan trampa på skrivningen. Det var tidigare den enda tillståndsskrivningen utan lås.
* Webhooken skriver inte längre över en levererad sändnings status med en sen sidostatus utanför förloppet (till exempel "kräver åtgärd" efter "levererad"). Övergång till returnerad eller avbokad fungerar som förut.

= 0.19.5 =
* Ombudsväljaren visas nu i blockkassan även när ombudsraten ligger i ett annat paket än det första (fraktdelande tillägg som splittrar varukorgen). Klassiska kassan hanterade det redan. Blockkassan tittade bara på första paketet och kunde då sakna väljaren.
* Förtydligad hjälptext för tullbeskrivningen: ett tomt fält använder butikens standard-tullbeskrivning om en sådan är satt, annars produktens korta beskrivning. Texten nämnde tidigare inte butiksstandarden.

= 0.19.4 =
* Tydligare hjälptext för tullbeskrivningen (produktens Frakt-flik och butiksstandarden): beskrivningen bör svara på vad varan är, vad den är gjord av och vad den används till. Vissa länders tull, till exempel USA:s, kan bötfälla vaga beskrivningar. Ingen ändrad funktion, bara vägledning.

= 0.19.3 =
* Ombudssökningen i kassan cachar nu ett misslyckat anrop kort (som prissökningen), så en driftstörning inte ger ett nytt timeout-anrop vid varje omkalkylering, och loggar felet synligt i stället för bara i felsökningsläget.
* Massbokning och autobokning hoppar nu även över ordrar som är flaggade som möjligt föräldralösa efter en timeout, så en sändning som redan kan ha skapats och betalats hos Fraktjakt inte bokas om automatiskt till en dubbelsändning. Enskild bokning via orderknappen är oförändrad (handlaren avgör efter portalkoll).
* Webhookens felnotis räknar nu även avvisade anrop med föråldrad Date, inte bara felaktig signatur, så en klockglapp-utlöst avstängning av webhooken blir synlig.
* "Skickat"-mejlet till kunden faller tillbaka på tidigare sparat spårningsnummer om just det webhook-anropet saknar numret.
* Dokumenterat att butiken ska använda SEK: belopp skickas utan valutakonvertering.

= 0.19.2 =
* Tog bort två överflödiga hjälptexter på inställningssidan (under Fraktkonto och Automatik). Rubrikerna och fälten räcker.

= 0.19.1 =
* Städning efter testläges-borttagningen: rättade den interna versionskonstanten (0.19.0 byggdes med fel version, så tillgångar cachades fel), tog bort död CSS för det borttagna testläget, rensade ett par docblocks som fortfarande nämnde test, och lät avinstallationen städa även gamla installationers testnycklar.

= 0.19.0 =
* Testläget är borttaget (kryssrutan och de separata testnycklarna). Det gjorde ingenting i praktiken: hos Fraktjakt styrs test kontra skarpt av integrationens eget läge, inte av pluginen, så fälten var missvisande. Pluginen har nu ett enda nyckelpar. Vill du testa: sätt din integration i testläge hos Fraktjakt, och stäng av det när du är redo för skarpt.

= 0.18.9 =
* Systemkravsrutan visar nu rätt lägsta versioner (WordPress 6.5+, WooCommerce 8.2+).
* Anslutningsrutan i sidhuvudet: varningsläget har en kort etikett ("Kontrollera nyckeln") med hela förklaringen på hover, i stället för en lång text som sprängde bandet. Sidhuvudet radbryter nu i stället för att flöda ut.

= 0.18.8 =
* Sänkt minsta stödda version till WooCommerce 8.2 (HPOS stabil) och WordPress 6.5, från 9.0 respektive 6.7, för bredare räckvidd. Alla moderna WooCommerce-API:er (HPOS, block-kassa, Store API, Action Scheduler) är feature-detekterade, så äldre butiker degraderar mjukt i stället för att gå sönder. PHP-kravet är oförändrat 7.4.

= 0.18.7 =
* Anslutningsrutan visar inte längre grönt "Ansluten" kvar från en tidigare giltig nyckel efter att nyckeln bytts till en ogiltig. Tjänstelistans cache tar nu hänsyn till nyckeln, så ett nyckelbyte tvingar en ny riktig kontroll mot Fraktjakt.

= 0.18.6 =
* Rättar en kritisk krasch på admin-sidor. En nödvändig function_exists-kontroll för wc_get_page_screen_id togs av misstag bort i 0.18.4. Den WooCommerce-admin-funktionen är inte alltid laddad när tillägget initieras, vilket kunde ge ett fatalt fel. Alla sådana kontroller är återställda.
* Mindre: en skriven nyckel vinner över "Rensa sparad nyckel" om båda anges; anslutningsrutan skyller inte på nyckeln när kontot saknar aktiva tjänster; ingen felaktig varning när en avbruten order redan har en levererad sändning.

= 0.18.5 =
* Kryssruta för att rensa en sparad Consignor-nyckel. Nyckelfälten är skrivskyddade (nyckeln lämnar aldrig servern), och kunde annars aldrig tömmas.
* Anslutningsrutan på inställningssidan säger inte längre fel om nyckeln när kontot saknar aktiva frakttjänster, och en avbruten order vars sändning redan är levererad får ingen felaktig varning om att paketet fortfarande skickas.

= 0.18.4 =
* Intern kodstädning (borttagen död kod, enhetligare rendering), inga funktionella ändringar.

= 0.18.3 =
* Rättade en trasig mening i readme och tog bort en dev-fil som följde med i release-zippen.

= 0.18.2 =
* Intern kodstädning (av-duplicering av hjälpfunktioner), inga funktionella ändringar.

= 0.18.1 =
* Massåtgärdens resultatnotis är korrekt även vid synkron bokning, och SSRF-kontrollen för länkar är samlad i en gemensam funktion. Kompatibilitet med WooCommerce 10.9.4 och WordPress 7.0.1 deklarerad.

= 0.18.0 =
* Skydd mot dubbelsändning vid timeout: om en bokning inte får svar i tid (Fraktjakt kan ändå ha skapat och med Automatiskt köp betalat sändningen) flaggas ordern och en note ber handlaren kontrollera i Fraktjakt innan ombokning, med en tydlig varning i fraktrutan. Flaggan rensas när en bokning väl lyckas.
* Webhook-statusen kan inte längre mejla kunden "ditt paket är skickat" två gånger: en terminal status (returnerad/avbokad) skrivs inte över av ett senare linjärt förlopp, en tom status i payloaden rör inte statusen, och shipped-mejlet skickas som mest en gång per sändning.
* En WooCommerce-order som sätts till avbruten eller återbetald medan den har en bokad sändning får nu en note om att sändningen fortfarande skickas om den inte avbokas hos Fraktjakt.
* Anslutningsrutan på inställningssidan provar nycklarna på riktigt (via den redan cachade tjänstelistan) i stället för att bara kolla att de är ifyllda. En felskriven nyckel visas nu som varning i stället för grön "Ansluten".
* Block-kassan deklareras nu som kompatibel (cart_checkout_blocks), vid sidan av HPOS.

= 0.17.1 =
* Misslyckade offertanrop i kassan loggas nu (fraktjakt-loggen), så en handlare kan se varför reservpriser visas i stället för live-priser. Loggas en gång per felfönster tack vare den negativa cachen, så det spammar inte.
* Avinstallation på multisite städar nu alla sajter i nätverket, inte bara de första 100. Rättar att consignor-nycklar kunde lämnas kvar på stora nätverk.

= 0.17.0 =
* Fraktkolumnen i orderlistan är omgjord till ren text i stället för piller, så den väger lättare bredvid WooCommerce egna kolumner. Vikten ligger nu på det som kräver handling: leverans och transportörsrörelse visas grönt med prick, "kräver åtgärd" rött med prick, medan viloläget (bokad, avbokad) är diskret grått utan prick. En Fraktjakt-order som ännu inte bokats visas som "Ej bokad", så man ser direkt vilka som väntar. Ordrar utan Fraktjakt-frakt visar bara ett streck.

= 0.16.5 =
* Statusnoteringen från webhooken skriver nu statusen på svenska ("status fraktsedel klar") i stället för den råa engelska koden ("status ready_to_ship"). Kolumnen, fraktrutan och noteringen delar samma översättning.

= 0.16.4 =
* Fraktjakts rådgivande bokningsvarningar (till exempel att mått saknas för en vara när måttskick är avstängt) läggs inte längre som en notering på varje order. Bokningen lyckas ändå, så de skrivs numera till loggen för felsökning i stället för att skräpa ner ordernoteringarna. Verkliga dokumentfel noteras som förut.

= 0.16.3 =
* Korrigering av 0.16.2: webhooken svarar alltid 200 igen. När ordern är tillfälligt låst skjuts skrivningen upp till bakgrunden (Action Scheduler) och körs när låset släpper, i stället för att svara 503. Fraktjakt stänger av webhooken vid icke-200-svar, så 503 var fel väg.

= 0.16.2 =
* Webhooken tappar inte längre ett anrop om ordern är tillfälligt låst. Den väntar kort in låset (det vanliga fallet släpps igenom direkt) och ber annars Fraktjakt skicka om i stället för att tyst svara att allt gått bra. Rättar en regression i 0.16.1 som i en smal kapplöpning mot en pågående avbokning kunde tappa en spårningsuppdatering.
* Ombokning av en avbokad order rör inte längre en aktiv retursändnings spårning. Tidigare kunde returens data raderas och returen bli ospårbar.
* Massutskrift säger till när fler ordrar än vad en körning tar valdes, i stället för att tyst hoppa över de sista.
* Avinstallation städar nu alla sajter i en multisite, så inga consignor-nycklar lämnas kvar på andra subsajter.
* Väntmarkören för bokning rensas nu deterministiskt när bokningen är klar. Mindre kodputs: död CSS och några interna kommentarer.

= 0.16.1 =
* Webhookarna serialiseras nu per order med samma lås som bokningen. Två samtidiga eller omsända callbacks för samma sändning kan inte längre skicka dubbla "ditt paket är skickat"-mejl till kunden eller dubbla noteringar.
* Sändningsstatusen är monoton: en försenad eller omsänd äldre status (till exempel "skickad" som kommer efter "levererad") sparar eventuella nya dokument men regrerar inte statusen och mejlar inte kunden igen.
* Tydligare besked vid avbokning: om Fraktjakt inte svarar med giltig XML (oftast för att sändningen redan är köpt) säger ordernoteringen det i klartext i stället för "Ogiltigt XML-svar".

= 0.16.0 =
* Massutskrift av fraktsedlar laddar nu ner via en dold iframe på orderlistan i stället för att navigera hela fönstret till strömmaren. Det tar bort den tomma sidan som kunde dyka upp och lämnar handlaren kvar på listan. En reservlänk visas om webbläsaren blockerar nedladdningen, och saknar de valda ordrarna färdiga etiketter sägs det direkt.
* Fraktkolumnen i orderlistan är renare: spårningsnumret visas bara inne i ordern, inte i listan. Statusen "redo att skickas" heter nu "fraktsedel klar" i lugn ton, så en bokad men ännu inte scannad sändning inte ser ut att kräva åtgärd. Grönt sparas för verklig transportörsrörelse (skickad, levererad).
* Loggens hjälptext och länk på inställningssidan pekar nu på loggkällan "fraktjakt".

= 0.15.0 =
* Orderrutan och orderlistan visar "Bokning pågår" medan Fraktjakt behandlar en köad bokning, i stället för en tom ruta med en boka-knapp. Knappen kommer tillbaka först om bokningen misslyckas, så ingen bokar av misstag en gång till.
* Webhook-adressen ligger nu under namnrymden fraktjakt/v1. Den gamla dt-frakt/v1 svarar kvar parallellt, så redan bokade sändningars återanrop fortsätter fungera efter uppdateringen.
* Loggen heter numera "fraktjakt" under WooCommerce → Status → Loggar, tillägget anges med Av: Fraktjakt, och pluginraden har en genväg till Inställningar.

= 0.14.0 =
* Allt som handlaren och kunden ser säger Fraktjakt: massåtgärder, fraktmetod, orderruta och inställningssida. Ingen ändring i konton, nycklar eller sparade inställningar.
* Massutskriften av fraktsedlar laddar nu ner PDF:en till datorn i stället för att öppnas i webbläsaren, så en butik utan inbyggd PDF-visning inte längre får en vit sida.

= 0.13.0 =
* Sökbar tjänstelista i fraktzonernas metodinställningar: DT Frakt-fälten blir nu sökbara i modalen (WooCommerce initierar annars inte sina sökrutor där), och tjänstelistan kan sökas på både namn och tjänste-id. Fraktklassfälten blir samtidigt riktiga sökbara flerval med borttagningskryss.

= 0.12.0 =
* Ladda ner fraktsedeln direkt från orderlistans åtgärdskolumn, utan att öppna ordern. Visas bara när en färdig etikett finns, och går via samma behörighets- och nonce-skyddade nedladdning som massutskriften.
* Inställningssidan: systemkravsrutan ligger nu överst i sidopanelen, och checklistan har tagits bort.

= 0.11.0 =
* Massutskrift av fraktsedlar: sammanfogningen sker nu etikett för etikett, så en enskild etikett som PDF-läsaren inte klarar hoppas över och läggs med separat i stället för att tvinga hela bunten till zip. Tidsgränsen höjs för nedladdningen och temporära filer städas alltid, så stora buntar inte ger vit skärm eller kvarlämnade filer.
* "Hantera hos Fraktjakt"-länken (som bär full åtkomstkod) visas bara för roller som får utföra fraktåtgärder, inte för en ren orderläsarroll.

= 0.10.1 =
* Retursektionen i fraktrutan slogs ihop till en enda rubrik med id, status, spårning och etikett (dubbel "Retur"-rubrik tidigare).

= 0.10.0 =
* Bokning körs nu i bakgrunden via Action Scheduler vid autobokning och massbokning, i stället för synkrona 20-sekundersanrop i kassans eller betalväxelns anropskedja. Resultatet skrivs som ordernotering. Massbokningen köar upp till 100 ordrar.
* Retur och avbokning tar nu samma bokningslås som bokningen, så dubbelklick inte kan skapa två returer.
* Boknings-, retur- och avbokningsknapparna postar åtgärden i stället för att vara GET-länkar, med bekräftelsedialog. Penningpåverkande åtgärder kan inte längre spelas upp av länkförhandsvisning eller proxy.
* Retursändningens spårning och returetikett visas nu i fraktrutan (skrevs tidigare men visades inte).
* Offert- och ombudssökning delar nu ett gemensamt anropsfönster, så de tillsammans aldrig överskrider Fraktjakts gräns.
* Debug-loggning skrivs bara med WP_DEBUG på, så ombudsväljaren inte fyller loggen vid varje omritning av kassan.

= 0.9.0 =
* Transportörslogotypen binds nu till den valda Fraktjakt-tjänsten, inte till vad metoden råkar heta i WooCommerce. En metod du döpt till t.ex. "Ombud" och mappat mot Schenker Parcel visar nu Schenker-loggan. Liverater fortsätter läsa transportören ur namnet.

= 0.8.11 =
* Loggning är på som standard för nya installationer (nycklar maskeras alltid), så felsökning fungerar direkt. Befintliga butiker behåller sitt val.

= 0.8.10 =
* Transportörsmarkeringen visas åter före fraktnamnet (regression i 0.7.1 la den efter priset, där bl.a. Flatsome klippte bort den). CheckoutWC får den fortsatt efter etiketten, filtrerbart via dt_frakt_carrier_mark_after_label.

= 0.8.9 =
* Rättar felaktig adress vid bokning till länder utan postnummer (t.ex. Hongkong): leveransadressen väljs nu på adressens innehåll, inte på postnumret.
* Tullbeskrivningen rensas från HTML innan den skickas, så produktbeskrivningar med markup inte hamnar på tulldokumenten.
* Ombokning efter avbokning rensar nu även retursändningens spår helt.
* Fraktzonssidan fryser inte längre upp till 20 sekunder när API-nyckeln är fel: felläget cachas kort.
* Ombuds-cachen skiljer nu på test- och driftläge.

= 0.8.8 =
* Säkerhetshärdning: API-klienten följer inte omdirigeringar (SSRF-spärren gäller nu hela anropskedjan), ombudsvalets sessionsspar skriver inte för gäster utan påbörjad session, och pickup points-metan döljs alltid i orderns adminvy.

= 0.8.7 =
* Systemkravsruta i inställningssidans sidopanel: aktuell PHP-, WordPress- och WooCommerce-version mot pluginens krav, med varningsfärg när något är för gammalt.

= 0.8.6 =
* Sidopanelerna på inställningssidan går nu i samma marina färgvärld som sidhuvudet.

= 0.8.5 =
* Länken till loggarna öppnas i ny flik.

= 0.8.4 =
* Andra tilläggs admin-notiser hamnar inte längre inne i sidhuvudet på inställningssidan (WordPress flyttar dem nu ovanför, som avsett).
* Textputs i admin: "Fri frakt" i stället för "Gratis frakt" (WooCommerce-terminologi) och genomgångna hjälptexter. Fokusringen på Fraktjakt-genvägen följer nu knappens form.
* Fraktklassfälten har platshållartext och tydligare hjälptext om hur val tas bort.
* Loggningsinställningen anger nu loggens namn och plats, med direktlänk till loggvyn.
* Menyikonen syns nu även när menyalternativet inte är valt (ikonen saknade fyllnadsfärg och blev svart mot mörk meny).
* Ny genväg till fraktjakt.se i inställningssidans sidhuvud.

= 0.8.3 =
* Inställningssidan har fått ett uppfräschat utseende i Fraktjakts färgvärld: marinblått sidhuvud med anslutningsstatus, accentfärgade sektioner och matchande knappar.

= 0.8.2 =
* Nya standardlägen: testläge och produktmått avstängda, transportörsmarkeringen påslagen.
* Testläge-kryssrutan flyttad till Testintegration-sektionen där den hör hemma, i stället för överst på sidan.
* 13 transportörslogotyper ingår nu i assets/carriers/ (Best Transport saknar SVG och behåller färgpricken).
* Språkputs i kommentarer och texter, samt en rättad kommentar i bokningsflödet som beskrev ombudshanteringen fel.

= 0.8.1 =
* Ombudsväljaren har fått egen stilmall (blocklagd etikett och rimlig bredd i ordersammanfattningen) i stället för inline-marginal.
* Avstånd under 50 meter visas inte längre i ombudslistan ("(0.0 km)" såg trasigt ut när ombudet ligger på kundens postnummer).

= 0.8.0 =
* Ombudslistan skrivs nu även som pickup points-metadata på ombudsraterna, enligt det datakontrakt som kassor som Qliro, Avarda och Kustom Checkout läser: butiker med de kassorna får ombudsväljaren native i kassans iframe, och bokningen läser tillbaka valet från orderns fraktrad.
* Ombudsvalet sparas i sessionen direkt vid ändring via ett litet kassaskript: kassor med egen frontend (t.ex. CheckoutWC) serialiserar inte alltid fältet i formuläret, och valet gick då förlorat.
* Klick i ombudsväljaren bubblar inte längre till fraktraden: kassor som omkalkylerar vid radklick (t.ex. CheckoutWC) stängde annars rullgardinen mitt i valet.

= 0.7.1 =
* Transportörsmarkeringen läggs efter fraktradens etikett i stället för före: checkout-ersättare som läser etikettens råtext (t.ex. CheckoutWC) fick annars tomt metodnamn. Verifierat att markeringen aldrig når Kustom Checkouts eller Qliros iframes.

= 0.7.0 =
* Transportörsmarkeringen visar nu transportörens logotyp när en logotypfil finns i assets/carriers/ (färgpricken används som reserv). Logotyper hämtas från respektive brand kit och ingår inte i pluginen, se assets/carriers/README.md.

= 0.6.7 =
* Bokningen tar ett lås per order: samtidiga bokningsvägar (knappen, massbokningen och autobokningen) kan inte längre skapa dubbla sändningar hos Fraktjakt.
* Avbrutna, återbetalda och misslyckade ordrar bokas inte längre, varken manuellt eller via massbokningen (filtrerbart via dt_frakt_no_book_statuses).
* Ombudsvalet valideras mot den valda tjänstens ombudslista innan det sparas: ett kvarliggande val från ett tidigare fraktsätt kan inte längre landa på ordern.
* Blockkassan: det förvalda ombudet sparas nu på ordern även när kunden inte rör listan.
* Webhookens spårnings- och dokumentlänkar godkänns bara från Fraktjakts domän över https (samma spärr som managementlänkarna), och retur avgörs av orderns metanyckel i stället för payloadens flagga.
* Ombudssökningen har fått samma anropsfönster som offertflödet, och fraktnamn från API-svar rensas från HTML innan de når kassan.
* Avbokade sändningar visar inte längre spårning i kundmejl eller på kundens ordersida (orderlistan dolde det redan).

= 0.6.6 =
* Tull: skickar nu varans valuta per varuslag och exportorsak på bokningen vid utlandsfrakt, enligt Fraktjakts obligatoriska tullfält.

= 0.6.5 =
* Bredare klock-tolerans för inkommande webhooks (skyddar mot långsam serverklocka), och avbokade sändningar visar inte längre spårningsnummer i orderlistan.

= 0.6.4 =
* Ny knapp "Markera som avbokad" för sändningar du avbokat i Fraktjakts portal (Fraktjakt skickar ingen avboknings-status tillbaka).
* Webhook-adressen visas nu som en ren kodruta.

= 0.6.3 =
* Uppfräschad adminvy: DT Frakt-sidan har egen layout med anslutningsstatus och webhook-adress, fraktrutan på ordern har färgad statuspil och renare rader, och orderlistan har en fraktstatus-kolumn så bokningsläget syns direkt.

= 0.6.2 =
* Säkerhets- och korrekthetshärdning: replay-skydd och skrivtak på webhooken, skrivskyddade nyckelfält, autobokning även för mappade metoder, färre dubblettnoteringar, robustare transportör- och landsigenkänning, och diverse småfix. Inga funktionsändringar för handlaren.

= 0.6.1 =
* Rättar: en fraktmetod med tomma fraktklassfält kunde försvinna ur kassan. Tomma regler har nu ingen effekt igen.

= 0.6.0 =
* Transportörsmarkering: en färgprick i transportörens varumärkesfärg framför fraktalternativen i kassan (valfritt, av som standard).

= 0.5.1 =
* Robustare tulluppgifter: ogiltiga ursprungsländer utelämnas i stället för att bli fel ISO-kod, landsnamn översätts till kod, och produktvarianter ärver moderproduktens tullfält.

= 0.5.0 =
* Fraktklassregler per metod: kräv eller uteslut fraktklasser så metoden bara visas för rätt varukorgar.

= 0.4.1 =
* Härdning av massutskriften: etikett-URL:er tvingas till fraktjakt.se (SSRF-spärr), utdatabuffert töms före streaming, tak på antal etiketter, städade temporära filer.

= 0.4.0 =
* Tulluppgifter per produkt (Taric-/HS-kod, ursprungsland, tullbeskrivning) på produktens Frakt-flik, med butiksstandard och migrering av befintliga fält. Skickas vid internationella försändelser.

= 0.3.0 =
* Massutskrift: markera flera ordrar i orderlistan och skriv ut alla fraktsedlar som en sammanfogad PDF (zip som reserv).

= 0.2.13 =
* "Fler dokument är på väg" visas bara medan sändningen faktiskt bearbetas, inte i sluttillstånd.
* Sändningar som kräver åtgärd (attention) lyfts tydligt i fraktrutan.
* Sändningsstatus visas på svenska.

= 0.2.12 =
* Egen fraktbilsikon i adminmenyn i stället för standardsymbolen.

= 0.2.11 =
* Frakthandlingar visas först när de faktiskt är färdiga (inga döda länkar medan etiketten skapas).
* "Hantera hos Fraktjakt" alltid tillgänglig: köpta sändningar avbokas i portalen, vilket Fraktjakts API inte tillåter.
* Tydligare besked när API-avbokning avvisas.

= 0.2.10 =
* Avbokning och retur fungerar efter köpet: webhooken uppdaterar sändningens länkar när Fraktjakt roterar behörighetskoden vid betalning.

= 0.2.9 =
* Spårningsblock på kundens ordersida (Mina sidor och orderbekräftelsen).
* Mallfunktioner för teman: spårningslänk, spårningsnummer, sändnings-id, frakthandlingar och ombud per order.

= 0.2.8 =
* Avbokning och retur skickar integrationens nycklar med managementlänken (Fraktjakt svarade "Felaktig behörighet" på enbart access_code).
* Misslyckade avbokningar loggas med detaljer (behörighetskoden maskerad).

= 0.2.7 =
* Boka frakt-, retur- och avbokningsknapparna fungerar nu på orderskärmen (nästlade formulär ersatta med signerade länkar).

= 0.2.6 =
* Intern polering.

= 0.2.5 =
* Språklig och intern polering; tjänstemappningens fältnamn förtydligat.

= 0.2.4 =
* Stöd för kontoanpassade tjänste-id:n (9000-prefix) vid ombudssökning.
* Företagsleverans känns igen även via faktureringsföretaget.
* Färre API-anrop: formateringsvarianter av samma adress delar cache.
* Tullbeskrivningar kortare än 15 tecken paddas i stället för att utelämnas.

= 0.2.3 =
* Gratis frakt över belopp samt vikt- och värdegränser även på DT Frakt-metodens egna livepriser.

= 0.2.2 =
* Ombudsval från en tidigare vald tjänst kan inte längre följa med till fel transportör i blockkassan.
* Ombudsvalets färskhetsgräns (24h) gäller nu båda bokningsvägarna.

= 0.2.1 =
* Gratis frakt över valfritt belopp per fraktmetod (som fast pris-metoder med fri frakt-tröskel).

= 0.2.0 =
* Ombudsväljare även för mappade fraktmetoder (butiksstyrt läge), i både klassisk och blockbaserad kassa.
* Sökbar tjänstelista från Fraktjakt-kontot i zonmodalen.
* Vikt- och prisgränser per fraktmetodinstans, med omedelbar effekt i kassan.
* Diagnosloggning för ombudsväljaren.

= 0.1.0 =
* Första version: livepriser i kassan med reservläge och leveranstider, ombudsval i klassiska kassan, bokning (per order, massåtgärd i orderlistan, eller automatiskt vid orderstatus), avbokning, webhooks för status/spårning/frakthandlingar, returer, spårningslänk i kundmejl, tjänstemappning för fasta fraktmetoder, webhook-självtest och loggning med maskerade nycklar.
