Personalizzare le email

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

Rispondi
tigrotto22
membro Junior
membro Junior
Messaggi: 14
Iscritto il: 11/11/2003, 1:00
Località: Italia
Contatta:

Personalizzare le email

Messaggio da tigrotto22 »

Sto cercando di personalizzare Osc aggiungendo indicazioni a del testo nelle email inviate automaticamente ai clienti. Ho notato che il file che comanda gli invii è (credo) "admin/mail.php". Qui però ci sono solo i richiami ai dati inseriti nel Db. Come posso fare ad inserire del normale testo? Quale parte del file è da editare?
Grazie.
BluEdoG
membro Master
membro Master
Messaggi: 1064
Iscritto il: 25/05/2003, 0:00
Località: italia
Contatta:

Messaggio da BluEdoG »

nelle corrispondente file tradotto in italiano, oppure intervenendo sul codice direttametnte (che non è mail.php ma è all'interno dei file preposti all'invio) che pero' ha la rogna di non essere "usabile" se il sito è in multilingua.
saluti, Caneblu
[ www.caneblu.com ]
tigrotto22
membro Junior
membro Junior
Messaggi: 14
Iscritto il: 11/11/2003, 1:00
Località: Italia
Contatta:

Messaggio da tigrotto22 »

Purtroppo non è così. Nelle mail di riepilogo ordini vengono estrapolati solo i dati relativi al cliente, all'ordine effettuato, al luogo di spedizione ecc. senza altro testo.
Non c'è quindi un file della lingua da cui "pesca" il testo.
Comunque sto vedendo di risolvere altrimenti.
Grazie lo stesso.
BluEdoG
membro Master
membro Master
Messaggi: 1064
Iscritto il: 25/05/2003, 0:00
Località: italia
Contatta:

Messaggio da BluEdoG »

c'è eccome, ma non è un file unico, per esempio checkout_process.php
saluti, Caneblu
[ www.caneblu.com ]
tassoman
membro Baby
membro Baby
Messaggi: 67
Iscritto il: 31/03/2004, 0:00
Località: IT

Messaggio da tassoman »

e se ad esempio, più specificatamente volessimo mettere

NEGOZIO >> CATEGORIA >> PRODOTTO

nel subject della mail .... :roll:

Io mi sto spulciando checkout_process

ma è alquanto complicato :cry:
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Re: Personalizzare le email

Messaggio da Bass »

tigrotto22 ha scritto: Come posso fare ad inserire del normale testo? Quale parte del file è da editare?
Come ti ha detto BluEdoG il file da modificare e' checkout_process.php a partire da dove c'e' l'indicazione // lets start with the email confirmation
Ad esempio io ho messo all'inizio della mail, subito sotto il nome del negozio la frase "Grazie per il tuo ordine" + nome e cognome dell'acquirente facendo in questo modo:

EMAIL_TEXT_MESSAGE . ' ' . $order->customer['firstname'] . ' ' . $order->customer['lastname'] . "\n" .

EMAIL_TEXT_MESSAGE e' il messaggio "Grazie per il tuo ordine" che ho definito in includes/languages/italian (e le altre lingue)/checkout_process.php mentre le altre due sono le variabili che richiamano nome e cognome.

Praticamente ho inserito la parte di codice qui:

// lets start with the email confirmation
$email_order = STORE_NAME . "\n" .
EMAIL_TEXT_MESSAGE . ' ' . $order->customer['firstname'] . ' ' . $order->customer['lastname'] . "\n" .
EMAIL_SEPARATOR . "\n" .
EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";


Se devi inserire del testo all'inizio dell'email segui un procedimento simile, non e' per niente difficile, basta fare qualche prova :D

'iao

Sergio
tassoman
membro Baby
membro Baby
Messaggi: 67
Iscritto il: 31/03/2004, 0:00
Località: IT

Messaggio da tassoman »

Grazie, ottima idea quella di personalizzare la email, farò anche io come hai fatto te, col nome e cognome.

Però il capo mi ha chiesto che appaia almeno il nome della categoria in cui è stato effettuato l'ordine nell subject! :oops:

C'è l'uso della variabile tipo EMAIL_TEXT_MESSAGE anche per la subject?
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

tassoman ha scritto: C'è l'uso della variabile tipo EMAIL_TEXT_MESSAGE anche per la subject?
Quello che viene scritto nel soggetto e' dato da EMAIL_TEXT_SUBJECT che trovi nei file checkout_process.php dei vari linguaggi.
Per mettere qualcosa di variabile dovresti creare appunto una variabile tipo $email_subject ed assegnargli i valori che vuoi tu.
Non ho idea quale sia quella della categoria, ma c'e' di sicuro, quella per il prodotto ad esempio e' poche righe piu' sopra $order->products, devi fare qualche prova :D

'iao

Sergio
tassoman
membro Baby
membro Baby
Messaggi: 67
Iscritto il: 31/03/2004, 0:00
Località: IT

Messaggio da tassoman »

Perrrffetto grazie! :wink:
Ma proverò lunedì..................... :roll:
Oggi è domenica.. :twisted:
tassoman
membro Baby
membro Baby
Messaggi: 67
Iscritto il: 31/03/2004, 0:00
Località: IT

Messaggio da tassoman »

allora, la parte di codice che inserisce i dati dell'ordine è questa

Codice: Seleziona tutto

  for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
    $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
  }
$order_totals viene definito all'inizio di checkout_process.php

Codice: Seleziona tutto

  $order_totals = $order_total_modules->process();
$order_total_modules è un nuovo oggetto:

Codice: Seleziona tutto

  require(DIR_WS_CLASSES . 'order_total.php');
  $order_total_modules = new order_total;
Ma io con la programmazione ad oggetti, sono una vera chiavica.
Secondo voi c'e' modo di ottenere le categorie appartenenti agli oggetti ordinati? :?:
neeo
membro Junior
membro Junior
Messaggi: 29
Iscritto il: 25/06/2004, 0:00
Località: ITA

...

Messaggio da neeo »

interessante

ho provato a modificare l'invio delle e-mail "ad altri", sfruttando il campo già esistente nel db, ma riscontro degli errori...

In pratica vorrei inviare una mail ad un altro indirizzo SOLO SE, ad esempio, l'acquirente risiede nella zona di napoli:

// send emails to other people

EMAIL_STATE . ' ' . $order->customer['state'] . "\n" .

if (EMAIL_STATE == 'NA') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

}

Dov'è che sbaglio? (sicuramente la sintassi)
neeo
membro Junior
membro Junior
Messaggi: 29
Iscritto il: 25/06/2004, 0:00
Località: ITA

...

Messaggio da neeo »

:D

if ($order->customer['state'] == 'Napoli') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
}

così funziona :D
Rispondi