Podpora pro odesílání slevových kódů pomocí newsletteru

Podpora pro odesílání slevových kódů pomocí newsletteru

VoucherFeature umožňuje vložit do newsletterů slevové kódy. Kódy se generují v rámci rozesílky (v rámci druhé fáze, kdy je znám adresát).
V případě, že již byl pro daného adresáta a kampaň vygenerován slevový kód, nový kód se negeneruje a vrací se již existující.

Zkopírovat odkaz na sekciKonfigurace

Použití slevového kódu v newsletteru vyžaduje následující konfiguraci v mail modulu:

  1. Vložení data provideru do mail-modulu
xml
1 <injectedResources>2    <voucherCodeMailProvider as="voucherCodeMailProvider" type="com.fg.cps.eshop.voucher.service.mail.VoucherCodeMailProvider"/>3</injectedResources>
  1. Vložení data provideru a macra do šablony

Do šablony, kde chceme generovat slevové kódy, vložíme data provider a macro:

xml
1 <freemarkerProcessing>2    <imports>3        <import>classpath:/META-INF/lib_eshop_voucher/mail/template/mail-edeeshop-voucher-macros.ftl</import>4    </imports>5    <dataProviders>6        <dataProvider name="voucherCodeMailProvider" bean="voucherCodeMailProvider"/>7    </dataProviders>8</freemarkerProcessing>

Vzhledem k tomu, že se kódy generují až v rámci druhé fáze, je nutné import a data provider nastavit na messageTemplate (nestačí jen na superTemplate).

  1. Přidání data provideru do superTemplate

Do superTemplate vložíme data provider, který doplní upozornění před rozesílkou (pod klíčem voucher.presend.notification):

xml
1 <dataProvider name="voucherCodeMailProvider" bean="voucherCodeMailProvider"/>
  1. Přidání widgetu pro výběr slevové akce

Do editačního formuláře newsletteru přidáme widget pro výběr slevové akce:

xml
1 <voucherMailAutocompletion id="voucher">2    <metadata>3        <catalog>demo</catalog><!-- Kód katalogu, ve kterém se vyhledávají slevové akce -->4    </metadata>5</voucherMailAutocompletion>
  1. Definovat messages v rámci mail modulu

Například:

properties
1 defaultCampaignEditor.voucher.title=Slevová akce2defaultCampaignEditor.voucher.info=Slevová akce, pro kterou se má generovat slevový kód.3voucher.presend.notification=V rámci rozesílky budou vygenerovány slevové kódy pro akci <strong>{1}</strong>. Počet dostupných kódů je: <strong>{0}</strong>.4voucher.presend.isNotValid=Rozeslat kampaň není možné. Akce <strong>{0}</strong> již není platná.

Příklad konfigurace na demu.

Zkopírovat odkaz na sekciŠablona newsletteru

Pro vložení kódu na požadované místo v newsletteru použijte následující kód. Kód musí být generován až v druhé fázi zpracování šablony, a proto musí být vložen do freemarker komentářů:

1 <#if voucher?has_content>2    <#--<#assign voucher>-->${voucher}<#--</#assign>-->3    <#if test?has_content>4    <#--5    <#if (messageBatch?has_content)>6      <@printVoucherCode voucherId=voucher?number recipient=address.address test=true />7    </#if>8    -->9    <#else>10    <#--11    <#if (messageBatch.contentId?has_content)>12      <@printVoucherCode voucherId=voucher?number recipient=address.address campaignId=messageBatch.contentId />13    </#if>14    -->15    </#if>16</#if>

Ukázková šablona newsletteru je dostupná zde: https://gitlab.fg.cz/edee/eshop/-/blob/dev/eshopdemo/config/module-mail/template/newsletter.ftl