Skip to main content

Onglet Adresse de facturation

More
13 years 10 months ago #78778 by showbizz
rBonjour,

Est-il possible apres avoir fini ma commande et avoir appuyer sur le bouton "Terminer ma commande" arriver sur la page de validation des achats et que l'onglet adresse de facturation s'ouvre directement avant de faire quoi que ce soit pour que le client verifie et remplisse les derniers champs deja rempli au prealable.

Merci de me tenir au courant
Cordialement

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #78816 by Jerome
Bonjour,

HikaShop possède déjà une fonctionnalité qui ouvre automatiquement la "popup" d'édition d'addresse lorsque l'utilisateur ne possède aucune addresse.
Il est possible, via une modification de vue, de rajouter du code javascript afin de rendre cette ouverture de popup systématique.

Cordialement,

Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #78819 by showbizz
Merci pour votre retour. Un peu novice en la matiere, seriez vous comment faire ?

Merci

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #78925 by Xavier
Bonjour,

Il vous faudra éditer la vue "checkout / address_view" et réutiliser (en le modifiant bien entendu) le code:
Code:
rel="{handler: 'iframe', size: {x: 450, y: 480}}" href="<?php echo hikashop_completeLink('address&redirect=checkout&task=add&step='.$this->step.'&type='.$this->type.$url_itemid,true);?>" onclick="return hikashopEditAddress(this,<?php echo (int)$same_address; ?>,true);"

Afin que la popup soit affichée à l'ouverture de la page et pas sur un "onClick" comme dans ce code.

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago - 13 years 10 months ago #78974 by showbizz
Merci pour votre retour.
J ai beau changé la ligne que vs m avez donné mais rien n y fait :S
Voici ce que j'ai de base :

Code supprimé par un modérateur.
Merci de ne pas poster un fichier entier d'HikaShop


ET VOICI CE QUE JE METS:
Code:
<?php global $Itemid; $url_itemid = ''; if(!empty($Itemid)) { $url_itemid = '&Itemid='.$Itemid; } $same_address = false; if($this->shipping_address == $this->billing_address){ $same_address = true; } if(!empty($this->addresses)) { ?> <table class="table"> <?php $varname = $this->type.'_address'; if(empty($this->$varname) || !isset($this->addresses[$this->$varname])){ $first = reset($this->addresses); $this->$varname = $first->address_id; $app = JFactory::getApplication(); $app->setUserState(HIKASHOP_COMPONENT.'.'.$varname,0 ); } $done = false; $nb_addresses = count($this->addresses); $k = 0; foreach($this->addresses as $address){ $this->address =& $address; $checked = ''; $class = ''; if(($this->$varname == $address->address_id) || (empty($address->address_id) && !$done)){ $checked = 'checked="checked"'; $done = true; } if($this->config->get('auto_submit_methods',1) && empty($checked)){ $checked.=' onclick="this.form.submit(); return false;"'; } ?> <tr class="row<?php echo $k.$class; ?>"> <?php if($nb_addresses > 1) { ?> <td> <input id="hikashop_checkout_<?php echo $this->type;?>_address_radio_<?php echo $address->address_id;?>" class="hikashop_checkout_<?php echo $this->type;?>_address_radio" type="radio" name="hikashop_address_<?php echo $this->type;?>" value="<?php echo $address->address_id;?>" <?php echo $checked; ?> /> </td> <?php } ?> <td> <?php if($nb_addresses == 1 ) { ?> <input id="hikashop_checkout_<?php echo $this->type;?>_address_radio_<?php echo $address->address_id;?>" type="hidden" name="hikashop_address_<?php echo $this->type;?>" value="<?php echo $address->address_id;?>" /> <?php } else { ?> <label for="hikashop_checkout_<?php echo $this->type;?>_address_radio_<?php echo $address->address_id;?>" style="cursor:pointer;"> <?php } ?> <span class="hikashop_checkout_<?php echo $this->type;?>_address_info"> <?php $params = null; $js = ''; $html = hikashop_getLayout('address','address_template',$params,$js); foreach($this->fields as $field){ $fieldname = $field->field_namekey; $html = str_replace('{'.$fieldname.'}',$this->fieldsClass->show($field,$address->$fieldname),$html); } echo str_replace("\n","<br/>\n",str_replace("\n\n","\n", trim(preg_replace('#{(?:(?!}).)*}#i','',$html)))); ?> </span> <?php if($nb_addresses > 1) { ?> </label> <?php } ?> </td> <td> <span class="hikashop_checkout_<?php echo $this->type;?>_address_buttons"> <?php if($nb_addresses>1){ ?> <a title="<?php echo JText::_('HIKA_DELETE'); ?>" class="hikashop_checkout_<?php echo $this->type;?>_address_delete" href="<?php echo hikashop_completeLink('checkout&step='.$this->step.'&redirect=checkout&task=deleteaddress&address_id='.$address->address_id.'&'.hikashop_getFormToken().'=1'.$url_itemid);?>"><img alt="<?php echo JText::_('HIKA_DELETE'); ?>" src="<?php echo HIKASHOP_IMAGES; ?>delete.png" border="0" /></a> <?php } ?> <a id="hikashop_checkout_<?php echo $this->type;?>_address_edit_<?php echo $address->address_id; ?>" title="<?php echo JText::_('HIKA_EDIT'); ?>" class="modal hikashop_checkout_<?php echo $this->type;?>_address_edit" hrel="{handler: 'iframe', size: {x: 450, y: 480}}" href="<?php echo hikashop_completeLink('address&redirect=checkout&task=add&step='.$this->step.'&type='.$this->type.$url_itemid,true);?>" onclick="return hikashopEditAddress(this,<?php echo (int)$same_address; ?>,true);?>" onclick="return hikashopEditAddress(this,<?php echo (int)$same_address?>,false);"><img alt="<?php echo JText::_('HIKA_EDIT'); ?>" src="<?php echo HIKASHOP_IMAGES; ?>edit.png" border="0" /></a> </span> </td> </tr> <?php $k = 1-$k; } ?> </table> <?php }else{ $app = JFactory::getApplication(); if(!JRequest::getVar( HIKASHOP_COMPONENT.'.address_error')){ JRequest::setVar( HIKASHOP_COMPONENT.'.address_error',1); $app->enqueueMessage( JText::_('CREATE_OR_SELECT_ADDRESS') ); } $js=' window.addEvent("domready", function(){ var link = document.getElementById("hikashop_checkout_'. $this->type.'_address_new_link"); if(link) return hikashopEditAddress(link,'.(int)$same_address.',true); });'; if(!HIKASHOP_PHP5) { $doc =& JFactory::getDocument(); } else { $doc = JFactory::getDocument(); } $doc->addScriptDeclaration("\n<!--\n".$js."\n//-->\n"); } ?> <span id="hikashop_checkout_<?php echo $this->type;?>_address_new" class="hikashop_checkout_<?php echo $this->type;?>_address_new"> <?php $html = $this->cart->displayButton(JText::_('HIKA_NEW'),'new',$this->params,'','var link = document.getElementById(\'hikashop_checkout_'. $this->type.'_address_new_link\'); if(link) return hikashopEditAddress(link,'.(int)$same_address.',true); return false;'); if(strpos($html,'<a') !== false) echo $html; ?> <a id="hikashop_checkout_<?php echo $this->type;?>_address_new_link" rel="{handler: 'iframe', size: {x: 450, y: 480}}" href="<?php echo hikashop_completeLink('address&redirect=checkout&task=add&step='.$this->step.'&type='.$this->type.$url_itemid,true);?>" onclick="return hikashopEditAddress(this,<?php echo (int)$same_address; ?>,true);"> <?php if(strpos($html,'<a')===false) echo $html; ?> </a> </span>

Merci poour votre aide
Last edit: 13 years 10 months ago by Jerome. Reason: cleaning message

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #79010 by Xavier
Bonjour,

Vous pouvez simplement ajouter le code:
Code:
<?php $js=' window.addEvent("domready", function(){ var link = document.getElementById("hikashop_checkout_'. $this->type.'_address_new_link"); if(link) return hikashopEditAddress(link,'.(int)$same_address.',true); });'; if(!HIKASHOP_PHP5) { $doc =& JFactory::getDocument(); } else { $doc = JFactory::getDocument(); } $doc->addScriptDeclaration("\n<!--\n".$js."\n//-->\n"); ?>

Ou le sortir du "else" déjà présent dans le fichier.

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #79049 by showbizz
Dsl je ne suis vraiment nul. J 'ai bien ajouté votre dernier message et ca marche mais il ne reprend pas les infos que j'avais deja ds mes clients. Il ouvre le popup sans remplir ce que j ai deja rempli au prealable

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #79075 by Jerome
Bonsoir,

Xavier vous a fournis le code utilisé par HikaShop pour ouvrir automatiquement l'édition d'une nouvelle addresse.

Voici le code pour votre cas précis:
Code:
<span class="hikashop_checkout_<?php echo $this->type;?>_address_buttons"> <?php if($nb_addresses>1){ ?> <a title="<?php echo JText::_('HIKA_DELETE'); ?>" class="hikashop_checkout_<?php echo $this->type;?>_address_delete" href="<?php echo hikashop_completeLink('checkout&step='.$this->step.'&redirect=checkout&task=deleteaddress&address_id='.$address->address_id.'&'.hikashop_getFormToken().'=1'.$url_itemid);?>"><img alt="<?php echo JText::_('HIKA_DELETE'); ?>" src="<?php echo HIKASHOP_IMAGES; ?>delete.png" border="0" /></a> <?php } ?> <a id="hikashop_checkout_<?php echo $this->type;?>_address_edit_<?php echo $address->address_id; ?>" title="<?php echo JText::_('HIKA_EDIT'); ?>" class="modal hikashop_checkout_<?php echo $this->type;?>_address_edit" hrel="{handler: 'iframe', size: {x: 450, y: 480}}" href="<?php echo hikashop_completeLink('address&redirect=checkout&task=add&step='.$this->step.'&type='.$this->type.$url_itemid,true);?>" onclick="return hikashopEditAddress(this,<?php echo (int)$same_address; ?>,true);?>" onclick="return hikashopEditAddress(this,<?php echo (int)$same_address?>,false);"><img alt="<?php echo JText::_('HIKA_EDIT'); ?>" src="<?php echo HIKASHOP_IMAGES; ?>edit.png" border="0" /></a> <?php if($nb_addresses == 1 || $checked == 'checked="checked"'){ $js=' window.addEvent("domready", function(){ var link = document.getElementById("hikashop_checkout_'. $this->type.'_address_edit_'.$address->address_id.'"); if(link) return hikashopEditAddress(link,'.(int)$same_address.',true); });'; if(!HIKASHOP_PHP5) { $doc =& JFactory::getDocument(); } else { $doc = JFactory::getDocument(); } $doc->addScriptDeclaration("\n<!--\n".$js."\n//-->\n"); } ?> </span>

Cordialement,

Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #79211 by showbizz
Merci pour votre demarche ca marche nikel. Un grand merci pour votre rapidité et votre efficacité
Cordialement

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #79281 by showbizz
Bonjour,

Et un grd merci pour votre aide.
J ai utilisé votre script le popup s'ouvre bien avec les elements deja renseigné comme je le voulais sauf que lorsque je clic sur OK lorsque j'ai compeleté les infos la boite s'ouvre de nouveau et je suis obligé d'appuyé sur la croix pour resortir du popup. Une fois resorti il me cree une nouvelle adresse de livraison. Ce que je voudrais c'est la meme chose mais une fois que j ai fini de renseigner les elements manquant que la boite se ferme en appuyant sur ok et qu'il mette a jour l'adresse de livraison sans en recreer une . Pensez vous que cela soit possible ?

Merci a vous et merci pour votre patience

Please Log in or Create an account to join the conversation.

More
13 years 10 months ago #79299 by Xavier
Oui cela est certainement possible, mais ce genre de personnalisations demande des tests et donc du temps.
Cela sort du cadre du support du forum, car il s'agit là d'une customization.

Merci de votre compréhension.
The following user(s) said Thank You: showbizz

Please Log in or Create an account to join the conversation.

Time to create page: 0.248 seconds
Powered by Kunena Forum