---
schema_version: "1"
id: 660eeb9bd951f3eb48222f4ae43c49962f884b3c87e67b5afc830c3c607f5969
title: isif Element
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/b2c-commerce/guides/isml/b2c-isif.md
canonical_url: https://developer.salesforce.com/docs/commerce/pwa-kit-managed-runtime/guide/b2c-isif.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: e9e4491bd1373a90dca724e65aef2ba2e335eb94c5de4151e74557f0e32598d2
products:
  - Composable Storefront
  - Salesforce APIs
---
# isif Element

Create conditional template code and control the flow of business logic.

## Syntax

```
<isif condition = if_expression>
  ...
 <iselseif condition = elseif_expression> //0 or more
  ...
 </iselseif>
 <iselse>
  ...
</isif>
```

- condition = if_expression

  - : _Allowed data type:_ string or expression.

    `if_expression` evaluates to a boolean value. If the `<isif>` condition is true, the system executes the code immediately following the `<isif>` tag, ignoring the enclosed `<iselseif>` and `<iselse>` tags. If the `<isif>` condition is false, the system ignores the code immediately following the `<isif>` tag, and then tests each `<iselseif>` condition in order. When the system finds a true `<iselseif>` condition, the system executes the code immediately following the `<iselseif>` tag and ignores any remaining `<iselseif>` and `<iselse>` tags. If all `<iselseif>` conditions are false, the system executes the code following the `<iselse>` tag.

## Purpose

The `<isif>` tag group lets you create conditional programming constructs using custom tags.

## Supporting Tags

`<isif>` and its supporting tags, `<iselseif>` and `<iselse>`, are some of the most commonly used tags. They contain no business logic, just the conditional visualization of data.

## Rules of Use

Every `<isif>` tag must have a matching `</isif>` tag. You can use any Salesforce B2C Commerce script expression as a condition for the `<isif>` tag. In particular, you can use local variables, Pipeline Dictionary variables and any functions within those expressions.

`<iselse>` and `<iselseif>` are optional. You can use as many `<iselseif>` tags as needed in an `<isif>` statement, but you can only use one `<iselse>`, which must always be the last tag within an `<isif>` group.

## Example

A conditional expression should typically return a boolean which is interpreted appropriately. If condition expression evaluates to non boolean and is not null, it's interpreted as true. When it evaluates to null it's interpreted as false.

```
<isif condition="${pdict.Products.Price == 0}">
Special free gift.
<iselseif condition="${pdict.Products.Price < 100}">
Special deal.
<iselse>
Today's low price.
</isif>
```

This example shows how to toggle continuously between three different colors for the rows of a table. The current color is stored in the user-defined variable, color.

```
<isset name="color" value="${'#00FFFF'}" scope="PAGE">
<table>
<isloop iterator="${pdict.Basket.products} var="product">
<tr>
<td bgcolor="${product.color}">
<isprint value = "${product.name}">
</td>
</tr>
<isif condition="${color == '#00FFFF'}">
<isset name="color" value="${'#00CCFF'}" scope="PAGE">
<iselseif condition="${color == '#00CCFF'}">
<isset name="color" value="${'#0099FF'}" scope="PAGE">
<iselse>
<isset name="color" value="${'#00FFFF'}">
</isif>
</isloop>
</table>
```
