Everything you need to install, configure, and get the most out of Gorilla Return Labels on your WooCommerce store.
Before installing Gorilla Return Labels, make sure your site meets these requirements:
The plugin is US-only at launch and generates USPS return labels exclusively. It is fully compatible with High-Performance Order Storage (HPOS) and works with any WooCommerce admin theme.
Not redirected to the setup wizard? You can start it manually at any time by visiting /wp-admin/admin.php?page=grl-onboarding in your browser. The wizard is safe to run more than once — it won't overwrite settings you've already configured.
Gorilla Return Labels uses EasyPost to shop USPS rates and generate labels. EasyPost is a third-party shipping API — they handle the actual USPS integration so the plugin stays focused on what it does best. You sign up directly with EasyPost and pay USPS rates directly through them; there is no Gorilla Public markup on postage.
EZAK).Want to test first? EasyPost gives you a Test API Key (starts with EZTK) that generates free watermarked labels. Use this to try the plugin without any real USPS charges. Switch to the production key once you're ready to process real returns.
EasyPost charges a tiny fee (around $0.01) per label purchased, on top of USPS postage. For typical return volumes this works out to a few dollars a month at most. There are no monthly subscription fees. Postage itself is charged at USPS commercial rates — the same rates the USPS website offers to business shippers, usually 20-30% below retail.
The setup wizard walks new installs through five steps. Each step can be skipped and returned to later.
An overview of what you'll need and what the plugin does. Lists the three prerequisites: a license key, an EasyPost account, and your return address.
If you're on a development domain (gorilladirt.com, gorillapublic.com, localhost, or any .local / .test domain), licensing is bypassed automatically and you'll see a confirmation that dev mode is active.
Otherwise, click Activate License Key, which opens the SureCart license activation page. Enter your key, click Activate, then return to the wizard.
Paste your production API key (starts with EZAK) into the field. The key is stored in your WordPress database and sent only to EasyPost.
Where customer returns ship back to. The wizard pre-fills from your WooCommerce store settings — review and adjust as needed. USPS requires a phone number on every label, so make sure that field is filled in.
You can add additional addresses later (for example, a dropshipper's return center) in the settings page.
A summary of your setup with any outstanding items flagged. From here, you're sent to your WooCommerce orders list to generate your first label.
Found at WooCommerce → Return Labels → License. Manage your plugin license and check its status here.
The status displayed on the License tab tells you what state the license is in:
Development Mode You're on a dev domain — licensing is bypassed automatically. The plugin runs without a key on this site.
Active Your license is valid and verified with SureCart. Full functionality available.
Grace Period The plugin couldn't reach SureCart's servers to verify. Continues working for 14 days, usually resolves on its own. If it persists, see Troubleshooting.
Invalid SureCart returned an explicit rejection — the license has been revoked, expired, or never existed. Label generation is disabled until a valid key is entered.
Not Activated No license key has been entered yet. Generate labels to see the license prompt.
Click Activate License Key on the License tab. SureCart's activation page opens — paste your key from your purchase confirmation email and click Activate. The plugin validates the key and activates on this site. Each license has an activation limit (single-site licenses cover 1 activation). If you need to move the plugin to a different site, deactivate it on the old site first to free the slot.
License status is cached for 12 hours to reduce API calls. Click Refresh License Status to force an immediate check against SureCart.
Found at WooCommerce → Return Labels → General. These control core plugin behavior.
Default: Empty
Your production key from EasyPost, starting with EZAK. Required for all label operations. Stored in your WordPress database and only sent to EasyPost.
Default: Ground Advantage
The USPS service initially selected when generating a label. Ground Advantage is usually the right pick — it's the cheapest option and plenty fast for most returns. Priority Mail is faster but costs more. You can override this per-label when generating.
Default: 10 × 8 × 4 in, 1 lb
Used as a fallback when a product has no dimensions set. For best results, make sure your products have accurate length, width, height, and weight configured — the plugin auto-detects parcel sizes from this data.
Return addresses are the destinations where customer packages ship back to. Most stores use one (their warehouse or HQ). Stores that drop-ship can add multiple — one for their own inventory, one for each dropshipper's return center.
On the General settings page, scroll to the Return Addresses section. Click + Add Return Address and fill in:
Click Save Changes. A confirmation tells you how many addresses saved.
The first address is pre-selected on the order metabox. If you have multiple addresses and most returns go to one specific location, put that one first to save clicks.
Removing an address doesn't affect past labels. Existing labels on old orders still reference the address they were generated with. The label PDFs and shipment records on EasyPost are unchanged. Only future labels will use the updated address list.
The cost preview panel is the most important feature of this plugin. It shows you everything you need to know before committing to a label.
All available USPS services for your parcel, sorted cheapest to most expensive. Each rate shows estimated delivery days. Ground Advantage is almost always the right pick for returns — cheap and reasonably fast. Priority Mail is 2-3 days but costs more. Flat Rate options show fixed pricing regardless of weight, which is useful when dimensional weight would otherwise blow up the cost.
USPS charges based on dimensional weight for packages exceeding 1,728 cubic inches (one cubic foot). The billable weight becomes whichever is greater: actual weight or dimensional weight.
The DIM formula: (Length × Width × Height) / 166, rounded up.
When DIM weight applies, the preview panel highlights this clearly with the cubic inches, calculated DIM weight, and the billable weight used for pricing.
The plugin projects three "what if" scenarios to warn you about potential adjustment charges:
If any scenario blows past your baseline cost significantly, red dollar amounts highlight the risk.
Low Worst-case cost is within 25% of baseline. Safe to generate.
Medium Worst-case is 25-75% higher. Consider a flat-rate box or larger buffer.
High Worst-case is 75%+ higher. Strongly consider flat-rate or restricting packaging in your customer email.
A suggested service with reasoning and a ready-to-paste customer instruction explaining what box size they should use. Copy this into your return email to reduce adjustment risk.
Tell customers what box to use. The single most effective thing you can do to avoid adjustment charges is including clear packaging instructions in your return email. The plugin generates this instruction for you — just use it.
Just below the return-address picker in the metabox, there's a Verify product dimensions collapsible section. It lists every product on the order with its length, width, height, and weight in inches and pounds.
If any product lacks dimensions, the row highlights yellow and a "missing" tag appears. The section auto-expands when missing dimensions are detected so you notice them.
Below the dimension table, a checkbox labeled Save these dimensions to the product catalog is enabled by default when dimensions are missing. When checked, clicking Preview Cost or Generate Scan-Based Label saves the entered values back to the product catalog first, then proceeds normally.
Only values that have actually changed get saved. Products with correct dimensions aren't touched.
Uncheck the save box to use your entered dimensions just for this label. The product catalog stays unchanged. Useful when the return box differs from the normal product packaging.
After editing dimensions, click Recalculate Parcel to update the parcel fields below based on the new values (largest dimension across items, summed weights).
Passive catalog cleanup. Every return is a chance to fix product data. Over time, your dimension accuracy improves automatically — no dedicated cleanup session needed.
When you generate a label, the plugin automatically emails the customer with:
The email is sent from your site's default "from" address using WordPress's wp_mail() function.
Email delivery issues? Many managed WordPress hosts unreliably deliver emails via wp_mail(). If customers report missing emails, install an SMTP plugin (WP Mail SMTP, FluentSMTP) and connect to a real transactional email provider like Postmark, SendGrid, or Amazon SES. See Troubleshooting for details.
If the customer loses their email, click Email to Customer on the order's existing-label view. The email resends with the same attachment and tracking information.
Scan-based return labels are the core value of this plugin. Here's exactly how the billing works.
When you click Generate Scan-Based Label, the label is created on EasyPost and assigned a tracking number — but no money changes hands yet. You've "reserved" the rate, but haven't paid.
The charge executes when the customer actually drops off the package and USPS performs the first scan. That's when postage is billed to your EasyPost account.
If a customer requests a label and never actually ships the package, you owe nothing. Ever. This is a huge win compared to traditional return services that charge you the moment the label is created.
You can void any unscanned label from the order metabox's Void / Refund button. Labels that have already been scanned cannot be voided — at that point the package is already in transit.
USPS scan-based labels are generally valid for about a year. After that, USPS may accept them but may also flag, return, or destroy the package without refund eligibility. In practice, most labels either get used within a few weeks or never — the year window is plenty.
USPS automatically measures and weighs packages at regional processing facilities. If the actual package exceeds the dimensions on the label, you'll receive an adjustment charge to your EasyPost account days or weeks after scanning.
USPS only adjusts upward, never downward. If you create a label for a 5 lb package and the customer ships a 1 lb package, you keep paying the 5 lb rate. There's no automatic refund for creating an oversized label. Size the label for the realistic worst case, not the absolute worst case — otherwise you'll overpay consistently.
Any unscanned label can be voided for a full refund. Labels that have already been scanned (the package is in transit) cannot be voided.
Open the order, locate the existing label in the Return Label metabox, and click Void / Refund. Confirm the action when prompted. EasyPost submits the refund request to USPS.
USPS processes refund requests in 2-3 weeks typically. The refund goes back to your EasyPost account balance, which you can then use for other labels or withdraw.
After voiding, the metabox still shows the old label information. To wipe it and start fresh (for example, to generate a replacement label on the same order), expand the Debug info section and click Clear label data. This removes the plugin's record of the label from the order meta — it does NOT void the label in EasyPost, so make sure you've already voided it first if you no longer want to use it.
Every order with an existing label has a collapsible Debug info section on the metabox. It exposes detailed technical information and power-user tools.
Makes a live API call to EasyPost and returns the current shipment status, including whether it exists, what mode it was created in, the current tracking status, and the addresses EasyPost has on file. Use this to verify a label is really on EasyPost's side when something seems off, or to check if a package has been scanned yet.
Wipes the plugin's record of the label from the order meta. Use after voiding to start fresh. Does NOT void the label in EasyPost — void first, then clear.
The plugin requires an active license on non-dev domains. Go to WooCommerce → Return Labels → License and click Activate License Key. Enter your key and activate.
The plugin couldn't reach SureCart to verify your license. The plugin keeps working for 14 days while this state continues and usually resolves itself once network connectivity is restored. If it persists beyond a day, check whether your site can reach app.surecart.com — some hosts or security plugins block this.
Your key is wrong or was revoked. Copy it again from EasyPost dashboard → Account → API Keys. Make sure you're using the production key (starts with EZAK), not the test key (EZTK), when generating real labels.
EasyPost bills against a prepaid balance. Log into EasyPost, go to Account → Billing, and add funds. For small-volume stores, $20-50 lasts a while.
One or both addresses have errors. Check the customer's billing address and your return address — each needs a complete street, city, state, and valid ZIP. Look up questionable addresses at tools.usps.com/zip-code-lookup.
USPS requires phone numbers on labels. Check that your return address has a phone number in plugin settings, and that the customer's billing phone is populated on the order.
EasyPost couldn't price the shipment. Usually caused by parcel dimensions or weight being zero, or an address verification failure. Check the parcel fields and confirm both addresses are valid.
Old plugin version. Update to the latest. Early versions (pre-0.2.3) had a bug where return labels printed with addresses reversed. Updating fixes it for new labels; void any affected old labels and regenerate.
Old plugin version. Update to 0.2.5 or later. The plugin now requests PDF format explicitly.
Check three things: (1) your WordPress email delivery is working — many hosts block wp_mail() without an SMTP plugin, so install FluentSMTP or WP Mail SMTP and connect to a real sender service. (2) The customer's spam folder. (3) Use the Email to Customer button on the existing-label view to re-send manually.
Confirm WooCommerce is active. Update the plugin — early versions had HPOS compatibility issues. Clear any caching plugins.
Check the shipment's status. If it says "In Transit" or "Delivered," the label was used and you were charged at scan. If you're seeing an adjustment line item, that's USPS correcting for dimension/weight discrepancies. See the Adjustments section.
Usually a DIM weight adjustment. USPS measured the actual package and it exceeded the label's dimensions. See Cost Preview for strategies to minimize this.
Email hello@gorillapublic.com with:
We reply within one business day.
Notifications