A generous, easy returns policy is one of the most effective tools for building customer confidence — particularly for first-time buyers. Studies consistently show that customers are more likely to buy from stores where the returns process is clear and simple. Return labels are a key part of that equation.
The TheForge EasyPost Shipping plugin makes generating return labels as simple as generating outbound labels.
A return label is a pre-paid shipping label that the customer uses to send the product back to you. You absorb the shipping cost, but you gain significant advantages: controlled return flow, carrier account consolidation, and a professional customer experience.
From any WooCommerce order screen where an outbound label exists, you’ll see a Generate Return Label button. Click it, select the carrier and service for the return (you might use a different service than the outbound — USPS First Class for lightweight returns, for example), and the plugin creates a pre-paid label addressed from the customer back to your store.

Once generated, you can:
For high-value items or segments where return rates are low, including the return label in the box is a powerful trust signal even if most customers never use it.
Return labels have an expiry date set by the carrier. Most are valid for 30–90 days. The plugin displays the expiry date on the order screen so you know when a label is no longer usable.
You see the cost of each return label before generating it — the same live rate you’d see for an outbound label. This lets you make informed decisions about when offering return labels makes financial sense (high-value orders, VIP customers) versus when you’d prefer to handle returns case-by-case.
The roadmap for the EasyPost plugin includes a self-service return portal where customers can initiate a return from their My Account page without contacting support. Watch the plugin page for updates.
Questions about return label setup? Visit the ThePluginForge support page.
Download TheForge EasyPost Shipping free →
Once a label is generated and a package is on its way, the tracking experience is one of the most important parts of your customer’s post-purchase journey. “Where is my order?” is the most common customer service question in ecommerce — and with proper tracking automation, you can answer it before the customer even asks.
EasyPost provides a unified tracking API that works across all connected carriers. When a label is generated with the TheForge EasyPost Shipping plugin, a tracking number is automatically associated with the order in WooCommerce.
EasyPost then monitors the shipment and sends webhook events to your site as the package moves through the carrier network — picked up, in transit, out for delivery, delivered, exception, and so on.

The plugin listens for EasyPost tracking webhooks and updates your WooCommerce order status automatically. You can configure which tracking events trigger which order status changes:
When a label is generated, the plugin can automatically email the customer their tracking number and a link to the carrier’s tracking page. The email uses your existing WooCommerce transactional email templates, so it matches your branding.
For each carrier, EasyPost provides a direct tracking URL. The plugin formats this into a customer-friendly link — e.g. “Track your USPS shipment →” — rather than a raw tracking number the customer has to paste somewhere.
Every generated tracking number appears on the WooCommerce order screen (for you as the admin) and on the customer’s My Account → Orders page. Customers can click the tracking link directly from their account without needing to find the email.
For tracking webhooks to work, EasyPost needs to be able to send events to your site. The plugin provides your webhook URL in the settings — you paste this into your EasyPost dashboard under Webhooks. Once configured, tracking events flow automatically.
If your site is on a local development environment or behind a firewall, webhooks won’t be receivable — this is expected. Webhooks only work on publicly accessible production sites.
If webhooks aren’t an option, the plugin can poll EasyPost for tracking updates on a schedule using WordPress cron. This is less real-time than webhooks but still gives you automated status updates — just with a delay of up to your configured polling interval.
Need help configuring tracking? Visit the ThePluginForge support page.
Download TheForge EasyPost Shipping free →
Carrier shipping rates are calculated based on the size and weight of the package you’re sending. If your WooCommerce store sends rate requests with inaccurate package dimensions, you’ll either overcharge customers (and lose sales) or undercharge (and eat the difference). The solution is accurate packing calculation — and that’s what 3D bin packing does.
3D bin packing is an algorithm that determines how a set of items can be arranged inside one or more boxes, given each item’s dimensions and each box’s dimensions. It considers not just whether items fit, but finds the smallest valid combination of boxes.
The TheForge EasyPost Shipping plugin runs this algorithm for every cart — testing every combination of item orientations (rotating items to try all six faces) and every combination of available boxes — to find the configuration that uses the smallest total box volume.

Carriers charge based on whichever is greater: actual weight or dimensional weight. Dimensional weight is calculated as (length × width × height) / divisor. If you tell the carrier your box is 24″ × 24″ × 24″ when it’s actually 12″ × 12″ × 8″, you’ll be quoted a much higher rate.
Accurate packing calculation means:
Go to WooCommerce → Settings → Shipping → EasyPost → Packing and add the box sizes you actually use in your warehouse. For each box, enter:
Add all the box sizes you use. The more accurately your box inventory is configured, the more accurate your rates will be.
For the packing algorithm to work, every product in your WooCommerce store needs weight and dimensions set. These are standard WooCommerce fields on the product → Shipping tab. If a product has no dimensions set, the plugin falls back to a configurable default — but it’s much better to set them correctly at the product level.
When an order’s items don’t fit in a single box, the algorithm splits the shipment into multiple boxes and rates them as a multi-piece shipment. EasyPost handles multi-piece shipments natively, so the rate you get back is accurate for the actual number of boxes you’ll be shipping.
Some products should always ship in their own box — fragile items, products with awkward shapes, or anything that can’t be combined with other products for safety or quality reasons. You can mark individual products as “always ship in own box” and the packing engine will exclude them from combination packing.
Questions about packing configuration? The ThePluginForge support page has documentation and a help desk.
Get TheForge EasyPost Shipping free →
Flat-rate shipping is a guess. Sometimes you guess too high and lose the sale. Sometimes you guess too low and eat the difference. Live carrier rates remove the guesswork entirely — your customer pays exactly what shipping actually costs, and you charge exactly that amount.
Here’s a complete look at how live rates work in the TheForge EasyPost Shipping plugin.

When a customer enters their shipping address at checkout, the plugin sends a rate request to the EasyPost API. That request includes:
EasyPost returns rates from every connected carrier and service in typically under a second. The plugin filters the response to show only the services you’ve enabled, then displays them to the customer.
EasyPost connects to over 100 carriers globally. For most WooCommerce stores, the relevant ones are:
You connect your own carrier accounts to EasyPost, so the rates you receive are your negotiated rates, not retail rates.
Not every carrier service makes sense for every store. A craft shop doesn’t need UPS Next Day Air. An electronics retailer might need it. The plugin’s carrier management panel lets you enable exactly the services you want to offer, drag them into your preferred display order, and add handling fees or discounts per service.
Making a live API call for every keypress in the address field would be slow and expensive. The plugin caches rates intelligently: once rates have been fetched for a given address and basket combination, they’re cached for a configurable period. Return visitors or customers who refine their address see instant results without another API call.
EasyPost returns estimated delivery days alongside each rate. The plugin can display these next to the rate label. You control the format: “Estimated delivery: {days} business days”, “— arrives in {days} days”, or any custom string with the {days} placeholder.
You can configure a free shipping threshold directly in the plugin settings. Orders above a certain value get free shipping — the plugin adds a “Free Shipping” option to the rates list and can optionally hide the paid options when the threshold is met.
If no rates appear at checkout, the most common causes are:
Full documentation and troubleshooting help is available at the ThePluginForge support page.
Download TheForge EasyPost Shipping free →
If you’re fulfilling more than a handful of orders a day, printing shipping labels one at a time is one of the biggest drains on your operational time. Open order, create shipment, select service, generate label, download PDF, print — then repeat for every single order. At 50 orders a day, that process takes most of your morning.
The TheForge EasyPost Shipping & Bulk Label Printing plugin was built specifically to solve this. Here’s a complete look at how the labels panel works and how to get the most out of it.

The labels panel lives directly inside the WooCommerce orders screen. You don’t need to visit a separate dashboard or log into a carrier portal. Every order you have in WooCommerce is accessible from the same interface you already use to manage your store.
From the labels panel you can:
Select your orders using the standard WooCommerce order checkboxes, then choose Generate Labels from the bulk actions dropdown. The plugin sends each order’s details to EasyPost — customer address, package dimensions, selected carrier service — and receives a label back for each one.
The plugin uses the shipping service the customer chose at checkout wherever possible. If no carrier was selected (for example, on orders placed before the plugin was installed), you can configure a default fallback carrier and service for bulk generation.
Once labels are generated, click Print All Labels. The plugin fetches every generated label and merges them into a single PDF file — one download, one print job. If you’re using a thermal label printer (which you should be — they’re dramatically faster than laser or inkjet for shipping labels), the PDF is formatted to print one label per page.

Printed a label for an order that was then cancelled? No problem. Void the label directly from the order screen and EasyPost will request a refund from the carrier. Most carriers process voids within 24–48 hours.
For accurate labels, the plugin needs package dimensions and weight. You can set these at the product level (the plugin reads WooCommerce’s built-in weight and dimensions fields) or define custom boxes at a store level. The 3D bin packing engine figures out the best box combination automatically — you don’t have to calculate it manually.
Go to WooCommerce → Settings → Shipping → EasyPost to configure which carrier and service are used when generating labels without an explicit customer choice. You can set different defaults for domestic and international orders.
The plugin connects to EasyPost using your EasyPost API key, which in turn connects to your carrier accounts. You’ll need an EasyPost account (free) and at least one connected carrier account. EasyPost supports USPS, UPS, FedEx, DHL, and dozens of regional carriers — connect the ones relevant to your business.
Need help setting up the labels panel? Visit the ThePluginForge support page for documentation and assistance.
Download TheForge EasyPost Shipping free →
Most WooCommerce stores cobble together their shipping setup piece by piece — a rate plugin here, a label solution there, manual address checks somewhere else. The result is a fragmented workflow that slows down fulfilment and bleeds money. Here’s what a proper setup looks like.
Start with accurate rates. The TheForge EasyPost Shipping plugin connects to USPS, UPS, FedEx, DHL and more via the EasyPost API, fetching real rates for every customer’s exact address and basket at checkout. No more guessing, no more flat-rate losses.
Carrier rates are calculated per parcel. The more accurately you can work out how many boxes an order needs, the more accurate your rates. TheForge’s 3D bin packing algorithm tests every combination of items and boxes to find the cheapest valid configuration.
Validate every customer address before the order is placed. Bad addresses mean returned shipments and double shipping costs. EasyPost’s built-in verification catches problems at checkout, not at the post office.
Once an order is placed, generate the label directly from the WooCommerce order screen. No logging into a separate carrier portal, no copy-pasting addresses.
At the end of each fulfilment run, select all your ready orders and print every label as a single PDF. Combined with a thermal label printer, this turns a 90-minute job into a 10-minute one.
EasyPost sends real-time tracking updates. TheForge’s plugin receives them via webhook and automatically updates order statuses and sends customer tracking emails — without you lifting a finger.
Start with TheForge EasyPost Shipping — it’s free →
Address problems are one of the most frustrating and expensive issues in ecommerce fulfilment. A customer types their postcode wrong, the package bounces back, and you’re out the shipping cost — sometimes twice.
The TheForge EasyPost Shipping plugin validates customer addresses against the EasyPost address verification service as they type at checkout. A green tick means the address is deliverable. A warning means there’s a problem — before the order is ever placed.
You choose the behaviour. Set it to warn only — the customer sees a warning but can still check out. Or set it to block checkout — no order goes through with an unverifiable address. Particularly useful for high-value orders where a failed delivery would be costly.
Address validation is built directly into the EasyPost plugin — no separate extension, no extra subscription, no third-party service to configure. It works with EasyPost’s existing verification API.
For US addresses, EasyPost normalises the address to USPS standards — correcting apartment formats, adding missing ZIP+4 codes and standardising state abbreviations. The cleaned address is what goes on the label.
Get TheForge EasyPost Shipping free →
Flat-rate shipping sounds simple, but it almost always means one of two things: you overcharge customers and lose sales, or you undercharge and eat the difference. Neither is acceptable when you’re running a real business.
When WooCommerce fetches shipping rates live from USPS, UPS, FedEx and DHL at the moment of checkout, your customers pay exactly what shipping actually costs — no more, no less. That’s what the TheForge EasyPost Shipping plugin delivers.
EasyPost is a multi-carrier shipping API used by major ecommerce companies. TheForge’s plugin wraps EasyPost in a clean WooCommerce-native interface, so you get enterprise-grade carrier access without enterprise complexity.
Live API calls at checkout could slow your store down. TheForge caches rates intelligently so repeat visitors with the same address and basket see instant results without another API call.
Not every carrier service makes sense for your store. The plugin’s carrier control panel lets you enable only the services you want to offer, drag them into priority order, and add handling fees or discounts per service.
Show customers estimated delivery days next to each rate at checkout. Set the format exactly how you want it: “Ships in {days} days”, “— {days} day delivery”, or anything else.
Download TheForge EasyPost Shipping free →
If you’re running a busy WooCommerce store, printing shipping labels one at a time is a genuine productivity killer. You open an order, generate the label, download it, print it — and repeat that 50 times a day. There’s a better way.
The TheForge EasyPost Shipping & Bulk Label Printing plugin connects your WooCommerce store directly to the EasyPost carrier network — and lets you generate and print labels for every open order at once.
Select your orders, hit Bulk Print, and every label lands in a single PDF ready for your printer. No switching tabs, no downloading individual files.
Customers see real-time rates at checkout from USPS, UPS, FedEx, DHL and dozens more. The plugin fetches rates live from EasyPost so your customers always see accurate prices — no more overcharging or eating unexpected costs.
The built-in packing engine tries all item rotations to work out the smallest box combination for every order. Fewer boxes means lower shipping costs and a smaller carbon footprint.
Invalid addresses cause failed deliveries and wasted labels. The plugin validates every customer address in real time as they type, showing a green tick or a warning before they ever place the order.
Generate return labels for customers in one click. Add EasyPost shipment insurance to any order. Schedule carrier pickups without leaving your WooCommerce dashboard.
The plugin is available free on WordPress.org. Download TheForge EasyPost Shipping →