# Magento 2

> Sporing på Magento 2 og Adobe Commerce via Google Analytics 4 – sporingskoden i HTML Head og Magentos eget Google Analytics-modul. Intet modul fra os endnu.

Magento 2 (og Adobe Commerce) spores gennem [Google Analytics-vejen](https://www.affilyflow.com/docs/reference/google-analytics): sporingskoden ligger på alle sider, og Magentos eget Google Analytics-modul sender købet til Google Analytics 4 fra kvitteringen – med ordrenummer, beløb, moms og fragt. Det læser sporingskoden, og vi regner provisionen af varerne uden moms og fragt.

> [!NOTE]
> Vi har endnu ikke et Magento-modul. Guiden her kræver, at butikken har Google Analytics 4 slået til – og Google Analytics sender intet, når kunden siger nej til statistik-cookies. Det køb mistes. Guiden er skrevet efter Magentos dokumentation og kildekode og er endnu ikke efterprøvet på en rigtig Magento-butik: test med et testkøb, før I regner med den.

## Før du starter

- Admin-adgang til **Content → Design** og **Stores → Configuration**.
- Kodestumperne fra **Program → Opsætning**, hvor jeres butiks-id er sat ind. Her i guiden står `DIN_BUTIK` i stedet.
- Opsætning genkender som regel Magento selv. Står den ikke valgt, så vælg **Magento 2** under *Andre systemer*.

## 1. Sporingskoden på alle sider

Gå til **Content → Design → Configuration**, tryk **Edit** ud for jeres butiksvisning (Store View), åbn **HTML Head**, og sæt koden i feltet **Scripts and Style Sheets**. Gem, og ryd cachen under **System → Cache Management**.

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

Har butikken flere butiksvisninger, så sæt koden på den, kunderne handler i – eller på Website-niveau, så den gælder alle.

> [!WARNING]
> Kører butikken **Content Security Policy** i "restrict"-tilstand, skal `app.affilyflow.com` tillades som script-kilde (`script-src`), ellers kører scriptet ikke på checkout- og kvitteringssiderne. Adobe skriver selv, at JavaScript i feltet kræver en CSP-tilladelse. Spørg jeres udvikler, hvis I er i tvivl.

Bruger I et Hyvä- eller andet specialtema, kan feltet være slået fra. Så sætter udvikleren linjen i temaets head i stedet.

## 2. Slå Google Analytics 4 til

Gå til **Stores → Configuration → Sales → Google API → Google Analytics** (Magentos eget modul `Magento_GoogleGtag`, fra 2.4.5), sæt **Enable** til Yes, skriv jeres **Measurement ID** (G-…), og gem.

Modulet sender `purchase` til Google Analytics 4 på kvitteringen med `transaction_id` (det ordrenummer, I ser i admin), `value`, `tax`, `shipping` og `currency`. Bruger I allerede et GA4-modul fra en tredjepart (Amasty, WeltPixel, Mageplaza …), er det nok – de fleste sender samme hændelse.

**Sådan regner vi:** Magento sender fragten *uden* moms og `tax` som al moms (også fragtens). Grundlaget er derfor `value − tax − shipping` = varerne uden moms og fragt, efter rabat. Opsætning gemmer reglen på butikken, når I vælger Magento – I skal ikke indstille noget.

> [!NOTE]
> Magentos cookie-restriktion respekteres: uden samtykke til statistik indlæses Google Analytics ikke, og `purchase` kommer aldrig. Det køb kan vi ikke se.

### For udviklere: uden Google Analytics

Vil I ikke bruge Google Analytics, kan en udvikler sætte [salgslinjen](https://www.affilyflow.com/docs/reference/salgslinje) i temaets `Magento_Checkout::success.phtml`. Blokken på kvitteringen har ikke selv ordren (kun `getOrderId()`), så ordren hentes gennem checkout-sessionen. Beløbet er ordrens total uden fragt, og `data-affilyflow-vat` trækker momsen ud – 25 er den danske sats, ret den til jeres.

```php title="success.phtml · kun kvitteringen"
<?php $afOrder = \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Checkout\Model\Session::class)->getLastRealOrder(); ?>
<div hidden data-affilyflow-order="<?= $block->escapeHtmlAttr($afOrder->getIncrementId()) ?>" data-affilyflow-total="<?= $block->escapeHtmlAttr(number_format((float) $afOrder->getGrandTotal() - (float) $afOrder->getShippingInclTax(), 2, '.', '')) ?>" data-affilyflow-vat="25" data-affilyflow-currency="<?= $block->escapeHtmlAttr($afOrder->getOrderCurrencyCode()) ?>"></div>
```

Linjen er endnu ikke efterprøvet på en rigtig butik – test den med et testkøb, og tjek beløbet i live-testen. Brug kun en vej: linjen *eller* Google Analytics – ellers kan samme køb blive meldt to gange.

## 3. Test

Gå til trinnet **Test sporingen** i Opsætning, tryk **Åbn testlink**, og læg en testordre i den fane, der åbner – sig ja til statistik-cookies i banneret. Bliv i Opsætning – live-testen viser testklikket og købet med ordrenummer og beløb og spørger, om beløbet passer. Et testkøb giver ingen provision og intet gebyr. Et køb uden klik fra et link tælles ikke.

Kommer salget ikke frem: tjek, at Google Analytics 4 er slået til, at I sagde ja til cookies, og at sporingskoden også står på kvitteringssiden (CSP). Se også [Test og fejlfinding](https://www.affilyflow.com/docs/butik/test-og-fejlfinding).

## Typiske fejl

| Det ser I | Årsag |
|---|---|
| Opsætning finder ikke sporingskoden | Koden står på en anden butiksvisning end forsiden, eller cachen er ikke ryddet. |
| Klik, men aldrig salg | Google Analytics 4 er ikke slået til, kunden sagde nej til statistik-cookies, eller CSP blokerer scriptet på kvitteringen. |
| Beløbet i live-testen er for højt | Et tredjeparts GA4-modul sender fragten med moms. Skriv til os – vi retter fragtreglen for butikken. |

## Refusioner

Magento melder ikke refusioner eller kreditnotaer 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/magento
