FAQ
Does this plugin require a USPS or FedEx account?
Yes. You need a free USPS developer account at developers.usps.com and/or a FedEx developer account at developer.fedex.com to get API credentials. FedEx also needs your FedEx shipping account number. To buy USPS labels you also need a USPS business payment account - a CRID, Mailer ID and EPS account number (see USPS).
Why do USPS labels need a CRID, Mailer ID and EPS account?
USPS requires every label request to include a payment authorization that says which account pays for the postage, and it only issues one for a CRID + Mailer ID + EPS account. Rates and tracking don't need them - only labels do.
"Test connection" works, but USPS labels fail with "Insufficient OAuth scope". Why?
Test connection only checks that ShipLabel can sign in. Your USPS app also needs Labels API access, which USPS enables per app. Request it through the USPS business portal (cop.usps.com) or USPS API support.
Do I need WooCommerce Order Fulfillments enabled to use this plugin?
No. The plugin works fully in Standard Mode without it - labels, tracking numbers, order notes, tracking sync and auto-completion all work. Order Fulfillments (WooCommerce 10.2+) is an optional upgrade that adds native fulfillment status, partial shipments, and WooCommerce's own customer email.
Can I test label generation before going live?
Yes. Select Sandbox / Testing on a carrier's settings tab - test labels are never charged. FedEx sandbox labels work with your FedEx test API keys. USPS sandbox labels need the same Labels API access and payment account details as live labels.
Can I ship internationally?
With FedEx, yes. For destinations outside your shipper country, ShipLabel adds a customs declaration automatically from the order's items. USPS shipping in ShipLabel is domestic only. See FedEx.
What happens if I select a packaging type my chosen service doesn't support?
USPS Flat Rate packaging is only offered on Priority Mail (envelope and boxes) and Priority Mail Express (envelope only). The order panel disables Flat Rate options that don't apply to the selected service, and the plugin double-checks the combination before contacting USPS, so you get a plain-English explanation instead of a rejected label purchase.
Why does checkout show FedEx Home Delivery instead of Ground?
FedEx prices Ground for business addresses and Home Delivery for homes, and checkout can't tell which the customer is. When Home Delivery is enabled in the shipping method's Show services, ShipLabel asks FedEx for residential rates. Untick Home Delivery if you mostly ship to businesses. See Live Rates.
How does tracking stay up to date?
A twice-daily scheduled task checks active labels with their carrier and automatically marks the order as completed once the carrier confirms delivery. You can also have tracking updates pushed to ShipLabel's webhook. See Tracking Sync.
Can I generate labels for multiple orders at once?
Yes. Select orders in the WooCommerce orders list, choose Generate USPS labels or Generate FedEx labels from the Bulk actions dropdown, and click Apply. Each label uses the carrier's default service, the order's product weight and a 12 × 10 × 6 in box; orders that already have an active label for that carrier are skipped.
Is this compatible with WooCommerce High-Performance Order Storage (HPOS)?
Yes. The plugin declares full HPOS compatibility and works correctly whether HPOS is enabled or not.
Where are label files stored, and are they publicly accessible?
Label files are stored in wp-content/uploads/shiplabel-labels/, which is protected against direct access. Every download goes through a signed link that only works for the logged-in user it was created for, and only for users with the manage_woocommerce capability.
Can I cancel a label after it's been generated?
Yes, as long as it's still within the carrier's own cancellation window. Cancelling deletes the label's local file; you can then generate a replacement label for the order. Cancelled labels can also be deleted from Label history.