Erreur adresse livraison dans email notification

  • Posts: 468
  • Thank you received: 30
  • Hikashop Business
10 years 6 months ago #132579

-- HikaShop version -- : 2.2.2
-- Joomla version -- : 2.5.16
-- PHP version -- : 5.3.27

Bonjour,

Je viens de passer en v2.2.2 et je découvre les nouveautés.

En validant des commandes qui viennent d'être expédiées, je note un problème d'adresse :
- dans les emails de notification, l'adresse de livraison est toujours identique à l'adresse de facturation, même quand le client a créé une adresse de livraison différente de son adresse de facturation. Je dois donc la rectifier manuellement avant envoi des emails.
- sur les factures et les bons de livraison, l'adresse de livraison est correcte, pas de souci.

Précision : le client n'a pas créé une seconde adresse depuis son espace client, il a simplement précisé une adresse de livraison différente au moment de passer sa commande, ou bien nous avons modifié pour lui manuellement l'adresse de livraison en éditant sa commande.

Merci d'avance de votre aide

Last edit: 10 years 5 months ago by lesyeux.

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

  • Posts: 26032
  • Thank you received: 4006
  • MODERATOR
10 years 6 months ago #132633

Bonjour,

Pouvez vous donner un peu plus de précision sur le mail exact dont il s'agit ? (il y a 3 emails de notification différents).
Au niveau de l'addresse de livraison, il s'agit d'une surcharge de l'addresse comme il est possible de configurer dans les plugins de livraison ? Il s'agit d'un système de champs personnalisé ?
Il nous faudrait plus de détails afin de pouvoir reproduire votre soucis.

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: 468
  • Thank you received: 30
  • Hikashop Business
10 years 6 months ago #132687

- surcharge de l'addresse comme il est possible de configurer dans les plugins de livraison = NON
- champ personnalsié = NON
- adresse de livraison créée par le client au moment de l'achat = OUI

Au cours du processus d'achat, je créé mon compte client en fournissant une première adresse. Puis je décoche la case "Utiliser la même adresse que pour la facturation" (SAME_AS_BILLING), puis je créée une seconde adresse pour la livraison.

C'est cette adresse de livraison là qui n'est pas affichée correctement dans les emails de notification : notification de commande créée, confirmée et envoyée.

EMAILS DE NOTIFICATION DE CRÉATION/CONFIRMATION/EXPÉDITION DE COMMANDE
L'adresse de livraison est identique à l'adresse de facturation



BON DE LIVRAISON
L'adresse de livraison qui a été ajoutée au moment de l'achat est correcte


FACTURE
L'adresse de livraison qui a été ajoutée au moment de l'achat est correcte

Attachments:

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

  • Posts: 26032
  • Thank you received: 4006
  • MODERATOR
10 years 6 months ago #132717

Bonjour,

Voici le code utilisé dans le preload afin de charger les addresses de facture et de livraison:

$template = trim(hikashop_getLayout($view,'address_template',$params,$js));
if(!empty($data->cart->billing_address) && !empty($data->cart->fields)){
	$billing = ''.$template;
	foreach($data->cart->fields as $field){
		$fieldname = $field->field_namekey;
		if(!empty($data->cart->billing_address->$fieldname)) $billing=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$data->cart->billing_address->$fieldname),$billing);
	}
	$vars['BILLING_ADDRESS'] = str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$billing));
}
if(!empty($data->cart->override_shipping_address)) {
	$vars['SHIPPING_ADDRESS'] =  $data->cart->override_shipping_address;
} elseif(!empty($data->order_shipping_id) && !empty($data->cart->shipping_address)) {
	$shipping = ''.$template;
	foreach($data->cart->fields as $field) {
		$fieldname = $field->field_namekey;
		if(!empty($data->cart->shipping_address->$fieldname)) $shipping=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$data->cart->shipping_address->$fieldname),$shipping);
	}
	$vars['SHIPPING_ADDRESS'] = str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$shipping));
} else {
	$vars['SHIPPING_ADDRESS'] = $vars['BILLING_ADDRESS'];
}
Il faut donc qu'il y ai une addresse de livraison et qu'il y ai une méthode de livraison pour que le système fasse la "lecture" de celle ci.
Merci de vérifier que vous avez bien le même code.

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: 468
  • Thank you received: 30
  • Hikashop Business
10 years 6 months ago #132723

J'utilise Hikashop 2.2.2 Business, avec le pack téléchargé hier le 15/11

Et j'ai ce code, un petit peu différent :

f(!empty($data->cart->billing_address) && !empty($data->cart->fields)){
	$billing = $template;
	foreach($data->cart->fields as $field){
		$fieldname = $field->field_namekey;
		if(!empty($data->cart->billing_address->$fieldname)) $billing=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$data->cart->billing_address->$fieldname),$billing);
	}
	$vars['BILLING_ADDRESS'] = str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$billing));
}
if(!empty($data->cart->override_shipping_address)) {
	$vars['SHIPPING_ADDRESS'] =  $data->cart->override_shipping_address;
} elseif(!empty($data->order_shipping_id) && !empty($data->cart->shipping_address)){
	$shipping = $template;
	foreach($data->cart->fields as $field){
		$fieldname = $field->field_namekey;
		if(!empty($data->cart->shipping_address->$fieldname)) $shipping=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$data->cart->shipping_address->$fieldname),$shipping);
	}
	$vars['SHIPPING_ADDRESS'] = str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$shipping));
} else {
	$vars['SHIPPING_ADDRESS'] = $vars['BILLING_ADDRESS'];
}

Ce qui me chagrine, c'est que quand j'édite une commande et que je clique sur le bouton "facture" ou "bon de livraison", tout est OK, mais si je clique sur "email" ou si je demande une notification du client suite à un changement de statut de la commande, l'adresse de livraison dans l'email est celle de facturation et pas l'adresse de livraison.

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

  • Posts: 26032
  • Thank you received: 4006
  • MODERATOR
10 years 6 months ago #132734

Bonjour,

Merci de remplacer

$billing = $template
Par
$billing = ''.$template;
ainsi que
$shipping = $template
Par
$shipping = ''.$template;
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: 468
  • Thank you received: 30
  • Hikashop Business
10 years 6 months ago #132736

OK, merci.

Si je teste l'envoi d'un email de notification auto lorsque que je change le statut d'une commande, c'est bon.

J'ai toutefois encore un souci en cliquant sur le bouton "Email", pour envoyer une notification particulière au client, sur une commande donnée. Dans l'email obtenu par ce moyen, l'adresse de livraison est ignorée et remplacée par l'adresse de facturation.

Attachments:

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

  • Posts: 26032
  • Thank you received: 4006
  • MODERATOR
10 years 6 months ago #132737

Bonjour,

Le mail est : order_notification
Il faut faire la même modification.

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: 468
  • Thank you received: 30
  • Hikashop Business
10 years 6 months ago #132739

J'ai modifié tous les fichiers "preload" qui contenaient ce code, mais sans succès pour l'email généré à la demande en cliquant sur le bouton dans l'admin d'une commande.

18/11/2013 : commandes de ce week-end et de ce matin : dans les emails auto envoyés aux admins de la boutique et aux clients, les adresses de livraisons sont bien OK. Seul dans les envois manuels d'email, via le bouton "Email", les adresses de livraisons sont systématiquement remplacées par les adresses de facturation. Mais factures et BL sont OK.

Merci beaucoup pour votre aide.

Last edit: 10 years 5 months ago by lesyeux.

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

  • Posts: 26032
  • Thank you received: 4006
  • MODERATOR
10 years 5 months ago #133348

Bonsoir,

Dans le preload de "order_notification", merci de remplacer

} elseif(!empty($data->order_shipping_id) && !empty($data->cart->shipping_address)){
Par
} elseif(!empty($data->cart->order_shipping_id) && !empty($data->cart->shipping_address)){
Le système de order_notification est légèrement différent des autres, le "order_shipping_id" n'est pas directement acecssible via "$data".

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: 468
  • Thank you received: 30
  • Hikashop Business
10 years 5 months ago #133353

Problème corrigé avec ce code, merci beaucoup.

Jerome wrote: Bonsoir,

Dans le preload de "order_notification", merci de remplacer

} elseif(!empty($data->order_shipping_id) && !empty($data->cart->shipping_address)){
Par
} elseif(!empty($data->cart->order_shipping_id) && !empty($data->cart->shipping_address)){
Le système de order_notification est légèrement différent des autres, le "order_shipping_id" n'est pas directement acecssible via "$data".

Cordialement,

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

Time to create page: 0.091 seconds
Powered by Kunena Forum