WooCommerce is a free ecommerce plugin for the WordPress content management system. Add ecommerce functions to your WordPress site and expand those functions with ShipStation.
We built our extension specifically for WooCommerce. Install and configure the WooCommerce shipping plugin in a few steps. Afterward, you can import your WooCommerce orders directly into ShipStation, synchronize your orders, let customers choose their shipping method, include order notes, and enjoy customizable shipping-confirmation emails.
Connection Requirements:
-
An active account with WooCommerce.
-
ShipStation WooCommerce plugin (version 4.9.1 or later)
-
WordPress 6.8 or later
-
Your WooCommerce Authentication Key.
-
Your WooCommerce Consumer Key.
-
Your WooCommerce Consumer Secret.
-
Your WordPress domain's Store URL (URL to Custom XML Page).
Scope of Support
Installing the extension file to your WooCommerce environment is beyond our scope of support. We recommend you contact your store developer or WooCommerce Support if you need assistance with the extension installation process. They can help you best, as the process may differ based on the unique configuration of the WooCommerce environment.
Order Import Requirements:
-
Include a Ship To address.
-
Include at least one physical product.
Action Required: WooCommerce Plugin Update
ShipStation is upgrading the WooCommerce integration starting in March 2026 to enhance performance and support new functionality.
If you encounter store import errors, please see WooCommerce Migration below for migration details and required steps.
To connect your WooCommerce store to ShipStation.
-
Download the ShipStation Integration plugin to your computer.
-
Log in to your WooCommerce administrators' portal.
-
Select Plugins > Add Plugin.
-
Select Upload Plugin, choose the zip file from your computer, then select Install Now.
-
Select Activate Plugin after installation is complete.
-
Go to the WooCommerce menu on the Dashboard, then select Settings .
-
Select the Integrations tab.
WooCommerce Connected Integrations
If you have any other Integrations connected to WooCommerce, you may also need to click ShipStation below the tab bar.
-
Select View Authentication Data.
-
Add the Consumer Key, Consumer Secret, and the Site URL.
-
Select the WooCommerce order statuses you want to export to ShipStation, and enter them in the open fields. Separate multiple statuses with commas
-
Select WooCommerce.
-
Enter your WooCommerce Authentication Key, Consumer Key, Consumer Secret, and Store URL, and map any custom statuses if needed.
After you've completed the connection steps, the store's Settings page will open. You can adjust your store-specific settings like branding and customer notifications, if you wish. Or click Save to close.
The ShipStation integration with WooCommerce supports these standard features:
|
Feature |
Supported? |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ShipStation Status |
WooCommerce Status |
|---|---|
|
Awaiting Payment |
Pending |
|
Awaiting Shipment |
Processing |
|
Shipped |
Completed |
|
Cancelled |
Cancelled |
|
On Hold |
On-hold |
This table indicates which data ShipStation sends to WooCommerce with the marketplace shipment notification:
|
Field |
Sent to Marketplace? |
|---|---|
|
Status Update |
|
|
Tracking Number |
|
|
Carrier |
|
|
Service |
|
|
Carrier Fee |
|
|
|
|
|
Item Information |
|
The ShipStation integration with WooCommerce allows for these additional features:
|
Feature |
Description |
|---|---|
|
Supports Inventory Sync |
ShipStation's Inventory Sync feature eliminates the need for manual inventory updates, ensuring your inventory levels are always accurate and up-to-date. Once you have activated Inventory Sync in the Add-On section of your account settings, you can easily manage your inventory across multiple platforms, saving time and reducing the risk of errors. Inventory Sync is included in the Standard plan or higher, or as an add-on to all other plans. See the Inventory Sync article to learn more. |
|
Custom Statuses |
To use a custom status with ShipStation, first create a Custom Status in WooCommerce. Under the WooCommerce Integration tab, add the "slug" of the created custom status. Then you can add the custom status in your ShipStation settings. |
|
Configurable Time Zone |
By default, ShipStation assumes that the WooCommerce store's server uses UTC as the timezone. If your WooCommerce account uses a different server timezone, then you can define it in the store's settings. |
|
Custom Fields |
If a coupon is used for an order, then the coupon code will be included as Custom Field 1. Additionally, you can modify the ShipStation Integration plugin file to include custom values for Custom Field 2 and Custom Field 3. See this section of the plugin documentation for details. |
Starting in March 2026, ShipStation is upgrading the WooCommerce integration to improve performance and support new features. As part of this update, you must use the latest version of the ShipStation WooCommerce plugin and have valid WooCommerce REST API credentials.
If you are using an outdated plugin version, you may encounter store import errors until the integration is updated.
This update affects WooCommerce merchants using a ShipStation plugin version earlier than v4.9.1.
If you encounter a store import error during this transition, follow these steps.
Step 1: Update the ShipStation WooCommerce Plugin
To update your WooCommerce Plugin:
-
Log in to your WordPress admin dashboard.
-
Go to Plugins.
-
Locate ShipStation for WooCommerce.
-
Update the plugin to version 4.9.1 or later.
Step 2: Reconnect Your Store in ShipStation
To reconnect your store:
During the migration, you may see the following errors when importing orders.
|
Error Message |
Cause |
Resolution |
|---|---|---|
|
400 Bad Request: No route was found matching the URL and request method |
ShipStation cannot communicate with the WooCommerce REST API. This typically occurs when the plugin version is outdated. |
Update the ShipStation WooCommerce plugin to v4.9.1 or later, then reconnect the store in ShipStation. |
If you continue to experience issues after updating the plugin and reconnecting your store, check the following.
Verify WooCommerce REST API Credentials
ShipStation requires valid WooCommerce REST API credentials to communicate with your store.
In WordPress, confirm that the REST API credentials used for your ShipStation connection are active and have not been revoked. If necessary, generate new credentials and update them in ShipStation by selecting Reconfigure Store Connection.
|
Error Message |
Cause |
Resolution |
|---|---|---|
|
Unable to get store token |
ShipStation cannot authenticate with the WooCommerce store. This usually indicates invalid or expired REST API credentials. |
Verify your WooCommerce REST API credentials in WordPress and reconfigure the store connection in ShipStation. |
If you've updated the plugin and reconnected your store but are still experiencing errors, contact support@shipstation.com for assistance.
If orders aren’t importing or you’re seeing store connection errors, use the troubleshooting guidance below to identify the cause and resolve the issue.
The following issues describe common WooCommerce order import or configuration problems and how to resolve them.
|
Issue |
How to troubleshoot or resolve |
|---|---|
|
Custom Status is not importing |
Cause: This may be happening because WooCommerce is not reading the slug correctly. Resolution: Input the custom status exactly as it is sent from WooCommerce to ShipStation. Use the dash ( See Custom Statuses in the Additional Features section here. See WordPress Slugs: What They Are & How to Change Them for a more technical context. |
|
Orders from a WooCommerce store based in France are not importing |
Cause: WooCommerce is sending order statuses to ShipStation in English with a lowercase first letter rather than in French, and ShipStation is not configured to accept these statuses. Resolution: Option 1: Update the store’s status mappings to the English (non-capitalized) status names. Go to Option 2: You can customize the order statuses as you see fit if you enable custom status mappings in WooCommerce. In your WooCommerce account go to Check Timezone: Confirm the website's server timezone. If the store is set to expect Dateline Standard Time (International Dateline West) but the server actually responds in GMT, such a review may prevent delays with order imports. |
|
The Order Date in ShipStation is different than the Order Date in WooCommerce |
Cause: This error usually occurs when the WooCommerce server uses a timezone different than the timezone set in the store's settings in ShipStation. This difference causes the Order Date to deviate when the WooCommerce server uses timezone as the basis to convert the timestamp. Resolution: Update the store's settings so the store uses the same timezone as the server that hosts your WooCommerce store. |
|
Certain orders placed late in the day are not importing into ShipStation |
Cause: Similar to the first timezone issue, this error typically occurs when the WooCommerce server uses a different timezone than the timezone set in the store's settings in ShipStation. That timezone difference causes our import process to inadvertently skip ahead. Resolution: Update the store's settings so the store uses the same timezone as the server that hosts your WooCommerce store. |
|
Orders not importing into ShipStation after updating WooCommerce or restoring site from a backup |
Cause: Sometimes, updating a WooCommerce store will cause your order database to reset and reuse Order ID values. Such resets and reuses can be problematic for ShipStation because we use Order ID values to identify unique orders. This issue is most common when you update your WooCommerce site to the latest version. The same issue can also happen if you restore the site from a backup or make other configuration changes to the store. This problem also happens if you use sequential order number plugins, or plugins that edit order numbers. This Sequential Order Number for WooCommerce blogpost from the store explains more. Resolution: If only a handful of orders were affected, and the latest orders continue to import as expected, you should create manual orders to replace the absent WooCommerce orders. Then manually update WooCommerce with the shipment information. If many orders were affected or the latest orders do not import, another solution is to create a new WooCommerce store connection in ShipStation. The new WooCommerce store connection will import the current version of the Order ID so new orders will import consistently. However, if you leave the original store connection active, you could see duplicate orders import into ShipStation. You'll want to deactivate the original store connection after you have shipped out any unresolved orders. |
If you see one of the following error messages, use the corresponding cause and resolution to resolve the issue.
|
Error Messages |
Resolution |
|---|---|
|
400 Bad Request: No route was found matching the URL and request method. |
Cause: The WooCommerce store is using an older version of the ShipStation plugin that is not compatible with the current API. Resolution: Update the ShipStation for WooCommerce plugin to the latest version in WordPress. Then reconfigure the store connection in ShipStation. |
|
Unknown Error: Unable to get store token for seller |
Cause: The store has a compatible plugin version, but the REST API credentials are invalid or misconfigured. Resolution: Verify your WooCommerce REST API credentials in WordPress. Then select Reconfigure Store Connection in ShipStation and enter the updated credentials. |
|
Error: An error occurred attempting to update orders: The remote server returned an error: (500) Internal Server Error or IntegrationError: WooCommerce encountered an error and responded with StatusCode InternalServerError. Content: 500 Internal Server Error |
Cause: This error may indicate that we cannot reach the WooCommerce store for a variety of reasons. Most often, it is an issue outside of ShipStation. This can be a store import or ShipNotify error, but its root cause is the same. Resolution:
|
|
Error: (500) Internal Server Error When connecting a store or trying to import orders |
Cause: A (500) Internal Server Error is a generic error message that essentially means something went wrong, but without any additional detail to indicate the cause of the problem. Resolution: To troubleshoot these issues, enable the WP_DEBUG option for your WordPress site. Read more about WP_DEBUG on the Debugging in WordPress page. This setting will allow for more robust logging for WordPress, which will allow you or your site developer to find the cause of the generic error. If you're unable to resolve the issue on your own, please contact ShipStation support with the full error log and a status report. We'll help you with the next steps you should take. |
-
ShipStation will not receive products that are marked as Virtual or Downloadable.
-
ShipStation cannot connect to a WooCommerce store while the store is in Maintenance Mode.
-
If your WordPress site requires any extra authentication to load the page, ShipStation may be unable to connect or import orders.
Extra authentication can include security plug-ins or features meant to block access to the site. This includes plug-ins like an age-verification screen meant to create an extra step before accessing the site. If you whitelist ShipStation in the plug-in that should allow us to bypass any additional authentication.