Pourquoi ai-je une erreur de mise à jour du fichier xml ?
Vous venez de cliquer sur le bouton "mettre à jour" pour générer votre flux XML, et au bout de quelques dizaines de secondes (en général 30 secondes), vous obtenez l'erreur suivante :
Ceci est dû aux limitations définies sur le temps d'exécution et sur la mémoire dans le code PHP de la configuration de votre server (paramètres "max_execution_time" et "memory_limit").
Pour résoudre ce problème, sans avoir à modifier le PHP au niveau du server, vous pouvez déjà essayer de changer la valeur du nombre de produits à traiter par cycle. Pour cela allez dans "Configuration de base" --> "Nombre de produits par cycle" :
Vous devez jouer avec la valeur de cette option afin de trouver la meilleure valeur selon la performance de votre serveur.
Normalement, si vous êtes sur un serveur dédié et que vous avez beaucoup de produits, il sera préférable d'augmenter cette valeur. En effet, votre serveur n'étant dédié qu'à votre site, il supportera mieux de traiter un grand nombre de produits par cycle plutôt que de réaliser beaucoup de cycles (ce qui a tendance à utiliser beaucoup de mémoire et donc à rallonger le temps d'exécution de chaque cycle). Vous pouvez par exemple commencer par faire correspondre cette valeur avec le nombre de produits de votre catalogue afin que votre serveur ne réalise qu'un seul cycle. Si ça fonctionne, diminuez cette valeur jusqu'à réobtenir l'erreur. Puis, optez pour une valeur intermédiaire, ce qui correspondra au meilleur compromis entre performance et sécurité.
Si quel que soit le nombre de produits par cycle, vous obtenez toujours l'erreur, vous allez devoir augmenter la valeur des directives : "max_execution_time" et / ou "memory_limit" dans la configuration même du server.
Vous pouvez par exemple mettre 1 heure de temps d'exécution (max_execution_time=3600) et 1 GB de mémoire (memory_limit=1024M). Ceci n'est qu'un exemple et vous pouvez bien sûr ajuster ces valeurs afin d'obtenir le meilleur compromis. Les valeurs indiquées ici sont assez hautes, vous pouvez démarrer avec elles puis diminuer progressivement, jusqu'à ce que vous atteigniez la limite la plus basse acceptable.
Si par contre vous êtes sur un serveur mutualisé, vous n'avez normalement pas la possibilité d'overrider (modifier) la configuration du server. Commencez par diminuer la valeur du nombre de produits par cycle afin de diminuer le temps d'exécution. Baissez à 100, puis 50, 25 etc... Jusqu'à ce que vous n'obteniez plus d'erreur. Ensuite, réaugmentez jusqu'à réobtenir l'erreur et laissez la dernière valeur qui fonctionne.
Vous pouvez également aller dans le fichier de configuration de votre installation de PrestaShop :
Ouvrez le fichier /config/config.inc.php de PrestaShop et ajoutez ces 2 lignes de codes là :
@ini_set('max_execution_time', 3600); // 1 heure
@ini_set('memory_limit', '1024M'); // 1 gigabyte
Sinon, vous pouvez toujours contacter votre hébergeur afin de lui demander de modifier les valeurs du temps d'exécution limite et / ou de la mémoire utilisée directement sur le serveur.
Autres FAQ dans la même catégorie
- Comment vérifier quels prix sont envoyés à Google ?
- Pourquoi mes flux de produits génèrent-ils des erreurs ?
- Comment fonctionne l'outil de diagnostic ?
- Pourquoi les fichiers XML n'ont-ils pas été créés ?
- Comment créer un flux Langue/Pays/Devise différent de ceux proposés par défaut par le module ?
- Comment vérifier que mes prix réduits (spécifiques) sont bien exportés ?
- Pourquoi certains de mes produits n'ont-ils pas été exportés dans le flux ?
- Comment vérifier que mes données sont bien mises à jour ?