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

# Concepts

> Learn the key concepts behind how BeSure Checkout Rules works to customize and control your Shopify checkout experience.

<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/R5lDcpT9AWs?si=Z7c_sFBwKfSelpN-" title="BeSure Concepts" style={{ border: 0 }} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

## What is a rule?

A **checkout rule** is a set of logic that defines **what** should happen during the checkout process and **when**.

## Rule essentials

These are the essential parts of every rule that define its purpose, when it should run, what it should do, and how those actions are organized.

### Status

Indicates the current state of the rule, whether it’s in testing, active, or deactivated. This helps control when the rule takes effect.

<Tip>
  It is recommended to start with a rule in testing mode, to ensure that the
  rule is working as expected without affecting your customers. You can switch
  to active mode after testing.
</Tip>

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/rule-status.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=a16be9d93d718316e9bd62ac0d29b3c3" alt="Rule Status" width="966" height="292" data-path="images/concepts/rule-status.webp" />

Here is an example of how to turn on the testing mode on the checkout page.

<Frame>
  <img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/testing.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=91f325a20e3c6b59f63ca6b4764f1506" alt="Testing Mode" width="1120" height="358" data-path="images/concepts/testing.webp" />
</Frame>

### Condition set

You can use any condition set that suits your needs, if you are unsure you can either start by just using condition set 1 or by using the search box to search which condition set has that condition which you need and switching to it.

> For example, if you want to hide a shipping method based on the product metafield, then you should switch to the condition set 4, then you will be able to use the product metafield condition.

<Warning>
  Condition set selection is only available at rule creation time. You cannot
  change the condition set after the rule is created. If you need a different
  condition set, create a new rule.
</Warning>

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/condition-set.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=1eb491729fdb0f7172391e2626e4c466" alt="Condition Set" width="2276" height="614" data-path="images/concepts/condition-set.webp" />

Get more information about condition sets [here](/guides/en/essentials/condition-sets/introduction) or learn more about each condition set below.

<CardGroup cols={3}>
  <Card title="Condition Set 1" icon="1" href="/guides/en/essentials/condition-sets/condition-set-1">
    Learn more about condition set 1.
  </Card>

  <Card title="Condition Set 2" icon="2" href="/guides/en/essentials/condition-sets/condition-set-2">
    Learn more about condition set 2.
  </Card>

  <Card title="Condition Set 3" icon="3" href="/guides/en/essentials/condition-sets/condition-set-3">
    Learn more about condition set 3.
  </Card>

  <Card title="Condition Set 4" icon="4" href="/guides/en/essentials/condition-sets/condition-set-4">
    Learn more about condition set 4.
  </Card>

  <Card title="Condition Set 5" icon="5" href="/guides/en/essentials/condition-sets/condition-set-5">
    Learn more about condition set 5.
  </Card>

  <Card title="Condition Set 6" icon="6" href="/guides/en/essentials/condition-sets/condition-set-6">
    Learn more about condition set 6.
  </Card>
</CardGroup>

### Conditions (the "when")

Conditions are based on the selected condition set and define the criteria that must be met to trigger the rule. Use AND (all must be true), OR (any one is true), to group related logic for complex cases.

> See example below - here rule will run under any of the 2 circumstances: when date is 4 August 2025, and that day is Monday, then the rule will run, OR, everyday when time is 00:00 which basically means every day at midnight.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/condition.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=4cbe48ae4975e7fdba9b2daec15114b7" alt="Condition" width="971" height="454" data-path="images/concepts/condition.webp" />

### Action (the "what")

When the conditions in the "when" section are true, the system will perform the action you define. Each action is executed only if its specific criteria (action condition and operations) are also met.

> See example below - here the action is set to reorder shipping methods in a fixed way, by placing 'Next Day Delivery' at the top and putting all the other shipping methods below it.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/action.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=92881f569be151a8f65f3d97ece129db" alt="Action" width="977" height="320" data-path="images/concepts/action.webp" />

### Block

Together, **conditions** (the "when"), and the **action** (the "what") make up a **rule block**. You can use **multiple blocks** within a rule to handle complex scenarios easily.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/block.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=9c41fb1c7d6b485e15926c8a756ddd7b" alt="Block" width="2170" height="1002" data-path="images/concepts/block.webp" />

## Additional options (for some rules)

These optional parts appear in specific rule types and add more control over how and where the rule applies or behaves under special conditions.

### Target

Defines where the rule applies (e.g., shipping or pickup). Used only in shipping rules.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/target.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=ccaf2024843cf7407c6205f76e30ef54" alt="Target" width="961" height="250" data-path="images/concepts/target.webp" />

### Combinations

Controls whether the rule discount can be combined with product, order, or shipping discounts. Used only in **Discount** rules.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/combinations.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=f37ee3ba0f84f5e9687a45505f6e5061" alt="Combinations" width="962" height="242" data-path="images/concepts/combinations.webp" />

### Strategy

If the discount rule has multiple blocks, then strategy selection comes into play. It determines how those rule blocks are applied (e.g., first valid one or highest value). Used only in **Discount Order Amount** rule.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/strategy.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=5a35d6c713a96630942ea96861989419" alt="Strategy" width="962" height="212" data-path="images/concepts/strategy.webp" />

### Trigger

Specifies which step will trigger the rule (e.g., when the customer is interacting with the checkout or completing the checkout, or both). Used only in **Validate or Block Checkout** rule.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/trigger.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=5bbeec7d9e4ea6937ae4b797f2315df9" alt="Trigger" width="960" height="129" data-path="images/concepts/trigger.webp" />

### Fallback

Defines what happens in the rare circumstance, when the app has an issue on the checkout (e.g., allow or block checkout). Used only in **Validate or Block Checkout** rule.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/fallback.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=b5710aea78ae7167cebea8308f751d26" alt="Fallback" width="959" height="133" data-path="images/concepts/fallback.webp" />

### Maximum discount uses

Defines the **total number of times** the discount can be used across all customers. Optionally, can also restrict usage to **one time per customer**. Only applicable when using discount codes, not automatic discounts. Used only in **Discount** rules.

> For example, if usage limit **set to 1** and **"Limit to one use per customer"** is unchecked, only one customer will be able to use the discount code. After that, the code becomes invalid for everyone else.

<img src="https://mintcdn.com/storespark/lkY0mx0uZwe--5lB/images/concepts/maximum-discount-uses.webp?fit=max&auto=format&n=lkY0mx0uZwe--5lB&q=85&s=7e7cd399595d0e12d2a6b92d86cadf37" alt="Fallback" width="962" height="168" data-path="images/concepts/maximum-discount-uses.webp" />
