Buongiorno,
Non ho molta esperienza su Magento e mi scuso anticipatamente se mi scapperanno inesattezze varie e terminologia fantasiosa.
Lavoro su un sito che non ho fatto io su cui gira la versione 1.9.1 di Magento
Ho un problema con le email commercali (e-mail transazionali) e sulla relativa formattazione.
Tutti i blocchi vengono inseriti nelle relative tabelle tranne il blocco dei prodotti.
Documentandomi in giro e controllando il template ho capito che questo blocco è regolato dalla funzione "sales_email_order_items" la quale è richiamata in sales.xml la quale a sua volta rimanda a vari phtml.
Finora ho capito che questo sales.xml deve essere in una cartella layout e i phtml in una cartella sales dentro template (tutto dentro design - > frontend -> cartella del tema che ho installato)
Purtroppo nella cartella layout del tema non c'è il sales.xml e nemmeno i vari phtml.
Ho visto che il sales è sia in frontend -> base -> default - > layout sia in adminhtml -> base -> default -> default -> layout.
In sostanza vorrei capire quali file utilizza e quali no per capire cosa prende e cosa poter modificare.Il fatto che non formatti la parte dei prodotti mi fa pensare che quella funzione non venga richiamata alla perfezione e magari i link che ha non sono utilizzati in maniera corretta.
ho provato a fare un po' di prove semplici anche solo per capire quale sales.xml utilizza (prove del tipo rinominare il file in maniera diversa) ma nulla.
Avevo provato anche a aggiungere tutto nella cartella del tema ma nulla di nuovo.
Essendo un niubbo di magento impazzisco sempre quando c'è da trovare i file con questa struttura complicata di cartelle.
A disposizione per ulteriori dettagli, ringrazio anticipatamente per le eventuali risposte.Help Me
Solved! Go to Solution.
Alla fine sono riuscito a risolvere, non ho compreso proprio come e cosa non andava ma era un problema di css.
La soluzione che ho applicato è stato richiamare nel template della mail un css già presente tra i file di Magento.
{{inlinecss file="email-inline.css"}}
Quello che penso è che il template mail che usiamo non pescava bene gli stili perché forse qualche classe era cambiata.
Io pensavo erroneamente che non venisse direttamente messo nelle tabelle mentre in realtà a quanto pare mancava lo stile.
Ciao,
ti consiglio di studiare come funziona il sistema di layout di Magento e di non improvvisare; puoi partire dalla Design Guide ufficiale: http://info.magento.com/rs/magentocommerce/images/MagentoDesignGuide.pdf
Ad ogni modo il caricamento dei file di layout e di template (oltre che degli asset che trovi nella cartella skin) è regolato da un meccanismo detto di "fallback" che cerca le risorse rispettivamente nel seguente ordine:
tuo package / tuo tema
tuo package / tema default
base package / tema default
di sconsiglio di modificare i file nel base package, al più copiali in uno dei due precedenti e modifica quelli;
l'ideale è utilizzare un file di layout nominato "local.xml" nel tuo tema e inserire lì tutte le direttive di layout necessarie.
Un saluto
Ok, grazie mille, è un buon punto di partenza, mi documento e torno alla carica.
Dando un'occhiata veloce ho capito che quindi se la mail di riepilogo ordini non viene nemmeno renderizzata come sarebbe di default e non ci sono i file nella cartella del tema a logica vuol dire che qualcuno ha messo mano ai file core di design.
Ciao,
per toglierti ogni dubbio ti consiglio di scaricare una versione pulita di Magento e confrontare il contenuto delle cartelle.
Altro suggerimento: non eliminare mai i contenuti della cartella di locale en_US perché è la cartella di fallback predefinita.
Un saluto
Volevo porre attenzione a un altro aspetto. Magento dalla 1.9 usa delle email differenti.
Siccome sono stati aggiunti nuovi blocchi e nuove variabili, il sistema non è retrocompatibile.
Ti consiglio di verificare che:
- la traduzione e le email tradotte siano ufficiali e senza modifiche
- i template email siano quelli corretti e non magari template differenti basati su versioni precedenti la 1.9
Innanzitutto grazie delle risposte e dei suggerimenti.
Cercherò di fare i controlli su quello che avete indicato (essendo un niubbo mi è anche un pochino complesso fare i controlli).
Ho comunque capito il cuore del problema dove sta analizzando l'html delle mail generate.
In sostanza l'elenco prodotti viene richiamato da questa riga nel template:
{{layout handle="sales_email_order_items" order=$order}}
I prodotti nella mail vengono fuori ma non vengono inseriti in una tabella ma elencati senza stile.
Mentre gli altri elementi vengono inseriti nelle tabelle i prodotti nisba.
Ho cercato la funzione (è una funzione?) sales_email_order_items è in un file: order->items.phtml
Lì dentro sembra essere tutto a posto (elementi nelle tabelle inseriti correttamente).
Continuo ad indagare.
Ora proverò da backend ad aggiungere un nuovo template per le mail.
>sales_email_order_items
>Ho cercato la funzione (è una funzione?) sales_email_order_items è in un file: order->items.phtml
no, è un layout handle che identifica un gruppo di regole di layout che devono essere applicate dal motore di rendering di Magento e che solitamente sono definite nei file XML di layout.
Nel caso specifico, per un template standard puoi guardare le regole applicate dal layout handle sales_email_order_items nel file XML di layout seguente:
<magento_dir>/app/design/frontend/base/default/layout/sales.xml
cercando il tag <sales_email_order_items>
Un saluto,
Alessandro
Alla fine sono riuscito a risolvere, non ho compreso proprio come e cosa non andava ma era un problema di css.
La soluzione che ho applicato è stato richiamare nel template della mail un css già presente tra i file di Magento.
{{inlinecss file="email-inline.css"}}
Quello che penso è che il template mail che usiamo non pescava bene gli stili perché forse qualche classe era cambiata.
Io pensavo erroneamente che non venisse direttamente messo nelle tabelle mentre in realtà a quanto pare mancava lo stile.
Ovviamente ho poi creato una copia di quel .css già presente e poi ho editato in modo da dare lo stile che volevo alla mail.