E-commerce
July 1, 2026
"The bot says delivery OK in the USA, checkout refuses my CBD serum." "The AI promises we can bypass the battery restriction." "No one told me supplements don't ship to Switzerland before payment." Three failures where the AI invents availability, confuses customs fees (#65) and banned SKU, or promises a shipment it cannot guarantee.
A country restrictions AI chatbot does not replace REST-FLOW agents (#478). It reads REST-MAP, checks SKU × ship_country, suggests alternative_sku, reroutes customs vs regulated FR, handles human handoff post-payment and customs seized.
This guide #479 covers intents bot_restrict_*, flow RESTBOT, and KPI restrict_bot. Bot pair of the RESTINT playbook (#478). Distinct from the general international bot (#100): here, legal and logistical filtering by destination before checkout.
Summary
Why automate country restrictions by bot?
Restriction blockages often occur at checkout or on the PDP, when the customer has already invested time in the cart. A calibrated bot responds in seconds with the exact rest_code and an alternative.
What the bot solves
Opaque block: checkout refuses without explaining why or what to do
Pre-purchase PDP: "Do you deliver to the USA?" before add to cart
Missing alternative: customer leaves without an authorized substitute
Customs confusion: import fees (#65) u2260 sale impossible
Shopify Markets supports country restrictions, but without REST-MAP the LLM improvises (Shopify, Markets 2026). A RESTBOT bot reduces restrict_postpay by intercepting the question at the right touchpoint.
What the bot does not do
No import legal advice. No legal exception without REST-MAP policy. No post-pay refund (REST-POSTPAY agents #478). No customs clearance guarantee.
RESTBOT vs RESTINT #478 and neighboring international bots
Four bots, four layers. Mixing them produces false shipping promises.
Quick Matrix
#479 RESTBOT: SKU × ship_country, checkout block, alternative_sku
#478 REST-FLOW: post-pay agents, customs seized, refund SLA
#100 INT-GLOBAL: language currency returns
#468 EXPATBOT: residence phone invoice
#119 REG: FR/EU claims
The bot #468 reroutes to RESTBOT if the customer mentions "prohibited product", "does not ship to the USA", not just phone or currency. The bot #100 reroutes if question = restrict_sku ship country.
Which bot_restrict_* intents should be classified?
Eight intents cover 90% of bot restriction sessions.
Eight bot_restrict intents
bot_restrict_country_sku: SKU prohibited in selected shipping country
bot_restrict_pdp_ship: delivery possible to country X before purchase
bot_restrict_checkout_block: cart blocked due to restriction line
bot_restrict_why_not: why prohibited, without legal jargon
bot_restrict_alt_sku: request for permitted substitute at destination
bot_restrict_vs_customs: confuses customs duty with prohibited status
bot_restrict_vs_regulated: confuses FR regulated with import block
bot_restrict_postpay: paid order cancelled handoff agent
Tier 1 auto: country_sku, pdp_ship, checkout_block, why_not, alt_sku, vs_customs. Tier 2 handoff: postpay, vs_regulated if health claim.
How to consume REST-MAP #478?
The bot reads REST-MAP #478: rest_code, scope, blocked_countries, client_label_fr, alternative_sku, reason_type, carrier_note.
Cart and PDP lookup
RB-3 reads sku, ship_country checkout or PDP selector, cart lines. Matches REST-MAP blocked_countries. Never any allowed country invented by the LLM.
Shared Corpus
Macros REST-BLOCK-01, REST-ALT-01, REST-WHY-01 (#478) + /pages/shipping-restrictions in the RAG bot.
RESTBOT-SUP policy in six rules
Six rules for a safe restriction bot in production.
REST-MAP grounded: availability from map + ship_country API
NO-SHIP-PROMISE: block any promise without REST-MAP lookup
ALT always if map: quote alternative_sku if REST-MAP provides for it
CUSTOMS-REROUTE: customs fee keywords → #65, not restrict
NO-LEGAL-ADVICE: quote client_label_fr, do not interpret foreign law
POSTPAY handoff: paid order cancelled → REST-FLOW agent #478
Forbidden: "try neighbor's address", "we bypass", "customs guaranteed", "forbidden everywhere" without lookup.
Flow RESTBOT RB-1 to RB-8
Short flow, eight steps.
RB-1 Classify: bot_restrict_* intent
RB-2 Resolve country: ship_country checkout, PDP selector or ask
RB-3 SKU / cart lookup: lines sku, qty, block flag
RB-4 REST-MAP: rest_code, client_label, alternative_sku
RB-5 Reroute: customs #65, regulated #119, expat #468
RB-6 Respond: TPL-RESTBOT-* grounded
RB-7 Branch: close | alt link PDP | handoff postpay
RB-8 Log: intent, rest_code, ship_country, handoff
Example bot_restrict_pdp_ship
TPL-RESTBOT-SHIP: "[Serum X] cannot be shipped to the United States (REST-US-CBD). Alternative: [Serum REF without CBD]. /pages/shipping-restrictions"
TPL-RESTBOT templates and touchpoints
Four templates cover the essentials.
TPL-RESTBOT-BLOCK
[Product] undeliverable to [country]. Reason: [client_label_fr]. Alternative: [alternative_sku link]. Remove the line or change delivery country.
TPL-RESTBOT-SHIP
Before purchase: yes/no delivery [country] for [sku]. Alternative if blocked.
TPL-RESTBOT-VS-CUSTOMS
Restriction = sale impossible to this country. Customs = import charges if authorized. See customs guide (#65).
TPL-RESTBOT-HANDOFF-POSTPAY
Order [id] line blocked post-payment: agent transfer within 4 hours, refund according to policy #478.
Touchpoints
PDP: "Deliverable to my country?" chip
Checkout block: bot embed REST-MAP message + alt
Cart drawer: country ship badge + sku block preview
Edge cases and mandatory reroutes
Five cases outside tier 1 bot.
Post-pay cancel: handoff agent REST-POSTPAY #478, no bot refund
Customs seized: handoff + macro REST-CUSTOMS #478, no promise
Health claim import: reroute #119
Expatriate family ship: ship country = rule, see #467
Legal ops exception: handoff if REST-MAP exception_policy + approval
Lithium, aerosol, alcohol: bot cites REST-MAP carrier_note, not generated IATA list.
Essential bot restriction KPIs
Five metrics to manage RESTBOT.
restrict_bot_auto_resolve: tier 1 without agent
restrict_bot_pre_checkout_resolve: checkout completed or alt accepted post bot
restrict_bot_ship_promise_violation: NO-SHIP-PROMISE violations, target 0
restrict_bot_alt_accept_rate: % of customers clicking alternative_sku
restrict_bot_postpay_handoff_sla: post-pay handoff delay
Pragmatic target: auto_resolve > 70%, ship_promise_violation 0, pre_checkout_resolve > 55% of active block sessions.
Monthly bot review
Cross-reference restrict_bot_* with top rest_code REST-MAP: if a code generates repeated handoffs, enrich client_label_fr or alternative_sku before expanding the LLM corpus.
RESTBOT anti-patterns to avoid
Six common mistakes when deploying the restriction bot.
Inventing allowed countries: without REST-MAP lookup
Confusing customs and prohibited items: DDU fees ≠ SKU block
Promising shipping: NO-SHIP-PROMISE violation
Post-pay bot refund: agent #478 role only
Import legal advice: cite client_label only
Empty handoff: without sku, ship_country, rest_code, order_id
RESTBOT with Qstomy
Qstomy on Shopify: classify bot_restrict_*, REST-MAP lookup Markets, alternative_sku guided, reroute customs/expat/regulated, handoff postpay payload (sku, ship_country, rest_code, order_id, cart lines).
Pipeline: #479 bot tier 1 restrict pre-checkout → #478 post-pay and customs agents → #65 customs if package in transit. Multilingual: checkout language restriction message, see multilingual bot (#16).
Explore customer support and request a demo.
Deployment checklist, FAQ, and going further
RESTBOT Checklist (8 steps)
REST-MAP Import: sync #478 in dated RAG bot version
RESTBOT-SUP Policy: 6 rules + guardrails
8 bot_restrict_* intents: flow RB-1 to RB-8
Ship country resolver: checkout + PDP selector
4 TPL-RESTBOT-* templates: BLOCK, SHIP, VS-CUSTOMS, HANDOFF
Reroutes: customs #65, regulated #119, expat #468
6 scenario tests: pdp ship, checkout block, alt, vs customs, postpay handoff, invent block
KPI Dashboard: section 9 restrict_bot_*
FAQ
Can the bot lift a restriction?
No. Only if REST-MAP exception_policy + handoff legal ops approved.
Difference with #478?
#478 agents refund post-pay and customs seized. #479 bot filters and explains tier 1 pre-checkout.
Difference with #100?
#100 language currency global export returns. #479 SKU prohibited by ship country.
Go further
This week: sync REST-MAP, enable PDP chip "Deliverable to my country?", test REST-US-CBD block + alternative, verify customs reroute in staging.

Enzo
July 1, 2026





