Jump to content

Comment changer Disponibilité d'un produit sur product.tpl


Recommended Posts

Bonjour à tous, je poste ce sujet car cela fait 2 jours que je suis bloqué sur mon problème, maintenant je tourne en rond..

J'aimerais modifier les phrases de disponibilité d'un produit sur la page product.tpl. Je sais que l'on peut éditer ces textes dans la fichiers produits en modifiant : 'Message quand en stock' et 'Message quand hors-stock mais pouvant être commandée chez le fournisseur', mais cette solution ne me convient pas car j'aimerais des texte unique qui soit visible sur l'ensemble de la boutique.

Il faut que la Disponibilité affiche :

  • En stock
  • Sur commande
  • Stock épuisé

 

J'ai donc édité la partie du code de product.tpl de cette manière :

			<!-- availability -->
			<p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) OR ($product->quantity > 0 && !$product->available_now) OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
				<span id="availability_label">{l s='Availability:'}</span>
				<span id="availability_value"{if $product->quantity <= 0}{if $allow_oosp} class="warning_inline2"{else} class="warning_inline"{/if}{/if}>{if $product->quantity <= 0}{if $allow_oosp}{l s='On order'}{else}{l s='This product is no longer in stock'}{/if}{else}{l s='Available'}{/if}</span>				
			</p>

Mon problème actuel est que :
 

Le script utilise toujours le texte présent dans les 2 champs 'Message quand en stock' alors que j'ai pourtant enlevé la ligne de code faisant appel à ce texte c'est à dire {$product->available_now} et {$product->available_later}. La ligne Disponibilité ne s'affiche pas non plus quand aucuns texte n'est renséigné dans les 2 champs 'Message quand en stock', hors j'aimerais qu'elle soit visible quelque soit le remplissage de ces champs.

Je pense qu'il manque des modification dans product.php ou product.js, pouvez-vous s'il vous plait m'aider à finir mon idée ?

Edited by Denys06 (see edit history)
Link to comment
Share on other sites

Bonjour Denys, n'oubliez pas de regénérer vos TPL, vos modifications peuvent ne pas apparaître à cause de cela car à priori, si vous enlever le code, il ne devrait plus être visible sur le frontoffice.

 

Sinon, pour changer les textes, vous avez aussi la partie traduction depuis le backoffice.

Link to comment
Share on other sites

Bonjour Djolhan et merci pour ta réponse,

 

J'ai bien actualisé le cache de la boutique, mais le site affiche toujours le message que j'ai indiqué dans 'Message quand en stock' malgré le code que j'ai correctement remplacé ci-dessus. C'est pour cette raison que je me suis permis de poster ce topic :( je suis bloqué, il doit y avoir d'autres lignes de code à modifiées dont je ne connais pas l'existence. J'ai besoin de votre aide..

Link to comment
Share on other sites

Tu vas dans Paramètres avancés  > Performances > Forcer la compilation à chaque appel

 

Bien entendu, tu remettras ensuite l'option "Recompiler les fichiers de templates si ils ont été mis à jour"

C'est possible qu'un bug empèche d'actualiser tes TPL.

Link to comment
Share on other sites

Ma boutique est multilingue! J'ai mis : {l s='Available'} } et {l s='On order'} mais si je met à la place n'importe quel autre mot "en dur" : TEST ou SUR COMMAAANDE, cela affiche toujours les textes renseignés dans la fiche des produits. J'en conclu qu'une autre page dois être éditer pour que ma modification fonctionne, mais laquelle et comment ?

Link to comment
Share on other sites

Ça ressemble à des problèmes de cash tout de même.

Essayes de vider le cash de ton navigateur ou d'en changer (un qui n'est jamais allé sur ton site).

 

J'ai remarqué par exemple que Safari a tendance à être très embêtant à rafraîchir

Link to comment
Share on other sites

Djolhan je te remercie de l'intérêt que tu porte à mon soucis (tu est le seul :))
J'ai supprimer tous le cache de mon ordinateur et changé de navigateur, cela ne change rien, ce n'est pas un problème de cache mais bien une partie du code que j'ai modifié qui doit être appelé ailleurs.

J'ai modifié mon code dans product.tpl , j'ai enlevé toutes les translations en mettant rien à la place :

<span id="availability_value"{if $product->quantity <= 0}{if $allow_oosp} class="warning_inline2"{else} class="warning_inline"{/if}{/if}>{if $product->quantity <= 0}{if $allow_oosp}{else}{/if}{else}{/if}</span>

Cela n'a rien changé, j'ai toujours les messages modifiable dans la fiche produit : 'Message quand en stock', 'Message quand hors-stock mais pouvant être commandée chez le fournisseur' et 'Ce produit n'est plus en stock' qui s'affiche. Par contre si je supprime complètement cette ligne de code, alors plus rien ne s'affiche, il ne reste plus que Disponibilité : avec rien derrière.

Quelqu'un saurait quoi faire ?

Edited by Denys06 (see edit history)
Link to comment
Share on other sites

Djolhan, mon but est d'ajouter une fonctionnalité (voir mon premier post) qui n'est pas incluse dans le code d'origine, changer la traduction ne changera rien sur ma page. Je te remercie toutefois du temps que tu à passer pour me répondre.

 

Si quelqu'un à une idée de comment faire je suis toujours preneur de la solution, merci d'avance.

Edited by Denys06 (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Bonjour, oui voici le code que j'ai réussit à faire fonctionner sur ma boutique pour product.tpl
 

			<p id="availability_statut">
				<span id="availability_label">{l s='Availability:'}</span>
				<span id="availability_value"{if $product->quantity <= 0}{if $allow_oosp} class="warning_inline2" title="{l s='On Backorder Explanation'}" style="cursor:help;"{else} class="warning_inline"{/if}{/if}>{if $product->quantity <= 0}{if $allow_oosp}{l s='On Backorder'}{else}{l s='This product is no longer in stock'}{/if}{else}{l s='Available'}{/if}</span>				
			</p>

Je ne suis pas sur que ça fonctionna chez toi, il faut peut être un peut l'adapter ;)

Pour ma part je continue d'améliorer cette modification, je cherche maintenant un moyen d'inclure une traduction du type {l s='Availability:'} dans du Javascript. Si quelqu'un sait comment faire je suis preneur, car actuellement ma fonction javascript n'indique pas la traduction mais simplement {l s='Availability:'}...

Bon courage

Edited by Denys06 (see edit history)
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...