- Posts: 262
- Thank you received: 9
Cacher le stock pour une catégorie donnée
Le forum donne des solutions pour ne pas afficher l'information relative au stock. Mais est-il possible de conditionner cela à une catégorie donnée ?
Merci,
Laurent
Please Log in or Create an account to join the conversation.
Il faudrait essayer de changer la ligne:
echo '<span class="hikashop_product_stock_count">'.JText::sprintf('X_ITEMS_IN_STOCK',$this->row->product_quantity).'</span><br/>';
en:
if($this->row->category_id==XXX) echo '<span class="hikashop_product_stock_count">'.JText::sprintf('X_ITEMS_IN_STOCK',$this->row->product_quantity).'</span><br/>';
dans le fichier quantity de la vue product via le menu Affichage->Vues.
Please Log in or Create an account to join the conversation.
if($this->row->category_id!=20) echo '<span class="hikashop_product_stock_count">'.JText::sprintf('X_ITEMS_IN_STOCK',$this->row->product_quantity).'</span><br/>';
Cela semble fonctionner très bien. Encore bravo pour la vitesse de la réponse et la précision.
Merci
PS : il faudrait regrouper toutes ces "astuces" dans un manuel ou un wiki non ? La recherche dans le forum n'est pas si facile (pourtant je le fais avant en français et en anglais).
Bonne journée,
Laurent
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Désoler de déterrer un topic si vieux, mais je voudrais effectuer exactement la même chose à un détail prêt c'est que je voudrais l'appliquer à une catégorie et ses héritiers est ce possible?
En travaillant avec le code si dessus :
Cordialement
Please Log in or Create an account to join the conversation.
Vous pouvez utiliser le in_array pour tester plusieurs catégories en même temps.
Le plus simple est à mon avis de mettre la liste dans le array, surtout si vos catégories ne vont pas changer spécialement avec le temps.
Cordialement,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Please Log in or Create an account to join the conversation.
Merci pour votre réactivité, effectivement la solution la plus simple serait de préciser chaque catégorie.
Est ce vraiment plus complexe d'appliquer à une catégorie et ces enfants (Je serais mené de temps en temps à rajouter des catégories).
Vous me conseillez de faire toute suite le array et de faire la manipulation d'ajouts des nouvelles catégories au fur et à mesure?
Deuxième petite question:
Ou dois-je appliquer le code pour effacer le "NO_STOCK" sur la liste des produits, et non sur la page du produit?
Merci d'avance.
Cordialement.
Please Log in or Create an account to join the conversation.
- Posts: 12953
- Thank you received: 1778
1.
Cette solution serai la plus rapide, et ajouter l'ID d'une nouvelle catégorie enfant ne vous prendra pas beaucoup de temps.Vous me conseillez de faire toute suite le array et de faire la manipulation d'ajouts des nouvelles catégories au fur et à mesure?
2.
Il faudra appliquer ce code via cette ligne du fichier "quantity" de la vue "product" de votre template de front-end via "Hikashop->Affichage->Vues" :
Please Log in or Create an account to join the conversation.
J'ai appliquer le in_array dans les catégorie que je voulais masquer le "NO_STOCK"
Le problème c'est que le "NO_STOCK" est bien masqué sur la description du produit mais pas sur la page de la liste des produits.
Je vous joins les photos ci-dessous.
Please Log in or Create an account to join the conversation.
"NO_STOCK" peut également être affiché par la vue "add_to_cart_listing".
Vous devez donc mettre le même code dans cette vue pour cacher ce texte (qui n'affiche pas le stock mais indique lorsqu'il n'y en a plus).
Cordialement,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Please Log in or Create an account to join the conversation.
Je ne pense pas que le NO_STOCK pour la liste des produits soit gérer par "add_to_cart_listing" en testant et supprimant le "NO_STOCK" en " " l’écho s'affiche toujours sur la liste des produits à l'inverse quand j'effectue cette manipulation sur la commande de la vue "quantity" l’écho ne s'affiche pas sur la liste des produits ainsi que sur la description du produit.
Le soucis est dès que j'insère ma commande
Le "NO_STOCK" disparaît bien dans la description du produit mais pas sur ma liste de produit...
Cordialement
Please Log in or Create an account to join the conversation.
En fait oui, c'est tout à fait logique.
" $this->row->category_id " n'est accessible que lorsque vous êtes dans la page produit.
C'est bien la vue "quantity" qui est appelée dans votre listing mais à ce moment là, on ne peut pas accéder à la variable "category_id".
Par contre vous avez la variable " $this->row->categories " qui se trouve être un tableau.
Je vous recommande d'utiliser " var_dump() " afin de connaitre le contenu (ou la présence) d'une variable ; vous aidant ainsi à faire votre modification de vue.
Cordialement,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Please Log in or Create an account to join the conversation.
Merci pour votre réponses,
En appliquant le code ci-dessous le var_dump me retourne : NULL
J'ai l'impression que il y aucune db identique appeler sur la page produit et sur la liste des produits....
Est-il compliqué d'appeler "category_id" sur la liste des produits ?
Je ne vois pas comment je pourrais m'en sortir ...
Merci pour votre aide.
Cordialement
Please Log in or Create an account to join the conversation.
Peut être est-ce parce que vous êtes sur une ancienne version d'HikaShop, ou qu'avec certaines combinaison d'option cette variable n'est pas initialisée.
Mais si vous voulez connaitre la catégorie courante sur un listing de produit c'est $this->element que vous voulez utiliser. Elle contient différents attributs dont category_id qui est l'id de la catégorie courante.
Mais bon, vous n'avez pas vraiment besoin de nous pour trouver cela. Sur n'importe quelle vue, si vous faites un var_dump de $this vous obtiendrez la liste de toutes les variables disponibles.
Please Log in or Create an account to join the conversation.
Oui bien sûr, mais quand je fait un
Cordialement
Please Log in or Create an account to join the conversation.
En fait element est utilisé dans les listing et row dans les page produit.
Donc utilisez ceci pour les listings:
Please Log in or Create an account to join the conversation.
Voilà, parfait problème résolu, il suffisait d'appeler element pour le listing et row pour le produit.
Merci pour votre aide et votre réactivité.
Please Log in or Create an account to join the conversation.