À retenir
- La photographie de produit à 360° sur Shopify est une séquence d’images que le client fait défiler pour faire tourner le produit. Une configuration courante comprend 36 images à des intervalles de 10 degrés.1
- Shopify intègre nativement des médias 3D et AR dans son système de médias de produits. Cela utilise le model-viewer de Google et nécessite un modèle 3D, pas une séquence de photos.2
- Pour les vues 360° à partir de photos, vous avez le choix entre une application 360 et un viewer JavaScript sur mesure. Les applications sont plus rapides à déployer ; le code sur mesure permet de garder le markup directement dans votre thème.
- La performance est le vrai risque. Un ensemble de 36 images en pleine résolution peut atteindre 10 à 20 Mo, alors compressez chaque image et chargez le viewer en lazy-loading.1
- Ne mettez jamais votre image LCP en lazy-loading. La première image de la galerie que l’acheteur voit doit être chargée immédiatement.3
La photographie de produit à 360° montre un produit sous tous les angles dans un seul viewer interactif. L’acheteur fait glisser son curseur vers la gauche ou la droite, ou les images tournent automatiquement, et le produit semble pivoter. Sur une page produit Shopify (PDP), cela élimine les devinettes en offrant une vue complète de l’article.
Ce guide explique comment capturer les images, préparer les fichiers et ajouter un spinner sur la page. Il compare les médias 3D natifs de Shopify, les applications dédiées à la vue 360° et les viewers codés sur mesure, tout en considérant la vitesse de chargement comme une priorité absolue.
Pourquoi vous pouvez nous faire confiance
Jacques a plus de 15 ans d’expérience en développement et a travaillé avec des centaines de boutiques Shopify. Nous avons créé Fudge - un page builder et éditeur de boutique Shopify basé sur l’IA, noté 4.8 sur l’App Store et doté du badge Built for Shopify. Nous travaillons tous les jours avec les médias de pages produits.
Qu’est-ce que la photographie de produit à 360 degrés ?
Un spin 360 n’est ni une simple photo ni une vidéo. C’est une suite ordonnée de frames (images) fixes, chacune représentant le produit tourné d’un millimètre. Le programme remplace les images quand l’utilisateur fait glisser, ce qui donne l’effet que l’objet tourne sur lui-même.
Les deux variables qui comptent :
- Le nombre d’images (frame count). Plus de frames amènent un spin plus fluide mais un téléchargement plus lourd. L’usage veut qu’on utilise 36 frames à des intervalles de 10 degrés.1
- La taille de l’image. Une largeur d’environ 1200 à 1500 px permet de conserver les détails sans exploser la taille du fichier.1
Cela est bien différent d’un modèle 3D, qui est un unique fichier de forme géométrique rendu en temps réel par le navigateur. Le pipeline de médias natif de Shopify peut traiter les modèles 3D et l’AR, mais pas les séquences photo.2 Plus de détails sur cette nuance plus bas.
Comment capturer des séquences d’images à 360°
Plateau tournant (turntable) et appareil photo
La méthode la plus sûre est d’utiliser un plateau tournant motorisé. Placez le produit au centre, verrouillez l’appareil photo et l’éclairage, et capturez une image par étape de rotation. Une rotation tous les 10 degrés donne 36 images.1
La régularité est ce qui rend l’effet crédible :
- Gardez l’appareil photo et la lumière fixes entre les prises de vue pour que seul le produit soit en mouvement.
- Centrez le produit sur le plateau pour qu’il ne se désaxe pas sur les images.
- Photographiez sur un fond propre et net pour pouvoir détacher l’image d’arrière-plan de la même façon à chaque fois.
Choisir le nombre d’images (frames)
Moins de frames accélèrent le téléchargement mais la rotation est saccadée. Plus de frames fluidifient l’effet, avec un poids en kilooctets plus élevé. 24 frames (par crans de 15 degrés) est une version plutôt légère ; 36 frames (par crans de 10 degrés) est le juste milieu très populaire ; 72 frames doublent l’effet de fluidité mais aussi le téléchargement global.1
Travailler sans studio photo
Si vous n’êtes pas équipé en interne, un studio de photographie de produits peut vous fournir une séquence prête à l’emploi. Nombre d’entre eux vous fourniront 36 JPEG HD par produit par tranches de 10 degrés.1 Il ne vous restera plus qu’à ajuster la mise en forme et l’intégration web.
Préparation des fichiers
Les rushs de studio sont rarement directement mis en ligne. Trois étapes s’imposent.
- Nommez les images par ordre. Utilisez le format numérique rempli de zéros (
frame-01.webp…frame-36.webp) de sorte que le viewer puisse les charger dans le bon ordre d’exécution. - Recadrez et alignez chaque frame à l’identique. La moindre différence d’alignement produira une vibration lors de la rotation.
- Compressez chaque image. C’est l’étape que la grande partie des sites e-commerces saute, et c’est pourtant celle qui préserve la rapidité d’affichage.
Les formats récents sont mieux compressés. Les images WebP sont plus légères de 30 % que le JPEG avec la même qualité, et l’AVIF le fait encore mieux.4 Pour les photos de produits, régler la qualité entre 75 et 85 permet de garder vos détails en écourtant le poids d’origine.4
Faites le calcul sur un total global. 36 frames pesant chacune 300 Ko donnent un total de 10,8 Mo. Vos 36 frames de 60-80 Ko atteignent seulement 2 voire 3 Mo.1 C’est tout ce qui détermine une bonne PDP rapide vis-à-vis d’une lente.
Trois façons d’ajouter un spin 360 à une PDP Shopify
Il y a trois approches. Elles diffèrent par l’effort de mise en place, l’emplacement du code et les éléments requis.
| Méthode | Format d’entrée | Emplacement | Idéal pour |
|---|---|---|---|
| Médias 3D et RA natifs | Un modèle 3D (GLB) | Médias du produit Shopify | Les boutiques qui ont ou peuvent créer des modèles 3D et veulent de la RA |
| App de vue 360 | Une séquence de photos | Bloc injecté par l’app ou embed | Mise en place la plus rapide avec un plateau tournant photo |
| Viewer 360 JS sur mesure | Une séquence de photos | Le code de votre thème | Contrôle total sur le markup, le style et le chargement |
Méthode 1 : Média 3D et AR natif Shopify
Shopify permet l’ajout de modèles 3D directement dans votre onglet Médias du produit. Uploadez un modèle et le thème s’occupe de l’afficher avec le composant model-viewer de Google, et les acheteurs pourront alors y faire un zoom ou une rotation sur l’interface du navigateur.2 L’AR marche par le module Shopify-XR, moteur sous le capot de l’AR natif sur Quick Look avec Safari iOS ainsi que Scene Viewer avec Android.2
Dans un thème, le système affiche les médias via la boucle product.media appliquant le fameux filtre Liquid assigné. Sur l’utilisation d’un modèle 3D ce filtre est model_viewer_tag.2
Le principal compromis est la ressource utilisée. Les médias natifs Shopify utilisent un modèle 3D, mais jamais de spin de photos. S’il ne vous reste qu’un tournage de type photographique à place de modélisation réelle, cette pratique est donc inopportune. La recommandation d’UX sur Shopify consiste à ce que le contenu 3D natif par défaut désactivé à chargement, accompagné d’une barre de loading pour qu’elle puisse se charger.5
Pour mettre en ligne un modèle avec 0 code à l’appui, rendez-vous dans le menu Produits > (votre produit) > Médias. Pour suivre de l’optimisation des médias associées, reportez-vous sur comment ajouter de la vidéo à une page de produit sur Shopify et d’autre part comment mettre à jour des images de vos produits Shopify.
Méthode 2 : Une application de spin 360
Les applications de spin reprennent des suites d’images et créent une interface complète interactive prête sur votre PDP. Le flux consiste à envoyer vos images sur l’interface de plugin, régler ses niveaux, par ex le toucher sensible ou la fonction auto, avant d’ancrer le module sur la présentation web par un outil injecté.
Le plus grand profit c’est son traitement immédiat. Sans la partie de construction du support, votre module est adapté à intervertir le mobile avec les clicks inter-images. Par défaut la concession à cela est similaire aux systèmes habituels : un appel script rajouté avec l’usage récurrent sur une page produit pour tout markup inabordable sur lequel nous n’avons aucun statut. Testez et gardez l’œil par son résultat PDP avant tout.
Méthode 3 : Un viewer de spin JavaScript sur mesure (custom)
Si vous voulez intégrer le viewer dans votre propre thème sans script tiers, un spinner sur mesure ne demande qu’un peu de code. L’idée : précharger la séquence d’images, puis changer l’image visible en fonction de la distance de glissement du pointeur.
<div id="spin-360" data-frames="36" style="touch-action: pan-y;">
<img
id="spin-frame"
src="/cdn/shop/files/frame-01.webp"
width="1200"
height="1200"
alt="Vue 360 du produit, image 1"
/>
</div>
<script>
const el = document.getElementById('spin-360')
const img = document.getElementById('spin-frame')
const total = parseInt(el.dataset.frames, 10)
const base = '/cdn/shop/files/frame-'
const pad = (n) => String(n).padStart(2, '0')
let current = 1
let dragging = false
let startX = 0
// Précharge les images pour que les changements soient instantanés une fois le viewer actif.
const preload = () => {
for (let i = 1; i <= total; i++) {
const pre = new Image()
pre.src = base + pad(i) + '.webp'
}
}
const setFrame = (n) => {
current = ((n - 1 + total) % total) + 1
img.src = base + pad(current) + '.webp'
}
const onMove = (x) => {
if (!dragging) return
const step = Math.round((x - startX) / 8) // pixels par image
if (step !== 0) {
setFrame(current + step)
startX = x
}
}
el.addEventListener('pointerdown', (e) => {
dragging = true
startX = e.clientX
preload() // charge l'ensemble complet à la première interaction, pas au chargement de la page
})
window.addEventListener('pointermove', (e) => onMove(e.clientX))
window.addEventListener('pointerup', () => (dragging = false))
</script>
Deux détails font que ce viewer se comporte bien. Les Pointer events gèrent la souris et le tactile avec un seul bout de code. touch-action: pan-y sur le conteneur permet aux acheteurs de toujours faire défiler la page verticalement tout en faisant tourner le produit horizontalement, ce qui est crucial sur mobile.
Le préchargement à la première interaction, plutôt qu’au chargement de la page, permet de garder cet ensemble d’images volumineux hors du chemin critique (critical path). La première image est une photo normale dans la galerie ; le reste ne se charge que lorsque l’acheteur interagit avec le spin 360.
Créer cela à la main implique de modifier les fichiers du thème. Si vous préférez décrire le viewer avec des mots simples et obtenir un code Shopify natif et fidèle à votre marque, généré pour vous, c’est ce que fait Fudge. Consultez également notre guide sur la personnalisation d’une page produit Shopify.
Interaction tactile (drag et touch) sur smartphone
Le smartphone est la zone où un viewer satisfait vraiment ou frustre. On constate deux erreurs de fond.
- Glissement horizontal comparatif avec son mouvement vertical. En ôtant de
touch-action: pan-y, toute manipulation horizontale détient une force trop supérieure. Paramétrer cetouch-actiondonne les règles pour adapter l’effet du viewer de base. - Tape (clic) contre déplacement de glissements. Son accès normal ne peut annuler cet état par un seul clic. Il modifie ce point à des fins simples avec des déplacements ultra courts ce qui explique le simple tap fait suite à la frame telle qu’elle apparaitra.
Les informations de médias propres de la politique Shopify préconise l’inactivité par défaut sur un affichage sur mobile, permettant la déclinaison d’action des manuels en annulant la détection auto préconstruite d’expérience client complète.5 Ajustez l’impact du composant normal lors du codage. En un mot : chargez-le bien lors une simple frame et donnez suite avec son changement exclusif que le l’internaute fera au dernier moment par clic manuel long.
Performance : gardez le spin hors du critical path
Un viewer 360 est l’une des choses les plus lourdes que vous puissiez intégrer à une PDP. Un ensemble de 36 images pleines résolutions pèse 10 à 20 Mo.1 Mal gérée cela bloque complètement votre site global et les délais afférents. Le format suivant peut modifier son rôle et sa mise en ordre correcte.
1. Compressez chaque image (frame)
Comme dit plus haut ceci représente le meilleur gain possible. Un travail des médias comme du modèle : faites face avec des extensions WebP ou AVIF, étant capables d’exploiter la norme de compression du format de l’ordre d’environ 30 % avec JPEG respectif selon les qualités acquises.4 Compter à la ligne à environ une poignée de l’ordre de dizaines en Mo mais non cent en KB globaux.1
2. Lazy-loader les ensembles de la séquence web
Seuls les premiers accès initiaux des résolutions de chargement valent l’usage complet. Ne charger que leurs déclinaisons interactives liées au lancement interactif utilisateur, au profit notamment ou quand bien même sa zone correspond autour d’un placement visuel (viewport) se pose dans les abords de champ respectif d’interface. À proprement utilisé l’intégration par attribut en standard soit loading="lazy" va permettre ce gain et bloquer l’usage de données inapercues.3 Cette déclinaison fonctionnelle rend un résultat optimisé avant utilisation sur son déclenchement, avec une charge différée au clic ainsi montré sur l’aspect complet détaillé du document avant qu’il ne se lance.
3. Protégez votre image LCP
Ne lazy-loadez pas votre image LCP. web.dev souligne formellement : désactiver ou refuser tout concept d’image lazy load susceptible d’entrer du premier coup avec la vue (viewport) immédiate de chargement, ce format incluant très largement le type dit image LCP.3 Typiquement avec base pour une PDP l’affichage des informations image de galerie d’accueil constitue son objet typique LCP, laissez son ordre normal complet par système instantané (eager load) ; pour cela un bloc de restriction complète en différé s’allie logiquement vers les suppléments tels que la séquence 360 entière. On veillera particulièrement à fixer sur une référence fixe l’assignement de taille de fond concernant ses objets pour s’éclipser : format width puis height via son but sur aucune déclinaison ni le CLS Layout Shift.3
Etant en complément afin de l’accélération d’exécution large en global pour ce travail sur un développement PDP orientez vous vers l’article dédié expliquant les actions et procédés de performances relatives Shopify orienté avec thème tout autant la bonne application comment un différé vidéo de la gestion globale et locale l’optimisation au module Shopify propre, dont se basent au global et tout modèle identique différé ou appelé jusqu’aux exigences requises des médias pesants d’utilisation large.
Apps vs custom code : une comparaison honnête
Il n’y a pas formellement de choix gagnant complet. Suivant comment sont disposées l’application sur le flux des usages par votre niveau d’équipement.
Cette version via l’usage d’une application est adéquate si les accès immédiats sur mise des diffusions interactifs sans délais sur des ressources comptent énormément de l’urgence, ou moins le travail de type code d’application avec l’intention totale acceptée de rajout code en un outil application d’usage script PDP qui tourne en arrière au site. Le programme assume d’intégrer automatiquement fonction auto comme paramètre.
Du code custom gagne fortement sur son choix si ses attributs font de lui tout ce qui lui offre en code HTML vers un respect avec sa direction complète de l’application thème avec des appels aux chargements optimisés selon votre propre niveau de précision : le format pour limiter d’utiliser et souscrire encore pour ce traitement, qui coûte globalement au forfait application abonnement récurrent plus tierce d’usages en script avec les mises et maintien en suivi direct qui incombe cette option.
Nous ajoutons une alternative dont il sort complètement aux autres qui constitue de nature comme le système en rendu par 3D direct : exceptionnel quand tout s’y prête ; alors oui elle intègre logiquement ce format depuis modèle propre modélisant l’état avec son modèle via la 3D, mais loin en rapport d’effett photo ; il permet sans comparaison sans d’aucune image standard tournante possible dans le cas du choix de l’état pur de type photographique.
Sur quoi il vaut de souligner de choisir, que chaque format garde la règle du placement de ses médias initiaux complets : en son centre même on définit avec l’apparition avec ses usages dont sa vue primaire de démarrage. Apprenez ce système en réarrangement des médias images pour le fond à une gestion sur Shopify de s’assurer ce cadre parfait avec ses acheteurs et client selon son entrée du fameux élément objet visuel image avec LCP vu de premier abord devant.
En résumé
La photographie de produit 360 change de vue et permet ce principe interactif à l’effet de plateau en le constituant statique avant. Saisissez ce processus avec ses prises sur le système d’usages entre 24 ou voire vers au modèle et ses 72 pour un passage fort réduit par la compression de masse : incluez ce traitement et utilisez les sur pages par ses méthodes classiques 3D propres du média, via une extension plugin application et voire au mieux encore sur Javascript intégré sur-mesures (custom code), et ce dont le niveau correspond le mieux d’abord à base pour d’autant de bonne méthode de maintien en vitesse : son rendu est optimisé après diminution compression image. Lazy-loadez l’ensemble du set, sans lazy-loader jamais au LCP image au vue du format image initial première impression LCP.134
Vous êtes peu d’appétence avec un besoin manuel touchant du codage ou désirez parler explicitement aux mots d’utilisateur en une écriture d’instruction et ses mots propres : ce Fudge créera directement du contenu de construction sur la norme de standard pour l’app natif sur ses fonctionnalités vers de vos objets au Shopify en direct pour produire les éléments propre aux pages du media directement depuis propre thème.
FAQ
Une configuration courante est de 36 images capturées à des intervalles de 10 degrés, ce qui donne une rotation fluide sans avoir un poids de fichier excessif. 24 images (paliers de 15 degrés) est une option plus légère, et 72 images double la fluidité pour un poids qui sera lui aussi doublé. Faites des tests sur mobile pour confirmer que le téléchargement reste raisonnable.
Shopify prend nativement en charge les modèles 3D et la RA via le système de médias de produits, rendus avec le composant model-viewer de Google. Cela gère un fichier de géométrie 3D plutôt qu'une séquence photo. Pour une vue 360 créée à partir de photos, vous devez utiliser une app de vue 360 ou un viewer JavaScript sur mesure dans votre thème.
C'est possible, car un ensemble de 36 images en pleine résolution peut atteindre 10 à 20 Mo. Gardez de bonnes performances en compressant chaque image à quelques dizaines de kilo-octets, en utilisant du WebP ou de l'AVIF, en chargeant l'ensemble des images en lazy-loading et en ne chargeant que la première image au chargement initial de la page. Ne mettez jamais en lazy-loading votre image LCP.
Une app est plus rapide à mettre en place et gère le changement d'images ainsi que le tactile, au prix d'un abonnement récurrent et d'un script supplémentaire sur votre page produit (PDP). Le code sur mesure permet de garder le viewer dans votre propre thème avec un contrôle total sur le moment où les images se chargent, mais vous devez en assurer la maintenance. Les deux méthodes fonctionnent ; le choix dépend de votre équipe.
Ajoutez la propriété "touch-action: pan-y" sur le conteneur du viewer pour qu'un glissement horizontal fasse pivoter le produit tandis qu'un balayage vertical fasse toujours défiler la page. Utilisez les Pointer events pour que la souris et le tactile partagent le même code, et laissez le média inactif par défaut pour que l'acheteur déclenche lui-même le spin 360, plutôt que la page ne détourne son premier toucher.
Utilisez du WebP ou de l'AVIF, qui sont environ 30 % plus légers que le JPEG à qualité équivalente. Prenez vos photos avec une largeur d'environ 1200 à 1500 px, compressez avec un réglage de qualité autour de 75 à 85 pour les photos, et nommez les images avec des zéros initiaux (zero-padded) pour que le viewer les charge dans le bon ordre.
Footnotes
-
Orbitvu, “How to Add 360 Product Photography to Your Shopify Website.” https://orbitvu.com/blog/how-add-360-product-photography-your-shopify-website ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11
-
Shopify, “Support product media.” https://shopify.dev/docs/storefronts/themes/product-merchandising/media/support-media ↩ ↩2 ↩3 ↩4 ↩5
-
web.dev, “Browser-level image lazy loading.” https://web.dev/articles/lazy-loading-images ↩ ↩2 ↩3 ↩4 ↩5
-
web.dev, “Image performance.” https://web.dev/learn/performance/image-performance ↩ ↩2 ↩3 ↩4
-
Shopify, “Product media UX guidelines.” https://shopify.dev/docs/storefronts/themes/product-merchandising/media/media-ux ↩ ↩2