Lausn · Netverslun og bókhald
Pantanir sem verða sjálfkrafa að reikningum
Netverslun sem talar ekki við bókhaldið býr til handavinnu og villur. Hér lýsum við hvernig við byggjum tengingu milli WooCommerce og DK, Reglu eða Payday sem býr til hvern reikning einu sinni, heldur birgðum réttum og lætur vita þegar eitthvað bregst.
- Birt
- Lengd
- 9 mín. lestur

Í stuttu máli
- Vandinn: pantanir eru slegnar handvirkt inn í bókhald, birgðir á vefnum stemma ekki og villur finnast fyrst við mánaðamót.
- Lausnin: biðröð og samþættingarþjónn sem varpar hverri pöntun í nákvæmlega einn reikning, með kennitölu, réttum VSK-þrepum og vörpunartöflu.
- Birgðir eiga sér eina uppsprettu, bókhaldið, og flæða þaðan á vefinn. Árekstrar eru leystir eftir fyrir fram ákveðnum reglum.
- Viðvaranir og daglegt uppgjör gera villur sýnilegar strax, ekki við mánaðamót. Þetta er lausnarlýsing, ekki dæmisaga um tiltekinn viðskiptavin.
Staðreyndir
- Viðskiptavinur
- Almenn lausn, enginn tiltekinn viðskiptavinur
- Atvinnugrein
- Netverslun og bókhald
- Ár
- 2026
- Tækni
- WooCommerce
- WordPress
- PHP
- Action Scheduler
- WooCommerce REST API
- dkPlus API
- Payday API
01. Bakgrunnur
Algeng uppsetning hjá íslenskum netverslunum er WooCommerce á vefnum og DK, Regla eða Payday í bókhaldinu. Hvort kerfi um sig virkar vel. Vandinn er bilið á milli þeirra: einhver þarf að koma hverri pöntun inn í bókhaldið sem reikningi og einhver þarf að passa að birgðastaðan á vefnum sé sú sama og á lagernum. Þessi lausnarlýsing sýnir hvernig við byggjum upp þjónustuna WooCommerce-tenging við DK, Reglu og Payday þegar tilbúin viðbót dugar ekki.
Þegar það er gert handvirkt fer tími í innslátt, og villurnar koma fram þar sem þær eru dýrastar: í uppgjöri, í virðisaukaskattsskilum eða hjá viðskiptavini sem keypti vöru sem var ekki til.
Það eru til tilbúnar tengingar. Payday gefur út eigin WordPress-viðbót, Regla tengist WooCommerce úr eigin kerfi og fyrir DK höfum við smíðað okkar eigin viðbót, DKsync, sem samstillir vörur, lagerstöðu og reikninga. Ef tilbúin tenging dugar fyrir reksturinn þinn mælum við með henni, og fyrir DK dugar DKsync oftast. Þessi lýsing á við þegar hún dugar ekki: sérstakir afslættir, margir lagerar, flóknir skattflokkar, sérpantanir eða kröfur um vöktun og rekjanleika sem tilbúnar viðbætur uppfylla ekki. Almennari yfirferð um leiðirnar fyrir hvert kerfi er í greininni Hvernig tengist WooCommerce bókhaldi?
02. Áskorunin
Tenging milli netverslunar og bókhalds lítur einföld út: þegar pöntun kemur, búðu til reikning. Í raun þarf hún að ráða við allt sem getur farið úrskeiðis á milli tveggja kerfa sem hvorugt stjórnar hinu.
- Tvítekningar. Ef bókhaldskerfið svarar of seint og beiðnin er reynd aftur getur sama pöntunin orðið að tveimur reikningum.
- Viðskiptamenn. Í bókhaldi eru viðskiptamenn yfirleitt auðkenndir með kennitölu, en WooCommerce þekkir bara netfang og nafn. Sama fyrirtækið getur pantað með þremur netföngum.
- Virðisaukaskattur. Almennt þrep er 24% og lægra þrep 11%. Sami reikningur getur innihaldið bæði, auk sendingargjalds og afsláttar sem dreifist á línur. Krónur hafa enga aukastafi, svo námundun á línum getur munað krónu á heildarupphæð.
- Birgðir. Ef bæði vefurinn og bókhaldið breyta birgðastöðu, hvort þeirra hefur rétt fyrir sér?
- Þögul vandamál. Versta villan er sú sem enginn sér: reikningur sem varð aldrei til af því að lykill rann út.
03. Markmið
Þetta eru viðmiðin sem tengingin þarf að standast. Í kafla 6 eru þau notuð sem prófunarlisti fyrir útgáfu.
- M1Hver pöntun verður nákvæmlega einn reikningur, líka þegar beiðni er reynd aftur.
- M2VSK-þrep og upphæðir á reikningi stemma við pöntunina, innan einnar krónu.
- M3Viðskiptamaður finnst eða er stofnaður út frá kennitölu, án tvítekninga.
- M4Birgðastaða á sér eina uppsprettu og vefurinn selur ekki það sem ekki er til.
- M5Villa sést innan nokkurra mínútna, ekki þegar bókarinn leitar að týndum reikningi.
- M6Daglegt uppgjör sýnir pantanir, reikninga og greiðslur hlið við hlið.
04. Nálgun
Við byrjum aldrei á kóða. Fyrsta skrefið er að kortleggja reksturinn með þér og bókaranum þínum.
Kortlagning. Hvaða vörur eru í hvaða skattþrepi? Hvernig eru afslættir og sendingargjöld bókuð? Hvenær á reikningur að verða til: þegar pöntun er greidd, afgreidd eða send? Hvað gerist við endurgreiðslu? Svörin verða að vörpunarskjali sem er samþykkt áður en forritun hefst.
Val á leið. Hvert kerfi býður upp á sína leið inn:
| Kerfi | Leið | Hver hefur frumkvæðið |
|---|---|---|
| DK | dkPlus, REST- og JSON-skil með prófunarumhverfi. Aðgangur fæst með beiðni til DK. | Samþættingarþjónninn sendir til DK |
| Payday | Opinber API-skjölun og sérstakt prófunarumhverfi (sandbox). | Samþættingarþjónninn sendir til Payday |
| Regla | Regla tengist WooCommerce sjálf í gegnum REST-skil WooCommerce, með lykli sem þú býrð til í WooCommerce. | Regla sækir pantanir í vefinn |
Með Reglu snýst verkið því minna um að senda gögn og meira um að vefurinn skili þeim rétt: kennitölur í réttum reitum, skattflokkar á vörum og pantanastöður sem Regla les rétt.
Prófunarumhverfi fyrst. Við smíðum á móti prófunarumhverfi bókhaldskerfisins og afriti af netversluninni, aldrei á móti raunbókhaldi.
05. Lausnin
Arkitektúr
Frá pöntun til reiknings
- Samþættingin er WordPress-viðbót. Þegar pöntun fær stöðuna sem kortlagningin ákvað, til dæmis „greidd“, grípur viðbótin breytinguna og setur verk í biðröð. Við notum Action Scheduler, biðröðina sem fylgir WooCommerce, svo verkið lifi af endurræsingu og hægt sé að reyna það aftur.
- Samþættingarþjónninn sækir pöntunina og varpar henni: hver lína fær vörunúmer, magn, einingaverð og skattþrep úr vörpunarskjalinu. Afslætti er dreift á línur eins og bókarinn ákvað.
- Áður en reikningur er sendur flettir þjónninn upp í vörpunartöflunni hvort pöntunin hafi þegar fengið reikning. Pöntunarnúmerið fer líka sem tilvísun á reikninginn, svo hægt sé að fletta honum upp í bókhaldinu.
- Þegar bókhaldið svarar er reikningsnúmerið skráð í töfluna og sem athugasemd á pöntunina í WooCommerce.
Einu sinni, sama hvað
Hjartað í tengingunni er vörpunartaflan. Hún tengir hverja pöntun við reikninginn sem varð til og tryggir að aðgerðin megi keyra oftar en einu sinni án þess að niðurstaðan breytist (e. idempotent): hvort sem verkið keyrir einu sinni eða fimm sinnum verður til einn reikningur. Ef beiðni rennur út á tíma án svars athugar þjónninn fyrst hvort reikningurinn hafi orðið til hinum megin áður en hann reynir aftur.
Endurtekningar eru með vaxandi biðtíma (exponential backoff). Eftir ákveðinn fjölda tilrauna fer verkið í villulista í stað þess að reyna endalaust, og viðvörun er send.
Kennitala og viðskiptamenn
Í kassann bætist kennitölureitur, valkvæður fyrir einstaklinga og skylda þegar beðið er um reikning á fyrirtæki. Reiturinn er staðfestur í vafranum og á þjóninum. Kennitalan þarf að vera tíu tölustafir og fyrstu sex þurfa að mynda gilda dagsetningu (hjá lögaðilum er 40 bætt við daginn). Vartalan er ekki notuð til að hafna kennitölu. Ástæðan er sú að frá 18. febrúar 2026 úthlutar Þjóðskrá kennitölum án vartölu (skra.is). Þjónninn leitar að viðskiptamanni eftir kennitölu og stofnar hann aðeins ef hann finnst ekki. Erlendir viðskiptavinir án kennitölu fara á safnviðskiptamann eða eigin viðskiptamann eftir því sem bókarinn kýs.
Virðisaukaskattur
Almennt þrep virðisaukaskatts er 24% og lægra þrep 11% (lög nr. 50/1988 um virðisaukaskatt; sjá skatturinn.is). Hver vara fær skattflokk í WooCommerce sem varpast á skattþrep í bókhaldinu, og vörpunin er prófuð. Við sendum línur með verði og skattþrepi og látum bókhaldið reikna skattinn, og berum svo heildarupphæðina saman við pöntunina. Ef munurinn er meiri en ein króna fer reikningurinn ekki í gegn heldur í villulista. Meðferð sendingargjalda og annarra álitamála ákveður bókarinn þinn, ekki við.
Birgðir: ein uppspretta
Birgðastaða á sér eina uppsprettu, oftast bókhaldið eða lagerkerfið, því þar er vörumóttaka og talning skráð. Tímasett verk í sömu biðröð sækir hana þaðan reglulega og uppfærir vefinn. Vefurinn dregur frá við sölu svo ekki sé selt tvisvar á milli samstillinga, og næsta samstilling leiðréttir stöðuna.
Árekstrarreglur eru skrifaðar niður fyrir fram: uppsprettan vinnur alltaf, vara sem fer undir öryggismörk birtist sem uppseld, og ef samstilling bregst heldur vefurinn síðustu þekktu stöðu og sendir viðvörun í stað þess að giska.
Öryggisnet fyrir pantanir sem gleymast
Verkið fer í biðröðina um leið og staða pöntunar breytist, en samt getur pöntun farið fram hjá viðbótinni, til dæmis ef stöðu er breytt beint í gagnagrunni eða viðbót er óvirk í smástund. Þess vegna keyrir líka tímasett verk sem fer yfir pantanir síðustu klukkustunda og setur aftur í biðröðina þær sem hafa ekki fengið reikning. Vörpunartaflan sér til þess að ekkert verði tvítekið.
Viðvaranir og uppgjör
Hver villa fer í villulista með ástæðu: rangur lykill, óþekkt vörunúmer, VSK-mismunur eða tímamörk. Viðvörun fer í tölvupóst eða á Slack, og pöntunin fær athugasemd sem starfsfólk sér í WooCommerce. Á hverjum morgni ber uppgjörið saman pantanir gærdagsins, reikninga í bókhaldi og uppgjör frá greiðslugátt, og listar það sem stemmir ekki.
06. Niðurstöður
Hvert markmið úr kafla 3 er prófanlegt, og tengingin fer ekki í rekstur fyrr en öll standast á prófunarumhverfi.
Svona metum við árangur
Hér eru viðmiðin sem lausnin þarf að standast áður en hún fer í rekstur.
- M1Hver pöntun verður nákvæmlega einn reikningur, líka þegar beiðni er reynd aftur.
- M2VSK-þrep og upphæðir á reikningi stemma við pöntunina, innan einnar krónu.
- M3Viðskiptamaður finnst eða er stofnaður út frá kennitölu, án tvítekninga.
- M4Birgðastaða á sér eina uppsprettu og vefurinn selur ekki það sem ekki er til.
- M5Villa sést innan nokkurra mínútna, ekki þegar bókarinn leitar að týndum reikningi.
- M6Daglegt uppgjör sýnir pantanir, reikninga og greiðslur hlið við hlið.
Prófin keyra á móti prófunarumhverfi bókhaldskerfisins með prófunargögnum sem ná yfir bæði VSK-þrep, afslætti, sendingargjöld, endurgreiðslur að hluta og að fullu, erlenda viðskiptavini án kennitölu og pantanir sem eru sendar tvisvar.
07. Lærdómur og næstu skref
Bókarinn er hluti af teyminu. Margar villur í tengingum eru ekki forritunarvillur heldur ákvarðanir sem enginn tók: hvernig afsláttur á að bókast eða hvenær pöntun er orðin sala. Þess vegna er vörpunarskjalið fyrsta afurðin.
Gerðu ráð fyrir að allt bregðist. Lyklar renna út, þjónar endurræsast og pantanir falla milli skips og bryggju. Tenging sem er hönnuð fyrir það þarf ekki að vera fullkomin, bara heiðarleg um stöðuna.
Taktu tenginguna í notkun í skrefum. Við byrjum á reikningum einum saman og keyrum birgðasamstillingu fyrst í lesham, þar sem hún ber saman og skráir mun án þess að breyta neinu. Þegar munurinn er skýrður og uppgjörið hefur stemmt í nokkra daga kveikjum við á fullri samstillingu.
Ertu með netverslun og bókhald sem tala ekki saman? Segðu okkur hvaða kerfi þú notar og hvar handavinnan liggur. Við svörum með tillögu að leið, hvort sem hún er tilbúin viðbót eða sérsmíðuð tenging.
