La factura es un documento comercial obligatorio utilizado por usted y millones de otras tiendas en línea.
¿Cómo destacar en un entorno tan competitivo?
¿Cómo hacer que el documento sea claro, único y sin altos costos?
Hoy hablaremos sobre cómo hacerlo sin ninguna habilidad de desarrollo. Consideraremos cómo hacer facturas automáticamente, adjuntar una factura en PDF a un correo electrónico y crear una versión en PDF personalizada.
¡Empecemos!
Resumen del artículo [ ocultar ]
- Cómo crear facturas enviadas automáticamente en Magento 2 mediante programación
- Cómo adjuntar una factura en PDF a un correo electrónico en Magento 2
- Solución 1
- Solución 2
- Personaliza tu factura en PDF
- Agregue su logotipo a la factura en PDF usando la configuración del panel de administración de vainilla
- Opciones de personalización avanzadas con el módulo de factura en PDF de Amasty
Cómo crear facturas enviadas automáticamente en Magento 2 mediante programación
Todos los comerciantes de Magento 2 buscan personalizar el PDF de la factura para reducir el tiempo dedicado al proceso y destacar frente a la competencia. Sin embargo, para hacerlo automáticamente, debe desarrollar un módulo personalizado.
Si no desea desperdiciar dinero en el desarrollo de extensiones personalizadas o no tiene tiempo para desarrollar extensiones usted mismo, entonces puede probar nuestras Acciones de pedidos masivos . Este módulo le permite crear facturas de forma masiva en la cuadrícula de pedidos. Ya no necesita abrir cada pedido uno por uno para hacer una factura. ¡Ahorre su tiempo para ofertas más importantes!
Digamos que está seguro de sus habilidades de desarrollo y desea crear un módulo personalizado. Así que echa un vistazo a los siguientes consejos que hemos preparado para ti.
Paso 1. Vaya a app/code/<Vendor>/<Module>/etc , cree module.xml e inserte el siguiente código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Paso 2. Agregue registration.php a app/code/<Vendor>/<Module> y registre el mod ingresando el código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Paso 3. Luego vaya a <Proveedor>/<Módulo>/etc y cree events.xml . Utilice este código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Paso 4. Para este paso, debe crear una clase de observador. Vaya a <Vendor>/<Module>/Observer y agregue el archivo CheckoutAllSubmitAfterObserver.php , luego ingrese el código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Paso 5. Lo último que debe hacer es crear un archivo Data.php en <Vendor>/<Module>/Helper y pegar este código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Paso 6. Lo último que crearemos ahora es el archivo que permite activar y desactivar este módulo en el panel de administración. Cree <Proveedor>/<Módulo>/etc/adminhtml/system.xml y use el siguiente código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Y eso es todo.
Ejecute los siguientes comandos después de instalar este módulo:
php bin/magento cache:vaciar
php bin/magento setup:actualizar
php bin/magento setup:di:compilar
php bin/magento setup:static-content:implementar
php bin/magento setup:actualizar
Ahora las facturas se crearán automáticamente.
Cómo adjuntar una factura en PDF a un correo electrónico en Magento 2
Agregar una factura en PDF a un correo electrónico de confirmación es otro desafío común. Y tenemos dos soluciones para usted.
Solución 1
Si tiene buenas habilidades técnicas, puede intentar crear un módulo personalizado para esta opción. A continuación encontrará instrucciones que le ayudarán con esto.
Solución 2
O puede crear una factura personalizada con Magento 2 PDF Customizer . Este complemento le permite diseñar una plantilla de factura PDF de Magento personalizada directamente en el panel de administración utilizando una herramienta HTML/CSS y adjuntarla a sus correos electrónicos de factura. Puede configurar esto con unos pocos clics. Consideremos un ejemplo rápido. Vaya a Tiendas>Configuración>Extensiones de Amasty>Personalizador de PDF>Factura , elija una plantilla de la lista y seleccione Sí en el menú desplegable Agregar PDF adjunto a correos electrónicos para clientes automáticamente :
Y eso es todo, así de simple.
Si todavía siente que la codificación es lo que necesita, siga las instrucciones a continuación.
Paso 1. Cree y registre un nuevo módulo como se mostró al principio del artículo . Los archivos module.xml , registration.php deben estar en cada nuevo módulo.
Paso 2. A continuación, debe anular InvoiceOrder en Magento/Sales/Model y agregar este comentario:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Paso 3. Ahora necesita crear events.xml en <Proveedor>/<Módulo>/etc con código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Paso 4. Agregue el observador sales_order_shipment_save_after en <Vendor>/<Module>/Observer y luego ingrese el código:
div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }
Personaliza tu factura en PDF
Agregue su logotipo a la factura en PDF usando la configuración del panel de administración de vainilla
Puede personalizar la factura en PDF solo con su logotipo y dirección en Magento predeterminado. Para hacerlo ve a Tiendas>Configuración :
Elija Ventas en la pestaña Ventas :
Abra Diseño de factura y albarán y explore la imagen:
Luego haga clic en el botón Guardar configuración .
Opciones de personalización avanzadas con el módulo de factura en PDF de Amasty
Si quieres obtener más opciones de personalización, prueba nuestro Personalizador de PDF para Magento 2. Cuenta con un editor de HTML/CSS donde puedes cambiar el texto de tu archivo PDF, agregar variables, cambiar fuentes, colores, agregar un logo, etc. Para ello, vaya a Marketing>Plantillas PDF de Amasty . Haga clic en el botón Agregar nueva plantilla :
Elija el patrón necesario del menú desplegable y cárguelo. No solo hay una plantilla de factura, sino también una nota de crédito, un pedido y un envío:
Luego verá dónde ya se usa esta plantilla. Debe dar un título a la plantilla, puede cambiar el contenido y los estilos:
Lo que es aún más conveniente, ahora puede obtener una vista previa de los cambios antes de guardar el formulario haciendo clic en Vista previa de la plantilla :
Cuando esté listo, guarde los cambios para usar esta plantilla en sus correos electrónicos.
De esta manera, puede agregar un número ilimitado de plantillas de factura y realizar el cambio de Magento 2 de una plantilla PDF de factura existente. Este es solo uno de los ejemplos de facturas en PDF:
Así, los compradores tendrán la posibilidad en Magento de imprimir facturas en PDF y descargarlas desde su cuenta:
¿Cuáles son los beneficios? Este módulo le brinda la opción de crear facturas únicas (y no solo) sin ningún conocimiento de codificación.
¡Agregue un número ilimitado de plantillas de facturas!
¡Eso es todo por hoy!
No dude en hacer sus preguntas en la sección de comentarios a continuación, estaremos encantados de ayudarle.