# Storefront, le thème WooCommerce officiel : ce qu’il impose vraiment

> Avant de construire sa première boutique sur Storefront, une agence a intérêt à connaître ses hooks spécifiques et ses zones de template. Ce que ce thème impose, et ses limites avant surcharge.

- Auteur : Clément Hadrot
- Publié le : 2021-10-19
- Mis à jour le : 2021-10-19
- Catégorie : Thèmes
- URL : https://wpmoderne.dev.wordpress-developpement.fr/themes/storefront-theme-woocommerce-officiel/

## L’essentiel

- Storefront s'appuie sur les hooks WooCommerce, pas sur des templates dédiés partout
- La zone de template product/single-product.php reste dans le plugin, pas le thème
- Passé un certain niveau de personnalisation, le thème enfant montre ses limites

Une agence avec laquelle je collabore régulièrement démarrait sa première boutique en ligne pour un client de vente d'accessoires de vélo, après des années de sites vitrines classiques. L'équipe avait choisi Storefront par réflexe, en le considérant comme « le thème par défaut de WooCommerce », sans avoir mesuré à quel point son architecture diffère d'un thème vitrine classique. Ils m'ont demandé un point rapide avant de se lancer dans les développements spécifiques.

Voici ce que Storefront impose réellement en termes d'architecture, ses hooks propres et les limites qu'il vaut mieux connaître avant de commencer à le personnaliser. La construction complète d'un thème enfant dédié fait l'objet d'un travail à part, non traité ici.

## Un thème pensé autour des hooks WooCommerce, pas de templates figés

Storefront est développé par Automattic, l'éditeur de WooCommerce, et sorti en 2015 comme démonstration officielle des bonnes pratiques d'intégration. Sa particularité structurelle : contrairement à un thème classique qui définirait ses propres fichiers de template pour chaque page produit, Storefront laisse WooCommerce gérer l'essentiel de l'affichage via son propre système de templates et de hooks, le thème se contentant d'habiller visuellement le résultat et d'ajouter quelques hooks additionnels autour.

Concrètement, le fichier `single-product.php` qui gère l'affichage d'une fiche produit vit dans le plugin WooCommerce lui-même (`woocommerce/templates/single-product.php`), pas dans le thème. Storefront ne surcharge ce fichier qu'à la marge, préférant s'accrocher aux hooks exposés par WooCommerce à l'intérieur de ce template, comme `woocommerce_before_single_product_summary` ou `woocommerce_single_product_summary`.

```
add_action( 'woocommerce_before_single_product_summary', 'storefront_show_product_images', 20 );
add_action( 'woocommerce_single_product_summary', 'storefront_template_single_excerpt', 30 );
```

> L'essentiel à retenir : Storefront s'appuie sur les hooks WooCommerce, pas sur des templates dédiés partout ; La zone de template product/single-product.php reste dans le plugin, pas le thème ; Passé un certain niveau de personnalisation, le thème enfant montre ses limites

## Les hooks spécifiques à Storefront lui-même

Au-delà des hooks WooCommerce standards, Storefront ajoute sa propre couche de hooks, préfixés par convention, pour permettre des ajustements sans surcharge de fichier. Les plus utilisés en pratique :

- `storefront_header`, qui encadre l'affichage complet de l'en-tête et permet d'y insérer un bandeau promotionnel sans toucher au fichier `header.php`.
- `storefront_before_content` et `storefront_after_content`, deux points d'ancrage autour de la zone de contenu principale, pratiques pour un fil d'Ariane personnalisé.
- `storefront_sidebar`, qui gère l'affichage conditionnel de la colonne latérale selon le contexte (page produit, page panier, article de blog).

Ces hooks permettent de réaliser une bonne partie des demandes clients courantes (bandeau de livraison offerte, badge de réassurance, message de rupture de stock personnalisé) sans jamais copier un seul fichier de template dans le thème enfant, ce qui limite fortement les risques de désynchronisation lors des mises à jour.

## Les zones de template propres à Storefront

Storefront introduit également des zones dites « Homepage Control », gérées par un plugin compagnon officiel, permettant d'assembler la page d'accueil à partir de blocs prédéfinis (produits en vedette, produits en promotion, bannière). Ces zones restent une surcouche maison à Storefront, pas un mécanisme WooCommerce générique : elles ne se retrouvent pas telles quelles sur un autre thème compatible WooCommerce.

Sur le projet vélo, l'agence a utilisé cette page d'accueil modulaire pour afficher rapidement les meilleures ventes sans développement spécifique, un gain de temps réel pour une mise en ligne rapide.

## Les limites avant de surcharger

Storefront reste un thème volontairement sobre visuellement : sa mission historique est de démontrer une intégration WooCommerce propre, pas de proposer une riche bibliothèque de mises en page. Dès que les demandes du client dépassent l'ajout de contenu autour des zones existantes, par exemple une page produit avec un agencement radicalement différent (galerie en plein écran, onglets personnalisés en accordéon complexe), les hooks ne suffisent plus et il faut recopier des portions de templates WooCommerce dans le thème enfant, avec le risque de désynchronisation que cela implique à chaque mise à jour du plugin.

| Besoin client | Solution recommandée |
| --- | --- |
| Bandeau promotionnel en en-tête | Hook storefront_header, sans surcharge |
| Réorganisation légère de la fiche produit | Réordonner les hooks WooCommerce existants |
| Mise en page produit entièrement différente | Surcharge de template, avec suivi des mises à jour |
| Identité visuelle très éloignée du style Storefront | Envisager un autre socle ou thème enfant profond |

## Vérifier la compatibilité avant de s'engager

Avant de démarrer, je recommande systématiquement de vérifier la liste des hooks disponibles directement dans le code du thème parent, plutôt que de se fier uniquement à la documentation, parfois en retard sur les dernières versions.

```
grep -rn "do_action( 'storefront_" wp-content/themes/storefront/
```

## En résumé

Storefront ne fonctionne pas comme un thème vitrine classique : il délègue l'essentiel de l'affichage produit à WooCommerce et se contente d'ajouter ses propres points d'ancrage autour. Cette architecture rend les personnalisations légères très rapides à réaliser sans surcharge de fichier, mais montre vite ses limites dès qu'un client demande une mise en page produit fondamentalement différente de ce que le thème a été conçu pour habiller.
