Visser Labs – Plugins WooCommerce

  1. Accueil
  2. Base de connaissances
  3. WooCommerce Store Exporter Deluxe
  4. Problèmes d'exportation courants
  5. Comment exporter de grands magasins WooCommerce avec Store Exporter Deluxe

Comment exporter de grands magasins WooCommerce avec Store Exporter Deluxe

Si votre boutique compte des milliers de produits, de commandes ou de clients, une exportation qui fonctionne bien sur un petit catalogue peut soudainement se bloquer, expirer ou se terminer sans aucun fichier sur un plus grand. C'est rarement une faute de Store Exporter Deluxe lui-même. C'est presque toujours votre serveur qui manque de mémoire PHP ou de temps d'exécution autorisé pour une seule requête.

Quick Export divise déjà chaque exportation en lots, donc il n'essaie pas de traiter tout votre catalogue en une seule fois. Néanmoins, une boutique suffisamment grande peut nécessiter un peu plus de marge de manœuvre PHP, et il est utile de savoir où chercher lorsqu'une exportation ne se termine pas. Cet article explique comment fonctionne le traitement par lots, quels paramètres PHP sont les plus importants, et comment utiliser le journal d'audit et les journaux WooCommerce pour découvrir pourquoi une exportation s'est arrêtée.

Prérequis

ExigenceDétails
PluginStore Exporter Deluxe est actif et licencié
WooCommerceActif, car les exportations tirent leurs données de votre boutique WooCommerce
Accès à l'hébergementCapacité à modifier votre memory_limit et max_execution_time PHP, ou un hôte que vous pouvez demander d'augmenter
Accès administrateurUn compte avec accès au tableau de bord d'administration WordPress

Comment fonctionne le traitement par lots

Quick Export ne charge jamais tout votre catalogue en mémoire d'un coup. Au lieu de cela, il divise les enregistrements que vous exportez en lots de 100 par défaut, puis traite un lot par requête. Ainsi, une exportation de 5 000 produits s'exécute en 50 lots distincts au lieu d'une seule requête énorme, ce qui maintient l'utilisation de la mémoire prévisible, quelle que soit la croissance de votre boutique. La progression de chaque lot est enregistrée au fur et à mesure de son achèvement, donc si vous regardez une exécution de Quick Export, la barre de progression que vous voyez augmente un lot à la fois plutôt que d'attendre la fin de l'exportation entière avant d'afficher quoi que ce soit. Les exportations planifiées fonctionnent différemment. Voir L'exportation planifiée n'est pas une solution aux erreurs de mémoire ou de limite de temps ci-dessous.

Quick Export : Chaque lot de Quick Export est sa propre requête, et chaque lot s'exécute sous le memory_limit et le max_execution_time PHP normaux de votre serveur. Le plugin n'augmente pas ces limites pour un lot, et le paramètre Script Timeout ne les modifie pas. Donc, pour Quick Export, les deux choses qui aident sont une Taille de lot plus petite (ci-dessous) et des limites PHP plus élevées sur votre hôte. Si les exportations s'arrêtent avec des erreurs de mémoire, ou s'arrêtent systématiquement après environ la même durée, demandez à votre hôte d'augmenter memory_limit et max_execution_time dans la configuration PHP de votre serveur.

Exports planifiés : Lorsqu'un Export planifié démarre, Store Exporter Deluxe demande à PHP d'augmenter sa limite de mémoire à WP_MAX_MEMORY_LIMIT de votre site et applique le réglage Délai d'exécution du script comme limite de temps d'exécution. WordPress définit WP_MAX_MEMORY_LIMIT à 256 Mo par défaut, bien au-dessus du minimum de 64 Mo du plugin. Cela dit, de nombreux hébergeurs bloquent ces remplacements d'exécution et appliquent leurs propres plafonds stricts, quelle que soit la demande du plugin. Si un grand Export planifié s'arrête toujours, demandez à votre hébergeur d'augmenter memory_limit et max_execution_time directement dans la configuration PHP de votre serveur.

Délai d'exécution du script : Vérifiez Réglages → Général → Délai d'exécution du script avant un grand Export planifié. Il est livré en tant que Illimité. S'il a été modifié à 10 minutes, 30 minutes ou 1 heure, un Export planifié qui dure plus longtemps s'arrête lorsqu'il atteint cette limite. Remettez-le à Illimité avant d'exécuter un grand Export planifié. Ce réglage n'affecte pas les lots d'Export rapide.

Pour l'Export rapide, la réduction de la taille du lot (ci-dessous) est le principal réglage que vous contrôlez. Un lot plus petit nécessite moins de mémoire et de temps par requête, ce qui permet souvent de réaliser une grande exportation même sur un serveur très limité.

Ajustement de la taille du lot pour les très grandes exportations

  1. Ouvrez WooCommerce → Store Export depuis le menu d’administration WordPress.
  2. Cliquez sur Export rapide dans la barre latérale.
  3. À l'étape Sélectionner le type d'exportation, choisissez ce que vous souhaitez exporter.
  4. Continuez à travers Champs d'exportation (et Filtres et tri, s'il apparaît pour ce type) pour atteindre l'étape Options d'exportation.
  5. Sous Paramètres de lot, entrez un nombre dans le champ Taille du lot. Il est vide par défaut, ce qui utilise la valeur intégrée du plugin de 100 enregistrements par lot.

La réduction de la Taille du lot (par exemple, à 25 ou 50) rend chaque requête de lot individuelle plus légère en mémoire et plus rapide à terminer, ce qui aide sur un serveur avec une faible memory_limit ou max_execution_time. Le compromis est un plus grand nombre de lots au total, donc l'exportation complète nécessite plus de requêtes pour être terminée. Il n'y a pas de minimum fixe, il vaut donc la peine de tester une valeur plus petite si vos exportations de taille par défaut sont celles qui dépassent le délai.

L'étape des options d'exportation de l'exportation rapide montrant la section des paramètres de lot, avec le champ taille de lot défini sur 25

Utilisation du journal d'audit pour vérifier une grande exportation

Store Exporter Deluxe conserve un enregistrement de chaque exportation dans son Journal d'audit, disponible dans la barre latérale sous WooCommerce → Exportation de magasin. Chaque entrée affiche le type d'exportation, ce qui l'a déclenchée, son statut et les horodatages.

La page Journal d'audit listant les exécutions d'exportation récentes avec leurs colonnes type, déclencheur, statut, niveau et durée

Cliquez sur une entrée pour l'agrandir. Si l'exécution affiche Échec, la vue développée inclut le message d'erreur.

Une entrée du journal d'audit développée avec le statut Échec, montrant la boîte d'erreur avec le message d'échec

Une erreur de mémoire ou de limite de temps fonctionne différemment. Lorsque PHP manque de mémoire ou de temps, il arrête l'exportation immédiatement, avant que le plugin ne puisse enregistrer quoi que ce soit. L'entrée reste alors sur En cours sans message d'erreur. Pour confirmer ce qui s'est passé, allez dans WooCommerce → Statut → Journaux et recherchez un journal avec la source erreurs fatales, ou demandez à votre hébergeur le journal des erreurs PHP.

Le journal d'audit est activé par défaut. S'il manque dans votre barre latérale, quelqu'un a désactivé le bouton Activer le journal d'audit sous Paramètres → Journal d'audit.

La même section Paramètres → Journal d'audit contrôle également le niveau de détail de chaque entrée, défini séparément pour les Exports rapides et les Exports planifiés. Le niveau Standard par défaut enregistre déjà la Durée. Passez une source à Détaillé pour également capturer l'Utilisation maximale de la mémoire.

Le niveau de journalisation des exportations rapides défini sur Détaillé

Cela vaut la peine d'être activé pendant que vous optimisez un grand export, car cela vous indique à quel point chaque exécution terminée s'est approchée de votre memory_limit et combien de temps elle a pris. Cela vous montre combien de marge il reste avant qu'un export plus important n'atteigne la limite.

La liste des champs du niveau Détaillé montrant les cases Durée et Utilisation maximale de la mémoire activées

L'exportation planifiée n'est pas une solution aux erreurs de mémoire ou de limite de temps

Une exportation planifiée ne regroupe pas les enregistrements comme le fait une exportation rapide. Elle traite l'ensemble des données comme un seul travail d'arrière-plan via Action Scheduler. Le plugin demande plus de mémoire à PHP et applique le Délai d'exécution du script au démarrage de l'exécution, mais si votre hébergeur bloque ces substitutions, le travail s'exécute toujours dans les limites de votre hébergeur. En tant que travail non groupé, il nécessite généralement *plus* de mémoire qu'une exportation rapide groupée, pas moins. Il n'y a pas de champ Taille du lot sur le formulaire d'exportation planifiée car il n'y a rien à grouper.

Ce qu'une exportation planifiée évite, c'est la dépendance à l'onglet du navigateur : comme elle s'exécute en tant que travail d'arrière-plan, elle n'est pas liée au maintien de l'onglet de votre navigateur ouvert ni à la durée pendant laquelle une requête de page dans votre navigateur est autorisée à s'exécuter. Si une exportation rapide est bloquée parce que vous ne pouvez pas garder l'onglet ouvert assez longtemps, une exportation planifiée résout ce problème spécifique. Si elle est bloquée par la mémoire ou le temps d'exécution, réduisez plutôt la Taille du lot ou augmentez vos limites PHP. Pour des instructions détaillées, voir Comment planifier des exportations dans Store Exporter Deluxe.

Dépannage

Une exportation rapide se bloque ou ne se termine jamais
Vérifiez d'abord l'entrée du Journal d'audit pour cette exécution. Si elle indique toujours En cours bien après l'arrêt de l'exportation, deux choses se sont produites. PHP a atteint sa limite de mémoire ou de temps (voir Une exportation échoue avec une erreur serveur ci-dessous pour confirmer), ou l'onglet du navigateur a perdu sa connexion en cours de route. Après un arrêt comme celui-ci, le plugin traite toujours l'exportation comme en cours pendant 30 minutes maximum, donc une nouvelle exportation rapide affiche « Une exportation est déjà en cours. » Avant de réessayer, allez dans Paramètres → Avancé, trouvez Effacer le transient d'exportation sous Maintenance, et cliquez sur Effacer. Essayez ensuite à nouveau avec une Taille de lot plus petite, et gardez l'onglet ouvert et actif jusqu'à ce que l'exportation soit terminée plutôt que de vous en éloigner pendant une période prolongée.
Une exportation échoue avec une erreur serveur
Une erreur serveur lors d'une exportation importante signifie généralement que PHP a atteint sa memory_limit ou max_execution_time en milieu de lot. Dans ce cas, l'entrée correspondante du Journal d'audit reste sur En cours sans message d'erreur, car PHP s'arrête avant que le plugin ne puisse en enregistrer une. Pour confirmer, allez dans WooCommerce → Statut → Journaux et ouvrez le journal avec la source fatal-errors, ou demandez à votre hébergeur le journal des erreurs PHP. Une ligne commençant par « Allowed memory size of » ou « Maximum execution time of » le confirme. Si l'entrée indique Échoué à la place, développez-la pour lire le message d'erreur.

S'il s'agissait d'une exportation rapide, avant de réessayer, allez dans Paramètres → Avancé, trouvez Effacer le transient d'exportation sous Maintenance, et cliquez sur Effacer. Si vous sautez cette étape, la prochaine exportation rapide affichera « Une exportation est déjà en cours. » pendant 30 minutes maximum. Ensuite, réduisez la Taille de lot et réessayez. Chaque lot s'exécute dans les limites PHP de votre serveur, alors demandez à votre hébergeur d'augmenter les deux paramètres PHP si le problème persiste. Si cela se produit sur une exportation planifiée, vérifiez également que Paramètres → Général → Délai d'attente du script est défini sur Illimité.
Un catalogue volumineux expire toujours avec une petite taille de lot
Une exportation planifiée n'aidera pas ici, car elle exécute l'exportation entière comme un seul travail non segmenté et nécessite plus de mémoire et de temps que l'exportation rapide, pas moins. Cliquez sur Effacer à côté de Effacer le transient d'exportation (Paramètres → Avancé, sous Maintenance) comme décrit ci-dessus, puis réduisez davantage la Taille de lot. Chaque lot s'exécute dans les limites PHP de votre serveur, donc si l'exportation ne peut toujours pas se terminer, demandez à votre hébergeur d'augmenter directement memory_limit et max_execution_time sur le serveur.

FAQ

Quelle est une bonne taille de lot pour commencer pour un grand magasin ?
Il n'y a pas de nombre unique correct, car cela dépend des limites de mémoire et de temps de votre serveur. Commencez avec la valeur par défaut de 100. Si les exportations expirent, essayez 50, puis 25, jusqu'à ce que vous trouviez une taille qui se termine de manière cohérente.
Une taille de lot plus petite ralentit-elle l'ensemble de l'exportation ?
Cela peut ajouter une légère surcharge, car plus de lots signifient plus de requêtes individuelles. Mais une taille de lot plus petite qui se termine réellement est plus rapide en pratique qu'une taille plus grande qui expire et doit être redémarrée.
Une exportation planifiée évitera-t-elle complètement les expirations ?
Non. Elle supprime la dépendance à la fenêtre du navigateur qu'a une exportation rapide, mais elle s'exécute comme une seule tâche non groupée. Si votre hébergeur bloque les remplacements de mémoire et de temps du plugin, la tâche doit toujours se terminer dans les limites de memory_limit et max_execution_time de votre hébergeur, sans aucun paramètre de taille de lot sur lequel se rabattre. Une exportation planifiée peut en fait être plus susceptible d'expirer sur un catalogue très volumineux qu'une exportation rapide avec une petite taille de lot.

Besoin d'aide supplémentaire ?

Si vous utilisez Store Exporter Deluxe et qu'une exportation volumineuse ne se termine toujours pas après avoir essayé les étapes ci-dessus, ouvrez un ticket de support et notre équipe vous aidera à la faire fonctionner.

Si vous utilisez le plugin gratuit Store Exporter, posez votre question sur le forum de support WordPress.org et notre équipe vous répondra là-bas.

Cet article vous a-t-il été utile ?

Articles Liés

Ressources et aide