Email automatique

7 posts in this topic

Posted · Report post

Bonjour,

J'utilise la dernière version de peel 6.2

J'aimerais savoir comment paramétrer l'envoi des messages automatique,

ex : date, quelle action ( changement de statut de la commande)

j'ai fait un test avec mon adresse perso et je n'ai pas reçu l'email automatique

'10 - Avis d'expédition de la commande n°[ORDER_ID]' quand j'ai effectué le changement de statut de la commande.

Merci pour votre aide

bien amicalement,

Sébastien

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Pour modifier le contenu de ces emails, vous devez compléter le tableau $custom_template_tags avec les valeurs voulu avant l'utilisation de la fonction send_email.

Il faut ensuite ajouter le tag à remplacer dans le template d'email.

Le tag ainsi créé sera automatiquement remplacer par la valeur correspondante avant l'envoi.

Pour l'envoi d'email, le problème peux venir de différentes sources : le serveur ou le code.

Si vous ne recevez pas d'autres emails de la boutique, je vous invite à contacter votre hébergeur.

Sinon, merci de me décrire plus en détails le contexte du problème.

Simon.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

j'ai le même problème sur la même version:

Les emails auto d'inscription et de commande s'envoient bien, (client et admin) mais pas les emails auto de paiement reçu (essayé par chèque) et d'expédition (client et admin).

Pour que ces mails partent il suffit normalement de changer les statuts de paiement et d'expédition dans le back office non?

Share this post


: post
Share on other sites

Posted · Report post

Bonjour ugop,

L'envoi d'email pour une commande se fait sur la page fin_commande.php pour les paiements par chèque ou par virement.

À la ligne 49, il y a

switch ($com->paiement) {
// In $com->payment_technical_code is stored the "technical_code" found in peel_paiement
case 'check':
case 'transfer':
// On avertit l'utilisateur et l'administrateur uniquement pour les modes de paiement non instantanés
send_mail_order_admin($commandeid);
email_commande($commandeid);

/* Le caddie est réinitialisé pour ne pas laisser le client passer une deuxième commande en soumettant une deuxième fois le formulaire */
$_SESSION['session_caddie']->init();
unset($_SESSION['session_commande']);
break;

default :
break;
}[/code]

Ce code permet l'envoi d'email lors de la fin d'une commande et il est indépendant du statut de cette commande.

Simon.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon,

merci de votre réponse.

Le mail de commande s'envoie bien, mon problème est qu'aucun mail n'est envoyé lorsque je change les statuts du paiement et de l'expédition.

Si le client me règle par chèque ou par virement, il faut bien que je lui confirme que j'ai bien reçu son règlement, et que le colis est expédié.

Comment est censé être envoyé le mail send_avis_expedition?

Merci de votre réponse,

Hugo

Share this post


: post
Share on other sites

Posted · Report post

Bonjour ugop,

Pour ajouter l'email d'avis d'expédition de commande, vous devez :

Ajouter la variable

	$statut_livraison_ex = vb($commande['id_statut_livraison']);
en tête de la fonction update_stock_status_order_changed(), ligne 1187 du fichier lib/fonctions/order.php. Ensuite, à la ligne 1174 de ce même fichier, il faut ajouter
		//On vérifie que le statut de livraison passe à expédier pour envoyer l'email d'expédition
if($statut_livraison_ex != $id_statut_livraison && $id_statut_livraison == 3) {
send_avis_expedition($id_commande);
}
[/code] La fonction avec les modifications dans son ensemble :
[code]function update_stock_status_order_changed($id_statut_paiement, $id_statut_livraison, $id_commande)
{
$select = "SELECT *
FROM peel_commandes
WHERE id='" . intval($id_commande) . "'";
$query = query($select) ;
//On vérifie si la commande existe deja
if(!empty($query)){
$commande = fetch_assoc($query);
$statut_paiement_ex = vb($commande['id_statut_paiement']);
$statut_livraison_ex = vb($commande['id_statut_livraison']);
// Mise à jour de la date de paiement si le statut est en réglé (et ne l'était pas avant)
if ($id_statut_paiement == 3 && $statut_paiement_ex != $id_statut_paiement) {
$sql_cond_array[] = "a_timestamp='" . date('Y-m-d H:i:s', time()) . "'";
}
if (!empty($id_statut_paiement)) {
$sql_cond_array[] = "id_statut_paiement='" . intval($id_statut_paiement) . "'";
}
if (!empty($id_statut_livraison)) {
$sql_cond_array[] = "id_statut_livraison='" . intval($id_statut_livraison) . "'";
}

query("UPDATE peel_commandes
SET " . implode(', ', $sql_cond_array) . "
WHERE id='" . intval($id_commande) . "'");

//Vérifie le statut paiement avant la mise à jours de la base avec celui du formulaire. Ils doivent être différent, afin d'éviter un doublon d'incrémentation des stocks lorsque l'utilisateur choisi l'annulation de livraison.
if (affected_rows() && !empty($id_statut_paiement) && $statut_paiement_ex != $id_statut_paiement) {
if (intval($id_statut_paiement) == 6) {
if (empty($id_statut_livraison)) {
// Changement aussi du statut de livraison en annulé s'il n'était pas déjà en statut livré
query("UPDATE peel_commandes
SET id_statut_livraison=6
WHERE id='" . intval($id_commande) . "' AND id_statut_livraison!=3");
}
// Réincrémentation des stocks en cas de commande passée en statut paiement annulé
$product_infos_array = get_product_infos_array_in_order($id_commande, $commande['devise'], $commande['currency_rate']);
if (!empty($product_infos_array)) {
foreach ($product_infos_array as $this_ordered_product) {
if (is_stock_advanced_module_active() && $this_ordered_product['etat_stock'] == 1) {
incremente_stock($this_ordered_product['quantite'], $this_ordered_product['produit_id'], $this_ordered_product['couleur_id'], $this_ordered_product['taille_id']);
}
}
}
} elseif ($statut_paiement_ex == 6) {
// Décrémentation des stocks en cas de commande qui était en statut paiement annulé et qui finalement ne doit pas être annulée
$product_infos_array = get_product_infos_array_in_order($id_commande);
if (!empty($product_infos_array)) {
foreach ($product_infos_array as $this_ordered_product) {
if (is_stock_advanced_module_active() && $this_ordered_product['etat_stock'] == 1) {
decremente_stock($this_ordered_product['produit_id'], $this_ordered_product['couleur_id'], $this_ordered_product['taille_id'], $this_ordered_product['quantite'], $this_ordered_product['commande_id']);
}
}
}
}
}
//On vérifie que le statut de livraison passe à expédié pour envoyer l'email d'expédition
if($statut_livraison_ex != $id_statut_livraison && $id_statut_livraison == 3) {
send_avis_expedition($id_commande);
}
}
}

Simon.

Share this post


: post
Share on other sites

Posted · Report post

Encore une fois, merci beaucoup Simon pour ces réponses très claires, ca fonctionne parfaitement!

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping