Colas Mérand
23/05/2025
WordPress
WooCommerce
Dokan
5 minutes
Les marketplaces en ligne connaissent une croissance exponentielle, et WordPress avec WooCommerce et Dokan est devenu l'une des solutions les plus populaires pour créer ce type de plateforme. Cependant, comme pour tout système complexe, des problèmes techniques peuvent survenir et affecter l'expérience des vendeurs et des administrateurs.
Dans cet article, nous allons explorer un problème particulièrement frustrant : les déconnexions intempestives des vendeurs et la disparition mystérieuse de produits sur les marketplaces Dokan. Notre équipe de développeurs a résolu ce type de problème pour plusieurs clients, et nous souhaitons partager notre expertise avec vous.
Avant de plonger dans les solutions, identifions clairement les symptômes :
Ces symptômes peuvent être extrêmement frustrants, tant pour les administrateurs de la marketplace que pour les vendeurs qui y participent.
Après avoir analysé de nombreux cas similaires, nous avons identifié plusieurs causes potentielles à ces problèmes :
Les marketplaces Dokan sont des applications web complexes qui nécessitent une configuration serveur optimale. Voici les points critiques à vérifier :
max_execution_time, memory_limit, upload_max_filesize et post_max_size peuvent causer des interruptions de session.L'écosystème WordPress est riche en plugins, mais cette richesse peut aussi être source de conflits :
La suppression mystérieuse de produits peut être liée à des problèmes au niveau de la base de données :
Le thème utilisé (comme Astra mentionné dans plusieurs cas) peut parfois interférer avec les fonctionnalités de Dokan :
Fort de notre expérience dans la résolution de ces problèmes, notamment lors du développement de marketplaces comme Dealt (une plateforme de jobbing en API), voici les solutions que nous recommandons :
// Exemple de valeurs recommandées à ajouter dans wp-config.php
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
// Ou dans le php.ini
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
Si vous utilisez O2Switch comme mentionné dans plusieurs cas, sachez qu'ils permettent d'ajuster ces paramètres via un fichier .htaccess ou via leur interface de gestion.
WordPress ne gère pas nativement les sessions comme d'autres frameworks. Pour Dokan, il est parfois nécessaire d'implémenter une gestion de session plus robuste :
// Exemple de code à ajouter dans un plugin personnalisé
function start_session() {
if(!session_id()) {
session_start();
}
}
add_action('init', 'start_session', 1);
function end_session() {
session_destroy();
}
add_action('wp_logout', 'end_session');
add_action('wp_login', 'end_session');
Une approche méthodique consiste à désactiver tous les plugins non essentiels, puis à les réactiver un par un pour identifier le conflit :
-- Exemple de requête pour vérifier les produits orphelins
SELECT p.ID, p.post_title
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id AND pm.meta_key = '_dokan_vendor_id'
WHERE p.post_type = 'product'
AND pm.meta_value IS NULL;
WordPress dispose également d'outils intégrés pour réparer la base de données. Ajoutez cette ligne à votre fichier wp-config.php :
define('WP_ALLOW_REPAIR', true);
Puis accédez à votresite.com/wp-admin/maint/repair.php.
Dans certains cas, il peut être nécessaire de modifier le code source de Dokan pour résoudre des problèmes spécifiques. Par exemple, nous avons constaté que l'ajout de vérifications supplémentaires dans les fonctions de gestion des sessions peut améliorer la stabilité :
// Exemple de modification dans le code de Dokan
public function maybe_create_session() {
// Vérification supplémentaire avant de créer une session
if (!is_user_logged_in() || !dokan_is_user_seller(get_current_user_id())) {
return;
}
// Code original de création de session
if (!WC()->session->has_session()) {
WC()->session->set_customer_session_cookie(true);
}
}
Lors du développement de la marketplace Dealt, notre équipe a rencontré des défis similaires. La plateforme devait gérer des centaines de vendeurs simultanément, chacun pouvant gérer des dizaines de produits et services.
Notre approche a été de :
Cette approche nous a permis de créer une marketplace stable et performante, même sous forte charge. Bien que cette solution soit plus avancée que la simple correction d'un site WordPress existant, elle illustre notre expertise dans la résolution de problèmes complexes liés aux marketplaces.
Si vous préférez conserver votre stack WordPress actuelle, voici nos recommandations spécifiques :
Mise à niveau de l'hébergement : Envisagez un hébergement WordPress managé spécialisé dans WooCommerce, comme Kinsta ou WP Engine, qui offrent des configurations optimisées pour les marketplaces.
Utilisation d'un object cache persistant : Implémentez Redis ou Memcached pour améliorer les performances et la gestion des sessions.
Optimisation de la base de données : Utilisez des plugins comme WP-Optimize pour maintenir votre base de données en bon état.
Mise à jour régulière : Assurez-vous que Dokan, WooCommerce et WordPress sont toujours à jour.
Monitoring des erreurs : Implémentez un système de logging pour capturer les erreurs qui pourraient expliquer les déconnexions et les suppressions de produits.
Les problèmes de déconnexion et de suppression de produits dans Dokan peuvent être complexes à résoudre, mais avec une approche méthodique et une compréhension approfondie de l'architecture WordPress, ils peuvent être surmontés.
Chez Platane, nous avons développé une expertise particulière dans l'optimisation des marketplaces et des plateformes e-commerce. Notre expérience avec des projets comme Dealt (marketplace de jobbing) et la boutique Shopify headless du Festival Ouaille Note nous a permis d'acquérir une compréhension approfondie des défis techniques liés à ces plateformes.
Si vous rencontrez des problèmes similaires avec votre marketplace Dokan ou si vous envisagez de créer une plateforme plus robuste et évolutive, n'hésitez pas à nous contacter. Notre équipe de développeurs experts peut vous aider à diagnostiquer et résoudre vos problèmes techniques, ou à concevoir une solution sur mesure adaptée à vos besoins spécifiques.
Prenez rendez-vous via notre formulaire de contact pour échanger plus en détail sur votre projet. Chez Platane, nous combinons expertise technique et créativité pour transformer vos défis en opportunités et vous aider à atteindre vos objectifs commerciaux.