> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Logic: Or

> Checks that at least one condition matches.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Matches when at least one of the conditions you list is satisfied. Use this when any of a few situations should count, for example to accept an order whose status is either "paid" *or* "shipped". Each condition you add looks at the same value, and the rule passes as soon as one of them matches. It fails only when every condition fails. If you do not add any conditions, the rule never passes.

This documentation describes: [Schema](/schemas/condition/logic-or)

## Fields

<FormField property="conditions[]" label="Conditions" diType="condition">
  The list of checks where at least one must be satisfied. Add as many as you need; the value passes the moment any one of them matches. Each entry is another condition you pick and configure, such as an equality check or a contains check. You can nest combinations, for example an "Or" that contains an "And", to build more detailed rules.
</FormField>

## Sample data

This rule combines two checks on an order's `status`: it matches when the status equals "paid" **or** equals "shipped". Any other status does not match.

| Field            | Value            |
| ---------------- | ---------------- |
| First condition  | Equals `paid`    |
| Second condition | Equals `shipped` |

| Status    | Equals "paid"? | Equals "shipped"? | Matches? |
| --------- | -------------- | ----------------- | -------- |
| `paid`    | yes            | no                | yes      |
| `shipped` | no             | yes               | yes      |
| `pending` | no             | no                | no       |

```json Configuration theme={null}
{
  "prototype": "logic-or",
  "parameters": {
    "conditions": [
      { "prototype": "equals", "parameters": { "value": "paid" } },
      { "prototype": "equals", "parameters": { "value": "shipped" } }
    ]
  }
}
```
