FroshTemplateMail
FroshTemplateMail copied to clipboard
This plugin allows you to use Smarty in your template mails
Store Shopware mail templates in theme
This plugin allows to store the mails in theme instead of database. This gives us advantages like
- easier deployment
- translate it using snippets
- build your mail template using includes / extends / blocks / inheritance
- usage of theme configuration
Requirements
- Shopware 5.4.x or higher
- PHP 7.0
Installation
- Download latest release
- Extract the zip file in
shopware_folder/custom/plugins/
Template location
Create a mail for a specific subshop or language shop (also inheritance in shops works)
Search order in example with sOrder:
HTML Template
themes/Frontend/MyTheme/email/sORDER-SHOPID.html.tpl(Shop ID)themes/Frontend/MyTheme/email/sORDER.html.tpl(Default)- Database saved values
Text Template:
themes/Frontend/MyTheme/email/sORDER-SHOPID.text.tpl(Shop ID)themes/Frontend/MyTheme/email/sORDER.text.tpl(Default)- Database saved values
Subject Template:
themes/Frontend/MyTheme/email/sORDER-SHOPID.subject.tpl(Shop ID)themes/Frontend/MyTheme/email/sORDER.subject.tpl(Default)- Database saved values
Loaders
Available loaders
Write your own loader
You can also implement your custom loader. Create a new class and implement the interface FroshTemplateMail/Components/Loader/MailLoaderInterface and register it using tag frosh_template_mail.loader.
Example
<?php
namespace MyPlugin;
use FroshTemplateMail\Components\Loader\MailLoaderInterface;
use Shopware\Models\Mail\Mail;
class TwigMailLoader implements MailLoaderInterface {
private $twig;
public function __construct(\Twig_Enviroment $twig)
{
$this->twig = $twig;
}
public function canHandleExtensions(): array
{
return ['twig'];
}
public function loadMail(Mail $mail, string $templatePath, string $resolvedTemplatePath): string
{
return $this->twig->render($resolvedTemplatePath);
}
}
<service id="my_plugin.twig_loader" class="MyPlugin\TwigMailLoader">
<argument type="service" id="twig"/>
<tag name="frosh_template_mail.loader"/>
</service>
Contributing
Feel free to fork and send pull requests!
Licence
This project uses the MIT License.