Guide Adresser

# Adresseforslag i PrestaShop-checkout

PrestaShop har ikke et felt i admin til egne scripts, men alle temaer bygget på Classic har en tom fil, der er beregnet til netop det: `custom.js`. Den indlæses sidst på hver side, også i checkouten, og det er nok til at sætte [adressefeltet](https://grundfast.dk/docs/adressefelt) på adressetrinnet.

Kaldet i guiden

- [GET /v1/adresse/search](https://grundfast.dk/docs/api/adresse-search)

3 min læsning 6 trin Opdateret 5. oktober 2026

## Opret en offentlig nøgle

Feltet kalder Grundfast direkte fra kundens browser, så det bruger en **offentlig nøgle** (`gf_pub_live_`). Den må gerne stå i sidens kildekode, fordi den kun virker fra de domæner, du skriver på den, og kun til adresseopslag. Opret den under [Nøgler i dashboardet](https://grundfast.dk/dashboard/keys): vælg **Offentlig** og skriv dine domæner, fx `butik.dk` og `www.butik.dk`.

Byg og test med en offentlig testnøgle (`gf_pub_test_`), som aldrig faktureres, og skift til live-nøglen, når feltet virker. Reglerne for domæner — `www`, underdomæner med `*.` og porte — står i [dokumentationen for adressefeltet](https://grundfast.dk/docs/adressefelt#offentlige-noegler).

## Felterne på adressetrinnet

Adressetrinnet i checkouten bruger den samme adresseformular som kundens konto. I Classic-temaet får hvert felt id’et `field-` plus feltets navn, og navnene er PrestaShops egne:

| Felt | Navn | Id i Classic |
| --- | --- | --- |
| Adresse | address1 | field-address1 |
| Postnummer | postcode | field-postcode |
| By | city | field-city |

Brug navnet frem for id’et i selektoren — så virker det også i temaer, der ikke bygger på Classic, så længe de bruger PrestaShops standardfelter.

## Læg scriptet i custom.js

Åbn `themes/<dit-tema>/assets/js/custom.js` (via FTP eller dit deploy) og indsæt nedenstående. Det opretter script-tagget med de samme indstillinger, som du ellers ville skrive i HTML:

themes/\<dit-tema>/assets/js/custom.js javascript

```
(function () {
  var s = document.createElement('script');
  s.src = 'https://grundfast.dk/widget/v1/grundfast-adresse.js';
  s.dataset.key = 'gf_pub_live_...';
  s.dataset.felt = 'input[name="address1"]';
  s.dataset.postnr = 'input[name="postcode"]';
  s.dataset.by = 'input[name="city"]';
  document.head.appendChild(s);
})();
```

Tøm derefter cachen under **Advanced Parameters → Performance → Clear cache**, især hvis du har slået sammenlægning af JavaScript (CCC) til — ellers serveres den gamle, samlede fil.

Opdatering af temaet

Retter du direkte i det medfølgende Classic-tema, kan en opdatering overskrive `custom.js`. Brug et child-tema eller en kopi af temaet, og læg filen dér.

## Hvad der sker i checkouten

- Kunden skriver i Adresse og får forslag fra to tegn. Har bygningen lejligheder, kommer etage og dør som et ekstra trin.
- Adresse får gade, husnummer og evt. etage og dør; Postnummer og By udfyldes. Feltet skriver dem, som om kunden havde tastet, så PrestaShops egen validering kører som normalt.
- Når kunden skifter land eller tilføjer en ny adresse, tegner PrestaShop formularen igen. Feltet hægter sig på det nye inputfelt af sig selv.
- Det samme gælder faktureringsadressen, hvis kunden vælger en anden adresse til faktura — den bruger de samme feltnavne i sin egen formular.

## Tjek nøglen fra en terminal

Før du leder i platformens indstillinger, kan du se, om nøglen og domænet passer sammen. Kaldet nedenfor er det samme, feltet laver. `Origin` er dit domæne, præcis som browseren skriver det:

bash

```
curl -G "https://api.grundfast.dk/v1/adresse/search" \
  --data-urlencode "q=Vestergade 10" \
  --data-urlencode "token=$GRUNDFAST_PUBLIC_KEY" \
  -H "Origin: https://www.butik.dk"
```

Svarer det med adresser, er nøglen i orden. Et `403` med `origin … is not allowed` betyder, at domænet ikke står på nøglen — ret listen i dashboardet; det slår igennem inden for et halvt minut.

## Hvis der ikke kommer forslag

- Åbn browserens konsol (F12, fanen Console). Feltet skriver én linje, der begynder med `[grundfast-adresse]`, med årsagen fra API’et.
- `no public key` — scriptet blev indlæst uden `data-key`.
- Ingen linje og ingen liste — feltet blev ikke fundet. Tjek at selektoren i `data-felt` rammer feltet: skriv `document.querySelectorAll('…')` med den samme selektor i konsollen.
- Listen vises, men felterne udfyldes ikke — selektorerne i `data-postnr` og `data-by` rammer ikke noget. De slås op i samme formular som adressefeltet først, derefter på hele siden.

Feltet stopper aldrig formularen: fejler et kald, lukker listen, og kunden kan skrive adressen i hånden som før.

Var denne side nyttig?

## Ofte stillede spørgsmål

### Skal jeg bruge et modul?

Nej. custom.js er beregnet til egne scripts og indlæses på alle sider. Et modul giver først mening, hvis du vil styre nøglen fra admin eller kun indlæse filen i checkouten.

### Kan jeg registrere scriptet i theme.yml i stedet?

Ja, PrestaShop understøtter eksterne filer i theme.yml med server: remote. Men nøglen og selektorerne skal stå som data-attributter på tagget, og dem kan theme.yml ikke sætte. Derfor er custom.js den enkleste vej.

### Virker det i Hummingbird og andre temaer?

Selektorerne bruger feltnavnene address1, postcode og city, som er PrestaShops egne. Så længe temaet bruger standardformularen, virker de. Har dit tema sine egne felter, så find dem med browserens inspektør og ret selektorerne.

### Hvad med adresser, der allerede ligger i butikken?

De kan vaskes mod adresseregistret med datavask-endpointet, som giver de bedste kandidater og en sikkerhed pr. adresse. Det kræver en hemmelig nøgle og sker fra en server, ikke fra butikken.

## Prøv det på rigtige data

En gratis nøgle giver adgang til alle registre med samme svarform. Testnøgler faktureres aldrig, så du kan bygge færdigt, før du skifter til produktion.

[Kom i gang gratis](https://grundfast.dk/dashboard?mode=register) [Se alle guides](https://grundfast.dk/guides)

Gratis op til 5.000 kald/md · intet kreditkort · data fra Klimadatastyrelsen/Datafordeler, CC BY 4.0

Relateret

- [Adressefelt til checkout og formularer Dokumentation](https://grundfast.dk/docs/adressefelt)
- [Adresseforslag i Magento-checkout Guide](https://grundfast.dk/guides/adressefelt-i-magento)
- [Adresse-autocomplete i WooCommerce Guide](https://grundfast.dk/woocommerce-adresse-autocomplete)
- [Datavask Vask adresser mod DAR](https://grundfast.dk/datavask-api)
- [Søg efter en adresse GET /v1/adresse/search](https://grundfast.dk/docs/api/adresse-search)

På denne side

1. Opret en offentlig nøgle
2. Felterne på adressetrinnet
3. Læg scriptet i custom.js
4. Hvad der sker i checkouten
5. Tjek nøglen fra en terminal
6. Hvis der ikke kommer forslag
7. Ofte stillede spørgsmål

[API-dokumentation](https://grundfast.dk/docs)[Alle guides](https://grundfast.dk/guides)[Spørg os](https://grundfast.dk/kontakt)
