Email pedido->no muestra productos del pedido

Tema en 'Foro de Errores' iniciado por Naniantropo, 19/4/16.

  1. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    Buenas tardes, llevo un par de semanas persiguiendo un error en magento el cual no me permite mostrar en el correo que recibe el responsable de ventas ni el cliente los productos que ha comprado,me gustaria saber si no es excesivamente extenso la estructura que siguen los datos internos para poder revisarla y reparar el fallo,muchas gracias y disculpad si esta duplicado el hilo pero no encontre algo parecido
     
  2.  
    Comunidad Magento orgullosamente patrocinada por el hosting y vps magento de FactoriaDigital.com.
  3. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    No se si he entendido bien la pregunta, pero dentro del fichero sales.xml del layout de tu plantilla tienes este handle: sales_email_order_items
    que es el que se encarga de mostrar la estructura de la información que pides.
     
  4. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    muchas gracias por tu rapida respuesta seguire por el camino que me has indicado.
     
  5. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    sabeis si hay alguna opcion desde el backend de magento para mostrar esta informacion o tiene que generarse toda desde los ficheros?
     
  6. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    La información de los pedidos se genera desde los ficheros de plantilla (Apoyado en los bloques, modelos...) por lo que todo lo tendrás que editar desde allí, no hay nada de eso en el backend.
     
  7. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    Buenos dias no consigo solucionar el problema,en los emails no muestra los productos que ha comprado el cliente

    {{layout handle="sales_email_order_items" order=$order}}

    ¿como averiguo donde tengo que localizar el archivo sales.xml y que contenido tiene que tener su funcion sales_email_order_items
     
  8. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    El fichero sales.xml estará dentro de tu plantilla, y sino en las plantillas superiores.
    Todo dependerá de como esté la estructura de tu plantilla, por ejemplo:

    - Si tu plantilla es algo de este estilo: app/design/frontend/default/miplantilla/
    El fichero sales.xml será el primero que encuentres dentro de estas carpetas.
    app/design/frontend/default/miplantilla/layout
    app/design/frontend/default/default/layout
    app/design/frontend/base/default/layout

    - Si tu plantilla es algo de este estilo: app/design/frontend/mitheme/miplantilla/
    El fichero sales.xml será el primero que encuentres dentro de estas carpetas.
    app/design/frontend/mitheme/miplantilla/layout
    app/design/frontend/mitheme/default/layout
    app/design/frontend/base/default/layout

    Dentro de ese fichero tienes que buscar:
    <sales_email_order_items>
    ...
    </sales_email_order_items>

    También tienes que buscar dentro de los ficheros local.xml ya que sobreescriben a todo lo anterior, pero solo en la carpeta de tu plantilla.

    Una vez localizado verás algo similar a esto:

    <sales_email_order_items>
    <block type="sales/order_email_items" name="items" template="email/order/items.phtml">
    <action method="addItemRender"><type>default</type><block>sales/order_email_items_order_default</block><template>email/order/items/order/default.phtml</template></action>
    <action method="addItemRender"><type>grouped</type><block>sales/order_email_items_order_grouped</block><template>email/order/items/order/default.phtml</template></action>
    <block type="sales/order_totals" name="order_totals" template="sales/order/totals.phtml">
    <action method="setLabelProperties"><value>colspan="3" align="right" style="padding:3px 9px"</value></action>
    <action method="setValueProperties"><value>align="right" style="padding:3px 9px"</value></action>
    <block type="tax/sales_order_tax" name="tax" template="tax/order/tax.phtml">
    <action method="setIsPlaneMode"><value>1</value></action>
    </block>
    </block>
    </block>
    <block type="core/text_list" name="additional.product.info" />
    </sales_email_order_items>


    Y esto quiere decir que los ficheros .phtml que ves en ese código son los ficheros que se utilizan como plantilla del correo.
     
  9. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    primero darte las gracias por el tiempo que te tomas para ayudarnos a los mas noveles, he recorrido todos los archivos y he encontrado los archivos y segun el <sales_email_order_items> el atributo template estan el la ruta especifica pero sigue sin aparecer en el correo y no hay ficheros local.xml en el proyecto, muestra los otros datos, informacion de facturacion,de envio,metodo de pago, y transporte pero no muestra los productos debajo de todo esto,puede ser xk en el apartado de correos transaccionales no este haciendo la llamada correctamente? muchas gracias.
     
  10. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    Quizás lo tienes mal en el propio correo, ¿qué codigo tienes en el correo?
     
  11. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    // pongo el contenido de la plantilla desde el editor de texto del backend en magento
    <style type="text/css">
    body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; }
    </style>

    <div style="font:11px/1.35em Verdana, Arial, Helvetica, sans-serif;">
    <table cellspacing="0" cellpadding="0" border="0" width="98%" style="margin-top:10px; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; margin-bottom:10px;">
    <tr>
    <td align="center" valign="top">
    <!-- [ header starts here] -->
    <table cellspacing="0" cellpadding="0" border="0" width="650">
    <tr>
    <td valign="top"><a href="{{store url=""}}"><img src="{{skin url="images/logo_email.gif" _area='frontend'}}" alt="La Jara Regalos" style="margin-bottom:10px;" border="0"/></a></td>
    </tr>
    </table>
    <!-- [ middle starts here] -->
    <table cellspacing="0" cellpadding="0" border="0" width="650">
    <tr>
    <td valign="top">
    <p>
    <strong>¡Gracias por tu compra, {{var order.getCustomerName()}}!</strong><br/>
    <BR/>
    Tu pedido ha sido recibido y está siendo procesado. Tan pronto como esté listo para su expedición nos pondremos en contacto contigo y te enviaremos un correo confirmando el envío del mismo.<br/><BR/>

    También puedes comprobar el estado de tu pedido entrando en <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">tu cuenta</a>.<br/><BR/>

    Si has escogido como opción de pago el ingreso bancario o transferencia, sigue estas instrucciones para completar tu compra:<br/>
    <ul>
    <li>Realiza el ingreso o transferencia a la mayor brevedad para agilizar el proceso.
    <li>Indica en el concepto lo siguiente: "WEB Pedido # {{var order.increment_id}}".
    <li>Envía enseguida el justificante de pago preferentemente a <a href="mailto:********" style="color:#1E7EC8;">********</a>, o al fax <span class="nobr"> 957 323 742.</span>


    </ul> .<br/><BR/>

    Si tienes alguna duda, puedes contactar con nosotros por correo electrónico en <a href="*********" style="color:#1E7EC8;">**********</a> o en el teléfono<span class="nobr"> 661 800 188.</span>
    </p>
    <p>A continuación te mostramos la información de tu pedido.</p>

    <h3 style="border-bottom:2px solid #eee; font-size:1.05em; padding-bottom:1px; ">Pedido #{{var order.increment_id}} <small>(realizado el {{var order.getCreatedAtFormated('long')}})</small></h3>
    <table cellspacing="0" cellpadding="0" border="0" width="100%">
    <thead>
    <tr>
    <th align="left" width="48.5%" bgcolor="#d9e5ee" style="padding:5px 9px 6px 9px; border:1px solid #bebcb7; border-bottom:none; line-height:1em;">Información de facturación:</th>
    <th width="3%"></th>
    <th align="left" width="48.5%" bgcolor="#d9e5ee" style="padding:5px 9px 6px 9px; border:1px solid #bebcb7; border-bottom:none; line-height:1em;">Forma de pago:</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td valign="top" style="padding:7px 9px 9px 9px; border:1px solid #bebcb7; border-top:0; background:#f8f7f5;">
    {{var order.getBillingAddress().format('html')}}<br/>
    NIF/CIF: {{var order.getCustomerTaxvat()}}
    </td>
    <td>&nbsp;</td>
    <td valign="top" style="padding:7px 9px 9px 9px; border:1px solid #bebcb7; border-top:0; background:#f8f7f5;">
    {{var payment_html}}
    </td>
    </tr>
    </tbody>
    </table>
    <br/>
    {{depend order.getIsNotVirtual()}}
    <table cellspacing="0" cellpadding="0" border="0" width="100%">
    <thead>
    <tr>
    <th align="left" width="48.5%" bgcolor="#d9e5ee" style="padding:5px 9px 6px 9px; border:1px solid #bebcb7; border-bottom:none; line-height:1em;">Información del envío:</th>
    <th width="3%">prueba</th>

    <th align="left" width="48.5%" bgcolor="#d9e5ee" style="padding:5px 9px 6px 9px; border:1px solid #bebcb7; border-bottom:none; line-height:1em;">Forma y Gastos de envío:</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td valign="top" style="padding:7px 9px 9px 9px; border:1px solid #bebcb7; border-top:0; background:#f8f7f5;">
    {{var order.getShippingAddress().format('html')}}
    &nbsp;
    </td>
    <td>&nbsp;</td>
    <td valign="top" style="padding:7px 9px 9px 9px; border:1px solid #bebcb7; border-top:0; background:#f8f7f5;">
    {{var order.getShippingDescription()}}
    &nbsp;
    </td>
    </tr>
    </tbody>
    </table>
    <br/>
    {{/depend}}
    {{layout handle="sales_email_order_items" order=$order}}

    {{var items_html}}
    <br/>
    {{var order.getEmailCustomerNote()}}
    <p>Atentamente,<br/><strong>Dpto. de Atención al Cliente<br/>********.</strong></p>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </div>
     
  12. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    Pues el bloque que se encarga de la plantilla de los productos parece estar bien, es la parte de:
    {{layout handle="sales_email_order_items" order=$order}}

    Tienes que tener algún error por ejemplo en la codificación de los ficheros o algo que esté pasando.
    Revisa los logs por si acaso.
     
  13. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    he cambiado de tema en la pagina recientemente ¿puede estar relacionado?
     
  14. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    Podría estar... sin verlo en este caso es bastante complicado.
     
  15. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    Al parecer fallan todas las referencias los bloques que estan el documento sales.xml
     
  16. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    Eso es porque hay algo mal en ese xml, revisa la estructura del xml. Normalmente algun typo o algún tag que no se ha cerrado correctamente.
    Si quitas el xml de tu plantilla (por ejemplo renombrando la extensión) para que lea el xml por defecto de la plantilla base, puedes probar si eso soluciona el problema.
     
  17. Naniantropo

    Naniantropo Nuevo usuario

    11
    0
    1
    los ficheros sales.xml son genericos? para poder descargar uno correcto

    por otro lado la plantilla sobre la que estoy trabajando

    /app/design/frontend/blank/theme020

    dentro del backend en el apartado configuracion-> diseño ahi se marca que tema estoy usando por lo tanto deberian estar todas las configuraciones dentro de esas rutas.

    puede haber alguna configuración que no este dentro de ese raiz de carpertas?
     
  18. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    El fichero sales.xml dependerá de la plantilla.
    Pero cada plantilla solo modifica aquellos ficheros que necesita para mostrar su diseño. Por ejemplo, si yo modifico la página del carrito, donde se presentan todos los productos, necesitaré modificar en mi plantilla el fichero app/design/frontend/blank/theme020/template/checkout/cart.phtml
    Pero si esa página no la voy a modificar para nada y me quedo con el diseño original pues no necesito ese fichero en mi plantilla.
    Entonces la pregunta sería ¿Y si en mi plantilla no existe ese fichero como lo "pinta" Magento cuando estoy en el carrito?
    En este caso Magento, "acude" a leer sobre las plantillas "padre", para encontrar y leer ese fichero.
    En tu caso sería:

    app/design/frontend/blank/theme020/template/checkout/cart.phtml
    app/design/frontend/blank/default/template/checkout/cart.phtml
    app/design/frontend/base/default/template/checkout/cart.phtml

    El primero de esos ficheros que encuentre será el que "pinte"

    Esto que era un ejemplo con un fichero phtml, funciona de la misma forma con los xml dentro de la carpeta layout.
    Si en tu plantillas no tienes un fichero sales.xml lo buscará en app/design/frontend/blank/default/layout/sales.xml, y si tampoco existe en app/design/frontend/base/default/layout/sales.xml y aquí lo encontrará porque forma parte de la plantilla base de Magento.

    Lo normal es que yo solo ponga en mi plantilla aquellos ficheros que modifico para los intereses de mi plantilla.
    Si la plantilla estuviese bien programada, en lugar de utilizar los ficheros sales.xml utilizaría un fichero de layout genérico llamado "local.xml" y dentro de ese fichero metería solo aquellos trozos de código que he modificado de los layout (de los xml), dejando el resto de xml que se lean por defecto de la plantilla genérica de Magento.

    Por lo tanto, en tu plantilla busca el fichero sales.xml o el fichero local.xml
    Si no existe ninguno de los dos, el fichero que se lee es el genérico y lo que puedes hacer es (con copia de seguridad de ese fichero), coger una distro que coincida con tu versión de Magento y sacar ese fichero para probar que no sea por algún error.
    Si existe alguno de esos, revisa que ninguno tenga la llamada <sales_email_order_items>
     
Cargando...

Compartir esta página

Cargando...