Jump to content

Couleur par page


Recommended Posts

Merci Eolia pour votre réponse... En faite je veux créer une page produit qui regroupe plusieurs produits au même temps comme cet exemple : https://ba-sh.com/fr/fr/p/chemise-bird-carmin-3664784034933.html

Comme dans l'exemple chaque couleur mène à une page bien particulière, sauf que je veux que chaque produit possède sa propre desctiption.

Merci encore une fois. vous êtes les meilleurs.

Link to comment
Share on other sites

il y a une heure, Eolia a dit :

Ou alors vous bidouillez le product.tpl pour remplacer les déclis par des liens

C'est ce qhe je vous avais dit^^

Le code de ce site pour les couleurs (exemple):

<ul id="color_to_pick_list" class="clearfix">
<li>
<a class="selected imghoverpdt" rel2="" rel="https://www.faguo-store.com/shop/9230-large_default/test.jpg" href="https://www.faguo-store.com/shop/fr/3773-baskets-en-suede-cypress-fauve.html" style="background:url('https://www.faguo-store.com/shop/modules/coloris/views/img/prod345.png')" title="">
</a>
</li>
<li>
<a class="imghoverpdt" rel2="" rel="https://www.faguo-store.com/shop/11185-large_default/test.jpg" href="https://www.faguo-store.com/shop/fr/chaussures/4976-cypress-tennis-en-suede-marine.html" style="background:url('https://www.faguo-store.com/shop/modules/coloris/views/img/prod339.png')" title="TENNIS en SUEDE Marine">
</a>
</li>
<li>
<a class="imghoverpdt" rel2="" rel="https://www.faguo-store.com/shop/11189-large_default/test.jpg" href="https://www.faguo-store.com/shop/fr/chaussures/4985-cypress-tennis-en-suede-or-noir.html" style="background:url('https://www.faguo-store.com/shop/modules/coloris/views/img/prod356.png')" title="TENNIS en SUEDE Or Noir">
</a>
</li>
<li>
<a class="imghoverpdt" rel2="" rel="https://www.faguo-store.com/shop/11193-large_default/test.jpg" href="https://www.faguo-store.com/shop/fr/chaussures/4986-cypress-tennis-en-suede-noir-argent.html" style="background:url('https://www.faguo-store.com/shop/modules/coloris/views/img/prod379.png')" title="TENNIS en SUEDE Noir Argent">
</a>
</li>
<div class="clearfix"></div>
</ul>

un attribut href est ajouté dans le tpl et au clic, le javascript intercepte le fonctionnement normal de Prestashop (affichage de la décli) ce qui renvoie sur l'autre page produit.

Ce site utilise un module "coloris" (on le voit dans l'url de l'image)

 

Link to comment
Share on other sites

l'attribut href est bien là, voici mon code du product.tpl, malgré ça l'url reste la même, y a que l'ancre qui change dans l'adresse (zippe.html#/14-couleur-noir/1-taille-s) pour le noir et (zippe.html#/3-couleur-blanc/1-taille-s) : 

<a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" id="color_{$id_attribute|intval}" name="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}"{if !$img_color_exists && isset($colors.$id_attribute.value) && $colors.$id_attribute.value} style="background:{$colors.$id_attribute.value|escape:'html':'UTF-8'};"{/if} title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}">

 

Link to comment
Share on other sites

Il y a toujours moyen de faire ce qu'on veut mais je ne sais pas si vous maitrisez assez bien le code pour ça.

Là vous devez rajouter des éléments dans la page produit en BO, créer une table en base de données (pour stocker ces urls)  et modifier le product.tpl du thème.

Link to comment
Share on other sites

D'abord, est ce que je dois créer une page par couleur dans le back office ou bien je laisse une seule page par produit et j'insère les différentes déclinaisons pour commencer dans les règles de l'art? ça d'une part, d'autre part le problème c'est que dans l'exemple que j'ai saisie (un seul produit introduit avec deux couleurs noir & blanc et chaque couleur mène à sa photo adéquate mais toujours dans la même page). Je voudrais que chaque couleur mène à une page spécifique pour elle. Voici le code où ça pose de problème : 

{elseif ($group.group_type == 'color')}
                                                    <ul id="color_to_pick_list" class="clearfix">
                                                        {assign var="default_colorpicker" value=""}
                                                        {foreach from=$group.attributes key=id_attribute item=group_attribute}
                                                            {assign var='img_color_exists' value=file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
                                                            <li{if $group.default == $id_attribute} class="selected"{/if}>
                                                                <a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" id="color_{$id_attribute|intval}" name="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}"{if !$img_color_exists && isset($colors.$id_attribute.value) && $colors.$id_attribute.value} style="background:{$colors.$id_attribute.value|escape:'html':'UTF-8'};"{/if} title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}">
                                                                    {if $img_color_exists}
                                                                        <img src="{$img_col_dir}{$id_attribute|intval}.jpg" alt="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" width="20" height="20" />
                                                                    {/if}
                                                                </a>
                                                            </li>
                                                            {if ($group.default == $id_attribute)}
                                                                {$default_colorpicker = $id_attribute}
                                                            {/if}
                                                        {/foreach}
                                                    </ul>

 

La balise <li> dans le bloc foreach montre toujours la même URL en ajoutant une ancre a la fin comme (col-zippe.html#/3-couleur-blanc/1-taille-s) pour la couleur blanche ou bien (col-zippe.html#/14-couleur-noir/1-taille-s) comme il est affiché dans le fichier ci-joint

urls.jpg

Link to comment
Share on other sites

4 hours ago, Admins said:

D'abord, est ce que je dois créer une page par couleur dans le back office ou bien je laisse une seule page par produit et j'insère les différentes déclinaisons pour commencer dans les règles de l'art? ça d'une part, d'autre part le problème c'est que dans l'exemple que j'ai saisie (un seul produit introduit avec deux couleurs noir & blanc et chaque couleur mène à sa photo adéquate mais toujours dans la même page). Je voudrais que chaque couleur mène à une page spécifique pour elle. Voici le code où ça pose de problème : 

{elseif ($group.group_type == 'color')}
                                                    <ul id="color_to_pick_list" class="clearfix">
                                                        {assign var="default_colorpicker" value=""}
                                                        {foreach from=$group.attributes key=id_attribute item=group_attribute}
                                                            {assign var='img_color_exists' value=file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
                                                            <li{if $group.default == $id_attribute} class="selected"{/if}>
                                                                <a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" id="color_{$id_attribute|intval}" name="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}"{if !$img_color_exists && isset($colors.$id_attribute.value) && $colors.$id_attribute.value} style="background:{$colors.$id_attribute.value|escape:'html':'UTF-8'};"{/if} title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}">
                                                                    {if $img_color_exists}
                                                                        <img src="{$img_col_dir}{$id_attribute|intval}.jpg" alt="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" width="20" height="20" />
                                                                    {/if}
                                                                </a>
                                                            </li>
                                                            {if ($group.default == $id_attribute)}
                                                                {$default_colorpicker = $id_attribute}
                                                            {/if}
                                                        {/foreach}
                                                    </ul>

 

La balise <li> dans le bloc foreach montre toujours la même URL en ajoutant une ancre a la fin comme (col-zippe.html#/3-couleur-blanc/1-taille-s) pour la couleur blanche ou bien (col-zippe.html#/14-couleur-noir/1-taille-s) comme il est affiché dans le fichier ci-joint

urls.jpg

 

J'étais pas claire?

 

Link to comment
Share on other sites

Ben vous n'avez rien écrit là, c'est juste un c/c du code existant, et c'est la partie la plus simple en plus.

Dans ce fichier il faudra ajouter des conditions (si la déclinaison correspond à tel type, alors on écrit l'url du produit associé)

Ce qui signifie que dans l'admin, vous avez écrit le code pour entrer ces produits associés à ces déclinaisons et qu'en base de données vous avez stocké tout ça pour pouvoir enfin l'utiliser dans le tpl ci-dessus

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...