EdeeShop · Implementace

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

Upraveno

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í.

Konfigurace

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
<injectedResources>    <voucherCodeMailProvider as="voucherCodeMailProvider" type="com.fg.cps.eshop.voucher.service.mail.VoucherCodeMailProvider"/></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
<freemarkerProcessing>    <imports>        <import>classpath:/META-INF/lib_eshop_voucher/mail/template/mail-edeeshop-voucher-macros.ftl</import>    </imports>    <dataProviders>        <dataProvider name="voucherCodeMailProvider" bean="voucherCodeMailProvider"/>    </dataProviders></freemarkerProcessing>
  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
<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
<voucherMailAutocompletion id="voucher">    <metadata>        <catalog>demo</catalog><!-- Kód katalogu, ve kterém se vyhledávají slevové akce -->    </metadata></voucherMailAutocompletion>
  1. Definovat messages v rámci mail modulu

Například:

properties
defaultCampaignEditor.voucher.title=Slevová akcedefaultCampaignEditor.voucher.info=Slevová akce, pro kterou se má generovat slevový kód.voucher.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>.voucher.presend.isNotValid=Rozeslat kampaň není možné. Akce <strong>{0}</strong> již není platná.

Příklad konfigurace na demu.

Š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ářů:

kód
<#if voucher?has_content>    <#--<#assign voucher>-->${voucher}<#--</#assign>-->    <#if test?has_content>    <#--    <#if (messageBatch?has_content)>      <@printVoucherCode voucherId=voucher?number recipient=address.address test=true />    </#if>    -->    <#else>    <#--    <#if (messageBatch.contentId?has_content)>      <@printVoucherCode voucherId=voucher?number recipient=address.address campaignId=messageBatch.contentId />    </#if>    -->    </#if></#if>

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