Rules
How to Set Up Return Eligibility Rules in Shopify
Eligibility is the difference between a calm portal and a flood of invalid requests. Native Shopify can tell you what is returnable from fulfillments; Souvely adds a merchant rules engine that filters portal options using match conditions and effects.
What the rules engine can match and enforce
From the product rules engine (available fields depend on plan gates):
Common match ideas
- Return window (days since order processed date)
- Product / order / customer tags
- Collections
- Countries
- Final-sale style flags
- Reasons
Common effects
- Allow or deny the return
- Limit resolutions (refund, store credit, exchanges)
- Require photos
- Restocking fees / tighter limits on Pro
Admin UI: Souvely → Rules. Free edits basic window/resolution-style fields; Growth unlocks advanced match fields and photo requirements; Pro unlocks custom rule creation, higher enabled-rule caps, and Pro effects.
Enabled rule caps in code: Free 5, Growth 12, Pro 100.
How rule priority behaves (verified)
Enabled rules for the shop load ordered by priority ascending, then createdAt ascending (lower priority number evaluates earlier). Priority is evaluation order, not “last rule wins.”
For each matching rule:
- Match predicates on a single rule are ANDed; an empty match always applies.
- If a match forces ineligibility (for example outside the window) or the effect sets eligible = false, the item becomes ineligible—and later matching rules do not re-enable it.
- Allowed resolutions intersect across matching rules (each matching rule can only narrow the set further).
- Require-photo becomes true if any matching rule/reason requires it (sticky on).
- Fees / shipping-paid-by / restocking / bonus store-credit effects can accumulate from matching rules as implemented.
Practical takeaway: treat overlapping matches as a stack that narrows outcomes. Prefer fewer enabled rules, keep exclusions (final sale, out-of-window) as dedicated matches, and avoid stacking two resolution lists that accidentally leave only their overlap.
Example eligibility-rule table
| Priority | Rule name | Match (plan) | Effect | Plan needed to configure fully |
|---|---|---|---|---|
| 10 | Standard window | Window = 30 days (basic) | Outside window → ineligible (match clock = order processed) | Free+ |
| 20 | Final sale block | Product tag final-sale (advanced) | Not eligible | Growth+ (advanced match) |
| 30 | Apparel prefer exchange | Collection = Apparel (advanced) | Resolutions: Exchange for variant, Store credit (narrows when this rule matches) | Growth+ |
| 40 | Damage evidence | Reason = Damaged (advanced) | Require photo only (does not list a second resolution set—avoids an accidental intersect) | Growth+ |
| 50 | Restocking on sale goods | Product tag sale (advanced) | Restocking fee disclosed in policy | Pro (fee effects) |
Overlap note: if rule 30 also matched a damaged apparel line and rule 40 listed “Refund + Exchange,” the engine would intersect those lists and keep only Exchange. Keep photo-only effects on reason rules when another rule already narrows resolutions—or design both lists so the intended overlap remains.
Seeded defaults in a fresh shop often include a 30-day window plus exclusion-style rules—read and edit them before traffic.
Step 1 — Start from defaults, then tighten
- Install Souvely: Returns & Exchanges.
- Open Rules and read the seeded defaults.
- Set the window to match your published policy (same day count; order-processed clock).
- Disable or narrow any default that is broader than you intend.
Step 2 — Encode exclusions
Examples:
- Tag final-sale products
final-saleand block them. - Block personalized SKUs with a product tag match.
- Restrict cross-border returns by country match on Growth+.
Test with one included SKU and one excluded SKU on /apps/returns.
Step 3 — Map resolutions to segments
| Segment | Example resolutions |
|---|---|
| Standard apparel | Exchange for variant, store credit, refund |
| Sale goods | Store credit only |
| Damaged reason | Refund or exchange + require photo (Growth+) |
| VIP customer tag | Longer window |
Step 4 — Respect plan gates (no surprises)
- Free: basic eligibility editing; 5 requests/month after trial; max 5 enabled rules.
- Growth ($29/mo): advanced matches, photo requirements, deeper analytics; max 12 enabled rules; unlimited requests.
- Pro ($79/mo): Pro rules (fees, resolution limits), up to 100 enabled rules, exports, white-label, branded emails.
- Install trial: 30 days of Pro features + unlimited requests on first install only.
On Free, advanced fields are soft-gated on save (basic match/effect retained). Do not tell Free merchants that tag/country matches will apply without Growth+ or trial access.
Hypothetical example
Example (illustrative): A multi-country shop allows 30-day returns for domestic orders and blocks returns from a short list of countries on Growth rules. Final-sale tagged SKUs never appear as eligible in the portal, so support stops arguing policy over email. Because resolutions intersect across matches, a sale + apparel item only keeps the overlap both rules allow.
Common mistakes
| Mistake | Fix |
|---|---|
| Policy 14 days, rule 45 days | Match numbers exactly |
| Building advanced matches on Free post-trial | Upgrade or use trial window for setup |
| Too many overlapping rules | Prefer clear priority and fewer enabled rules |
| No test order | Always verify included vs excluded SKUs |
| Assuming a later priority “overrides” an earlier match | Matching rules accumulate: ineligibility sticks; resolutions intersect; photo requirements stick on |
Related reads
- How to Add a Returns and Exchanges Portal to Shopify — install the app, share
/apps/returns, and connect shoppers to eligibility-aware requests.
Also useful: Returns FAQ · Pricing
Configure Shopify return eligibility with Souvely Returns & Exchanges. Explore the app—30-day full-access trial on first install.