Avis d'expédition de commande : lien vers le suivi du transporteur

8 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour

Voilà, sur mon site par exemple, je propose plusieurs choix pour le type de livraison (colissimo, colissimo contre signature, lettre max, colis normal...).

Lorsque dans le backoffice, je rentre le numéro de suivi, un mail automatique est envoyé au client pour lui signifier l'expédition du colis avec le rappel du contenu, et surtout le numéro de suivi avec, pour ma part, un lien (ici colissimo) pour le suivi

Dans mon cas, c'est le modèle de mail 10, technical code "send_avis_expedition".

Actuellement, ça ne fonctionne QUE pour le colissimo puisque dans le modèle d'email, j'ai celà :

Le mode de livraison que vous avez choisi lors de la prise de commande est : [TYPE]

Références de l'envoi : le n° de colis est [COLIS].

Vous pouvez suivre l'acheminement de votre colis en cliquant sur le lien suivant : http://www.colissimo...e.do?colispart=[COLIS]

Adresse d'expédition : [CLIENT_INFOS_SHIP]

Ce que je voudrais, c'est que le mail soit différent en fonction du type de livraison choisi. C'est déjà un peu le cas puisque le mail modifie TYPE (soit lettre MAX, soit colissimo).

MAIS je souhaiterai que le lien d'accès sur la page du suivi (colissimo, courrier suivi, lettremax...) soit modifié aussi !

Ne peut on pas créer une "variable" [LIEN_DU_SUIVI], qui soit corrélé au [TYPE] ? et ainsi avoir la ligne dans le mail automatique :

Vous pouvez suivre l'acheminement de votre colis en cliquant sur le lien suivant : [LIEN_DU_SUIVI] [COLIS]

avec [LIEN_DU_SUIVI] = "http://www.colissimo.fr/portail_colissimo/suivre.do?colispart=" pour du colissimo

ou [LIEN_DU_SUIVI] = "http://www.csuivi.courrier.laposte.fr/default.asp?EZ_ACTION=rechercheRapide&tousObj=&numObjet=" pour de la lettre max...

Est ce que c'est dur à faire ?

ou sinon, peut être que je devrais créer un autre modèle automatique d'envoie de mail, avec un code technique par exemple "send_avis_expedition_colissimo" et un autre "send_avis_expedition_lettremax" avec à l'intérieur le lien correct. MAIS comment fait on en automatique pour dire à peel d'expédier tel ou tel modèle d'email en fonction du type de livraison choisi ??

J'avoue que ça me dépasse... Et ne connaissant rien en programmation, je trouve la chose hors de portée...

Des idées ?

merci !

Jean-Luc

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Vous pouvez modifier la fonction send_avis_expedition comme ceci :


function send_avis_expedition($commandeid, $delivery_tracking)
{
$resCom = query("SELECT *
FROM peel_commandes
WHERE id='" . intval($commandeid) . "'");
$commande = fetch_object($resCom);
$order_infos = get_order_infos_array($commande);
if (String::strpos($commande->type, 'max') !== false) {
// Pour le moyen de livraison lettre max
$template_technical_code = 'send_avis_expedition_lettremax';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} elseif (String::strpos($commande->type, 'normal') !== false) {
// Pour le moyen de livraison colis normal
$template_technical_code = 'send_avis_expedition_colis_normal';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} elseif (String::strpos($commande->type, 'signature') !== false) {
// Pour le moyen de livraison colissimo contre signature
$template_technical_code = 'send_avis_expedition_colissimo_contre_signature';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} else {
$template_technical_code = 'send_avis_expedition';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
}

$custom_template_tags['ORDER_ID'] = $commandeid;
$custom_template_tags['TYPE'] = $commande->type;
$custom_template_tags['COLIS'] = $delivery_tracking;
$custom_template_tags['NOM_FAMILLE'] = $commande->nom_bill;
$custom_template_tags['PRENOM'] = $commande->prenom_bill;
$custom_template_tags['CLIENT_INFOS_SHIP'] = $order_infos['client_infos_ship'];
$custom_template_tags['COUT_TRANSPORT'] = fprix($commande->cout_transport, true) . " " . TTC;
$custom_template_tags['SHIPPED_ITEMS'] = '';
$product_infos_array = get_product_infos_array_in_order($commandeid, $commande->devise, $commande->currency_rate);
foreach ($product_infos_array as $this_ordered_product) {
$custom_template_tags['SHIPPED_ITEMS'] .= $this_ordered_product["product_text"] . "\n";
$custom_template_tags['SHIPPED_ITEMS'] .= QUANTITY . BEFORE_TWO_POINTS . ": " . $this_ordered_product["quantite"] . "\n";
$custom_template_tags['SHIPPED_ITEMS'] .= PRICE . BEFORE_TWO_POINTS . ": " . fprix($this_ordered_product["total_prix"], true) . ' ' . TTC . "\n\n";
}
send_email($commande->email, '', '', $template_technical_code, $custom_template_tags, 'html', $GLOBALS['support_commande']);
}
[/CODE]

Ensuite, vous devez compléter le code en renseignant les variables $custom_template_tags['LIEN_DU_SUIVI'] avec le lien de suivi du colis. Ensuite dans le bakc office, vous devez créer les templates d'email send_avis_expedition_lettremax, send_avis_expedition_colis_normal, send_avis_expedition_colissimo_contre_signature dans lequel vous pouvez intégrer le tag [LIEN_DU_SUIVI] qui sera automatiquement remplacé par la valeur que vous venez de renseigner.

Si vous souhaitez ajouter un nouveau moyen de livraison par la suite, il faut ajouter un bloc

elseif (String::strpos($commande->type, 'XXXX')) !== false {

// Pour le moyen de livraison XXXX

$template_technical_code = 'send_avis_expedition_XXXX';

$custom_template_tags['LIEN_DU_SUIVI'] = '';

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Simon

merci pour votre aide !!

l'explication est super claire !!!

Juste une question.

Si je créé autant de template emails qu'il y a de type d'expédition, que dans chacun j'écris le lien en toute lettre comme "http://www.colissimo...re.do?colispart= pour du colissimo ou "http://www.csuivi.co...sObj=&numObjet=" pour de la lettre max..., à quoi ça sert que je définisse $custom_template_tags['LIEN_DU_SUIVI'] = ''; dans la fonction send_avis_expedition ?

Finalement, de la même manière, pourquoi ne pas utiliser "LE MEME Template email" dans lequel simplement sera changé $custom_template_tags['LIEN_DU_SUIVI'] = ''; ?

Je sais pas si je suis clair...

Je résume...

Dans la fonction send_avis_expedition, on utilise toujours le même email_template, mais on aura défini pour chaque type d'expédition le $custom_template_tags['LIEN_DU_DUIVI'] ?

ça peut marcher comme ça ??

merci pour vos explications !

Jean-Luc

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Oui effectivement, si la seul différence dans vos email est le lien vers le transporteur, vous pouvez utilisez le template d'email send_avis_expedition et seul la valeur de la variable LIEN_DU_SUIVI sera différente. Il faut modifier le test


if (String::strpos($commande->type, 'max') !== false) {
// Pour le moyen de livraison lettre max
$template_technical_code = 'send_avis_expedition_lettremax';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} elseif (String::strpos($commande->type, 'normal') !== false) {
// Pour le moyen de livraison colis normal
$template_technical_code = 'send_avis_expedition_colis_normal';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} elseif (String::strpos($commande->type, 'signature') !== false) {
// Pour le moyen de livraison colissimo contre signature
$template_technical_code = 'send_avis_expedition_colissimo_contre_signature';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} else {
$template_technical_code = 'send_avis_expedition';
$custom_template_tags['LIEN_DU_SUIVI'] = '';
}
[/CODE] par
[CODE]
$template_technical_code = 'send_avis_expedition';
if (String::strpos($commande->type, 'max') !== false) {
// Pour le moyen de livraison lettre max
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} elseif (String::strpos($commande->type, 'normal') !== false) {
// Pour le moyen de livraison colis normal
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} elseif (String::strpos($commande->type, 'signature') !== false) {
// Pour le moyen de livraison colissimo contre signature
$custom_template_tags['LIEN_DU_SUIVI'] = '';
} else {
$custom_template_tags['LIEN_DU_SUIVI'] = '';
}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Simon !!

merci pour votre aide !!

je vais appliquer mes modifs...

Mais 1 question...

Ces modifications, ça se passe dans quel fichier svp ??

merci pour les tuyaux !

cordialement

Jean-Luc

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

fonction send_avis_expedition => lib/fonctions/fonctions_admin.php

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci à tous !!

je me pose cependant 2 questions...

1-dans le code, à la place de 'max' ou de 'signature', que dois je mettre ??? est ce que je dois mettre les "id" des types de transport de la table "peel_types" correspondant à lettre MAX (soit 12) et à colissimo suivi (soit 2) ?

2- est il nécessaire de mette la ligne de code $template_technical_code = 'send_avis_expedition'; ?

En effet, j'utilise le template par défaut (enfin presque puisque j'aurai modifié la ligne

Vous pouvez suivre l'acheminement de votre colis en cliquant sur le lien suivant : http://www.colissimo...e.do?colispart=[COLIS]

par Vous pouvez suivre l'acheminement de votre colis en cliquant sur le lien suivant : ['LIEN_DU_SUIVI']=[COLIS]

et que j'aurai déclaré dans mon code send_avis_expedition

[LIEN_DU_SUIVI] = "http://www.colissimo...re.do?colispart=" pour du colissimo

ou [LIEN_DU_SUIVI] = "http://www.csuivi.co...sObj=&numObjet=" pour de la lettre max...

merci pour votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour

1-dans le code, à la place de 'max' ou de 'signature', que dois je mettre ??? est ce que je dois mettre les "id" des types de transport de la table "peel_types" correspondant à lettre MAX (soit 12) et à colissimo suivi (soit 2) ?

=> La variable $commande->type contient le nom complet du type de livraison. La fonction String::strpos($commande->type, 'max') recherche le terme max dans cette variable, ce qui sera vrai pour le moyen de livraison lettre MAX. C'est à adapter en fonction du nom des types de livraison utilisé sur votre boutique.

2- est il nécessaire de mette la ligne de code [color=#000000]$template_technical_code [/color][color=#666600]=[/color] [color=#008800]'send_avis_expedition'[/color][color=#666600];[/color] ?

=> Vous pouvez remplacer l'utilisation de $template_technical_code dans la fonction send_email par send_avis_expedition directement. La variable n'a effectivement plus lieu d'être.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping