Jump to content

[how to] Modifica email invio tracking number (1.5.0.17)


viger

Recommended Posts

Ciao!

Dopo aver perso un numero imprecisato di ore (molte) per merito dell'ignorante che nella pagina del dettaglio ordine ha tradotto "tracking number" con "reso merce" (cosa non corretta neanche nella 1.5.1.0 :blink: ), ho finalmente risolto il capitolo dell'invio del tracking number come desideravo. Posto qui ciò che ho fatto, magari è utile a qualcun altro.

 

Il problema: non mi piace l'invio predefinito di email di PS che segnala l'invio della merce: segna l'ordine come "consegna in corso", avvisando che seguirà email con url di tracking, un "pacco in viaggio". Mi sembra molto più logico un cambio di stato dell'ordine in "spedito" e invio di una email "pacco spedito" con contestuale compagnia di spedizione, numero di tracking, url di tracking.

 

Qui di seguito le modifiche da apportare al codice (due righe) e quelle da apportare a un template email.

  • aprire il file /controllers/admin/AdminOrdersController.php:
  • cercare la funzione (riga 298):

  $templateVars = array(
   '{followup}' => str_replace('@', $order->shipping_number, $carrier->url),
   '{firstname}' => $customer->firstname,
   '{lastname}' => $customer->lastname,
   '{id_order}' => $order->id,
   '{order_name}' => $order->getUniqReference()
  );
  • aggiungere le due righe:

   '{company}' => $carrier->name,
   '{tracking}' => $order->shipping_number,
  • diventerà quindi così:

  $templateVars = array(
   '{followup}' => str_replace('@', $order->shipping_number, $carrier->url),
   '{firstname}' => $customer->firstname,
   '{lastname}' => $customer->lastname,
   '{company}' => $carrier->name,
   '{tracking}' => $order->shipping_number,
   '{id_order}' => $order->id,
   '{order_name}' => $order->getUniqReference()
  );
  • in BO, su traduzioni==>email (va fatto per tutte le lingue utilizzate) cercare il template “in_transit” e modificare l'oggetto in "Ordine spedito!" e il template con questo codice html:

<table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 550px;">
<tbody>
<tr>
<td align="left"><a title="{shop_name}" href="{shop_url}"><img style="border: none;" src="{shop_logo}" alt="{shop_name}" /></a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Salve <strong style="color: #db3484;">{firstname} {lastname}</strong>,</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="background-color: #db3484; color: #fff; font-size: 12px; font-weight: bold; padding: 0.5em 1em;" align="left">La cronologia del tuo ordine n.{id_order}</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><strong>Il tuo ordine con riferimento {order_name} è stato spedito.</strong></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Compagnia di spedizione: <strong>{company}</strong></td>
</tr>
<tr>
<td align="left">Codice di invio: <strong>{tracking}</strong></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Puoi monitorare il suo percorso cliccando il link seguente: <a href="{followup}">{followup}</a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Puoi rivedere questo ordine e scaricare la fattura dalla sezione <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=history">"Cronologia ordine"</a> del tuo account cliccando su <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=my-account">"Il mio account"</a> nel nostro sito web.</td>
</tr>
<tr>
<td align="left">Se hai un account ospite, puoi seguire il tuo ordine nella sezione <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=guest-tracking">"Controllo ordini ospite</a>" del nostro sito web.</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="font-size: 10px; border-top: 1px solid #D9DADE;" align="center"><a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}">{shop_name}</a> powered with <a style="text-decoration: none; color: #374953;" href="http://www.prestashop.com/">PrestaShop™</a></td>
</tr>
</tbody>
</table>
  • in ordini==>"stati ordine" all’ID4 “consegna in corso” levare la spunta su “invia email al cliente.

All'invio dell'ordine con il corriere (quindi già in possesso del tracking), si aggiorna nel BO lo stato dell’ordine su “spedito” (consegna in corso): con questa operazione NON si invia alcuna email al cliente. Si inserisce ora il tracking nel campo apposito e così si invia contestualmente l’email al cliente con tutti i dati.

Il testo della mail, con l'html proposto prima, è qualcosa tipo questo:

 

 

 

Il tuo ordine con riferimento QOXOIGTII è stato spedito.

 

Compagnia di spedizione: UPS

Codice di invio: pppopopopo

 

Puoi monitorare il suo percorso cliccando il link seguente: http://wwwapps.ups.c...Nums=pppopopopo

 

 

 

Il link di controllo deve ovviamente essere personalizzato con quello appropriato.

 

Spero sia utile a qualcuno.

 

PS: e ricordatevi di correggere "Reso merce" con "Tracking number"! :P:lol:

  • Like 3
Link to comment
Share on other sites

Ciao,

ho trovato il tuo report molto interessante, ma purtroppo non sono riuscito a mettero in atto.

Il nostro sito si basa su prestashop 1.4.7.3 e già il file da aprire /controllers/admin/AdminOrdersController.php non riesco a trovarlo all'indirizzo indicato.

Mi puoi aiutare?

Ciao

Filippo

Link to comment
Share on other sites

Ciao!

Purtroppo, come dal titolo del post, la modifica è per la versione 1.5.0.17

Ho una 1.4.9 installata in locale, non credo sia diversa dalla 1.4.7, ti riporto le variazioni per la 1.4.9 e controlli tu, ok?

  • aprire il file /admin (o il nome che tu gli hai dato)/tabs/AdminOrders.php:
  • cercare la funzione (riga 94 per la versione 1.4.9):

$templateVars = array(
  '{followup}' => str_replace('@', $order->shipping_number, $carrier->url),
  '{firstname}' => $customer->firstname,
  '{lastname}' => $customer->lastname,
  '{id_order}' => (int)($order->id)
 );

  • aggiungere le due righe:

'{company}' => $carrier->name,
'{tracking}' => $order->shipping_number,

  • diventerà quindi così:

 $templateVars = array(
  '{followup}' => str_replace('@', $order->shipping_number, $carrier->url),
  '{firstname}' => $customer->firstname,
  '{lastname}' => $customer->lastname,
  '{company}' => $carrier->name,
  '{tracking}' => $order->shipping_number,
  '{id_order}' => (int)($order->id)
 );

  • in BO, su traduzioni==>email (va fatto per tutte le lingue utilizzate) cercare il template “in_transit” e modificare l'oggetto in "Ordine spedito!" e il template con questo codice html:

<table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 550px;">
<tbody>
<tr>
<td align="left"><a title="{shop_name}" href="{shop_url}"><img style="border: none;" src="{shop_logo}" alt="{shop_name}" /></a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Salve <strong style="color: #db3484;">{firstname} {lastname}</strong>,</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="background-color: #db3484; color: #fff; font-size: 12px; font-weight: bold; padding: 0.5em 1em;" align="left">La cronologia del tuo ordine n.{id_order}</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><strong>Il tuo ordine con riferimento {id_order} è stato spedito.</strong></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Compagnia di spedizione: <strong>{company}</strong></td>
</tr>
<tr>
<td align="left">Codice di invio: <strong>{tracking}</strong></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Puoi monitorare il suo percorso cliccando il link seguente: <a href="{followup}">{followup}</a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Puoi rivedere questo ordine e scaricare la fattura dalla sezione <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=history">"Cronologia ordine"</a> del tuo account cliccando su <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=my-account">"Il mio account"</a> nel nostro sito web.</td>
</tr>
<tr>
<td align="left">Se hai un account ospite, puoi seguire il tuo ordine nella sezione <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=guest-tracking">"Controllo ordini ospite</a>" del nostro sito web.</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="font-size: 10px; border-top: 1px solid #D9DADE;" align="center"><a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}">{shop_name}</a> powered with <a style="text-decoration: none; color: #374953;" href="http://www.prestashop.com/">PrestaShop™</a></td>
</tr>
</tbody>
</table>

  • in ordini==>"status" all’ID4 “consegna in corso” levare la spunta su “invia email al cliente.

Ho provato adesso e sulla 1.4.9 funziona, ci sono solo pochi cambiamenti di codice. Ovviamente la modifica nel template email che ho accluso è stata fatta modificando poco quella di default di prestashop. Il mio consiglio è quello di creare delle email personalizzate.

In caso le righe da aggiungere sono:

 

Compagnia di spedizione: {company}
Codice di invio: {tracking}

 

formattandole come più ti piace.

Buon lavoro! :)

Link to comment
Share on other sites

  • 3 weeks later...

Devo proprio ringraziarti per il lavoro che hai fatto sia x PS 1.5 che per PS 1.4 (io uso la 1.4.6.2); funziona perfettamente ed ho anche capito come modificare i testi dei messaggi.

La tua soluzione oltre che a cambiare l'ordine delle mail (eliminandone una) risolve anche i problemi che ho/abbiamo con POSTE ITALIANE xché con il sistema definito di PS quando ti arrivava il link (URL) e ci cliccavi non apriva nessuna pagina probabilmente xché il sistema in uso inserendo alla fine dell'indirizzo anche il codice di spedizione non può funzionare sul sito di POSTE ITA e penso non solo quello.

Con la tua modifica ho tolto alla fine dell'URL =@ (da ogni corriere) che andava ad indicare a PS di inserire anche il codice spedizione che avevo digitato quando setti CONSEGNA IN CORSO e poi veniva inviato al cliente schiacciando il tasto SPECIFICA UN NUMERO DEL PACCO, così ora ti arriva la mail con URL alla pagina del corriere che funziona e il codice spedizione subito sotto che poi si inserirà nello spazio del sito del corriere.

 

Dico solo che di chiaccheroni e aprofittatori che girano intorno a PS c'è ne sono abbastanza ma di persone in gamba come te ne mancano fin troppo.

 

Grazie ancora

Edited by camillo (see edit history)
Link to comment
Share on other sites

Ciao camillo e grazie a te del post!

Il Post Scriptum sta ad indicare, nel caso qualcuno passasse di qui, di correggere o di segnalare quella mostruosità di traduzione (grazie alla quale ho davvero perso ore e pensavo di essere afflitto dal malocchio) che ha tradotto "Tracking number":

 

post-408444-0-05967900-1351870927_thumb.png

 

in "Reso merce":

 

post-408444-0-00530900-1351870951_thumb.png

 

Due concetti leggerissimamente differenti! <_<

Avevo aperto anche richieste d'aiuto perché non riuscivo a trovare la casella dove inserire il tracking...

In realtà dovrei, a sto punto, segnalare io stesso il bug, però devo studiarmi come si fa, ecc, e sinceramente non ho avuto tempo. Gli screen allegati sono della 1.5.2, a conferma di come non serva aggiornare, almeno per me. E ho ancora trovato gli altri bug (di poco conto eh) che ho corretto nella mia. Appena riesco li segnalerò, ma questo diventa un lavoro! :blink:

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...
  • 1 month later...

Scusate ma il link della traccia va cambiato per ogni ordine nel template della mail?

 

No, il link si setta solo una volta nella pagina del corriere. Alla fine metti il carattere @ che verrà sostituito dal numero di tracking che invii di volta in volta, creando il link completo.

Link to comment
Share on other sites

Ho seguito tutti i passaggi alla lettera....nelle impostazioni del corriere che nel mio caso è gls alla voce Url ho messo : http://www.gls-italy.com/verifica_consegna_anonimo.asp...

 

Ma quando invio la mail mi esce:

 

Il tuo ordine con riferimento EMIAGYJXB è stato spedito. Corriere Espresso: Corriere Espresso GLS Codice di invio: fs 8145434 Puoi monitorare il suo percorso cliccando il link seguente: Puoi rivedere questo ordine e scaricare la fattura dalla sezione "Cronologia ordine" del tuo account cliccando su "Il mio account" nel nostro sito web.

Se hai un account ospite, puoi seguire il tuo ordine nella sezione "Controllo ordini ospite" del nostro sito web.

 

 

praticamente il campo del link è vuoto...dove devo inserirlo il link del corriere?

 

 

grazie

Link to comment
Share on other sites

Il link del corriere va inserito nel campo "URL" nella pagina del tuo corriere. Per UPS il link da inserire è questo:

http://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=@

in pratica, quando inserisci nella pagina ordine il numero di tracking, il carattere "@" viene sostituito con il numero di tracking, componendo un link completo.

Il link di GLS non lo conosco, devi cercarlo e vedere se permette questa funzione. Altrimenti puoi solo inserire un link di rimando a una pagina che il cliente dovrà compilare con i dati ricevuti nella mail, tipo quello delle poste italiane:

http://www.poste.it/online/dovequando/start.do?subaction=raccomandata

Nessuna chiocciola, nessun link automatico. Il cliente inserirà la data e il tracking da solo.

 

Ho letto a suo tempo che a volte, se esce il link vuoto, può essere un bug di PS. Consigliavano di cancellare il corriere e riscriverlo ex novo con inserito subito il link nel campo URL, questo risolveva il problema del campo vuoto quando veniva inserito in un secondo momento rispetto alla creazione del corriere.

Link to comment
Share on other sites

  • 2 months later...

Ciao, sto iniziano adesso a fare un e-commerce con prestashop, ho la vers 1.5.4 e ho notato l'errore "reso merce" al posto di "tracking spedizione " nel BO nel dettaglio ordine dove inserire il numero spedizione. Questo l'ho corretto tramite file admin.php.

Però adesso lo stesso problema mi si ripresenta nel dettaglio ordine dell'account che compra la merce, il numero di spedizione esce sotto la voce "RESO MERCE" anche al cliente. Come faccio a cambiarlo?? Grazie

Link to comment
Share on other sites

Ciao, sto iniziano adesso a fare un e-commerce con prestashop, ho la vers 1.5.4 e ho notato l'errore "reso merce" al posto di "tracking spedizione " nel BO nel dettaglio ordine dove inserire il numero spedizione. Questo l'ho corretto tramite file admin.php.

Però adesso lo stesso problema mi si ripresenta nel dettaglio ordine dell'account che compra la merce, il numero di spedizione esce sotto la voce "RESO MERCE" anche al cliente. Come faccio a cambiarlo?? Grazie

 

Ciao, scusa il ritardo ma poco tempo per PS forum... :-(

Hai ragione, è sopravvissuto anche questo "reso merce". :blink:

Per tradurlo, senza andare a scomodare la modifica del file admin.php, vai nel BO Localizzazione>Traduzioni>Traduzioni Front Office e ovviamente clicca la bandiera italiana. Tramite il browser cerca "order-detail" (ctrl+F di solito). Qui vedrai il capolavoro di traduzione "tracking number" in "reso merce". Correggilo, salva ed è fatto. :D

Link to comment
Share on other sites

Finalmento riesco a implementare il tracking number come desideravo: Grazie!

 

una cosa però:

 

modificando direttamente il controller quando si aggiorna ps si perde la modifica...

conviene inserire tutta la funzione postProcess() nel relativo override: override/controllers/admin/AdminOrdersController.php

 

ciao

Link to comment
Share on other sites

Finalmento riesco a implementare il tracking number come desideravo: Grazie!

 

una cosa però:

 

modificando direttamente il controller quando si aggiorna ps si perde la modifica...

conviene inserire tutta la funzione postProcess() nel relativo override: override/controllers/admin/AdminOrdersController.php

 

ciao

 

Vero, un po' la mia incapacità (ho scoperto dopo che esiste l'override), un po' il fatto che col cavolo aggiorno, nessuna voglia di andarmi a cercare altre rogne! Ogni versione nuova è vero che toglie dei problemi, ma se ne porta altri... E così non mi sono sbattuto tanto per questo problema.

Link to comment
Share on other sites

  • 2 weeks later...
  • 8 months later...

FATTO, FUNZIONA BENE... GRAZIE!

 

UN DUBBIO: Ho preferito non togliere l'invio della mail nello stato "spedito" in quanto utilizzo anche la posta prioritaria che non ha ovviamente tracciatura e numero traking ... come risolvereste la storia che al cliente arrivano 2 mail di conferma spedizione utilizzando i corrieri e la raccomandata ?

Link to comment
Share on other sites

  • 1 year later...

Ciao a tutti, provo a scrivere nonostante il post sia datato, come avete gestito le spedizioni estere? e con cosa spedite?
Io spedisco spesso con posta assicurata estera, in quanto i miei pacchi sono piccolini.....
Il problema nasce dal fatto che imposto correttamente i vari mezzi di spedizione, ma inserendo il link per la tracciatura delle poste e poi il codice....il cliente se clicca ottiene la pagina vuota senza codice.....come posso risolvere?

potrei inviare un messaggio privato in seguito con il codice ma poi riempire il cliente di mail.....soluzioni?

Link to comment
Share on other sites

  • 5 months later...

Ciao!

Dopo aver perso un numero imprecisato di ore (molte) per merito dell'ignorante che nella pagina del dettaglio ordine ha tradotto "tracking number" con "reso merce" (cosa non corretta neanche nella 1.5.1.0 blink.png ), ho finalmente risolto il capitolo dell'invio del tracking number come desideravo. Posto qui ciò che ho fatto, magari è utile a qualcun altro.

 

Il problema: non mi piace l'invio predefinito di email di PS che segnala l'invio della merce: segna l'ordine come "consegna in corso", avvisando che seguirà email con url di tracking, un "pacco in viaggio". Mi sembra molto più logico un cambio di stato dell'ordine in "spedito" e invio di una email "pacco spedito" con contestuale compagnia di spedizione, numero di tracking, url di tracking.

 

Qui di seguito le modifiche da apportare al codice (due righe) e quelle da apportare a un template email.

  • aprire il file /controllers/admin/AdminOrdersController.php:
  • cercare la funzione (riga 298):

	  $templateVars = array(
	   '{followup}' => str_replace('@', $order->shipping_number, $carrier->url),
	   '{firstname}' => $customer->firstname,
	   '{lastname}' => $customer->lastname,
	   '{id_order}' => $order->id,
	   '{order_name}' => $order->getUniqReference()
	  );
  • aggiungere le due righe:

	   '{company}' => $carrier->name,
	   '{tracking}' => $order->shipping_number,
  • diventerà quindi così:

	  $templateVars = array(
	   '{followup}' => str_replace('@', $order->shipping_number, $carrier->url),
	   '{firstname}' => $customer->firstname,
	   '{lastname}' => $customer->lastname,
	   '{company}' => $carrier->name,
	   '{tracking}' => $order->shipping_number,
	   '{id_order}' => $order->id,
	   '{order_name}' => $order->getUniqReference()
	  );
  • in BO, su traduzioni==>email (va fatto per tutte le lingue utilizzate) cercare il template “in_transit” e modificare l'oggetto in "Ordine spedito!" e il template con questo codice html:

<table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 550px;">
<tbody>
<tr>
<td align="left"><a title="{shop_name}" href="{shop_url}"><img style="border: none;" src="{shop_logo}" alt="{shop_name}" /></a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Salve <strong style="color: #db3484;">{firstname} {lastname}</strong>,</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="background-color: #db3484; color: #fff; font-size: 12px; font-weight: bold; padding: 0.5em 1em;" align="left">La cronologia del tuo ordine n.{id_order}</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><strong>Il tuo ordine con riferimento {order_name} è stato spedito.</strong></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Compagnia di spedizione: <strong>{company}</strong></td>
</tr>
<tr>
<td align="left">Codice di invio: <strong>{tracking}</strong></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Puoi monitorare il suo percorso cliccando il link seguente: <a href="{followup}">{followup}</a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Puoi rivedere questo ordine e scaricare la fattura dalla sezione <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=history">"Cronologia ordine"</a> del tuo account cliccando su <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=my-account">"Il mio account"</a> nel nostro sito web.</td>
</tr>
<tr>
<td align="left">Se hai un account ospite, puoi seguire il tuo ordine nella sezione <a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}?controller=guest-tracking">"Controllo ordini ospite</a>" del nostro sito web.</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="font-size: 10px; border-top: 1px solid #D9DADE;" align="center"><a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}">{shop_name}</a> powered with <a style="text-decoration: none; color: #374953;" href="http://www.prestashop.com/">PrestaShop™</a></td>
</tr>
</tbody>
</table>
  • in ordini==>"stati ordine" all’ID4 “consegna in corso” levare la spunta su “invia email al cliente.
All'invio dell'ordine con il corriere (quindi già in possesso del tracking), si aggiorna nel BO lo stato dell’ordine su “spedito” (consegna in corso): con questa operazione NON si invia alcuna email al cliente. Si inserisce ora il tracking nel campo apposito e così si invia contestualmente l’email al cliente con tutti i dati.

Il testo della mail, con l'html proposto prima, è qualcosa tipo questo:

 

 

 

Il tuo ordine con riferimento QOXOIGTII è stato spedito.

 

Compagnia di spedizione: UPS

Codice di invio: pppopopopo

 

Puoi monitorare il suo percorso cliccando il link seguente: http://wwwapps.ups.c...Nums=pppopopopo

 

 

 

Il link di controllo deve ovviamente essere personalizzato con quello appropriato.

 

Spero sia utile a qualcuno.

 

PS: e ricordatevi di correggere "Reso merce" con "Tracking number"! tongue.pnglaugh.png

 

 

Ciao,

 

sai come posso fare per la versione 1.0.64 ?

Riesco ad aggiungere le 2 righe di codice ma non riesco a modificare la traduzione della mail...

L'unico campo ben editabile dove inserire il tuo codice html è quello del file TXT ma, se modifico anche una sola virgola, mi stravolge il formato di tutte le mail e mi cancella i loghi dalle mail.

 

Grazie per l'eventuale supporto.

Link to comment
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
×
×
  • Create New...