E-commerce

AI Chatbot for product exchanges: recommend the correct size or variant

AI Chatbot for product exchanges: recommend the correct size or variant

August 4, 2026

"I want to exchange M for L." "Which color is in stock instead?" "If I exchange again, I'm afraid it will still be too small." Three messages where a generic return bot sends an RMA link without recommending the variant that will actually fit.

Coresight estimates that 53% to 67% of fashion returns stem from poor fit, and that an incorrectly sized exchange often generates a second return (Eightx, apparel returns cost 2026). Zalando notes that contextualized size recommendations reduce repeated returns when based on product fit notes and customer feedback (Zalando, sizing 2025).

This guide #367 formalizes the e-commerce product exchange AI chatbot: recommending the right size or variant. A new AI use case distinct from the returns bot (#10) (general flow) and size recommendations (#199) (pre-purchase): xch_bot_* intents, XCH-BOT-GATE flow, and post-purchase variant engine. It automates the SIZE-XCH policy (#366).

Summary

Why automate product exchange with an AI bot?

A product exchange bot does not just open an RMA: it recommends the optimal variant (size, color, alternative SKU) before reshipping, to prevent a second wrong size return.

Three generic bot failures

  • Blind RMA: portal link without fit advice

  • Automatic +1 size: L when fit note requires +2

  • Out of stock variant: promises unavailable XL

Loop Returns observes that exchange portals with fit hints reduce repeat wrong size by 15 to 25 points on DTC fashion stores (Loop Returns, 2026 returns).

Angle #367

#10 guides exchange/refund. #199 recommends pre-purchase size. #366 documents FIT-XCH human ops. #367 implements the post-purchase xch_bot_* bot layer + deterministic variant engine.

ROI of xch bot

For a fashion brand with 185 exchanges/month, a targeted exchange bot achieves 60% to 70% auto-resolution vs 30% for a generic return bot.

DTC Example

Dress brand, 24% repeat wrong size post-exchange. After XCH-BOT-GATE bot: xch_bot_repeat_rate 8%, xch_bot_resolution 76%, response time 32 s, xch CSAT 4.6/5.

Journey Stage

Post-delivery after ret_elig OK (#365). Trigger: exchange, wrong size, different color, wrong size, variant.

Ops prerequisites

SIZE-XCH policy (#366) published. Metafields fit_note, exchange_count. Bot handoff if repeat_wrong or exchange_count >= 2.

Deterministic vs LLM

Recommended variant = fit_note rule + measurements + issue type. LLM manages FIT-XCH dialogue and reformulates, it does not choose the size on its own.

Variant Scope

Size, color, sometimes alternative SKU (length, fit). No product changes for a different family: handoff #10.

Cost of incorrect recommendation

Incorrect reship = 2x logistics + lost customer. XCH-BOT-GUARD requires customer confirmation before variant_target RMA link.

Relevant Verticals

Fashion primarily (jeans, dresses, shoes). Possible extensions: cosmetics shade, home decor color variant. Out of scope: product change to a different family.

Returns Silo Integration

The exchange bot fits in after ret_elig (#365) and feeds into the Loop portal. It does not replace SIZE-XCH (#366) but automates FIT-XCH and VARIANT-REC at scale.

How does it differ from return bot #10 and sizing bot #199?

Eight related contexts, eight distinct bot roles regarding exchange and size.

Exchange size support (#366)

SIZE-XCH (#366) : human FIT-XCH policy ops. #367 = automation bot variant recommendation + RMA link.

Return bot (#10)

Return bot (#10) : full refund/exchange journey. #367 = smart exchange sub-module handoff #10 if refund is wanted.

Eligibility bot (#365)

Eligibility (#365) : upstream ret_elig gate. #367 requires eligible=true before XCH-BOT-GATE.

Size recommendations (#199)

Recommendations (#199) : pre-purchase sizing engine. #367 reuses same mapping logic with order context + issue received.

Bot size guide (#5)

Bot size guide : PDP FAQ. #367 operates post-purchase exchange.

Prequalification (#138)

Prequalification (#138) : reason collection. #367 assumes wrong size or variant change reason.

International sizes (#265)

Conversion (#265) : EU/US. #367 intent xch_bot_intl_convert.

Promise #367

Intents xch_bot_*, flow XCH-BOT-GATE, engine VARIANT-REC, safeguards XCH-BOT-GUARD, KPI xch_bot.

Which xch_bot intents should the bot classify?

Map xch_bot intents before flows. Scope: recommend variant and send RMA, no refund without triage.

Twelve exchange bot intents

  • xch_bot_size_up: too small, larger size

  • xch_bot_size_down: too big, smaller size

  • xch_bot_between_sizes: hesitation, interactive fit advice

  • xch_bot_color_change: same size, other color

  • xch_bot_variant_alt: length, cut, alternative SKU

  • xch_bot_stock_out: target unavailable, alternatives

  • xch_bot_repeat_wrong: 2nd exchange, handoff #366 supervisor

  • xch_bot_wrong_shipped: warehouse error, not customer fit

  • xch_bot_advanced: reship before return, eligibility check

  • xch_bot_intl_convert: EU/US sizing confusion

  • xch_bot_refund_pivot: gives up exchange, wants refund

  • xch_bot_confirm_variant: customer validation variant_target

Required session fields

order_id, line_item, variant_ordered, size_issue, measurements_json, fit_note, variant_recommended, stock_available, exchange_count, fit_confirmed (bool).

Parent router

"exchange", "wrong size", "other color", "L instead of M" → xch_bot_*. "Refund" without exchange → #10 refund flow.

90-day ticket mining

Export tags size_xch #366. Prioritize top verbatim flows before VARIANT-REC tuning.

MVP prioritization

Week 1: xch_bot_size_up/down + VARIANT-REC. Week 2: xch_bot_color + stock_out. Week 3: repeat_wrong handoff + advanced.

How to build the XCH-BOT-GATE and VARIANT-REC flow?

The XCH-BOT-GATE flow routes each exchange request via elig, fit dialog, and variant engine before RMA.

Eight sequential gates

  1. Gate auth: email + order_id + line_item

  2. Gate ret_elig: eligible (#365) or handoff late (#364)

  3. Gate exchange_count: >= 2 → xch_bot_repeat_wrong handoff

  4. Gate issue: too_small / too_big / color / wrong_shipped

  5. Gate FIT-DIALOG: 3 to 5 sizing + fit feel questions

  6. Gate VARIANT-REC: engine recommends variant_target

  7. Gate stock: inventory > 0 or xch_bot_stock_out branch

  8. Gate output: confirm → RMA deep link, advanced, waitlist, handoff

VARIANT-REC engine

Inputs: variant_ordered, size_issue, fit_note (runs_small +2 steps), measurements, aggregated fit reviews. Output: recommended variant_id + confidence + bot text rationale.

FIT-DIALOG bot

Takes over FIT-XCH #366 in conversation: "Where does the garment feel tight?", "Your usual size with us?", "Chest/waist/hip measurements?" Max 5 turns.

Branch xch_bot_confirm_variant

"We recommend XL because these jeans run 2 sizes small. Do you confirm?" Customer yes → RMA link variant_target. No → restart FIT-DIALOG or handoff.

Branch xch_bot_wrong_shipped

Skip FIT-DIALOG. Reship correct variant_ordered + prepaid label. Not customer fit fault.

Advanced exchange branch

If policy #366 advanced OK (LTV, 1st xch): immediate reship + return label. Bot cites 14-day return window.

Which data sources does the exchange bot read?

The exchange bot reads live Shopify data + fit catalog for reliable VARIANT-REC.

Mandatory Shopify Sources

  • Order line items: variant_ordered, product_id

  • Variant inventory: stock by size/color

  • Metafield fit_note: runs_small, runs_large, true_to_size

  • Metafield exchange_count: order history

  • Product options: size, color, length axes

Recommendation Sources

  • Size mapping table: same logic as #199 pre-purchase

  • Aggregated fit reviews: "runs small" weight

  • Loop exchange API: eligible variants + RMA URL

  • SIZE-XCH RAG #366: advanced policy, max 2 exchanges

Runs_small Rule

If fit_note=runs_small and issue=too_small: +2 sizes, not +1. Bot quotes fit note in rationale.

Color change xch_bot_color

Same size axis, swap color option. Stock check color variant. No FIT-DIALOG sizing if size is OK.

Portal Parity

variant_recommended must exist in portal exchange picker. CI test 20 fashion SKUs.

What safeguards should XCH-BOT-GUARD impose?

The XCH-BOT-GUARD guardrails prevent incorrect reship and automated repeat wrong size.

Seven strict rules

  • No RMA without fit_confirmed: customer validates variant_target

  • Deterministic VARIANT-REC: LLM does not override +2 runs_small

  • Live stock mandatory: do not promise OOS variant

  • exchange_count >= 2: supervisor handoff, no bot alone

  • ret_elig false: handoff #364, no bot exchange

  • final_sale: exchange refusal, citation of policy

  • Document rationale: log fit_note + measurements for audit

Prompt system xch bot

"You recommend exchange variant according to VARIANT-REC and FIT-DIALOG. You never promise a refund. You always confirm with the customer before the RMA link. If repeat_wrong, handoff to agent." See anti-hallucination.

Customer refuses recommendation

Bot documents: "You chose L despite XL recommendation." fit_confirmed=client_override. Limit of 1 override then handoff.

Audit repeat rate

Monthly sample: xch_bot_repeat_rate post-bot exchange. If > 15%: tune VARIANT-REC rules.

Logging rationale

Each session logs variant_recommended, fit_note_used, measurements_summary for quality audit and training of handoff agents.

On which customer journeys should the exchange bot be deployed?

The exchange bot is deployed on the wrong size post-delivery path.

Size exchange chat flow

ret_elig (#365) → XCH-BOT-GATE → FIT-DIALOG → VARIANT-REC → confirm → RMA link.

Loop portal redirect flow

"wrong size" Portal: "Size help" button → pre-filled order xch_bot chat.

Post-delivery Day+3 email flow

"Size doesn't fit?" CTA smart exchange chat. Reduces tickets without fit-check.

Customer account flow

"Exchange with size advice" button vs "Simple return" self-service.

xch_bot_color_change Flow

Customer wants blue instead of red: skip FIT-DIALOG, stock color picker, direct RMA.

Handoff #366 repeat

xch_bot_repeat_wrong: payload fit history, measurements, prior variant_recommended. Agent supervisor decides refund or expert call.

Handoff #10 refund pivot

xch_bot_refund_pivot after stock_out or customer rejects all alternatives. Bot collects refund reason before redirecting to complete path #10.

How to set up the trade-in bot on Shopify?

The Shopify exchange bot setup connects VARIANT-REC, Loop, and SIZE-XCH RAG.

Technical checklist

  1. Deploy fit_note metafields top SKU fashion

  2. Build VARIANT-REC rule engine (fit_note + issue + size axis)

  3. Integrate ret_elig gate #365 upstream

  4. Connect Loop exchange API + deep links

  5. Index SIZE-XCH #366 + policy /returns RAG

  6. Configure router xch_bot_* intents

  7. Implement XCH-BOT-GATE + FIT-DIALOG

  8. Draft prompt XCH-BOT-GUARD

  9. Test 30 fashion regression scenarios

  10. Weekly xch_bot_resolution dashboard

Reuse engine #199

Share pre-purchase (#199) and post-purchase (#367) size mapping table. A single source of fit truth.

Phased rollout

Phase 1: jeans category xch_bot_size_up/down. Phase 2: dresses + between_sizes. Phase 3: color + advanced.

Helpdesk handoff payload

Sidebar: variant_recommended, fit_note, fit_confirmed, exchange_count, rationale summary.

Which xch_bot KPIs should be measured?

Without KPI xch_bot, it is impossible to prove ROI vs human FIT-XCH #366 alone.

Seven key metrics

  • xch_bot_resolution: RMA sent without agent / xch bot sessions

  • xch_bot_repeat_rate: 2nd wrong size / bot exchanges

  • xch_bot_fit_confirm_rate: customer confirms recommendation / total

  • xch_bot_override_rate: customer rejects recommendation / total

  • xch_bot_stock_out_rate: waitlist or refund pivot / requests

  • xch_bot_handoff_rate: repeat_wrong + supervisor / sessions

  • CSAT intent xch_bot: bot exchange satisfaction

DTC fashion benchmark

Target xch_bot_resolution > 75%, xch_bot_repeat_rate < 10%, xch_bot_fit_confirm > 85%, CSAT > 4.5/5.

Comparison #366 alone

Measure size_xch_repeat_rate before/after bot. Target -15 points repeat wrong size.

A/B VARIANT-REC

Test +1 auto vs fit_note +2 rules on SKU runs_small. Metric: repeat_rate 30 d.

Weekly ops dashboard

30 min review: top 5 SKU xch_bot_repeat_rate, override_rate by fit_note type, handoff repeat_wrong volume. Adjust VARIANT-REC if runs_small SKU repeat > 12%.

What edge cases and handoffs should be planned for?

Seven edge cases xch bot require handoff or special branch.

Set matching top+bottom

Partial exchange line item. Bot processes one line at a time, no forced bundle set.

Half-size shoes

VARIANT-REC suggests inset sole or sizing up if 42.5 is unavailable. Handoff if customer insists on a half-size.

Unisex sizing

FIT-DIALOG measurements, no gender label. Separate unisex mapping table.

Bracketing S+M ordered

Return of unused size = standard return #365, not xch_bot exchange_count.

Marketplace order

xch_bot redirects to external channel. No XCH-BOT DTC.

Customized product

final_sale or no_exchange tag: bot refusal, no VARIANT-REC.

International xch_bot_intl

Customer ordered US 8 and thinks EU 38. Conversion table #265 before VARIANT-REC.

Gift exchange

Recipient auth. FIT-DIALOG without buyer data. Gift policy #366.

Preorder delivered late

ret_elig deadline starts from actual delivery. Bot cites tracking date delivered_at before XCH-BOT-GATE, not order date.

How does Qstomy recommend the exchange variant?

Qstomy runs XCH-BOT-GATE, VARIANT-REC and FIT-DIALOG with live Shopify order context.

Bot exchange capabilities

  • xch_variant_rec: engine fit_note + measurements

  • xch_fit_dialog: conversational FIT-XCH 5 questions

  • xch_stock_live: inventory variant before promise

  • xch_rma_deep_link: Loop pre-filled variant_target

  • xch_repeat_handoff: supervisor payload #366

Quantified DTC Scenario

Jeans brand, 165 size exchanges/month, repeat rate 22%.

After Qstomy xch_bot: 68% resolved without agent, xch_bot_resolution 77%, xch_bot_repeat_rate 7%, CSAT 4.7/5.

Explore AI support, Shopify, request a demo.

What is the checklist for launching XCH-BOT?

Exchange bot checklist (10 steps)

  1. Validate SIZE-XCH #366 and ret_elig #365

  2. Audit 90-day size_xch tickets

  3. Deploy fit_note metafields fashion catalog

  4. Build VARIANT-REC rule engine

  5. Implement XCH-BOT-GATE section 4

  6. Configure router xch_bot_* intents

  7. Draft prompt XCH-BOT-GUARD section 6

  8. Integrate Loop RMA deep links

  9. Test 30 regression scenarios

  10. Weekly xch_bot_repeat_rate dashboard

In brief

  • #367 = smart exchange bot, not general returns (#10) nor pre-purchase sizing (#199)

  • XCH-BOT-GATE: elig → fit dialog → VARIANT-REC → confirm → RMA

  • 12 xch_bot_* intents: size, color, repeat, stock

  • Deterministic: LLM dialogues, VARIANT-REC decides size

  • KPI xch_bot_repeat_rate: target < 10%

FAQ

Exchange bot = returns bot?
No. #367 recommends optimal variant. #10 handles refund and the full journey.

Difference with recommendations #199?
#199 = pre-purchase PDP. #367 = post-purchase with received product context + fit issue.

Can the bot force XL if the customer wants L?
No. Recommendation + confirmation. Override documented, 1 max then handoff.

2nd exchange for the same order?
Supervisor handoff #366, no bot alone.

Color exchange only, without fit?
Yes. xch_bot_color_change skips FIT-DIALOG, stock check only.

Going further

Test mystery shop: order jeans runs_small M too tight, check bot recommends XL (+2) and asks for confirmation before RMA.

Share this guide #367 with product and support: a well-calibrated exchange bot turns a wrong size into the right variant on the first try, without a costly second return.

Enzo

August 4, 2026

Convert over 2,000 customers on average per month with Qstomy.

The world’s 1st Shopify AI dedicated to customer conversion

Empowering 200+ e-commerce merchants

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.