ACF et WooCommerce : des fiches produits sur mesure, sans sacrifier la performance.
Advanced Custom Fields permet d'enrichir vos produits WooCommerce avec des données structurées. Mais mal implémenté, ça peut ralentir votre site. Voici comment faire les deux.
×50 requêtes SQL en boucle
Les limites des champs natifs WooCommerce.
WooCommerce propose des attributs produits et des champs personnalisés basiques. Pour un catalogue simple, ça suffit. Mais dès que vous avez besoin de :
- Fiches techniques détaillées (dimensions, matériaux, certifications)
- Contenus conditionnels par catégorie
- Données structurées schema.org Product enrichi
- Galeries supplémentaires, documents PDF, vidéos
...les champs natifs ne suffisent plus. ACF comble ce manque avec une interface d'administration claire et des types de champs riches.
Ce qu'ACF permet sur un WooCommerce.
Fiches produits enrichies
Ajoutez des onglets personnalisés à la page produit : caractéristiques techniques, guide des tailles, conditions de garantie. Chaque donnée est un champ ACF structuré, pas du texte libre.
Checkout personnalisé
Ajoutez des champs spécifiques : message cadeau, numéro de TVA intracommunautaire, date de livraison souhaitée. Les données sont stockées proprement dans la commande.
Variations avancées
Allez au-delà des variations standard (taille/couleur) : ajoutez des champs par variation avec des prix, images et descriptions spécifiques.
API REST
ACF expose ses champs dans l'API REST WordPress. Essentiel pour les architectures headless : vos données custom sont accessibles via JSON.
requêtes SQL. C'est ce que génère un get_field() en boucle sur une page catalogue de 50 produits. Chaque champ personnalisé mal appelé multiplie la charge.
Le piège des meta queries.
Chaque champ ACF est stocké dans wp_postmeta. Quand vous filtrez ou triez des produits par un champ custom, WordPress exécute une meta query - une jointure qui peut devenir très lente sur un gros catalogue.
Exemple concret : afficher tous les produits où "certification_bio" est "oui", triés par "date_récolte" → deux meta queries imbriquées. Sur 10 000 produits, ça peut prendre 2-3 secondes sans optimisation.
Les solutions :
- Indexation : ajouter des index MySQL sur les meta_key fréquemment filtrées
- Taxonomies plutôt que meta : pour les données de filtrage, une taxonomie custom est beaucoup plus performante
- Cache ciblé : mettre en cache les résultats des requêtes lourdes via transients ou Redis
La règle : ACF pour l'affichage, taxonomies pour le filtrage. Si un champ sert à filtrer ou trier des produits, c'est une taxonomie. Si c'est juste affiché sur la fiche produit, c'est un champ ACF.
Bien implémenter ACF sur WooCommerce.
-
Ne pas charger ACF partout
ACF charge ses scripts et styles dans l'admin. Sur le front, utilisez
get_field()uniquement sur les templates qui en ont besoin. Pas deget_field()dans des boucles de requêtes globales. -
Utiliser le Local JSON
ACF peut sauvegarder la configuration des groupes de champs en JSON dans le thème. Plus rapide que de lire la config en base de données à chaque chargement admin.
-
Préparer la migration ACF → Gutenberg
ACF évolue vers les blocs Gutenberg (ACF Blocks). Pour les nouveaux projets, préférer les ACF Blocks aux groupes de champs classiques - c'est plus flexible et mieux intégré à l'éditeur.
Des fiches produits riches ET un site rapide.
J'implémente ACF sur votre WooCommerce avec les bonnes pratiques de performance : indexation, cache, architecture de données. Vos produits sont bien présentés sans que votre site en pâtisse.