Betaalde feature

Het betreft hier een betaalde feature, neem contact op tpm@deployteq.com voor meer informatie.

Wanneer je een geautomatiseerde mail verstuurd, welke wordt gevuld door een een externe bron zoals een RSS-feed/JSON-feed of API, dan heb je niet altijd controle dat over de inhoud welke uiteindelijk getoond wordt in de mail. Bijvoorbeeld als wordt gewerkt met recommendations, dan kan het voorkomen dat de externe bron slechts 1 product aanlevert en je content 3 producten verwacht. Of erger, dat de bron leeg is. 

Met de cancel_mail functie kan een gehele verzending of alleen de verzending van de huidige klant geannuleerd worden. Dus stel dat de externe bron geen of 1 product oplevert, dan kan je voor de huidige klant de mail stoppen.

cancel_mail

{{cancel_mail}}


Argumenten

De volgende argumenten kunnen worden gebruikt bij de cancel_mail oplossing:

ArgumentToelichting
for

De mogelijkheid om aan te geven of de verzending geannuleerd moet worden voor de gehele selectie of alleen de huidige klant waarvoor de e-mail wordt gerenderd. Standaard is dit voor de huidige klant.

De volgende waardes zijn beschikbaar:

  • currentcustomer
  • allcustomers

Voorbeelden

cancel_mail

{{* Stop de verzending alleen voor de huidige klant *}}
{{cancel_mail}}
{{cancel_mail for="currentcustomer"}}

{{* Stop de verzending voor alle klanten in de selectie *}}
{{cancel_mail for="allcustomers"}}

Voorbeeld met productenfeed

Hieronder een voorbeeld in combinatie met een producten feed welke wordt opgehaald met behulp van de Datafeeds app, daarbij wordt gebruikt gemaakt van de onderstaande XML;

XML productenfeed
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<item>
<id>1</id>
<title>Home loungeset Cardona</title>
<category>Tuinset</category>
<url>https://example.org/first-item</url>
<image>https://example.org/first-item.png</image>
<price>599.00</price>
<availability>In Stock</availability>
</item>
<item>
<id>2</id>
<title>Home loungeset Örebro</title>
<category>Tuinset</category>
<url>https://example.org/second-item</url>
<image>https://example.org/second-item.png</image>
<price>279.00</price>
<availability>In Stock</availability>
</item>
<item>
<id>3</id>
<title>Home loungeset Claire</title>
<category>Tuinset</category>
<url>https://example.org/third-item</url>
<image>https://example.org/third-item.png</image>
<price>479.00</price>
<availability>Sold out</availability>
</item>
</channel>
</rss>

Hierbij wordt gecontroleerd of er producten aanwezig zijn in de feed en of er in de producten een verkoopbaar product zit, wordt er niet voldaan aan deze condities dan wordt verzending voor de gehele selectie gecanceld. In dit voorbeeld wordt naast de cancel_mail gebruikt gemaakt van de volgende smarty methodes: getRss, foreach, if, empty, lower en counter:

cancel_mail bij getRSS

{{* Ophalen van een XML feed *}}
{{getRss assign='productsXML' link='https://cdn.msdp1.com/public/tpm/xml/productfeed.xml'}}

{{* Loop door de producten *}}
{{$available_products = 0 }}
{{foreach from=$productsXML.channel.0.item item=product}}
  {{if $product.availability|lower eq 'sold out'}}
   {{$product.title}} is uitverkocht.  
  {{else}}
   {{counter assign="available_products"}}
   {{$product.title}} nu verkrijgbaar!
  {{/if}}
{{foreachelse}}
   {{* In het geval dat er geen producten aanwezig zijn, cancel de verzending voor alle klanten in de selectie *}}
   {{cancel_mail for="allcustomers"}}
{{/foreach}}

{{* In het geval dat er geen verkoopbare producten aanwezig zijn, cancel de verzending voor alle klanten in de selectie *}}
{{if empty($available_products)}}
   {{cancel_mail for="allcustomers"}}
{{/if}}