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.
Argumenten
De volgende argumenten kunnen worden gebruikt bij de cancel_mail oplossing:
Argument | Toelichting |
---|---|
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:
|
Voorbeelden
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;
<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: