E-commerce
July 1, 2026
"Why €12 handling on top of shipping?" "Nobody mentioned this charge on the product page." "What is the difference between shipping and handling?" Three messages where poorly explained handling fees generate cart abandonment, chargebacks, and post-purchase support tickets.
The e-commerce handling fee support clarifies what these fees cover (preparation, reinforced packaging, bulky items), how to display them before checkout, and how to respond when the customer discovers them at checkout.
This guide #410 covers policy HANDLING-FEE, flow HAND-FLOW, and KPI handling. It complements shipping fees (#204) and comes before the additional fees bot (#411): here, preparation/handling fees, transparency, and agent customer support.
Summary
Why do handling fees generate tickets?
A handling fee ticket occurs when the customer discovers a "handling fee", "preparation fee" or "handling surcharge" line item distinct from the carrier's shipping rate.
Five typical customer confusions
Handling = delivery: customer believes they are paying twice for shipping
Surprise checkout fee: missing from PDP, visible only in the final cart
"Free shipping" product: handling not included in the free shipping threshold
Post-purchase dispute: "scam", requests a refund for the fee only
B2B vs DTC: pallet fee misunderstood by individual retail customers
Baymard estimates that 48% of e-commerce cart abandonments are linked to additional costs perceived as too high or unexpected (Baymard, cart abandonment 2026). Gorgias observes that post-order "hidden fee" tickets convert 2.3x more into chargebacks than standard delivery disputes (Gorgias, customer service stats 2026).
Angle #410 vs related content
Delivery fees #204: carrier shipping rate. #410 = separate warehouse/preparation handling.
Hidden fees #291: global cart abandonment overview. #410 = specific handling fee type.
Fee bot #411: future checkout automation. #410 = agent policies + HAND-* macros.
Shipping SEO #399: delivery content. #410 = daily handling customer support.
Oversize #ship: large volumes. Handling is often coupled with oversize, but they are two separate policy lines.
DTC Example
Flat-pack furniture brand, handling fee of €8-15 depending on weight. Without HANDLING-FEE: 62 handling tickets/month, 34% fee refund rate. After playbook: handling_ticket_rate -47%, checkout_surprise_rate -55%, handling_csat 3.9/5.
Handling vs shipping
Shipping = carrier (Colissimo, Chronopost). Handling = internal cost for pick, pack, extra protection, pallet, fragile products. Two line items, two explanations.
Handling ticket volume
DTC with active fee: 3-8% of orders generate a handling ticket if transparency is low. Post PDP badge: -40-55% volume.
How does handling differ from port #204?
Three types of checkout fees, three support responses.
Fee matrix → client definition
Shipping (#204): package transport to the client's address
Handling (#410): preparation, packaging, warehouse handling
Service fee (#411): checkout options (gift wrap, insurance)
Five legitimate handling triggers
Oversize / heavy: > 30 kg or > 120 cm combined
Fragile: glass, ceramics, mandatory double cardboard
Cold chain: coolers, fresh products
Complex kit: multi-package partial pre-assembly
B2B pallet: pallet preparation, shrink wrap
Shopify implementation
Handling fee via shipping profile surcharge, line item property fee, or app checkout fee. Support must read the exact order breakdown.
Promise #410
Policy HANDLING-FEE, fee matrix FEE-MAP, 12 typologies handling_*, flow HAND-FLOW, macros HAND-*, KPI.
Which handling_* typologies should be mapped?
Twelve handling fee ticket typologies for consistent routing.
Twelve handling scenarios
handling_pre_purchase: "Are there preparation / handling fees?"
handling_checkout_surprise: fee discovery in the cart
handling_vs_shipping: difference between shipping / handling
handling_pdp_missing: fee not displayed on the product page
handling_free_shipping_confusion: free shipping but handling fee remains
handling_post_refund_request: refund handling fee only post-purchase
handling_oversize_specific: furniture, pallet, weight
handling_multi_item: fee x qty or flat fee per order
handling_b2b_invoice: accounting line separate from shipping
handling_international: handling + customs confusion
handling_waive_request: request to waive fee as a commercial gesture
handling_app_bug: fee applied incorrectly at checkout
Helpdesk tags
handling_fee, handling_surprise, handling_refund, handling_oversize, handling_waived, handling_explained. Distinct ship_cost, hidden_fee.
Prioritization
P1: post_refund_request, app_bug. P2: checkout_surprise, pdp_missing. P3: pre_purchase, vs_shipping FAQ.
Which FEE-MAP matrix should be documented?
The handling fee matrix FEE-MAP lists triggers, amounts and client copy.
FEE-MAP columns
fee_code: handling_standard, handling_oversize, handling_fragile
trigger_rule: weight > X, fragile tag, furniture collection
amount: flat or tier (e.g. 8 / 12 / 15 €)
client_label_fr: "Handling fees"
explanation_fr: 1-line phrase for macro HAND-*
pdp_display: yes/no + copy template
FEE-MAP furniture example
handling_oversize: weight > 25 kg OR dimension > 100 cm → 12 €. Explanation: "Reinforced preparation and bulky packaging in warehouse, distinct from Colissimo transport."
Free shipping clarification
Policy: free shipping = shipping rate 0 €. Handling fee may remain. PDP: "Free shipping · handling [X] € if applicable".
Publication /pages/fees
Client FEE-MAP table: fee type, when, amount, product example. Checkout footer link + agent macros.
PDP copy template
"Handling: 12 € · reinforced warehouse packaging · shipping costs added at checkout" below product price override trigger.
How to write the HANDLING-FEE policy in eight rules?
The handling fee policy HANDLING-FEE governs display and refunds.
Eight HANDLING-FEE rules
PDP Transparency: fee displayed on product sheet if product-level trigger
Checkout breakdown: distinct line for shipping vs handling, no lump sum
Published FEE-MAP: /pages/fees up to date, synced with ops pricing
Franco scope: document whether handling is excluded from free shipping
Refund of fee only: possible if surprise non-disclosed OR app bug, not if disclosed
Waive gesture: 1x if customer LTV > €300, max €15, head of support approval required for > €15
Partial order refund: handling non-refundable if returning product, except in case of brand error
FR Legal: price incl. VAT displayed before order validation (LCEN), checkout fee = OK if visible
Merch + ops coordination
FEE-MAP change → update PDP templates + HAND-* macros + bot #411 corpus same day.
Distinction from deposit #412
Security deposit/guarantee = future #412. Handling = preparation service, not a refundable deposit.
Quarterly review
Support + finance: handling_ticket_rate, refund fee rate, adjust disclosure if surprise rate is high.
How to apply the HAND-FLOW in eight steps?
The HAND-FLOW framework structures handling ticket responses.
Eight steps HF-1 to HF-8
HF-1 Lookup order/cart: shipping_lines, fee lines, product tags
HF-2 Classifier: handling_* typology section 3
HF-3 Match FEE-MAP: applied fee_code vs product trigger
HF-4 Verify disclosure: PDP screenshot, checkout step, /pages/fees
HF-5 Explain: macro HAND-* grounded HF-3
HF-6 Decide: uphold | waive | partial refund fee | full refund fee
HF-7 Execute: partial refund Shopify line, order note
HF-8 Document: disclosure gap if pdp_missing, ops alert app_bug
HF-4 disclosure test
If handling_pdp_missing confirmed: refund fee goodwill + flag product team. If disclosed checkout: HAND-EXPLAIN-01 uphold, waive optional LTV.
HF-6 vs_shipping
Order breakdown: shipping €6.90 Colissimo + handling €12. Macro HAND-VS-SHIP-01 2-row table.
HF-6 free_shipping confusion
Subtotal > threshold, shipping €0, handling €8 remains. Policy rule 4. No auto refund if /pages/fees is clear.
HF-8 product feedback loop
handling_pdp_missing ticket → Slack #product-fees with SKU + screenshot. Fix PDP within 48 hours is recurring.
Which HAND-* macros and touchpoints should be configured?
Eight handling fee agent macros and transparency touchpoints.
HAND-EXPLAIN-01 (standard explanation)
"The handling fees of [montant] cover warehouse preparation and packaging (separate from shipping [carrier] [montant shipping]). Details: [explanation FEE-MAP]. FAQ: [lien /pages/fees]."
HAND-VS-SHIP-01 (shipping vs handling)
"Shipping [X] € = transport to your home. Handling [Y] € = warehouse parcel preparation. Two distinct services."
HAND-FREESHIP-01 (free shipping + handling)
"Free shipping from [seuil] €. Handling fees of [Z] € apply to [catégorie] items for reinforced packaging, as indicated on the product page."
HAND-REFUND-01 (surprise fee refund)
"Handling of [montant] refunded due to lack of information on PDP. Apologies. Bank processing time 5-10 days (#370)."
HAND-WAIVE-01 (commercial gesture)
"Handling fees waived as an exception. Refund of [montant] initiated."
HAND-PRE-01 (pre-purchase)
"[SKU]: handling [montant] if applicable + shipping [estimate]. Cart calculator confirms total before checkout."
Touchpoints
PDP: 'Handling [X] €' badge if trigger product
Cart drawer: breakdown of shipping + handling lines
Checkout step review: distinct FR labels
/pages/fees FEE-MAP table
Confirmation email: itemized fees
Bot Alignment #411
Pre-checkout bot quotes HAND-PRE-01 templates. Post-purchase agents HAND-FLOW.
Which oversize, fragile, and B2B cases should be processed?
Special handling cases require FEE-MAP and dedicated macros.
Oversize furniture
Tier handling by weight: < 15 kg €0, 15-25 kg €8, > 25 kg €12-15. PDP dimensions + visible weight. handling_oversize intent macro detail tier.
Fragile glass/ceramic
Fragile product tag → handling_fragile flat €5. Explanation: double cardboard, cushioning, pick time +40%. Non-negotiable unless app bug.
Cold chain
handling_cold: isothermal packaging + gel packs. Distinct shipping express. Seasonal review summer.
B2B pallet
handling_pallet: €45-80 flat. Separate professional quote DTC. Macro HAND-B2B-01 redirects to sales if an individual orders a pallet by mistake.
Multi-item fee logic
Policy: fee once per order max OR per oversized line. Document FEE-MAP. handling_multi_item tickets = verify checkout app logic.
International
Domestic handling + import duties (#65) = 3 lines. HAND-INTL-01 separates warehouse handling vs customs duties.
Seasonal cold chain review
Summer: handling_cold fee active for fresh products. Support briefing in May. Deactivate in October if seasonal range.
Which handling KPIs should be measured?
The support handling fee KPIs drive transparency and refunds.
Eight key metrics
handling_ticket_rate: handling tickets / orders with handling fee
handling_surprise_share: checkout_surprise + pdp_missing / handling tickets
handling_refund_fee_rate: refunds fee line / handling fee orders
handling_waive_rate: waives / handling tickets
handling_fcr: resolved HAND-FLOW without escalation / tickets
handling_csat: satisfaction tag handling_fee
checkout_abandon_handling: abandon at fee step if trackable
pdp_disclosure_compliance: % trigger SKUs with PDP fee badge
DTC Benchmark
handling_surprise_share < 20% post disclosure, handling_refund_fee < 8%, handling_fcr > 72%, pdp_compliance > 95% trigger SKUs.
Monthly dashboard
Typology breakdown, FEE-MAP code distribution, correlation pdp_missing → product category fix backlog.
Product alert
handling_surprise_share > 35% on SKU: PDP audit + urgent checkout disclosure.
A/B disclosure test
PDP badge vs checkout-only: measure handling_surprise_share and conversion. Badge typically wins on oversize.
What anti-patterns should be avoided in material handling?
Ten cool handling anti-patterns to banish.
1. "u20ac18.90 delivery" lump sum
Hidden u20ac12 handling fee. Mandatory breakdown at checkout.
2. Surprise fee at the final checkout step
Baymard cart abandonment spike. Cart drawer fee preview.
3. Agent calling handling "shipping"
Increased confusion. Strict HAND-VS-SHIP-01 vocabulary.
4. Systematic refund fee
Waiver status for abuse. HF-4 disclosure test first.
5. PDP silence on triggering products
pdp_disclosure_compliance < 100% on triggering SKUs = process bug.
6. Misleading "all-inclusive" free shipping marketing
Free shipping ad without a handling asterisk. Legal + CSAT risk.
7. FEE-MAP ops u2260 Shopify config
Agent quotes u20ac8, checkout shows u20ac12. Quarterly sync needed.
8. Ignoring handling_app_bug
Double fee line. Dev ticket + refund all affected users.
9. Mixing handling and service fee #411
Gift wrap u2260 handling. Distinct checkout labels.
10. Missing /pages/fees
HAND-PRE-01 link is 404. Missing self-service page.
11. Return refund automatically includes handling
Policy rule 7: product refund only unless brand error.
How does Qstomy help with handling fees?
Qstomy on Shopify: order fee breakdown lookup, FEE-MAP glossary explain, handling vs shipping distinguish, pre-purchase fee estimate, handoff refund workflow.
Qstomy handling capabilities
handling_fee_detect: order line shipping vs handling
handling_fee_map_explain: HF-3 FEE-MAP bot/agent
handling_vs_ship_template: HAND-VS-SHIP-01 auto
handling_pre_cart_estimate: tier preview pre-checkout
handling_disclosure_link: /pages/fees cite
handling_handoff_refund: ticket HF-7 fields
Complement #204 #411
Shipping bot #204/203 = transport. Handling #410 = handling agents. Bot #411 checkout = upstream automation fees all types.
Quantified DTC Scenario
Furniture 180 orders/month with handling fee, 28% surprise tickets before.
After HANDLING-FEE + Qstomy: handling_ticket_rate -49%, handling_surprise_share 12%, handling_fcr 74%, handling_refund_fee_rate 6%.
Explore customer support and request a demo.
What is the checklist for deploying HANDLING-FEE?
Checklist HANDLING-FEE (12 steps)
Audit Shopify order breakdown shipping vs handling lines
Document FEE-MAP triggers + amounts in Notion
Draft HANDLING-FEE policy 8 rules
Publish customer table /pages/fees
PDP badges trigger SKUs handling
Distinct checkout labels shipping / handling
Create macros HAND-* helpdesk
Train agents HAND-FLOW 30 min + HF-4 disclosure test
Tags handling_* + dashboard KPI section 9
Sync FEE-MAP → bot #411 corpus (future)
Audit pdp_disclosure_compliance 100% trigger SKUs
Quarterly surprise share + refund rate review
In brief
#410 = handling, not shipping (#204)
FEE-MAP: trigger → amount → explanation
Transparency: PDP + checkout breakdown mandatory
HAND-FLOW: lookup → disclose check → explain → decide
KPI handling_surprise_share: minimal target post-fix
FAQ
Handling legal in France?
Yes, if displayed prior to order validation including VAT. LCEN price transparency.
Does free shipping include handling?
Documented policy choice. Default: shipping €0, handling may remain.
Difference #411 bot?
#410 agents policy handling. #411 bot explains all additional checkout fees.
Refund fee alone without returning product?
If undisclosed surprise or bug. If disclosed: waive gesture LTV option.
Handling on returns/after-sales?
Non-refundable standard. Product refund only policy rule 7.
Go further
This week: audit checkout breakdown, publish FEE-MAP /pages/fees, add PDP badges trigger SKUs, train agents HAND-EXPLAIN-01.
Share this guide #410 with merch and support: an understood handling fee is an accepted cost, a surprise handling fee is a dispute.
How to configure handling fee in Shopify?
Shipping profile surcharge, checkout extension, or app fee line. Document stack in FEE-MAP.

Enzo
July 1, 2026





