ShipStation for WooCommerce

The plugin helps store owners significantly speed up the shipping process by offering an easy way to seamlessly integrate with ShipStation.

ShipStation is a web-based shipping solution that streamlines the order fulfillment process for online retailers. With real-time integrations into popular marketplaces and shopping cart platforms, ShipStation handles everything from order import and batch label creation to customer communication. Advanced customization features allow ShipStation to fit businesses with any number of users or locations.

In addition to this plugin, you must subscribe to a ShipStation monthly plan. Please visit for more information.

How the extension works ↑ Back to Top

Here is an overview of how the ShipStation extension works with your ShipStation account:

  1. Customer places order on your WooCommerce shop that requires shipping.
  2. makes an API call to the Merchant’s store to our Extension’s endpoint.
  3. The extension looks at the config, and generates an XML output response to the ShipStation API. ShipStations imports those orders into their system.
  4. Merchant’s shipping person/people go into, see the orders that need shipment, and generates shipping labels (aka: “ships them”).
  5. Once a label is generated, sends a notification to the Merchant’s store via the extension’s endpoint.
  6. The Extension updates the order to ‘Completed’ status and stores the shipping information within the order.

Installation ↑ Back to Top

  1. Download/Save Plugin Extension Zip file to your local computer
  2. Within WP Admin, Go to Plugins › Add New › Upload
  3. Select the plugin zip file from your local computer
  4. Click Install Now Button
  5. Once install is complete, Click “Activate Plugin” link

Setup and Configuration ↑ Back to Top

Once plugin is activated, go to WooCommerce › Settings › ShipStation tab

Settings Section

Fill in Username & Password fields: These can be set to any values and will be used by ShipStation to authenticate to WooCommerce and download/upload order and tracking information between WooCommerce and ShipStation. It is recommended to use a strong password.

Url to custom page: You will use this URL endpoint inside ShipStation when you are configuring the WooCommerce Store.

enable permalinks in Settings/Permalinks: In WordPress Admin, visit Settings › Permalinks. Be sure that ‘Default’ is NOT selected. This setting must be on Day and name, Month and name, Numeric, Post name, or Custom Structure.

‘Log Request’ may stay unchecked, however, this feature can be enabled at anytime to debug any potential issues with the interaction between ShipStation and WooCommerce.

Alternate Authentication Section

Authentication Key: Enter a random, hard to guess string in this field. The ‘?auth_key=’ key/value pair may be used in addition to the standard Username/Password authentication method on those servers where standard authentication does not work. 

Note: When configuring your WooCommerce Store in ShipStation for the first time, ShipStation auto-generates a long, random pass-key. You may place a temporary value in this WooCommerce Settings field for testing purposes, and replace it with the ShipStation-generated value when you get to configuring your store inside of ShipStation (see below).

Export Section

Number of Records to Export Per Page: This setting configures the number of orders to export per page. In cases when there is a great deal of data to export to ShipStation, some servers can time-out the request of the data set is too large. This is especially important in larger volume stores. By default, this value is set to ‘100’. It may be changed if ShipStation is not able to retrieve the orders due to server time-out issues, though in most cases it will not need to be changed.

Order Status Selection: By default, select ‘Processing’ box in the Order Status line. Other order statuses may be checked if your WooCommerce installation requires it. “Processing” is the default state used when an order is Paid in WooCommerce.

Shipping Methods Selection: This setting allows you to expose some or all of your orders to ShipStation, based on their shipping method.  The values that are shown here are based on your store’s configuration. For example, if you offer a ‘international_delivery’ shipping option, but you do not want to export those orders to ShipStation, you may simply uncheck that Shipping Method from the list of check boxes, and those orders will not be exported to ShipStation.

Export Order Coupon Code(s) to: This setting allows you to configure your store to export the coupon code(s) used on an order to ShipStation, in one of 3 fields. This may be helpful if your shipping operations benefit or require the ability for the shipping operator to see which coupon codes were used by the customer.

Screenshot of Custom Fields in ShipStation

Screenshot of Custom Fields in ShipStation

By default, this value is set to ‘None’.  If coupon code export is required, select any of the 3 field from the drop down (CustomField1, CustomField2, CustomField3). Exported coupon code(s) will be mapped into the corresponding field within ShipStation.

To add those fields to your ShipStation Orders view: In ShipStation, goto Orders > Click ‘Columns’ drop down.

System Notes: This setting works in conjunction with WooComerce ‘Order Notes > Private Note’ feature (See Order Notes Section below), and is used to filter specific phrases within a Private Note so that are not exported to ShipStation’s ‘Internal Notes’ field. By default, the extension is shipped with the most common WC system-generated Private Notes.

For example, any Private Notes containing the exact phrase ‘Order status changed’ will not be exported to ShipStation.

Store owners may add additional phrases here as needed, to keep them from being exported.

Import Section

Order Status Selection: Set to ‘Completed’ by default in WooCommerce. If your WooCommerce installation utilizes a different Order Status to denote a shipped order, please select the correct Order Status in the drop down.

Plug-in Detection: If your WooCommerce installation uses certain third party Shipping Tracking plugins, the WooCommerce ShipStation extension is designed to detect them and leverage the tracking fields provided by those shipping tracking plugin. Currently, the WooCommerce ShipStation extension supports the following 3rd party plugins:

  1. WooCommerce Shipment Tracking Extension
  2. Shipping Details for WooCommerce

Testing the plugin prior to configuring in ShipStation ↑ Back to Top

Important: Please be sure to test your setup prior to configuring your WooCommerce store in ShipStation

The following steps will allow you to test the system to ensure data from your WooCommerce Store is being exposed properly. The test simulates the type of call ShipStation will make to your WooCommerce Store to pull down new orders.

  1. Construct the proper test URL in Notepad
    {Url to custom page}?action=export&start_date=08/01/2012%2000:05&end_date=12/31/2012%2021:00
    › find { } url value inside your WooCommerce ShipStation Settings tab
    › start_date & end_date can be set to a date range where you know you have ‘processing’ orders in your WooCommerce store
  2. Open a browser window, and paste your test URL in the browser’s address bar
  3. When prompted, enter the Username & Password you configured in your WooCommerce › Settings › ShipStation tab
Expected result: An output of your ‘processing’ orders, and related order data

Troubleshooting Setup & Config

User/pass are required! Error

When testing your setup with the test URL, you will be prompted for the username and password you configured above. If you enter in the correct values, but get prompted a second or third time, PHP is unable to get login information from your server. Use ‘?auth_key=’ as follows:

Add ‘?auth_key=value’ to test url


If you are able to retrieve an XML output with ?auth_key, but unable to authenticate with standard username and password, it is likely your server is running PHP in CGI mode.

Note: If auth_key is required for you to retrieve the XML output, when configuring your WooCommerce Store in ShipStation, the Authentication Key will be used to authenticate to your WooCommerce store. Be sure the Authentication Key values in WooCommerce and ShipStation are exactly the same.

Alternate Work-around: Add the following to .htaccess
RewriteRule .* -[env=HTTP_AUTHORIZATION:% {HTTP:Authorization}]

Unable to login with test URL

Have you configured Permalinks correctly? Did you enter the login information correctly?

Orders are not exporting

Please visit WooCommerce › Settings › ShipStation tab and ensure you have properly configured the values in the Export Section.

Configuring WooCommerce Store In ShipStation ↑ Back to Top

Get Endpoint & Access Info

Write down the following values from Export Section

  1. Username & Password values
  2. Authentication Key value
  3. URL to Custom XML page value
Hint: Alternatively, you may open a separate browser tab/window and copy&paste between screens.

Create account at

  1. Login to your account
  2. Visit Settings Page
  3. Click Stores link. Click ‘Add a New Store..’ button
  4. Choose ‘WooCommerce‘ button from the available ‘Add Store’ list

Setup Store at ShipStation

Fill out the available fields as follows:

Username › Enter Username from Settings Section

Password › Enter Password from Settings Section

Authentication Key › Copy Authentication Key created by ShipStation and paste it into the ‘Authentication Key’ field inside WooCommerce › Settings › ShipStation tab

URL to Custom XML Page › Enter URL from Settings  Section

By default the URL will begin with ‘http://’. If your store supports SSL, you may change the ‘http://’ of the url to ‘https://’ to ensure the XML exchange between ShipStation and your WooCommerce Store is secure.

Paid Status › Enter ‘processing‘ (If your WooCommerce Store uses a different Order Status to denote paid orders, enter that status name in this field)
Shipped Status › Enter ‘completed‘ (If your WooCommerce Store uses a different Order Status to denote shipped orders, enter that status name in this field)
Cancelled Status › Enter ‘cancelled‘ (If your WooCommerce Store uses a different Order Status to denote cancelled orders, enter that status name in this field)

Test & Complete ShipStation Setup

Click ‘Test Connection’ button. A window should appear showing a Success! message.

Click the Next Button and complete your WooCommerce Store Setup.

Order Notes ↑ Back to Top

WooCommerce supports three (3) types of “Notes”

(A) Order Details > Customer Note (Note that customer enters during checkout)

(B) Order Notes > Customer Note (See Managing Orders for details)

(C) Order Notes > Private Note (See Managing Orders for details)

Two note indicators shown inside ShipStation.  On Left: Customer Note. On Right: Internal/Private Note.

Two note indicators shown inside ShipStation. On Left: Customer Note. On Right: Internal/Private Note.

Out of the box, and with no configuration (A) and (C) are automatically exported to ShipStation and show up inside of ShipStation in the default “Orders” View.

For (C), the last 3 private notes are pulled from an order, filtering out the WooCommerce automated system notes. The values are separated with the pipe ( | ), and exported to ShipStation in the ‘internalnotes’ field.

There are icons for “Customer Note” and “Internal Notes” present in the ShipSation “Orders” view. If data exists in the fields mentioned above, the corresponding icons will be highlighted, and the Shipping Operator can hover their mouse over the icon and see the details of the Note.

Export Custom Field Data to ShipStation ↑ Back to Top

In addition to exporting order details and order notes, this Extension also offers the ability to export three (3) additional custom fields per order to ShipStation.

This may be helpful to some store owners who need to send special information or specific data to the Shipping Operations team, where it does not make sense to enter that information in a Private Note.


(3) Custom Export Fields for ShipStation available from within each WooCommerce Order > Custom Field Section

To Set Custom Fields per Order

  1. Open Order, scroll down to Custom Fields section
  2. Under ‘Add New Custom Field’ > Select ‘custom_field_shipstation_1′, ‘custom_field_shipstation_2′, or ‘custom_field_shipstation_3′ from the Name field dropdown
  3. Enter data into the ‘Value’ field
  4. Click ‘Add Custom Field’ button
  5. Repeat steps 1-4 up to three times selecting a separate custom field
Note: Custom Fields work in conjunction with the ‘Export Order Coupon Code(s) to:’ feature above.  These settings cannot overlap each other. In other words, if you set your ShipStation configuration to export Coupons to CustomField1, custom_field_shipstation_1 may not be used on orders. Coupon export will always supersede and take precedence over the custom fields on an order.

FAQ ↑ Back to Top

Q: Does the ShipStation Extension have real-time shipping quote capability that can be used at checkout?

A: No. The ShipStation Extension does not have a real-time shipping quote capability for orders at checkout. Store owners will still need a real-time shipping quote Extension like USPS, FedEx, UPS, etc. or have an alternate way to show shipping quotes (i.e. flat rate charge)

Q: Does ShipStation still send data when it’s not being used (ex. Free Shipping)?

A: Yes, there isn’t any conditional exporting. If the data is there, we export it!

Q: Why do multiple lines items in an order on the WooCommerce side get combined when they reach ShipStation?

A: This is most likely because unique Product SKUs have not been configured for each product and variation in the Store.  To ensure that order lines items show up correctly inside ShipStation, we recommend you assign a unique SKU to each product as well as each variation within a product.

Q: Can the Custom Field Data be auto-populated

A: There is no built-in facility to auto-populate the three (3) Custom Fields that get exported to ShipStation. Please consult with a WordPress or WooCommerce Developer should you need such automation.

Q: Why Don’t Orders Show As Completed in WooCommerce After Being “Shipped” in ShipStation?

A: The most likely causes of this issue include:

  1. A mis-configuration – Check WooCommerce > Settings > ShipStation to ensure that “Order Status to move it to when the shipnotify action is presented” is set to Completed
  2. A conflict with a Security plug-in – Security plugins usually restrict the accessibility of endpoints/URLs on a WP online store. Although orders may be exporting fine, the Security plugin may not be allowing ShipStation to POST shipping information to the server.  If you have “Shipped” an Order in ShipStation (created a label or used ‘marked as shipped’), but the order is not being updated to Completed, check to see if the WP site is running a Security plugin. If it is, disable the security plugin and test again.  If disabling the Secuirty plugin resolves the issue, please contact that plugin developer to see how to add the ‘URL to Custom Page’ value to an allowed/whitelist setting

If the above two items do not resolve the issue, please first contact support to request further information on the error their system is seeing when communicating to the WP/WooCommerce server. Once ShipStation has responded with the technical information, please provide the information received to WooThemes Support for further investigation.

Q: Why Won’t My Orders Export After Upgrading WooCommerce?

A: In some WooCommerce core updates, changes are made to make it more efficient. Those changes sometimes affect the items that were configured on our ShipStation Settings page. If you’ve recently upgraded to a new version of WooCommerce and your orders are no longer exporting out of WooCommerce (being imported into ShipStation), please visit the ShipStation Settings page and be sure the Order Status Selection values in the Import and Export sections are still selected. If not, you will need to re-set those values and re-save the settings.

Back to the top