# DanDomain Classic

> Sporing på den ældre DanDomain-motor – sporingskoden i sitets kodefelt og salgskoden på Bestil step 4.

DanDomain Classic er den ældre DanDomain-motor. I kender den på adresser med `/shop/frontpage.html` og på `[[variabler]]` i skabelonerne. Den har to kodefelter i hver sin del af administrationen: et, der skrives ud på alle sider, og et, der kun vises efter et gennemført køb.

> [!NOTE]
> Kører shoppen den nye Dandomain Webshop (samme motor som Smartweb og HostedShop), så brug [Smartweb og HostedShop](https://www.affilyflow.com/docs/butik/smartweb) i stedet.

## Før du starter

- Adgang til shoppens administration.
- Jeres butiks-id. Kodestumperne under **Program → Opsætning** har det sat ind; her står `DIN_BUTIK` i stedet.
- Opsætning genkender som regel platformen selv. Står den ikke valgt, så vælg **DanDomain Classic**.

## 1. Sporingskoden i sitets kodefelt

Gå til **Opsætning → Site → rediger jeres site → Kodefelt**, og sæt koden ind. Feltet skrives ud i toppen af alle sider.

```html title="Sporingskode – skal på alle sider"
<script src="https://app.affilyflow.com/track.js" data-store="DIN_BUTIK" async></script>
```

- Hedder menupunktet **Indstillinger** i stedet for **Opsætning**, er det samme sted – DanDomain kalder det begge dele.
- Har I flere sites i samme shop, skal koden ind på hvert site.

## 2. Salgskoden på Bestil step 4

Gå til **Design → Tekster/knapper → Bestil step 4 → Kodefelt**, og sæt salgskoden ind. Siden vises kun efter et gennemført køb.

```html title="Salgskode – kun på Bestil step 4"
<script>
  (function () {
    // Laeser beloebet, uanset om det kommer med valuta eller tusindtalsseparator.
    function tal(v) {
      // '499,-' og '1.249,-' er almindelige i Danmark: et afsluttende ',-' fjernes,
      // og et minus taeller kun forrest.
      var t = String(v).replace(/[^0-9.,-]/g, '').replace(/[.,]?-+$/, '').replace(/(?!^)-/g, '').replace(/^[.,]+|[.,]+$/g, '');
      var k = t.lastIndexOf(','), p = t.lastIndexOf('.');
      if (k > -1 && p > -1) t = k > p ? t.split('.').join('').replace(',', '.') : t.split(',').join('');
      else {
        var sep = k > -1 ? ',' : p > -1 ? '.' : '';
        if (sep && (t.split(sep).length > 2 || t.length - t.lastIndexOf(sep) === 4)) t = t.split(sep).join('');
        else if (sep === ',') t = t.replace(',', '.');
      }
      return Number(t) || 0;
    }
    var id = '[[OrderID]]';
    if (id.indexOf('[[') === 0) id = '';
    var raw = '[[SubTotalExclShippingAndPaymentFeesExclVAT]]';
    // Staar variablen her endnu, ligger koden et sted uden ordre: send intet (audit 19. okt, I1).
    if (raw.indexOf('[[') === 0) {
      console.error('Affilyflow: salgskoden skal i feltet paa Bestil step 4 (ordrebekraeftelsen).');
      return;
    }
    var total = tal(raw);
    if (!(total > 0)) return;
    // DanDomain har ingen valutakode-variabel; beloebet staar med valuta, fx "EUR 49,95".
    // "kr." kan ikke skelnes, saa uden kode bruges butikkens valuta (audit 19. okt, I3).
    var cur = (raw.match(/[A-Z]{3}/) || [''])[0];
    var tries = 0;
    (function send() {
      if (!window.affilyflow) { if (tries++ < 50) setTimeout(send, 200); else console.error('Affilyflow: sporingskoden (track.js) mangler paa siden - salget er ikke registreret.'); return; }
      affilyflow.conversion({ order: id, total: total, currency: cur });
    })();
  })();
</script>
```

Shoppen udfylder selv ordrenummer og beløb, hvor der står `[[variabler]]`. Beløbet er kurvens total uden moms, fragt og gebyr – præcis det, provisionen skal regnes af.

> [!WARNING]
> Der findes også **Design → Skins → Bestil step 4**. Det er designskabelonen og det forkerte sted. Salgskoden skal i **Tekster/knapper**.

**Valuta:** DanDomain har ingen variabel med valutakoden. Står beløbet med en kode som `EUR 49,95`, bruges den; står der "kr.", bruges butikkens egen valuta.

## 3. Test

Tryk **Åbn testlink** under testtrinnet i Opsætning, læg en testordre i samme browser, og bliv på siden. Live-testen viser testklikket og købet med ordrenummer og beløb, og spørger om beløbet passer. Et køb uden klik fra et link tælles ikke.

> [!TIP]
> Har I et Google Analytics-id i shoppens sporingsfelt, så tjek, at den samme kode ikke står to steder. DanDomain advarer selv mod dobbelt implementering, og det gælder også vores kode.

## Typiske fejl

| Det ser I | Årsag |
|---|---|
| Opsætning finder ikke sporingskoden | Har shoppen flere sites, skal koden i kodefeltet på det site, forsiden hører til. |
| Konsollen skriver "salgskoden skal i feltet paa Bestil step 4" | Salgskoden ligger i sitets kodefelt. Flyt den til Tekster/knapper → Bestil step 4. |
| Salget kommer uden ordrenummer | Variablen `[[OrderID]]` blev ikke udfyldt. Uden nummer kan en genindlæst kvittering tælle som et nyt salg. |

Mere i [Test og fejlfinding](https://www.affilyflow.com/docs/butik/test-og-fejlfinding).

## Refusioner

Platformen melder ikke refusioner til os. Et refunderet køb skal I selv afvise inden for godkendelsesperioden – se [Godkendelse og refusioner](https://www.affilyflow.com/docs/butik/godkendelse-og-refusioner).

Kilde: https://www.affilyflow.com/docs/butik/dandomain-classic
