Try → Edge cases
Edge cases and error states.
Validation in the conditions editor, what non-qualifying customers see at checkout, and the duplicate-condition guard. These states are as load-bearing as the happy path.
Empty domain value
⚠ Domain value is required. Enter a domain like @sony.com or sony.com.
Save is blocked until the value is filled in. The error is shown inline on the affected field, not as a top-of-page banner. Save button is disabled.
Malformed domain — no dot
⚠ sony doesn't look like a domain. Did you mean @sony.com? Save anyway, or fix the value.
A soft warning (not a hard block) for values that look malformed. The merchant can save anyway — some domains don't have dots (intranets, test environments). The auto-fix suggestion reduces friction for the common case.
Duplicate email domain condition
⚠ Duplicate condition — this row has the same type, operator, and value as row 1. The second row will have no effect and can be removed.
Duplicate conditions are flagged as a warning (not a block). Duplicates are harmless — the AND evaluation is idempotent — but they confuse merchants reviewing the promotion later. Inline warning, not a save block.
Non-qualifying customer at checkout
Order summary
Signed in as alex@gmail.com
Design decision: silent failure
The customer (alex@gmail.com) does not see the Sony Employee Discount
in their order summary. The condition fails silently — no "you don't qualify" message,
no hint that a domain-gated discount exists. This is the correct behaviour:
surfacing the discount name to non-qualifying customers reveals the promotion's
existence and invites social engineering.
Contrast with coupon code failure (explicit "invalid code" message) — that's expected because the customer actively entered a code. Automatic promotions fail silently by design.
Guest checkout with qualifying email
Order summary
Checking out as guest · Billing email: sarah@sony.com
Phase 2 differentiator
A guest customer who hasn't created an account enters sarah@sony.com
at the customer-information step. The email domain condition evaluates cart.email
— already in the checkout record by the time promotions evaluate — and applies the discount automatically.
No account required. Shopify's native email domain targeting requires sign-in; this case is excluded on Shopify.