=== Bokför Ehandel ===
Contributors: Ideäng Productions
Tags: woocommerce, accounting, bookkeeping, bjorn lunden, ehandel, bokföring, integration, klarna, stripe
Requires at least: 6.3
Tested up to: 6.5
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 8.7
Stable tag: 1.2.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Integrera din WooCommerce-butik med Bjorn Lunden för automatisk bokföring av ordrar och utbetalningar från Klarna och Stripe.

== Description ==

Bokför Ehandel är ett WordPress-plugin som skapar en smidig koppling mellan din WooCommerce-butik och ditt bokföringsprogram hos Bjorn Lunden. Pluginet automatiserar bokföringen av dina försäljningar och hanterar även avstämning och bokföring av utbetalningar från populära betaltjänster som Klarna och Stripe. Detta sparar tid och minskar risken för manuella fel i din bokföring.

**Huvudfunktioner:**

*   **Automatisk orderbokföring:** Varje natt (eller manuellt) bokförs färdigbehandlade ordrar från WooCommerce direkt i Bjorn Lunden.
*   **Utbetalningshantering:** Automatisk hämtning och bokföring av utbetalningar från Klarna och Stripe, inklusive hantering av avgifter och moms på avgifter.
*   **Direktbetalningar:** Ordrar betalda med t.ex. Swish eller banköverföring bokförs direkt mot ditt bankkonto (standard 1930).
*   **Återbetalningar:** Hanterar och bokför återbetalningar korrekt.
*   **Flexibel konfiguration:** Anpassa bokföringskonton för olika betalmetoder, försäljning och avgifter.
*   **Manuell synkronisering:** Möjlighet att bokföra ordrar och utbetalningar för ett specifikt datumintervall.
*   **Bokföringsunderlag:** Skapar och bifogar automatiskt bokföringsunderlag för varje transaktion i Bjorn Lunden.
*   **Status och loggning:** Tydlig översikt över integrationsstatus och detaljerad historik över körningar.
*   **Moms:** Hanterar för närvarande försäljning inom Sverige med 25%, 12% och 6% moms samt momsfri försäljning (bokförs mot konto 3001 som standard, framtida versioner kommer stödja separata konton).
*   **Valutastöd:** Stöd för internationell försäljning med automatisk valutakonvertering. EUR-butiker med Stripe bokförs automatiskt i SEK enligt svenska bokföringsregler.
*   **Automatisk valutadetektering:** Pluginet hämtar automatiskt din butiksvaluta från WooCommerce och skickar med den vid registrering och uppdatering. Stöder EUR, SEK, USD, NOK, DKK och alla andra valutor.

**Vem är pluginet för?**

Detta plugin är idealiskt för e-handlare som använder WooCommerce och Bjorn Lunden för sin bokföring och vill automatisera och förenkla processen för att hantera ordrar och utbetalningar.

== Installation ==

1.  **Manuell uppladdning:**
    *   Ladda ner plugin-filen (du har den redan eftersom du läser det här)
    *   Gå till `Plugins > Lägg till nytt > Ladda upp plugin`.
    *   Välj den nedladdade zip-filen och klicka `Installera nu`, sedan `Aktivera`.
3.  **Via FTP:**
    *   Ladda ner plugin-filen och packa upp den.
    *   Ladda upp mappen `bokfor-ehandel` till katalogen `/wp-content/plugins/` på din server.
    *   Gå till `Plugins` i WordPress admin och `Aktivera` pluginet.

**Konfiguration:**

När pluginet är aktiverat, följ dessa steg för att komma igång:

1.  **Aktivera integrationen i Bjorn Lunden:**
    *   Logga in på [Bjorn Lunden](https://app.bjornlunden.se).
    *   Klicka på **Integrationer** i menyn.
    *   Leta upp **Bokför Ehandel**, klicka **Aktivera** och välj ditt företag.
    *   *Viktigt:* Integrationen måste vara aktiv här för att pluginet ska fungera.
2.  **Hämta API-nyckel från Bjorn Lunden:**
    *   I Bjorn Lunden, gå till **Integrationer**.
    *   Klicka på kugghjulet bredvid Bokför Ehandel.
    *   Kopiera din **API-nyckel**.
3.  **Konfigurera pluginet i WordPress:**
    *   Gå till den nya menyn **Bokför Ehandel** i din WordPress admin.
    *   Under fliken **Företag & API**:
        *   Ange ditt **Företagsnamn** och **Organisationsnummer** (måste matcha det i Bjorn Lunden).
        *   Klistra in din **API-nyckel** från Bjorn Lunden.
        *   Klicka **Spara ändringar & Testa anslutning**. Statusen för kopplingen mot Bjorn Lunden visas.
    *   Under fliken **Bokföring**:
        *   Aktivera integration för **Klarna** och/eller **Stripe** om du använder dem, och ange deras respektive API-nycklar. (Se FAQ för hur du hittar dessa).
        *   Granska och justera de förifyllda **bokföringskontona** för olika transaktionstyper (t.ex. försäljning, moms, kundfordringar, bank, avgifter). Rådgör med din bokföringskonsult om du är osäker.
        *   Klicka **Spara ändringar**.
4.  **Starta synkronisering:**
    *   Gå till **Bokför Ehandel > Inställningar och fyll i alla relevanta inställningar**.
    *   Pluginet körs automatiskt varje natt kl 02:00.
    *   Du kan även starta en **manuell synkronisering** för ett specifikt datumintervall för att bokföra historiska data eller testa funktionen. Välj typ (Ordrar/Utbetalningar) och datum, klicka sedan **Starta**.

== Frequently Asked Questions ==

**= Installation & Konfiguration =**

*   **Vad betyder statusen "Ej aktiverad" på inställningssidan?**
    Det betyder att integrationen inte är aktiverad eller korrekt kopplad i Bjorn Lunden. Logga in på Bjorn Lunden, gå till Integrationer, hitta Bokför Ehandel och klicka på "Aktivera" (eller kontrollera att rätt företag är valt). Kontrollera också att organisationsnumret i pluginets inställningar exakt matchar det i Bjorn Lunden. Statusen i pluginet uppdateras automatiskt inom någon minut.

*   **Hur ser jag om integrationen fungerar korrekt?**
    Du kan se status på två ställen:
    1.  **I WordPress:** På sidan `Bokför Ehandel > Företag & API` visas status för kopplingen till Bjorn Lunden (uppdateras var 60:e sekund). Använd knappen "Testa anslutning".
    2.  **I Bjorn Lunden:** Gå till `Integrationer` och se status för "Bokför Ehandel".

*   **Behöver jag ett abonnemang hos Bjorn Lunden?**
    Ja, för att använda API-integrationer krävs att du har BL med integration aktiverat. Kontakta Bjorn Lunden om du behöver uppgradera.

*   **Var hittar jag Klarna API-nycklar (API Credentials)?**
    1.  Logga in på [Klarna Merchant Portal](https://www.klarna.com/merchants/).
    2.  Gå till `Inställningar > API-uppgifter`.
    3.  Skapa nya eller använd befintliga uppgifter (Användarnamn och Lösenord). Kopiera dessa till pluginets inställningar.

*   **Var hittar jag Stripe API-nycklar?**
    1.  Logga in på [Stripe Dashboard](https://dashboard.stripe.com/).
    2.  Klicka på `Developers > API Keys` i menyn.
    3.  Kopiera din `Publishable Key`.
    4.  Klicka på `Reveal Live Key` för att se och kopiera din `Secret Key`. Klistra in båda i pluginets inställningar.

**= Användning =**

*   **Hur ofta sker bokföringen?**
    Automatiskt varje natt runt kl 02:00 för föregående dags ordrar och eventuella nya utbetalningar. Du kan även köra en manuell synkronisering för valfritt datumintervall via `Bokför Ehandel > Synkronisering`.

*   **Vilka betalningsmetoder stöds?**
    *   **Orderbokföring:** Alla WooCommerce betalningsmetoder stöds. Ordrarna bokförs mot ett kundfordringskonto (standard 1580) eller direkt mot bankkonto (standard 1930) beroende på inställning.
    *   **Automatisk utbetalningsbokföring:** Klarna och Stripe stöds fullt ut, inklusive avstämning mot kundfordringar och bokföring av avgifter.
    *   **Övriga metoder (t.ex. Faktura, Swish, Banköverföring):** Ordrar bokförs automatiskt. Utbetalningarna för dessa behöver du matcha och bokföra manuellt i Bjorn Lunden (ofta direkt mot bankkontot, 1930).

*   **Hur bokförs en order? (Exempel)**
    Pluginet skapar en verifikation i Bjorn Lunden med följande kontering (standardkonton):
    *   Debet 1580 (Kundfordringar) / 1930 (Bankkonto): Totalbelopp inkl. moms
    *   Kredit 3001 (Försäljning varor 25%): Belopp exkl. moms
    *   Kredit 2611 (Utgående): Momsbelopp

*   **Hur bokförs en Klarna/Stripe-utbetalning? (Exempel)**
    När Klarna/Stripe betalar ut pengar till ditt bankkonto, bokförs detta automatiskt (om aktiverat):
    *   Debet 1930 (Bankkonto): Nettobeloppet som betalas ut
    *   Debet 6064 (Avgifter betaltjänster): Avgift exkl. moms
    *   Debet 2641 (Ingående moms): Moms på avgiften
    *   Kredit 1580 (Kundfordringar): Bruttobeloppet (summan av ordrar som ingår i utbetalningen)

*   **Hur hanteras återbetalningar (krediteringar)?**
    När du skapar en återbetalning i WooCommerce (markerar ordern som "Återbetald"), bokförs detta automatiskt med omvända tecken jämfört med den ursprungliga ordern.

*   **Kan jag bokföra gamla ordrar och utbetalningar?**
    Ja. Gå till `Bokför Ehandel > Synkronisering`. Välj "Ordrar" eller "Utbetalningar", ange det datumintervall du vill bokföra för och klicka `Starta`. Var noga med att inte bokföra perioder som redan är bokförda för att undvika dubbletter. Pluginet har ett visst skydd mot dubbletter, men manuell kontroll rekommenderas vid historisk körning.

*   **Skapas det bokföringsunderlag?**
    Ja, för varje skapad verifikation (både ordrar och utbetalningar) skapas ett digitalt bokföringsunderlag som bifogas verifikationen i Bjorn Lunden. För Klarna används deras utbetalningsrapport som underlag. För Stripe och ordrar genereras ett underlag av pluginet.

**= Felsökning =**

*   **Varför fungerar inte synkroniseringen? / Varför får jag felmeddelanden?**
    Kontrollera följande:
    1.  **Integrationen aktiv?** Gå till `Bokför Ehandel > Företag & API` och verifiera att statusen är "Aktiv". Om inte, aktivera i Bjorn Lunden.
    2.  **Korrekt API-nyckel?** Dubbelkolla att API-nyckeln från Bjorn Lunden är korrekt inklistrad.
    3.  **Organisationsnummer?** Säkerställ att organisationsnumret är exakt samma som i Bjorn Lunden.
    4.  **Nätverk/Anslutning?** Klicka på "Testa anslutning" på API-sidan. Kontrollera din webbplats serverloggar om problem kvarstår.
    5.  **Kontoinställningar?** Se till att alla nödvändiga konton är ifyllda under fliken "Bokföring" och att dessa konton faktiskt existerar i din kontoplan i Bjorn Lunden.
    6.  **Plugin-logg:** Kontrollera `Bokför Ehandel > Körningar` och klicka "Visa detaljer" för eventuella felmeddelanden från specifika körningar.
    7.  **Konflikter?** Prova att tillfälligt inaktivera andra plugins för att se om det finns en konflikt.


*   **Hur vet jag om en specifik körning lyckades?**
    Gå till `Bokför Ehandel > Körningar`. Här listas alla automatiska och manuella körningar med status (T.ex. "Slutförd", "Slutförd med fel", "Misslyckad"). Klicka på "Visa detaljer" för att se exakt vilka ordrar/utbetalningar som behandlades och eventuella felmeddelanden per post. Kontrollera även motsvarande verifikationer i Bjorn Lunden.

*   **Hur väljer jag rätt bokföringskonton?**
    De förifyllda standardkontona (BAS-kontoplan) fungerar för många, men det är **starkt rekommenderat att du stämmer av kontovalen med din redovisningskonsult eller bokförare** för att säkerställa att det blir korrekt för just din verksamhet. Se till att de konton du anger finns i din aktiva kontoplan i Bjorn Lunden. Ändringar i kontoinställningarna påverkar endast framtida bokföringar.

**= GDPR & Dataskydd =**

*   **Vilken data hanterar pluginet?**
    Pluginet hanterar orderdata (produkter, summor, moms, kundreferens, ordernummer, datum) från WooCommerce och transaktionsdata (summor, avgifter, datum, referens) från Klarna och Stripe.
*   **Vilken data överförs till Bjorn Lunden?**
    Endast den information som är nödvändig för bokföringen överförs: Ordernummer/referens, datum, belopp, moms, kontonummer och information för bokföringsunderlaget. Ingen fullständig kunddata (som adresser, e-post) överförs för själva bokföringen, endast referenser.
*   **Hur lagras data?**
    Pluginet lagrar information om körningar (status, loggar, vilka poster som behandlats) i din WordPress-databas. Denna loggdata rensas automatiskt efter 90 dagar för att minimera lagrad data. API-nycklar lagras krypterat i databasen.
*   **Är pluginet GDPR-kompatibelt?**
    Pluginet är utvecklat med GDPR i åtanke genom att minimera datahantering, använda säker överföring (kräver HTTPS), ha automatisk rensning av loggar och vara transparent med vilken data som behandlas. Du som webbplatsägare (personuppgiftsansvarig) ansvarar dock för att din användning av pluginet och din datahantering i övrigt följer GDPR.

== Changelog ==

= 1.0.0 =
*   Initial release.

== Upgrade Notice ==

= 1.0.0 =
*   Första versionen av Bokför Ehandel. Se till att konfigurera inställningarna under "Bokför Ehandel" i adminmenyn efter aktivering.

== Support ==

Om du stöter på problem, har frågor eller förslag på förbättringar, vänligen kontakta oss:

*   **E-post:** support@bokforehandel.se
*   **Hemsida:** [www.bokforehandel.se](https://www.bokforehandel.se)

== Changelog ==

= 1.2.3 (2025-11-09) =
* **Förbättrad valutahantering:**
  * Förbättrad valutadetektering från WooCommerce-inställningar
  * Automatisk fallback till lagrad valuta om WooCommerce inte är tillgängligt
  * Stöd för fler valutor (SEK, EUR, USD, NOK, DKK) med lokaliserad information
  * Förbättrad valutainformationshantering i inställningar
* **API-förbättringar:**
  * Förbättrad felhantering i API-kommunikation
  * Bättre timeout och retry-mekanismer
  * Förbättrad cache-hantering för snabbare svarstider
* **Stabilitetsfixar:**
  * Fix för multibutiksregistrering med befintliga butiker
  * Förbättrad felhantering för 400-svar från API
  * Stabilare synkroniseringsprocess

= 1.2.2 (2025-11-08) =
* **Multibutiksfix:**
  * Korrigerat fel vid registrering av befintlig butik för multibutikshantering
  * Pluginet använder nu direkt returnerat user_id från API:et vid 400-svar
  * Förbättrad organisationnummer-jämförelse (med/utan bindestreck)
  * Eliminerat felmeddelandet "Användare finns redan men kunde inte hittas"
  * Förbättrad felhantering med fallback till manuell sökning vid behov

= 1.2.1 (2025-11-08) =
* **Uppdateringsdetektering förbättrad:**
  * Cache-busting för omedelbar uppdateringskontroll
  * Förbättrad felhantering och detaljerad logging
  * Manuell uppdateringskontroll via admin-panel
  * Bättre kompatibilitet med WordPress core update system

= 1.2.0 (2025-11-08) =
* **Datahantering vid avinstallation:**
  * Ny systeminställning för att behålla/ta bort data vid plugin-avinstallation
  * Möjlighet att spara alla inställningar (API-nycklar, konton, konfiguration)
  * Förenklad återinstallation utan att behöva konfigurera om allt
  * Förbättrad uninstall.php som respekterar användarens val

= 1.1.9 (2025-11-08) =
* **WooCommerce HPOS-kompatibilitet:**
  * Deklarerat kompatibilitet med WooCommerce High-Performance Order Storage (HPOS)
  * Säkerställer framtida kompatibilitet med WooCommerce's nya ordersystem
  * Förbättrad prestanda och stabilitet med Custom Order Tables

= 1.1.8 (2025-11-08) =
* **Automatisk valutadetektering:**
  * Pluginet hämtar automatiskt valuta från WooCommerce-inställningar
  * Skickar `store_currency` vid registrering och uppdatering till API-servern
  * Stöder alla valutor: EUR, SEK, USD, NOK, DKK och fler
* **Förbättrad valutahantering:**
  * Bättre hantering av internationella butiker
  * Automatisk detektering vid första konfigurationen
  * Valutan sparas och uppdateras automatiskt vid ändringar

= 1.1.0 (2025-11-06) =
* **Performance Improvements:**
  * Added intelligent caching system (5-minute cache for API responses)
  * Reduced API timeout from 30-60 seconds to 10 seconds
  * Implemented rate limiting (5 requests per minute per user)
  * Added comprehensive error handling with try/catch blocks

* **Enhanced Monitoring:**
  * Added health check endpoint for system monitoring
  * Improved logging with structured error messages
  * Added memory usage tracking and cache status monitoring
  * Enhanced debug mode with detailed troubleshooting information

* **Bug Fixes:**
  * Fixed communication between WordPress settings and database
  * Resolved issue where integration status changes weren't synchronized
  * Fixed bookkeeping accounts not being updated from WordPress to database
  * Added proper exception handling for all AJAX operations

* **Security Enhancements:**
  * Implemented rate limiting to prevent API abuse
  * Added input validation for all form fields
  * Enhanced nonce verification and capability checks
  * Improved security logging and monitoring

* **Code Quality:**
  * Introduced constants for configuration values
  * Removed magic strings throughout the codebase
  * Standardized timeout values and cache periods
  * Improved code maintainability and readability

= 1.0.0 (Previous versions) =
* Initial release with core WooCommerce-Bjorn Lunden integration
* Automatic order booking and payment settlement handling
* Support for Klarna and Stripe payment methods
* Manual synchronization capabilities
* Comprehensive logging and status monitoring

== Upgrade Notice ==

**From 1.0.x to 1.1.0:**
* No database migrations required
* All existing configurations remain intact
* Improved performance and stability
* Enhanced error handling provides better feedback

**From versions prior to 1.0.0:**
* Please note that the database structure and API communication has been completely rewritten for improved performance and reliability.

För snabbare hjälp, inkludera gärna:
*   Företagsnamn och organisationsnummer.
*   Versioner av WordPress, WooCommerce och Bokför Ehandel-pluginet.
*   En detaljerad beskrivning av problemet och eventuella felmeddelanden.
*   När problemet uppstod.
*   Skärmdumpar som illustrerar problemet.
