Prêt-à-porter en ligne : déclinaisons, tailles et retours
Une boutique de prêt-à-porter n’a pas un problème de catalogue, elle a un problème de combinaisons : la même veste existe en huit tailles et douze couleurs, et chacune de ces variantes vit sa propre vie en base de données.
Le catalogue explose avant le trafic
Sur une boutique de mode, la fiche produit n’est qu’une façade. Ce qui compte, c’est la combinaison. PrestaShop matérialise chaque croisement taille × couleur dans la table product_attribute, et le stock correspondant dans stock_available : 8 tailles et 12 couleurs donnent 96 lignes pour une seule référence. Quelques centaines de modèles suffisent donc à dépasser la dizaine de milliers de combinaisons, et l’administration commence à ramer avant que le premier visiteur n’arrive.
WooCommerce va plus loin : chaque variation est un contenu à part entière, post_type = product_variation, avec sa propre série de lignes dans wp_postmeta. La base grossit vite, les écrans d’édition produit deviennent lourds, et les requêtes de filtrage par taille ou par couleur sont les premières à souffrir. Shopify prend le problème dans l’autre sens : il plafonne le nombre d’options et de variantes par produit. Passé cette limite, il faut scinder un modèle en plusieurs fiches, ce qui disperse le maillage interne et sépare des pages qui auraient dû n’en faire qu’une.
Ce sont d’ailleurs les déclinaisons qui motivent une grande part des demandes que je reçois de marchands textile : saisie des images par déclinaison, prix d’achat par déclinaison, affichage du sélecteur de taille sur mobile.
Ce qui casse quand la garde-robe grandit
- Les visuels sont rattachés à la couleur et non à la taille : PrestaShop passe par product_attribute_image, et chaque déclinaison d’images définie dans image_type multiplie les fichiers générés sur le disque.
- Le stock se vide par taille et jamais uniformément : les tailles centrales partent en premier, les extrêmes restent en rayon jusqu’aux soldes.
- Masquer une taille épuisée fait croire au visiteur que le modèle entier est indisponible ; il faut l’afficher barrée, avec un état explicite.
- L’échange de taille n’existe nativement dans aucun des trois CMS : c’est soit un avoir, soit une seconde commande, jamais une opération d’un seul tenant.
- La remise en stock d’un retour doit être conditionnelle : un vêtement revenu porté, taché ou sans son étiquette n’est pas revendable et ne doit pas réapparaître en vente.
- Le guide des tailles et les correspondances FR/UK/US/IT varient d’une marque à l’autre : ce sont des données produit, pas une image posée dans le pied de page.
- Les fins de série se soldent par combinaison : une specific_price porte un id_product_attribute, et une remise appliquée au seul produit rate complètement les tailles restantes.
Comment j’interviens sur un catalogue de mode
-
Je repars du générateur de combinaisons
Avant d’ajouter quoi que ce soit, je compte les lignes réellement présentes dans product_attribute et stock_available, et celles qui correspondent à des variantes jamais fabriquées. Un catalogue textile traîne souvent des combinaisons nées d’un import qui a croisé toutes les tailles avec toutes les couleurs. Les supprimer allège la base et les écrans d’administration avant même tout travail de performance.
-
Je rattache les visuels à la couleur
Je vérifie que chaque image est liée aux combinaisons de la bonne couleur, puis je réduis les formats générés dans image_type à ceux que le thème utilise vraiment. Sur un catalogue à forte rotation saisonnière, c’est ce qui évite un disque saturé de miniatures que personne n’affiche.
-
Je rends l’indisponibilité lisible
Une taille en rupture reste visible, barrée, avec un libellé explicite, et le sélecteur indique l’état de chaque taille sans obliger à cliquer une par une. Je branche au même endroit la collecte d’alerte de retour en stock, seul signal fiable sur la demande des tailles extrêmes.
-
Je traite l’échange comme un flux distinct
Puisque aucun des trois CMS ne connaît l’échange, je le construis explicitement : une demande de retour typée échange, une réservation de la taille de remplacement pendant le transport, puis une réintégration conditionnée à un contrôle à réception. Un article revenu abîmé sort du stock vendable au lieu d’y retourner.
-
Je fais descendre le prix au niveau de la combinaison
Les fins de série se pilotent par déclinaison : une specific_price ciblant un id_product_attribute permet de solder les tailles qui restent sans brader celles qui partent au prix fort. Une remise posée sur le produit entier détruit la marge sur les tailles centrales.
Les pages liées aux déclinaisons
-
Déclinaisons qui buguent sur PrestaShop
Combinaisons absentes du front, stock qui ne suit pas, image rattachée au mauvais attribut : les causes fréquentes et leur correction.
-
Produits variables mal affichés sur WooCommerce
Sélecteur vide, variations invisibles, prix affiché en fourchette : ce qui se joue du côté des variations et de wp_postmeta.
-
Limite de variantes sur Shopify
Ce que la plateforme plafonne réellement, et les conséquences quand un modèle doit être scindé en plusieurs fiches.
-
Déclinaison
La définition du terme et ce qu’il recouvre concrètement selon le CMS utilisé.
Questions fréquentes
Faut-il masquer les tailles épuisées ?
À partir de combien de combinaisons un catalogue devient-il lourd ?
Peut-on gérer un échange de taille sans repasser commande ?
Où doit vivre le guide des tailles ?
Comment solder une seule taille en fin de série ?
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.