Onglet Adresse de facturation

  • Posts: 8
  • Thank you received: 0
11 years 5 months ago #78778

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.

  • Posts: 26008
  • Thank you received: 4004
  • MODERATOR
11 years 5 months ago #78816

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.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

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

  • Posts: 8
  • Thank you received: 0
11 years 5 months ago #78819

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.

  • Posts: 13201
  • Thank you received: 2322
11 years 5 months ago #78925

Bonjour,

Il vous faudra éditer la vue "checkout / address_view" et réutiliser (en le modifiant bien entendu) le 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.

  • Posts: 8
  • Thank you received: 0
11 years 5 months ago #78974

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:
<?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='
do_nothing( 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: 11 years 5 months ago by Jerome. Reason: cleaning message

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

  • Posts: 13201
  • Thank you received: 2322
11 years 5 months ago #79010

Bonjour,

Vous pouvez simplement ajouter le code:

<?php
	$js='
do_nothing( 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.

  • Posts: 8
  • Thank you received: 0
11 years 5 months ago #79049

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.

  • Posts: 26008
  • Thank you received: 4004
  • MODERATOR
11 years 5 months ago #79075

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:

      <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='
do_nothing( 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.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

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

  • Posts: 8
  • Thank you received: 0
11 years 4 months ago #79211

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.

  • Posts: 8
  • Thank you received: 0
11 years 4 months ago #79281

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.

  • Posts: 13201
  • Thank you received: 2322
11 years 4 months ago #79299

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.357 seconds
Powered by Kunena Forum