IF Statements
Neto by Maropost's IF, IF THEN & ELSE function
Example
[%if [@somedata@] like 'apple' %]
Apple
[%elseif [@somedata@] like 'orange' %]
Orange
[%elseif [@somedata@] ne '' %]
Data
[%else%]
Nothing
[%/if%]
Usage
Simple Statements
Let's say we are working on a product template and want to display the message "Free shipping", but only on products where the price is greater than $200. Since the product will either have a price greater than $200 or less than $200, the “if” logic statement is the most appropriate statement to use:
[%if [@price@] > 200%]Free Shipping[%/if%]
Complex Statements
A complex logic statement contains two or more parameters. For example:
If you only wanted to display the "free shipping" text only when the price was greater than $200 and if the description was not empty you could use:
[%if [@price@] > 200 and [@description@] ne ''%]Free Shipping[%/if%]
Misc fields and Custom Configs
A common use case is utilising Custom Product Fields or globally accessible variables (Custom Configs, found within Settings & Tools) to display additional content or functionality based on criteria determined by these fields.
A key aspect to note is both Custom Product Fields and Custom Configs have the option to use Boolean operators (True
,1
), or (False
, 0
). The main difference between the options is that Custom Product Fields will output y
(True) or n
(False) based on the value specified whereas configs will produce 1
(True) or 0
(False).
Correct
[%if [@misc1@] eq 'y'%] <!-- Display featured content --> [%/if%]
It's very important to realise that both y
and n
are both True values in the context of traditional boolean operators.
Incorrect
[%if [@misc1@] %] <!-- Display featured content --> [%/if%]
If the control panel value is set to true or false, the content will still display as the logic you have presented as true either way because y
and n
are not false values.
This is not an issue for Custom Configs as they will output the typical Boolean values:
[%if [@config:display_special_content@] %] <!-- Display featured content --> [%/if%]
[%if [@config:display_special_content@] eq '1' %] <!-- Display featured content --> [%/if%]
Operators
`==` | Equal to (for integers) |
`eq` | Equal to (for strings) |
`!=` | Not equal (for integers) |
`ne` | Not equal to (for strings) |
`<` | Less than |
`>` | More than |
`<=` | Less than or equal to |
`>=` | More than or equal to |
`or` | Either this or that |
`and` | Must be this and that |
`like` | Exists within string. Example: `[%if "This is a string" like "is" %]` would return true because **is** exists within the data provided. |
`not like` | Inverse of the `like` operator. |