EasyPost connects your WooCommerce store to every major carrier — USPS, UPS, FedEx, DHL, and dozens more — through a single API. When paired with the right plugin, you get live checkout rates, one-click label generation, address validation, and automated fulfillment. Here’s how to set it all up.
Go to easypost.com and create a free account. EasyPost offers a test environment where you can generate labels and preview rates without incurring charges — ideal for initial setup and testing.
Once your account is created, navigate to Account → API Keys. You’ll find both a Test API Key (prefix: EZTK) and a Production API Key (prefix: EZ). Keep both handy.
Install the TheForge EasyPost Shipping plugin for WooCommerce from your WordPress admin under Plugins → Add New. After activation, the setup wizard launches automatically — it walks you through every configuration step in about 5 minutes.
In the setup wizard (or under EasyPost Shipping → Settings → API), enter your Test API Key first. Click Test Connection to verify it’s working. Once confirmed, switch to your Production key when you’re ready to go live.
The plugin supports both modes simultaneously — you can keep your test key configured for development and toggle to live mode when ready to ship real orders.
Your origin address is used for rate calculation and label generation. Enter your full address under Settings → Origin Address. For accurate rates, make sure the ZIP code and country are correct — carrier rate algorithms are very sensitive to origin ZIP.
The plugin ships with three default box sizes (Small, Medium, Large). Add your actual box dimensions under EasyPost Shipping → Boxes. Accurate box dimensions are critical — carriers calculate dimensional weight (DIM weight) for most shipments, and using the wrong box size can result in unexpected rate charges.
Three packing methods are available:
Start with Weight-Based and move to 3D if you find rate accuracy needs improvement.
Go to WooCommerce → Settings → Shipping and add “EasyPost Shipping” as a method to your shipping zones. The plugin’s setup wizard can do this automatically — it adds EasyPost to the “Rest of the World” zone with one click.
Under Settings → Advanced, enable address validation. When customers enter a shipping address at checkout, the plugin verifies it against USPS and carrier databases in real time. Invalid addresses are flagged before the order is placed, reducing failed deliveries and return shipments.
Under EasyPost Shipping → Automation, set up rules to automatically purchase labels when an order is paid. You can configure rules by order value, product category, shipping zone, or weight — so high-volume, predictable orders are handled hands-free while unusual orders stay in a manual review queue.
Place a test order on your store with your test API key active. Verify that:
Once everything checks out, switch to your production API key and you’re live.
The full plugin documentation covers every configuration option in detail. If you run into any issues during setup, our support team typically responds within a few hours on business days.
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.