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

# Multi-currency & Markets

> Per-currency amounts in Galantis Discount Flow — how Shopify Markets currencies reach the Rule Builder, the five money fields that support them, missing-currency behavior, and the Pro requirement.

If your store sells in more than one currency through Shopify Markets, a single number in a money field can mean very different things — "10 off" is a modest discount in USD and a much bigger one in JPY. Galantis Discount Flow solves this with **per-currency amounts**: five money fields in the Rule Builder can hold a different amount for each currency your store sells in, and at checkout the app uses the exact amount you entered for the customer's checkout currency.

## How Markets and currencies reach the app

Galantis Discount Flow is **Markets-aware**: it reads the presentment currencies your store has enabled — the currencies defined by your Shopify Markets setup — and offers them in the Rule Builder's currency dropdowns. The list always includes at least your store currency.

<Note>
  The currency list is read-only in Galantis Discount Flow. To add or remove currencies, configure them in Shopify Admin → **Settings → Markets** — the app picks up the changes when you navigate within it. Beyond currencies, there is no deeper Markets integration: the Rule Builder has no market condition and no market targeting.
</Note>

## Two ways to enter an amount

Every per-currency-capable field works in one of two modes. In neither mode does the app convert between currencies — **no currency conversion ever happens**.

<CardGroup cols={2}>
  <Card title="Single amount" icon="hashtag">
    The default, and unchanged behavior. The number is applied literally in whatever currency the customer checks out in — a "10" fixed discount means 10 USD for a USD checkout and 10 EUR for a EUR checkout.
  </Card>

  <Card title="Per-currency amounts" icon="coins">
    A separate amount per currency. At checkout, the app uses the exact amount you entered for the cart's checkout currency — 100 for USD carts, 90 for EUR carts, and so on.
  </Card>
</CardGroup>

<Warning>
  Because single amounts are applied literally, they scale with the currency's face value, not its worth. A single "100" spend threshold is easy to reach in JPY and hard to reach in GBP. If your currencies differ meaningfully in value, use per-currency amounts.
</Warning>

## The five per-currency fields

| Block                         | Field                                      |
| ----------------------------- | ------------------------------------------ |
| **Cart total** (condition)    | **Amount**                                 |
| **Fixed amount off** (action) | **Amount**                                 |
| **Percentage off** (action)   | **Max discount amount** (the optional cap) |
| **Free shipping** (action)    | **Max shipping amount** (the optional cap) |
| **Tiered discount** (action)  | **Spend threshold**                        |

Everything else stays currency-neutral by nature: percentages themselves, **Buy X get Y** quantities, **Volume pricing** tiers (quantity-based), the **Bundle discount** percent, and **Free gift** have no per-currency variant because they contain no money amount to vary.

## Setting per-currency amounts

Each of the five fields has a checkbox beneath it labeled **Set a different amount per currency**.

<Steps>
  <Step title="Tick the checkbox">
    Tick **Set a different amount per currency**. The single input is replaced with per-currency rows, seeded with one row: your store currency at the amount you had entered.
  </Step>

  <Step title="Add a row per currency">
    Click **Add currency** to add a row. Each row pairs a **Currency** dropdown — listing your enabled presentment currencies, with codes already used by another row disabled — with an amount field and a remove button. At least one row must remain.
  </Step>

  <Step title="Enter an amount for each currency">
    Type the amount that makes sense in each currency. These are independent values, not conversions — you decide what the offer is worth in every currency.
  </Step>
</Steps>

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/digifist/images/galantis/discount/rule-builder/per-currency-editor.png" alt="A Fixed amount off action with Set a different amount per currency ticked, showing currency rows with a dropdown, amount field, and Add currency button" />
</Frame>

<Warning>
  Unticking **Set a different amount per currency** clears all rows and restores single-amount entry. Once the campaign is saved, the cleared rows cannot be recovered.
</Warning>

## When a checkout currency has no row

In per-currency mode, only the currencies you list get an amount — and each field fails in its own direction when the checkout currency is missing. The editor shows a caption under each field spelling this out:

| Field                                    | If the checkout currency has no row | Editor caption                                                          |
| ---------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------- |
| **Fixed amount off** — Amount            | No discount applies at all          | "Checkout currencies not listed here get no discount from this action." |
| **Cart total** — Amount                  | The condition evaluates false       | "This condition is false for checkout currencies not listed here."      |
| **Percentage off** — Max discount amount | The percentage applies uncapped     | "Checkout currencies not listed here are uncapped."                     |
| **Free shipping** — Max shipping amount  | Shipping is fully free, uncapped    | "Checkout currencies not listed here are uncapped."                     |
| **Tiered discount** — Spend threshold    | The tier never unlocks              | "Checkout currencies not listed here never unlock this discount."       |

Note the split: discounts and conditions **fail closed** (no discount, condition false), while caps **fail open** (the discount runs uncapped). A missing row on a cap can cost you more than you planned — list every currency you sell in.

## Coverage warnings

The Rule Builder warns you — in a banner titled **This flow may be incomplete** — when a per-currency field:

* has no amount set for one of your store's enabled currencies ("…has no amount set for XXX."),
* lists a currency twice, or
* has an amount that isn't greater than 0.

These warnings never block saving — they exist to catch coverage gaps before your customers do.

## Per-currency values in summaries

Flow summaries and the Test panel display per-currency values inline, like "100 USD / 90 EUR" — up to three currencies, then "+ 2 more" for the rest.

## Pro plan requirement

Per-currency amounts are a **Pro** feature — the only Pro-gated feature in Galantis Discount Flow.

* On the Free plan, the **Set a different amount per currency** checkbox is disabled with a **Pro** badge and an **Upgrade** button.
* Saving or activating a campaign with per-currency amounts on Free is rejected: "Per-currency amounts require the Pro plan. Remove them or upgrade to Pro to save this campaign."

### What happens on downgrade

Downgrading from Pro to Free automatically **pauses** any active campaigns that use per-currency amounts, and records the pause in the **Activity Log**. To reactivate such a campaign on the Free plan, open it, untick **Set a different amount per currency** (this clears the rows), set a single amount, and activate it again.

## Testing and analytics

<Warning>
  The Test panel always simulates in your **store currency** — there is no currency selector. A per-currency setup with no row for your store currency will look like it doesn't fire in the Test panel, even though it works at a real checkout in a listed currency. See [Testing flows](/galantis/discount/rule-builder/testing-flows).
</Warning>

At checkout, the currency that matters is the cart's **presentment currency** — the currency the customer sees and pays in. The theme embed uses the same logic on the storefront when evaluating free gifts and cart totals.

In [Analytics](/galantis/discount/analytics/index), all revenue and discount figures remain reported in your store currency (converted by Shopify) — there is no per-currency breakdown.

## Related guides

* [Actions & discount types](/galantis/discount/rule-builder/actions) — the four actions with per-currency fields
* [Conditions](/galantis/discount/rule-builder/conditions) — the Cart total condition's per-currency Amount
* [Plans & limits](/galantis/discount/billing/plans-limits) — the Pro requirement and downgrade behavior
* [How discounts apply at checkout](/galantis/discount/storefront/how-discounts-apply) — checkout-currency resolution
