Produit personnalisable sur Shopify : propriétés de ligne, panier et commande
Comment faire voyager une personnalisation du formulaire produit jusqu'à la commande : propriétés de ligne, attributs de panier, champs cachés et test de bout en bout.
Sommaire
- Ce que montrent deux boutiques accompagnées
- Quatre outils pour quatre usages
- Ajouter un champ de personnalisation
- Cacher une propriété au client
- Un message pour toute la commande
- Du panier à l'atelier
- Quels champs pour quel produit
- Cinq erreurs fréquentes
- Checklist avant de lancer
- Questions fréquentes
- Continuer avec EXPERAISE
- Sources officielles
L’essentiel
Pour un produit personnalisable, ajoutez dans le formulaire produit un champ nommé properties[Nom du champ] : la valeur saisie voyage avec la ligne de panier. Un nom qui commence par un tiret bas est caché au client au moment du paiement. Pour une information qui concerne tout le panier, comme un message cadeau, utilisez un attribut de panier. Les metafields servent aux données que vous saisissez, pas à celles du visiteur.
L'article sur les metafields et métaobjets explique ce que le marchand stocke ; celui-ci traite la donnée que saisit le visiteur au moment d'acheter. Pour l'ordre des blocs autour du bouton, voir la fiche produit sur mobile.
Ce que montrent deux boutiques accompagnées
MagicBeez vend des packs de tickets pour les commerces, avec un parcours d'activation géré dans un autre environnement que Shopify. L'étude de cas précise que les préférences de campagne, facultatives, sont transmises avec la commande. L'audit du 5 septembre 2026 a contrôlé 43 URL publiques, le parcours produit, le panier et l'accès au paiement ; le lot du 6 septembre a harmonisé la fiche produit, les préférences facultatives et le consentement.
La Pelucherie vend des peluches personnalisables, dont le choix dépend du destinataire, de l'occasion, de la taille et de la personnalisation. Notre audit de mars 2026, revu le 21 septembre 2026, examine le parcours complet, de la découverte au panier. Ses constats sont qualitatifs et ne publient aucun chiffre : les informations sur la personnalisation, la livraison et la réassurance doivent être visibles là où le visiteur hésite, sur la fiche et dans le panier.

Sur la fiche relevée le 23 octobre 2026, la personnalisation est un bouton à part, placé au-dessus du bouton d'achat, lequel se trouve à 619 px du haut de la page, soit 0,7 écran. Les arguments du cadeau (pensé pour être offert, cousu main, garantie à vie) se lisent juste dessous. Ce parcours n'a pas de résultat publié : l'audit formule des hypothèses à tester, pas des gains.
Quatre outils pour quatre usages
La question à poser est simple : qui saisit la donnée, et à quoi la rattache-t-on ? La réponse décide de l'outil.

- Propriété de ligne : le visiteur saisit sur la fiche, la valeur est rattachée à l'article du panier (prénom, gravure, texte).
- Attribut de panier : le visiteur saisit au panier, la valeur concerne toute la commande (message cadeau, date souhaitée).
- Metafield : le marchand saisit, la valeur est rattachée à un produit ou une variante (délai de fabrication, matière).
- Métaobjet : le marchand saisit une information partagée par plusieurs produits (guide des tailles, liste de polices).
Ajouter un champ de personnalisation
Selon la documentation Shopify, chaque propriété exige un champ dont l'attribut name suit le format properties[nom-de-la-propriété], et la valeur saisie devient la valeur de la propriété. Le champ se place à l'intérieur du formulaire produit :
<label for="perso-prenom">Prénom à broder</label>
<input type="text" id="perso-prenom" name="properties[Prénom]" maxlength="20" required>
<input type="hidden" name="properties[_reference_atelier]" value="{{ product.id }}">
Trois précisions utiles. Les attributs required et maxlength sont des contrôles HTML standard qui évitent un champ vide ou démesuré. Le nom de la propriété est celui que verront le client dans le panier et l'équipe qui fabrique : gardez un seul libellé par usage. Enfin, la documentation du panier signale que deux articles identiques ajoutés avec des propriétés différentes sont séparés en lignes distinctes : un même produit gravé de deux prénoms occupe deux lignes.
Cacher une propriété au client
Un nom qui commence par un tiret bas est caché au client au moment du paiement, comme l'indique la documentation. Utile pour une référence interne ou un identifiant d'atelier, comme _reference_atelier dans l'exemple ci-dessus. Dans la page panier, c'est le thème qui décide de ce qui s'affiche : la boucle suivante montre les propriétés renseignées et ignore celles qui commencent par un tiret bas.
{%- for property in item.properties -%}
{%- assign premier_caractere = property.first | slice: 0 -%}
{%- if premier_caractere != '_' and property.last != blank -%}
<p><span>{{ property.first }} :</span> {{ property.last }}</p>
{%- endif -%}
{%- endfor -%}
Un message pour toute la commande
Quand l'information ne concerne pas un article mais le panier entier, la documentation du panier prévoit les attributs : un champ nommé attributes[nom], relié au formulaire du panier par form="cart". Les valeurs sont lues dans l'objet cart.attributes.
<label for="message-cadeau">Message pour la carte</label>
<textarea id="message-cadeau" name="attributes[Message cadeau]" form="cart" maxlength="140"></textarea>
Du panier à l'atelier
Une personnalisation qui n'arrive pas lisible à l'équipe qui fabrique est pire que pas de personnalisation. Comme la valeur accompagne la ligne, il faut vérifier chaque maillon.

- Passez une commande test avec chaque champ rempli, y compris un accent, une apostrophe et un texte au maximum de la longueur autorisée.
- Vérifiez l'affichage dans le panier, avec les propriétés visibles et les propriétés cachées absentes.
- Contrôlez la ligne dans la commande, côté administration.
- Vérifiez que l'outil de fabrication ou d'expédition lit la propriété : export, application d'atelier, étiquette.
- Testez un panier avec deux fois le même produit et deux valeurs différentes : deux lignes doivent ressortir.
MagicBeez illustre l'importance de ce dernier maillon : les préférences de campagne sont transmises avec la commande vers un environnement externe, et c'est cette transmission que l'audit a contrôlée avant d'étendre la promesse marketing.
Quels champs pour quel produit
Le bon nombre de champs est le plus petit qui permet de fabriquer. Chaque champ ajoute un risque d'erreur de saisie et un maillon de plus à contrôler.
| Produit | Champs utiles | Contrôle conseillé |
|---|---|---|
| Peluche ou vêtement brodé | Prénom, choix de la tenue ou de la couleur | Longueur maximale selon la zone de broderie |
| Bijou gravé | Texte de gravure, police | Caractères autorisés et nombre de lignes |
| Coffret cadeau | Message pour la carte, date souhaitée | Attribut de panier : un seul message par commande |
| Offre avec préférences | Préférences facultatives, comme chez MagicBeez | Champ facultatif et transmission vérifiée vers l'outil externe |
Cinq erreurs fréquentes
-
Un champ sans validation. Sans
requirednimaxlength, la commande arrive vide ou trop longue pour la gravure. - Des libellés incohérents. « Prénom », « prénom » et « Prénom à broder » créent trois colonnes dans un export.
- Un surcoût de personnalisation oublié. Une propriété ne modifie pas le prix : si la personnalisation est payante, passez par une variante ou un produit complémentaire.
- Une donnée personnelle sans cadre. Un prénom d'enfant saisi librement est une donnée personnelle : prévoyez l'information du client et une durée de conservation.
- Un parcours qui cache la personnalisation. Le visiteur doit savoir, avant le panier, que le produit se personnalise : c'est le choix de La Pelucherie avec un bouton dédié.
Checklist avant de lancer
- Chaque champ a un libellé unique, une limite de longueur et, si besoin, l'attribut obligatoire.
- Les propriétés internes commencent par un tiret bas.
- Le panier affiche les propriétés utiles au client et masque les autres.
- Une commande test passe par le paiement avec toutes les valeurs.
- L'outil de fabrication lit chaque propriété.
- La page indique, avant le panier, que le produit est personnalisable.
Questions fréquentes
Comment ajouter un champ de personnalisation sans application ?
Ajoutez dans le formulaire produit un champ dont le nom suit le format properties[nom]. La valeur saisie accompagne la ligne de panier, d'après la documentation Shopify.
Quelle différence entre une propriété de ligne et un attribut de panier ?
La propriété de ligne est rattachée à un article et saisie sur la fiche ; l'attribut de panier concerne toute la commande et se saisit dans le panier.
Comment cacher une propriété au client ?
En faisant commencer son nom par un tiret bas, par exemple properties[_reference]. Elle est alors cachée au client au paiement ; masquez-la aussi dans la page panier de votre thème.
Pourquoi deux mêmes produits apparaissent-ils sur deux lignes dans le panier ?
Parce que Shopify sépare en lignes distinctes deux articles identiques ajoutés avec des propriétés différentes, selon la documentation du panier.
La personnalisation arrive-t-elle bien jusqu'à la commande ?
La valeur accompagne la ligne de panier. Contrôlez chaque étape par une commande test, jusqu'à l'outil de fabrication ou d'expédition.
Faut-il une application de personnalisation ?
Pas pour un champ texte. Une application devient utile quand il faut un aperçu visuel, un envoi de fichier ou une mise en page de la personnalisation.
Continuer avec EXPERAISE
Sources officielles
- Shopify : l'objet Liquid line_item et ses propriétés
- Shopify : le gabarit du panier, attributs et propriétés
Sources : études de cas publiées MagicBeez (audit du 05/09/2026) et audit La Pelucherie (mars 2026, revu le 21/09/2026, publié sur teocomyn.com) ; capture et mesure EXPERAISE du 23/10/2026 pour la fiche La Pelucherie ; documentation Shopify pour la syntaxe. Aucun résultat de vente n'est attribué à ces interventions.
Pour aller plus loin
Passez de la lecture à l’action.
Besoin d'un avis sur votre boutique ?
30 minutes pour faire le point sur votre boutique : conversion, SEO, refonte ou acquisition. Offert et sans engagement.