Variables dans le body des emails d'action de masse

  • Posts: 40
  • Thank you received: 3
8 years 1 month ago #263475

-- HikaShop version -- : 2.6.4
-- Joomla version -- : 3.6.5

Bonjour,

Je cherche à personnaliser le body des emails envoyés par les actions de mass.
J'ai vu une copie d'écran où l'on pouvait personnaliser le destinataire en mettant user.user_email

Du coup, j'ai essayé plusieurs variantes pour la partie body du genre :
"Nouvelle commande order.order_id ou [order.order_id]
Avec le produit product.order_product_code
Pour user.user_email ou {user.user_email}"

Le mail remonte tels quel. Aucune variable remplacée. Est-ce faisable ?
Merci

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

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
8 years 1 month ago #263486

Bonjour,

La seule possibilité offerte par le système d'action de masse est de mettre user.user_email dans le destinaire au lieu d'une adresse email fixe.
Il n'y a pas de système de remplacement de tags comme dans les emails de notifications normaux d'HikaShop.

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

  • Posts: 40
  • Thank you received: 3
8 years 1 month ago #263491

Dommage, ce serait intéressant de l'envisager dans la V3 :-)

Je voulais passer par là pour envoyer un mail aux gestionnaires selon certains produits achetés.

Sauf erreur, il n'y a pas de trigger sur une action de masse.
Du coup, peut être me faudrait il passer par un plugin sur les triggers:
onBeforeMailPrepare(&$mail,&$mailer,&$do)
ou
onBeforeMailSend(&$mail,&$mailer)

Pour envoyer une copie au gestionnaire du mail destiné au client selon la nature des produits achetés ?

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

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
8 years 1 month ago #263492

Bonjour,

1. La v3 étant déjà sorti, cela va être difficile.

2. Et vous vous trompez. Tout le système d'action de masse repose sur des triggers. Par exemple, le trigger qui envoi l'email pour une action d'envoi d'email d'une action de masse "commande" est onProcessOrderMassActionsendEmail et est défini dans le fichier plugins/hikashop/massaction_order/massaction_order.php

3. Vous pourriez passer par les triggers email oui.
Mais sinon, vous pourriez simplement éditer l'email "massaction notification" via le menu Système>Emails.
Là, dans la version HTML vous avez accès aux données avec

<?php var_dump($data['elements']); ?>

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

  • Posts: 40
  • Thank you received: 3
8 years 1 month ago #263521

Si je passe par l'email "massaction notification" via le menu Système>Emails, est-ce que je pourrais personnaliser la destination du mail en fonction des produits de la commande ?

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

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
8 years 1 month ago #263523

Bonjour,

Oui, c'est possible avec le code PHP adéquat.
Vous avez accès aux données de la commande avec :

$data['elements']
Et à l'adresse email à envoyer avec:
$data['action']['emailAddress']

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

  • Posts: 4
  • Thank you received: 0
  • Hikashop Business
3 days 13 hours ago #366508

Bonjour,

Joomla : 5.2.5
Hikashop : 5.1.5

J'ai suivi cette conversation, mais je n'arrive pas à aller jusqu'au bout.
J'ai un catalogue interne pour ma société.
Chaque électricien fait parti d'un service.
Le but est qu'il fasse une commande et que au final le panier soit envoyé par mail à son responsable.

J'arrive bien à le faire avec une action en masse, mais je n'ai pas le contenu du mail. C'est comme si le modèle de mail ne se remplissait pas avec les données du panier.

La notification pour l'admin fonction, le mail pour celui qui a passé la commande fonctionne mais le mail pour le responsable n'a pas la commande dans le mail.

Avez-vous une solution pour cette demande?

Merci.

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

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
3 days 9 hours ago #366514

Bonjour,

Avez-vous bien modifié l'email mass action via le menu System>Emails pour inclure les données de la commande ? Quelle modification avez-vous fait ?
Avez-vous l'email envoyé à l'adresse email configurée dans l'action de masse qui arrive dans la boite email ?
Avez-vous cet email dans le menu Customers>Emails history ?

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

  • Posts: 4
  • Thank you received: 0
  • Hikashop Business
3 days 8 hours ago #366517

Sur les fihcier joints j'ai mis les réglages de l'action en masse + les réglage de l'email notification d'action en masse


Mon code template email :

<?php
/**
 * @package	HikaShop for Joomla!
 * @version	5.1.5
 * @author	hikashop.com
 * @copyright	(C) 2010-2025 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><style type="text/css">
body.hikashop_mail { background-color:#ffffff; color:#575757; }
.ReadMsgBody{width:100%;}
.ExternalClass{width:100%;}
div, p, a, li, td {-webkit-text-size-adjust:none;}
@media (min-width:600px){
	#hikashop_mail {width:600px !important;margin:auto !important;}
	.pict img {max-width:500px !important;height:auto !important;}
}
@media (max-width:330px){
	#hikashop_mail{width:300px !important; margin:auto !important;}
	table[class=w600], td[class=w600], table[class=w598], td[class=w598], table[class=w500], td[class=w500], img[class="w600"]{width:100% !important;}
	td[class="w49"] { width: 10px !important;}
	.pict img {max-width:278px; height:auto !important;}
}
@media (min-width:331px) and (max-width:480px){
	#hikashop_mail{width:450px !important; margin:auto !important;}
	table[class=w600], td[class=w600], table[class=w598], td[class=w598], table[class=w500], td[class=w500], img[class="w600"]{width:100% !important;}
	td[class="w49"] { width: 20px !important;}
	.pict img {max-width:408px;  height:auto !important;}
}
h1{color:#1c8faf;font-size:16px;font-weight:bold;border-bottom:1px solid #ddd; padding-bottom:10px;}
h2{color:#89a9c1;font-size:14px;font-weight:bold;margin-top:20px;margin-bottom:5px;border-bottom:1px solid #d6d6d6;padding-bottom:4px;}
a:visited{cursor:pointer;color:#2d9cbb;text-decoration:none;border:none;}
.cart_button{
	color: #fff!important;
    font-size: 15px;
    font-weight: bold;
    background-color: #53b8c8;
    border-radius: 5px;
    padding: 5px 10px;
}
a.cart_button:hover {
    background-color: #278392;
    text-decoration: none;
}
{VAR:TPL_CSS}
</style>

<div id="hikashop_mail" style="font-family:Arial, Helvetica,sans-serif;font-size:12px;line-height:18px;width:100%;background-color:#ffffff;padding-bottom:20px;color:#5b5b5b;">
	<table class="w600" style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:18px;margin:auto;background-color:#ebebeb;text-align:center;" border="0" cellspacing="0" cellpadding="0" width="600">
		<tr style="line-height: 0px;">
			<td class="w600" style="line-height:0px" width="600" valign="bottom">
				<img class="w600" src="{VAR:LIVE_SITE}media/com_hikashop/images/mail/header_black.png" border="0" alt="" />
			</td>
		</tr>
		<tr>
			<td class="w600" style="text-align:left;" width="600">
{VAR:TPL_CONTENT}
			</td>
		</tr>
		<tr style="line-height: 0px;">
			<td class="w600" style="line-height:0px" width="600" valign="top">
				<img class="w600" src="{VAR:LIVE_SITE}media/com_hikashop/images/mail/footer_black.png" border="0" alt="--" />
			</td>
		</tr>
	</table>
</div>
Tout cela fonctionne mais la commande de l'email n'ai pas dans le mail.
Il n'y a que le message vous avez une nouvelle commande.

Merci de votre aide.

Attachments:
Last edit: 3 days 8 hours ago by nicolas.

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

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
3 days 5 hours ago #366519

Bonjour,

Votre capture vient the "order creation notification". C'est l'email qui est envoyé au client à la création de la commande.
C'est l'email "mass action notification" qui est envoyé, lorsque vous avez une action "envoyer un email".
www.hikashop.com/support/26global-informations.html#emails
Comme je disais, les informations de la commande ne sont pas ajoutées par HikaShop dans l'email "mass action notification".
Par défaut, cet email ne contient qu'un message générique pour dire que l'action de masse a été déclenchée.
Donc c'est le résultat normal que vous avez.
Si vous voulez rajouter le contenu de la commande dans cette email, cela demande de modifier l'email "mass action notification" de manière très importante. Il y en a pour plusieurs heures de boulot pour un développeur chevronné si vous voulez un rendu similaire que l'email "order creation notification".

Vous nous aviez contacté il y a un mois pour nous demander comment envoyer un email en plus. Et voici ce que je vous avais répondu:

HikaMarket Multivendor ( www.hikashop.com/hikamarket-multi-vendor.html ) has the capability to send an extra email for an order to the vendor of the order.
By default, the vendor is automatically selected based on the product(s) in the cart. However, HikaMarket has a setting "Allow vendor selector" you can use to allow the customer to select the vendor of the order during the checkout process :
www.hikashop.com/support/documentation/1...onfig_market_general
Also, the setting below, "Preferred vendor selector" allows you to select a custom user field in order to preset the value of that field during the checkout with vendor the user usually uses.
This is used by companies with salesmen placing orders on behalf of their prospects so that the salesmen can select themselves during the checkout for example, with returning customers already having their original salesmen preselected in the checkout when another sale is made with the customer.

So, you could have Mr. X as a vendor, select it as the preferred vendor of Mr. Y. in a custom user field. That way, when Mr. Y would place an order, Mr. X would be preselected as the vendor of the order, and he would be notified of the sale. And if you don't want Mr. Y to change himself the vendor during the checkout, you can add a bit of CSS code to hide that area from the page. That way, it will be transparent for Mr. Y.

And similarly, you can have a different person be notified for the sale of someone from another departement etc.
This would require the use of HikaMarket Multivendor for the vendor system, and HikaShop Business to be able to use custom fields. You can read more about custom fields here:
www.hikashop.com/support/documentation/4...shop-field-form.html


Alors, oui, il est vrai que vous pouvez potentiellement passer par une action de masse en développement beaucoup de code pour faire cela. Mais c'est dur et demande des connaissances en développement. C'est pourquoi je ne vous avez pas parlé de cela mais plutôt d'utiliser HikaMarket. N'aviez vous pas reçu ma réponse ?

Last edit: 3 days 8 hours ago by nicolas.

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

  • Posts: 4
  • Thank you received: 0
  • Hikashop Business
2 days 15 hours ago #366522

Merci pour votre réponse bien détaillée.

Hikamarket ne va pas m'aider parce que je peux associer un fournisseur à un produit mais pas un panier à un responsable.

J'ai essayé de copier le php de l'email de notification dans celui de l'action en masse, mais ça ne fonctionne pas.
Par contre si je mets du code html ça fonctionne.
Il y a 3 zones dans les email
Zone HTML, Zone Texte et Zone Préchargement
Je me suis dit que si je copiais le code html de l'email de notification de commande dans celui de action en masse ça fonctionnerait.
Mais non, lors de la commande cela mets une erreur d'interprétation du code.
donc ma dernière idée est de créer des emails tampon pour que je puisse avoir la notification de commande et qu'elle soit routé vers le bon responsable.

si vous êtes certain que hikamarket peut être la solution, je suis prêt à l'acheter.
Merci en tout cas de prendre du temps pour me répondre.

PS : non je n'avais pas eu votre réponse il y a un mois.

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

  • Posts: 83568
  • Thank you received: 13522
  • MODERATOR
2 days 11 hours ago #366526

Bonjour,

Les données entre order status notification et mass action notification ne sont pas les même et pas au même endroit.
Une action de masse est prévu pour exécuter des filtres et actions sur plusieurs éléments à la fois.
Le fait que l'action soit déclenchée via un trigger "after an order is created" ou "after an order is updated" fait que l'action de masse gère une liste d'élément de taille "1", car il n'y a qu'une seule commande. Mais si vous appuyez sur le bouton "process" de l'action de masse, elle peut potentiellement gérer plusieurs commandes.
Dans www.hikashop.com/forum/5-support-en-fran...de-masse.html#263523 je parle d'utiliser

$data['elements']
qui contient un array d'objets, chaque objet étant une commande. De plus, les données d'un objet dans cet array ne sont pas les même que l'objet dans $data dans order status notification.
Donc c'est impossible de faire cela avec juste un copier / coller. Il va falloir adapter le code et c'est compliqué. C'est pour ça que si vous n'êtes pas développeur, et vous ne voulez pas vous reposer sur un pour cela, cette solution n'est pas adaptée.

En effet, par défaut un vendeur est associé à un produit, et non un panier.
Cependant, comme je disais en anglais, l'option "Allow vendor selector" permet d'associer un vendeur à un panier.
Donc oui, ça pourra être une solution.
Après, cela demande quand même un peu de configuration. HikaMarket est un gros bébé. C'est pratique si vous voulez faire des choses compliquées.

Ce que je peux vous proposer, c'est de réaliser la modification de l'email mass action notification pour vous.
Cela coûtera à peu près autant que l'achat d'HikaMarket. Mais la solution sera plus légère et donc plus facile à maintenir sur le long terme. Nous pouvons en discuté par email via www.hikashop.com/support/contact-us.html
Bizarre que vous n'ayez pas reçu mon email de réponse il y a un mois. Il est pourtant marqué comme envoyé avec succès. Se pourrait-il qu'il soit passé dans votre dossier spams ?

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

Time to create page: 0.078 seconds
Powered by Kunena Forum