E-commerce

How to manage free shipping offers in customer support: thresholds, exceptions, and disputes?

How to manage free shipping offers in customer support: thresholds, exceptions, and disputes?

June 30, 2026

"I had €82 in my cart, why am I being charged €5.90 for shipping?" "Your banner said free shipping, but my package is in Corsica." "The -20% code was supposed to include free shipping, wasn't it?" Free shipping converts, but it also generates tickets that neither the glossary nor the progress bar can resolve on their own.

Sendcloud (8,000 European consumers, 2025) indicates that 82% prefer free shipping to fast options, and 70.5% add an item to reach the threshold (Sendcloud, Delivery Compass 2025). Heeya estimates that "is shipping free?" represents 8% to 12% of recurring customer service tickets (Heeya, customer service tickets 2026).

This guide #303 addresses customer support for free shipping offers: thresholds, exceptions, post-purchase misunderstandings. It complements the free shipping glossary (marketing definition) and threshold display (#304) with a focus on customer service processes, macros, and dispute resolution.

Summary

Why does free shipping fuel so many customer service tickets?

Customers do not read your Shopify shipping profile. They remember "free shipping" from the home page, ignore the asterisks, and then message you when the checkout displays €5.90.

Three recurring pain points

  • Misunderstood threshold: Ex-VAT vs. Inc-VAT, promo codes excluded, cart without eligible products

  • Unseen exception: Corsica, overseas territories, heavy furniture, marketplace dropshipping

  • Expired temporary promo: banner still in cache, day-after email with the old threshold

Operational cost

Each poorly handled free shipping ticket costs 8 to 15 minutes of agent time, with the risk of a negative review if the answer contradicts the banner. Afineo notes that 33% of sites offer free returns but increase shipping rates to balance it out (Afineo, e-commerce returns): the customer then confuses outgoing shipping and returns.

Principle #303

Document a single source of truth for free shipping, route each question to an intent, and respond with live cart figures, not with "please read our T&Cs".

How does it differ from the glossary, UX #304, and bot shipping #203?

Six neighboring contents, six complementary roles.

Free delivery glossary

The glossary defines the marketing lever. Book #303: customer service playbook when the promise breaks in production.

Threshold display (#304)

Threshold communication (#304): FRANCO-UX, progress bar, 3-state copy. Book #303 handles already opened tickets and disputes.

Shipping bot (#203)

Delivery bot (#203) automates pre-purchase ship_cost and ship_free_threshold. Book #303 adds post-purchase, combined promotions, refund of shipping costs incorrectly invoiced.

Hidden fees (#291)

Preventive fee support (#291) intercepts checkout shock. Book #303: resolution after invoicing or banner contradiction.

Fee communication (#204)

Explaining fees (#204): micro-copy. Book #303: agent macros and exception matrix.

Promise alignment (#280)

Marketing-support alignment (#280) centralizes master PROMISES. Book #303 extracts the operational FRANCO-POLICY section from it.

Which FSHP-MAP mapping should be used to classify free carriage tickets?

The FSHP-MAP taxonomy (Free Shipping Helpdesk Policy) prevents every agent from reinventing the same explanation.

12 free shipping support intents

  • fshp_threshold: what is the amount for free shipping?

  • fshp_gap: how much am I missing?

  • fshp_eligible: does this product count towards the threshold?

  • fshp_promo_stack: promo code + free shipping stackable?

  • fshp_zone_excl: Corsica, islands, international

  • fshp_heavy_excl: furniture, pallet, surcharge

  • fshp_method_excl: express, home vs pick-up point

  • fshp_charged_error: shipping charged despite threshold being met

  • fshp_banner_mismatch: site said free, checkout didn't

  • fshp_temp_offer: weekend offer, Black Friday

  • fshp_membership: club, subscription, loyalty card

  • fshp_return_vs_ship: free return confused with delivery

90-day Mining

Gorgias or Zendesk export, keywords: free shipping, free, shipping fee, free delivery, threshold, €59, €79. Group into intents. Prioritize top 5 covering 75% of volume. Mandatory fshp_* tag upon closing.

Routing rule

If order_id is present: lookup order before replying. If live cart: query Shopify cart + shipping profile. Never provide a generic threshold response without context.

How to write the FRANCO-POLICY document for agents and bots?

The FRANCO-POLICY document is the single source cited by support, marketing, and the bot. Sendcloud recommends calibrating the threshold based on average cart, margin, and shipping cost, not on competition (Sendcloud, Shopify shipping costs).

8 mandatory blocks

  1. Active threshold: VAT-inclusive amount, region (FR mainland by default)

  2. Calculation base: product subtotal including VAT after cart discounts, before shipping

  3. Product exclusions: gift cards, subscriptions, listed oversize SKUs

  4. Regional exclusions: Corsica +X €, EU outside FR, DOM-TOM

  5. Shipping exclusions: standard free, express always paid

  6. Promotions: cumulative or not with codes, Black Friday dates

  7. Temporary offers: lowered threshold from Nov 12 to 15, marketing owner

  8. Disputes: when to refund wrongly billed shipping (cap, deadline)

Optimal threshold formula

DataFirefly suggests: threshold where additional margin offsets average shipping cost C, with average cart P and margin M (DataFirefly, threshold calculation 2026). Sendcloud's rule of thumb: 20 to 25% above the average cart. Example: AOV €52 → threshold €65.

Versioning

Dated franco_version field (v2026-06). Snapshot in order confirmation: "Shipping: free (threshold €65 incl. VAT, policy v2026-06)". Reduces "which rule applied?" disputes.

Which FRSH macros should be used to respond in less than 60 seconds?

Ten FRSH macros cover 85% of free shipping tickets without improvisation.

Pre-purchase

FRSH-THRESH-01: "Standard delivery free from {{seuil}} € incl. VAT in metropolitan France (excluding Corsica and heavy products). Your cart: {{cart_total}} €. You are missing {{gap}} € if applicable."

FRSH-GAP-02: "Only {{gap}} € more for free delivery. Suggestion: {{sku_suggest}} at {{price}} €." See the free shipping logic in guide #291.

FRSH-PROMO-03: "The code {{code}} discounts your products by {{pct}} %. The free shipping threshold remains {{seuil}} € on the subtotal after discount. Codes do not replace the threshold unless 'free shipping included' is specified."

Exceptions

FRSH-CORSE-04: "Corsica: free delivery from {{seuil_corse}} € or a {{surcharge}} € surcharge according to our policy. Your order: {{detail}}."

FRSH-HEAVY-05: "The {{sku}} is classified as a heavy shipment: free delivery is not applicable, rate is {{rate}} € (2 people, slot)."

FRSH-EXPRESS-06: "Free shipping covers standard delivery. Express remains {{express_price}} € with delivery {{eta_express}}."

Post-purchase and disputes

FRSH-ERROR-07: "You are correct: subtotal {{subtotal}} €, threshold {{seuil}} €, shipping {{charged}} € billed by mistake. Refund of {{amount}} € within 48 hours."

FRSH-DENY-08: "Product subtotal {{subtotal}} €, threshold {{seuil}} €. Gap {{gap}} €. Shipping {{charged}} € compliant with our policy from {{date}}. Link: {{policy_url}}."

FRSH-RETURN-09: "Outward delivery: {{ship_status}}. Return: {{return_policy_short}}. These are two separate rules."

FRSH-BF-10: "Black Friday offer: free shipping from {{seuil_bf}} € from {{start}} to {{end}} only. Outside this period: standard threshold {{seuil_std}} €."

What is the six-step protocol for an "I was charged for shipping" dispute?

The shipping charge dispute protocol avoids systematic refunds or aggressive refusals.

  1. Collect: order_id, banner screenshot if provided, delivery postal code

  2. Recalculate: subtotal incl. VAT post-discounts, SKU exclusions, shipping profile zone

  3. Compare: active rule at the order timestamp (not current rule if changed)

  4. Classify: technical error, promo agent error, customer under threshold, zone exception

  5. Resolve: shipping refund, commercial gesture, or documented FRSH-DENY-08

  6. Tag + feedback: fshp_charged_error or fshp_banner_mismatch, marketing alert if banner is incorrect

Decision Matrix

  • Threshold reached, shipping charged: auto-refund if discrepancy > €0.01

  • Incorrect banner > 24 h: refund + fix UX within 4 h

  • Customer €2 under threshold: no policy refund; optional gestural gesture for VIPs

  • Excluded heavy SKU: FRSH-HEAVY-05, no gesture except for product page error

DTC Mode Example

Order #8842: €67 products, €65 threshold, €4.90 shipping charged. Cause: €10 gift card excluded from customer calculation but included in Shopify. Agent: explains basis of calculation, refunds €4.90 because product threshold excluding card = €67. FRANCO-POLICY patch: "gift cards excluded from threshold" in bold.

How do I handle exceptions for zones, heavy products, and carriers?

French free shipping exceptions account for 40% of escalations if they are not scripted.

Geographical zones

Metropolitan France: default rule. Corsica: often carrier surcharge not absorbed by margin. French Overseas Territories (DOM-TOM): free shipping is rare, dedicated threshold or never offered. EU: threshold per Shopify market. Document in FRANCO-POLICY one line per zone, not a vague paragraph "excluding remote areas".

Products and categories

  • Oversize: metafield shipping_class=heavy, free shipping disabled

  • Pre-order: free shipping upon shipment, not upon split order

  • Marketplace / dropshipping: third-party supplier delay and shipping, see dropshipping support

  • Gift cards: often excluded from the free shipping subtotal

Shipping method

Free shipping = Standard Colissimo home delivery. Pickup points are sometimes included, express shipping never. Sendcloud pickup point: 58% of Europeans prefer OOH (Sendcloud, trends 2026): specify if pickup point counts as "free shipping".

Zone agent script

"Your postal code {{cp}} is in {{zone}}. Rule: {{rule}}. Tariff applied: {{rate}} €. Alternative: {{alt}}."

How to manage temporary promotions, promo codes, and cumulative offers?

Temporary free shipping promotions multiply tickets by 2x to 4x if marketing and support do not share the same calendar.

Shared promo calendar

Notion or Asana: start/end date, free shipping threshold, zones, excluded SKUs, owner, banner link. Support receives a Slack alert at T-24 h and T+1 h post-promo. Align with PROMISES master (#280).

Combining code + free shipping

Three models to be explicitly documented:

  • Model A: threshold based on original price (before discount code)

  • Model B: threshold based on cart value after discount code (most common)

  • Model C: code PORTOFFERT = free shipping with no threshold, non-combinable

Common marketing errors

"Free shipping this weekend" banner without an end date. Klaviyo email with old threshold 48 hours after change. Free shipping pop-up on excluded product PDP. Every incident → fshp_banner_mismatch ticket + weekly review.

Active macro promo

During Black Friday: FRSH-BF-10 mandatory. Agent forbidden to say "I'll waive shipping costs as a gesture" if the policy states it is paid outside of promotions.

Where to place the bot and the human on free shipping questions?

Distribute bot vs human free shipping for speed without over-promising.

Auto bot (extended intents #203)

fshp_threshold, fshp_gap with live cart, fshp_eligible if metafield, fshp_return_vs_ship, fshp_temp_offer if indexed calendar, FREE-SHIPPING-POLICY hub link.

Human under 5 min

fshp_charged_error, fshp_banner_mismatch, chargeback threat, customer > 500 € LTV, B2B, complex split order.

Bot forbidden

  • Promising shipping refund without order lookup

  • Announcing free shipping if cart < threshold "to be nice"

  • Inventing expired promo threshold

Bot corpus

Index FREE-SHIPPING-POLICY + /pages/shipping page + JSON promo calendar. Same source as Gorgias macros. Drift bot ≠ checkout = peak fshp_charged_error. Complete shipping bot (#203) with fshp_* tags.

Which KPIs should be tracked to reduce carriage-free tickets?

Measure the volume and quality of free shipping tickets, not just the successful delivery rate.

Monthly KPIs

  • fshp_ticket_rate: fshp_* tickets / total tickets

  • fshp_first_reply_accuracy: replies compliant with FREE-SHIPPING-POLICY (QA 20 tickets)

  • fshp_refund_port_total: € refunded for shipping disputes

  • fshp_banner_mismatch_count: marketing errors detected by customer service

  • fshp_reopen_rate: customer reopens "it's not clear"

  • fshp_bot_deflection: fshp intents resolved without human intervention

Weekly Review 30 min

Top 3 intents, 1 patch for FREE-SHIPPING-POLICY or macro if gap. Cross-reference with pre-checkout questions (#24) to report UX friction to guide #304.

Alert Signal

fshp_charged_error > 5/week: audit Shopify shipping profile + banner sync. Sendcloud: 66.3% of abandonments linked to shipping costs (Sendcloud 2025): each unresolved dispute also feeds into future abandonment.

How does Qstomy reduce free shipping issues and freight disputes?

Qstomy calculates threshold, gap, and exceptions directly from the Shopify cart or order, cites FRANCO-POLICY, and routes shipping fee disputes.

Capabilities

  • Cart/order lookup: subtotal, discounts, zip code area

  • Auto-detection of fshp_* intents and FRSH macros

  • FRANCO-POLICY index + promo calendar

  • Heavy SKU / Corsica zone flagging via metafields

  • Human handoff payload: threshold recalculation + banner capture

  • Monthly fshp_* KPI export

Quantified DTC Scenario

French wellness brand, 1,850 tickets/month, fshp_ticket_rate 9.4% (174 tickets), 31% reopening rate for "unclear threshold". Deployment of FRANCO-POLICY 8 blocks + 10 FRSH macros + Qstomy grounding + fshp tags. After 8 weeks: fshp_ticket_rate 5.8%, fshp reopening rate −38%, shipping fee dispute refunds −24% (fewer upstream errors), fshp_bot_deflection 61%.

See Shopify, AI support, demo.

Which playbooks should be deployed to scale French-speaking support?

Playbook 1: fshp ticket audit (3 h)

90-day export, classify 12 intents in section 3. Note top 5 verbatims. Estimate fshp_ticket_rate baseline.

Playbook 2: write FRANCO-POLICY (4 h)

Fill in 8 blocks of section 4 with ops and marketing. Publish hub /pages/livraison-franco. Footer link.

Playbook 3: FRSH macros (2 h)

Import FRSH-THRESH-01 to FRSH-BF-10 into Gorgias. Test 15 historical tickets.

Playbook 4: dispute protocol (1 h)

Display section 6 matrix in Notion. Train 3 agents on Shopify order recalculation.

Playbook 5: promo sync (30 min / campaign)

Section 7 calendar, Slack alert, activate FRSH-BF-10, deactivate banner T+1 hr.

Useful links

This week: export 20 "free shipping" tickets from the quarter. How many could have received FRSH-THRESH-01 with a live cart? If more than half, prioritize FRANCO-POLICY before the next promo.

Enzo

June 30, 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.