benbine Posted March 12, 2018 Share Posted March 12, 2018 Bonjour, J'utilise un thème payant "autumn" mais il n'y a plus de support pour ce thème depuis quelques temps. Je rencontre un problème d'affichage sur mes fiches produits avec des déclinaisons : Quand je sélectionne une combinaison de déclinaisons qui n'a pas de stock, il n'y a pas de message "Ce produit n'existe pas dans cette déclinaison. Vous pouvez néanmoins en sélectionner une autre." qui s'affiche. On a seulement le bouton "ajouter au panier" qui disparaît. Par exemple sur la page https://www.horseandropes.fr/accessoires/192-ceinture-a-poches.html avec le Bleu taille S. Ca me pose problème car les clients pourraient être tentés de penser qu'il n'y a pas de stock du tout pour ce produit, quelque soit les déclinaisons et quitter la page (si la déclinaison par défaut n'a plus de stock). Voici le contenu de mes product.tpl et product.js, j'imagine que ça se joue la dedans. J'ai déjà fait quelques essais infructueux. Si quelqu'un comprend ces codes et sait m'aider, merci d'avance product.tpl : {if $PS_STOCK_MANAGEMENT} {if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $PS_CATALOG_MODE} {else} <!-- Stock information --> <div id="availability_statut" class="iconed-text"> <span class="wpicon wpicon-box medium"></span> <span id="availability_value"{if $product->quantity <= 0 && !$allow_oosp} class="warning_inline"{/if}> {if $product->quantity <= 0} {if $allow_oosp} {$product->available_later} {else} {l s='This product is no longer in stock'} {/if} {else} {$product->available_now} {/if} </span> {hook h="displayProductDeliveryTime" product=$product} </div> <div class="iconed-text warning_inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity <= 0) || $allow_oosp || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none"{/if} > <span class="wpicon wpicon-info medium"></span> {l s='Warning: Last items in stock!'} </div> {/if} {/if} 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').addClass('warning_inline'); } else { $('#availability_value').text(doesntExist).addClass('warning_inline'); $('#oosHook').hide(); } if (stock_management == 1 && !allowBuyWhenOutOfStock) $('#availability_statut:hidden').show(); Link to comment Share on other sites More sharing options...
Eolia Posted March 12, 2018 Share Posted March 12, 2018 Vous avez dû mettre à jour votre boutique... Comparez le bas du fichier product.tpl avec celui par défaut (à jour) et idem pour le js Link to comment Share on other sites More sharing options...
benbine Posted March 12, 2018 Author Share Posted March 12, 2018 (edited) Bonjour, En fait je ne l'ai pas mise à jour depuis un moment, je suis bloqué en 1.6.0.9 car le développeur de mon thème a arrêté le support. Le problème est présent depuis longtemps je pense. Mon product.tpl : {addJsDef specific_currency=($product->specificPrice && $product->specificPrice.id_currency)|boolval} {* TODO: remove if always false *} {addJsDef stock_management=$PS_STOCK_MANAGEMENT|intval} {addJsDef taxRate=$tax_rate|floatval} {addJsDefL name=doesntExist}{l s='This combination does not exist for this product. Please select another combination.' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMore}{l s='This product is no longer in stock' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMoreBut}{l s='with those attributes but is available with others.' js=1}{/addJsDefL} {addJsDefL name=fieldRequired}{l s='Please fill in all the required fields before saving your customization.' js=1}{/addJsDefL} {addJsDefL name=uploading_in_progress}{l s='Uploading in progress, please be patient.' js=1}{/addJsDefL} {addJsDefL name='product_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL} {addJsDefL name='product_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL} {/strip} {/if} Celui du thème par défaut de la dernière version 1.6.1.18 : {addJsDef specific_currency=($product->specificPrice && $product->specificPrice.id_currency)|boolval} {* TODO: remove if always false *} {addJsDef stock_management=$PS_STOCK_MANAGEMENT|intval} {addJsDef taxRate=$tax_rate|floatval} {addJsDefL name=doesntExist}{l s='This combination does not exist for this product. Please select another combination.' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMore}{l s='This product is no longer in stock' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMoreBut}{l s='with those attributes but is available with others.' js=1}{/addJsDefL} {addJsDefL name=fieldRequired}{l s='Please fill in all the required fields before saving your customization.' js=1}{/addJsDefL} {addJsDefL name=uploading_in_progress}{l s='Uploading in progress, please be patient.' js=1}{/addJsDefL} {addJsDefL name='product_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL} {addJsDefL name='product_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL} {/strip} {/if} A priori ce sont les mêmes. Mon 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').addClass('warning_inline'); } else { $('#availability_value').text(doesntExist).addClass('warning_inline'); $('#oosHook').hide(); } if (stock_management == 1 && !allowBuyWhenOutOfStock) $('#availability_statut:hidden').show(); Le product.js de la 1.6.1.18 : //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(); } if ((stock_management == 1 && !allowBuyWhenOutOfStock) || (!stock_management && selectedCombination['unavailable'])) $('#availability_statut:hidden').show(); Il y a des différences, notamment removeClass('label-success') en plus et addClass('label-warning') au lieu de addClass('warning_inline'). J'ai éssayé de remplacer mon code par celui de la 1.6.1.18 mais ça n'a rien changé après un vidage des caches (de mon hébergeur, des fichiers smarty sur mon ftp, du menu paramètres avancés / performances) Edited March 12, 2018 by benbine précision (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted March 12, 2018 Share Posted March 12, 2018 hum... il en manque un gros bout, là ou son déclarées les variables^^ Si vous n'avez pas fait de mise à jour il faut comparer avec le thème par defaut de la 1.6.0.9 {strip} {if isset($smarty.get.ad) && $smarty.get.ad} {addJsDefL name=ad}{$base_dir|cat:$smarty.get.ad|escape:'html':'UTF-8'}{/addJsDefL} {/if} {if isset($smarty.get.adtoken) && $smarty.get.adtoken} {addJsDefL name=adtoken}{$smarty.get.adtoken|escape:'html':'UTF-8'}{/addJsDefL} {/if} {addJsDef allowBuyWhenOutOfStock=$allow_oosp|boolval} {addJsDef availableNowValue=$product->available_now|escape:'quotes':'UTF-8'} {addJsDef availableLaterValue=$product->available_later|escape:'quotes':'UTF-8'} {addJsDef attribute_anchor_separator=$attribute_anchor_separator|escape:'quotes':'UTF-8'} {addJsDef attributesCombinations=$attributesCombinations} {addJsDef currentDate=$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'} {if isset($combinations) && $combinations} {addJsDef combinations=$combinations} {addJsDef combinationsFromController=$combinations} {addJsDef displayDiscountPrice=$display_discount_price} {addJsDefL name='upToTxt'}{l s='Up to' js=1}{/addJsDefL} {/if} {if isset($combinationImages) && $combinationImages} {addJsDef combinationImages=$combinationImages} {/if} {addJsDef customizationId=$id_customization} {addJsDef customizationFields=$customizationFields} {addJsDef default_eco_tax=$product->ecotax|floatval} {addJsDef displayPrice=$priceDisplay|intval} {addJsDef ecotaxTax_rate=$ecotaxTax_rate|floatval} {if isset($cover.id_image_only)} {addJsDef idDefaultImage=$cover.id_image_only|intval} {else} {addJsDef idDefaultImage=0} {/if} {addJsDef img_ps_dir=$img_ps_dir} {addJsDef img_prod_dir=$img_prod_dir} {addJsDef id_product=$product->id|intval} {addJsDef jqZoomEnabled=$jqZoomEnabled|boolval} {addJsDef maxQuantityToAllowDisplayOfLastQuantityMessage=$last_qties|intval} {addJsDef minimalQuantity=$product->minimal_quantity|intval} {addJsDef noTaxForThisProduct=$no_tax|boolval} {if isset($customer_group_without_tax)} {addJsDef customerGroupWithoutTax=$customer_group_without_tax|boolval} {else} {addJsDef customerGroupWithoutTax=false} {/if} {if isset($group_reduction)} {addJsDef groupReduction=$group_reduction|floatval} {else} {addJsDef groupReduction=false} {/if} {addJsDef oosHookJsCodeFunctions=Array()} {addJsDef productHasAttributes=isset($groups)|boolval} {addJsDef productPriceTaxExcluded=($product->getPriceWithoutReduct(true)|default:'null' - $product->ecotax)|floatval} {addJsDef productPriceTaxIncluded=($product->getPriceWithoutReduct(false)|default:'null' - $product->ecotax * (1 + $ecotaxTax_rate / 100))|floatval} {addJsDef productBasePriceTaxExcluded=($product->getPrice(false, null, 6, null, false, false) - $product->ecotax)|floatval} {addJsDef productBasePriceTaxExcl=($product->getPrice(false, null, 6, null, false, false)|floatval)} {addJsDef productBasePriceTaxIncl=($product->getPrice(true, null, 6, null, false, false)|floatval)} {addJsDef productReference=$product->reference|escape:'html':'UTF-8'} {addJsDef productAvailableForOrder=$product->available_for_order|boolval} {addJsDef productPriceWithoutReduction=$productPriceWithoutReduction|floatval} {addJsDef productPrice=$productPrice|floatval} {addJsDef productUnitPriceRatio=$product->unit_price_ratio|floatval} {addJsDef productShowPrice=(!$PS_CATALOG_MODE && $product->show_price)|boolval} {addJsDef PS_CATALOG_MODE=$PS_CATALOG_MODE} {if $product->specificPrice && $product->specificPrice|@count} {addJsDef product_specific_price=$product->specificPrice} {else} {addJsDef product_specific_price=array()} {/if} {if $display_qties == 1 && $product->quantity} {addJsDef quantityAvailable=$product->quantity} {else} {addJsDef quantityAvailable=0} {/if} {addJsDef quantitiesDisplayAllowed=$display_qties|boolval} {if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'percentage'} {addJsDef reduction_percent=$product->specificPrice.reduction*100|floatval} {else} {addJsDef reduction_percent=0} {/if} {if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'amount'} {addJsDef reduction_price=$product->specificPrice.reduction|floatval} {else} {addJsDef reduction_price=0} {/if} {if $product->specificPrice && $product->specificPrice.price} {addJsDef specific_price=$product->specificPrice.price|floatval} {else} {addJsDef specific_price=0} {/if} {addJsDef specific_currency=($product->specificPrice && $product->specificPrice.id_currency)|boolval} {* TODO: remove if always false *} {addJsDef stock_management=$PS_STOCK_MANAGEMENT|intval} {addJsDef taxRate=$tax_rate|floatval} {addJsDefL name=doesntExist}{l s='This combination does not exist for this product. Please select another combination.' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMore}{l s='This product is no longer in stock' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMoreBut}{l s='with those attributes but is available with others.' js=1}{/addJsDefL} {addJsDefL name=fieldRequired}{l s='Please fill in all the required fields before saving your customization.' js=1}{/addJsDefL} {addJsDefL name=uploading_in_progress}{l s='Uploading in progress, please be patient.' js=1}{/addJsDefL} {addJsDefL name='product_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL} {addJsDefL name='product_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL} {/strip} {/if} Link to comment Share on other sites More sharing options...
benbine Posted March 12, 2018 Author Share Posted March 12, 2018 Ah oui ^^ Mais la du coup il y a beaucoup de différences : {strip} {if isset($smarty.get.ad) && $smarty.get.ad} {addJsDefL name=ad}{$base_dir|cat:$smarty.get.ad|escape:'html':'UTF-8'}{/addJsDefL} {/if} {if isset($smarty.get.adtoken) && $smarty.get.adtoken} {addJsDefL name=adtoken}{$smarty.get.adtoken|escape:'html':'UTF-8'}{/addJsDefL} {/if} {addJsDef allowBuyWhenOutOfStock=$allow_oosp|boolval} {addJsDef availableNowValue=$product->available_now|escape:'quotes':'UTF-8'} {addJsDef availableLaterValue=$product->available_later|escape:'quotes':'UTF-8'} {addJsDef attribute_anchor_separator=$attribute_anchor_separator|escape:'quotes':'UTF-8'} {addJsDef attributesCombinations=$attributesCombinations} {addJsDef currencySign=$currencySign|html_entity_decode:2:"UTF-8"} {addJsDef currencyRate=$currencyRate|floatval} {addJsDef currencyFormat=$currencyFormat|intval} {addJsDef currencyBlank=$currencyBlank|intval} {addJsDef currentDate=$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'} {if isset($combinations) && $combinations} {addJsDef combinations=$combinations} {addJsDef combinationsFromController=$combinations} {addJsDef displayDiscountPrice=$display_discount_price} {addJsDefL name='upToTxt'}{l s='Up to' js=1}{/addJsDefL} {/if} {if isset($combinationImages) && $combinationImages} {addJsDef combinationImages=$combinationImages} {/if} {addJsDef customizationFields=$customizationFields} {addJsDef default_eco_tax=$product->ecotax|floatval} {addJsDef displayPrice=$priceDisplay|intval} {addJsDef ecotaxTax_rate=$ecotaxTax_rate|floatval} {addJsDef group_reduction=$group_reduction} {if isset($cover.id_image_only)} {addJsDef idDefaultImage=$cover.id_image_only|intval} {else} {addJsDef idDefaultImage=0} {/if} {addJsDef img_ps_dir=$img_ps_dir} {addJsDef img_prod_dir=$img_prod_dir} {addJsDef id_product=$product->id|intval} {addJsDef jqZoomEnabled=$jqZoomEnabled|boolval} {addJsDef maxQuantityToAllowDisplayOfLastQuantityMessage=$last_qties|intval} {addJsDef minimalQuantity=$product->minimal_quantity|intval} {addJsDef noTaxForThisProduct=$no_tax|boolval} {addJsDef customerGroupWithoutTax=$customer_group_without_tax|boolval} {addJsDef oosHookJsCodeFunctions=Array()} {addJsDef productHasAttributes=isset($groups)|boolval} {addJsDef productPriceTaxExcluded=($product->getPriceWithoutReduct(true)|default:'null' - $product->ecotax)|floatval} {addJsDef productBasePriceTaxExcluded=($product->base_price - $product->ecotax)|floatval} {addJsDef productBasePriceTaxExcl=($product->base_price|floatval)} {addJsDef productReference=$product->reference|escape:'html':'UTF-8'} {addJsDef productAvailableForOrder=$product->available_for_order|boolval} {addJsDef productPriceWithoutReduction=$productPriceWithoutReduction|floatval} {addJsDef productPrice=$productPrice|floatval} {addJsDef productUnitPriceRatio=$product->unit_price_ratio|floatval} {addJsDef productShowPrice=(!$PS_CATALOG_MODE && $product->show_price)|boolval} {addJsDef PS_CATALOG_MODE=$PS_CATALOG_MODE} {if $product->specificPrice && $product->specificPrice|@count} {addJsDef product_specific_price=$product->specificPrice} {else} {addJsDef product_specific_price=array()} {/if} {if $display_qties == 1 && $product->quantity} {addJsDef quantityAvailable=$product->quantity} {else} {addJsDef quantityAvailable=0} {/if} {addJsDef quantitiesDisplayAllowed=$display_qties|boolval} {if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'percentage'} {addJsDef reduction_percent=$product->specificPrice.reduction*100|floatval} {else} {addJsDef reduction_percent=0} {/if} {if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'amount'} {addJsDef reduction_price=$product->specificPrice.reduction|floatval} {else} {addJsDef reduction_price=0} {/if} {if $product->specificPrice && $product->specificPrice.price} {addJsDef specific_price=$product->specificPrice.price|floatval} {else} {addJsDef specific_price=0} {/if} {addJsDef specific_currency=($product->specificPrice && $product->specificPrice.id_currency)|boolval} {* TODO: remove if always false *} {addJsDef stock_management=$PS_STOCK_MANAGEMENT|intval} {addJsDef taxRate=$tax_rate|floatval} {addJsDefL name=doesntExist}{l s='This combination does not exist for this product. Please select another combination.' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMore}{l s='This product is no longer in stock' js=1}{/addJsDefL} {addJsDefL name=doesntExistNoMoreBut}{l s='with those attributes but is available with others.' js=1}{/addJsDefL} {addJsDefL name=fieldRequired}{l s='Please fill in all the required fields before saving your customization.' js=1}{/addJsDefL} {addJsDefL name=uploading_in_progress}{l s='Uploading in progress, please be patient.' js=1}{/addJsDefL} {addJsDefL name='product_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL} {addJsDefL name='product_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL} {/strip} {/if} Link to comment Share on other sites More sharing options...
benbine Posted March 12, 2018 Author Share Posted March 12, 2018 Ah et je n'avais pas précisé au départ que le message "Ce produit n'est plus en stock" s'affiche bien quand le produit n'a pas de déclinaison et que le stock est à 0. Merci de regarder en tout cas. Link to comment Share on other sites More sharing options...
Eolia Posted March 13, 2018 Share Posted March 13, 2018 Il faut comprendre une chose: dans le product.tpl des variables sont affectées en javascript depuis les variables smarty. Les combinaisons et leurs caractéristiques sont entièrement chargées en javascript à partir des variables fournies dans le tpl S'il manque une ou plusieurs variables ou qu'elles sont vides le tableau des combinaisons est incomplet. Il faut donc tracer les lignes de votre js qui doivent réagir au changement de décli et modifier l'affichage et voir ce qui leur manque. Link to comment Share on other sites More sharing options...
benbine Posted March 13, 2018 Author Share Posted March 13, 2018 Logiquement j'aurai pensé que mon problème se situe dans les différences de la fonction updateDisplay() mais ils sont quasi identiques : https://www.diffchecker.com/VjtAH3os (à gauche mon js, à droite celui du theme par défaut en 1.6.0.9) Ce que je ne m'explique pas, c'est que pour un produit sans déclinaison, j'affiche bien le message, je comprend que j'arrive bien au "doesntExistNoMore" (ligne 502). Mais je ne comprend pas pourquoi je ne vais pas jusqu'au "doesntExistNoMoreBut". La ligne est identique dans le theme par défaut. Link to comment Share on other sites More sharing options...
Eolia Posted March 13, 2018 Share Posted March 13, 2018 Un produit sans déclinaison affiche cette alerte hors-stock sans passer par le javascript vu que les données sont directement envoyées par Smarty dans le tpl. Link to comment Share on other sites More sharing options...
benbine Posted March 13, 2018 Author Share Posted March 13, 2018 Ah ok, merci. Pourriez-vous préciser svp ce que vous proposez ici : 13 hours ago, Eolia said: Il faut donc tracer les lignes de votre js qui doivent réagir au changement de décli et modifier l'affichage et voir ce qui leur manque. Link to comment Share on other sites More sharing options...
Eolia Posted March 14, 2018 Share Posted March 14, 2018 // search the combinations' case of attributes and update displaying of availability, prices, ecotax, and image function findCombination() { .... //update display of the availability of the product AND the prices of the product function updateDisplay() { var productPriceDisplay = productPrice; var productPriceWithoutReductionDisplay = productPriceWithoutReduction; if (!selectedCombination['unavailable'] && quantityAvailable > 0 && productAvailableForOrder == 1) { ... Dans cette fonction on retrouve votre code cité plus haut et donc, la div ayant l'id "availability_value" doit être mise à jour avec le code suivant: //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'); } Vous dites que ce n'est pas le cas MAIS que le bouton ajouter au panier disparaît donc ce code fonctionne: //show the 'add to cart' button ONLY IF it's possible to buy when out of stock AND if it was previously invisible if (allowBuyWhenOutOfStock && !selectedCombination['unavailable'] && productAvailableForOrder) { ... } else { $('#add_to_cart:visible').fadeOut(600); if (stock_management == 1 && productAvailableForOrder) $('#availability_statut:hidden').show('slow'); } En analysant le code de votre page il est clair que l'élément "availability_value" n'existe pas dans votre product.tpl, et que la classe "warning-inline" n'est pas définie dans votre css. En ajoutant cette div et avec une règle rapide css, j'obtient ceci: Link to comment Share on other sites More sharing options...
benbine Posted March 14, 2018 Author Share Posted March 14, 2018 Bonjour et merci pour ce retour constructif. Je sens qu'on touche au but J'ai bien une définition de "availability_value" dans mon product.tpl : <!-- Stock information --> <div id="availability_statut" class="iconed-text"> <span class="wpicon wpicon-box medium"></span> <span id="availability_value"{if $product->quantity <= 0 && !$allow_oosp} class="warning_inline"{/if}> {if $product->quantity <= 0} {if $allow_oosp} {$product->available_later} {else} {l s='This product is no longer in stock'} {/if} {else} {$product->available_now} {/if} </span> {hook h="displayProductDeliveryTime" product=$product} </div> D'ailleurs ça fonctionne bien pour un produit sans déclinaison (https://www.horseandropes.fr/flags/82-flag.html) puisqu'on voit bien le message et le logo qui correspondent aux lignes suivantes : {l s='This product is no longer in stock'} <span class="wpicon wpicon-box medium"></span> J'ai bien un css pour warning_inline : .pb-right-column .warning_inline { color: #d9534f!important; font-weight: bold!important; } J'ai essayé de modifier le availability_value dans le js comme vous le suggériez : if (!selectedCombination['unavailable']) { $('#availability_value').text(doesntExistNoMore + (globalQuantity > 0 ? ' ' + doesntExistNoMoreBut : '')); if (!allowBuyWhenOutOfStock) $('#availability_value').removeClass('label-success').addClass('label-warning'); } Et de reprendre le css du theme 1.6.0.9 : #availability_statut #availability_value.warning_inline { background-color: #fe9126; border-color: #e4752b; text-shadow: 1px 1px #e68322; margin: 0; } Mais rien ne s'affiche pour moi, même en remettant ce qui me semble correspondre au css dans le js : if (!selectedCombination['unavailable']) { $('#availability_value').text(doesntExistNoMore + (globalQuantity > 0 ? ' ' + doesntExistNoMoreBut : '')); if (!allowBuyWhenOutOfStock) $('#availability_value').addClass('warning_inline'); } Savez-vous comment je peux vérifier que je rentre bien dans la condition if (!selectedCombination['unavailable']) ? Peut-on ajouter un texte par exemple à cet endroit pour être sur de bien chercher au bon endroit ? Link to comment Share on other sites More sharing options...
Eolia Posted March 14, 2018 Share Posted March 14, 2018 (edited) Non, ne vous prenez pas la tête, la div n'existe pas si le produit a des déclinaisons: Donc votre smarty doit la supprimer. (ou son parent 'availability_statut', que je ne trouve pas non plus dans la page) Dans mon exemple, j'ai créé cet div sur votre page et tout fonctionne. Trouvez la ligne qui fait un remove/non affichage de availability_statut et commentez-là et tout rentrera dans l'ordre^^ Edited March 14, 2018 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
benbine Posted March 14, 2018 Author Share Posted March 14, 2018 Malheureusement même en commentant tous les $('#availability_statut:visible').hide('slow'); Ça ne change pas l'affichage Link to comment Share on other sites More sharing options...
Eolia Posted March 15, 2018 Share Posted March 15, 2018 Non, vous ne m'avez pas compris... Ce n'est pas dans le js (je ne le vois pas dans le code) et un hide() cache mais ne supprime pas. Vous devez avoir une condition dans le tpl en Smarty avant cette div. Quelque chose qui ressemble à {if.....} et une balise de fermeture {/if} Envoyez votre product.tpl ici svp en fichier joint. Link to comment Share on other sites More sharing options...
benbine Posted March 16, 2018 Author Share Posted March 16, 2018 (edited) Bonsoir Voici : https://pastebin.com/5bNK0sp7 Edited March 16, 2018 by benbine erreur (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted March 18, 2018 Share Posted March 18, 2018 Donc votre tpl n'est pas d'origine ou a été bien bricolé parce que ce n'est pas normal de ne rien avoir dans la premiere condition: Entre le {if ...} et le {else} Donc au pire, mettez dedans ceci: <div id="availability_statut" class="iconed-text" style=display:none;"> <span class="wpicon wpicon-box medium"></span> <span id="availability_value" class="warning_inline"></span> </div> Link to comment Share on other sites More sharing options...
benbine Posted March 19, 2018 Author Share Posted March 19, 2018 Bravo ça fonctionne Merci beaucoup pour votre aide ! Avez-vous un paypal pour que je vous paye une bière ? Link to comment Share on other sites More sharing options...
Eolia Posted March 19, 2018 Share Posted March 19, 2018 Je me doute hein, je ne lâche jamais l'affaire^^ Pas question de Paypal ici, nous sommes sur un forum d'entraide Link to comment Share on other sites More sharing options...
benbine Posted March 19, 2018 Author Share Posted March 19, 2018 Link to comment Share on other sites More sharing options...
luisdsousa Posted July 12, 2018 Share Posted July 12, 2018 Hi! J'ai le même problème de stock. Link to comment Share on other sites More sharing options...
luisdsousa Posted July 12, 2018 Share Posted July 12, 2018 Link to comment Share on other sites More sharing options...
Eolia Posted July 12, 2018 Share Posted July 12, 2018 DONC PROBLEME DE THEME Link to comment Share on other sites More sharing options...
luisdsousa Posted July 13, 2018 Share Posted July 13, 2018 J'utilise la version prestashop 1.6.1.1. Comment puis-je résoudre ce problème?Merci beaucoup Link to comment Share on other sites More sharing options...
Eolia Posted July 13, 2018 Share Posted July 13, 2018 Contactez l'auteur du thème car le problème vient de là. 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