Account
Settings
A tour of the xDiscount Settings page: the storefront offer card, plans and billing, Connect AI, support, and the messages you may see there.
What’s on the Settings Page
Open Settings from the xDiscount links in your Shopify admin sidebar. The page heading is Settings.
A row of tabs sits at the top. All shows every section on one scrolling page, and that is what you land on. The other three narrow the page to one section at a time.
| Tab | What it controls |
|---|---|
| All | Everything, in the order below |
| Storefront offer card | Whether the offer card is on your live theme, and the link to add it |
| Plans & billing | Your usage this period, your plan, and every plan you can switch to |
| Connect AI | The key that lets your own AI assistant create and manage discounts |
Under All, each section’s heading sits to the left of its card. When you pick one tab, the tab itself is the title, so the card fills the width with no heading beside it. Each section carries a badge with a small info button beside it. The info button opens a sentence explaining what that badge actually means, and it opens on keyboard focus as well as on hover.
Discounts are not configured here
Everything a discount does, its products, its value, its dates and its conditions, is set on the discount itself, not in Settings. The rules every discount follows at checkout are in Managing discounts and Conditions and rules.
Help is on every screen
Help is not only in Settings. A round chat button floats in the bottom-right corner of every screen in the app. See Troubleshooting and FAQ, under “I can’t find help”.
Storefront Offer Card
The offer card shows shoppers a discount on the product page. It reads the same configuration the checkout discount reads, so what a shopper is shown and what they are charged cannot drift apart.
Included on Every Plan
The offer card is included on every plan, Free included. Whatever plan you are on, this section offers the same controls, Add to theme, Open theme editor and Check again, described below.
A badge reading Not on your plan can only appear if your subscription is on a plan the app does not recognise. If you ever see it, click Refresh plan under Plans & billing, and if it stays, tell us.
A plan we could not read gates nothing
If the plan read fails, this section renders in full rather than telling a paying merchant that the feature they bought is withheld. The server enforces the real gate either way.
What the Section Shows
A status badge, your live theme’s name when it could be read, and buttons.
| Badge | Meaning |
|---|---|
| On | The block is on your live theme’s product template and switched on |
| Off | We read your theme successfully and the block is not there |
| Couldn’t check | The theme read failed. This is not the same as “not added”, so do not re-add on the strength of it |
To add the card:
Open the section
Go to Settings, then Storefront offer card.
Click Add to theme
Your Shopify theme editor opens in a new tab, on your product template, with the xDiscount offer block already placed. The section says so while the block is missing: “The editor opens with the xDiscount offer block already placed on your product template, drag it where you want it and click Save there.”
Place the block and save
Drag the block where you want it and click Save in the theme editor, then go back to the xDiscount tab.
Let the badge catch up
xDiscount looks for the block on its own after you open the editor, once after two seconds, then every five seconds, up to twenty times, and stops as soon as the badge changes. If you were slower than that, click Check again.
Once the block is on your theme:
| Button | What it does |
|---|---|
| Open theme editor | Opens your product template in the theme editor, without adding another copy of the block |
| Check again | Re-reads your live theme now |
| Uninstall | Opens the same theme editor, so you can delete the block yourself |
Uninstall does not remove the block for you, and the card says so before you press it:
Removing the block is done in your theme editor, Shopify gives apps no way to do it for you. Uninstall opens it on your product template, delete the xDiscount offer block there and this badge updates on its own.
Why there is a Check again button at all
Shopify never tells an app when a block is added to or removed from a theme, so xDiscount has to go and look. That is also why the badge can lag behind a change you just made in the editor. A block that is present but switched off in the editor counts as Off.
The Settings Inside the Theme Editor
The xDiscount offer block’s own settings live in the theme editor, not in xDiscount, and they are grouped under Text, Colours, Size and spacing and Display. Every colour is blank by default, which means “inherit your theme”, and the two size ranges default to the numbers the card already used, so a fresh install looks exactly as it did before.
The full list, with defaults, is in The storefront offer card.
What the Card Does and Does Not Show
- It renders nothing at all on a product with no live offer. No empty box, no placeholder.
- It shows one tile per in-window discount, carrying the discount’s name and its value: 20% off, $10.00 off in your store’s own money format, Free shipping, or Free gift. Clicking a tile opens a window with the conditions attached to that discount in plain words.
- For a Buy X get Y discount the tile carries a gift button that opens the gift window. This is the only way a gift reaches the cart, because a discount on its own cannot add an item, so a Buy X get Y offer without this block on your theme can never be claimed.
- If a shopper is browsing in a currency that is not your store’s, amounts print as your own figure with your store’s currency code appended, for example
10 EUR off, instead of being converted. Showing your number wearing their symbol would be a lie about the price. - If a discount’s dates cannot be read for any reason, the card treats that bound as absent and still shows the offer. Checkout is the opposite: anything it cannot read with confidence, it refuses to discount.
Plans and Billing
Usage This Period
The section opens with a card headed Usage this period. On its right sits your plan’s badge with an info button beside it, and a Refresh plan link. The badge is one of three things, and the info button says which.
| Badge | The info button says |
|---|---|
| Your plan’s name, in green | Read live from Shopify on every visit, so a change made in another tab shows up here. |
| Paused | Shopify has paused this subscription, usually an unpaid invoice. Your discounts keep running, billing does not. |
| Couldn’t check | We couldn’t reach Shopify for your subscription, so this shows nothing rather than a plan you might not be on. |
Paused and Couldn’t check are the two states merchants most often read as each other, which is why each gets its own sentence.
Under the heading you see one of:
- A spinner while your plan is being read.
- We couldn’t read your plan just now. Your discounts keep working either way, this only affects what’s shown here. with a Try again button. Your plan is never invented from a failed read. The plan cards below fall back to marking Free as Current until a read succeeds, so click Try again before believing that badge.
- Two rows, each a label on the left and used against limit on the right. Active discounts, for example 2 / 3 on Free or 12 / Unlimited on Growth. And Discounted orders (this period), for example 412 / 2,500, with a progress bar under it.
Below the rows, when they apply:
- On a paid plan, a line reading USD 6.30 of USD 150.00 usage charges this period.
- If orders have gone past your spending limit, a warning: N discounted orders have gone past your spending limit and weren’t charged. Your discounts are still running, raise the limit to resume billing. with a Raise my limit button.
- On a test install, a banner: This is a test install. You can subscribe and cancel freely, no card is ever charged.
What a discounted order is
A “discounted order” is an order where xDiscount actually reduced the price. Orders it did not touch never count toward your allowance and are never billed.
The Plan Cards
Four cards, always in this order. The one you are on carries a green Current badge next to its name. Each card shows its price as $19 /mo, with Free showing $0 /mo, one full-width button, a rule, and then what the plan includes, each line with a green check.
| Free | Starter | Growth | Scale | |
|---|---|---|---|---|
| Price | $0 /mo | $19 /mo | $49 /mo | $149 /mo |
| Active discounts | Up to 3 | Up to 25 | Unlimited | Unlimited |
| Discounted orders a month | 50 | 500 | 2,500 | 10,000 |
| Storefront offer card | Yes | Yes | Yes | Yes |
| Connect AI | Yes | Yes | Yes | Yes |
| Priority support | No | No | No | Yes |
| Extra orders | None | Then $0.03 per extra order, max $50 a cycle | Then $0.02 per extra order, max $150 a cycle | Then $0.01 per extra order, max $400 a cycle |
The extra-order line is the last line of each paid card’s list. The maximum is Shopify’s spending cap: past it nothing more is charged until you approve a higher limit.
The button on each card:
- Current plan, greyed out, on the plan you are on.
- Upgrade, on every plan above yours. It sends you to Shopify’s own approval screen, and nothing changes until you approve it there.
- Downgrade, on every plan below yours, including Free when you are on a paid plan. Moving to Free cancels your subscription. There is no confirmation prompt, you get the message Your plan was cancelled. and the plan is re-read.
At the bottom of the section: Prices in USD, billed through Shopify. Beyond your plan’s allowance you’re billed per discounted order, an order only counts when xDiscount actually reduced its price, and never past the cap without asking you first.
What a Plan Change Does to Your Storefront
| Change | Effect |
|---|---|
| Downgrade to Free | Nothing about your storefront changes, because the offer card and Connect AI are on every plan. What changes is the allowance, 3 active discounts and 50 discounted orders a month |
| Any plan, past your monthly allowance | Existing discounts keep applying. You are not switched off |
| Past your spending cap | Discounts keep applying and nothing further is charged, but billing stays stopped until you approve a higher limit |
| Hit your active-discount limit | Existing discounts keep working, and drafts are never blocked. You cannot activate another until you move one to draft or archive it, or upgrade |
Raising the limit needs your approval
Raise my limit asks Shopify for double your current cap, and Shopify asks you to approve the new figure. Nothing takes effect until you do.
Connect AI
Connect your own AI assistant to create and manage discounts. Anything it creates arrives as a draft, it can never publish a discount without you.
The section also states, every time: You bring your own assistant. We store no provider keys and charge nothing extra for it.
Available on Every Plan
Connect AI is available on every plan, Free included. The section always offers Generate a key.
To connect:
Open the section
Go to Settings, then Connect AI.
Generate a key
Click Generate a key.
Copy the key straight away
A warning banner appears headed Copy this now, it won’t be shown again, with the key in a box below it. Only a hash is stored, so it can never be shown to you again. Lose it and you generate a new one.
Paste it into your client
Paste it into your MCP client as a bearer token. The endpoint is /mcp on this app’s URL, and the section says so once a key exists.
Status Badges
| Badge | Meaning | The info button says |
|---|---|---|
| Not connected | No key exists for this store | No key exists for this store, so no assistant can reach your discounts. |
| Key created, not used yet | The key exists, but no client has ever called with it | A key exists but nothing has used it yet, so the connection is unproven, paste it into your MCP client to finish. |
| Connected | A client has actually called. A Last used date appears beside it | An assistant has used this key. Anything it creates still arrives as a draft for you to publish. |
| Couldn’t check | We could not read your AI access | We couldn’t read your AI access just now, so this shows nothing rather than guessing. |
A key that exists is not a connection. That distinction is the one merchants get wrong, and it is why the two states have different badges. Key created, not used yet means the problem is on your client’s side, not ours.
Replacing and Revoking a Key
Once a key exists the button becomes Generate a new key, and a red Revoke appears below it. Revoke has no confirmation step and takes effect on the very next request. It stays available whatever plan you are on, so a key created earlier can always be cut off.
Support
Where to go next, and how to reach us if something looks wrong.
This section holds one button, Back to discounts.
To actually reach us, use the floating help button, the round chat button in the bottom-right corner of every screen. It opens Help and support, with a How to use tab of links into these guides and a Questions tab that emails us. See Troubleshooting and FAQ, under “I can’t find help”.
Messages You May See on This Page
| Message | What it means |
|---|---|
| We couldn’t read your plan just now… | A temporary read failure. Click Try again, your discounts are unaffected |
| We couldn’t read your theme just now… | The theme check failed. Your discounts still apply at checkout, and only the card’s status is unknown |
| We couldn’t start that plan. Try again in a moment. | Shopify did not accept the subscription request |
| We couldn’t raise your limit. Try again in a moment. | Shopify did not accept the new cap |
| You’re already on Growth. | You chose the plan you are already on |
| There’s no paid subscription to cancel. | A cancellation was requested while you were already on Free, so there is no subscription to cancel |
| Your plan has no usage charges, so there’s no spending limit to raise. | Free has no usage charges, so there is no cap to raise |
| Your limit is already USD 50. Choose a higher one. | The new cap has to be above the current one |
| Billing is in test mode on a live install. | Subscriptions get approved but nobody is charged, which is worth reporting |