> For the complete documentation index, see [llms.txt](https://akyos.gitbook.io/book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://akyos.gitbook.io/book/prestashop/oskour.md).

# Oskour !!!!!!

Petite FAQ des problèmes courants :wink:

<details>

<summary>Mon site est lent</summary>

Bon, on le sait : nos PrestaShop ne sont pas des foudres de guerre. Par contre, quand une page met **10 secondes** à s’afficher, ce n’est plus normal.

Quelques pistes à regarder :

#### 1. Nettoyer certaines tables de statistiques

Certaines tables peuvent devenir énormes alors qu’elles servent surtout aux stats du tableau de bord :

```
ps_log
ps_connections
ps_connections_page
ps_connections_source
ps_guest
```

{% hint style="info" %}
**Astuce :** sur les PrestaShop récents, le module **akcleandb** est normalement installé avec une tâche cron qui fait ce nettoyage automatiquement.
{% endhint %}

#### 2. Vérifier si le site se fait spam

Ça arrive aussi qu’un site rame parce qu’il se fait spam. Dans ce cas, il peut parfois répondre normalement, puis parfois partir en **erreur 500**.

Si ce n’est pas déjà fait, mettre **Cloudflare** et vérifier s’il y a du trafic abusif.

{% hint style="danger" %}
**Attention :** ne pas activer le **Bot Fight Mode** si **Google Merchant Center** est utilisé.
{% endhint %}

#### 3. Activer le profiling

Le profiling permet de voir quels **modules**, **hooks** ou **requêtes SQL** posent problème.

* Soit depuis le BO : **Paramètres avancés > Performances > Outil de debug**
* Soit directement dans : `/config/defines.inc.php` en passant cette variable à `true` : `_PS_DEBUG_PROFILING_` (généralement vers la ligne 48)

</details>

<details>

<summary>La table layered_filter_block fait 2go (voir plus)</summary>

Pas d’inquiétude : cette table peut être vidée avec un simple `TRUNCATE TABLE`.

On peut aussi le faire directement depuis le back-office, dans le module Navigation à facettes : **Modules ⇒ Gestionnaire de modules ⇒ Filtres à facettes ⇒ Vider le cache**

{% hint style="info" %}
Pour éviter d’avoir à le faire à la main régulièrement, penser à mettre en place la tâche cron.
{% endhint %}

</details>

<details>

<summary>Le site est en erreur 500 </summary>

Pour avoir plus d’infos sur une **erreur 500**, le plus simple est d’activer le **mode debug**.

* Soit depuis le back-office : **Paramètres avancés > Performances > Mode debug**
* Soit directement dans le fichier : `/config/defines.inc.php` en passant cette variable à `true` : `_PS_MODE_DEV_` (en général vers la **ligne 16**)

{% hint style="danger" %}
Ne JAMAIS laisser le mode debug activé en production.&#x20;
{% endhint %}

{% hint style="info" %}
Si besoin d’activer le **mode debug en production**, sur **PrestaShop 9** il est possible d’ajouter une condition pour ne l’activer que dans certains cas, par exemple uniquement lorsqu’un **cookie** est présent. Le mode debug se pilote via la constante `_PS_MODE_DEV_` dans `config/defines.inc.php`.

Autre possibilité : n’activer le debug que pour **votre IP**.\
Dans ce cas, dans le fichier :

```
/config/defines.inc.php
```

au lieu de garder ce bloc :

```php
if (!defined('_PS_MODE_DEV_')) {
    define('_PS_MODE_DEV_', false);
}
```

Par celui-ci :&#x20;

```php
if (!defined('_PS_MODE_DEV_')) {
    if($_SERVER["REMOTE_ADDR"] === "11.11.111.111") {
        define('_PS_MODE_DEV_', true);
    } else {
        define('_PS_MODE_DEV_', false);
    }
}
```

{% endhint %}

</details>

<details>

<summary>Les urls ne fonctionnent pas</summary>

Essayer de régénérer le fichier `.htaccess` en allant dans : **Paramètres de la boutique > Trafic & SEO**

Puis :

* désactiver **URL simplifiée**
* enregistrer
* la réactiver
* enregistrer à nouveau

Ça permet souvent de recréer correctement le `.htaccess` et de régler le problème.

</details>

<details>

<summary>Dans le back-office, j’ai des problèmes JS en prod mais pas en local (ou inversement)</summary>

Les différences de comportement entre le local et la prod viennent souvent d’un problème de fichiers manquants.

Les premières vérifications à faire :

1. Vérifier que le dossier `vendor` est bien présent dans : `/js`
2. Vérifier que le dossier `vendor` est bien présent dans : `/adminXXX/themes/default/js/`

Si un de ces dossiers manque, une partie des scripts du back-office peut ne pas se charger correctement.

</details>

<details>

<summary>Les mails ne fonctionnent pas</summary>

Plusieurs pistes à vérifier :

#### 1. Vérifier que les emails ont bien été générés

Dans le dossier : `/mails`

vous devriez avoir un dossier par langue :

```
/fr
/en
...
```

Si ce n’est pas le cas, vous pouvez les générer depuis : **Apparence > Thèmes d’e-mail**

Puis dans la section **Générer des e-mails**, utiliser par défaut :

* **Thème** : `Modern`
* **Langue** : `Français`
* **Type de contenu** : `Cœur`
* **Écraser les templates existants** : `Oui`

#### 2. Vérifier la configuration SMTP

Aller dans : **Paramètres avancés > E-mail**&#x20;

Bien sélectionner : **Utiliser mes propres paramètres SMTP (pour les experts uniquement)**

Puis vérifier que la configuration **Brevo** est correcte.

#### 3. Vérifier l’adresse d’expédition

Si l’adresse d’expédition configurée est une adresse du type `machin@gmail.com` au lieu d’une adresse liée au domaine du site, l’envoi peut ne pas fonctionner correctement.

Vérifier l’adresse définie dans : **Paramètres de la boutique > Contact > onglet Magasin > Coordonnées** et utiliser une adresse cohérente avec le domaine du site.

{% hint style="danger" %}
**Expected response code 220 but got an empty response**

\= Erreur dans la configuration SMTP, vérifier le port, l'identifiant et le mot de passe
{% endhint %}

</details>

<details>

<summary>Je n’arrive pas à traduire une chaîne de caractères</summary>

Pour traduire du texte, aller dans : **International > Traductions**

Puis choisir le bon type de traduction :

* front-office
* module
* emails
* etc.

Si vous avez bien le message de confirmation, mais que la traduction ne remonte toujours pas, voilà le process habituel :

#### 1. Vider le cache depuis le back-office

Aller dans : **Paramètres avancés > Performances** et vider le cache, puis tester.

#### 2. Vider le cache en SSH

Si ça ne suffit pas, vider le cache à la main :

```shellscript
cd var/cache
rm -rf prod
rm -rf dev
```

Puis retester.

#### 3. Forcer une réécriture de la traduction

Retourner dans : **International > Traductions**

Ajouter un caractère dans la traduction, puis enregistrer.

#### 4. Re-vider le cache

Refaire les étapes 1 et 2.

#### 5. Si ça fonctionne, nettoyer proprement

Si la traduction remonte enfin, retourner dans la traduction, supprimer le caractère ajouté, enregistrer, puis revider le cache.

#### 6. Si ça ne fonctionne toujours pas

Insister 3 ou 4 fois. Oui, vraiment.

#### 7. Si ça ne veut toujours pas

Accepter que PrestaShop a décidé de mener sa propre vie, et passer en contournement directement dans le template :

```
{if $language.iso_code == 'fr'}
    <h1>Bonjour</h1>
{else if $language.iso_code == 'en'}
    <h1>Hello</h1>
{else if $language.iso_code == 'es'}
    <h1>Hola</h1>
{else}
    <h1>Hello</h1>
{/if}
```

C’est moche, oui. Mais ça marche.

</details>

<details>

<summary>Changer le meta-title ou la meta-description de la page d'accueil</summary>

Aller dans : **Paramètres de la boutique > Trafic & SEO**

Puis modifier la page **Index** en renseignant :

* **Titre de la page**
* **Meta description**

</details>

<details>

<summary>Erreur PDF sur PrestaShop 9.x et Infomaniak</summary>

La solution : <https://www.infomaniak.com/fr/support/faq/2690/resoudre-une-erreur-pdf-sur-prestashop-9x>

</details>
