Dansk hosting fra Aalborg
Servere i Europa
24/7/365 dansk support
[email protected]
WooCommerce fejlfinding 9 min. læsning Opdateret 3. oktober 2026

CSV-import af produkter fejler eller timer ud

Del filen op, kør billeder separat, og undgå dubletter med SKU-match – trin for trin.

CSV-import af produkter fejler eller timer ud

Kort svar: Når produktimporten fejler eller går i stå, er det som regel én af tre ting: en batch tager længere tid, end serveren tillader (typisk på grund af billeder), billed-URL’erne kan ikke hentes, eller kolonner og formater matcher ikke det, WooCommerce forventer. Test med de første 10 rækker, del store filer op, og kør produktdata og billeder hver for sig. Læs importloggen bagefter – den fortæller præcis, hvilke rækker der blev sprunget over og hvorfor.

Fagligt gennemgået: 2. oktober 2026

CSV-importen er den hurtigste vej til at få mange produkter ind i WooCommerce – og et af de steder, hvor server, fil og forventninger oftest støder sammen. En import, der dør halvvejs, efterlader et katalog i limbo: nogle produkter inde, andre ikke, og måske dubletter ved næste forsøg. Med den rigtige arbejdsgang sker det ikke.

Guiden tager udgangspunkt i WooCommerce’ indbyggede importør under Produkter → Alle produkter → Importér. Principperne gælder også for de fleste importplugins.

Før du ændrer noget: Tag en backup af databasen før en stor import – en import kan ikke fortrydes med én knap. Kør gerne den første import på staging. Og gem altid en kopi af den originale fil, før du begynder at rette i den.

Sådan kører importøren

Den indbyggede importør behandler ikke hele filen i ét hug. Den kører filen igennem i små portioner via baggrundskald fra din browser – som standard 30 rækker ad gangen. Det har tre konsekvenser, der forklarer de fleste fejl:

  • Timeouten rammer en enkelt portion, ikke hele filen. 30 produkter med hver fem eksterne billeder kan nemt tage længere tid end serverens tidsgrænse.
  • Browserfanen skal være åben hele vejen. Lukker du den, eller går computeren i dvale, stopper importen.
  • Alt imellem browser og server skal lade kaldene passere: en firewall, et sikkerhedsplugin eller en proxy med kortere tidsgrænse kan afbryde en portion, selvom PHP selv havde tid nok.

De tre måder, importen fejler på

SymptomTypisk årsagLøsning
Går i stå ved cirka samme rækkeantal hver gangEn portion overskrider execution time eller hukommelse – ofte rækker med mange billederKør billeder separat, mindre filer
Produkter uden billederBilled-URL’erne kan ikke hentesTest URL’erne, ret kildeserveren
Forkerte priser, tegn eller varianterSeparator, tegnsæt, decimalformat eller manglende forældrekoblingRet filen i en teksteditor
„Sprunget over“ i importloggenSKU findes allerede, eller produktet findes ikke i opdateringstilstandVælg den rigtige tilstand (trin 5)
Stopper med 403, 413 eller 524Firewall, upload-grænse eller proxy-timeoutSe trin 3

1. Tjek filen, før du uploader

De hyppigste datafælder i danske importfiler:

  • Separator: Dansk Excel gemmer ofte med semikolon, mens importøren som standard forventer komma. Du kan angive en anden separator under „Vis avancerede indstillinger“ – eller gemme filen med komma.
  • Tegnsæt: Æ, ø og å bliver til spørgsmålstegn eller mærkelige tegn, når filen ikke er gemt som UTF-8. Vælg „CSV UTF-8“ ved gem i Excel, eller brug LibreOffice eller Google Sheets.
  • Decimaler: Brug punktum som decimaltegn og ingen tusindtalsseparator (149.95, ikke 149,95 eller 1.149,95). Komma kan blive tolket forkert afhængigt af butikkens indstillinger.
  • Lange tal: Excel laver EAN-numre om til videnskabelig notation (5,70123E+12) og fjerner foranstillede nuller i SKU’er. Formatér de kolonner som tekst, før du gemmer.
  • Kategorier: Underkategorier skrives med > (fx Tøj > Jakker), flere kategorier adskilles med komma.
  • ID-kolonne fra en anden butik: Eksporterer du fra én shop og importerer i en anden, så fjern ID-kolonnen eller lad være med at mappe den. ID’erne findes ikke i den nye database og giver fejl eller rammer forkerte produkter.

Åbn filen i en teksteditor – ikke kun Excel – og tjek separator og tegnsæt, før du uploader. Det, Excel viser, er ikke nødvendigvis det, der står i filen.

2. Følg den sikre arbejdsgang

Diagnoseillustration: sikker arbejdsgang for CSV-import med testkørsel og opdeling
Arbejdsgangen, der forebygger næsten alle importfejl: test småt, del op, og kør billeder for sig. Diagnoseillustration.
  1. Test med 10 rækker: Kopiér filens første rækker til en testfil, og kør den igennem. Alle mapping- og formatfejl viser sig her – på sekunder i stedet for efter 20 minutters kørsel. Slet testprodukterne bagefter, eller brug staging.
  2. Del filen op: 500-1.000 rækker pr. fil er robust på de fleste webhoteller. Importen kan køres ad flere omgange med samme kolonnemapping – vælg „Brug tidligere kolonnemapping“, så du ikke skal mappe igen.
  3. Kør billeder separat: Importér først produktdata uden billedkolonnen, og kør derefter en import med „Opdater eksisterende produkter“ og kun SKU + billeder. Så vælter billedhentningen aldrig selve produktimporten.
  4. Varianter efter forældre: Variable produkter skal stå før deres varianter i filen, og hver variant skal pege på sin forælder i kolonnen „Parent“ (forælder) via SKU eller id:123.

3. Timeouts, upload-grænser og blokerede kald

Billederne er næsten altid den tunge del: Hver billed-URL skal hentes, gemmes og have genereret alle billedstørrelser. Har du et billedoptimeringsplugin, der komprimerer ved upload, lægges det arbejde oven i. Overvej at sætte optimeringen på pause under importen og køre den bagefter.

  • Filen kan slet ikke uploades (413 eller fejl ved upload): Det er upload-grænsen – se guiden om upload-grænser. Under avancerede indstillinger kan du alternativt angive stien til en fil, der allerede ligger på serveren.
  • Kørslen dør undervejs: Tjek PHP-fejlloggen for maximum execution time eller „Allowed memory size exhausted“. Mindre filer og billeder for sig løser det oftest.
  • 403 midt i importen: En firewall eller et sikkerhedsplugin har blokeret et af baggrundskaldene. Find reglen i loggen, og lav en målrettet undtagelse for importen – slå ikke beskyttelsen fra generelt.
  • 524 bag Cloudflare: Cloudflare afbryder svar, der tager mere end cirka 100 sekunder. Mindre portioner hjælper – se Cloudflare Error 524.

Er du udvikler, kan portionsstørrelsen sænkes med filteret woocommerce_product_import_batch_size (standard 30). Det giver flere, men kortere kald – nyttigt, når hvert produkt har mange billeder:

add_filter( 'woocommerce_product_import_batch_size', function () {
    return 10;
} );

4. Når billederne mangler

Billedkolonnen tager en eller flere URL’er adskilt af komma; den første bliver produktets hovedbillede. Serveren skal selv kunne hente hver URL. Det fejler typisk, når:

  • linket er dødt eller kræver login (fx et delt drev eller en leverandørportal);
  • kildeserveren har et ugyldigt eller udløbet SSL-certifikat;
  • URL’en indeholder mellemrum eller æøå, der ikke er kodet korrekt;
  • kildeserveren blokerer mange hurtige forespørgsler fra samme IP.

Test tre af URL’erne i et privat browservindue. Kan du ikke hente dem dér, kan serveren heller ikke. Ligger billederne allerede i mediebiblioteket, kan du referere til dem med filnavnet i stedet for en ekstern URL.

5. Vælg den rigtige tilstand ved genkørsel

Fluebenet „Opdater eksisterende produkter“ ændrer, hvad importøren gør med hver række – og det er her, de fleste misforståelser opstår:

TilstandProdukt findes (samme ID eller SKU)Produkt findes ikke
Uden „Opdater eksisterende“Springes overOprettes
Med „Opdater eksisterende“OpdateresSpringes over

Gik en kørsel i stå, så kør hele filen igen uden „Opdater eksisterende produkter“. De allerede importerede produkter med SKU springes over, og resten oprettes. Skal de første produkter også have rettet data, så kør bagefter en opdateringskørsel. Dubletter opstår kun, når produkterne hverken har SKU eller ID at matche på – ryd i så fald de halvimporterede ud før genkørslen (filtrér på oprettelsesdato).

6. Læs importloggen

Når importen er færdig, viser WooCommerce, hvor mange produkter der blev oprettet, opdateret, sprunget over og fejlede – og en importlog med rækkenummer og årsag for hver række, der ikke gik igennem. Gennemgå den, før du kører igen. Typiske beskeder handler om en SKU, der allerede findes, et ugyldigt produkt-ID eller en forælder, der ikke kan findes for en variant.

Vises varianterne ikke korrekt efter importen, samler variant-guiden op. Tjek også synligheden på stikprøver – importfiler sætter af og til katalogsynligheden forkert.

Store kataloger og faste importer

WooCommerce har ingen indbygget WP-CLI-kommando til CSV-import. Til rigtig store kataloger eller faste importer fra en leverandør er der tre stabile veje: et importplugin, der kører i baggrunden via cron i stedet for i din browser; WooCommerce’ REST API, hvor batch-endpointet kan oprette eller opdatere op til 100 produkter pr. kald; eller et lille WP-CLI-script, som udvikleren skriver til netop jeres feed. Fælles for dem er, at de ikke er afhængige af en åben browserfane. Se også produkt-feeds fra leverandører.

7. Verificér resultatet

Importen er i mål, når:

  • antallet af produkter i wp-admin matcher antallet af rækker i filen (husk, at varianter tælles separat);
  • stikprøver viser korrekte priser med decimaler;
  • æøå står rigtigt i titler og beskrivelser;
  • billederne ligger på produkterne, og hovedbilledet er det rigtige;
  • varianterne kan vælges på produktsiden og har lagerstatus;
  • importloggen ikke viser rækker, du ikke har forklaring på.

Gem den færdige, fungerende importfil sammen med indstillingerne – næste sæsonimport bliver et genbrug i stedet for en ny fejlrunde.

Læs også

Ofte stillede spørgsmål om CSV-import

Hvor stor må importfilen være?

Teknisk sættes grænsen af serverens upload- og tidsgrænser – men i praksis er 500-1.000 rækker pr. kørsel det robuste valg. Store kataloger køres ad flere omgange, via et baggrundsimportplugin eller via REST API’et.

Hvorfor mangler billederne efter importen?

Fordi billed-URL’erne ikke kunne hentes: døde links, beskyttede mapper eller https-fejl på kildeserveren. Test tre af URL’erne i et privat browservindue – kan du ikke hente dem dér, kan serveren heller ikke.

Opretter en genkørsel dubletter?

Ikke når produkterne har SKU. Uden „Opdater eksisterende produkter“ springes rækker med en eksisterende SKU over, og med fluebenet opdateres de. Dubletter opstår kun, når rækkerne hverken har SKU eller ID at matche på.

Hvorfor bliver æ, ø og å til mærkelige tegn?

Fordi filen ikke er gemt som UTF-8. Gem den som „CSV UTF-8“ i Excel, eller eksportér fra LibreOffice eller Google Sheets med UTF-8, og importér igen med „Opdater eksisterende produkter“ for at rette de berørte produkter.

Skrevet af Marc, stifter af Hostious

Jeg hedder Marc og har stiftet Hostious. Vi hoster WordPress-hjemmesider og WooCommerce-webshops for danske virksomheder – drevet fra Aalborg-området med servere i Europa – og jeg skriver guiderne her ud fra det, vi ser i driften hver dag.

Udgivet 30. august 2026Opdateret 3. oktober 2026Fagligt gennemgået 2. oktober 2026