Connect WooCommerce to ShipStation

Connect ShipStation for WooCommerce to import orders into ShipStation and return shipment updates to your store. This guide takes you through connection setup and a test of the complete order workflow.

Before you begin

↑ Back to top
  • Install current versions of WordPress, WooCommerce, and ShipStation for WooCommerce.
  • Have a ShipStation account with a monthly plan and access to its store connection settings.
  • Use a site ShipStation can reach. If a host or security service blocks direct requests, consider WordPress.com Transport.
  • Have permission to manage WooCommerce settings and a test order that requires shipping.

Installation

↑ Back to top

To start using a product from WooCommerce.com, you can use the โ€œAdd to storeโ€ functionality on the order confirmation page or the My subscriptions section in your account.

  1. Navigate to My subscriptions.
  2. Find the Add to store button next to the product youโ€™re planning to install.
  3. Follow the instructions on the screen, and the product will be automatically added to your store.

Alternative options and more information at:
Managing WooCommerce.com subscriptions.

Choose which orders to import

↑ Back to top
  1. Go to WooCommerce > Settings > Integration > ShipStation.
  2. Under Export Order Statuses, select the statuses to send to ShipStation. Each selected status must also have a matching ShipStation status. Use Status Mapping Mode to manage those mappings in ShipStation or in the plugin settings.
  3. Set Shipped Order Status to the status WooCommerce should apply after ShipStation reports a shipment. Completed suits orders that need no further action.
  4. Select Save changes.

For orders ready for fulfillment, include Processing and, if your workflow needs it, Completed. An order status alone doesnโ€™t confirm payment: check payment before shipping. Include On hold or Cancelled only when your workflow requires those orders in ShipStation. Free shipping doesnโ€™t prevent an otherwise eligible order from importing.

Generate connection credentials

↑ Back to top
  1. On the same settings page, expand Credentials in ShipStation Connection.
  2. Select Generate REST API keys if you donโ€™t already have a usable key pair.
  3. Save the Consumer Key and Consumer Secret in a password manager or secret vault. The Consumer Key is shown only when generated and canโ€™t be retrieved later. Keep the Authentication Key private too.

The plugin-generated pair has the required Read/Write permissions. Generating another pair doesnโ€™t revoke an existing working pair. If you lose a key, generate a replacement, enter it in ShipStation, and verify synchronization before removing the old pair.

Manage API keys

↑ Back to top

Expand API Keys in ShipStation Connection. This list contains only pairs generated by this plugin. Keys created manually under WooCommerceโ€™s REST API settings donโ€™t appear here.

  • Key: A shortened identifier and its status. An Inactive status alone doesnโ€™t mean a key is safe to delete.
  • Transport: The routes observed using this key: Direct, WordPress.com, or Both. A dash means no route has been detected yet.
  • Last sync: The most recent authenticated use of the key. Never means none has been recorded. This timestamp doesnโ€™t prove that an order or shipment update completed.

To remove a pair you no longer need:

  1. First verify that the replacement credentials import an eligible order and return a shipment update. Keep any pair still used by another connection.
  2. Identify the old pair in API Keys. Use its shortened identifier, route, and last sync to check which pair you intend to remove.
  3. Select that rowโ€™s Delete control and confirm the deletion. The row disappears immediately; you donโ€™t need to select Save changes.
  4. Repeat your synchronization check in ShipStation. Deleting a pair doesnโ€™t replace the credentials saved there.

Deletion is permanent and immediately stops requests using that pair. Never-used plugin-generated pairs are eligible for automatic cleanup after 48 hours by default, except the newest pair. Previously used pairs arenโ€™t automatically removed just because they become inactive.

Connect your store in ShipStation

↑ Back to top
  1. In ShipStation, open Settings > Selling Channels > Store Setup, select Connect a Store or Marketplace, and choose WooCommerce. For an existing store, open its actions menu and select Edit Connection.
  2. Keep your WooCommerce Credentials panel open in another tab and copy the values into ShipStation as shown below.
  3. Select Test Connection, then Connect for a new store connection.
  • Consumer Key: enter this in ShipStationโ€™s Consumer Key field.
  • Consumer Secret: enter this in ShipStationโ€™s Consumer Secret field.
  • Authentication Key: enter this in ShipStationโ€™s Authentication Key field.
  • Store URL: enter this in ShipStationโ€™s Store URL, or URL to Custom XML Page when that label is shown field.

Copy the Store URL from the plugin rather than typing your domain. Its value depends on whether the store uses a direct connection or WordPress.com Transport. A successful connection test confirms access; complete the order checks below to verify synchronization.

Verify an order imports and updates

↑ Back to top
  1. Create or choose a test order that requires shipping and has an enabled export status with a matching ShipStation status.
  2. Refresh the storeโ€™s orders in ShipStation. Confirm that the order appears with the expected products, quantities, address, and totals.
  3. When you mark the order shipped in ShipStation, enable Notify Marketplace? so ShipStation sends the update to WooCommerce.
  4. Open the WooCommerce order. Confirm its status changes to your configured Shipped Order Status and that an order note contains the carrier and tracking information. If you use Shipment Tracking, check its tracking fields instead.

Assign a unique SKU to each product and variation to help keep imported line items distinct. If you use a sequential order number extension, verify shipment updates with a test order and ask that extensionโ€™s provider about compatibility when updates fail.

If the order doesnโ€™t import or update

↑ Back to top
  • Missing order: check that it requires shipping, its export status is selected, and its status mapping is present. Confirm the connection fields in ShipStation, then use Test Connection.
  • Missing shipment update: check Notify Marketplace?, the configured Shipped Order Status, and whether the host received the shipment notification.
  • Authentication error: check all three credentials and the copied Store URL. If the plugin displays an HTTPS warning, follow the recovery steps below.
  • HTML, CAPTCHA, redirects, or blocked requests: ask your host or security provider to identify the failed request and review a narrowly scoped exception. Donโ€™t disable the siteโ€™s firewall or identify ShipStation by its User-Agent alone.

For more detail, enable Logging on the ShipStation settings page, repeat the failed action, and open WooCommerce > Status > Logs. Logs can contain customer and order information; redact it before sharing and turn logging off when finished. If the issue continues, request the connection error details from ShipStation and share them with WooCommerce support. Contact support before replacing the Authentication Key; donโ€™t post keys publicly.

Resolve the HTTPS warning

↑ Back to top

In ShipStation Connection, an amber warning may say:

Your store address uses HTTPS, but requests are reaching WordPress as plain HTTP. WooCommerce only accepts the Consumer Key and Consumer Secret over HTTPS, so ShipStation is being turned away with a 401 error even when those credentials are correct. A store that connects using the Authentication Key below is not affected.

This warning is a separate alert about HTTPS detection. It can appear alongside a connection banner; it isnโ€™t another connection state. It concerns Consumer Key/Consumer Secret authentication. The Authentication Key path mentioned in the warning isnโ€™t affected by that particular check.

A proxy can accept HTTPS from visitors but forward plain HTTP to your server. Cloudflare Flexible mode does this. A browser padlock or a successful public REST API request doesnโ€™t establish that WordPress recognizes an authenticated request as HTTPS.

  1. If you use Cloudflare, ask your host to confirm that the origin supports HTTPS on port 443 and has an unexpired certificate that matches the hostname, issued by a trusted authority or Cloudflare Origin CA.
  2. Once the origin is ready, change Cloudflareโ€™s SSL/TLS encryption mode from Flexible to Full (strict). An origin certificate problem can cause a 526 error; have your host fix it rather than disabling certificate validation.
  3. For another proxy or load balancer, ask your host to preserve the original HTTPS protocol and configure WordPress to recognize it.
  4. Reload the ShipStation settings and check that the warning has cleared. In ShipStation, test the connection, then verify an order import and a shipment update.

If authentication still fails, share the warning and the failed requestโ€™s time and response with your host or developer, with credentials removed. A developer can compare authenticated diagnostic responses. This problem concerns the HTTPS route and protocol detection, rather than a restriction against TLS 1.3.

Optional order information

↑ Back to top

To collect gift details, select Enable Gift options at checkout page and save. Customers can mark an order as a gift and enter a message, limited to 255 characters by default. Gift details appear in the WooCommerce orderโ€™s shipping details and import to ShipStation. Edit them in ShipStation if needed after ordering. A developer can customize the gift-message limit.

Coupon codes populate ShipStation Custom Field 1. A developer can map existing order metadata to Custom Fields 2 and 3. Product dimensions are included with REST order data; legacy XML order dimensions are limited to an order with one product and a quantity of one. Check how your ShipStation account displays the imported dimensions.

Optional connection and checkout tasks

↑ Back to top

Use WordPress.com Transport to route ShipStation requests through WordPress.com. Show ShipStation rates at checkout to let customers choose configured shipping rates. Neither task is required to import orders using a working direct connection.

Questions and support

↑ Back to top

Do you still have questions and need assistance? 

  • Get in touch with a Happiness Engineer via our Help Desk. We provide support for extensions developed by and/or sold on WooCommerce.com, and Jetpack/WordPress.com customers.
  • If you are not a customer, we recommend finding help in theย WooCommerce support forumย or hiring a Woo Agency Partner. These are trusted agencies with a proven track record of building highly customized, scalable online stores.ย Learn more about Woo Agency Partners.

Related Products

WooCommerce Shipping is a free label-printing and fulfillment extension built into WooCommerce that lets store owners buy and print USPS,...

Automatically calculate how much sales tax should be collected for WooCommerce orders โ€” by city, country, or...

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.