Skip to content
Services

How to Add Service Packages, Hourly Rates and Custom Quotes to Your WooCommerce Store

· · 14 min read
Banner for WooCommerce service packages hourly rates custom quotes

WooCommerce was built around physical products, but a growing share of the real stores I audit in 2026 sell services. Consulting hours, agency retainers, maintenance plans, photography packages, tutoring, legal advice, fractional CFO work. Selling services on WooCommerce works well once you understand which building blocks map to which service-selling pattern. It goes sideways fast when you try to force a service business into a product-store template.

I have set up a dozen service-based WooCommerce stores in the last eighteen months. Some were a quick side-build for a freelancer leaving Upwork. Some were full agency implementations with retainer billing and multi-consultant scheduling. The patterns are surprisingly consistent.

This guide covers the three main patterns, fixed-price packages, hourly billing, quote-based sales, and the specific plugins and settings that make each one actually work rather than just look like they work on the admin dashboard.

The three service-selling patterns

  1. Packaged services. Tiered, fixed-price offerings: Starter, Growth, Enterprise. Customer picks a tier, pays, work begins. Best for standardized services where the scope is well-defined and you have done the work often enough to price it confidently.
  2. Hourly and time-based services. Customer books a block of time, one hour, four hours, a day, at a defined rate. Best for consultations and coaching, or any support retainer where the deliverable is your attention rather than a specific artifact.
  3. Quote-based services. Customer describes the project, you respond with a custom quote. Best for bespoke work where scope varies per client and a standardized price would either leave money on the table or lose the deal by being too high on the simple jobs.

Most service businesses I have worked with need at least two of these patterns. A freelance web developer sells Growth and Enterprise packages for standard builds, plus hourly blocks for ongoing maintenance. Custom quotes cover the occasional enterprise migration that cannot be boxed into either.

Pick the dominant pattern. Build the store around it. Add the other patterns as secondary flows once the primary one is working cleanly.

Pattern 1: packaged services, the simplest setup

The simplest configuration, and the one I recommend to anyone just starting out. Each package is a WooCommerce Simple product with these settings:

  • Product name, the package name, for example “Growth Plan, WordPress Care”
  • Short description, what is included, written as a bulleted list of deliverables
  • Price, the package price, and be specific about what it covers and what it does not
  • Virtual and Downloadable, check both, because Virtual skips shipping calculation and Downloadable lets you attach a welcome PDF or onboarding link as part of the product file
  • Category, “Services,” which you will use later for reporting and tax purposes
  • Cross-sells, linked to the next higher-tier package for natural upsells

If your three tiers are very similar, same deliverable but different volumes, use a Variable Product with one variation per tier. Otherwise three Simple products linked as related products is cleaner for reporting. You get one row per package in your sales summary instead of a single product with opaque variation breakdowns.

Post-purchase automation is where most stores stop thinking and leave money on the table. WooCommerce fires the woocommerce_order_status_completed action when a payment clears. Hook into that event to create the client in your project management tool. Send the onboarding email with an intake form. Drop a calendar hold on your dedicated project start day. A single custom plugin file does this in 50 lines, and once it is set up, the store runs the entire intake flow without you touching it.

I have seen this automation alone save a solo consultant five hours a week of manual client-onboarding work. Five hours a week is a part-time job’s worth of admin, gone.

One detail that trips up almost everyone on their first packaged-service store: leaving stock management turned on. WooCommerce defaults assume you are selling a finite quantity of something physical. A service package is not finite in that sense, so go into Inventory and either disable stock management for the product or set the quantity high enough that it never triggers an out-of-stock state mid-launch. I have watched a launch day get derailed because a package quietly went “out of stock” after nine sales because someone left the default quantity at 10.

Pattern 2: hourly and time-based services

For selling hours, consultations, coaching calls, and support retainers, the base product setup is the same as packaged services. You need one of these approaches to handle the scheduling layer, because a customer paying for a consultation call wants to pick a time, not wait for you to email them a Calendly link three hours later.

Option A: sell time blocks as products plus manual scheduling. Create a “1-hour consultation” product at your rate. After purchase, send the client a Calendly or SavvyCal link in the order email. Fastest to set up, requires the least plumbing. The scheduling experience feels disconnected, though, and some clients will never actually book the call after paying. I would only use this for a very low-volume store.

Option B: WooCommerce Bookings at $249 per year. The official extension. Customer picks a date and time from a calendar on the product page and pays; the booking is confirmed in the same flow. Supports multiple resources, so three consultants can run three separate calendars that book independently. It is the cleanest integrated experience on this list. The pricing is real, and the plugin is showing its age in a couple of places.

Option C: BookingPress plus WooCommerce integration, free core with Pro around $79 to $149. The modern contender. Native booking calendar. Google Calendar and Outlook sync. Zoom integration that auto-creates the meeting link when a booking is confirmed. Usually the right balance of price and features for a solo practitioner or small team. I have used it on three recent client projects and been happy with all three.

Option D: Amelia Booking at around $149 to $299 per year. More polished UI, good for multi-location or multi-staff setups where you need fine-grained control over who can be booked when. Overkill for a solo consultant. Appropriate for a small agency.

Whichever booking plugin you use, two details cause most of the support tickets I see afterward. First, timezones. A calendar that shows times in your server’s timezone instead of the visitor’s is a recipe for a client showing up an hour late, or not at all. Confirm the plugin auto-detects the browser timezone and displays it clearly on the booking screen. Then test it yourself from a device set to a different timezone before you launch. Second, cancellation and rescheduling policy. Decide your cutoff window (24 hours, 48 hours, whatever fits your business) and set it in the plugin rather than handling it manually by email, because manual exceptions are where a fair policy quietly turns into an unfair one.

The tax setup on bookings is also non-trivial. Many jurisdictions treat services differently from physical goods, and some require the customer’s billing address to determine the correct tax rate. Set your tax classes carefully and test a sample checkout with addresses in every major jurisdiction you sell into. I have lost hours debugging tax issues that turned out to be a missing “services” tax class in the WooCommerce configuration.

Pattern 3: quote-based services

Some services cannot be priced off the shelf. Website redesigns, custom development, specialized consulting engagements, anything where the scope genuinely varies by client and a fixed price would be either embarrassingly wrong or uncompetitive. For those, the WooCommerce pattern is a “request a quote” flow. The customer configures or describes what they want and submits the request. The store owner responds with a custom price.

Plugins that implement this pattern:

  • YITH WooCommerce Request a Quote at around $129 per year. Mature, flexible, supports bulk quote requests for multiple products, and integrates cleanly with the standard WooCommerce order flow once the quote is accepted.
  • Quotes for WooCommerce, free. Basic version, suitable if your needs are simple and your volume is low.
  • WooCommerce PDF Quotes at around $79. Emits proper PDF quote documents with custom branding, useful if your clients expect formal quotes on letterhead.

The typical quote flow: customer browses services and adds items to a “Quote Request” cart. They submit the request with project details and contact information. You review it and send a formal quote or quote link back. The customer accepts and pays. The accepted quote becomes a real WooCommerce order in the system.

The gap in most of the cheaper plugins is converting the accepted quote into a proper WooCommerce order automatically. YITH handles this cleanly; some of the others require manual re-entry, which defeats the point of selling through WooCommerce in the first place.

Response time matters more than most store owners expect. A quote request that sits unanswered for three days loses deals to whoever answered in three hours, even if your price ends up being higher. If you cannot commit to a same-day response, say so on the request form itself (“we respond within one business day”) so the customer’s expectation is set correctly instead of assumed.

If you are building a full marketplace where multiple service providers operate under one roof, the quote flow gets even more interesting, and I covered the full pattern in my guide to building a Fiverr-like service marketplace with WordPress and WP Sell Services. For a solo provider, the simpler plugins above are enough.

One plugin instead of a stack

Everything above is a stack: a package plugin here, a booking plugin there, a quote plugin bolted on for the custom-work slice of the business. That is a completely reasonable way to build a store, and for a lot of businesses it is the right call, because each tool is the best at its one job.

It is also three or four separate settings screens and three or four license renewals to keep track of. Any one of them is a WooCommerce core update away from quietly breaking something. If your business genuinely runs on all three patterns from this guide at once rather than treating one as primary, it is worth looking at a plugin built to handle them inside one product type rather than stitching a stack together yourself. That consolidated approach is what WP Sell Services (this site’s own plugin) is built around, and it is worth comparing against the multi-plugin route above before you commit either way. I put a fuller side-by-side together in my breakdown of WP Sell Services vs Jetonomy Services vs WooCommerce Bookings.

Deposits and recurring retainers

Many services require a deposit up front with the balance on completion, or a recurring retainer paid monthly. Two patterns to know:

WooCommerce Deposits at around $179 per year lets you configure products with deposit plus balance or full-payment options. The deposit creates an order now. The balance is scheduled, with an email reminder and payment link sent when it is due. Essential for any service business where the work takes weeks and you need cash flow before delivery.

WooCommerce Subscriptions at around $256 per year is the right tool for recurring retainers. A $2,000 per month care plan becomes a Subscription product, charged automatically every month until the customer cancels. For any agency that runs on retainer income, this is non-optional.

I have seen sizable care-plan businesses run entirely on WooCommerce Subscriptions with no separate billing system. Once the initial setup is done, it is genuinely hands-off.

For a solo service business just starting out, Deposits plus manual invoice reminders may be enough. For a retainer-heavy agency, Subscriptions is required, and the $256 per year is trivial next to the cost of chasing invoices by hand every month.

Tax treatment, where most stores get it wrong

Services are taxed differently from physical goods in almost every jurisdiction I have worked in, and this is where most service stores on WooCommerce start leaking compliance problems.

  • GST in India, services typically attract 18 percent GST, some categories lower. Set up a separate Tax Class for services so the calculation runs correctly at checkout.
  • VAT in the EU and UK, services to consumers are often taxed at the customer’s location, not the provider’s location. Use the EU VAT Assistant plugin or a compliance solution like Quaderno to handle the cross-border complexity.
  • US sales tax, services may or may not be taxable depending on the state, and the rules change every year. TaxJar or Avalara integration via WooCommerce is the right path once you sell into multiple states; doing this work manually stops being sustainable past about twenty orders a month.

The single most common mistake I see on audits is treating service sales the same as physical goods for tax purposes. Configure separate tax classes. Test a sample checkout with an address in each major jurisdiction you sell into. Save the transaction receipts so you have evidence you validated the calculations.

Is this tedious? Yes. Is getting audited by a tax authority more tedious? Also yes.

Invoicing and documentation

Services often need proper invoicing beyond the default WooCommerce order confirmation email, especially for B2B clients who need invoices with your GST number or VAT ID on them.

  • WooCommerce PDF Invoices and Packing Slips, free core with Pro around $79. Generates proper invoices with your tax registration details, and the Pro version adds templates you can customize for your brand. Essential for any B2B service sales.
  • Document uploads via Gravity Forms or Fluent Forms integration, so clients can upload project briefs, contracts, or existing assets as part of the checkout flow. This one is underused and it makes a real difference to onboarding quality.

For contract-heavy services, consider redirecting clients from the WooCommerce thank-you page to a DocuSign or PandaDoc flow that captures the signed service agreement before work begins. You can do this with a simple redirect on the order-received page and a saved contract template on the DocuSign side. The extra friction is worth it for the legal clarity on larger engagements.

Reporting that actually tells you what you are selling

Stock WooCommerce reports are designed for product stores, which means they are not particularly useful for service stores without some adjustment. The changes I make on every service-business install:

  • Filter reports by the “Services” category to isolate service revenue from any product revenue that happens to be on the same store
  • Use Metorik, a SaaS layer on top of WooCommerce at around $40 per month, for deeper reporting. It surfaces customer lifetime value on recurring services and retention cohorts, the kind of revenue breakdown the default reports skip entirely
  • Export monthly to a spreadsheet. Track four numbers: services sold, revenue by service type, average order value, and repeat rate

The financial shape of a service business is fundamentally different from a product business. Lower volume. Higher per-order margin. More dependence on retention and upsells than on new-customer acquisition. Your reporting needs to reflect that reality, and the default WooCommerce dashboard will not do it for you.

Setup mistakes I keep seeing

A few patterns show up over and over across the audits I have done, enough that they are worth calling out directly rather than leaving buried inside the sections above.

  • Shipping fields left on at checkout for a fully virtual service, which confuses customers into thinking something physical is coming and adds friction for no reason. Turn off shipping entirely in WooCommerce settings if every product on the store is a service.
  • No clear scope boundary in the product description. “Website redesign” without specifying page count or revision rounds invites scope creep on every single order, especially once change requests start arriving with no agreed definition of what counts as one.
  • Reviews left enabled on service products with zero moderation plan. A single bad review with no response sitting on your highest-margin package for months does more damage than most owners realize until a prospect mentions it on a sales call.
  • Quote and booking forms with no required fields for budget range or timeline, which means half the submissions you get are not qualified leads, they are people price-shopping with no intent to buy soon.
  • Refund policy that exists only in a footer link nobody reads. State it on the product page itself, next to the price, for any package over a few hundred dollars.

A minimal setup that works from day one

If you are just starting to sell services on WooCommerce and want the smallest possible stack that actually works, this is what I recommend:

  1. WooCommerce, free
  2. Three Simple products for Starter, Growth, Enterprise packages, each in the “Services” category
  3. A Fluent Forms “Request a Custom Quote” form on a dedicated page, connected to an autoresponder that notifies you on submission
  4. A Calendly link in the post-purchase email for hour-based add-ons or kickoff calls
  5. WooCommerce PDF Invoices plugin for proper invoicing
  6. Manual deposits via a Stripe deposit product, which you can create and send to the customer as a direct-checkout link for larger engagements

That covers Patterns 1 and 3 at zero added plugin cost beyond the invoice plugin, and minimal setup time. Upgrade to booking or quote plugins once volume justifies them.

If you are moving off a platform like Upwork and want to understand the broader financial and operational picture of running your own service store rather than paying marketplace fees, I wrote a separate piece on how to move your freelance services from Upwork to your own WordPress site that walks through the revenue math and the client-acquisition implications.

FAQ

Do I need a business entity before I can sell services through WooCommerce? WooCommerce itself does not require one; it is just a cart and checkout engine. Your payment processor and your local tax rules are what actually require it, and that varies by country and by how much revenue you process. Check with your processor’s terms before assuming a sole-proprietor Stripe or PayPal account is enough long-term.

What happens when a client wants a refund mid-project? WooCommerce has no built-in concept of “partial work delivered.” You issue a manual partial refund through the order screen and handle the judgment call yourself, which is exactly why a clear scope and a deposit-plus-milestone payment structure up front matters more for services than it does for a physical product return.

Can packages and hourly time sit on the same store as quote requests without the checkouts conflicting? Yes. They are just different product types living in the same WooCommerce install, and a customer can have a package in the cart alongside a deposit product with no issue. The complexity is in keeping the reporting and tax classes straight per product, not in the checkout itself.

Is a service store slower to set up than a normal WooCommerce product store? The core setup is not slower. The parts that take longer are the ones product stores skip entirely, scheduling logic, service tax classes, post-purchase automation among them. Budget extra time for those, not for the product listings themselves.

Bottom line

WooCommerce is a genuinely viable platform for service businesses in 2026. On the right stack it beats Upwork or Fiverr on margin, and it beats a standalone booking tool on ownership, because you keep the customer relationship and the data instead of renting both from a marketplace.

Pick the pattern that matches how you actually sell rather than the one that was easiest to write about. Configure the plugin stack for that pattern specifically, not a generic one you copied from a blog post. Get the tax class and invoicing right before the first accountant asks about it, not after.

Do that once, properly, and the store runs itself. You spend your time delivering the service you are actually good at instead of babysitting the admin dashboard every week.