Thèmes Shopify, Liquid, logos et autres sujets similaires
Bonjour à tous,
J'utilise le thème "Showcase" sur Shopify et je me permets de solliciter votre aide, je vais essayer d'être le plus clair possible !
J'ai ajouté à ma template de page produit une vidéo youtube grâce à une section "vidéo".
Voici comment ça s'affiche :
Mais c'est la même vidéo qui s'affiche sur chaque produit, j'aimerais pouvoir renseigner grâce à des sources dynamiques une vidéo différente pour chaque produit.
Cependant, ce n'est pas possible dans mon éditeur de thème d'indiquer que j'aimerais une source dynamique, je peux le faire pour les Subtitles, la miniature de la vidéo, mais pas le lien de la vidéo :
Ce que j'ai essayé :
- Créer un metafield produit de type URL "lien-video-produit" -> product.metafields.custom.lien_video_produit
- Dans le fichier json de ma template de page produit, au niveau de mon bloc video, changer le lien de la vidéo en metafield mais je reçois un messae d'erreur
Mes maigres compétences de codage sur Shopify s'arrêtent ici, j'espère avoir été assez clair et que vous pourrez m'aider à trouver une solution !
Merci d'avance pour votre aide et belle journée,
Théo
Résolu ! Accéder à la solution.
Succès.
Hello Théo!
Déjà, tu peux pas mettre de variable dans du JSON donc ça marchera pas c'est sur.
L'option la plus simple (sans toucher au code) c'est de créer un modèle de page produit par produit. Mais si tu as plusieurs dizaines de produit ça peut devenir complexe.
Alors dans ce cas, le mieux (et c'est pas trop compliqué 😄), c'est de remplacer le type URL ici :
Par un type: "text". Au moins tu auras accès aux champs meta sur cette partie 🙂
Succès.
Hello Théo!
Déjà, tu peux pas mettre de variable dans du JSON donc ça marchera pas c'est sur.
L'option la plus simple (sans toucher au code) c'est de créer un modèle de page produit par produit. Mais si tu as plusieurs dizaines de produit ça peut devenir complexe.
Alors dans ce cas, le mieux (et c'est pas trop compliqué 😄), c'est de remplacer le type URL ici :
Par un type: "text". Au moins tu auras accès aux champs meta sur cette partie 🙂
Hello Agence_Deployer, merci pour ta réponse très intéressante !
Effectivement, ça m'a l'air d'être une bonne solution et plutôt simple à mettre en place !
Je ne peux pas modifier le type dans mon modèle de template .json (normal je crois ?)
mais plutôt dans le fichier .liquid de mon bloc vidéo.
J'ai essayé de modifier le type en "text" à cet endroit là :
Et j'ai supprimé la ligne "accept"
Ça fonctionne presque mais la vidéo ne se lance pas, voici deux screen : l'ancien bloc vidéo vs le nouveau bloc video avec le "type" : text
L'ancien ->
Le nouveau ->
On remarque qu'il ne reconnaît pas le data-video-id et le data-video-type.
J'ai modifié le data-video-type pour que ça ne soit plus une variable mais un type "youtube".
(anciennement data-video-type="{{ section.settings.video.type }}")
Pour le data-video-id, je ne comprends pas du tout comment ça marche, quelqu'un saurait-il m'aiguiller svp ?
Cordialement
Théo
À mon avis le data-video-id prend juste ce qu'il y a apres la vairable ?v= sur l'url youtube. Donc tu vas devoir découper ta variable.
Tu as une doc ici : https://shopify.github.io/
Sinon ça devrait donner un truc comme ça :
{%- assign video_id = section.settings.video | split: 'v=' -%} {%- assign video_id = video_id[1] | split: '&' | first -%}
Merci pour ta réponse !
Je pense comme toi mais impossible de trouver dans le code l'endroit ou il fait la séparation, j'ai trouvé dans theme.js des lignes susceptibles de réaliser cette fonction :
Mais impossible d'être sûr à 100% car je n'ai aucune notion de js, liquid ou json ..
J'ai essayé de tester tes deux lignes de code en les ajoutant juste en dessous de la ligne {% if section.settings.video != blank %}
J'ai testé avec "video_id" comme sur ton exemple, mais aussi video-id, video.id, data-video-id
Mais rien n'y fait, ma variable data-video-id ne se met pas à jour avec ce qu'il y a après le ?v= de mon champ de texte en source dynamique.
Merci encore pour ta précieuse aide !
Théo
j'avais juste placé le résultat dans une variable {{ video_id }} que tu peux utiliser ou tu veux.
Bon j'avoue que sans tester et voir le code c'est complexe mais je suis sur qu'après s'être bien cassé la tête ça marchera !
Bon courage 😉
Ok je n'avais pas compris ça ! En remplaçant le data-video-id="{{ section.settings.video.id }}" en data-video-id="{{ video_id }}"
Ça fonctionne !!
Merci infiniment pour ton aide, ta gentillesse et ta rapidité, belle journée 🙂
Théo
Parfait 🔥🔥
I want to do the same thing, but I'm using the Dawn theme. I'm trying to copy the above but it doesn't match my template. can someone help me?
Maîtrisez l’expansion internationale de votre activité Shopify grâce au parcours d’appr...
By Shopify Feb 7, 2025Agrandissez la vente en gros avec le parcours d’apprentissage de Shopify Academy, B2B...
By Shopify Jan 30, 2025Pour que les clients se sentent encouragés à acheter des produits, ils doivent comprendre ...
By Océanne Sep 3, 2024