Should You Build or Buy a Local-Pickup Handling Fee?
Building a Local Pickup Charges Function wins on Plus when a fee must attach to pickup itself: the generator Function prices the pickup option inside checkout, a $12,000–$30,000 build (Deploi estimate, illustrative). Surcharge apps from $9/month (verified Sep 2026) add fees by product, order total or payment method, and none of the three verified listings is pickup-specific. Custom apps with Function APIs are Plus-only, so non-Plus stores have no clean pickup-only fee.
Your profile — see how the verdict shifts
- Confidence
- High — Fetched the Upcharge Surcharge Fees Tariff, Magical Surcharge + Extra Fees and VOL Surcharge & Product Fees listings directly on 2026-09-05 and reviewed the wider surcharge niche, excluding weaker listings such as CHARGIFY Extra Fee at 3.7★ on 14 reviews. All three verified apps condition fees on products, order totals, customers or payment methods; none is pickup-specific, because they apply fees through cart and checkout rules rather than inside the delivery-option computation. Shopify's docs confirm custom apps with Function APIs are Plus-only and pickup points are closed to public App Store apps.
- Reference scenario
- $20M–$100M revenue · Shopify Plus · 12 stores offering curbside pickup · agency dev bench
- As of
- September 2026
Decision at a Glance
| Your profile | Verdict | Why |
|---|---|---|
| Fee applies to every order or to specific products, any plan | BUY | A surcharge app is the right tool: Upcharge Basic at $9.99/month, Magical Starter at $9/month or VOL Pro at $15/month add fixed or percentage fees by product, order total or payment method (verified Sep 2026). |
| Fee must apply only to pickup orders, non-Plus plan | WAIT | Custom apps with Function APIs are Plus-only, and no verified surcharge app reads the chosen delivery option. A manually priced flat rate labeled as pickup is the workaround, with none of the pickup UX. |
| Fixed pickup-only fee across a few stores, Plus | BUILD | A generator Function returning each pickup option with a cost is the smaller end of the build, $12,000–$18,000 (Deploi estimate, illustrative), and the only mechanism that never touches shipped orders. |
| Fee varying by time, location or cart across many stores, Plus | BUILD | The Function prices every location's pickup option separately, with a scheduled metafield switching peak pricing on and off. No app sits in that computation. |
What Local Pickup Charges Function Actually Drives
| Outcome | Impact | How it works |
|---|---|---|
| Revenue — direct | Medium | A small charge on every pickup recovers curbside staff time that free pickup absorbs, and it applies to exactly the orders that cost you that time. |
| Operational efficiency | Medium | Peak-hours pricing shifts some pickups to quieter windows, smoothing the curbside queue without turning pickup off. |
| Customer experience | Medium | The fee appears on the delivery line at the moment the buyer chooses pickup, with a clear label, instead of as a mystery product in the cart. |
| Data & insight | Low | Pickup fee revenue on the delivery line gives finance a clean read on pickup economics per store without unpicking fee products from sales reports. |
Spend ceiling: Size the spend to pickup volume times the fee. Below a few hundred pickups a month the revenue never repays a build; above a couple of thousand, the Function pays for itself within the year.
What buying enables (top apps)
- + Fixed and percentage fees by product, order total or payment method, live today on any plan
- + Fee history and tax exports on Magical's Plus + Compliance tier at $79/month (verified Sep 2026)
- + POS and draft-order coverage for fee programs that span channels
What building additionally unlocks
- + A charge that exists only when the buyer selects pickup, on the delivery line, never on a shipped order
- + Per-location and peak-hours pricing decided inside checkout's delivery computation
- + Pickup revenue as clean first-party order data rather than a vendor's fee product
Find Your Verdict in 3 Questions
Must the fee apply only when the buyer chooses pickup, never to shipped orders?
Yes: Go to question 2.
No: Your verdict: BUY — a surcharge app from $9/month adds fees by product, order total or payment method on any plan (verified Sep 2026).
Is the store on Shopify Plus?
Yes: Go to question 3.
No: Your verdict: WAIT — custom apps with Function APIs are Plus-only, so a manually priced flat rate labeled as pickup is the workaround, without the pickup UX.
Does the fee vary by time, location or cart, such as a peak-hours curbside charge?
Yes: Your verdict: BUILD — the generator Function prices each location's pickup option, with a scheduled metafield switching peak pricing on and off.
No: Your verdict: BUILD — a fixed pickup charge is the short end of the build, about $12,000–$18,000 (Deploi estimate, illustrative), and no app reaches it.
The TCC Scorecard — 12 Dimensions
TCC — Total Cost of Capability: what it actually costs to have this capability over three years, whichever way you get it. Each dimension is scored 0–5 for both paths. How we score →
| Dimension | Buy | Build | Why |
|---|---|---|---|
| Cost | |||
| Acquisition & implementation | A surcharge app configures in an afternoon; the Function is a 3–6 week build inside a custom app (Deploi estimate, illustrative). | ||
| Recurring fees | Apps list $9–$79/month with Plus-specific tiers at $29–$35/month (verified Sep 2026); the Function carries upkeep and no subscription. | ||
| Maintenance & upgrades | A single-purpose Function has little to break beyond API version bumps; the vendor handles that on the app path. | ||
| Switching & exit | Fee rules and fee history live in the app; uninstalling a Function returns pickup to free instantly with nothing stranded. | ||
| Risk | |||
| Vendor risk | Three vendors with 63 to 172 reviews in a populated niche; the Function has no vendor beyond Shopify. | ||
| Security & compliance surface | A fee app reads cart and order data under its own scopes; the Function runs inside checkout with no external call and no data leaving Shopify. | ||
| Platform-deprecation exposure | Apps that insert fee line items depend on cart mechanics Shopify keeps reshaping; the generator Function sits on the sanctioned delivery-option surface. | ||
| Value | |||
| Fit to requirement | None of the verified apps conditions a fee on the buyer choosing pickup; the Function prices the pickup option itself, so shipped orders never see it. | ||
| Time to market | Today versus roughly a month, for the fixed-fee version. | ||
| Performance & scale | A fee line item added to the cart is one more product in every order and report; a delivery-option cost is a clean charge on the delivery line at any volume. | ||
| Data ownership & AI-readiness | Pickup revenue lands on the delivery line in your own order data rather than as a vendor's fee product, so pickup economics report cleanly. | ||
| Focus & opportunity cost | A 3–6 week single-purpose build is small; the fee revenue itself decides whether it is worth a dev bench's month. | ||
The App Landscape
| App | Status | Pricing | Best for |
|---|---|---|---|
| Upcharge Surcharge Fees Tariff | Live — 4.7★, 172 reviews, Built for Shopify. General-purpose fees and surcharges applied through cart and checkout rules, with a dedicated Shopify Plus tier. Not pickup-specific: it does not read the delivery option the buyer chooses. | Basic $9.99/month (unlimited fees and surcharges), Shopify Plus Plan $29.99/month (Plus stores only); free for development stores; 14-day trial (verified Sep 2026) | Storewide or product-level fees on any plan |
| Magical Surcharge + Extra Fees | Live — 4.9★, 114 reviews, Built for Shopify. Fixed and percentage fees across Online Store, POS and draft orders; the Plus tiers add order-total fees and PayPal, Shop Pay and COD transaction fees. Conditions run on products, totals and payment methods, not on pickup. | Starter $9/month or $85/year, Plus $29/month or $279/year (Shopify Plus only), Plus + Compliance $79/month or $759/year (fee history and tax export); free for development stores; 14-day trial (verified Sep 2026) | Payment-method and order-total fees with an accounting export |
| VOL Surcharge & Product Fees | Live — 5.0★, 63 reviews, Built for Shopify. Priced by the number of monthly orders that carry a fee, which suits a fee on a subset of orders. Still a cart-rule app: it cannot single out pickup orders. | Free up to 10 monthly orders with fees, Pro $15/month up to 200, Plus $35/month up to 500; 7-day trial (verified Sep 2026) | Low-volume fee programs where per-order pricing beats a flat plan |
| Local Pickup Charges Function (custom app) | Build lane — Plus-only. A Local Pickup Delivery Option Generator Function that returns each location's pickup option with a cost, so the charge exists only when the buyer selects pickup. A scheduled metafield toggles peak pricing on and off. | $12,000–$30,000 one-time plus upkeep (Deploi estimate, illustrative) | Any Plus retailer whose pickup fee must never touch a shipped order |
The Build Path
- Generator Function with a priced pickup option: The Function runs inside checkout's delivery-option computation and returns your locations' pickup options, each carrying a cost. The charge appears on the delivery line only when the buyer selects pickup, so shipped orders never see it.
- Peak-hours and per-location pricing through metafields: A scheduled job flips a location metafield when peak pricing is on and clears it after; the Function reads it and prices accordingly. Metafields are the sanctioned input, since network access for Functions needs to be enabled by Shopify.
- Custom app shell and rollout: The Function ships inside a custom app deployed with Shopify CLI, tested on a staging store against real carts, then enabled per location so a single store can pilot the fee first.
- Effort band
- $12,000–$30,000 build (Deploi estimate, illustrative); lands in the $10–25K contact-form band, reaching $25–75K only with per-location, time-based pricing
- Typical timeline
- 3–6 weeks (Deploi estimate, illustrative); the fixed-fee version is the short end
- Maintenance, honestly
- ~15–20% of build cost per year, roughly $2,000–$6,000/yr (Deploi estimate, illustrative): API version bumps and fee changes as stores open or pricing policy shifts. No subscription line.
- What you own — and what you take on
- You own: the fee logic, the per-location pricing and the pickup revenue as clean delivery-line data. You take on: the peak-hours schedule and the quarterly API check, which is about all a single-purpose Function asks.
3-Year Total Cost of Capability
| Buy (app path) | Build (custom path) | |
|---|---|---|
| Year 0 (setup) | $300–$1,000 (rule configuration and testing) | $12,000–$30,000 |
| Years 1–3 (recurring) | $1,000–$2,900 | $6,000–$18,000 (maintenance) |
| 3-year total | ≈$1,300–$3,900 | ≈$18,000–$48,000 |
- † All figures illustrative samples for the reference scenario — not quotes, not verified pricing.
- † App path: a Plus-tier surcharge plan at roughly $30/month, configured once, delivering a storewide or product fee rather than a pickup-only fee.
- † Build path: one generator Function with a metafield-driven peak toggle, three-year horizon with upkeep at 15–20% of build cost.
What the Sticker Price Hides
On the buy path
- — The fee lands as a line item, so a storewide discount, a report or a change of delivery method can catch it in ways you did not intend
- — Plus-specific tiers cost $29–$35/month against $9–$15 base plans, and still cannot single out pickup orders (verified Sep 2026)
- — VOL prices by monthly orders carrying a fee, so a popular pickup program re-tiers you upward
On the build path
- — Peak-hours logic depends on a scheduled metafield toggle; if the job fails, the fee stays on or off all day
- — The Function prices pickup only; eligibility, slots and notifications are separate decisions
- — ~$2,000–$6,000/yr upkeep (Deploi estimate, illustrative)
What Merchants Say
Retailers describe curbside staff time as the hidden cost of free pickup during peak hours, with no way to price it that doesn't also hit shipped orders.
Fee apps draw 1–2★ reviews when the fee line survives a change of delivery method, shows up as a product in reports, or gets caught by a storewide discount.
If You Change Your Mind Later
If you bought and outgrow it
Uninstall and the fee rules disappear with the app, along with the fee history unless your tier exported it. Orders already placed keep their fee line items, and any storewide discount logic you bent around the fee product needs unbending.
If you built and want out
Delete the custom app and pickup returns to free at every location the same minute. The pickup revenue already collected sits on the delivery line of your own orders, and no vendor holds anything, so the exit cost rounds to zero.
When This Answer Changes
We're watching for:
- ▸ Shopify adding a price field to native local pickup settings (none as of September 2026)
- ▸ A surcharge app conditioning fees on the selected delivery method, which would close the gap without code
- ▸ Changes to what Functions receive as input, which could replace the scheduled metafield toggle for peak hours
Verdict change log:
No changes since first publication (September 2026).
Common Questions
Can a surcharge app charge a fee only when the buyer chooses local pickup?
No, not among the three verified listings. Upcharge, Magical Surcharge and VOL condition fees on products, order totals, customers or payment methods, and none reads the delivery option the buyer selects (verified Sep 2026). Pickup is chosen at checkout's delivery step, after cart rules have already run. The Local Pickup Delivery Option Generator Function is the mechanism that prices the pickup option itself, and it is Plus-only.
Is the Local Pickup Charges Function Plus-only?
Yes. Shopify's developer docs, checked 2026-09-05, state that only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs, and the generator Function ships inside a custom app. Pickup points carry the same gate, closed to public App Store apps entirely. A non-Plus store's closest workaround is a manually priced flat rate labeled as pickup, which loses the location picker and the pickup notifications.
How much does a pickup handling fee Function cost to build?
The Local Pickup Charges Function runs $12,000–$30,000 one-time over 3–6 weeks, plus 15–20% a year in upkeep (Deploi estimate, illustrative). A surcharge app costs $9–$79/month by comparison (verified Sep 2026), but prices carts rather than pickup. A $2 curbside fee on 2,000 pickups a month brings in $4,000 a month (illustrative), so the build pays back within its first year at that volume.
Your Next Steps
If you're going with BUILD(matches your selected profile)
- Count monthly pickup orders per store and set the fee level the revenue math supports
- Decide the pricing rule: fixed, per location, or peak-hours, and write it in plain language
- Build the generator Function with a metafield toggle for peak pricing and test on a staging store
- Pilot the fee at one store for two weeks and watch pickup conversion before rolling out
- Report pickup fee revenue from the delivery line monthly; it is the payback number
If you're going with BUY
- Confirm the fee you need is cart-based, not pickup-based, before paying for any tier
- Compare Plus tiers only if you need order-total or payment-method fees (verified Sep 2026)
- Exclude the fee product from storewide discounts and from product reports
- Diary a re-decision if a pickup-only fee becomes the goal
Official Docs & Sources
- Delivery and shipping customizations — shopify.dev
- Shopify Functions overview — shopify.dev
- Local pickup — Shopify Help Center
Official documentation linked for verification — our verdicts and estimates are our own.
Related Decisions
Build or Buy Delivery Customization Functions on Plus?
Hiding, renaming or sorting shipping options is a $3.99–$7.99/month app decision on any plan (verified Sep 2026); a custom delivery function needs Plus.
Should You Build or Buy Fulfillment Constraints on Shopify Plus?
Restricting which locations can fulfill a cart at checkout time needs the Plus-only Fulfillment Constraints Function; every app found routes orders after placement.
Should You Build a Custom Order Routing Rule on Plus?
Custom warehouse routing through the Order Routing Location Rule Function is Plus-only; a rules app or your 3PL decides on every other plan.
Should You Build Real-Time Pickup Eligibility on Plus?
Pickup eligibility beyond stock on hand needs the Plus-only Local Pickup Delivery Option Generator Function; the native toggle and pickup apps cover the rest.
Should You Build or Buy a Returns Portal on Shopify?
A returns portal splits by return economics: WAIT on native for simple flows, BUY exchange-first in the mid-market, BUILD at 3PL scale.
Ready to price pickup without touching shipped orders?
A Local Pickup Charges Function is one of the smallest Plus builds there is: one Function, one metafield toggle, and the fee lives on the delivery line where it belongs.
Contact us todayVerdict scored for the reference scenario above. Estimates are not quotes; app pricing carries its verification date and gets re-verified quarterly. Full scoring anchors: see the TCC methodology.
Read how we score these decisions (the TCC Framework). No affiliate links, no paid placement — no app vendor pays to appear here.