Cream77 Posted March 29, 2016 Share Posted March 29, 2016 Bonjour est il possible de grisé les declinaisons hors stock ? Link to comment Share on other sites More sharing options...
Guest Posted March 29, 2016 Share Posted March 29, 2016 Oui, c'est envisageable, comment affichez vous vos déclinaisons.. en menu déroulant ? Link to comment Share on other sites More sharing options...
Cream77 Posted March 29, 2016 Author Share Posted March 29, 2016 Oui, c'est envisageable, comment affichez vous vos déclinaisons.. en menu déroulant ? oui classique. Link to comment Share on other sites More sharing options...
Guest Posted March 29, 2016 Share Posted March 29, 2016 ok.. alors pour modifier l'affichage des déclinaisons.. voici un petite bidouille qui fonctionne sur product.tpl du thème, vous pouvez vous en inspirer pour griser la ligne avec une balise <span> par exemple et du css au lieu de rajouter EN STOCK ou HORS STOCK comme le fait ce code : {foreach from=$groups key=id_attribute_group item=group} {if $group.attributes|@count} <fieldset class="attribute_fieldset"> {assign var="groupName" value="group_$id_attribute_group"} <div class="attribute_list"> {if ($group.group_type == 'select')} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="attribute_select" onchange="findCombination();getProductAttribute();"> <option value="0" selected="selected" title="Choose your size">Choose your size</option> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}"> {$group_attribute|escape:'htmlall':'UTF-8'} {foreach from=$combinations item=foo}{foreach from=$foo key=key item=floo}{if $key == 'attributes'}{if $floo.0 == $id_attribute}{assign var="verif" value="true"}{else}{assign var="verif" value="false"}{/if}{/if}{if $key == 'quantity' && $verif == 'true'} - {if $floo == '0'}OUT OF STOCK{ELSE}IN STOCK{/if}{/if}{/foreach}{/foreach}</option> {/foreach} </select> {elseif ($group.group_type == 'color')} Link to comment Share on other sites More sharing options...
Cream77 Posted March 30, 2016 Author Share Posted March 30, 2016 ca a l'air pas mal comme solution on peut pas mettre choisissez votre taille dans le select, par défaut? au lieu de mettre la déclinaison par défaut ? un client qui arrive sur une fiche produit. si la déclinaison par défaut est hors stock. le message de indisponibilité est affiché. il croit alors que c'est valable pour toutes les declinaisons en revanche si "choisissez votre taille" ça incite a choisir sa taille. j'ai pas reussi a mettre en grisé par contre : <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="attribute_select" onchange="findCombination();getProductAttribute();"> <option value="0" selected="selected" title="Choose your size">Choississez la taille</option> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}"> {$group_attribute|escape:'htmlall':'UTF-8'} {foreach from=$combinations item=foo}{foreach from=$foo key=key item=floo}{if $key == 'attributes'} {if $floo.0 == $id_attribute}{assign var="verif" value="true"}{else}{assign var="verif" value="false"}{/if}{/if} <span style="color:#B9B9B9">{if $key == 'quantity' && $verif == 'true'} - {if $floo == '0'}indisponible</span> {ELSE}Disponible{/if}{/if}{/foreach}{/foreach}</option> {/foreach} </select> Link to comment Share on other sites More sharing options...
Guest Posted March 30, 2016 Share Posted March 30, 2016 c'est déjà le cas pour le texte dans mon code modifié : <option value="0" selected="selected" title="Choose your size">Choose your size</option> pour griser une ligne.. j'ai expliqué qu'il faut rajouter une balise avant et apres la ligne et rajouter du code css pour arriver à tes fins. Link to comment Share on other sites More sharing options...
Guest Posted March 30, 2016 Share Posted March 30, 2016 Je tiens à préciser que le code en l'état ne fonctionnera que si vous avez des tailles à sélectionner et non la couleur aussi.. pour ça il va falloir modifier le code en conséquence. Link to comment Share on other sites More sharing options...
Guest Posted March 30, 2016 Share Posted March 30, 2016 pour griser la ligne .. le plus simple est de rajouter une classe dans l'option : soit avec le mm code on obtient : {foreach from=$groups key=id_attribute_group item=group} {if $group.attributes|@count} <fieldset class="attribute_fieldset"> <label class="attribute_label" {if $group.group_type != 'color' && $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'} </label> {assign var="groupName" value="group_$id_attribute_group"} <div class="attribute_list"> {if ($group.group_type == 'select')} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print"> <option value="" selected="selected" title="Choose your size">Choose your size</option> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}" {foreach from=$combinations item=foo} {foreach from=$foo key=key item=floo}{if $key == 'attributes'} {if $floo.0 == $id_attribute}{assign var="verif" value="true"} {else}{assign var="verif" value="false"}{/if}{/if} {if $key == 'quantity' && $verif == 'true'} {if $floo == '0'} class="grisee" {/if}{/if} {/foreach} {/foreach} > {$group_attribute|escape:'htmlall':'UTF-8'} {foreach from=$combinations item=foo} {foreach from=$foo key=key item=floo}{if $key == 'attributes'} {if $floo.0 == $id_attribute}{assign var="verif" value="true"} {else}{assign var="verif" value="false"}{/if}{/if} {if $key == 'quantity' && $verif == 'true'} - {if $floo == '0'}OUT OF STOCK {else}IN STOCK{/if}{/if} {/foreach} {/foreach}</option> {/foreach} </select> {elseif ($group.group_type == 'color')} il faudrait remanier le code pour qu'il fonctionne correctement avec l'élément "choose you size" car ça fonctionne sous 1.5 à la base ce bout de code mais l'idée est la même. Link to comment Share on other sites More sharing options...
Guest Posted March 30, 2016 Share Posted March 30, 2016 j'ai oublié de dire qu'il faut donc rajouter dans product.css le code permettant de "griser" la ligne : #attributes .attribute_list .form-control option.grisee { background: grey none repeat scroll 0 0; color: white; } Link to comment Share on other sites More sharing options...
Cream77 Posted March 30, 2016 Author Share Posted March 30, 2016 tout est bon juste que ca se met pas sur choisissez votre taille. Link to comment Share on other sites More sharing options...
Guest Posted March 30, 2016 Share Posted March 30, 2016 oui .. il faudrait que je regarde ça en détail mais ça vient certainement du javascript qui voit que cette déclinaison n'existe pas et donc va choisir la suivante... c'est ennuyeux, mais ça doit pas être bien méchant à rectifier, encore faut il s'y pencher vraiment dessus.. je ne dis pas que je ne regarderai pas.. mais il va falloir attendre un peu Link to comment Share on other sites More sharing options...
Cream77 Posted March 31, 2016 Author Share Posted March 31, 2016 ok. j'attend ton retour alors. merci encore pour ton aide Link to comment Share on other sites More sharing options...
Laslaa62 Posted May 1, 2016 Share Posted May 1, 2016 Bonjour Mille merci pour ce post je vous suit car j'ai acheté un module pour griser les declinaison qui ne fonctionne pas La actuellement j'ai un autre soucis, le problème est que sur smartphone ou tablette sous chrome la liste déroulante pour changer de déclinaison apparait puis disparait aussitot donc changement de déclinaison impossible si quelqu'un à une idée ça serait top je perds beaucoup de client Cordialement www.dine-style.fr Link to comment Share on other sites More sharing options...
Guest Posted May 1, 2016 Share Posted May 1, 2016 ok. j'attend ton retour alors. merci encore pour ton aide 1 mois c'est long et en même temps ça passe très vite.. j'avais zappé, c'est Laslaa qui a fait remonter le topic. Voici les modifs à faire pour que ça fonctionne : Modifier la partie suivante dans le fichier /montheme/js/product.js //display that the product is unavailable with theses attributes if (!selectedCombination['unavailable']) { $('#availability_value').text(doesntExistNoMore + (globalQuantity > 0 ? ' ' + doesntExistNoMoreBut : '')); if (!allowBuyWhenOutOfStock) $('#availability_value').removeClass('label-success').addClass('label-warning'); } else { $('#availability_value').text(doesntExist).removeClass('label-success').addClass('label-warning'); $('#oosHook').hide(); } par //display that the product is unavailable with theses attributes if (!selectedCombination['unavailable']) { $('#availability_value').text(doesntExistNoMore + (globalQuantity > 0 ? ' ' + doesntExistNoMoreBut : '')); if (!allowBuyWhenOutOfStock) $('#availability_value').removeClass('label-success').addClass('label-warning'); } else { $('#oosHook').hide(); } Ensuite, ajouter à la fin du fichier css : montheme/css/product.css #attributes .attribute_list .form-control option.grisee { background: grey none repeat scroll 0 0; color: white; } et modifier toujours la même partie du fichier product.tpl comme suit : {foreach from=$groups key=id_attribute_group item=group} {if $group.attributes|@count} <fieldset class="attribute_fieldset"> <label class="attribute_label" {if $group.group_type != 'color' && $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'} </label> {assign var="groupName" value="group_$id_attribute_group"} <div class="attribute_list"> {if ($group.group_type == 'select')} <select name="Choose your size" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print"> <option value="" selected="selected" title="Choose your size">Choose your size</option> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} {/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}" {foreach from=$combinations item=foo} {foreach from=$foo key=key item=floo}{if $key == 'attributes'} {if $floo.0 == $id_attribute}{assign var="verif" value="true"} {else}{assign var="verif" value="false"}{/if}{/if} {if $key == 'quantity' && $verif == 'true'} {if $floo == '0'} class="grisee" {/if}{/if} {/foreach} {/foreach} > {$group_attribute|escape:'htmlall':'UTF-8'} {foreach from=$combinations item=foo} {foreach from=$foo key=key item=floo}{if $key == 'attributes'} {if $floo.0 == $id_attribute}{assign var="verif" value="true"} {else}{assign var="verif" value="false"}{/if}{/if} {if $key == 'quantity' && $verif == 'true'} - {if $floo == '0'}OUT OF STOCK {else}IN STOCK{/if}{/if} {/foreach} {/foreach}</option> {/foreach} </select> {elseif ($group.group_type == 'color')} Enjoy Link to comment Share on other sites More sharing options...
Laslaa62 Posted May 1, 2016 Share Posted May 1, 2016 Dans product.tpl on ajoute la dernière partie c'est ça? Link to comment Share on other sites More sharing options...
Guest Posted May 1, 2016 Share Posted May 1, 2016 Dans product.tpl on ajoute la dernière partie c'est ça? Relisez tout le post, j'ai pris la peine d'expliquer correctement. Link to comment Share on other sites More sharing options...
Laslaa62 Posted May 2, 2016 Share Posted May 2, 2016 Merci beaucoup, celà fonctionne pour moi, Comment traduire les champs Choose your size et Out Of stock ou In stock? Car j'ai un champs taille et un champs couleur de mon côté ? Est ce que c'est possible de sélectionner la déclinaison par avance lorsqu'une seule déclinaison est disponible ? Par exemple 2 couleurs 1 tailles donc la tailles toujours active. En tout cas trés bon boulot Link to comment Share on other sites More sharing options...
Laslaa62 Posted May 2, 2016 Share Posted May 2, 2016 J'ai réussi mais pas pour la déclinaison unique Est il possible de rendre la déclinaison indisponible non sélectionnable ? Par contre j'ai un soucis supplémentaire désolé de vous embêtez Sur la première déclinaison il affiche autant de fois qu'il y a de tailles pour une couleur par exemple en répété la mention En stock ou Indisponible, Exemple : http://www.dine-style.fr/fr/tunique/1109-tunique-kim.html Link to comment Share on other sites More sharing options...
Guest Posted May 2, 2016 Share Posted May 2, 2016 ne polluez pas le topic de Cream77 vos demandes sont différentes.. merci d'ouvrir votre propre topic. Link to comment Share on other sites More sharing options...
informatikadomicile Posted May 8, 2016 Share Posted May 8, 2016 Bonjour Est ce que le code est valide pour une version 1.6.0.4. Merci pour le retour Link to comment Share on other sites More sharing options...
Guest Posted May 8, 2016 Share Posted May 8, 2016 pas testé sur cette version, mais ça devrait le faire.. à vous d'essayer et merci du retour si ça fonctionne. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now