Fakturering af 3PL kunder

Opdateret 17. september 2026

Før du går i gang

For at få dette fakturering aktiveret, så skal du ind i systemsettings, og slå det til for at få et ekstra menupunkt i menuen til venstre

Faktureringen bygger på det arbejde der i forvejen registreres i SmartPack. Hver gang en modtagelse afsluttes, en ordre pakkes eller en retur lukkes, gemmes der en fakturerbar hændelse med dato, antal og beløb. Ved månedens udgang samler du hændelserne til ét grundlag pr. betaler.

Du behøver ikke gøre noget for at hændelserne opstår — de skrives automatisk, så snart en kunde er knyttet til en betaler og der findes en pris. Det du skal sætte op, er hvem der betaler, hvad tingene koster, og hvordan dine varer er pakket.

Bemærk: Kun almindelige salgsordrer faktureres. Kasseordrer, interne ordrer, produktionsordrer (samling og adskillelse), sammenlagte ordrer og lagerflytninger tælles ikke med — det er ikke udgående kundehåndtering.

Systemet er stadig i sin spæde start med dette 3PL faktureringssetup, som går udover vores normale. Skulle du have ønsker til udvidelser af funktionaliteten. Må det gerne sendes ind på

Opsætning i syv trin

Rækkefølgen betyder noget: du kan ikke sætte priser på et forpakningsniveau før niveauet findes, og en vare kan ikke få antal pr. niveau før den har et sæt.

1. Slå modulet til

Gå til Indstillinger → Systemindstillinger og sæt flueben ved Udvidet 3PL-fakturering. Menupunktet Fakturering dukker op i venstremenuen. Slår du indstillingen fra igen, forsvinder menupunktet — men dine data bliver stående.

2. Opret en betaler

Fakturering → Betalere → Ny betaler. En betaler er den juridiske enhed der modtager fakturaen. Her sætter du stamdata (navn, CVR, valuta, fakturamail, betalingsbetingelser) og de tal der gælder hele fakturaen: moms i hele procent, fakturagebyr og et eventuelt minimumsbeløb.

På samme side sætter du de flade gebyrer: ordregebyr, pakkegebyr, retur pr. pakke og retur pr. linje.

3. Tilknyt kunderne

Nederst på betaleren vælger du under Tilknyttede kunder hvilke af dine kunder der faktureres via denne betaler. En kunde uden betaler bliver ikke faktureret overhovedet — det er den hyppigste årsag til et tomt grundlag.

Flere kunder kan dele én betaler. Det er sådan du samler flere shops på én faktura.

4. Byg et forpakningssæt

Forpakningssæt på betaleren. Et sæt beskriver hvordan varer er pakket, fra størst til mindst — typisk Palle → Colli → Enhed. Lav ét niveau ad gangen med navn, kode og sorteringsrækkefølge, hvor 0 er det største niveau.

Markér præcis ét niveau som base-enhed (det du tæller i, normalt stk.), og markér palle-niveauet hvis I vil bruge palle-reglen under pluk. Selve antallene sættes ikke her — de hører til på den enkelte vare, fordi de er forskellige fra vare til vare.

5. Opret prisgrupper, hvis du har brug for dem

Prisgrupper er valgfrit. En prisgruppe lader dig give en gruppe varer andre priser end standardprisen — for eksempel "Bordplader", der er tungere at håndtere end resten. Springer du trinnet over, bruger alle varer standardprisen.

6. Udfyld prisgitteret

Priser på betaleren. Her sætter du prisen pr. forpakningsniveau for modtagelse og pluk. Base-enhedens række er prisen pr. styk.

Kolonnen Pluk 2+ er prisen for de efterfølgende enheder fra samme lokation, når du plukker flere ad gangen. Lades den tom, bruges Pluk 1 til alle. En pris på 0 betyder "ingen pris" — niveauet springes helt over i beregningen.

Skift øverst på siden til en prisgruppe for at overstyre enkelte felter. Et tomt felt i en gruppe betyder "brug standardprisen for det niveau".

7. Sæt antal pr. niveau på varerne

På varen: Forpakning & fakturering. Vælg forpakningssæt, eventuelt prisgruppe, og udfyld antal pr. niveau — for eksempel 12 stk. pr. colli og 4 colli pr. palle.

En vare uden sæt faktureres pr. styk. Det er et gyldigt valg for varer der aldrig håndteres i hele kolli.

Udfyld kæden helt. Udfylder du antal på palle-niveauet, men lader colli stå tomt, kender SmartPack ikke pallens størrelse. Så bliver palle-niveauet ikke brugt, og mængden falder ned på styk-pris i stedet. Det er med vilje: systemet gætter hellere ikke end fakturerer forkert. Udfyld niveauerne nedefra, uden huller.

Hvad der bliver faktureret

Seks aktiviteter kan give linjer på fakturaen. Hver hændelse oprettes én gang og kun én gang — genstarter du en ordre eller kører opgørelsen igen, bliver der ikke faktureret dobbelt.

  • Modtagelse — udløses når en varemodtagelse afsluttes. Beregnes pr. forpakningsniveau efter det modtagne antal.

  • Ordregebyr — udløses når ordren afsendes. Et fast beløb, én gang pr. ordre.

  • Pakning — udløses når ordren afsendes. Et fast beløb pr. udgående pakke.

  • Pluk — udløses når ordren afsendes. Beregnes efter forpakningsniveau eller pr. styk; se afsnittet nedenfor.

  • Retur — udløses når en retur lukkes. Ét pakkegebyr plus et beløb pr. returlinje.

  • Leje — opgøres ved månedsafslutning ud fra målt lagerforbrug gange satsen.

Sådan beregnes pluk

Pluk er den eneste aktivitet med flere prismodeller, fordi en palle til en grossist og en enkelt vare til en forbruger ikke koster det samme at håndtere.

Uden segmentering

Er Pluk-segment på betaleren sat til Ingen, prissættes alle ordrer ens. Har varen et forpakningssæt med niveaupriser, bruges niveauerne. Ellers faktureres pr. styk pr. lokation, hvor den første enhed fra en lokation koster Pluk 1 og resten Pluk 2+.

Med segmentering

Vælger du Efter modtagerens CVR-nr., afgøres hver ordre for sig: har modtageren et CVR-nummer, er ordren B2B — ellers B2C. Du kan også vælge Altid B2C, hvis hele kanalen er forbrugersalg.

  • B2C faktureres udelukkende pr. styk. Ingen paller, ingen kolli.

  • B2B dekomponeres: først de hele paller, så de hele kolli af resten, og til sidst de løse stykker.

Feltet B2B-ordretags er en undtagelse oven på reglen. Skriver du for eksempel b2b, engros, bliver enhver ordre med et af de tags behandlet som B2B, uanset om modtageren har CVR-nummer. Det er praktisk for faste erhvervskunder der handler uden at oplyse CVR.

Eksempel: en B2B-ordre på 100 stk.

Forudsætninger: Palle = 4 colli, Colli = 12 stk., altså 1 palle = 48 stk. Satser: Palle 22,90 · Colli 4,16 · Stk. 2,50.

De 100 stk. deles op nedefra og ned:

  • 2 hele paller = 96 stk. → 2 × 22,90 = 45,80

  • Resten er 4 stk., altså ikke nok til et helt colli → 0 × 4,16 = 0,00

  • 4 løse stykker → 4 × 2,50 = 10,00

I alt 55,80.

De samme 100 stk. som B2C ville koste 250,00 — 100 × 2,50.

Hel palle når en palleplads tømmes

Slår du Fakturér hel palle når en palleplads tømmes til, må et B2B-pluk der rydder en palleplads faktureres som én hel palle, selv om der kun stod en rest tilbage. Den billigste af de to beregninger vinder altid, så reglen kan aldrig gøre et pluk dyrere for kunden end den almindelige dekomponering.

Leje

Lejen regnes ud fra det lagerforbrug SmartPack allerede måler hver dag — det trimmede areal dine varer optager, opgjort i kvadratmeter. Fordi målingerne gemmes dagligt, kan lejen også beregnes bagud i tiden.

Du sætter en pris pr. m² pr. dag på betaleren. Månedens leje er summen af hver dags målte areal ganget med satsen. Har I aftalt et fast tillæg — for eksempel en andel af fællesarealet — lægger du det ind som fast ekstra m², som så beregnes for alle månedens dage.

Aktivitetsbaseret leje

Vælger du lejemodellen Aktivitetsbaseret, trækkes en procentdel af kundens aktivitetsomsætning fra lejen. Det er modellen for aftaler hvor lageret er billigere jo mere der bevæger sig. Rabatten regnes som udgangspunkt af pluk og pakning, og lejen kan aldrig blive negativ.

På fakturagrundlaget står lejen som én linje, men du kan folde den ud og se forbruget dag for dag. Det faste ekstra areal og en eventuel aktivitetsrabat er månedlige justeringer og indgår derfor ikke i de daglige rækker — kun i linjens samlede beløb.

Månedens fakturagrundlag

Gå til Fakturering, vælg betaler, år og måned, og tryk Vis. Findes der endnu intet grundlag, trykker du Generér.

SmartPack samler så alle ufakturerede hændelser og bygger grundlaget i denne rækkefølge:

  1. Én linje pr. aktivitet. Bruger du segmentering, deles pluk op i en B2B- og en B2C-linje.

  2. Lejen for måneden.

  3. Et minimumstillæg, hvis summen er under det aftalte minimumsbeløb. Har kunden slet ingen aktivitet, opkræves hele minimummet.

  4. Fakturagebyret, som lægges oven i — også oven i minimummet.

  5. Subtotal, moms og total.

Alle linjebeløb afrundes til øre, og subtotalen er summen af de afrundede linjer. Derfor stemmer kolonnen altid med totalen, og momsen beregnes af netop den subtotal du kan se.

Efternølere: Grundlaget tager alt ufaktureret med frem til månedens udgang — også hændelser fra tidligere måneder der ikke nåede med. En retur der først blev lukket i næste måned bliver altså faktureret, i stedet for at forsvinde.

Kladde og finalisering

Et nyt grundlag er en kladde. Så længe det er en kladde, kan du Regenerér det efter at have rettet en pris, eller Slet kladde og starte forfra. Hændelserne frigives igen og kan indgå i et nyt grundlag.

Når tallene er rigtige, trykker du Finalisér. Grundlaget låses, og de medregnede hændelser kan ikke længere havne på en anden faktura. Et finaliseret grundlag kan ikke genberegnes — det er netop pointen.

Eksport

To CSV-filer kan hentes. Hent CSV giver fakturalinjerne som de står, klar til regnskabssystemet. Detaljeret CSV giver én række pr. bagvedliggende hændelse med dato og specifikation, plus lejeforbruget dag for dag — det er den du sender til en kunde der vil se hvad de betaler for.

Historik og genberegning

Har du sat modulet op midt i en periode, findes der ingen hændelser for tiden før. Knappen Backfill historik gennemgår månedens afsluttede modtagelser, returneringer og afsendte ordrer og opretter de hændelser der mangler. Den kan trykkes flere gange uden risiko — allerede fakturerede ting springes over.

Leje backfilles ikke særskilt, fordi den regnes direkte ud fra de daglige målinger og derfor altid er der.

Genberegning sletter. Gen-backfill er noget andet: den sletter månedens hændelser og opretter dem igen med de nuværende priser. Brug den når du har rettet en pris med tilbagevirkende kraft. Finaliserede grundlag røres ikke — de er låst. Er du i tvivl, så finalisér de måneder du er færdig med, før du genberegner.

Når noget ikke bliver faktureret

Modulet fakturerer hellere for lidt end for meget. Mangler der en oplysning, springes den pågældende del over frem for at blive gættet. Det er derfor et manglende beløb næsten altid skyldes en manglende opsætning:

Grundlaget er helt tomt. Kunden er ikke tilknyttet en betaler. Tilknyt kunden nederst på betaleren, og kør derefter backfill for måneden.

Der er ingen plukbeløb. Der er ingen pris på base-enheden. Udfyld base-enhedens række i prisgitteret.

Alt er faktureret pr. styk, selv om varen har paller. Enten mangler et niveau i kæden sit antal, eller også har niveauet ingen pris. Udfyld antal pr. niveau på varen nedefra, og kontrollér at niveauet har en pris over 0.

Ordregebyret mangler på en ordre. Ordren er ikke en almindelig salgsordre. Der er ikke noget at gøre — kasseordrer, interne ordrer og produktionsordrer faktureres ikke.

En rettet pris slår ikke igennem. Hændelserne blev gemt med den gamle pris. Kør Gen-backfill for måneden, og generér grundlaget igen.

En ting mere er værd at vide: fakturering kan aldrig vælte lagerarbejdet. Går noget galt i beregningen, gennemføres modtagelsen eller ordren alligevel, og fejlen noteres til side. Finder du et hul i en måned, kan det altid hentes ind bagefter med backfill.