- Posts: 15
- Thank you received: 1
Affichage de prix dans liste 0 € quand qté mini >1
14 years 2 months ago #58087
by enzo24
Affichage de prix dans liste 0 € quand qté mini >1 was created by enzo24
Bonjour,
J'ai mise en place un champ personnalisé comme indiqué dans le post : www.hikashop.com/fr/forum/5-support-en-f...e-prix-unitaire.html
Cela fonctionne, par contre j'ai un problème de prix à l'unité.
Quand je mets dans produit -> prix -> quantité minimum 1, le prix à l'unité (carton de 6) s'affiche correctement, mais si je mets la quantité minimum à 2, alors j'ai un prix affiché de 0€ l'unité. Par contre, si je passe commande tout va bien, il calcule correctement le prix et n'autorise pas de commander qu'un seul carton. Le probleme est donc dans l'affichage du produit dans la liste de la catégorie. Mais ou ?
J'aimerais aussi savoir comment faire pour que Hikashop n'affiche pas 'l'unité' pour les produits en carton de 6 mais plutôt 'le carton de 6'.
Tout mes produits ne sont pas en carton de 6, donc il faut une reconnaissance de la catégorie du produit... il y a quelque chose de prévu pour cela, ou il faut modifier le code ?
Merci pour votre aide.
J'ai mise en place un champ personnalisé comme indiqué dans le post : www.hikashop.com/fr/forum/5-support-en-f...e-prix-unitaire.html
Cela fonctionne, par contre j'ai un problème de prix à l'unité.
Quand je mets dans produit -> prix -> quantité minimum 1, le prix à l'unité (carton de 6) s'affiche correctement, mais si je mets la quantité minimum à 2, alors j'ai un prix affiché de 0€ l'unité. Par contre, si je passe commande tout va bien, il calcule correctement le prix et n'autorise pas de commander qu'un seul carton. Le probleme est donc dans l'affichage du produit dans la liste de la catégorie. Mais ou ?
J'aimerais aussi savoir comment faire pour que Hikashop n'affiche pas 'l'unité' pour les produits en carton de 6 mais plutôt 'le carton de 6'.
Tout mes produits ne sont pas en carton de 6, donc il faut une reconnaissance de la catégorie du produit... il y a quelque chose de prévu pour cela, ou il faut modifier le code ?
Merci pour votre aide.
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58137
by nicolas
Replied by nicolas on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
Bonjour,
Il faut que vous spécifiez un prix pour une quantité de 1, même si il ne sera pas utilisé pour que cela fonctionne correctement.
Si vous souhaitez ne pas l'afficher, il suffit de rajouter ce CSS:
.hikashop_product_price_for_at_least_1{ display: none; }
Pour votre deuxième question, la question "I sell packed products, how can I change "each" text in the product page ?" de notre FAQ répond exactement à ce besoin:
www.hikashop.com/fr/support/documentation/faq.html#translation
Il faut que vous spécifiez un prix pour une quantité de 1, même si il ne sera pas utilisé pour que cela fonctionne correctement.
Si vous souhaitez ne pas l'afficher, il suffit de rajouter ce CSS:
.hikashop_product_price_for_at_least_1{ display: none; }
Pour votre deuxième question, la question "I sell packed products, how can I change "each" text in the product page ?" de notre FAQ répond exactement à ce besoin:
www.hikashop.com/fr/support/documentation/faq.html#translation
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58167
by enzo24
Replied by enzo24 on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
MErci pour votre aide !
J'ai mis votre code au CSS, mais en fait il fallait mettre .hikashop_product_price_1 {display: none;}
Cela enlève bien le prix mais laisse "l'unité" affiché. Je suppose qu'il faut modifier la vue, mais ou ?
En lisant le FAQ j'ai bien compris, mais peut-on du coup faire plusieurs type d'emballage et le spécifier par produit ?
JE vais voir tout celà ce soir a mon retour,
Un GRAND merci pour votre réponse
J'ai mis votre code au CSS, mais en fait il fallait mettre .hikashop_product_price_1 {display: none;}
Cela enlève bien le prix mais laisse "l'unité" affiché. Je suppose qu'il faut modifier la vue, mais ou ?
En lisant le FAQ j'ai bien compris, mais peut-on du coup faire plusieurs type d'emballage et le spécifier par produit ?
JE vais voir tout celà ce soir a mon retour,
Un GRAND merci pour votre réponse
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58251
by nicolas
Replied by nicolas on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
Oui c'est le principe de ce qui est expliqué dans la FAQ. Vous aurez un champs pour entrer le type d'emballage sur chaque produit et avec la modification du code, la valeur qui aura été sélectionnée/entrée pour le produit sera utilisée à la place de l'unité.
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58369
by enzo24
Replied by enzo24 on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
J'ai porté les modifications du FAQ pour modifier l'affichage unitaire (conditionnement) avec le code :
In the menu Display -> Views, edit the product / listing_price.php file.
In this file, replace:
By:
dans l'affichage listing des produits j'ai l'erreur suivant :
Warning: Invalid argument supplied for foreach() in /home/imagvin/www/templates/imagvin/html/com_hikashop/product/listing_price.php on line 121
Voici la ligne 121 :
Que faut-il y modifier ?
In the menu Display -> Views, edit the product / listing_price.php file.
In this file, replace:
Code:
echo JText;;_('PER_UNIT')
By:
Code:
$sale_method = JText::_('PER_UNIT') ;
foreach($this->fields as $fieldName => $oneExtraField) {
if(!empty($this->element->$fieldName)){
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'pack'){
$sale_method = JText::_('PER_PACK');
}
}
}
echo $sale_method;
dans l'affichage listing des produits j'ai l'erreur suivant :
Warning: Invalid argument supplied for foreach() in /home/imagvin/www/templates/imagvin/html/com_hikashop/product/listing_price.php on line 121
Voici la ligne 121 :
Code:
foreach($this->fields as $fieldName => $oneExtraField) {
Que faut-il y modifier ?
Please Log in or Create an account to join the conversation.
14 years 2 months ago - 14 years 2 months ago #58390
by enzo24
Replied by enzo24 on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
En me creusant la tête, je me suis aperçu que l'exemple du FAQ utilisait 'pack' et 'PER_PACK', alors que moi non, j'ai utilisé d'autres termes (plusieurs conditionnements...)
Voici mon modif du fichier
Du coup, rien ne va plus, message erreur :
Parse error: syntax error, unexpected $end in /home/imagvin/www/templates/imagvin/html/com_hikashop/product/listing_price.php on line 184
Line 184 est la toute derniere ligne... l'erreur c'est surement ma modif.
Il faut des else après les if pour chaque valeur ?
De plus j'utilise des espaces dans le champs $fieldName (dans le FAQ ou il y a 'pack') Ca pose probleme ?
Quel est la syntaxe correcte a utiliser? (Je ne suis pas un crack en PHP!)
Merci pour votre patience !!
Voici mon modif du fichier
Code:
//EDIT VINCENT POUR DIFFERENTS CONDITIONNEMENTS // echo JText::_('PER_UNIT');
$sale_method = JText::_('PER_UNIT') ;
foreach($this->fields as $fieldName => $oneExtraField) {
if(!empty($this->element->$fieldName)){
// Conditionnement Carton de 6 bouteilles
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Carton de 6 bouteilles'){
$sale_method = JText::_('PER_CARTON_6_BTL');
// Conditionnement Bag in box 5L
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Bag in box 5L'){
$sale_method = JText::_('PER_BIB_5L');
// Conditionnement Bouteille de 75 cls.
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Bouteille de 75 cls.'){
$sale_method = JText::_('PER_75CL_BTL');
// Conditionnement Magnum
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Magnum'){
$sale_method = JText::_('PER_MAGNUM');
// Conditionnement Bag in Box 10L
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Bag in Box 10L'){
$sale_method = JText::_('PER_BIB_10L');
}
}
}
echo $sale_method;
//FIN MODIF VINCENT
Du coup, rien ne va plus, message erreur :
Parse error: syntax error, unexpected $end in /home/imagvin/www/templates/imagvin/html/com_hikashop/product/listing_price.php on line 184
Line 184 est la toute derniere ligne... l'erreur c'est surement ma modif.
Il faut des else après les if pour chaque valeur ?
De plus j'utilise des espaces dans le champs $fieldName (dans le FAQ ou il y a 'pack') Ca pose probleme ?
Quel est la syntaxe correcte a utiliser? (Je ne suis pas un crack en PHP!)
Merci pour votre patience !!
Last edit: 14 years 2 months ago by enzo24.
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58430
by nicolas
Replied by nicolas on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
Vous y etes presque.
En PHP quand vous ouvrez une {, il faut ensuite la fermer avec }.
donc :
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Magnum'){
$sale_method = JText::_('PER_MAGNUM');
devrait etre:
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Magnum'){
$sale_method = JText::_('PER_MAGNUM');
}
et pareil pour les autres, sauf pour le dernier qui a déjà son } just avant le } du if(!empty($this->element->$fieldName)){ et le } du foreach($this->fields as $fieldName => $oneExtraField) {
En PHP quand vous ouvrez une {, il faut ensuite la fermer avec }.
donc :
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Magnum'){
$sale_method = JText::_('PER_MAGNUM');
devrait etre:
if( $this->fieldsClass->show($oneExtraField,$this->element->$fieldName) == 'Magnum'){
$sale_method = JText::_('PER_MAGNUM');
}
et pareil pour les autres, sauf pour le dernier qui a déjà son } just avant le } du if(!empty($this->element->$fieldName)){ et le } du foreach($this->fields as $fieldName => $oneExtraField) {
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58445
by enzo24
Replied by enzo24 on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
AH ! Effectivement !, ça va mieux 
Maintenant j'ai le message :
Warning: Invalid argument supplied for foreach() in /home/imagvin/www/templates/imagvin/html/com_hikashop/product/listing_price.php on line 122
C'est mieux, au moins je lui parles proprement au PHP, c'est juste qu'il n'est pas d'accord avec ce que je dis !
Voici la ligne en question :
Je te remercie réelement pour ta patience.
Maintenant j'ai le message :
Warning: Invalid argument supplied for foreach() in /home/imagvin/www/templates/imagvin/html/com_hikashop/product/listing_price.php on line 122
C'est mieux, au moins je lui parles proprement au PHP, c'est juste qu'il n'est pas d'accord avec ce que je dis !
Voici la ligne en question :
Code:
foreach($this->fields as $fieldName => $oneExtraField) {
Je te remercie réelement pour ta patience.
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58463
by nicolas
Replied by nicolas on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
Ajoutez voir le code:
$fieldsClass = hikashop_get('class.field');
$this->fields = $fieldsClass->getFields('frontcomp',@$this->row,'product','checkout&task=state');
avant votre code et cela devrait aider
$fieldsClass = hikashop_get('class.field');
$this->fields = $fieldsClass->getFields('frontcomp',@$this->row,'product','checkout&task=state');
avant votre code et cela devrait aider
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58472
by enzo24
Replied by enzo24 on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
Je n'ai plus de message d'erreur, par contre, dans le listing des produits de la catégorie il affiche toujours le prix comme avant :
15€ l'unité
au lieu de 15€ le bag in box de 5L.

Par contre, dans le détail du produit, c'est affiché correctement('15€ le bag in box de 5L')
Je suppose qu'il faut que je fasse la meme chose sur un autre fichier... j'aurais pensé a product/listing_img_title.php, mais il fait bien appel à listing_price via l'appel :
Ou est l'erreur ? SI besoin, je vous donne un accès au site.
15€ l'unité
au lieu de 15€ le bag in box de 5L.

Par contre, dans le détail du produit, c'est affiché correctement('15€ le bag in box de 5L')
Je suppose qu'il faut que je fasse la meme chose sur un autre fichier... j'aurais pensé a product/listing_img_title.php, mais il fait bien appel à listing_price via l'appel :
Code:
$this->setLayout('listing_price');
Ou est l'erreur ? SI besoin, je vous donne un accès au site.
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58517
by nicolas
Replied by nicolas on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
Il faut remplacer :
$this->element->$fieldName
par:
$this->row->$fieldName
dans votre code pour que cela fonctionne pour les listings de produits.
$this->element->$fieldName
par:
$this->row->$fieldName
dans votre code pour que cela fonctionne pour les listings de produits.
The following user(s) said Thank You: enzo24
Please Log in or Create an account to join the conversation.
14 years 2 months ago #58523
by enzo24
Replied by enzo24 on topic Re: Affichage de prix dans liste 0 € quand qté mini >1
This is PERFECT ! Thank you VERY much
Please Log in or Create an account to join the conversation.
Time to create page: 0.250 seconds