# Instalare pe OpenCart

> Un folder lângă index.php, încărcat înaintea OpenCart — fără extensie, pe OpenCart 2, 3 și 4.

Nu e o extensie OpenCart: e un folder pe care PHP îl încarcă înaintea magazinului, la fiecare cerere, prin
`auto_prepend_file`. Merge la fel pe OpenCart 2, 3 și 4 și nu se strică la schimbarea temei sau a extensiilor.

**Cerințe:** PHP 8.1 sau mai nou pentru magazin (pe un PHP mai vechi fișierul se încarcă și nu face nimic); extensia
PHP `curl` sau `allow_url_fopen`.

## Instalare

1. **Creează o cheie** în Survelium → **Setări brand → Integrări → Creează cheia**. Apare o singură dată.
2. **Urcă folderul.** Descarcă `survelium-agent-analytics-opencart-x.y.z.zip` din
   [Releases](https://github.com/survelium/agent-analytics-opencart/releases) și dezarhivează-l lângă `index.php`-ul
   OpenCart (de obicei `public_html`), ca să ai `public_html/survelium/survelium.php`.
3. **Configurează.** Copiază `survelium/config.example.php` în `survelium/config.php` și pune cheia la `api_key`.
   - Ai redenumit folderul de admin? Pune calea lui în `deny_paths`, de ex. `['/admin-meu']`.
   - În spatele Cloudflare? Setează `'ip_header' => 'HTTP_CF_CONNECTING_IP'`, altfel boții nu pot fi
     [verificați](https://survelium.ro/docs/ai-traffic/crawlers.md#verificarea).
4. **Încarcă-l înaintea OpenCart**, cu calea absolută spre `survelium.php`. Una dintre variante:
   - **`.user.ini`** lângă `index.php` (PHP-FPM, majoritatea hostingurilor cPanel și LiteSpeed; în cPanel, MultiPHP INI
     Editor scrie același lucru):

     ```ini
     auto_prepend_file = "/home/USER/public_html/survelium/survelium.php"
     ```

     PHP recitește `.user.ini` la câteva minute (implicit 300 de secunde).
   - **`.htaccess`** (Apache cu mod_php, LiteSpeed). OpenCart îl livrează ca `.htaccess.txt`; dacă nu l-ai redenumit
     niciodată, creează un `.htaccess` doar cu linia:

     ```apache
     php_value auto_prepend_file "/home/USER/public_html/survelium/survelium.php"
     ```

     Dacă magazinul răspunde imediat cu *500 Internal Server Error*, hostingul rulează PHP-FPM: scoate linia și
     folosește `.user.ini`.

   Nu știi calea absolută? E folderul arătat de managerul de fișiere al hostingului, sau `pwd` prin SSH.
5. **Verifică.** Deschide câteva pagini din magazin. În cel mult 15 minute, **Setări brand → Integrări** arată cheia ca
   folosită. Cu SSH:

   ```bash
   php survelium/status.php          # ce e în buffer, ultima trimitere, ultima eroare
   php survelium/status.php --send   # trimite acum
   ```

Folderul `survelium` are un `.htaccess` care blochează accesul din web (cheia, buffer-ul). Pe nginx, mută
`storage_path` în afara rădăcinii web sau blochează `/survelium/` în configurația serverului.

## Ce numără

Doar afișările de pagină (`GET`/`HEAD`, nu apelurile AJAX ale coșului sau formularele) și nimic de sub `/admin`.
Trimiterea are loc după ce pagina a plecat, în loturi.

## Actualizare

Dezarhivează zip-ul nou peste folderul vechi. `config.php` nu e în zip, deci setările rămân.

## Dezinstalare

Scoate **întâi** linia `auto_prepend_file`, apoi șterge folderul `survelium`. Invers, PHP dă eroare la fiecare cerere
până scoți linia.
