Un champ spécifique par étape de passage en caisse
13 years 10 months ago #74851
by steeeve
Un champ spécifique par étape de passage en caisse was created by steeeve
Bonjour,
J'ai créé 2 champs personnalisés de type "commande".
J'ajoute un champ dans une étape du passage en caisse et mes deux champs personnalisés apparaissent dedans.
J'ajoute un second champ dans mes étapes de passage en caisse et c'est le même dans mes deux étape.
J'aimerais savoir s'il existe une façon de placer un champ personnalisé de type "commande" dans une étape spécifique du passage en caisse et un autre champ personnalisé, lui aussi de type "commande" mais dans une autre étape du passage en caisse?
Deux champs, deux étapes.
Merci
Steve Gosselin
Château Fort Médias
J'ai créé 2 champs personnalisés de type "commande".
J'ajoute un champ dans une étape du passage en caisse et mes deux champs personnalisés apparaissent dedans.
J'ajoute un second champ dans mes étapes de passage en caisse et c'est le même dans mes deux étape.
J'aimerais savoir s'il existe une façon de placer un champ personnalisé de type "commande" dans une étape spécifique du passage en caisse et un autre champ personnalisé, lui aussi de type "commande" mais dans une autre étape du passage en caisse?
Deux champs, deux étapes.
Merci
Steve Gosselin
Château Fort Médias
Please Log in or Create an account to join the conversation.
13 years 10 months ago #74980
by Xavier
Replied by Xavier on topic Re: Un champ spécifique par étape de passage en caisse
Bonjour,
Il faut modifier la vue "checkout / custom_fields" dans HikaShop > Display > Views et ajouter une condition sur $this->step et $fieldName dans le foreach, par exemple:
Il faut modifier la vue "checkout / custom_fields" dans HikaShop > Display > Views et ajouter une condition sur $this->step et $fieldName dans le foreach, par exemple:
Code:
if($this->step == 0 && $fieldName == 'maField1'){
//dislay the first custom field
}else if($this->step == 1 && $fieldName == 'maField2'){
//dislay the second custom field
}
The following user(s) said Thank You: steeeve
Please Log in or Create an account to join the conversation.
13 years 10 months ago #75093
by steeeve
Replied by steeeve on topic Re: Un champ spécifique par étape de passage en caisse
Merci pour le service incroyable que vous donnez!
Ça fonctionne à merveille

Steve Gosselin
Château Fort Médias
Ça fonctionne à merveille
Steve Gosselin
Château Fort Médias
Please Log in or Create an account to join the conversation.
13 years 10 months ago - 13 years 10 months ago #76802
by steeeve
Replied by steeeve on topic Un champ spécifique par étape de passage en caisse
Last edit: 13 years 10 months ago by steeeve.
Please Log in or Create an account to join the conversation.
13 years 10 months ago #76905
by Xavier
Replied by Xavier on topic Un champ spécifique par étape de passage en caisse
Bonjour,
Pour personnaliser le nom des étapes, vous pouvez éditer la vue "checkout / step" et ajoutez le code suivant:
Après:
Pour personnaliser le nom des étapes, vous pouvez éditer la vue "checkout / step" et ajoutez le code suivant:
Code:
if($this->step == 0) $step_name = 'custom_value_1';
if($this->step == 1) $step_name = 'custom_value_2';
if($this->step == 2) $step_name = 'custom_value_3';
Code:
$step_name = reset($step);
Please Log in or Create an account to join the conversation.
13 years 10 months ago #77140
by steeeve
Replied by steeeve on topic Un champ spécifique par étape de passage en caisse
J'ai essayé quelque chose d'inspirer de ton conseil et le tout fonctionne.
J'ai enlevé le reset();, je ne comprenais pas pourquoi il était là. J'ai incrémenté mes valeurs de boucle en fonction du $k pour les appeler dans l'entête.
Je n'ai pas réussis à faire fonctionner ton truc...
foreach($this->steps as $k => $step){
$step=explode('_',trim($step));
if($k == 0) $step_name[$k] = 'Philosophie';
if($k == 1) $step_name[$k] = 'Entreprise';
if($k == 2) $step_name[$k] = 'Condition';
if($k == 3) $step_name[$k] = 'Inscription';
if($k == 4) $step_name[$k] = 'Paiement';
//$step_name = reset($step);
et un peu plus bas...
<?php if($k==$this->step || empty($link)){ ?>
<?php echo JText::_($step_name[$k]);?>
<?php }else{ ?>
<a href="<?php echo hikashop_completeLink('checkout&task=step&step='.$k.$url_itemid);?>">
<?php echo JText::_($step_name[$k]);?>
</a>
<?php } ?>
J'ai enlevé le reset();, je ne comprenais pas pourquoi il était là. J'ai incrémenté mes valeurs de boucle en fonction du $k pour les appeler dans l'entête.
Je n'ai pas réussis à faire fonctionner ton truc...
foreach($this->steps as $k => $step){
$step=explode('_',trim($step));
if($k == 0) $step_name[$k] = 'Philosophie';
if($k == 1) $step_name[$k] = 'Entreprise';
if($k == 2) $step_name[$k] = 'Condition';
if($k == 3) $step_name[$k] = 'Inscription';
if($k == 4) $step_name[$k] = 'Paiement';
//$step_name = reset($step);
et un peu plus bas...
<?php if($k==$this->step || empty($link)){ ?>
<?php echo JText::_($step_name[$k]);?>
<?php }else{ ?>
<a href="<?php echo hikashop_completeLink('checkout&task=step&step='.$k.$url_itemid);?>">
<?php echo JText::_($step_name[$k]);?>
</a>
<?php } ?>
The following user(s) said Thank You: Jerome
Please Log in or Create an account to join the conversation.
13 years 10 months ago #78877
by steeeve
Replied by steeeve on topic Un champ spécifique par étape de passage en caisse
Re-bonjour!
Dans le fil du même projet, nous avons rencontré un problème quant à la récupération des valeurs dans les champs personnalisés. Lorsque nous recevons un courriel de notification concernant une vente, nous récupérons seulement les champs personnalisés de l'étape #4.
Auriez-vous une idée de piste de solution?
Merci d'avance.
Dans le fil du même projet, nous avons rencontré un problème quant à la récupération des valeurs dans les champs personnalisés. Lorsque nous recevons un courriel de notification concernant une vente, nous récupérons seulement les champs personnalisés de l'étape #4.
Code:
$step=explode('_',trim($step));
if($k == 0) $step_name[$k] = 'Inscription';
if($k == 1) $step_name[$k] = 'Contrat';
if($k == 2) $step_name[$k] = 'Entreprise';
if($k == 3) $step_name[$k] = 'Clientèle & Photos';
if($k == 4) $step_name[$k] = 'Produits & Services';
if($k == 5) $step_name[$k] = 'Terminer';
Auriez-vous une idée de piste de solution?
Merci d'avance.
Please Log in or Create an account to join the conversation.
13 years 10 months ago #78927
by Xavier
Replied by Xavier on topic Un champ spécifique par étape de passage en caisse
Bonjour,
Une solution à ce problème pourrait être de stocker les données en session de la première étape où sont affichés les champs personnalisés, puis les récupérer à l'étape 4 pour les ajouter de manière cachées.
Je pense que ceci devrait permettre de récupérer toutes les valeurs de ces champs.
Une solution à ce problème pourrait être de stocker les données en session de la première étape où sont affichés les champs personnalisés, puis les récupérer à l'étape 4 pour les ajouter de manière cachées.
Je pense que ceci devrait permettre de récupérer toutes les valeurs de ces champs.
Please Log in or Create an account to join the conversation.
13 years 10 months ago - 13 years 10 months ago #78990
by steeeve
Replied by steeeve on topic Un champ spécifique par étape de passage en caisse
Je connais bien les superGlobales mais, pourrais-tu me donner un peu plus d'indications s.v.p. quant aux fichiers à modifier?
Last edit: 13 years 10 months ago by steeeve.
Please Log in or Create an account to join the conversation.
13 years 10 months ago #79061
by Jerome
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Replied by Jerome on topic Un champ spécifique par étape de passage en caisse
Bonjour,
Je pense que la solution serait trop complexe à mettre en place.
Il faut alors surcharger toute la gestion des custom fields et même si cela est faisable et que nous l'ayons déjà fait, il n'en reste pas moins d'un niveau assez complexe.
Le mieux serait à mon avis de toujours afficher les custom fields dans la page web mais de placer les custom fields qu'on ne soit pas voir dans un div avec un "display:none".
Ainsi, la gestion des custom fields sera toujours la même, toutes les données seront toujours passées dans le POST et stockées dans la session.
Cordialement,
Je pense que la solution serait trop complexe à mettre en place.
Il faut alors surcharger toute la gestion des custom fields et même si cela est faisable et que nous l'ayons déjà fait, il n'en reste pas moins d'un niveau assez complexe.
Le mieux serait à mon avis de toujours afficher les custom fields dans la page web mais de placer les custom fields qu'on ne soit pas voir dans un div avec un "display:none".
Ainsi, la gestion des custom fields sera toujours la même, toutes les données seront toujours passées dans le POST et stockées dans la session.
Cordialement,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Please Log in or Create an account to join the conversation.
13 years 10 months ago #79083
by steeeve
Replied by steeeve on topic Un champ spécifique par étape de passage en caisse
Nous avons mis tous les champs dans la même page en attendant.
Je vais retravailler le dossier dans les semaines à suivre et je posterai éventuellement la solution.
Merci.
Je vais retravailler le dossier dans les semaines à suivre et je posterai éventuellement la solution.
Merci.
Please Log in or Create an account to join the conversation.
Time to create page: 0.234 seconds